var timerid;

function items(code, which, sep)
{
  var thestring = code;
  var cnt = which;
  while (cnt > 0)
  {
    pos = thestring.indexOf(sep);
    if (pos != -1)
    {
      resultstring = thestring.substring(0,pos);
      thestring = thestring.substring(pos+1,thestring.length);
    } else
    {
      resultstring = thestring;
      thestring = "";
    }
    cnt = cnt - 1;
  }
  return resultstring;
}

function clickPosition()
{
  if (navigator.appName == "Microsoft Internet Explorer"){
    mX = event.clientX;
    mY = event.clientY;
  }
  else {
    mX = e.pageX;
    mY = e.pageY;
  }
  return document.body.scrollTop + mY;
}


function hideframe()
{
  if (navigator.userAgent.indexOf("Opera ") != 0) return true;
  
  if (navigator.appName == "Microsoft Internet Explorer")
  {
    var verpos = navigator.appVersion.indexOf("MSIE ")+5;
    var version = navigator.appVersion.substring(verpos,verpos+3);
    if (version  >= 5.5)
    { 
      return false;
    } else
    {
      return true;
    }
  }
  if (navigator.appName == "Netscape")
  {
    var verpos = 0;
    var version = navigator.appVersion.substring(verpos,verpos+3);
    if (version  >= 4)
    { 
      return false;
    } else
    {
      return true;
    }
  } 
  return false;
}

// window opening functions

function popwindowsized(url, width, height)
{
  var newx = (screen.width - width) / 2;
  var newy = (screen.height - height) / 2.3;
  var newwin = window.open(url,"popup","dependant=yes, height="+height+", width="+width+", location=no, menubar = no,  resizable=no, top="+newy+", left="+newx+", scrollbars=yes, status=no, titlebar=no, toolbar=no");
}


// Bizarre functions 

function getfieldvalue(fieldname)
{
  var maxforms = document.forms.length;
  var cnt =0;
  var done = false;
  var returnvalue = "";
  while (cnt < maxforms && done == false)
  {
    maxelements = document.forms[cnt].elements.length;
    cnter = 0;
    while (cnter < maxelements && done == false)
    {
      if (document.forms[cnt].elements[cnter].name == fieldname)
      {
        done = true;
        returnvalue = document.forms[cnt].elements[cnter].value;
      }
      cnter = cnter + 1;    
    }
    cnt = cnt + 1;
  }  
  return returnvalue;
}

function putfieldvalue(fieldname,newvalue)
{
  var maxforms = document.forms.length;
  var cnt =0;
  var done = false;
  var returnvalue = "";
  while (cnt < maxforms && done == false)
  {
    maxelements = document.forms[cnt].elements.length;
    cnter = 0;
    while (cnter < maxelements && done == false)
    {
      if (document.forms[cnt].elements[cnter].name == fieldname)
      {
        done = true;
        document.forms[cnt].elements[cnter].value = newvalue;
      }
      cnter = cnter + 1;    
    }
    cnt = cnt + 1;
  }  
  return returnvalue;
}


function changevisibility(fieldname,newvalue)
{
  var maxforms = document.forms.length;
  var cnt =0;
  var done = false;
  var returnvalue = "";
  while (cnt < maxforms && done == false)
  {
    maxelements = document.forms[cnt].elements.length;
    cnter = 0;
    while (cnter < maxelements && done == false)
    {
      if (document.forms[cnt].elements[cnter].name == fieldname)
      {
        done = true;
        document.forms[cnt].elements[cnter].style.visibility = newvalue;
      }
      cnter = cnter + 1;    
    }
    cnt = cnt + 1;
  }  
  return returnvalue;
}


function changebackground(fieldname,newvalue)
{
  var maxforms = document.forms.length;
  var cnt =0;
  var done = false;
  var returnvalue = "";
  while (cnt < maxforms && done == false)
  {
    maxelements = document.forms[cnt].elements.length;
    cnter = 0;
    while (cnter < maxelements && done == false)
    {
      if (document.forms[cnt].elements[cnter].name == fieldname)
      {
        done = true;
        document.forms[cnt].elements[cnter].style.background = newvalue;
      }
      cnter = cnter + 1;    
    }
    cnt = cnt + 1;
  }  
  return returnvalue;
}

