// User Changeable Vars
var HighlightToday  = true;    // use true or false to have the current day highlighted
var DisablePast    = true;    // use true or false to allow past dates to be selectable
// The month names in your native language can be substituted below
var MonthNames = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
// Global Vars
var now = new Date();
var dest = null;
var ny = now.getFullYear(); // Today's Date
var nm = now.getMonth();
var nd = now.getDate();
var sy = 0; // currently Selected date
var sm = 0;
var sd = 0;
var y = now.getFullYear(); // Working Date
var m = now.getMonth();
var d = now.getDate();
var l = 0;
var t = 0;
var MonthLengths = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

function getObUpperLeft(obj) {
    var curLeft = 0;
    if (obj.offsetParent) {
        curLeft = obj.offsetLeft
        while (obj = obj.offsetParent) {
            curLeft += obj.offsetLeft
        }
    }
    return (curLeft);
}

function getObUpperTop(obj) {
    var curTop = 0;
    if (obj.offsetParent) {
        curTop = obj.offsetTop
        while (obj = obj.offsetParent) {

            curTop += obj.offsetTop

        }

    }

    return (curTop);

}



/*

  Function: GetDate(control)



  Arguments:

    control = ID of destination control

*/

function GetDate() {

  EnsureCalendarExists();

  DestroyCalendar();

  // One arguments is required, the rest are optional

  // First arguments must be the ID of the destination control

  if(arguments[0] == null || arguments[0] == "") {

    // arguments not defined, so display error and quit

    alert("ERROR: Destination control required in funciton call GetDate()");

    return;

  } else {

    // copy argument

    dest = arguments[0];

  }

  y = now.getFullYear();

  m = now.getMonth();

  d = now.getDate();

  sm = 0;

  sd = 0;

  sy = 0;

  var cdval = dest.value;

  if(/\d{1,2}.\d{1,2}.\d{4}/.test(dest.value)) {

    // element contains a date, so set the shown date

    var vParts = cdval.split("/"); // assume mm/dd/yyyy

    sm = vParts[0] - 1;

    sd = vParts[1];

    sy = vParts[2];

    m=sm;

    d=sd;

    y=sy;

  }

  

//  l = dest.offsetLeft; // + dest.offsetWidth;

//  t = dest.offsetTop - 125;   // Calendar is displayed 125 pixels above the destination element

//  if(t<0) { t=0; }      // or (somewhat) over top of it. ;)



  /* Calendar is displayed 125 pixels above the destination element

  or (somewhat) over top of it. ;)*/

  l = dest.offsetLeft + dest.offsetParent.offsetLeft;

  t = dest.offsetTop - 125;

  if(t < 0) t = 0; // >

  l = getObUpperLeft(dest);

  t = getObUpperTop(dest);

  DrawCalendar();

}



/*

  function DestoryCalendar()

  

  Purpose: Destory any already drawn calendar so a new one can be drawn

*/

function DestroyCalendar() {

  var cal = document.getElementById("dpCalendar");

  if(cal != null) {

    cal.innerHTML = null;

    cal.style.display = "none";

  }

  return

}



