﻿$(document).ready(function(){
	
	$('.counter1').bind('click', function(){
		$.getJSON('/api/counter', function(){
			
		});
	});
	
    var mapImg = new Image();
    mapImg.onload = function(){
        $('.regionsMap').css({
            'background-position': 'left top',
            'background-image': 'url(/i/mapc.gif)'
        });
        
        $('map area').bind('mouseover', function(){
            $('.regionsMap').css({
                'background-position': 'left -' + parseInt(this.id.substr(1)) * 250 + 'px'
            });
            var txt = $(this).attr('data');
            txt = txt.split('||');
            txt = '<b>' + txt[0] + '</b><br />' + txt[1];
            
            $('#mapHint').html(txt).show();
        }).bind('mouseout', function(){
            $('.regionsMap').css({
                'background-position': 'left top'
            });
            $('#mapHint').hide();
        }).bind('mousemove', function(e){
            var left = e.pageX + 10;
            if (left + 330 >= $(window).width()) {
                left = $(window).width() - 330;
            }
            $('#mapHint').css({
                'top': e.pageY + 20,
                'left': left
            });
        }).bind('click', function(){
            location.href = 'http://' + $(this).attr('lnk') + '.fsrar.ru/';
            return false;
        });
    };
    mapImg.src = '/i/mapc.gif';
    
    $('.mapHeader').click(function(){
        location = '/map';
    });
    
    $('.search input').bind('focus', function(){
        if (this.value == 'поиск') {
            this.value = '';
            this.style.color = '#000';
        }
    }).bind('blur', function(){
        if (this.value == '') {
            this.value = 'поиск';
            this.style.color = '#747474';
        }
    });
    
    $('#showFeedBack').bind('click', function(){
        showFeedBack();
        return false;
    });
    
    $('#showSearchExt').bind('click', function(){
        if ($.browser.msie && $.browser.version == 6) {
            location = '/search/'
        } else {
            $('#search_ext').slideDown();
        }
    });
    
    $('#search_ext .bottom').bind('click', function(){
        $('#search_ext').slideUp();
    });
    
    $('#hideFeedBack').bind('click', function(){
        hideFeedBack();
        return false;
    });
    
    //$('.menu ul:last').addClass('last');
    
    $('.menu ul li').bind('mouseenter', function(){
        $('ul', this).show();
    }).bind('mouseleave', function(){
        $('ul', this).hide();
    });
    /*
     if (!$.browser.msie && $.browser.version != 6) {
     $('.sitePath').css('width', 'auto');
     if ($('.sitePath').width() > 500) {
     var html = $('.sitePath').html();
     var text = html.split(' &gt; ');
     html = text[0];
     for (var i = 1; i < text.length; i++) {
     if ($('.sitePath').html(html + text[i]).width() > 500) {
     $('.sitePath').html(html);
     break;
     }
     else {
     html += ' &gt; ' + text[i];
     }
     }
     }
     }
     */
    //jslink
    $('.jslink').css('cursor', 'pointer').bind('click', function(){
        location = $(this).attr('data');
        return false;
    });
    
    //confirmRegister
    $('.confirmRegister').bind('click', function(){
        if ($('.confirmRegister:checked').length) {
            $('#registerButton').removeAttr('disabled');
        } else {
            $('#registerButton').attr('disabled', 'true');
        }
    });
    
    if (location.href.split('user/forms').length) {
        showSub('user');
    }
	
	//confirmSend
    $('.confirmSend, .confirmGarant').bind('click', function(){
        if ($('.confirmSend:checked').length && $('.confirmGarant:checked').length) {
            $('#sendButton').removeAttr('disabled');
        } else {
            $('#sendButton').attr('disabled', 'true');
        }
    });
    
	//date in forms
    var date = new Date();
	if ($('.form input[name=date]').length) {
		$('.form input[name=date]').width(100).datePicker({
			clickInput: true,
			startDate: '01.01.2009'
		});
		if ($('.form input[name=date]').val() == '') {
			$('.form input[name=date]').val(date.getDate() + '.' + (date.getMonth() < 9 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1)) + '.' + date.getFullYear());
		}
	}
	if ($('.form input[name=endDate]').length) {
		$('.form input[name=endDate]').width(100).datePicker({
			clickInput: true,
			startDate: '01.01.2009'
		});
		if ($('.form input[name=endDate]').val() == '') {
			$('.form input[name=endDate]').val(date.getDate() + '.' + (date.getMonth() < 9 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1)) + '.' + date.getFullYear());
		}
	}
	if ($('.form input[name=licenseDate]').length) {
		$('.form input[name=licenseDate]').width(100).datePicker({
			clickInput: true,
			startDate: '01.01.2000'
		});
		if ($('.form input[name=licenseDate]').val() == '') {
			$('.form input[name=licenseDate]').val(date.getDate() + '.' + (date.getMonth() < 9 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1)) + '.' + date.getFullYear());
		}
	}
    //precheck
    precheckForm();
});

function showFeedBack(){
    $('#showFeedBack').hide();
    $('.feedbackForm').slideDown();
}

function hideFeedBack(){
    $('#showFeedBack').show();
    $('.feedbackForm').slideUp();
}

