// Проверки 

function setrawcookie(name, value, expires, path, domain, secure) {
    // Send a cookie with no url encoding of the value
    //
    // version: 905.412
    // discuss at: http://phpjs.org/functions/setrawcookie
    // +   original by: Brett Zamir (http://brettz9.blogspot.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   derived from: setcookie
    // *     example 1: setcookie('author_name', 'Kevin van Zonneveld');
    // *     returns 1: true
    if (expires instanceof Date) {
        expires = expires.toGMTString();
    } else if(typeof(expires) == 'number') {
        expires = (new Date(+(new Date()) + expires * 1e3)).toGMTString();
    }

    var r = [name + "=" + value], s={}, i='';
    s = {expires: expires, path: path, domain: domain};
    for(i in s){
        s[i] && r.push(i + "=" + s[i]);
    }

    return secure && r.push("secure"), document.cookie = r.join(";"), true;
}

function setcookie(name, value, expires, path, domain, secure) {
    // Send a cookie
    //
    // version: 905.412
    // discuss at: http://phpjs.org/functions/setcookie
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   bugfixed by: Andreas
    // +   bugfixed by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // -    depends on: setrawcookie
    // *     example 1: setcookie('author_name', 'Kevin van Zonneveld');
    // *     returns 1: true
    return this.setrawcookie(name, encodeURIComponent(value), expires, path, domain, secure);
}

	function formatpfr(event, string, field) {
		var out ='';
		var string = string.replace(/-/g,'');
		var code = event.keyCode;
		if(code != 8) {
			for(i=0;i<string.length;i++) {
				var x = string.substring(i, i+1);
				out += x;
				if(i==2 || i==5) out += '-';
			}
			field.value = out;
		}
	}

	function formatupfr(event, string, field) {
		var out ='';
		var string = string.replace(/-/g,'');
		var code = event.keyCode;
		if(code != 8) {
			for(i=0;i<string.length;i++) {
				var x = string.substring(i, i+1);
				out += x;
				if(i==2) out += '-';
			}
			field.value = out;
		}
	}

function limitChars(textid, limit, infodiv)
{
	var text = $('#'+textid).val();	
	var textlength = text.length;
	if(textlength > limit)
	{
		$('#' + infodiv).html('Вы можете использовать только '+limit+' символов!');
		$('#'+textid).val(text.substr(0,limit));
		return false;
	}
	else
	{
		$('#' + infodiv).html('У Вас осталось '+ (limit - textlength) +' символов.');
		return true;
	}
}

function trim(string)
{
    return string.replace(/(^\s+)|(\s+$)/g, "");
}

function initCheckform() {
        $("#wiz").submit(function(){
            if(!checkReq(["inn"]))return false; }
	);
}

function checkStepZero(ftype, prefix, msg) {
 // var fields = new array("connect_fns", "connect_strah", "connect_pension");
  var pass = false;

  if(ftype == 'select') {
	  $("select").each( function() {
			re = new RegExp('(.+)'+prefix+'(.+)','i');
			x = $(this).attr('name');
			if(re.test(x) && this.value !='') pass = true;
		
	  });
  } else { 
	  $("input[type=checkbox]").each( function() { 
			re = new RegExp('(.+)'+prefix+'(.+)','i');
			x = $(this).attr('name');
			if(re.test(x) && this.checked) pass = true;
		
	  });

  }
  if(pass) return true;
  else alert(msg);
  return false;

}
alrt = '';