function DrawCalendar() {

  DestroyCalendar();

  cal = document.getElementById("dpCalendar");

  cal.style.left = l + "px";

  cal.style.top = t + "px";

  

  var sCal = "<table><tr><td class=\"cellButton\"><a href=\"javascript: PrevMonth();\" title=\"Previous Month\">&lt;&lt;</a></td>"+

    "<td class=\"cellMonth\" width=\"80%\" colspan=\"5\">"+MonthNames[m]+" "+y+"</td>"+

    "<td class=\"cellButton\"><a href=\"javascript: NextMonth();\" title=\"Next Month\">&gt;&gt;</a></td></tr>"+

    "<tr><td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td></tr>";

  var wDay = 1;

  var wDate = new Date(y,m,wDay);

  if(isLeapYear(wDate)) {

    MonthLengths[1] = 29;

  } else {

    MonthLengths[1] = 28;

  }

  var dayclass = "";

  var isToday = false;

  for(var r=1; r<7; r++) {

    sCal = sCal + "<tr>";

    for(var c=0; c<7; c++) {

      var wDate = new Date(y,m,wDay);

      if(wDate.getDay() == c && wDay<=MonthLengths[m]) {

        if(wDate.getDate()==sd && wDate.getMonth()==sm && wDate.getFullYear()==sy) {

          dayclass = "cellSelected";

          isToday = true;  // only matters if the selected day IS today, otherwise ignored.

        } else if(wDate.getDate()==nd && wDate.getMonth()==nm && wDate.getFullYear()==ny && HighlightToday) {

          dayclass = "cellToday";

          isToday = true;

        } else {

          dayclass = "cellDay";

          isToday = false;

        }

        if(((now > wDate) && !DisablePast) || (now <= wDate) || isToday) { // >

          // user wants past dates selectable

          sCal = sCal + "<td class=\""+dayclass+"\"><a href=\"javascript: ReturnDay("+wDay+");\">"+wDay+"</a></td>";

        } else {

          // user wants past dates to be read only

          sCal = sCal + "<td class=\""+dayclass+"\">"+wDay+"</td>";

        }

        wDay++;

      } else {

        sCal = sCal + "<td class=\"unused\"></td>";

      }

    }

    sCal = sCal + "</tr>";

  }

  sCal = sCal + "<tr><td colspan=\"4\" class=\"unused\"></td><td colspan=\"3\" class=\"cellCancel\"><a href=\"javascript: DestroyCalendar();\">Cancel</a></td></tr></table>"

  cal.innerHTML = sCal; // works in FireFox, opera

  cal.style.display = "block";

}



function PrevMonth() {

  m--;

  if(m==-1) {

    m = 11;

    y--;

  }

  DrawCalendar();

}



function NextMonth() {

  m++;

  if(m==12) {

    m = 0;

    y++;

  }

  DrawCalendar();

}



function ReturnDay(day) {

  cDest = document.getElementById(dest);

  dest.value = (m+1)+"/"+day+"/"+y;

  DestroyCalendar();

}



function EnsureCalendarExists() {

  if(document.getElementById("dpCalendar") == null) {

    var eCalendar = document.createElement("div");

    eCalendar.setAttribute("id", "dpCalendar");

    document.body.appendChild(eCalendar);

  }

}



function isLeapYear(dTest) {

  var y = dTest.getYear();

  var bReturn = false;

  

  if(y % 4 == 0) {

    if(y % 100 != 0) {

      bReturn = true;

    } else {

      if (y % 400 == 0) {

        bReturn = true;

      }

    }

  }

  

  return bReturn;

}  

  

function makePostRequest(url, option, callback, parameter) {

	var httpRequest;



	if (window.XMLHttpRequest) { // Mozilla, Safari, ...

		httpRequest = new XMLHttpRequest();

		if (httpRequest.overrideMimeType) {

			httpRequest.overrideMimeType('text/xml');

			// See note below about this line

		}

	} 

	else if (window.ActiveXObject) { // IE

		try {

			httpRequest = new ActiveXObject("Msxml2.XMLHTTP");

		} 

		catch (e) {

			try {

				httpRequest = new ActiveXObject("Microsoft.XMLHTTP");

			} 

			catch (e) {}

		}

	}



	if (!httpRequest) {

		//alert('Giving up :( Cannot create an XMLHTTP instance');

		return false;

	}

	httpRequest.onreadystatechange = function() { callback(httpRequest); };

	httpRequest.open(option, url, true);

	httpRequest.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); 

	if (option == 'POST') {

		httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

		httpRequest.setRequestHeader("Content-length", parameter.length);

		httpRequest.setRequestHeader("Connection", "close");

	}

	httpRequest.send(parameter);

	return false;

}