function checkForm(form){
    var fields = $('.notEmpty:visible', form);
    var result = true;
    for (var i = 0; i < fields.length; i++) {
        if (fields[i].value == '') {
            $(fields[i]).css('background-color', '#ffc2b2');
            result = false;
        } else {
            $(fields[i]).css('background-color', '#fff');
        }
    }
    if (!result) {
        alert('Отмеченные поля обязательны для заполнения');
    }
    if (result && $('.boxes').length > 0) {
        if ($('.boxes input:checked').length < 1) {
            result = false;
            alert('выберите лицензируемый вид деятельности');
        }
    }
    if (result && $('#newProdId').length > 0) {
        var g = $('#newProdId').val().split('_');
		if (parseInt(g[1]) < 1) {
            result = false;
            alert('выберите вид продукции');
        }
    }
	
	if (precheckForm() == false) {
		result = false;
		alert('Поля отмеченные красным заполнены не верно');
	}
	
    return result;
}

function showSub(id){
    $('#subMenu' + id).slideToggle('fast');
    return false;
}

function precheckForm(field){
    var fields = [{
		field: 'date',
		ctype: 'date'
	},{
		field: 'licenseDate',
		ctype: 'date'
	},{
		field: 'endDate',
		ctype: 'date'
	},{
        field: 'inn',
        ctype: 'intlen',
        len: 10
    }, {
        field: 'kpp',
        ctype: 'intlen',
        len: 9
    }, {
        field: 'bik',
        ctype: 'intlen',
        len: 9
    }, {
        field: 'rs',
        ctype: 'intlen',
        len: 20
    }, {
        field: 'ks',
        ctype: 'intlen',
        len: 20
    }, {
        field: 'addrIndex',
        ctype: 'intlen',
        len: 6
    }, {
        field: 'faddrIndex',
        ctype: 'intlen',
        len: 6
    }, {
        field: 'addrIndexExt[]',
        ctype: 'intlen',
        len: 6
    }, {
        field: 'email',
        ctype: 'email'
    }, {
        field: 'kppExt[]',
        ctype: 'intlen',
		len: 9
    }];
	
	var result = true;
    
    var check = function(f){
        switch (f.ctype) {
            case 'intlen':
                if (isNaN(Number($('.form input[name=' + f.field + ']').val()))) {
                    $('.form input[name=' + f.field + ']').css('border-color', 'red').attr('title', 'необходимо ввести только цифры');
					return false;
                } else 
                    if ($('.form input[name=' + f.field + ']').val().length != f.len) {
                        $('.form input[name=' + f.field + ']').css('border-color', 'red').attr('title', 'необходимо ввести цифр: ' + f.len);
						return false;
                    } else {
                        $('.form input[name=' + f.field + ']').css('border-color', 'green').attr('title', '');
						return true;
                    }
                break;
			case 'date':
				if (isDate($('.form input[name=' + f.field + ']').val())){
					$('.form input[name=' + f.field + ']').css('border-color', 'green').attr('title', 'неверная дата');
					return true;
				} else {
					$('.form input[name=' + f.field + ']').css('border-color', 'red').attr('title', '');
					return false;
				}
			break;
			case 'email':
				var filter = /^.+@.+\..{2,3}$/;
				if (filter.test($('.form input[name=' + f.field + ']').val())) {
					$('.form input[name=' + f.field + ']').css('border-color', 'green').attr('title', '');
					return true;
				} else {
					$('.form input[name=' + f.field + ']').css('border-color', 'red').attr('title', 'неверный адрес электронной почты');
					return false;
				}
			break;
        }
    }
    
    for (var i = 0; i < fields.length; i++) {
        if ($('.form input[name=' + fields[i].field + ']').length) {
            if (field != undefined && fields[i].field == field) {
                if (check(fields[i]) == false) {
					result = false;
				}
            } else 
                if (field == undefined) {
                    if (check(fields[i]) == false) {
						result = false;
					}
                }
        }
    }
	
	if (field == undefined && window.issetCheck == undefined) {
		window.issetCheck = true;
		for (var i = 0; i < fields.length; i++) {
			$('.form input[name=' + fields[i].field + ']').attr('data', i).bind('keyup', function(){
				check(fields[$(this).attr('data')]);
			});
		}
	}
	
	return result;
}

var dtCh= ".";
var minYear=2010;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (((c < '0') || (c > '9'))) return false;
    }
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = '';
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1 = dtStr.indexOf(dtCh)
	var pos2 = dtStr.indexOf(dtCh, pos1 + 1)
	var strDay = dtStr.substring(0, pos1)
	var strMonth = dtStr.substring(pos1 + 1, pos2)
	var strYear = dtStr.substring(pos2 + 1)
	strYr = strYear
	if (strDay.charAt(0) == "0" && strDay.length > 1) 
		strDay = strDay.substring(1)
	if (strMonth.charAt(0) == "0" && strMonth.length > 1) 
		strMonth = strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0) == "0" && strYr.length > 1) 
			strYr = strYr.substring(1)
	}
	month = parseInt(strMonth)
	day = parseInt(strDay);
	year = parseInt(strYr);
	if (pos1 == -1 || pos2 == -1) {
		alert('Формат даты должен быть : дд.мм.гггг');
		return false;
	}
	if (strMonth.length < 1 || month < 1 || month > 12) {
		alert("Неверный месяц")
		return false
	}
	if (strDay.length < 1 || day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month]) {
		alert("Неверный день")
		return false
	}
	if (strYear.length != 4 || year == 0 || year < minYear || year > maxYear) {
		alert("Пожалуйста введите год между " + minYear + " и " + maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh, pos2 + 1) != -1 || isInteger(stripCharsInBag(dtStr, dtCh)) == false) {
		alert("Введите корректно дату в формате дд.мм.гггг")
		return false
	}
	return true
}