function getelement(fieldname)
{
  var maxforms = document.forms.length;
  var cnt =0;
  var done = false;
  var returnvalue = "";
  while (cnt < maxforms && done == false)
  {
    maxelements = document.forms[cnt].elements.length;
    cnter = 0;
    while (cnter < maxelements && done == false)
    {
      if (document.forms[cnt].elements[cnter].name == fieldname)
      {
        done = true;
        returnelement = document.forms[cnt].elements[cnter];
      }
      cnter = cnter + 1;    
    }
    cnt = cnt + 1;
  }  
  return returnelement;
}

function getTop(fieldname)
{
  var maxforms = document.forms.length;
  var cnt =0;
  var done = false;
  var returnvalue = "";
  while (cnt < maxforms && done == false)
  {
    maxelements = document.forms[cnt].elements.length;
    cnter = 0;
    while (cnter < maxelements && done == false)
    {
      if (document.forms[cnt].elements[cnter].name == fieldname)
      {
        done = true;
        returnvalue = document.forms[cnt].elements[cnter].value;
      }
      cnter = cnter + 1;    
    }
    cnt = cnt + 1;
  }  
  return returnvalue;
}



function marginwidth()
{
  var pagewidth = document.body.clientWidth;
  var percentage = .06;
  var margin = pagewidth * percentage;
  return margin;
}


function centerpop()
{
  var xpos = (screen.width - 600)/2;
  var ypos = (screen.height - 400)/3;
  window.moveTo(xpos,ypos);
}


// calendar routines ------------------------------------------

// pass the fieldname of the field to have the date done to changedate 
// and it will do the rest

var datefieldname = "";

function changedate(fieldname)
{
  // dateformat we are using   dd/mm/yyyy
  //set the year
  if (navigator.appName == "Microsoft Internet Explorer"){
    mX = event.clientX;
    mY = event.clientY;
  }
  else {
    mX = e.pageX;
    mY = e.pageY;
  }
//  calendar.style.top = document.body.scrollTop+mY-120;

  datefieldname = fieldname;

  datestr = getfieldvalue(fieldname); 
  var yearstr = "";
  var monthstr = "";
  var daystr = "";

  // have we got a valid date?
  if (datestr == "" || datestr.substring(6,10) == "0000")
  {
    // the date has not been set - set it to today
    var todaysdate = new Date();
    daystr = todaysdate.getDate();
    monthstr = todaysdate.getMonth()+1;
    yearstr = todaysdate.getYear();
    // pad them out
    if (daystr < 10) daystr = "0"+daystr;
    if (monthstr < 10) monthstr = "0"+monthstr;
    if (yearstr < 1000 && yearstr > 100) yearstr = 2000+(yearstr-100);
    if (yearstr < 10) yearstr = "0"+yearstr;
    if (yearstr < 100) yearstr = "19"+yearstr;
    if (yearstr < 1000) yearstr = yearstr+1900;
    datestr = daystr+"/"+monthstr+"/"+yearstr+" 00:00:00";
  }
  yearstr = datestr.substring(6,10);
  monthstr = datestr.substring(3,5);
  daystr = datestr.substring(0,2);


  putfieldvalue("fulldate",yearstr+"-"+monthstr+"-"+daystr+" 00:00:00");

  var cnt = 0;
  while (cnt < calendarform.yearsel.options.length)
  {
    if (yearstr == calendarform.yearsel.options[cnt].value) 
    {
      calendarform.yearsel.selectedIndex = cnt;
      break;
    }
    cnt = cnt + 1;
  }
  cnt = 0;
  while (cnt < calendarform.monthsel.options.length)
  {
    if (monthstr == calendarform.monthsel.options[cnt].value) 
    {
      calendarform.monthsel.selectedIndex = cnt;
      break;
    }
    cnt = cnt + 1;
  }
  fillcalendar(getfieldvalue("fulldate"));
  calendar.style.visibility = "visible";  

}