function updateResponse(httpRequest) {

	if (httpRequest.readyState == 4) {

		if (httpRequest.status == 200) {

			if (httpRequest.responseText != "Empty") {

				var results = decodeURIComponent(httpRequest.responseText).split("|");

				if (results.length > 0) {

					alert(results[0]);

					if ((results.length > 1) && (results[1])) {

					    var obj = document.getElementById(results[1]);

						obj.reset();

						if (results[1] == "reserveCar") {

						   useAvalonAddr(document.getElementById('pickup_address_div'));

						   useAvalonAddr(document.getElementById('return_address_div'));

						}

					    document.getElementById('airport_pickup_div').style.display = 'none';

					    document.getElementById('shuttle_div').style.display = 'none';						   

					}

				}

			}

		} else {

			//alert('There was a problem with the request.');

		}

	}

}



var rates="<div class='inner'><p><span class='emp1'>Rates:</span></p><table border=\"1\"><tr><td>Vehicle</td><td>Daily</td><td>Weekly</td><td>Monthly</td><td>-</td>";
var promoText="";


function showRates() {

	var infoBoxObj = document.getElementById('loginMutate');

	infoBoxObj.style.display="none";

	infoBoxObj.innerHTML=rates;

	infoBoxObj.style.display="block";

}

function showPromo()
{
		if (promoText != "") {

			  var infoBoxObj1 = document.getElementById('loginMutate');

			  infoBoxObj1.style.display="none";

			  infoBoxObj1.innerHTML=promoText;

			  infoBoxObj1.style.display="block";
		}
}

function loginResponse(httpRequest) {

	if (httpRequest.readyState == 4) {

		if (httpRequest.status == 200) {

			if (httpRequest.responseText != "Empty") {

				var results = decodeURIComponent(httpRequest.responseText).split("|");

				if (results.length > 0) {

					if (results[0] == "success") {

						document.getElementById('magicLogOff').style.display="none";

						var infoBoxObj = document.getElementById('magicLogOn');

						var userInfo=results[1].split(",");

						//infoBoxObj.innerHTML="<div id=\"user\" style=\"visibility:hidden\">"+userInfo[0]+"</div><span class=\"emp1\">User Name&#58; </span>"+userInfo[0]+"<br /><span class=\"emp1\">Company Name&#58; </span>"+userInfo[1]+"<br /><span class=\"emp1\">Coordinator&#58; </span>"+userInfo[2]+"<br /><span class=\"emp1\">Phone&#58; </span>"+userInfo[3]+"<br /><span class=\"emp1\">Email&#58; </span>"+userInfo[4]+"<br />";

						infoBoxObj.innerHTML="<div id=\"user\" style=\"visibility:hidden\">"+userInfo[0]+"</div><span class=\"emp1\">User Name&#58; </span>"+userInfo[0]+"<br />";

						infoBoxObj.style.display="block";

						var rateInfo=results[2].split(",");

						for (var i = 0; i < rateInfo.length - 1; i+=5) {

						     rates += "<tr><td>"+rateInfo[i]+"</td><td>"+rateInfo[i+1]+"</td><td>"+rateInfo[i+2]+"</td><td>"+rateInfo[i+3]+"</td><td>"+rateInfo[i+4]+"</td>";

						}

						if (rateInfo.length > 0) {
						    rates += "</tr></table><BR />";
							if (userInfo[5]) {
							   rates += userInfo[5];
							}
							else {
							    rates += "<p>Lower rates are based on a volume of 25 or more vehicles out at any one time.</p><p>Out of state vehicles may be charged a fee of $50.00 to $150.00 per month</p>";
							}
							rates+="</div>";
						}

						var barNavObj = document.getElementById('barNav');					
            barNavObj.innerHTML="";
  					if (results[3] != "") {
  
  						  var infoBoxObj1 = document.getElementById('loginMutate');
  
  						  infoBoxObj1.style.display="none";
  
  						  infoBoxObj1.innerHTML=results[3];
  
  						  infoBoxObj1.style.display="block";
  						  promoText = results[3];
  						  barNavObj.innerHTML+="<a href='javascript:showPromo();'>Special </a>&nbsp;&nbsp;&nbsp;";
  
  					}
						barNavObj.innerHTML+="<a href='javascript:sendGetRequest(\"car.htm\");'>Car </a>&nbsp;&nbsp;&nbsp; <a href='javascript:sendGetRequest(\"shuttle.htm\");'>Shuttle </a> &nbsp;&nbsp;&nbsp; <a href='javascript:showRates()'>Rates </a>&nbsp;&nbsp;&nbsp; <a href='javascript:sendGetRequest(\"relo.htm\");'>Relocation</a>&nbsp;&nbsp;&nbsp;<a href='javascript:sendGetRequest(\"carship.htm\");'>Auto Transport Service</a>&nbsp;&nbsp;&nbsp;<a href='javascript:sendGetRequest(\"accounts.htm\");'>Accounting</a>&nbsp;&nbsp;&nbsp; <a href='javascript:logOff();'>Log Off</a></div> ";		
					}

					else {

					     alert ("Invalid User Name/Password");

					}

				}

			}

		} else {

			//alert('There was a problem with the request.');

		}

	}

}



