
var dpGrandLitOne,dpGrandLitTwo,dpSingles;


function skapaKalendrar()
{
	dpGrandLitOne.reWrite();
	dpGrandLitTwo.reWrite();
	dpSingles.reWrite();
}

function getIsBooked(d,a)
{
	var i, ad;
	for (i = 0; i < a.length; i++)
	{
		ad = a[i];
		if (ad.getDate() == d.getDate() && ad.getMonth() == d.getMonth() && ad.getFullYear() == d.getFullYear())
		{
			return true;
		}
	}
	return false;
}

function datePicker(id){
	this.today = new Date();
	this.bokadeDagar = new Array();
	this.daynames=Array("Mån","Tis","Ons","Tor","Fre","Lör","Sön");
	this.monthnames=Array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec");
	this.styleHeading='font-size:10px;font-family:Verdana;width:24px;';
	this.styleCells='font-size:12px;font-family:Verdana;cursor:pointer;padding:1px;text-align:center;';
	this.styleBox='text-align:center;font-size:12px;line-height:20px;font-family:Verdana;border:solid rgb(250,250,250) 1px;border-left:solid rgb(220,220,220) 1px;border-top:solid rgb(220,220,220) 1px;';
	this.styleBackgroundColor='rgb(240,240,240);';
	this.id=id; this.onSelect=false; this.map={};
	this.date=new Date();
	this.ddigit=function(n){ return(n<10)?"0"+n:n; }
	this.select=function(){
		if(this.map.year){ this.map.year.value=this.date.getFullYear(); } if(this.map.month){ this.map.month.value=this.ddigit(this.date.getMonth()+1); } if(this.map.day){ this.map.day.value=this.ddigit(this.date.getDate()); }
		if(this.map.date){ this.map.date.value=this.date.getFullYear()+"-"+this.ddigit(this.date.getMonth()+1)+"-"+this.ddigit(this.date.getDate()); }
		if(this.onSelect){ eval(this.onSelect); }
		this.hide();		
	}
	this.show=function()
	{
		//document.getElementById("datePicker-"+this.id).style.display="block";
		this.reWrite(); 
	}
	this.hide=function()
	{
		//document.getElementById("datePicker-"+this.id).style.display="none";
	}
	
	this.boka = function(y,m,dd)
	{
		var d = new Date(y,m,dd);
		
		if (d < this.today)
			return;
			
		var isBooked = false;
		switch(this.id)
		{
			case 'dpGrandLitOne':
				isBooked = getIsBooked(d, bookingsGrandLitOne);
				break;
			case 'dpGrandLitTwo':
				isBooked = getIsBooked(d, bookingsGrandLitTwo);
				break;
			case 'dpSingles':
				isBooked = getIsBooked(d, bookingsSingleBeds);
				break;
		}
		
		if (isBooked)
			return;		
		
		var i = 0;
		var ad;
		var hittade = false;
		for (i = 0; i < this.bokadeDagar.length; i++)
		{
			ad = this.bokadeDagar[i];
			if (ad.getDate() == d.getDate() && ad.getMonth() == d.getMonth() && ad.getFullYear() == d.getFullYear())
			{
				// "Göm" denna dag så den inte är bokad längre
				this.bokadeDagar[i] = new Date(1983,11,21);
				hittade = true;
			}
		}
		if (hittade == false)
		{
			this.bokadeDagar[this.bokadeDagar.length] = d;
		}
		this.reWrite();
	}
	
	this.getIsBookedNow = function(d)
	{
		var i, ad;
		for (i = 0; i < this.bokadeDagar.length; i++)
		{
			ad = this.bokadeDagar[i];
			if (ad.getDate() == d.getDate() && ad.getMonth() == d.getMonth() && ad.getFullYear() == d.getFullYear())
			{
				return true;
			}
		}
		return false;
	}
	
	this.setTS=function(ts){
		var d=new Date(0);
		var p=(p)?p:ts.match(/(\w+)\-(\w+)\-(\w+)\s(\w+)\:(\w+)\:(\w+)/); p=(p)?p.concat(0):p;  // 2000-01-01 12:00:00
		if(p[1]!="x"){ this.date.setFullYear(p[1]); } if(p[2]!="x"){ this.date.setMonth(p[2]-1); } if(p[3]!="x"){ this.date.setDate(p[3]); } if(p[4]!="x"){ this.date.setHours(p[4]); } if(p[5]!="x"){ this.date.setMinutes(p[5]); } if(p[6]!="x"){ this.date.setSeconds(p[6]); }
		this.reWrite();
	}
	this.wd=function(i){ return((i==0)?7:i); }
	this.makeHtml=function(){
		var currentYear=this.date.getFullYear(); var currentMonth=this.date.getMonth()+1;
		var prevMonthYear=(currentMonth==1)?currentYear-1:currentYear; var prevMonthMonth=(currentMonth==1)?12:currentMonth-1; var nextMonthYear=(currentMonth==12)?currentYear+1:currentYear; var nextMonthMonth=(currentMonth==12)?1:currentMonth+1;
		this.html='<div style="width:190px;background-color:'+this.styleBackgroundColor+this.styleBox+'">';
		//this.html+='<span onclick="'+this.id+'.setTS(\''+prevMonthYear+'-'+prevMonthMonth+'-x x:x:x\')" style="'+this.styleCells+'"><span style="font-size:11px;">&laquo;</span></span> ';
		this.html+='<span style="font-size:10px;font-weight:bold;">'+this.monthnames[this.date.getMonth()]+" "+this.date.getFullYear()+'</span>'
		//this.html+=' <span onclick="'+this.id+'.setTS(\''+nextMonthYear+'-'+nextMonthMonth+'-x x:x:x\')" style="'+this.styleCells+'"><span style="font-size:11px;">&raquo;</span></span>';
		//this.html+=' <span onclick="'+this.id+'.hide()" style="'+this.styleCells+'font-family:Wingdings;color:gray;">x</span>';
		this.html+='<table><tr><td style="'+this.styleHeading+'">'+this.daynames.join('</td><td style="'+this.styleHeading+'">')+'</td></tr>';
		var i=new Date(this.date.getFullYear(),this.date.getMonth(),1);
		if(i.getDay()!=1){ this.html+='<tr><td colspan="'+(this.wd(i.getDay())-1)+'"></td>'; }
		
		var isBooked = false;
		var isBookedNow = false;
		
		for(i=i;i.getMonth()==this.date.getMonth();i.setDate(i.getDate()+1))
		{
		
			switch(this.id)
			{
				case 'dpGrandLitOne':
					isBooked = getIsBooked(i, bookingsGrandLitOne);
					break;
				case 'dpGrandLitTwo':
					isBooked = getIsBooked(i, bookingsGrandLitTwo);
					break;
				case 'dpSingles':
					isBooked = getIsBooked(i, bookingsSingleBeds);
					break;
			}
		
			var datestr=i.getDate()+"/"+(i.getMonth()+1);
			if(i.getDay()==1){ this.html+='<tr>'; }	
			var cellClass="datePickerCell"; var cellStyle=this.styleCells;
			if(i.getDay()==0){ cellClass+=" datePickerCellSunday"; }
			
			if (i < this.today)
			{
				cellClass += " booked";
			}
			else
			{
				if(isBooked){ cellClass+=" booked"; }
				else {cellClass += " unbooked"; }
			}
			
			if (this.getIsBookedNow(i))
			{
				cellClass += " bookednow";
			}
			
			
			//if(i.getDate()==this.date.getDate()){ cellStyle+="background-color:rgb(0,0,0);color:#FFFFFF;"; }
			this.html+='<td class="'+cellClass+'" style="'+cellStyle+'" onmouseover="this.style.border=\'solid black 1px\';this.style.padding=\'0px\';" onmouseout="this.style.border=\'\';this.style.padding=\'1px\';"" onclick="'+this.id+'.boka('+i.getFullYear()+','+i.getMonth()+','+i.getDate()+');">'+this.wd(i.getDate())+'</td>'
			if(i.getDay()==0){ this.html+='</tr>'; }
		}
		this.html+='</tr></table></div>';
	}
	this.reWrite=function(){
		this.makeHtml();
		document.getElementById("datePicker-"+this.id).innerHTML=this.html;
	}
	//document.write('<style type="text/css">.datePickerCell { } .datePickerCellSunday { }</style>');
	//this.reWrite();
}

