$().ready(function(){

	$("#zamawianagra").sexyCombo({skin: "custom"});
	$("#liczbaslotow").sexyCombo({skin: "custom"});
	$("#typserwera").sexyCombo({skin: "custom"});
	$("#okres").sexyCombo({skin: "custom"});
	$("#zkadtrafiles").sexyCombo({skin: "custom"});
	
	function calculatePrice(){
		if(	$("#zamawianagra").val() != '' && 
			$("#liczbaslotow").val() != '' &&
			$("#typserwera").val() != '' &&
			$("#okres").val() != '' ){
				var type = $("#typserwera").val() == 1 ? 'pu' : 'pr';
				var game = $("#zamawianagra").val();
				var slots = $("#liczbaslotow").val();
				var time = $("#okres").val();
				var promotion = promotionArr[time] == null ? 1 : promotionArr[time];
				var result = priceArr[game][type] * slots * time * promotion * 100;
				result = String(Math.ceil(result)/100);
				var temp = result.indexOf(".") == -1 ? 0 : result.indexOf(".") - result.length;
				$('#price').html('Cena za serwer: ' + ((temp == -3) ?  result : (temp == -2 ? (result + '0') : (result + '.00'))) + ' zł'+(promotion == 1 ? ' ' : ('<br />Rabat: ' + (100 - (promotion * 100)) + '%')));
			} else 
				$('#price').html('Cena za serwer: 0 zł');
	}
	calculatePrice();
	$("#zamawianagra").change(function(){ calculatePrice(); });
	$("#liczbaslotow").change(function(){ calculatePrice(); });
	$("#typserwera").change(function(){ calculatePrice(); });
	$("#okres").change(function(){ calculatePrice(); });
	
	jQuery.validator.addMethod("postcode", function(postcode, element) {
		return this.optional(element) || postcode.match(/\d{2}-\d{3}/);
	}, "Wprowadź kod pocztowy w formie XX-XXX");

	jQuery.validator.addMethod("nip", function(value, element) {
		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 += nip[i] * verificator_nip[i]; }
			n %= 11;
			if (n != nip[9]) { return false; }
		}
		return true;	
	}, "Proszę o podanie prawidłowego numeru NIP");

	jQuery.validator.addMethod("pesel", function(value, element) {
		var pesel = value.replace(/[\ \-]/gi, ''); 
		if (pesel.length != 11) { return false; } else {
			var steps = new Array(1, 3, 7, 9, 1, 3, 7, 9, 1, 3); 
			var sum_nb = 0;
			for (var x = 0; x < 10; x++) { sum_nb += steps[x] * pesel[x];}
				sum_m = 10 - sum_nb % 10;
				if (sum_m == 10) { sum_c = 0; } else { sum_c = sum_m;}
				if (sum_c != pesel[10]) {	return false;}
		}
		return true;	
	}, "Proszę o podanie prawidłowego numeru PESEL");

	$("#zamowienie").validate({
		rules: {
			imie: "required",
			nazwisko: "required",
			telefon: {
				required: true,
				number: true
			},
			ulica: "required",
			nrdommieszkania: "required",
			kodpocztowy: {
				required: true,
				postcode: true
			},
			pesel: {
				required: true,
				pesel: true
			},
			miejscowosc: "required",
			zkadtrafiles: "required",
			loginpanel: {
				required: true,
				minlength: 4
			},
			haslopanel: {
				required: true,
				minlength: 6
			},
			haslopanelpotwierdz: {
				required: true,
				minlength: 6,
				equalTo: "#haslopanel"
			},
			email: {
				required: true,
				email: true
			},
			regulamin: "required",
			zamawianagra: {
				required: "#server:checked"
			},
			liczbaslotow: {
				required: "#server:checked"
			},
			typserwera: {
				required: "#server:checked"
			},
			okres: {
				required: "#server:checked"
			}
		}, errorPlacement: function(error, element) {
			$("#zamawianagra").change();
			$("#liczbaslotow").change();
			$("#typserwera").change();
			$("#okres").change();
			$("#zkadtrafiles").change();
			
			if ( element.is(":input") && element.css("display") != "none")
				$("#" + element.attr("id")).after(error);
		}
	});
	var server = $("#server");
	var inital = server.is(":checked");
	if(inital)
		$("#server_field").css("display", "inherit") 
	else
		$("#server_field").css("display", "none");
	server.click(function() {
		if(this.checked) 
			$("#server_field").fadeIn("slow");
		else
			$("#server_field").fadeOut("slow");
	});
	
	$("#zamawianagra").change(function () {
			if($('#zamawianagra').val() != ''){
				$('#liczbaslotow').remove();
				$('#liczbaslotowB').remove();
				$('#ls').html('Liczba Slotów<br /><select name="liczbaslotow" id="liczbaslotow"><option select="">Proszę Wybrać</option></select>');
				var d = priceArr[$("#zamawianagra").val()]['max'];
				var x = 0;
				var i = i = priceArr[$("#zamawianagra").val()]['min'];
				if(Math.floor(i / y) > 0 && y != 1){
					if(i % y == 0){
						x = Math.floor(i / y)-1;
					} else {
						x = Math.floor(i / y);
					}
				}
				for(i = priceArr[$("#zamawianagra").val()]['min']; i <= d; i+=1){
					if(i % y == 0 && y != 1){
						if((i + x) < priceArr[$("#zamawianagra").val()]['max']){	
							x += z;
							d -= z;
						}
					}
					if(i-1 < d){
						$('#liczbaslotow').append('<option value="'+i+'">'+i+(x > 0 ? ' + '+x+' gratis' : '')+'</option>');
					}
				}

				$("#liczbaslotow").removeClass('sexyCombo');
				$("#liczbaslotow").sexyCombo({skin: "custom"});
				$("#liczbaslotow").change(function(){ calculatePrice(); });
				$("#liczbaslotow").change(	function changeSlots() {
														if($("#liczbaslotow").attr("value") > 0){
															if($("#liczbaslotowB").next().is('label'))
																$("#liczbaslotowB").next('label').remove();
															$("#liczbaslotowB").attr("class", "combo custom");
														}else{
															if(!$("#liczbaslotowB").next().is('label'))
																$("#liczbaslotowB").after('<label class="error" for="liczbaslotow" generated="true">To pole jest wymagane.</label>');
															$("#liczbaslotowB").attr("class", "combo customE");
														}
													  });
			}
			
			if($("#zamawianagra").attr("value") > 0){
				if($("#zamawianagraB").next().is('label'))
					$("#zamawianagraB").next('label').remove();
				$("#zamawianagraB").attr("class", "combo custom");
			}else{
				if(!$("#zamawianagraB").next().is('label'))
					$("#zamawianagraB").after('<label class="error" for="zamawianagra" generated="true">To pole jest wymagane.</label>');
				$("#zamawianagraB").attr("class", "combo customE");
			}
        });
		
	$("#liczbaslotow").change(function () {
			if($("#liczbaslotow").attr("value") > 0){
				if($("#liczbaslotowB").next().is('label'))
					$("#liczbaslotowB").next('label').remove();
				$("#liczbaslotowB").attr("class", "combo custom");
			}else{
				if(!$("#liczbaslotowB").next().is('label'))
					$("#liczbaslotowB").after('<label class="error" for="liczbaslotow" generated="true">To pole jest wymagane.</label>');
				$("#liczbaslotowB").attr("class", "combo customE");
			}
        });
		
	$("#typserwera").change(function () {
			if($("#typserwera").attr("value") > 0){
				if($("#typserweraB").next().is('label'))
					$("#typserweraB").next('label').remove();
				$("#typserweraB").attr("class", "combo custom");
			}else{
				if(!$("#typserweraB").next().is('label'))
					$("#typserweraB").after('<label class="error" for="typserwera" generated="true">To pole jest wymagane.</label>');
				$("#typserweraB").attr("class", "combo customE");
			}
        });
		
	$("#okres").change(function () {
			if($("#okres").attr("value") > 0){
				if($("#okresB").next().is('label'))
					$("#okresB").next('label').remove();
				$("#okresB").attr("class", "combo custom");
			}else{
				if(!$("#okresB").next().is('label'))
					$("#okresB").after('<label class="error" for="okres" generated="true">To pole jest wymagane.</label>');
				$("#okresB").attr("class", "combo customE");
			}
        });
		
	$("#zkadtrafiles").change(function () {
			if($("#zkadtrafiles").attr("value") > 0){
				if($("#zkadtrafilesB").next().is('label'))
					$("#zkadtrafilesB").next('label').remove();
				$("#zkadtrafilesB").attr("class", "combo custom");
			}else{
				if(!$("#zkadtrafilesB").next().is('label'))
					$("#zkadtrafilesB").after('<label class="error" for="zkadtrafiles" generated="true">To pole jest wymagane.</label>');
				$("#zkadtrafilesB").attr("class", "combo customE");
			}
        });
});