function loginMutateResponse(httpRequest) {

	if (httpRequest.readyState == 4) {

		if (httpRequest.status == 200) {

			if (httpRequest.responseText != "Empty") {

				var results = decodeURIComponent(httpRequest.responseText).split("|");

				if (results.length > 0) {

					if (results[0] != "") {

						var infoBoxObj = document.getElementById('loginMutate');

						infoBoxObj.style.display="none";

						infoBoxObj.innerHTML=results[0];

						infoBoxObj.style.display="block";
tabberAutomatic();

					}

				}

			}

		} else {

			//alert('There was a problem with the request.');

		}

	}

}



function logOff()

{

    document.getElementById('magicLogOn').style.display="none";

	document.getElementById('magicLogOff').style.display="block";

	var barNavObj = document.getElementById('barNav');					

	barNavObj.innerHTML="Home &nbsp;&nbsp;&nbsp; <a href='about.php'>About Us</a> &nbsp;&nbsp;&nbsp; <a href='services.php'>Services</a> &nbsp;&nbsp;&nbsp; <a href='corporate.php'>Corporate</a> &nbsp;&nbsp;&nbsp; <a href='reservations.php'>Reservations</a> &nbsp;&nbsp;&nbsp; <a href='faq.php'>FAQ</a>"

	location.reload(true);

}



function sendPostData (obj, url) 

{
if (url == 'accntInfo.php') {
   alert ("Access Denied");
   return;
}

	var parameter = "";

	var userInfoObj = document.getElementById('user');

	if (userInfoObj)

	    parameter = "user=" +userInfoObj.innerHTML + "&";

	for (var i = 0; i < obj.length; i++) {

         if (obj[i].tagName == "INPUT") {

            if (obj[i].type == "text") {

               parameter += obj[i].name + "=" + encodeURI(obj[i].value) + "&";

			   //obj[i].value='';

            }

            if (obj[i].type == "password") {

               parameter += obj[i].name + "=" + encodeURI(obj[i].value) + "&";

			   //obj[i].value='';

            }

            if (obj[i].type == "checkbox") {

               if (obj[i].checked) {

                  parameter += obj[i].name + "=" + encodeURI(obj[i].value) + "&";

				  //obj[i].value='';

               }

            }

            if (obj[i].type == "radio") {

               if (obj[i].checked) {

                  parameter += obj[i].name + "=" + encodeURI(obj[i].value) + "&";

			      //obj[i].checked=false;

               }

            }

         }   

         if (obj[i].tagName == "SELECT") {

            var sel = obj[i];

            parameter += sel.name + "=" + encodeURI(sel.options[sel.selectedIndex].value) + "&";

			//sel.selectedIndex=-1;

         }

         if (obj[i].tagName == "TEXTAREA") {

		   parameter += obj[i].name + "=" + encodeURI(obj[i].value) + "&";

		   //obj[i].value='';

		}

	}

	if (url == "login.php") {

		makePostRequest(url, 'POST', loginResponse, parameter);

	}

	else {

		makePostRequest(url, 'POST', updateResponse, parameter);

	}

}  