function fillcalendar(datestr)
{
  //fill in the calendar block
  // stage 1 - empty previous values
  var fieldname = "";
  var row = 0;
  var col = 0;
  row=0;  

  // how many days are there in this month?
  var monthstr = datestr.substring(5,7);
  var yearval = datestr.substring(0,4);
  var val=0;
  var leap=0;
  var maxday = 31;
  if (monthstr > 12) monthstr = "12";
  if (monthstr == "02")
  {
    val = yearval % 4;
    if (val == 0) leap = 1;
    if (leap == 1)
    {
      if (yearval.substring(2,4) == "00")
      {
        leap = 0;
        val = yearval % 400;
        if (val == 0) leap = 1;
      }
    }
    maxday = 28 + leap;
  }
  // now for the 30 day lot
  // 30 days hath 04, 06,09,11
  if (monthstr == "04" || monthstr == "06" || monthstr == "09" || monthstr == "11")
  {
     maxday = 30;
  }  

  var daynum = 1;
  var mnthnum = datestr.substring(5,7);
  mnthnum = mnthnum - 1;
  var yearnum = datestr.substring(0,4) * 1;

  var daterotate = new Date(yearnum,mnthnum,daynum,0,0,0);
  col = daterotate.getDay()-1;
  if (col == -1) col = 6;

  for (row=0; row<6; row++)
  {
    for (boxnum=0; boxnum < 7; boxnum++)
    {  
      fieldname = "d"+row+boxnum;
      if (boxnum+(row*7) < col || daynum > maxday)
      {
        putfieldvalue(fieldname,"");
        changevisibility(fieldname,"hidden");
      } else
      {
        putfieldvalue(fieldname,daynum);
        changevisibility(fieldname,"visible");
        daynum = daynum + 1;
      }
      changebackground(fieldname,"#cccccc");
    }
  }
}

function canceldate()
{
  var row = 0;
  var col = 0;
  // row loop
  for (row=0; row < 6; row++)
  {  
    // col loop
    for (col=0; col < 7; col++)
    {
      // set value to ""
      fieldname = "d"+row+col;
      putfieldvalue(fieldname,"");
      changevisibility(fieldname,"hidden");
//      document.getElementById(fieldname).value = "";
//      document.getElementById(fieldname).style.visibility = "hidden";
    }
  }  
  calendar.style.visibility = "hidden";
}

function selectday(obj)
{
  //pad out the string
  var daystr = obj.value;
  if (daystr < 10) daystr = "0"+daystr;
  var fulldate = getfieldvalue("fulldate");
  fulldate = fulldate.substring(0,8)+daystr+fulldate.substring(10,19);
  putfieldvalue("fulldate",fulldate);
  canceldate();
  //pass back the value 
  var datestr=fulldate.substring(8,10)+"/"+fulldate.substring(5,7)+"/"+fulldate.substring(0,4);

//  document.getElementById(datefieldname).value = datestr;
  putfieldvalue(datefieldname,datestr);
}

function changemonth()
{
  // change the month in the string and fill in the calendar 
  var fulldate = getfieldvalue("fulldate");
  var monthsel = getfieldvalue("monthsel");
  putfieldvalue("fulldate",fulldate.substring(0,5)+monthsel+fulldate.substring(7,19));
  fillcalendar(getfieldvalue("fulldate"));
}

function changeyear()
{
  var fulldate = getfieldvalue("fulldate");
  var yearsel = getfieldvalue("yearsel");
  putfieldvalue("fulldate",yearsel+fulldate.substring(4,19));
  fillcalendar(getfieldvalue("fulldate"));
}

