var timeOuts= new Array();
var statusObj;
var dropDownDelay = 25;
addEvent(window,"load",init_menu);
function init_menu(){
	var menuObj;
	var menuOptionsArr;
	var menuOptionDropDownID;
	var dropDownMenuObj;
	var dropDownMenuLinksArr;
	menuObj = document.getElementById('linkcolumn');
	if( menuObj != null ){
		menuOptionsArr = menuObj.getElementsByTagName('div');
		if( menuOptionsArr.length > 0 ){
			for( var i=0; i < menuOptionsArr.length; i++ ){
				menuOptionDropDownID = menuOptionsArr[i].getAttribute('rel');
				if( menuOptionDropDownID != undefined && menuOptionDropDownID != "" ){
					addEvent(menuOptionsArr[i],"mouseover",displayDropDown);
					addEvent(menuOptionsArr[i],"mouseout",setDropDownTimer);
					dropDownMenuObj = document.getElementById(menuOptionDropDownID);
					if( dropDownMenuObj != null ){
						addEvent(dropDownMenuObj,"mouseover",clearDropDownTimer);
						addEvent(dropDownMenuObj,"mouseout",setDropDownTimer2);
/*
						if( dropDownMenuObj.childNodes ){
							dropDownMenuLinksArr = dropDownMenuObj.childNodes;
							for( var j=0; j < dropDownMenuLinksArr.length; j++ ){
								//addEvent(dropDownMenuLinksArr[j],"mouseover",clearDropDownTimer);
								//addEvent(dropDownMenuLinksArr[j],"mouseout",setDropDownTimer2);
							}
						}
*/
					}
				}
			}
		}
	}
}
function displayDropDown(e){
	var menuOptionLinkObj;
	var menuOptionObj;
	var dropDownMenuID;
	var dropDownMenuObj;
	var dropDownMenuLinksArr;
	var eventObj;
	menuOptionLinkObj = getElement(e);
	if( menuOptionLinkObj.parentNode ){
		menuOptionObj = menuOptionLinkObj.parentNode;
		if( menuOptionObj != null ){
			dropDownMenuID = menuOptionObj.getAttribute('rel');
			if( dropDownMenuID != undefined && dropDownMenuID != "" ){
				dropDownMenuObj = document.getElementById(dropDownMenuID);
				if( dropDownMenuObj != null ){
					dropDownMenuObj.style.top = Number(getPosOffset(menuOptionObj,"top")) + "px";
					dropDownMenuObj.style.left = Number(getPosOffset(menuOptionObj,"left") + menuOptionObj.offsetWidth) + "px";
					dropDownMenuObj.style.visibility = "visible";
				}
			}
		}
	}
}
function hideDropDown(objID){
	var dropDownMenuObj;
	dropDownMenuObj = document.getElementById(objID);
	if( dropDownMenuObj != null ){
		dropDownMenuObj.style.visibility = "hidden";
	}
}
function setDropDownTimer2(e){
	var dropDownMenuObj;
	eventObj = getElement(e);
	if( eventObj != null ){
		if( eventObj.tagName.toUpperCase() == "A" ){
			dropDownMenuObj = eventObj.parentNode;
			timeOuts[dropDownMenuObj.id] = setTimeout("hideDropDown('" + dropDownMenuObj.id + "')",dropDownDelay);
		}
		else if( eventObj.tagName.toUpperCase() == "DIV" ){
			dropDownMenuObj = eventObj;
			timeOuts[dropDownMenuObj.id] = setTimeout("hideDropDown('" + dropDownMenuObj.id + "')",dropDownDelay);
		}
		else{
			alert(eventObj.tagName.toUpperCase());
		}
	}
}
function setDropDownTimer(e){
	var menuOptionLinkObj;
	var menuOptionObj;
	var dropDownMenuID;
	var dropDownMenuObj;
	menuOptionLinkObj = getElement(e);
	if( menuOptionLinkObj.parentNode ){
		menuOptionObj = menuOptionLinkObj.parentNode;
		if( menuOptionObj != null ){
			dropDownMenuID = menuOptionObj.getAttribute('rel');
			if( dropDownMenuID != undefined && dropDownMenuID != "" ){
				timeOuts[dropDownMenuID] = setTimeout("hideDropDown('" + dropDownMenuID + "')",dropDownDelay);
			}
		}
	}
}
function clearDropDownTimer(e){
	var eventObj;
	var dropDownMenuObj;
	eventObj = getElement(e);
	if( eventObj != null ){
		if( eventObj.tagName.toUpperCase() == "A" ){
			dropDownMenuObj = eventObj.parentNode;
		}
		else if( eventObj.tagName.toUpperCase() == "DIV" ){
			dropDownMenuObj = eventObj;
		}
		else{
			alert(eventObj.tagName.toUpperCase());
		}
		clearTimeout(timeOuts[dropDownMenuObj.id]);
	}
}
function getPosOffset(obj, offsettype){
	var totaloffset;
	var parentEl;
	
	parentEl = obj.offsetParent;
	totaloffset = (offsettype=="left")? obj.offsetLeft : obj.offsetTop;
		
	while(parentEl != null){
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}
function getRateQuote(){
	var rURL;
	var rMethod;
	var rAsync;
	var rData;
	var result;
	
	var oZipObj = document.getElementById('originzip');
	var dZipObj = document.getElementById('destzip');
	var weightObj = document.getElementById('weight');
	var descObj = document.getElementById('desc');
	var emailObj = document.getElementById('email');
	
	if( oZipObj == null || oZipObj.value == "" || dZipObj == null || dZipObj.value == "" || weightObj == null || weightObj.value == "" || descObj == null || descObj.value == "" || emailObj == null || emailObj.value == "" ){
		if( oZipObj == null || oZipObj.value == "" ){
			alert("Origin zip code field is empty.\nYou must specify an origin zip code.");
			return false;
		}
		if( dZipObj == null || dZipObj.value == "" ){
			alert("Destination zip code field is empty.\nYou must specify a destination zip code.");
			return false;
		}
		if( weightObj == null || weightObj.value == "" ){
			alert("Total weight field is empty.\nYou must specify the total shipment weight.");
			return false;
		}
		if( descObj == null || descObj.value == "" ){
			alert("Item(s) field is empty.\nYou must specify a shipment/item(s) description.");
			return false;
		}
		if( emailObj == null || emailObj.value == "" ){
			alert("Email field is empty.\nYou must specify an email address.");
			return false;
		}
	}
	
	rURL = "getRates.asp";
	rMethod = "POST";
	rAsync = "true";
	rData = ""
	rData += "origin=" + encodeURIComponent(oZipObj.value);
	rData += "&destination=" + encodeURIComponent(dZipObj.value);
	rData += "&weight=" + encodeURIComponent(weightObj.value);
	rData += "&description=" + encodeURIComponent(descObj.value);
	rData += "&email=" + encodeURIComponent(emailObj.value);

	result = doAJAXRequest(rURL, rMethod, rAsync, rData, handleRateResults);
	if( result[0] != true ){
		if( result.length >= 2 ){
			alert(result[1]);
		}
	}
}

function handleRateResults(e){
	if(ajaxRequest.readyState  == 4){
		if(ajaxRequest.status  == 200){
			if( ajaxRequest.responseText == "SUCCESS" ){
				alert("Your rate quote has been submitted.  You will receive a response by email shortly.");
				clearRateQuoteForm();
			}
			else{
				alert(ajaxRequest.responseText);
			}
		}
		else{
			alert("ERROR " + ajaxRequest.status + ": " + ajaxRequest.statusText + "\nPlease try again later.");
/*  DEBUG: Comment the above line - Uncomment below 3 lines when debugging
			document.getElementById('ajaxRequestDiv').innerHTML = ajaxRequest.responseText;
			centerElement('ajaxRequestDiv',100);
			document.getElementById('ajaxRequestDiv').style.display = "block";
*/
		}
	}
}
function clearRateQuoteForm(){
	var dZipObj = document.getElementById('destzip');
	var weightObj = document.getElementById('weight');
	var descObj = document.getElementById('desc');

	if( dZipObj != null ){
		dZipObj.value = "";
	}
	if( weightObj != null ){
		weightObj.value = "";
	}
	if( descObj != null ){
		descObj.value = "";
	}
}
function showFuelSurchargeWindow(){
	var fuelSurchargeDiv = document.getElementById('fuelsurchargediv');
	if( fuelSurchargeDiv ){
		centerElement('fuelsurchargediv',125);
		showElement('fuelsurchargediv');
	}
}



function centerElement(elementid, offsetY, offsetX){
	var element = document.getElementById(elementid);
	if( !element ){
		return false;
	}
	var elementWidth;
	var elementHeight;
  var myWidth = 0;
	var myHeight = 0;
	var scrollPos = 0;
	
	if( offsetY == null || isNaN(offsetY) ){
		offsetY = 0;
	}
	if( offsetX == null || isNaN(offsetX) ){
		offsetX = 0;
	}
	
	// Code taken from http://www.howtocreate.co.uk/tutorials/javascript/browserwindow
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
		scrollPos = window.pageYOffset;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
		scrollPos = document.documentElement.scrollTop;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
		scrollPos = document.body.scrollTop;
  }
	// End taken code
	
	if( element.style.display == "none" || element.style.display == "" ){
		element.style.visibility = "hidden";
		element.style.display = "block";
		elementWidth = element.offsetWidth;
		elementHeight = element.offsetHeight;
		element.style.display = "none";
		element.style.visibility = "visible";
	}
	else{
		elementWidth = element.offsetWidth;
		elementHeight = element.offsetHeight;
	}

	if( myHeight > (elementHeight+offsetY) ){
		element.style.top = Math.round(scrollPos + (myHeight/2) - (elementHeight/2) - offsetY) + "px";
	}
	else if( myHeight > elementHeight ){
		element.style.top = Math.round(scrollPos + (myHeight/2) - (elementHeight/2)) + "px";
	}
	else{
		element.style.top = scrollPos + "px";
	}
	if( myWidth > (elementWidth + offsetX) ){
		element.style.left = Math.round((myWidth/2) - (elementWidth/2) - offsetX) + "px";	
	}
	else if( myWidth > elementWidth ){
		element.style.left = Math.round((myWidth/2) - (elementWidth/2)) + "px";	
	}
	else{
		element.style.left = 0 + "px";
	}
}
function showElement(elementid){
	var element = document.getElementById(elementid);
	if( !element ){
		return false;
	}
	element.style.display = "block";
}
function hideElement(elementid){
	var element = document.getElementById(elementid);
	if( !element ){
		return false;
	}
	element.style.display = "none";
}