function sendGetRequest (url)

{

    var parameter = "";

	makePostRequest(url, 'GET', loginMutateResponse, parameter);

}



function getCookie(c_name)

{

if (document.cookie.length>0)

  {

  c_start=document.cookie.indexOf(c_name + "=");

  if (c_start!=-1)

    {

    c_start=c_start + c_name.length+1;

    c_end=document.cookie.indexOf(";",c_start);

    if (c_end==-1) c_end=document.cookie.length;

    return unescape(document.cookie.substring(c_start,c_end));

    }

  }

return "";

}



function setCookie(c_name,value,expiredays)

{

var exdate=new Date();

exdate.setDate(exdate.getDate()+expiredays);

document.cookie=c_name+ "=" +escape(value)+

((expiredays==null) ? "" : ";expires="+exdate.toUTCString());

}


function checkCookie()
{
username=getCookie('username');
if (username!=null && username!="")
  {
  alert('Welcome again '+username+'!');
  }
else
  {
  username=prompt('Please enter your name:',"");

  if (username!=null && username!="")
    {
    setCookie('username',username,365);
    }
  }
}

function useAvalonAddr(obj)
{
	var obj1 = obj.getElementsByTagName('input');
	obj1[0].value = "Avalon Office";
	obj1[1].value = "312 Martin Ave";
	obj1[2].value = "Santa Clara";
	obj1[3].value = "CA";
	obj1[4].value = "95050";
	obj1[5].value = "95050";
	obj.style.display="none";
}

