$(document).ready(function() {
	banner = Math.round(Math.random()*1);
	$('div#header').css("background-image", "url('/img/headers/"+banner+".jpg')");
	
	$.ajaxSetup({
		scriptCharset: "utf-8"
	});
	$(function() {
		$('.menuItem').hover( function() {
			$(this).attr("src", $(this).attr("src").split(".").join("_shade."));
		}, function() {
			$(this).stop(true,false);
			$(this).attr("src", $(this).attr("src").split("_shade.").join("."));
		});

		var toggle = function(direction, display) {
			return function() {
				var self = this;
				var ul = $("ul", this);
				if( ul.css("display") == display && !self["block" + direction] ) {
					self["block" + direction] = true;
					ul["slide" + direction]("fast", function() {
						self["block" + direction] = false;
					});
				}
			};
		};
		$("li.item").hover(toggle("Down", "none"), toggle("Up", "block"));

		$("p.fold").hide();
		$(".readmore").click(function() {
			if($(this).next().is(":visible")) {
				$(this).next().hide("blind");
			} else {
				$(this).next().show("blind");
			}
			SetBodyHeight();
		});	

		$('input#NewsletterEmail').focusin( function() {
			if($(this).val() == 'Din e-postadress') {
				$(this).val('');
			}
		});
		$('input#NewsletterEmail').focusout(function() {
			if($(this).val() === '') {
				$(this).val('Din e-postadress');
			}
		});

		$('form#Newsletter').submit(function(e) {
			$.ajax({
				cache: false,
				type: 'POST',
				url: '/functions/prenumereraPaNyhetsbrev.php',
				data: {
					email:	$('input#NewsletterEmail').val()
				},

				success: function(msg) {
					alert(msg);
				}
			});
			e.preventDefault();
		});

		$("#datepicker").datepicker({
			beforeShowDay: onlySaturdays,
			dateFormat: "yy-mm-dd",
			dayNamesMin: ['Sö', 'Må', 'Ti', 'On', 'To', 'Fr', 'Lö'],
			firstDay: 1,
			minDate: new Date(),
			monthNames: ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli',
					'Augusti', 'September', 'Oktober', 'November', 'December'],
			onSelect: getAvailableHoursForDate, 
			showWeek: true,
			weekHeader: 'V.'
		});
		if($("#datepicker")) {
			$("#datepicker").attr("readonly", "readonly");
			if($("#datepicker").val() !== '') {
				getAvailableHoursForDate($("#datepicker").val());
			}
		}
	});

	function onlySaturdays(date) {
		var day = date.getDay(), Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6;
	        var closedDays = [[Monday], [Tuesday], [Wednesday], [Thursday], [Friday], [Sunday]];
	        for (var i = 0; i < closedDays.length; i++) {
		   if (day == closedDays[i][0]) {
			  return [false];
		   }
		}
		return [true];
	}

	function getAvailableHoursForDate(date) {
		$.ajax({
			cache: false,
			type: 'POST',
			url: '/functions/GetBookedPrivates.php',
			data: 'date='+date,
			success: function(msg) {
				counter = 0;
				var opts = { 
					'time1': msg.time1, 
					'time2': msg.time2, 
					'time3': msg.time3, 
					'time4': msg.time4, 
					'time5': msg.time5, 
					'time6': msg.time6, 
					'time7': msg.time7
				};
				$("#timepicker option").each(function(index, elem) {
					$(elem).removeAttr('disabled');		
					if(opts[elem.id] == 'taken') {
						$(elem).attr('disabled', 'disabled');		
						counter++;
					}
				});
				if(counter != 7) {
					$("#timepicker").removeAttr('disabled');
				}
				else {
					$("#timepicker").attr('disabled', 'disabled');
				}
			}
		});
	}

	$('form#contactForm').validate({
		rules: {
			namn: "required",
			amne: "required",
			fraga: "required",
			email: {
				required: true,
				email: true
			}
		},
		messages: {
			namn: "Du måste ange ditt namn",
			amne: "Du måste ange ett ämne",
			fraga: "Du måste skriva något",
			email: "Du måste ange en riktig epostadress"
		},
		errorPlacement: function(error, element) {
			error.insertAfter('#SubmitContactForm');
		}
	});
	$('form#Newsletter').validate().element('#NewsletterEmail');
	$('#NewsletterEmail').rules('add', {
		required: true,
		email: true
	});
	$('#postnummer').mask('999 99');
	$('#mobiltelefon').mask('999-999 99 99');
	$('#personnummer').mask('999999-9999');
	$('form.bokning').validate({
		rules: {
			datepicker: "required",
			timepicker: "required",
			fornamn: "required",
			efternamn: "required",
			adress: "required",
			postnummer: "required",
			ort: "required",
			mobiltelefon: "required",
			email: {
				required: true,
				email: true
			},
			personnummer: {
				required: true,
				personnummer: true
			},
			godkannerAvtal: "required"
		},
		messages: {
			godkannerAvtal: "Du måste godkänna villkoren"
		},
		errorPlacement: function(error, element) {
			error.insertAfter(element);
			error.css("color", "red");
			error.css("float", "right");
		}
	});
	$.validator.messages.required = 'Måste anges';
	$.validator.messages.personnummer = 'Ange giltigt persnr. Minst 18 år.';
	$.validator.messages.email = 'Giltig epostadress måste anges';

	$("[deltagare]").change(function() {

	});

	var Summa = 0;
	var discount = 1;
	$('form.bokning input[name="kurser[]"]').click(function() {
		$this = $(this);
		$.ajax({
			cache:	false,
			type:	'POST',
			url:	'/functions/GetPriceForClass.php',
			data:	'id='+$(this).val(),
			success:UppdateraSumma
		});

		function UppdateraSumma(summa) {
			if($('form.bokning input[name="kurser[]"]:checked').length == 2) {
				discount = 0.9;
			}
			else if($('form.bokning input[name="kurser[]"]:checked').length > 2) {
				discount = 0.85;
			}
			else {
				discount = 1;
			}
				
			if($this.is(':checked')) {
				Summa += parseInt(summa);
			}
			else {
				Summa -= parseInt(summa);
			}	  
			$('#Summa').html(Summa * discount);
		}
	});
	
	$('form.bokning input#rabattkod').change(function() {
		if($(this).val().length == 8) {
			$.ajax({
				cache:	false,
				type:	'POST',
				url:	'/functions/GetDiscountValue.php',
				data:	'code='+$(this).val(),
				success:function(msg) {
					$('#Summa').html((Summa - parseInt(msg)) * discount);
				}
			});
		}
	});
	$('form.bokning').submit(function(e) {
		if($('form.bokning').valid()) {
			$('<p><img src="/img/ajax_big.gif" alt="Ajax loader" /> Vänligen vänta medan vi behandlar din beställning och skickar dig vidare till vår betalpartner, Auriga ePayments.</p>').dialog({
				closeOnEscape: false,
				height: 70,
				modal: true,
				resizable: false,
				width: 575
			});
			$.ajax({
				cache:	false,
				type:	'POST',
				url:	'/functions/SignUpBook.php',
				data:	$(this).serialize(),
				success:function(msg) {
					$(location).attr('href','https://epayment.auriganet.eu/paypagegw?'+msg);
				}
			});
		}
		e.preventDefault();
	});

	SetBodyHeight();
});

