var pax_valid=true;
var MAX_BOOKING_DAYS=60;
function update_pax()
{
  var ta=0;
  var tc=0;
  var s,td,sl,a,c;
  
  pax_valid=true;
  // lets check the sleeps numbers....
  var t=document.getElementById('rt_t').getElementsByTagName('tr');
  for (var i=0; i < t.length; i++) {
    td=t[i].getElementsByTagName('td');
    if (td.length==5) {
      s=parseInt(td[1].innerHTML);
      sl=td[2].childNodes[0];
      a=parseInt(sl.selectedIndex > 0 ? sl.options[sl.selectedIndex].value : 0);
      sl=td[3].childNodes[0];
      c=parseInt(sl.selectedIndex > 0 ? sl.options[sl.selectedIndex].value : 0);
      td[4].innerHTML=(a+c > s ? '*too many people*' : '&nbsp;');
      if (pax_valid && a+c > s)
        pax_valid=false;
      ta+=a;
      tc+=c;
    }      
  }   
  if (sl) {         // sl has the last select box we found so use its form var
    sl.form.adults.value=ta;
    sl.form.children.value=tc;
  }  
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function timeIndex(i)
{
  i/=100;
  if (i==12)
    return '12 pm';
  else if (i > 12)
    return parseInt(i-12).toString()+' pm';
  else
    return i+' am';        
}

// mode =0 for check in or 1 for check out, v is value to set to
function setCheckInOut(d,mode,v)
{
  var e=document.forms['bookingForm'].elements[mode ? 'DepartureTime' : 'ArrivalTime'];
  var s=v ? v : (e.selectedIndex >= 0 ? e.options[e.selectedIndex].value : (mode ? 11 : 13));
  var times=checkinout[d.getDay()];
  // don't do anything if already in range....
  if (e.length && e.options[0].value==times[mode*2] && e.options[e.length-1].value==times[mode*2+1])
    return;
  e.length=0;
  for (var i=times[mode*2]; i <= times[mode*2+1]; i+=100)
    e.options[e.length]=new Option(timeIndex(i),i,i==s,i==s);
    
}

function startup()
{
  var d=parseDate(document.forms['bookingForm'].elements['startDate'].value,'d/m/y');
  setCheckInOut(d,0,ARRIVAL_TIME);
  d=parseDate(document.forms['bookingForm'].elements['endDate'].value,'d/m/y');
  setCheckInOut(d,1,DEPARTURE_TIME);
  update_pax();
  
  // set the 'rel' class property to match the 'rel' attribute for the area tags so lightbox works....
  var l=document.getElementsByTagName('area');
  for (var i=0; i < l.length; i++) {
    if (l[i].getAttribute('rel'))
      l[i].rel=l[i].getAttribute('rel');
  }
     
}

function closeCalendar()
{
  var e=document.getElementById('calendarFrame');
  e.style.display='none';
  calOpen='';
}

function showCalendar(control)
{
  var e=document.getElementById('calendarFrame');
  if (calOpen==control) {
    closeCalendar();
  }
  else {
    calOpen=control;
    // check date is ok to use.....
    var d,dy='';
    if ((d=parseDate(document.forms['bookingForm'].elements[control].value,'d/m/y'))!=null) {
      dy=formatDate(d,'yyyy-MM-dd');
    }
    if (control=='startDate')
      e.style.top='21px';
    else
      e.style.top='61px';
    e.style.left=document.forms['bookingForm'].elements[control].offsetLeft+'px';  
    e.style.top=document.forms['bookingForm'].elements[control].offsetTop+25+'px';  
    e.style.display='block';
    e.src='popup_calendar.php?d='+dy;
  }    
}



function setDates(start,end)
{
  var f=document.forms['bookingForm'];
  f.elements['startDate'].value=start;
  f.elements['endDate'].value=end;
  f.submit();
}

function setControl(d,m,y)
{
  if (calOpen) {
    document.forms['bookingForm'].elements[calOpen].value=d+'-'+m+'-'+y;
    document.forms['bookingForm'].elements[calOpen].onchange();
    closeCalendar();
  }
}



function set_dow(d,i)
{
  var sd,ed,n;
  var e=document.getElementById(i);
  var f=document.forms['bookingForm'];
  
  if ((sd=parseDate(d.value,'d/m/y'))==null) 
    e.innerHTML='enter valid date';
  else {
    e.innerHTML=formatDate(sd,'EE');    
    setCheckInOut(sd,i=='startDOW' ? 0 : 1);
    // if start date then make sure end date is at least two days forward....
    if (d.name=='startDate') {
      ed=parseDate(document.getElementById('endDate').value,'d/m/y');
      if (ed==null || ed.getTime() < sd.getTime()) {
        if (!ed)
          ed=new Date(sd.getTime()+86400000);
        else
          ed.setTime(sd.getTime()+86400000);  
        document.getElementById('endDate').value=formatDate(ed,'dd-MM-yyyy');
        document.getElementById('endDOW').innerHTML=formatDate(ed,'EE');
      }  
    }
  }
  // if we are changing the start date then set the end date if number of nights is set
  // otherwise if changing end date then set the number of nights...
  if (d.name=='startDate') {
    if (sd && f.nights.selectedIndex > 0) {
      sd.setTime(sd.getTime()+parseInt(f.nights.options[f.nights.selectedIndex].value)*86400000);
      document.getElementById('endDOW').innerHTML=formatDate(sd,'EE');
      f.endDate.value=formatDate(sd,'dd-MM-yyyy');
    }
  }
  else if ((sd=parseDate(f.startDate.value,'d/m/y')) != null && (ed=parseDate(f.endDate.value,'d/m/y')) != null) {    
    n=parseInt(ed.getTime()-sd.getTime())/86400000;
    if (n > 0 && n <=  MAX_BOOKING_DAYS )
      f.nights.selectedIndex=n;
    else
      f.nights.selectedIndex=0;         
  }    
}

function validate_quote(theForm)
{
  var sd,ed,rm,ad,c;
  if (posted)
    return false;
  if ((sd=parseDate(theForm.startDate.value,'d/m/y'))==null) {
    alert("Please enter a valid date for the first night in");
    theForm.startDate.focus();
    return false;
  }
  
  // check if not in the past
  var d=new Date();
  // add arrival time....
  if (sd.getTime()+parseInt(theForm.ArrivalTime.options[theForm.ArrivalTime.selectedIndex].value)*36000 < d.getTime()) {
    alert("You can not book dates in the past!");
    theForm.startDate.focus();
    return false;
  
  }
  if ((ed=parseDate(theForm.endDate.value,'d/m/y'))==null) {
    alert("Please enter a valid date for thedate out");
    theForm.endDate.focus();
    return false;
  }
  
  // check if not in the past
  var d=new Date();
  if (ed.getTime() < sd.getTime()) {
    alert("The date out must be greater than the date in");
    theForm.endDate.focus();
    return false;
  
  }
  // check not greater than our max allowed days
  if (parseInt((ed.getTime()+36000-sd.getTime())/86400000) < 2) {
    alert("You must stay a minimum of 2 nights");
    theForm.endDate.focus();
    return false;
  }
  if ((ed.getTime()-sd.getTime())/86400000 > MAX_BOOKING_DAYS ) {
    alert('Booking is limited to '+MAX_BOOKING_DAYS+'  days.');
    theForm.endDate.focus();
    return false;
  }
  if (!pax_valid) {
    alert('You have too many people in at least one room.  Check your configuration.');
    return false;    
  }
  ad=theForm.adults.value=='' ? 0 : parseInt(theForm.adults.value);
  c=theForm.adults.value=='' ? 0 : parseInt(theForm.children.value);
  if (ad+c > 18) {
    alert('Maximum of 18 people allowed in Edgewater Lodge.')    ;
    return false;
  }
  // check guests....
  if (theForm.Firstname.value=='') {
    alert('Please enter your first name');
    theForm.Firstname.focus();
    return false;
  }
  if (theForm.Lastname.value=='') {
    alert('Please enter your last name');
    theForm.Lastname.focus();
    return false;
  }
  if (theForm.Email.value=="" || !validateEmailv2(theForm.Email.value)) {
    alert('Please enter a valid email address');
    theForm.Email.focus();
    return false;
  }
  if (theForm.Phone.value=='') {
    alert('Please enter a contact number');
    theForm.Phone.focus();
    return false;
  }
  
  return posted=true;
  
  
}


function showYearly()
{
  window.open('booking_calendar.php','','width=800,height=500,top=0,left=0,scrollbars=1');
}

function showHolidays()
{
  window.open('holidays.php','','width=760,height=500,top=0,left=0,scrollbars=1');
}

  function changeNights(e)
  {
    var f=e.form;
    // get the date in....
    if ((sd=parseDate(f.startDate.value,'d/m/y'))==null) {
      alert("Please enter a valid date for the first night in");
      f.startDate.focus();
    }
    else if (f.nights.selectedIndex > 0) {
      sd.setTime(sd.getTime()+parseInt(f.nights.options[f.nights.selectedIndex].value)*86400000);
      document.getElementById('endDate').value=formatDate(sd,'dd-MM-yyyy');
      document.getElementById('endDOW').innerHTML=formatDate(sd,'EE');
    }
  }

function openMap()
{
  window.open('http://www.localarea.com.au/map.php?op=13&v=0','','fullscreen=yes');
}  

function validate_enquiry(theForm)
{
  if (theForm.fname.value=='') {
    alert('Please enter your firstname.');
    theForm.fname.focus();
    return false;    
  }    

  if (theForm.phone.value=='') {
    alert('Please enter your phone number.');
    theForm.phone.focus();
    return false;    
  }    
  if (theForm.email.value=='' || !validateEmailv2(theForm.email.value)) {
    alert('Please enter a valid email.');
    theForm.email.focus();
    return false;    
  }    
  
  return true;
}