function useOtherAddr(obj)
{
	var obj1 = obj.getElementsByTagName('input');
	for (var i = 0; i < obj1.length - 1; i++) {
         if (obj1[i].tagName == "INPUT") {
            if (obj1[i].type == "text") {
			   obj1[i].value='';
            }
		}
	}
	obj.style.display="block";
}
//------------------ tabs --------------------/
function tabberObj(argsObj)
{var arg;this.div=null;this.classMain="tabber";this.classMainLive="tabberlive";this.classTab="tabbertab";this.classTabDefault="tabbertabdefault";this.classNav="tabbernav";this.classTabHide="tabbertabhide";this.classNavActive="tabberactive";this.titleElements=['h2','h3','h4','h5','h6'];this.titleElementsStripHTML=true;this.removeTitle=true;this.addLinkId=false;this.linkIdFormat='<tabberid>nav<tabnumberone>';for(arg in argsObj){this[arg]=argsObj[arg];}
this.REclassMain=new RegExp('\\b'+this.classMain+'\\b','gi');this.REclassMainLive=new RegExp('\\b'+this.classMainLive+'\\b','gi');this.REclassTab=new RegExp('\\b'+this.classTab+'\\b','gi');this.REclassTabDefault=new RegExp('\\b'+this.classTabDefault+'\\b','gi');this.REclassTabHide=new RegExp('\\b'+this.classTabHide+'\\b','gi');this.tabs=new Array();if(this.div){this.init(this.div);this.div=null;}}
tabberObj.prototype.init=function(e)
{var
childNodes,i,i2,t,defaultTab=0,DOM_ul,DOM_li,DOM_a,aId,headingElement;if(!document.getElementsByTagName){return false;}
if(e.id){this.id=e.id;}
this.tabs.length=0;childNodes=e.childNodes;for(i=0;i<childNodes.length;i++){if(childNodes[i].className&&childNodes[i].className.match(this.REclassTab)){t=new Object();t.div=childNodes[i];this.tabs[this.tabs.length]=t;if(childNodes[i].className.match(this.REclassTabDefault)){defaultTab=this.tabs.length-1;}}}
DOM_ul=document.createElement("ul");DOM_ul.className=this.classNav;for(i=0;i<this.tabs.length;i++){t=this.tabs[i];t.headingText=t.div.title;if(this.removeTitle){t.div.title='';}
if(!t.headingText){for(i2=0;i2<this.titleElements.length;i2++){headingElement=t.div.getElementsByTagName(this.titleElements[i2])[0];if(headingElement){t.headingText=headingElement.innerHTML;if(this.titleElementsStripHTML){t.headingText.replace(/<br>/gi," ");t.headingText=t.headingText.replace(/<[^>]+>/g,"");}
break;}}}
if(!t.headingText){t.headingText=i+1;}
DOM_li=document.createElement("li");t.li=DOM_li;DOM_a=document.createElement("a");DOM_a.appendChild(document.createTextNode(t.headingText));DOM_a.href="javascript:void(null);";DOM_a.title=t.headingText;DOM_a.onclick=this.navClick;DOM_a.tabber=this;DOM_a.tabberIndex=i;if(this.addLinkId&&this.linkIdFormat){aId=this.linkIdFormat;aId=aId.replace(/<tabberid>/gi,this.id);aId=aId.replace(/<tabnumberzero>/gi,i);aId=aId.replace(/<tabnumberone>/gi,i+1);aId=aId.replace(/<tabtitle>/gi,t.headingText.replace(/[^a-zA-Z0-9\-]/gi,''));DOM_a.id=aId;}
DOM_li.appendChild(DOM_a);DOM_ul.appendChild(DOM_li);}
e.insertBefore(DOM_ul,e.firstChild);e.className=e.className.replace(this.REclassMain,this.classMainLive);this.tabShow(defaultTab);if(typeof this.onLoad=='function'){this.onLoad({tabber:this});}
return this;};tabberObj.prototype.navClick=function(event)
{var
rVal,a,self,tabberIndex,onClickArgs;a=this;if(!a.tabber){return false;}
self=a.tabber;tabberIndex=a.tabberIndex;a.blur();if(typeof self.onClick=='function'){onClickArgs={'tabber':self,'index':tabberIndex,'event':event};if(!event){onClickArgs.event=window.event;}
rVal=self.onClick(onClickArgs);if(rVal===false){return false;}}
self.tabShow(tabberIndex);return false;};tabberObj.prototype.tabHideAll=function()
{var i;for(i=0;i<this.tabs.length;i++){this.tabHide(i);}};tabberObj.prototype.tabHide=function(tabberIndex)
{var div;if(!this.tabs[tabberIndex]){return false;}
div=this.tabs[tabberIndex].div;if(!div.className.match(this.REclassTabHide)){div.className+=' '+this.classTabHide;}
this.navClearActive(tabberIndex);return this;};tabberObj.prototype.tabShow=function(tabberIndex)
{var div;if(!this.tabs[tabberIndex]){return false;}
this.tabHideAll();div=this.tabs[tabberIndex].div;div.className=div.className.replace(this.REclassTabHide,'');this.navSetActive(tabberIndex);if(typeof this.onTabDisplay=='function'){this.onTabDisplay({'tabber':this,'index':tabberIndex});}
return this;};tabberObj.prototype.navSetActive=function(tabberIndex)
{this.tabs[tabberIndex].li.className=this.classNavActive;return this;};tabberObj.prototype.navClearActive=function(tabberIndex)
{this.tabs[tabberIndex].li.className='';return this;};function tabberAutomatic(tabberArgs)
{var
tempObj,divs,i;if(!tabberArgs){tabberArgs={};}
tempObj=new tabberObj(tabberArgs);divs=document.getElementsByTagName("div");for(i=0;i<divs.length;i++){if(divs[i].className&&divs[i].className.match(tempObj.REclassMain)){tabberArgs.div=divs[i];divs[i].tabber=new tabberObj(tabberArgs);}}
return this;}
function tabberAutomaticOnLoad(tabberArgs)
{var oldOnLoad;if(!tabberArgs){tabberArgs={};}
oldOnLoad=window.onload;if(typeof window.onload!='function'){window.onload=function(){tabberAutomatic(tabberArgs);};}else{window.onload=function(){oldOnLoad();tabberAutomatic(tabberArgs);};}}
if(typeof tabberOptions=='undefined'){tabberAutomaticOnLoad();}else{if(!tabberOptions['manualStartup']){tabberAutomaticOnLoad(tabberOptions);}}