function checkFormat() {

	var formats = {
		"step0[code_inspection_add][0]": {format: '\\d{4}', msg:'ИФНС добавочного кода инспекции должен содержать 4 цифры'},
		"step0[kpp_inspection_add][0][0]": {format: '\\d{9}', msg:'КПП добавочного кода инспекции должен содержать 9 цифр'},
		"step0[code_inspection_add][1]": {format: '\\d{4}', msg:'ИФНС добавочного кода инспекции должен содержать 4 цифры'},
		"step0[kpp_inspection_add][1][0]": {format: '\\d{9}', msg:'КПП добавочного кода инспекции должен содержать 9 цифр'},
		"step0[code_inspection_add][2]": {format: '\\d{4}', msg:'ИФНС добавочного кода инспекции должен содержать 4 цифры'},
		"step0[kpp_inspection_add][2][0]": {format: '\\d{9}', msg:'КПП добавочного кода инспекции должен содержать 9 цифр'},

		"step0[second_org_inn]": {format: '\\d{10,12}', msg:'ИНН должен содержать 10 или 12 цифр'},
		"step0[code_inspection]": {format: '\\d{4}', msg:'Код инспекции должен содержать 4 цифры'},

		"step1[bank_rs]": {format: '\\d{20}', msg:'Номер расчётного счета должен содержать 20 цифр'},    
		"step1[bank_ks]": {format: '\\d{20}', msg:'Номер корр. счета должен содержать 20 цифр.\nЕсли он у вас не используется, оставьте поле пустым.'},    
		"step1[bank_bik]": {format: '\\d{9}', msg:'Номер БИК должен содержать 9 цифр'},

		"step1[org_kpp]": {format: '\\d{9}', msg:'КПП должен содержать 9 цифр'},
		"step1[add_fss_number]": {format: '\\d{10}', msg:'Регистрационный номер страхователя в ФСС должен содержать 10 цифр'},
		"step1[add_fss_code]": {format: '\\d{4}', msg:'Код  подразделения  ФСС должен содержать 4 цифры'},
		"step1[add_number_pfr]": {format: '\\d{3}-\\d{3}-\\d{6}', msg:'Рег. номер ПФР должен быть в формате XXX-XXX-XXXXXX'},
		"step1[add_number_upfr]": {format: '\\d{3}-\\d{3}', msg:'Номер УПФР должен быть в формате XXX-XXX'},
		"step1[add_number_okpo]": {format: '\\d{8}', msg:'ОКПО должен содержать 8 цифр'}            

	};

	var pass = true;

	$('input[type=text]').each( function() { 
		var field = $(this).attr('name');
		var hidden;

		if(formats[field] && $(this).css('display')!='none') { 
			
			$(this).parents().each(function() { 
				if($(this).css('display')=='none') hidden = 1;
			});

			if(!hidden && $(this).attr('id')!='notnec'){
				if($(this).attr('id')=='maybe' && $(this).val().length ==0) {
					$(this).removeClass('unfilled'); return false;
				}
				var f = this.value;
				re = new RegExp(formats[field]['format'],'i');
				if(!re.test(f)) { alrt = alrt + '* ' + formats[field]['msg']+'\n\n'; pass = false; $(this).addClass('unfilled'); return false; }
				else $(this).removeClass('unfilled');
			}
		}
	});
	if(pass == false) return false;
	else return true;

}

function alertInn() { 
	var id = $("#inn");

	if(id.val().length==10) {
		 $(".kpprow").show();
		 $("#kpp").css({"display":"inline"});
	//	 $("#kpp").focus();
	} else 	if(id.val().length==12) { 
		 $(".kpprow").value = '';
		 $(".kpprow").css({"display":"none"});
		 $("#kpp").css({"display":"none"});
	}

	var x = checkInnz(id.val());
	if(x) { 
		id.addClass('unfilled');
		id.focus();
		alert(x);
	//	return false;
	}

}


function checkInnz(i)
{
    var r1 = ftest(i, 10);
    var r2 = ftest(i ,12);
    if (i.length>0 && !r1 && !r2) return "ИНН должен содержать 10 или 12 цифр";
    var inn = i;
    
    if ( inn.length == 10 )
    {

        if(inn.charAt(9) == String(((
            2*inn.charAt(0) + 4*inn.charAt(1) + 10*inn.charAt(2) +
            3*inn.charAt(3) + 5*inn.charAt(4) +  9*inn.charAt(5) +
            4*inn.charAt(6) + 6*inn.charAt(7) +  8*inn.charAt(8)
        ) % 11) % 10)) return null;
    }
    else if ( inn.length == 12 )
    {
        if(inn.charAt(10) == String(((
             7*inn.charAt(0) + 2*inn.charAt(1) + 4*inn.charAt(2) +
            10*inn.charAt(3) + 3*inn.charAt(4) + 5*inn.charAt(5) +
             9*inn.charAt(6) + 4*inn.charAt(7) + 6*inn.charAt(8) +
             8*inn.charAt(9)
        ) % 11) % 10) && inn.charAt(11) == String(((
            3*inn.charAt(0) +  7*inn.charAt(1) + 2*inn.charAt(2) +
            4*inn.charAt(3) + 10*inn.charAt(4) + 3*inn.charAt(5) +
            5*inn.charAt(6) +  9*inn.charAt(7) + 4*inn.charAt(8) +
            6*inn.charAt(9) +  8*inn.charAt(10)
        ) % 11) % 10)) return null;
    }
    
    return "Некорректный ИНН";
}