function prevmonth()
{
  var datestr = document.calendarform.fulldate.value;
  var daystr = "01";
  var monthstr = datestr.substr(5,2);
  var yearstr = datestr.substr(0,4);
  monthstr = monthstr - 1;
  if (monthstr < 1) 
  {
    monthstr = "12";
    yearstr = yearstr - 1;
  }

  if (monthstr < 10) monthstr = "0"+monthstr;
  datestr = yearstr+"-"+monthstr+"-"+daystr;
  monthstr = monthstr - 1;
  if (monthstr == 11)
  {
    var currentyear = 0;
    while (currentyear < document.calendarform.yearsel.length-1 && document.calendarform.yearsel[currentyear].value != yearstr)
    {
      currentyear = currentyear + 1;
    } 
    if (document.calendarform.yearsel[currentyear].value == yearstr)
    {
      document.calendarform.yearsel[currentyear].selected = true;
    } else
    {
      //dont do it we haven't got the year for this
      return
    }
  }
  document.calendarform.monthsel[monthstr].selected = true;
  document.calendarform.fulldate.value = datestr;
  fillcalendar(getfieldvalue("fulldate"));
}

function nextmonth()
{
  var datestr = document.calendarform.fulldate.value;
  var daystr = "01";
  var monthstr = datestr.substr(5,2);
  var yearstr = datestr.substr(0,4);
  monthstr = (monthstr*1) + 1;

  if (monthstr > 12) 
  {
    monthstr = "1";
    yearstr = (yearstr*1) + 1;
  }
  if (monthstr < 10) monthstr = "0"+monthstr;
  datestr = yearstr+"-"+monthstr+"-"+daystr;
  monthstr = monthstr - 1;
  if (monthstr == 0)
  {
    var currentyear = 0;
    while (currentyear < document.calendarform.yearsel.length-1 && document.calendarform.yearsel[currentyear].value != yearstr)
    {
      currentyear = currentyear + 1;
    } 
    if (document.calendarform.yearsel[currentyear].value == yearstr)
    {
      document.calendarform.yearsel[currentyear].selected = true;
    } else
    {
      //dont do it we haven't got the year for this
      return
    }
  }
  document.calendarform.monthsel[monthstr].selected = true;
  document.calendarform.fulldate.value = datestr;
  fillcalendar(getfieldvalue("fulldate"));
}

function fillindates()
{
  var yearstr = "";
  var monthstr = "";
  var daystr = "";

//  yearstr = document.getElementById("checkin").value.substring(6,10);
//  monthstr = document.getElementById("checkin").value.substring(3,5);
//  daystr = document.getElementById("checkin").value.substring(0,2);
  datestr = getfieldvalue("checkin");
  yearstr = datestr.substring(6,10);
  monthstr = datestr.substring(3,5);
  daystr = datestr.substring(0,2);
  

  foruser = new Date(yearstr,monthstr-1,daystr);
  yearstr = foruser.toLocaleString();
  var cnt = yearstr.indexOf(":")-3;
  if (cnt >= 0)
  {
    yearstr = yearstr.substring(0,cnt);
    putfieldvalue("checkinlocale",yearstr);
//    document.getElementById("checkinlocale").value = yearstr;
  } else
  {
    putfieldvalue("checkinlocale",getfieldvalue("checkin"));
//    document.getElementById("checkinlocale").value = document.getElementById("checkin").value;
  }

  datestr = getfieldvalue("checkout");
  yearstr = datestr.substring(6,10);
  monthstr = datestr.substring(3,5);
  daystr = datestr.substring(0,2);
//  yearstr = document.getElementById("checkout").value.substring(6,10);
//  monthstr = document.getElementById("checkout").value.substring(3,5);
//  daystr = document.getElementById("checkout").value.substring(0,2);
  foruser = new Date(yearstr,monthstr-1,daystr);
  yearstr = foruser.toLocaleString();
  cnt = -1;
  cnt = yearstr.indexOf(":")-3;
  if (cnt >= 0)
  {
    yearstr = yearstr.substring(0,cnt);
    putfieldvalue("checkoutlocale",yearstr);
//    document.getElementById("checkoutlocale").value = yearstr;
  } else
  {
//    putfieldvalue("checkoutlocale",getfieldvalue("checkout"));
//    document.getElementById("checkoutlocale").value = document.getElementById("checkout").value;
  }
}

function setupcalendar()
{
  if (navigator.userAgent.indexOf("Safari") != -1)
  {
    document.write("<style type=\"text/css\">\n.dayclass	{\n	height : 18px;\n	width : 34px;\n	}\n.dropyear	{\n	width : 68px;\n	}\n</style>");
  }
}


