$(document).ready(function() { 

	$("input[type='checkbox']").after("<div class='checkbox-bg'></div>");
	
	$(".browser select").bind("change",function(){

		url = $(this).val();
		window.location = url;

	});
	
	
	// $("a[rel='lightbox']").fancybox({
	// 	'titleShow'		: false,
	// 	'transitionIn'	: 'elastic',
	// 	'transitionOut'	: 'elastic'
	// });


	/* Slider (Carousel) */

	if($("#slider") && $("#slider").easySlider) {
		$("#slider").easySlider({auto:true,continuous:true});
	}
	
	
	    // select #flowplanes and make it scrollable. use circular and navigator plugins 
	    // $("#carousel").scrollable({size: 1}).circular();
	$("#browsable").scrollable({size: 1}).circular().navigator().autoscroll({ 
	    autoplay: true, 
	    interval: 5000         
	});
	
	var i = 0;
	var len = $(".items a").length - 1;
	$(".items a").each(function(){
		if(i!=0 && i!=len) {
			$(this).attr("rel","group1");	
		}
		i=i+1;
		});
	
	
	$(".items a[rel='group1']").fancybox();
	$("a[rel='lightbox']").fancybox();
	$("a[rel='lightbox2']").fancybox();
	
	
	$.extend($.validator.messages, {
		required: "To pole jest wymagane.",
		remote: "Proszę o wypełnienie tego pola.",
		email: "Proszę o podanie prawidłowego adresu email.",
		url: "Proszę o podanie prawidłowego URL.",
		date: "Proszę o podanie prawidłowej daty.",
		dateISO: "Proszę o podanie prawidłowej daty (ISO).",
		number: "Proszę o podanie prawidłowej liczby.",
		digits: "Proszę o podanie samych cyfr.",
		creditcard: "Proszę o podanie prawidłowej karty kredytowej.",
		equalTo: "Proszę o podanie tej samej wartości ponownie.",
		accept: "Proszę o podanie wartości z prawidłowym rozszerzeniem.",
		maxlength: $.validator.format("Proszę o podanie nie więcej niż {0} znaków."),
		minlength: $.validator.format("Proszę o podanie przynajmniej {0} znaków."),
		rangelength: $.validator.format("Proszę o podanie wartości o długości od {0} do {1} znaków."),
		range: $.validator.format("Proszę o podanie wartości z przedziału od {0} do {1}."),
		max: $.validator.format("Proszę o podanie wartości mniejszej bądź równej {0}."),
		min: $.validator.format("Proszę o podanie wartości większej bądź równej {0}.")
	});
	
	
	$.validator.addMethod("NumbersOnly", function(value, element) {
		return this.optional(element) || /^[0-9\-\+]+$/i.test(value);
	}, "Pole „telefon” może zawierać tylko liczby.");
	$.validator.addMethod("username", function(value, element) {
	    return this.optional(element) || /^[a-z0-9\-]+$/i.test(value);
	}, "Adres nie może zawierać innych znaków niż: litery, liczby i średniki.");
	$.validator.addMethod("nozero", function(value, element) {
	    return this.optional(element) || /^[1-9][0-9]*$/i.test(value);
	}, "To pole jest wymagane");
	/*$.validator.addMethod("domain", function(value, element) {
	    return this.optional(element) || /^([a-z0-9\-]+\.)+[a-z]{2,}$/i.test(value);
	}, "Proszę podać prawidłową domene");*/
	$.validator.addMethod("domain_prefix", function(value, element) {
	    return this.optional(element) || /^[a-z0-9\-\.]+$/i.test(value);
	}, "Proszę podać prawidłową domene");
	$.validator.addMethod("zip_code", function(value, element) {
	    return this.optional(element) || /^[0-9]{2,}\-[0-9]{3,}$/i.test(value);
	}, "Proszę podać kod pocztowy w formacie XX-XXX");	
	$.validator.addMethod("phone_digit_count", function(value, element) {
		phone = value.replace(/\-/g, "").replace(/ /g, "");
		if(phone.substr(0,1) == "0") {
			phone = phone.substr(1);
		}
	    return this.optional(element) || /^[0-9]{9,9}$/i.test(phone);
	}, "Numer telefonu musi zawierać dokładnie 9 cyfr");	
	$.validator.addMethod("nip-XXX", function(value, element) {
        var isIE6 = /msie|MSIE 6/.test(navigator.userAgent);

        if(isIE6) {
            //return true;
        }
	var verificator_nip = new Array(6,5,7,2,3,4,5,6,7); var nip = value.replace(/[\ \-]/gi, ''); 
	if (nip.length != 10)  { 
            return false; 
        } else  {
	    var n = 0;
	    for (var i=0; i<9; i++) {	
                n += parseInt(nip.substr(i,1)) * verificator_nip[i]; 
            }
	    n %= 11;
	    if (n != nip.substr(9,1)) { 
                return false; }
	    }
	    return true;	
	}, "Proszę o podanie prawidłowego numeru NIP");
	$.validator.addMethod("validate_discount", function(value, element) {
	        var ts = new Date().getTime();
                var product = "saas";
                if($(element).hasClass("product_license")) {
                  product = "license";
                }
                var qs = "discount="+value+"&noCache="+ts+"&product="+product
		var result = $.ajax({
		  url: "http://" + document.domain + "/validate-discount.php",
		  context: document.body,
		  async: false,
		  data: qs
		});
		
		eval("var result = "+result.responseText);
		
		return this.optional(element) || result.isValid;
		
	}, "Kupon nie istnieje lub jest nieaktywny");

    $("#order.step-3").validate();	
    $("#order.step-2").validate();	
    $("#order.step-1").validate();
	//$("#order.step-1").validate({rules: {subdomain: {minlength: 4}}});
	//$("#order.step-1").validate({rules: {domain: "domain_prefix"}});

    $("#order.step-0").validate();
    $("#contact").validate();


	$.extend({URLEncode:function(c){var o='';var x=0;c=c.toString();var r=/(^[a-zA-Z0-9_.]*)/;
	  while(x<c.length){var m=r.exec(c.substr(x));
	    if(m!=null && m.length>1 && m[1]!=''){o+=m[1];x+=m[1].length;
	    }else{if(c[x]==' ')o+='+';else{var d=c.charCodeAt(x);var h=d.toString(16);
	    o+='%'+(h.length<2?'0':'')+h.toUpperCase();}x++;}}return o;},
	URLDecode:function(s){var o=s;var binVal,t;var r=/(%[^%]{2})/;
	  while((m=r.exec(o))!=null && m.length>1 && m[1]!=''){b=parseInt(m[1].substr(1),16);
	  t=String.fromCharCode(b);o=o.replace(m[1],t);}return o;}
	});


//FORMULARZE - obsluga Back button


	if($.cookie("form_data_1")!=null) {

		var h_data = $.evalJSON($.cookie("form_data_1"));
		
		//checkujemy wszystkie radio buttony
		$("form#order input[type='radio']").each(function(){
			if(h_data[$(this).attr("name")]!=null) {
				if(h_data[$(this).attr("name")]==$(this).attr("value")) {
					 $(this).attr('checked', true);
				}
			}
		});
		$("form#order input[type='text']").each(function(){
			if(h_data[$(this).attr("name")]!=null) {
				$(this).val(h_data[$(this).attr("name")]);
			}
		});
		$("form#order textarea").each(function(){
			if(h_data[$(this).attr("name")]!=null) {
				$(this).val(h_data[$(this).attr("name")]);
			}
		});
		$("form#order input[type='checkbox']").each(function(){
			if(h_data[$(this).attr("name")]=="1") {
				//$(this).attr('checked', true);
			}
		});
		$("form#order select").each(function(){
			if(h_data[$(this).attr("name")]!=null) {
				h_val = h_data[$(this).attr("name")];
				$(this).find("option").each(function(){
					if($(this).attr("value")==h_val) {
						$(this).attr("selected",true);	
					}
				});
			}
		});
	}
	
	if($.cookie("form_data_2")!=null) {
		
		var h_data = $.evalJSON($.cookie("form_data_2"));
	
		//wypelniamy inputy w step-2
		$("form#order.step-2 input[type='text']").each(function(){
			if(h_data[$(this).attr("name")]!=null) {
				$(this).val(h_data[$(this).attr("name")]);
			}
		});
		$("form#order textarea").each(function(){
			if(h_data[$(this).attr("name")]!=null) {
				$(this).val(h_data[$(this).attr("name")]);
			}
		});
		$("form#order.step-2 input[type='checkbox']").each(function(){
			if(h_data[$(this).attr("name")]=="1") {
				$(this).attr('checked', true);
			}
		});
		$("form#order select").each(function(){
			if(h_data[$(this).attr("name")]!=null) {
				h_val = h_data[$(this).attr("name")];
				$(this).find("option").each(function(){
					if($(this).attr("value")==h_val) {
						$(this).attr("selected",true);	
					}
				});
			}
		});
	}

	
	$("form#order.step-1").bind("submit",function(){
		var h={};
		var submited = $(this).serialize();
		submited = submited.split("&");
		$(submited).each(function(){
			a = this.split("=");
			o = $.URLDecode(a[1]);
			o = o.replace(/\+/gi, " ")
			h[a[0]] = o;
			
		});
		$.cookie("form_data_1",$.toJSON(h));
	});
	$("form#order.step-2").bind("submit",function(){
		var h={};
		var submited = $(this).serialize();
		submited = submited.split("&");
		$(submited).each(function(){
			a = this.split("=");
			o = $.URLDecode(a[1]);
			o = o.replace(/\+/gi, " ")
			h[a[0]] = o;
		});
		$.cookie("form_data_2",$.toJSON(h));
	});
	
	//kasuj cookie gdy wyjdzie sie poza obszar formularzy
	if($("form#order").size()==0) {
		$.cookie('form_data_1', null);
		$.cookie('form_data_2', null);
		$.cookie('form_data_3', null);		
	}
	
// /backbutton
	
	
	//Order form magic
	$("form#order .server-choice > input").click(function(){
		$(this).parent().parent().children(".server-choice").children("div").hide();
		$(this).parent().parent().find("select").hide()
		//$(".server-choice > div").hide();
		$(this).parent().children("div").show();
		$(this).parent().find("select").show()
	});
	//$(".server-choice").first().children("input").click();
	//$("fieldset.profile + fieldset.profile").children("div").first().children("input").click()
	$(".server-choice input[type='radio']").each(function(){

	    if($(this).attr("checked")==true) {
	        $(this).click();
	    }

	});

	$("#country").change(function() {
		if($(this).val() != "PL") {
			$("#nip").removeClass("nip");
			$("#postcode").removeClass("zip_code");
			$("#telephone").removeClass("phone_number");
			$("#telephone").removeClass("phone_digit_count");
		} else if($("#client_type").val() == "2") {
			$("#nip").addClass("nip");
			if($(".create-trial")) {
				$("#postcode").addClass("zip_code");
				$("#telephone").addClass("phone_number");
				$("#telephone").addClass("phone_digit_count");
			}
		}
	});	
	$("#country").change();
	
	$("#other_country").change(function() {
		if($(this).val() != "PL") {
			$("#other_nip").removeClass("nip");
		} else if($("#other_client_type").val() == "2") {
			$("#other_nip").addClass("nip");
		}
	});
	$("#other_country").change();
	
	$("#client_type").change(function(){
		if($("#client_type").val() == "1") {
			$("tr.company_name").hide();
			$("tr.nip").hide();
			$("tr.firstname").show();
			$("tr.lastname").show();
			$("tr.pesel").show();
			
			$("#company_name").removeClass("required");
			$("#nip").removeClass("required");
			$("#nip").removeClass("nip");
			$("#firstname").addClass("required");
			$("#lastname").addClass("required");
		}else{
			$("tr.company_name").show();
			$("tr.nip").show();
			$("tr.firstname").hide();
			$("tr.lastname").hide();
			$("tr.pesel").hide();
			
			$("#company_name").addClass("required");
			$("#nip").addClass("required");
			$("#nip").addClass("nip");
			$("#firstname").removeClass("required");
			$("#lastname").removeClass("required");
			$("#country").change();
		}
	});
	$("#client_type").change();
	$("#other_client_type").change(function(){
		if($("#other_client_type").val() == "1") {
			$("tr.other_company_name").hide();
			$("tr.other_nip").hide();
			$("tr.other_firstname").show();
			$("tr.other_lastname").show();
			$("tr.other_pesel").show();
			$("#other_nip").removeClass("nip");
		}else{
			$("tr.other_company_name").show();
			$("tr.other_nip").show();
			$("tr.other_firstname").hide();
			$("tr.other_lastname").hide();
			$("tr.other_pesel").hide();
			$("#other_nip").addClass("nip");
		}
	});
	$("#other_client_type").change();
	$("#other_address_shipping").change(function(){
		if($('#other_address_shipping').attr('checked')) {
			$("tr.other_client_type").show();
			$("tr.other_company_name").show();
			$("tr.other_nip").show();
			$("tr.other_firstname").show();
			$("tr.other_lastname").show();
			$("tr.other_pesel").show();
			$("tr.other_address").show();
			$("tr.other_postcode").show();
			$("tr.other_city").show();
			$("tr.other_country").show();
			
			$("#other_client_type").change();
			$("#other_nip").addClass("nip");
		}else{
			$("tr.other_client_type").hide();
			$("tr.other_company_name").hide();
			$("tr.other_nip").hide();
			$("tr.other_firstname").hide();
			$("tr.other_lastname").hide();
			$("tr.other_pesel").hide();
			$("tr.other_address").hide();
			$("tr.other_postcode").hide();
			$("tr.other_city").hide();
			$("tr.other_country").hide();
			$("#other_nip").removeClass("nip");
		}
	});
	$("#other_address_shipping").change();
	$("#other_address_shipping").change();
	
	$("a.change").click(function(event){
		event.preventDefault();
		$(this).parent().find("input").removeClass("invisible");
		$(this).parent().find("input").css("margin-bottom",".5em");
	});
	
	$("form#order input[type='submit']").click(function(){
		$("form#order").submit();
	});
	
	
	//zawsze jak odzanaczy sie jakies pole
	$(".server-choice input[type=text]").focusout(function(){
		
		//poprawianie polozenia labela.error
		$("label.error").each(function(){
			var tmp = $(this);
			if($(tmp).css("display") == "inline")
				$(tmp).css("display","block");
			var parent = $(this).parent();
			$(this).remove();
			$(parent).append($(tmp));
		})
		
		//poprawianie walidacji wylaczonej przy wysylaniu formularza
		$(".server-choice > div").find("input._required").each(function(){$(this).removeClass("_required");$(this).addClass("required")})
		$(".server-choice > div").find("input._domain").each(function(){$(this).removeClass("_domain");$(this).addClass("domain")})
		$(".server-choice > div").find("input._domain_prefix").each(function(){$(this).removeClass("_domain_prefix");$(this).addClass("domain_prefix")})
		$(".server-choice > div").find("input._username").each(function(){$(this).removeClass("_username");$(this).addClass("username")})
	});
	$("fieldset.profile input#subdomain").focusout(function(){
		
		//poprawianie polozenia labela.error
		$("label.error").each(function(){
			var tmp = $(this);
			if($(tmp).css("display") == "inline")
				$(tmp).css("display","block");
			var parent = $(this).parent();
			$(this).remove();
			$(parent).append($(tmp));
		});
	});
	

	$("form#order").submit(function () {

		//wywalanie walidacji dla ukrytych
		$(".server-choice > div:hidden").find("input.required").each(function(){$(this).removeClass("required");$(this).addClass("_required")})
		$(".server-choice > div:hidden").find("input.domain").each(function(){$(this).removeClass("domain");$(this).addClass("_domain")})
		$(".server-choice > div:hidden").find("input.domain_prefix").each(function(){$(this).removeClass("domain_prefix");$(this).addClass("_domain_prefix")})
		$(".server-choice > div:hidden").find("input.username").each(function(){$(this).removeClass("username");$(this).addClass("_username")})
		// $(".server-choice > div:hidden").find("input").removeClass("required");
		// $(".server-choice > div:hidden").find("input").removeClass("domain");
		// $(".server-choice > div:hidden").find("input").removeClass("domain_prefix");
		

		//dodawanie zer dla walidora
		
		// $(".server-choice > div").each(function() {
		// 	
		//     if($(this).is(":hidden")) {
		// 		//$(this).children("input").remove();
		//         //$(this).children("input").val("0");
		// 		$(this).find("input").removeClass("required");
		//         //$(this).remove();
		//     }
		// });
		
		$("form#order tr").each(function() {
		
		    if($(this).is(":hidden")) {
				$(this).find("input").removeClass("required");
		    }
			
		});
		
		//poprawianie polozenia label.error
		
		$("label.error").each(function(){
			var tmp = $(this);
			var parent = $(this).parent();
			$(this).remove();
			$(parent).append($(tmp));
		})
		
		//poprawianie wpisanych domen
		if($("input#domain").is(":visible")) {
			$("input#subdomain").val("");
			$("input#existingdomain").val("");
		
			$("input#domain").val($("input#domain").val().toLowerCase());
			$("input#domain").val($("input#domain").val().replace(/[\s\xA0]/g, ''));
		}
		if($("input#subdomain").is(":visible")) {
			$("input#domain").val("");
			$("input#existingdomain").val("");
		
			$("input#subdomain").val($("input#subdomain").val().toLowerCase());
			$("input#subdomain").val($("input#subdomain").val().replace(/[\s\xA0]/g, ''));
		}
		if($("input#existingdomain").is(":visible")) {
			$("input#subdomain").val("");
			$("input#domain").val("");
		
			$("input#existingdomain").val($("input#existingdomain").val().toLowerCase());
			$("input#existingdomain").val($("input#existingdomain").val().replace(/[\s\xA0]/g, ''));
		}
	
		return true;
	});
	
	var loadUrl_subdomain = "http://" + document.domain + "/assets/snippets/shoper/webapi-check-subdomain.php";
	//var loadUrl_subdomain = "http://shoper.pl/assets/snippets/shoper/webapi-check-subdomain-test.php";
	var loadUrl_domain = "http://" + document.domain + "/assets/snippets/shoper/webapi-check-domain.php";
	//var subdomain = $("input#subdomain").val();
	//var domain = $("input#domain").val() + $("input#domain_postfix").val();
	//var domain_postfix = $("input#domain_postfix").val();

     $("a.subdomainValidation").click(function(e){
		 e.preventDefault();
		
		if($("input#subdomain").val()=="" || $("input#subdomain").val()==null) {
			// $("#subdomain").parent().find("label").remove();
			// $("#subdomain").parent().append('<label generated="true" class="error">Musisz podać domenę</label>');
			// $("a.subdomainValidation").parent().parent().find("input").removeClass("success");
			// $("a.subdomainValidation").parent().parent().find("input").addClass("error");
			// 
			// $("input#subdomain").bind("blur",function(event){
			// 	$("#subdomain").parent().find("label").remove();
			// 	$(this).removeClass("error");
			// 	$(this).unbind(event);
			// });
			
			return false;
		}
		if($("input#subdomain").val().match(/^[a-z0-9\-]+$/i)==null) {
			
			return false;
		}
		
		var subdomain = $("input#subdomain").val().toLowerCase();
		subdomain = subdomain.replace(/[\s\xA0]/g, '');
		
		
         $("a.subdomainValidation + .ico").show();  
         $.post(  
             loadUrl_subdomain,  
             {subdomain: subdomain},  
             function(responseText){
				//console.log(responseText);
				if(responseText=="1"){
					$("#subdomain").parent().find("label").remove();
					$("#subdomain").parent().append('<label generated="true" class="success checker">Domena jest wolna</label>');
					$("a.subdomainValidation").parent().parent().find("input").removeClass("error");
					$("a.subdomainValidation").parent().parent().find("input").addClass("success");
					$("a.subdomainValidation").parent().parent().find("input").addClass("checker");
				}else{
					$("#subdomain").parent().find("label").remove();
					$("#subdomain").parent().append('<label generated="true" class="error checker">Domena jest zajęta</label>');
					$("a.subdomainValidation").parent().parent().find("input").removeClass("success");
					$("a.subdomainValidation").parent().parent().find("input").addClass("error");
					$("a.subdomainValidation").parent().parent().find("input").addClass("checker");
				}
				$.ajax({
					type: "GET",
					url: "http://shoper.pl/assets/snippets/shoper/logger-check.php",
					data: {subdomain: subdomain, response: responseText},
					dataType: "html",
					error: function(){
						//console.log("BLAD! wgrywania loggera");
						$("a.subdomainValidation + .ico").hide();
					},
					success: function(data){
						$("a.subdomainValidation + .ico").hide();
					}
				});
				val_subdomain = $("input#subdomain").val();
         		 //$("a.subdomainValidation + .ico").hide();
             },  
             "html"  
         );  
     });

     $("a.domainValidation").click(function(e){
		 e.preventDefault(); 
		
		if($("input#domain").length) {
			var dObject =  "";
		} else {
			var dObject =  "2";
		}
		
		if($("input#domain"+dObject).val()=="") {
			// $("input#domain").parent().find("label").remove();
			// $("input#domain").parent().append('<label generated="true" class="error">Musisz podać domenę</label>');
			// $("a.domainValidation").parent().parent().find("input").removeClass("success");
			// $("a.domainValidation").parent().parent().find("input").addClass("error");
			// $("input#domain").bind("blur",function(event){
			// 	$("input#domain").parent().find("label").remove();
			// 	$(this).removeClass("error");
			// 	$(this).unbind(event);
			// });
			
			return false;
		}
		
		if($("input#domain"+dObject).val().match(/^[a-z0-9\-]+$/i)==null) {
			
			return false;
		}		
		
		var domain = $("input#domain"+dObject).val().toLowerCase() + $("select#domain_postfix").val();
		domain = domain.replace(/[\s\xA0]/g, '');
		
         $("a.domainValidation + .ico").show();  
         $.post(  
             loadUrl_domain,  
             {domain: domain},  
             function(responseText){
				if(responseText=="1"){
					$("#domain"+dObject).parent().find("label").remove();
					$("#domain"+dObject).parent().append('<label generated="true" class="success checker">Domena jest wolna</label>');
					$("a.domainValidation").parent().parent().find("input").removeClass("error");
					$("a.domainValidation").parent().parent().find("input").addClass("success");
					$("a.domainValidation").parent().parent().find("input").addClass("checker");
				}else{
					$("#domain"+dObject).parent().find("label").remove();
					$("#domain"+dObject).parent().append('<label generated="true" class="error checker">Domena jest zajęta</label>');
					$("a.domainValidation").parent().parent().find("input").removeClass("success");
					$("a.domainValidation").parent().parent().find("input").addClass("error");
					$("a.domainValidation").parent().parent().find("input").addClass("checker");
				}
				$.ajax({
					type: "GET",
					url: "http://shoper.pl/assets/snippets/shoper/logger-check.php",
					data: {domain: domain, response: responseText},
					dataType: "html",
					error: function(){
						//console.log("BLAD! wgrywania loggera");
						$("a.domainValidation + .ico").hide();
					},
					success: function(data){
						$("a.domainValidation + .ico").hide();
					}
				});
				val_domain = $("input#domain"+dObject).val();
         		 //$("a.domainValidation + .ico").hide();  
             },  
             "html"  
         );  
     });

	//wywalanie informacji od checkera przy zmianie:
	function clearNotices() {
		$("input.success.checker").removeClass("success").removeClass("checker");
		$("input.error.checker").removeClass("error").removeClass("checker");
		$("label.checker").remove();
	}
	//event
	$("input#subdomain,input#domain").keyup(function() {
		if($(this).is(".checker")) {
			if($(this).is("#subdomain")) {
				var current_val = $(this).val();
			    if (current_val != val_subdomain) {
					clearNotices();
			        //console.log('changed from', val_subdomain, 'to', current_val);
			        val_subdomain = current_val;
			    }
			}
			else {
				var current_val = $(this).val();
			    if (current_val != val_domain) {
					clearNotices();
			        //console.log('changed from', val_domain, 'to', current_val);
			        val_domain = current_val;
			    }
			}
		}
	});
	

	if ($.browser.msie && $.browser.version <= 7 ) {
		$("#aside ul.key-features li:last").css("background","none");	
	}
	
});

$(function() {
    $("form.create-trial").submit(function() {
    //alert($("input.error").length);
    if($("input.error").length == 0 && $('#create-trial').length == 1) {
        $('#create-trial').css("display", "none");
        $('#create-trial-loading').css("display", "inline");

        
    }
    return true;
    });
});
