

	var lochours = new Array();
	var holidays = new Array();


	function converthours(num) {
	  var arr= new Array();
	  var my= new Array();
	  var total = 24;
	  var cur;

	  k=0;
	  for(i=total-1;i>=0;i--) {
		cur=Math.pow(2,i);
		if(num>=cur) {
			num%=cur;
			arr[k++]=cur;
		}
	  }	
	  return arr;
	}


function inarr(arr, k) {
	for(i=0;i<arr.length;i++) {
		if(arr[i]==k) return true;
	}
	return false;
}


function sortit(a,b){	
	return(a-b)
}


function update_lochours(f) {

 loc1=f.loc1.value; loc2=f.loc2.value;
 if(loc1=="" || loc2=="") return;
 day1=f.day1.value; mon1=f.mon1.value; year1=f.year1.value;
 day2=f.day2.value; mon2=f.mon2.value; year2=f.year2.value;
 h1_el=f.hour1; h2_el=f.hour2;
 sel_pickuphour=h1_el.value;
 sel_dropoffhour=h2_el.value;

 curr_date1 = new Date(parseInt(year1,10), parseInt(mon1,10)-1, parseInt(day1,10));
 curr_date2 = new Date(parseInt(year2,10), parseInt(mon2,10)-1, parseInt(day2,10));
 dw1=curr_date1.getDay();  dw2=curr_date2.getDay();


 h=new Array();

 ho1=false;
 for(i=1;i<10;i++) {
     h=holidays[loc1][i][0].split('-');
     d=parseInt(h[2],10);
     m=parseInt(h[1],10);
     y=parseInt(h[0],10);
     if(d==day1 && m==mon1 && y==year1) {
         s=h1_el.length=null;
         pickuphourz = holidays[loc1][i][1];
         c_pickuphours = converthours(pickuphourz);
         c_pickuphours.sort(sortit);
         update_pickup_opts();
         ho1=true;
         break;
     }
 }

 ho2=false;
 for(i=1;i<10;i++) {
     h=holidays[loc2][i][0].split('-');
     d=parseInt(h[2],10);
     m=parseInt(h[1],10);
     y=parseInt(h[0],10);
     if(d==day2 && m==mon2 && y==year2) {
         s=h2_el.length=null;
         dropoffhourz = holidays[loc2][i][2];
         c_dropoffhours = converthours(dropoffhourz);
         c_dropoffhours.sort(sortit);
         update_dropoff_opts();
         ho2=true;
         break;
     }
 }



 if(ho1==false) update_pickup_lochours2(f, dw1);
 if(ho2==false) update_dropoff_lochours2(f, dw2);

}


function update_pickup_lochours2(f, dw) {
 l1_el=f.loc1;
 h1_el=f.hour1;
 sel_pickuphour=h1_el.value;
 s=h1_el.length=null;
 if(dw==0) {//sun
	 pickuphourz = lochours[l1_el.value][4];
 } else if(dw==6) {//sat
	 pickuphourz = lochours[l1_el.value][2];
 } else {//mon-fri
	 pickuphourz = lochours[l1_el.value][0];
 }
 c_pickuphours=converthours(pickuphourz);
 c_pickuphours.sort(sortit);
 update_pickup_opts();
}


function update_dropoff_lochours2(f, dw) {
 l2_el=f.loc2;
 h2_el=f.hour2;

 sel_dropoffhour=h2_el.value;
 s=h2_el.length=null;
 if(dw==0) {
	 dropoffhourz = lochours[l2_el.value][5];
 } else if(dw==6) {
	 dropoffhourz = lochours[l2_el.value][3];
 } else {
	 dropoffhourz = lochours[l2_el.value][1];
 }
 c_dropoffhours=converthours(dropoffhourz);
 c_dropoffhours.sort(sortit);
 update_dropoff_opts();
}


function update_pickup_opts() {
     for(i=0;i<c_pickuphours.length;i++) {
         curhour=Math.log(c_pickuphours[i])/Math.log(2);
         sel_curhour=(curhour==sel_pickuphour)?true:false;
         h1_el.options[i] = new Option(zf(curhour), curhour, sel_curhour, sel_curhour);
     }

///     document.getElementById('pickuphours').style.display = (h1_el.length)?'':'none';
///     document.getElementById('pickuphoursclosed').style.display = (h1_el.length)?'none':'';
}


function update_dropoff_opts() {

     for(i=0;i<c_dropoffhours.length;i++) {
         curhour=Math.log(c_dropoffhours[i])/Math.log(2);
         sel_curhour=(curhour==sel_dropoffhour)?true:false;
         h2_el.options[i] = new Option(zf(curhour), curhour, sel_curhour, sel_curhour);
     }

///     document.getElementById('dropoffhours').style.display = (h2_el.length)?'':'none';
///     document.getElementById('dropoffhoursclosed').style.display = (h2_el.length)?'none':'';
}

function zf(str)
{

//	if(str.toString().length<2) return('0'+str);

	return str;

}
 

function value_exists(obj, v)
{

	for(i=0;i<obj.options.length;i++)
	{

		if(obj.options[i].value == v) return true;

	}

	return false;
}


function disable_datetime1(f, bool) {
		/*
		f.day1.disabled = bool;
		f.mon1.disabled = bool;
		f.year1.disabled = bool;
		f.hour1.disabled = bool;
		f.min1.disabled = bool;
		*/
}

function disable_datetime2(f, bool) {
		/*
		f.day2.disabled = bool;
		f.mon2.disabled = bool;
		f.year2.disabled = bool;
		f.hour2.disabled = bool;
		f.min2.disabled = bool;
		*/
}



function loc1_onchange(f)
{

	if(f.loc1.value != '')
	{
		
		disable_datetime1(f, false);

		if(f.loc2.value=='')
		{

			f.loc2.disabled=false;
			f.loc2.value=f.loc1.value;
			disable_datetime2(f, false);
		}
		else {

			disable_datetime2(f, false);
			
		}
		
		update_lochours(f);
	}
	else {
		
		disable_datetime1(f, true);
		disable_datetime2(f, true);
	}

}


function loc2_onchange(f)
{

	if(f.loc2.value!='') 
	{
	
		disable_datetime1(f, f.loc1.value=='');
		disable_datetime2(f, f.loc1.value=='');
	}
	else {
		
		disable_datetime1(f, true);
		disable_datetime2(f, true);
	}
	
	update_lochours(f);

}



function check_book1_form(f)
{

	d1 = new Date(f.year1.value, f.mon1.value-1, f.day1.value, f.hour1.value, f.min1.value, 0);
	d2 = new Date(f.year2.value, f.mon2.value-1, f.day2.value, f.hour2.value, f.min2.value, 0);
	
	if(f.loc1.value=="")
	{
		alert('Choose pick up location');
		return false;
	}

	if(f.loc2.value=="") 
	{
		alert('Choose drop-off location');
		return false;
	}

	if(d1 < (new Date()).getTime() || d2<d1)
	{
		alert('Invalid date');
		return false;
	}

	return true;
}