function SetBodyHeight()
{
        var spotlightY = $('div#spotlight').outerHeight();
        var mainY;
	$('div#main').innerHeight() > $(window).height() ? mainY = $('div#main').innerHeight() : mainY = $(window).height();
	spotlightY < mainY ? $('div#pbody').css("height", (mainY+45)+"px") : $('div#pbody').css("height", (spotlightY+40)+"px");
        $('div#borderShadow').css("height", $('div#pbody').innerHeight()+"px");
}

function showThumbs(id)
{
	if($(id).css('visibility') === "" || $(id).css('visibility') == "hidden") {
		$(id).css('margin', "10px 0px 0px 0px");
		$(id).css('visibility', "visible");
		$(id).css('height', "100px");
		$('div#pbody').css('height', $('div#pbody').innerHeight()+100+"px");
	}
	else {
		$(id).css('margin', "0px");
		$(id).css('visibility', "hidden");
		$(id).css('height', "0px");
		$('div#pbody').css('height', $('div#pbody').innerHeight()-100+"px");
	}
	$('#borderShadow').css('height', $('div#pbody').innerHeight()+"px");
}

function visaVillkor(show, lang)
{
	if(!show) {
		if( $('div#popupDiv') ) {
			$('div#popupDiv').remove();
		}
	}
	else {
		$('<div/>', {
			'id': 'popupDiv'
		}).css( {
			'padding': '10px', 
			'top': $(window).scrollTop()+'px'
		}).appendTo('body');
		$('div#popupDiv').load('/includes/'+lang+'/villkor.html');
	}
}

function valideraAlder(pNr, vMinimi) 
{
	var year = pNr.substring(0,2);
	year = '19'+year;
	var month = pNr.substring(2,4);
	var day = pNr.substring(4,6);
	var d = new Date();
	var cAge; // Personens faktiska ålder ( endast årtal )
	cAge = d.getFullYear()-year;
	if( parseInt(cAge) > parseInt(vMinimi)) {
		return true;
	} else if( cAge == vMinimi) {
		// Årtalet är rätt, men har vi fyllt så mycket ännu?
		if( (d.getMonth()+1)>= parseInt(month) ) {
			return true;
		}
	}
	return false;
}

$.validator.addMethod('personnummer', function(value) {
	var Personnummer = value.replace(/-/g,'');
	var n;
	var Sum = 0;
	var Ceil = 0;
	var checkSum = '';
	for(var i = 0; i < Personnummer.length-1; i++) {
		n = Personnummer.substring(i, i+1);

		if(i % 2 === 0) {
			checkSum += (n * 2);
		}
		else {
			checkSum += n;
		}
	}

	for(i = 0; i < checkSum.length; i++) {
		Sum += parseInt(checkSum.substring(i, i+1));
	}

	Ceil = Math.ceil(Sum / 10);

	if(Ceil * 10 - Sum == Personnummer.substring(9,10)) {
		if(valideraAlder(Personnummer, 18)) {
			return true;
		}
		else {
			return false;
		}
	}
	else {
		return false;
	}
});