function bytManad(y,m,i)
{
	dpGrandLitOne.setTS(y+'-'+m+'-x x:x:x');
	dpGrandLitTwo.setTS(y+'-'+m+'-x x:x:x');
	dpSingles.setTS(y+'-'+m+'-x x:x:x');
	
	document.getElementById("monthLink0").style.fontWeight='normal';
	document.getElementById("monthLink1").style.fontWeight='normal';
	document.getElementById("monthLink2").style.fontWeight='normal';
	document.getElementById("monthLink3").style.fontWeight='normal';
	document.getElementById("monthLink4").style.fontWeight='normal';
	document.getElementById("monthLink5").style.fontWeight='normal';
	document.getElementById("monthLink6").style.fontWeight='normal';
	document.getElementById("monthLink7").style.fontWeight='normal';
	document.getElementById("monthLink8").style.fontWeight='normal';
	document.getElementById("monthLink"+i).style.fontWeight='bold';
	
}

function kollaBokningsForm(x)
{
	var datum = "";
	var i = 0;
	var d;

	for (i = 0; i < dpGrandLitOne.bokadeDagar.length; i++)
	{
		d = dpGrandLitOne.bokadeDagar[i];
		if (d.getFullYear() > 1983)
			datum += d.getFullYear() + "," + (d.getMonth()+1) + "," + d.getDate() + "|";
	}
	x.datumGrandLitOne.value=datum;
	
	datum = "";
	for (i = 0; i < dpGrandLitTwo.bokadeDagar.length; i++)
	{
		d = dpGrandLitTwo.bokadeDagar[i];
		if (d.getFullYear() > 1983)
			datum += d.getFullYear() + "," + (d.getMonth()+1) + "," + d.getDate() + "|";
	}
	x.datumGrandLitTwo.value=datum;
	
	datum = "";
	for (i = 0; i < dpSingles.bokadeDagar.length; i++)
	{
		d = dpSingles.bokadeDagar[i];
		if (d.getFullYear() > 1983)
			datum += d.getFullYear() + "," + (d.getMonth()+1) + "," + d.getDate() + "|";
	}
	x.datumSingles.value=datum;

	if (x.datumGrandLitOne.value.length==0 && x.datumGrandLitTwo.value.length==0 && x.datumSingles.value.length == 0)
	{
		alert("Du har inte markerat några dagar i kalendern.");
		return false;
	}
	if (x.namn.value.length==0)
	{
		alert("Du måste ange ett namn.");
		return false;
	}
	if (x.epost.value.length==0)
	{
		alert("Du måste ange e-postadress");
		return false;
	}
	if (x.telefon.value.length==0 && x.mobil.value.length==0)
	{
		alert("Du måste ange antingen telefonnummer eller mobiltelefonnummer.");
		return false;
	}
	if (x.adress.value.length==0 && x.postnr.value.length==0 && x.ort.value.length==0)
	{
		alert("Du måste ange adress, postnummer och ort.");
		return false;
	}
	return true;
}