function ftest(x,l)
{
    n = 0;
    while(n<x.length)
    {
        if(((x.charAt(n)<"0")||(x.charAt(n)>"9"))&&(x.charAt(n)!="-"))
            {
                return false;
            }
        n++;
    }
    if(x.length < l)
    {
        return false;
    }
    return true;
}

function checkForm(current, go) { 
	alrt = 'Пожалуйста, заполните все обязательные поля.\n\n';
        var filled = true;
	var focused = false;
	var current;


//	if(current.value) { 
//		var currentid = $.data(current);
//		$(current).addClass('unfilled');
//		$(current).focus();
//	} else { current.value = ''; }

	var x = $(current).attr('id'); 


        $("#wiz input, select").filter(function() { return ($(this).parent().parent().parent().parent().css('display')!='none'); }).filter(function() { return ($(this).css('display')!='none'); }).filter(function() { return ($(this).parents('.add-inspections').length == 0); }).each(function (i){


	//    if(x != 'inn' && $(this).attr('id') == 'inn') alertInn();


            if(trim($(this).val())=='') { 

		if($(this).attr('id') != 'notnec' && $(this).attr('id') != 'maybe') filled = false;
		if(!focused && !current) { 
			current = $(this);
			$(this).focus();
			focused = true;
		}
		if(go && $(this).attr('id') != 'notnec') { 
            		$(this).addClass('unfilled');

		}
            } else if(current) { 
		if($.data(current) != $.data(this)) $(this).removeClass('unfilled');
            } else { 
                $(this).removeClass('unfilled');
            }

        });

	var checkformat = true;
	if(go) checkformat = checkFormat();

	if(filled == true && checkformat == true) return true;
	else return false;
}


	function addkpp(id) {
		 $("#kpp_"+id).before('<input type="text" name="step0[kpp_inspection_add]['+id+'][]" value="" class="text" id="addinspection" maxLength=9 size=9/>&nbsp;');
	    	return false;
	}

	var popwindows = 0;

	jQuery.fn.center = function () {
	    correct = popwindows * 15;
	    this.css("position","absolute");
	    this.css("top", (($(window).height() - this.outerHeight()) / 2) + $(window).scrollTop() - correct + "px");
	    this.css("left", (($(window).width() - this.outerWidth()) / 2) + $(window).scrollLeft() - correct + "px");
	    popwindows++;
	    return this;
	}


