
$(document).ready(function(){
	if ($('#carousel').length) {
		var els = $('#sleigh img');
		var ind = 0;
		var maxind = els.length;
		switchIt();
	}
	
	function switchIt() {
		$("#sleigh").animate({ 
			marginLeft: -(ind*952)+"px"
		}, 480 ).wait(10000,function(){
			ind++;
			if (ind>=maxind) ind = 0;
			switchIt();
		});
	}
	
	if ($('#calone').length != 0) {
		$(".pend, .startpend, .endpend").attr({ 
			title: "Pending reservation"
		});
		$(".rese, .startrese, .endrese, .endpendstartrese, .endresestartpend").attr({ 
			title: "Reserved"
		});
		$('#calone-prev').removeClass('hide');
		$('#calone-next').removeClass('hide');
		
		$("#calone-prev").click(function(el){
			var months = $(".amonth");
			var thid = '';
			months.each(function(){
				if (!$(this).hasClass('hide')) {
					thid = $(this).attr('id');
				}
			});
			if (thid!='') {
				var neid = thid;
				var newmonth = parseInt(neid.charAt(8), 10)-1;
				if (newmonth==0) {
					if (neid.charAt(7)!='1') {
						neid = neid.substring(0,7)+'12';
						if (neid.charAt(6)!=0) {
							neid = neid.substring(0,6)+(parseInt(neid.charAt(6), 10)-1)+neid.substring(7,9);
						} else {
							neid = neid.substring(0,5)+(parseInt(neid.charAt(5), 10)-1)+'9'+neid.substring(7,9);
						}
					} else {
						neid = neid.substring(0,7)+'10';
					}
				} else if (newmonth==-1) {
					neid = neid.substring(0,7)+'09';
				} else {
					neid = neid.substring(0,8)+newmonth;
				}
				if ($('#'+neid).length != 0) {
					$('#'+thid).addClass('hide');
					$('#'+neid).removeClass('hide');
				}
			}
		});
		$("#calone-next").click(function(el){
			var months = $(".amonth");
			var thid = '';
			months.each(function(){
				if (!$(this).hasClass('hide')) {
					thid = $(this).attr('id');
				}
			});
			if (thid!='') {
				var neid = thid;
				var newmonth = parseInt(neid.charAt(8), 10)+1;
				if (newmonth==10) {
					neid = neid.substring(0,7)+'10';
				} else if (newmonth==3) {
					if (neid.charAt(7)=='1') {
						neid = neid.substring(0,7)+'01';
						if (neid.charAt(6)!='9') {
							neid = neid.substring(0,6)+(parseInt(neid.charAt(6), 10)+1)+neid.substring(7,9);
						} else {
							neid = neid.substring(0,5)+(parseInt(neid.charAt(5), 10)+1)+'0'+neid.substring(7,9);
						}
					} else {
						neid = neid.substring(0,8)+newmonth;
					}
				} else {
					neid = neid.substring(0,8)+newmonth;
				}
				if ($('#'+neid).length != 0) {
					$('#'+thid).addClass('hide');
					$('#'+neid).removeClass('hide');
				}
			}
		});
	}
	
	if ($('#thecal').length != 0) {
		$(".pend, .startpend, .endpend").attr({ 
			title: "Pending reservation"
		});
		$(".rese, .startrese, .endrese, .endpendstartrese, .endresestartpend").attr({ 
			title: "Reserved"
		});
		$('#nojava').hide();
		$('#calpn').removeClass('hide');
		$('.datesels').removeClass('hide');
		
		$("#calp").click(function(el){
			var months = $(".amonth");
			var thid = '';
			months.each(function(){
				if (!$(this).hasClass('hide')) {
					thid = $(this).attr('id');
				}
			});
			if (thid!='') {
				var neid = thid;
				var newmonth = parseInt(neid.charAt(8), 10)-1;
				if (newmonth==0) {
					if (neid.charAt(7)!='1') {
						neid = neid.substring(0,7)+'12';
						if (neid.charAt(6)!=0) {
							neid = neid.substring(0,6)+(parseInt(neid.charAt(6), 10)-1)+neid.substring(7,9);
						} else {
							neid = neid.substring(0,5)+(parseInt(neid.charAt(5), 10)-1)+'9'+neid.substring(7,9);
						}
					} else {
						neid = neid.substring(0,7)+'10';
					}
				} else if (newmonth==-1) {
					neid = neid.substring(0,7)+'09';
				} else {
					neid = neid.substring(0,8)+newmonth;
				}
				if ($('#'+neid).length != 0) {
					$('#'+thid).addClass('hide');
					$('#'+neid).removeClass('hide');
				}
			}
		});
		$("#caln").click(function(el){
			var months = $(".amonth");
			var thid = '';
			months.each(function(){
				if (!$(this).hasClass('hide')) {
					thid = $(this).attr('id');
				}
			});
			if (thid!='') {
				var neid = thid;
				var newmonth = parseInt(neid.charAt(8), 10)+1;
				if (newmonth==10) {
					neid = neid.substring(0,7)+'10';
				} else if (newmonth==3) {
					if (neid.charAt(7)=='1') {
						neid = neid.substring(0,7)+'01';
						if (neid.charAt(6)!='9') {
							neid = neid.substring(0,6)+(parseInt(neid.charAt(6), 10)+1)+neid.substring(7,9);
						} else {
							neid = neid.substring(0,5)+(parseInt(neid.charAt(5), 10)+1)+'0'+neid.substring(7,9);
						}
					} else {
						neid = neid.substring(0,8)+newmonth;
					}
				} else {
					neid = neid.substring(0,8)+newmonth;
				}
				if ($('#'+neid).length != 0) {
					$('#'+thid).addClass('hide');
					$('#'+neid).removeClass('hide');
				}
			}
		});
		
		var days = $("td:not('.blanks')");
		
		var aweekend = false;
		var aspecial = false;
		var aspecialtext = false;
		var wdays = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
		
		function initDays() {
			aweekend = aspecial = aspecialtext = false;
			var cmon = '';
			var ddtext = '';
			var optg = '';
			var thisday = $('#thisday').text();
			var history = true;
			var cwday = 0;
			if ($('td:first').hasClass('.blanks')) {
				cwday = parseInt($('td:first').attr('colspan'), 10);
			}
		
			days.each(function(i){
				if (cwday>=7) {
					cwday = 0;
				}
				$(this).attr('abbr',wdays[cwday]);
				cwday++;
				var monthid = $(this).parent().parent().parent().parent().attr('id');
				
				if (history) {
					if (thisday==(monthid+$(this).text())) {
						history = false;
					}
				} else {
					var mn = monthid.charAt(8)+'';
					if (monthid.charAt(7)=='1') {
						mn = '1'+mn;
					}
					if (cmon!=mn) {
						if (ddtext!='') {
							ddtext = optg + ddtext + '</optgroup>';
							$("#startdate").append(ddtext);
							ddtext = '';
						}
						var cap = monthid;
						cap = $('#'+cap+' caption');
						optg = '<optgroup label="'+cap.text()+'">';
					}
					ddtext += '<option value="'+monthid+$(this).text()+'"';
					if ($(this).hasClass('endresestartpend')) {
						ddtext += ' class="endresestartpend"';
					} else if ($(this).hasClass('endpendstartrese')) {
						ddtext += ' class="endpendstartrese"';
					} else if ($(this).hasClass('startrese')) {
						ddtext += ' class="startrese"';
					} else if ($(this).hasClass('startpend')) {
						ddtext += ' class="startpend"';
					} else if ($(this).hasClass('endpend')) {
						ddtext += ' class="endpend"';
					} else if ($(this).hasClass('endrese')) {
						ddtext += ' class="endrese"';
					} else if ($(this).hasClass('pend')) {
						ddtext += ' class="pend"';
					} else if ($(this).hasClass('rese')) {
						ddtext += ' class="rese"';
					}
					ddtext += ' id="'+i+'"';
					ddtext += '>'+$(this).text()+'.'+mn+'.</option>';
					cmon = mn;
				}
			});
		
			if (ddtext!='') {
				ddtext = optg + ddtext + '</optgroup>';
				$("#startdate").append(ddtext);
			}
		}
		
		initDays();
		
		function clearDays() {
			var sdo = $('#startdate .nodel').clone();
			var edo = $('#enddate .nodel').clone();
			$('#startdate').empty();
			$('#enddate').empty();
			$('#startdate').append(sdo);
			$('#enddate').append(edo);
			$('#specialseason').addClass('hide');
		}
		
		var startd = -1;
		var endd = -1;
		
		$('#startdate').ready(function(){
			$('#startdate').change(function() {
				clearActive();
				var tid = $(this).find(':selected').attr('id');
				if (startd!=-1) {
					startd = -1;
					endd = -1;
					clearDays();
					aweekend = false;
					initDays();
					$('#'+tid).attr('selected','selected');
				}
				if ($(days[tid]).hasClass('rese') || $(days[tid]).hasClass('pend') || $(days[tid]).hasClass('startpend') || $(days[tid]).hasClass('startrese') || $(days[tid]).hasClass('endpendstartrese') || $(days[tid]).hasClass('endresestartpend')) {
					alert('Please select a date that is not reserved');
					$('#enddate').attr('disabled','disabled');
				} else {
					var special = isSpecial($(days[tid]).parent().parent().parent().parent().attr('id')+$(days[tid]).text(),$(days[tid]).attr('abbr'));
					if (special!=false&&special!='start') {
						alert(aspecialtext);
						$('#enddate').attr('disabled','disabled');
					} else {
						if ($(days[tid]).hasClass('endrese')) {
							$(days[tid]).removeClass('endrese');
							$(days[tid]).addClass('endresestartact');
						} else if ($(days[tid]).hasClass('endpend')) {
							$(days[tid]).removeClass('endpend');
							$(days[tid]).addClass('endpendstartact');
						} else {
							$(days[tid]).addClass('startactive');
						}
						startd = tid;
						tid++;
						if (special=='start') {
							alert(aspecialtext);
							var over = false;
							var temp = '';
							while (!over) {
								if (isSpecial($(days[tid]).parent().parent().parent().parent().attr('id')+$(days[tid]).text(),$(days[tid]).attr('abbr'))) {
									temp = $('#'+tid).clone();
								} else {
									over = true;
								}
								tid++;
							}
							$('#enddate').append(temp);
						} else {
							var over4 = false;
							while (
									!(
										($(days[tid]).hasClass('rese') && !$(days[tid]).hasClass('startrese'))
										||
										($(days[tid]).hasClass('pend') && !$(days[tid]).hasClass('startpend'))
									)
									&&
									!($(days[tid]).attr('abbr')=='Sun'&&($(days[tid]).hasClass('startrese')||$(days[tid]).hasClass('startpend')))
									&&
									!isSpecial($(days[tid]).parent().parent().parent().parent().attr('id')+$(days[tid]).text(),$(days[tid]).attr('abbr'))
									&&
									!over4
								) {
								if ((tid-startd)%7==0) {
									var ttxt = $('#'+tid).text()+' ('+((tid-startd)/7)+' week';
									if (((tid-startd)/7)>1) {
										ttxt += 's';
										if (((tid-startd)/7)>3) {
											over4 = true;
										}
									}
									$('#'+tid).text(ttxt+')');
								}
								$('#enddate').append($('#'+tid).clone());
								tid++;
							}
							special = false;
							aspecial = false;
						}
						$('#enddate').removeAttr('disabled');
					}
				}
			});
		});
		
		$('#enddate').attr('disabled','disabled');
		$('#enddate').ready(function(){
			$('#enddate').change(function() {
				var tid = $(this).find(':selected').attr('id');
				if (endd!=-1) {
					clearActive();
				}
				endd = tid;
				if (aspecial!==false) {
					$('#specialseason').removeClass('hide');
				}
				makeRes();
				$('#resform').removeClass('hide');
				$('#resform').slideDown('slow');
			});
		});
		
		function isSpecial(date,wday) {
			var sds = [
				"3004","0105","0205", 	// Vappu
				"2412","2512","2612", 	// Joulu
				"3112","0101","0201"	// New Years
			];
			
			var found = false;
			
			if (date.substr(7,2)=='06') { // Juhannus
				var day = makeDay(date.substr(9,(date.length-9)));
				if (day>=19&&day<=27&&(wday=='Fri'||wday=='Sat'||wday=='Sun')) {
					if (wday=='Fri'&&(day>=19&&day<=25)) {
						found = 'start';
						aspecial = 'midsummer';
						makeST();
					} else if ((wday=='Sat'&&(day>=20&&day<=26))||(wday=='Sun'&&(day>=21&&day<=27))) {
						found = true;
						aspecial = 'midsummer';
						makeST();
					}
				}
			} else if (date.substr(7,2)=='11') { // Isänpäivä
				var day = makeDay(date.substr(9,(date.length-9)));
				if (day>=6&&day<=14&&(wday=='Fri'||wday=='Sat'||wday=='Sun')) {
					if (wday=='Fri'&&(day>=6&&day<=12)) {
						found = 'start';
						aspecial = 'dadsday';
						makeST();
					} else if ((wday=='Sat'&&(day>=7&&day<=13))||(wday=='Sun'&&(day>=8&&day<=14))) {
						found = true;
						aspecial = 'dadsday';
						makeST();
					}
				}
			} else {
				var sdslen = sds.length;
				var td = date.substr(7,2);
				if (date.length>10) {
					td = date.substr(9,2)+td;
				} else {
					td = '0'+date.charAt(9)+td;
				}
				for (var i=0; i<sdslen && !found; i++) {
					if (td==sds[i]) {
						found = true;
					}
				}
				
				if (found==true) {
					if (i<=3) 		{ aspecial = 'vappu'; }
					else if (i<=6) 	{ aspecial = 'christmas'; }
					else if (i<=9)	{ aspecial = 'newyear'; }
					makeST();

					if (i==1||i==4||i==7) {
						found = 'start';
					}
				} else if (found===false) { // Easter
					var eamonth = parseInt(date.substr(7,2), 10);
					if (eamonth==3||eamonth==4) {
						var eaday = parseInt(date.substr(9,(date.length-9)), 10);
						var eayear = parseInt('20'+date.substr(5,2), 10);
						found = checkEaster(eayear,eamonth,eaday);
						if (found!==false) {
							aspecial = 'easter';
							makeST();
						}
					}
				}
			}
			
			return found;
		}
		
		function makeST() {
			if (aspecial=='vappu')				aspecialtext = 'Walpurgis weekend';
			else if (aspecial=='christmas')		aspecialtext = 'Christmas (24.-26.12.)';
			else if (aspecial=='newyear')		aspecialtext = 'New Year\'s Eve (31.12.-2.1.)';
			else if (aspecial=='midsummer')		aspecialtext = 'Midsummer';
			else if (aspecial=='easter')		aspecialtext = 'Easter';
			else if (aspecial=='mumsday')		aspecialtext = 'Mother\'s Day';
			else if (aspecial=='dadsday')		aspecialtext = 'Father\'s Day';
			
			if (aspecial!==false) {
				aspecialtext += "\n\n";
				aspecialtext += 'You have selected a special Finnish holiday season '+"\n"
							  + 'in your reservation. This means that special pricing '+"\n"
							  + 'applies due to high demand. If you have any '+"\n"
							  + 'questions please don\'t hesitate to contact us.'+"\n\n";
				aspecialtext += 'All specially priced  seasons are listed on the column to the right.';
			}
		}
		
		function checkEaster(year,month,day) {
			var a = year%19;
			var b = year%4;
			var c = year%7;
			var d = (19*a+24)%30;
			var e = (2*b+4*c+6*d+5)%7;
			
			var easterday = 22+d+e;
			var eastermonth = 3;
			if (easterday>31) {
				eastermonth = 4;
				easterday -= 31;
				if (easterday==26||easterday==25) {
					easterday -= 7;
				}
			}
			
			var ret = false;
			
			if (month==eastermonth&&day==easterday) {
				ret = true;
			} else {
				var monday = doEasterDay(easterday,eastermonth,1);
				var saturday = doEasterDay(easterday,eastermonth,-1);
				var friday = doEasterDay(easterday,eastermonth,-2);
				var thisday = day+''+month;
				
				if (thisday==friday) {
					ret = 'start';
				} else if (thisday==monday||thisday==saturday) {
					ret = true;
				}
			}
			return ret;
		}
		
		function doEasterDay(day,month,amt) {
			var newday = day+amt;
			if (newday>31) {
				newday -= 31;
				month++;
			} else if (newday<1) {
				newday += 31;
				month--;
			}
			return newday+''+month;
		}
			
		function getSpecialPrice() {
			if 		(aspecial=='easter')	return 600;
			else if (aspecial=='mumsday')	return 500;
			else if (aspecial=='vappu')		return 600;
			else if (aspecial=='midsummer')	return 800;
			else if (aspecial=='dadsday')	return 500;
			else if (aspecial=='christmas')	return 800;
			else if (aspecial=='newyear')	return 700;
		}
		
		function makeDay(dstr) {
			if (dstr.length==2) {
				return 10*parseInt(dstr.charAt(0), 10)+parseInt(dstr.charAt(1), 10);
			} else if (dstr.length==1) {
				return '0'+parseInt(dstr.charAt(0), 10);
			}
			return false;
		}
		
		function clearActive() {
			$('.active').each(function(ind){
				$(this).removeClass('active');
			});
			$('.startactive').each(function(ind){
				$(this).removeClass('startactive');
			});
			$('.endactive').each(function(ind){
				$(this).removeClass('endactive');
			});
			$('.endpendstartact').each(function(ind){
				$(this).removeClass('endpendstartact');
				$(this).addClass('endpend');
			});
			$('.endresestartact').each(function(ind){
				$(this).removeClass('endresestartact');
				$(this).addClass('endrese');
			});
			$('.endactstartrese').each(function(ind){
				$(this).removeClass('endactstartrese');
				$(this).addClass('startrese');
			});
			$('.endactstartpend').each(function(ind){
				$(this).removeClass('endactstartpend');
				$(this).addClass('startpend')
			});
		}
		
		function makeRes() {
			var regPriceWeek = 950;
			var regPriceDay = 250;
			var sumPriceWeek = 950;
			var sumPriceDay = 300;
			var tid = startd;
			var damt = endd-startd;
			var price = 0;
			if (aspecial!=false) {
				price = getSpecialPrice();
			} else {
				var smstr = $(days[tid]).parent().parent().parent().parent().attr('id').substr(7,2);
				if (smstr.charAt(0)=='0') smstr = smstr.substr(1,1);
				var startMonth = parseInt(smstr, 10);
				if (startMonth>=6&&startMonth<=8) {
					price = (Math.floor(damt/7)*sumPriceWeek)+((damt-(Math.floor(damt/7)*7))*sumPriceDay);
				} else {
					price = (Math.floor(damt/7)*regPriceWeek)+((damt-(Math.floor(damt/7)*7))*regPriceDay);
				}
			}
			tid = startd;
			if ($(days[tid]).hasClass('endrese')) {
				$(days[tid]).removeClass('endrese');
				$(days[tid]).addClass('endresestartact');
			} else if ($(days[tid]).hasClass('endpend')) {
				$(days[tid]).removeClass('endpend');
				$(days[tid]).addClass('endpendstartact');
			} else {
				$(days[tid]).addClass('startactive');
			}
			tid++;
			while (tid<endd) {
				$(days[tid]).addClass('active');
				tid++;
			}
			if ($(days[endd]).hasClass('startpend')) {
				$(days[endd]).removeClass('startpend');
				$(days[endd]).addClass('endactstartpend');
			} else if ($(days[endd]).hasClass('startrese')) {
				$(days[endd]).removeClass('startrese');
				$(days[endd]).addClass('endactstartrese');
			} else {
				if ($(days[endd]).attr('abbr')=='Sun') {
					$(days[endd]).addClass('active');
				} else {
					$(days[endd]).addClass('endactive');
				}
			}
			$('#villaprice').text(price);
			if ($('#sheetsprice').text()!='0') {
				price += parseInt($('#sheetsprice').text(), 10);
			}
			$('#inprice').text(price);
			if (damt>6) {
				$('#cleaning').attr('checked', true);
				$('#cleaning').attr('disabled', 'disabled');
				var cpr = parseInt($('#inprice').text(), 10);
				$('#inprice').text((cpr+65));
				$('#cleaningprice').text('65');
				var abox = $('#cleaningprice').parent().parent();
				abox.addClass('green');
				abox.removeClass('red');
			} else {
				$('#cleaning').attr('disabled', '');
				if ($('#cleaning').is(':checked')) {
					var cpr = parseInt($('#inprice').text(), 10);
					$('#inprice').text((cpr+65));
					$('#cleaningprice').text('65');
					var abox = $('#cleaningprice').parent().parent();
					abox.addClass('green');
					abox.removeClass('red');
				} else {
					$('#cleaningprice').text('0');
				}
			}
		}
		
		$('#resform').hide();
		
		$('#cleaning').attr('checked', false);
		$('#cleaning').change(function(){
			var cpr = parseInt($('#inprice').text(), 10);
			if ($('#cleaning').is(':checked')) {
				$('#inprice').text((cpr+65));
				$('#cleaningprice').text('65');
				var abox = $('#cleaningprice').parent().parent();
				abox.addClass('green');
				abox.removeClass('red');
			} else {
				$('#inprice').text((cpr-65));
				$('#cleaningprice').text('0');
				var abox = $('#cleaningprice').parent().parent();
				abox.removeClass('green');
				abox.addClass('red');
			}
		});
		
		$('#sheets').attr('checked', false);
		$('#sheets').change(function(){
			if ($('#adultamt option:selected').attr('value')=='-1'||$('#childamt option:selected').attr('value')=='-1') {
				alert('Please select the number of adults and children');
				$('#sheets').attr('checked', false);
			} else {
				var aa = parseInt($('#adultamt option:selected').attr('value'), 10);
				var ca = parseInt($('#childamt option:selected').attr('value'), 10);
				var cpr = parseInt($('#inprice').text(), 10);
				var tp = (aa+ca)*12;
				if ($('#sheets').is(':checked')) {
					$('#inprice').text((cpr+tp));
					$('#sheetsprice').text((tp));
					var abox = $('#sheetsprice').parent().parent();
					abox.addClass('green');
					abox.removeClass('red');
				} else {
					$('#inprice').text((cpr-tp));
					$('#sheetsprice').text('0');
					var abox = $('#sheetsprice').parent().parent();
					abox.removeClass('green');
					abox.addClass('red');
				}
			}
		});
		
		$('#peepsamt').change(function(){
			if ($('#sheets').is(':checked')) {
				var aa = parseInt($('#adultamt option:selected').attr('value'), 10);
				var ca = parseInt($('#childamt option:selected').attr('value'), 10);
				if (aa<0) aa = 0;
				if (ca<0) ca = 0;
				var pa = aa+ca;
				var cpr = parseInt($('#villaprice').text(), 10)+parseInt($('#cleaningprice').text(), 10);
				var tp = pa*12;
				$('#inprice').text((cpr+tp));
				$('#sheetsprice').text((tp));
			}
		});
	}
	
	if ($('.thegallery').length != 0) {
		var lis = $('.thumblist li');
		$('.thumblist').css('width',(lis.length*79)+'px');
		
		var thepic = $('.gactive .bigpic');
		$('#main_image img').attr({
			src: thepic.attr('src'),
			alt: thepic.attr('alt')
		});
		$('.caption').text(thepic.attr('title'));
		
		lis.each(function(i){
			$(this).click(function(){
				$('#toppic').attr({
					src: $('#main').attr('src'),
					alt: $('#main').attr('alt')
				});
				$('#toppic').css({
					'opacity': '1',
					'display': 'block'
				});
				
				var bp = $(this).find(".bigpic");
				$('#main').attr({
					src: bp.attr('src'),
					alt: bp.attr('alt')
				});
				$('.gactive').each(function(){
					$(this).removeClass('gactive');
				});
				$(this).addClass('gactive');
				
				$('#toppic').fadeOut("slow");
				$('.caption').text(bp.attr('title'));
			});
		});
		
		$('#morelis').click(function(){
			var nml = parseInt($('.thumblist').css('marginLeft'));
			if (((-1)*nml+790)<parseInt($('.thumblist').css('width'))) {
				nml = parseInt($('.thumblist').css('marginLeft'))-790;
				$(this).text('« Previous photos');
			} else {
				nml = parseInt($('.thumblist').css('marginLeft'))+790;
				$(this).text('More photos »');
			}
			$('.thumblist').animate({
				marginLeft: nml+'px'
			}, 400);
		});
	}
	
	if ($('#conform').length != 0) {
		$('#country').click(function(){
			if ($('#country option:selected').val()=='-1') {
				$("#country option[value='Finland']").attr('selected','selected');
			}
		});
		
		$('#submit').live('click', function(e) {
			if (!validate()) {
				e.preventDefault();
				return false;
			}
			else {
				if ($('.amonth').length!=0) {
					var ch = '';
					$('.amonth').each(function(){
						if ($(this).find('.active').length!=0 || $(this).find('.startactive').length!=0 || $(this).find('.endactive').length!=0) {
							$(this).find('.active').each(function(){
								$(this).removeClass('active');
								$(this).addClass('pend');
							});
							$(this).find('.startactive').each(function(){
								$(this).removeClass('startactive');
								$(this).addClass('startpend');
								if ($(this).hasClass('endpendstartact')) {
									$(this).removeClass('endpendstartact');
									$(this).removeClass('startpend');
									$(this).addClass('pend');
								}
								else if ($(this).hasClass('endresestartact')) {
									$(this).removeClass('endresestartact');
									$(this).addClass('endresestartpend');
								}
							});
							$(this).find('.endactive').each(function(){
								$(this).removeClass('endactive');
								$(this).addClass('endpend');
							});
							$(this).find('.endactstartpend').each(function(){
								$(this).removeClass('endactstartpend');
								$(this).removeClass('endpend');
								$(this).addClass('pend');
							});
							$(this).find('.endactstartrese').each(function(){
								$(this).removeClass('endactstartrese');
								$(this).addClass('endpendstartrese');
							});
							ch += $(this).html()+',';
						}
					});
					$('#thecalhtml').attr('value',ch);
					$('#thecalsd').attr('value',$('#startdate option:selected').attr('value'));
					$('#thecaled').attr('value',$('#enddate option:selected').attr('value'));
					$('#theprice').attr('value',$('#inprice').text());
					$('#thevillaprice').attr('value',$('#villaprice').text());
					$('#thecleaningprice').attr('value',$('#cleaningprice').text());
					$('#thesheetsprice').attr('value',$('#sheetsprice').text());
					$('#numbofadults').attr('value',$('#adultamt option:selected').attr('value'));
					$('#numbofchildren').attr('value',$('#childamt option:selected').attr('value'));
				}
			}
		});
		
		function validate() {
			$('.error').each(function(){
				$(this).removeClass('error');
			});
			var fn = true;
			var ln = true;
			var em = true;
			var pn = true;
			var co = true;
			var na = true;
			var nc = true;
			var cal = true;
			if ($('#firstname').attr('value').length<2) {
				fn = false;
				$('#firstname').addClass('error');
			}
			if ($('#lastname').attr('value').length<2) {
				ln = false;
				$('#lastname').addClass('error');
			}
			
			if ($('#email').attr('value').length>7) {
				var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
				if (!pattern.test($('#email').attr('value'))) {
					em = false;
					$('#email').addClass('error');
				}
			} else {
				em = false;
				$('#email').addClass('error');
			}
			if ($('#phonenumb').attr('value').length<7) {
				pn = false;
				$('#phonenumb').addClass('error');
			}
			if ($('#country option:selected').attr('value')=='-1') {
				co = false;
				$('#country').addClass('error');
			}
			
			if ($('#thecal').length != 0 && $('#adultamt option:selected').attr('value')=='-1') {
				na = false;
				$('#adultamt').addClass('error');
			}
			if ($('#thecal').length != 0 && $('#childamt option:selected').attr('value')=='-1') {
				nc = false;
				$('#childamt').addClass('error');
			}
			if ($('#thecal').length != 0) {
				var err = '';
				if (($('.active').length + $('.startactive').length + $('.endactive').length) < 2) {
					err = 'Please choose the start and\nend dates for your visit';
					cal = false;
				}
				if (!(fn&&ln&&em&&pn&&na&&nc&&co)) {
					if (err!='') {
						err += ',\nand ';
					} else {
						err += 'Please ';
					}
					err += 'fill out the mandatory\nfields from the reservation form.';
				}
				if (err!='') {
					alert(err);
				}
			}
			else if (!(fn&&ln&&em&&pn&&co)) {
				alert('Please fill out the mandatory fields');
			}
			return fn&&ln&&em&&pn&&co&&na&&nc&&cal;
		}
	}
	
	if ($('#fplink').length) {
		$.fn.fancyzoom.defaultsOptions.imgDir='http://karlbo.fi/js/fancyzoom/images/';
		$('#fplink').fancyzoom();
	}
});