$(document).ready(function(){

    $("#navi a").hover(
        function (){
            $(this).parent().addClass('active');
        },
        function (){
            $(this).parent().removeClass('active');
        }
    );

	$("#notice").fadeIn('slow', function() {

    });

    $(".updates-title").click(function() {
        $(".updates-el").slideToggle("slow", function() {
            if($(".updates-el").css('display')=='none') {
                setcookie('updates_list_status','hide');
            } else {
                setcookie('updates_list_status','show');
            }
        });
    });

    /*
    var prices = {
        '1.1': { title: 'Комплект программного комплекса (ПК) "Спринтер"', price: 2650 },

        '1.2': { title: 'Лицензия тип Б на использование комплекта программного комплекса (ПК) "Спринтер" в многопользовательском режиме', price: 950 },
        '1.2.b': { title: 'Лицензия типа НПС на использование экземпляра ПК "Спринтер" в многопользовательском режиме', price: 250 },

        '1.3': { title: 'Создание одного почтового ящика Клиента в системах ЭДО и настройка параметров электронного документооборота с одной налоговой инспекцией', price: 200 },
        '1.4': { title: 'Выпуск сертификата ключа подписи и его  обслуживание', price: 720 },
        '1.5': { title: 'Создание одного почтового ящика Клиента в системах ЭДО и настройка параметров электронного документооборота с одной налоговой инспекцией', price: 576 },
        '1.6': { title: 'Выпуск сертификата ключа подписи  и его  обслуживание ', price: 720 },
        '1.7': { title: 'Предоставление доступа к СЭД  ПФР(на один календарный год)', price: 600 },
        '2.1': { title: 'Базовый комплекс услуг в системе ЭДО "Представление налоговых деклараций в электронном виде по телекоммуникационным каналам связи"   по обмену электронными документами с одной налоговой инспекцией для предприятий применяющих общий режим налогообложения', price: 450, type: 'month' },
        '2.1.1': { title: 'Базовый комплекс услуг в системе ЭДО "Представление налоговых деклараций в электронном виде по телекоммуникационным каналам связи" по обмену электронными документами с одной налоговой инспекцией для предприятий применяющих специальные налоговые режимы', price: 312, type: 'month' },
        '2.1.a': { title: 'Базовый комплекс услуг в системе ЭДО "Представление налоговых деклараций в электронном виде по телекоммуникационным каналам связи" по обмену электронными документами с одной налоговой инспекцией для предприятий , использующих комплект программного комплекса (ПК) "Спринтер" в многопользовательском режиме по лицензии тип Б, и применяющих общий режим налогообложения', price: 396, type: 'month' },
        '2.1.1.a': { title: 'Базовый комплекс услуг в системе ЭДО "Представление налоговых деклараций в электронном виде по телекоммуникационным каналам связи" по обмену электронными документами с одной налоговой инспекцией для предприятий, использующих комплект программного комплекса (ПК) "Спринтер" в многопользовательском режиме по лицензии тип Б, и применяющих специальные налоговые режимы', price: 276 },
        '2.1.2': { title: 'Базовый комплекс услуг в системе ЭДО "Представление налоговых деклараций в электронном виде по телекоммуникационным каналам связи" по обмену электронными документами с одной дополнительной налоговой инспекцией (за каждую дополнительную налоговую инспекцию)', price: 156, type: 'month' },
        '2.1.3': { title: 'Базовый комплекс услуг в системе ЭДО "Представление налоговых деклараций в электронном виде по телекоммуникационным каналам связи" по обмену электронными документами с одной налоговой инспекцией для индивидуальных предпринимателей', price: 156, type: 'month' },
        '2.3': { title: 'Базовый комплекс услуг в системе ЭДО "Представление налоговых деклараций в электронном виде по телекоммуникационным каналам связи" по обмену электронными документами с одной налоговой инспекцией для предприятий , использующих комплект программного комплекса (ПК) "Спринтер" в многопользовательском режиме по лицензии тип НПС', price: 150, type: 'month' },
        '2.4': { title: 'Базовый комплекс услуг в системе ЭДО "Представление налоговых деклараций в электронном виде по телекоммуникационным каналам связи" по обмену электронными документами с одной дополнительной налоговой инспекцией (за каждую дополнительную налоговую инспекцию)', price: 70, type: 'month' },
        '2.7': { title: 'eToken КриптоАРМ', price: 4000 },
        '3.1': { title: 'Настройка параметров электронного документооборота на использование одного существующего почтового ящика Клиента для обмена электронными документами с дополнительными налоговыми инспекциями (за каждую дополнительную налоговую инспекцию)', price: 150 },
        '': { title: '', price: },
        '': { title: '', price: },
        '': { title: '', price: },
        '': { title: '', price: }
    }
    */

    $(".wizard input.is_notfirst_toggle").click(function() {
        if($(this).attr("checked")) {
            $(".wizard .is_notfirst input").each(function() {
                $(this).val('');
            });
            $(".wizard .is_notfirst").show();
        } else {
            $(".wizard .is_notfirst input").each(function() {
                $(this).val('-');
            });
            $(".wizard .is_notfirst").hide();
        }
    });

    $(".wizard input.connect_fns_toggle").click(function() {
        if($(this).attr("checked")) {
            $(".wizard .is_inspections").each(function() {
                $(this).val('');
            });
            $(".wizard .is_inspections").show();
        } else {
            $(".wizard .is_inspections").each(function() {
                $(this).val('-');
            });
            $(".wizard .is_inspections").hide();
        }
    });


    $(".wizard input.connect_ecco_toggle").click(function() {
        if($(this).attr("checked")) {
            $(".wizard #ecco_type").show();
        } else {
            $(".wizard #ecco_type").hide();
        }
    });


    $("#connect_fns_toggle").live('click',function() {

	var check = $("#fns_sub").attr("checked");

	if(check != 1) { 
	     $("#fns_sub").attr("checked", 1);
             $("#fns_sub").show();
	     $("#fns_ico").attr("src", '/i/form-title/d_minus.gif');
        } else {
	     $("#fns_ico").attr("src", '/i/form-title/d_plus.gif');
	     $("#fns_sub").attr("checked", 0);
             $("#fns_sub").hide();
	}
    });


    $("#connect_pfr_toggle").live('click',function() {

	var check = $("#pfr_sub").attr("checked");

	if(check != 1) { 
	     $("#pfr_sub").attr("checked", 1);
             $("#pfr_sub").show();
	     $("#pfr_ico").attr("src", '/i/form-title/d_minus.gif');
        } else {
	     $("#pfr_ico").attr("src", '/i/form-title/d_plus.gif');
	     $("#pfr_sub").attr("checked", 0);
             $("#pfr_sub").hide();
	}
    });


    $("#connect_ecco_toggle").live('click',function() {

	var check = $("#ecco_sub").attr("checked");

	if(check != 1) { 
	     $("#ecco_sub").attr("checked", 1);
             $("#ecco_sub").show();
	     $("#ecco_ico").attr("src", '/i/form-title/d_minus.gif');
        } else {
	     $("#ecco_ico").attr("src", '/i/form-title/d_plus.gif');
	     $("#ecco_sub").attr("checked", 0);
             $("#ecco_sub").hide();
	}
    });


// $("body").keydown(function(e){if((e.keyCode==13||e.keyCode==10)&&(e.target.tagName=="INPUT"||e.target.tagName=="SELECT")){



    $("body").keydown(function(e){
        if(e.keyCode==9) return false;
	if((e.keyCode==13||e.keyCode==10)) {
		checkForm(0);
	}
    });

    $(".wizard form1").submit(function() {
        var filled = true;
	var focused = false;
        $(".wizard input[type=text].text").filter(function() { return ($(this).css('display')!='none'); }).filter(function() { return ($(this).parents('.add-inspections').length == 0); }).each(function (i){
            if(trim($(this).val())=='') {
		if($(this).attr('id') != 'notnec') filled = false;
		if(focused == false) {
            		$(this).addClass('unfilled');
			$(this).focus();
			focused = true;
		}
            } else {
                $(this).removeClass('unfilled');
            }
        });
        return filled;
    });

    $(".hint-folded").bgiframe();

    var zIndexNumber = 1000;
	$('div.box, div.indent-box').each(function() {
		$(this).css('zIndex', zIndexNumber);
		zIndexNumber -= 10;
	});

	$(".add-inspections-linkx").click(function() {
	    var cnt = $(this).siblings('input').length;


	    $(this).before('ИФНС: <input type="text" name="step0[code_inspection_add]['+cnt+']" value="" class="text" id="addinspection" maxLength=4 size=4/> КПП: <input type="text" name="step0[kpp_inspection_add]['+cnt+'][]" value="" class="text" id="addinspection" maxLength=9 size=9/> <a id=kpp_'+cnt+' onClick=addkpp('+cnt+')>+</a><br>');
	    return false;
	});

	$(".add-inspections-link").click(function() {
	    var cnt = $(this).siblings('div').length;
	    var cnth = parseInt($("#lasinsArrayId").val()) + 1;
	    if(cnth > cnt) cnt = cnth;


	    $(this).before('<div>ИФНС: <input type="text" name="step0[code_inspection_add]['+cnt+']" value="" class="text" id="addinspection" maxLength=4 size=4/> КПП: <input type="text" name="step0[kpp_inspection_add]['+cnt+'][]" value="" class="text" id="addinspection" maxLength=9 size=9/> <a id=kpp_'+cnt+' href=javascript:void(0) onClick=addkpp('+cnt+')>Добавить КПП</a> | <a onClick="jQuery(this).parent().remove()" href=javascript:void(0)>Удалить направление</a><br></div>');
	    return false;
	});

	$(".add-kpp-link").click(function() {
	    var cnt = $(this).siblings('input').length;
	    $(this).before('<input type="text" name="step1[org_kpp_add][]" value="" maxLength=9 class="text text-pad" id=kpp/><br>');
	    return false;
	});




    $(".hint").hover(
        function() {
            var position = $(this).position();
            var hintfold = $(this).siblings('.hint-folded').eq(0);
            hintfold.css({ 'top': (position.top+16)+'px', 'left': (position.left-200)+'px' });
            hintfold.show();
            hintfold.bgiframe();
        },
        function() {
            var hintfold = $(this).siblings().filter('.hint-folded');
            hintfold.hide();
            hintfold.css({ 'top': -10000, 'left': -10000 });
        }
    );




    $(".calculate").click(function() {

        var queryString = $('.wizard form').formSerialize();

        $.post('/connect/join/calculate', queryString, function(data) {
            $('#window #windowContent').html(data);
            $('#window').show();
        });
        return false;
    });

    $(".windowClose").live('click',function() {
        $(this).parent().parent().remove();
	popwindows--;
        return false;
    });


    $(".dontremind").live('click',function() {
	var id = $(this).attr('name');
	 $.get('/clients/mail/dontremind/'+id, '', function(data) {
	  return true;
	 });
    });


    $("#showCertBox").live('click',function() {
	$('.expired').show();
	$(this).parent().parent().hide();
	$('#hideCertBox').parent().parent().show();
    });

    $("#hideCertBox").live('click',function() {
	$('.expired').hide();
	$(this).parent().parent().hide();
	$('#showCertBox').parent().parent().show();
    });


});



