gObjCountries	= "CountriesList";
gObjCoR		= "CoRList";
gObjSTAList	= "StationsSTAList";
gObjILCList	= "StationsILCList";
gObjCarList	= "CarGroupsList";
iFrameDivID	= "DropdownIFrame";
dropdownDivID	= "Dropdown";
scrollDivID 	= "Scroll";
gSelected	= "";
function setSelectedIntoDiv(pThis, pWhere)
{
	document.getElementById(pWhere).innerHTML = pThis.innerHTML;
	document.getElementById(pWhere).setAttribute('valueSelected', pThis.id);
	CloseDropdown();
	switch( pWhere )
	{
		case 'Country':
		// run AJAX to display stations
		var selectedCTR = document.getElementById(pWhere);
		var xGroupIcons = document.getElementById('carGroupIcons');
		if( selectedCTR && (selectedCTR.getAttribute('valueSelected') != '') )
		{
getAJAXData( 'toggleLocations',  gStationsURL + "/AjaxWebService?OpenAgent&SOURCE=QB" +  "&RAN=" +  Math.random() + "&F=getLocationsPerCountry" + gAgentParam,  selectedCTR.getAttribute('valueSelected'), 'STAList');
getAJAXData( 'toggleCarGroups',  gFleetURL + "/AjaxWebService?OpenAgent" +  "&RAN=" +  Math.random() + "&F=getCarGroupsPerCountry" + gAgentParam,   selectedCTR.getAttribute('valueSelected'), 'GRP1');
			// delete opening hours from div
			removeStationInformation('ETA');
			removeStationInformation('ETT');
			gCountry = selectedCTR.getAttribute('valueSelected');
			if( xGroupIcons )
				xGroupIcons.innerHTML = '';
		}
		break;
		case 'STA':
		// run AJAX to display opening hours
		var selectedSTA = document.getElementById(pWhere);
		if( selectedSTA && (selectedSTA.getAttribute('valueSelected') != '') )
		{
getAJAXData('toggleOpeningHours', gStationsURL + "/AjaxWebService?OpenAgent" +  "&RAN=" +  Math.random() + gAgentParam + "&F=getOpeningHoursPerLocation&STA=", selectedSTA.getAttribute('valueSelected'), 'openingHoursPickup');
selectReturnLocation( selectedSTA, gStationsURL + "/AjaxWebService?OpenAgent" + gAgentParam + "&F=getOpeningHoursPerLocation&STA=" );
		}
		break;
		case 'ILC':
		// run AJAX to display opening hours
		var selectedILC = document.getElementById(pWhere);
		if( selectedILC && (selectedILC.getAttribute('valueSelected') != '') )
		{
getAJAXData('toggleOpeningHours', gStationsURL + "/AjaxWebService?OpenAgent" +  "&RAN=" +  Math.random() + gAgentParam + "&F=getOpeningHoursPerLocation&STA=", selectedILC.getAttribute('valueSelected'), 'openingHoursReturn');
ReturnLocationFixed=true;
		}
		break;
		case 'GRP1':
		// run AJAX to display Car Icons
		var selectedILC = document.getElementById(pWhere);
		var selectedCTR = document.getElementById("Country");
		gCountry = selectedCTR.getAttribute('valueSelected');
		if( selectedILC && (selectedILC.getAttribute('valueSelected') != '') )
		{
			//alert('##### ' + selectedILC.getAttribute('valueSelected'));
			var xAgentUrl = '';
			xAgentUrl += gFleetURL + "/AjaxWebService?OpenAgent";
			xAgentUrl += gAgentParam +  gCountry + "&F=getCarIcons&GRP=" + selectedILC.getAttribute('valueSelected');
			getAJAXData('toggleCarGroupProperties', xAgentUrl, '&RAN=' +  Math.random()  , 'carGroupIcons');
		}
		break;
		default:
		break;
	}
}
function CreateDivDropdown(xObjectName, xSection, xGetValuesFromField)
{
	var BelowObject = document.getElementById(xSection);
	gSelected = xObjectName;
	document.onmousedown = CloseIfClickOutsideDropdown;
	displayDropdown(xObjectName, BelowObject, xGetValuesFromField);
}
function CloseIfClickOutsideDropdown(e)
{
	var eventbutton = (navigator.appName == "Netscape") ? e.which : event.button;
	if (eventbutton>0) 
	{
		// check to see if the div exists
		var dropdownDiv = document.getElementById( dropdownDivID + gSelected );
		var scrollDiv = document.getElementById(scrollDivID + gSelected );
		if (scrollDiv && dropdownDiv) {
			var dp_mouseX = 0;
			var dp_mouseY = 0;
			if (e != '')
				//if (document.layers)
				if (navigator.appName == "Netscape")
				{
					dp_mouseX = e.pageX;
					dp_mouseY = e.pageY;
				}
				else
				{
					dp_mouseX = event.x;
					dp_mouseY = event.y + document.body.scrollTop;
				}
			
			var dp_posX = 0;
			var dp_posY = 0;
			var dp_Height = 0;
			var dp_Width = 0;
			dp_posX = parseInt(dropdownDiv.style.left);
			dp_posY = parseInt(dropdownDiv.style.top);
			dp_Width = parseInt(scrollDiv.offsetWidth);
			dp_Height = parseInt(scrollDiv.offsetHeight);
			
			// Checking that the clik is 
			if ( (dp_mouseX < dp_posX || dp_mouseX > (dp_posX + dp_Width)) ||(dp_mouseY < dp_posY || dp_mouseY > (dp_posY + dp_Height)) )
				CloseDropdown();
		}
	}
}
function CloseDropdown()
{
	var dropdownDiv = document.getElementById( dropdownDivID + gSelected );
    if (dropdownDiv) {
    	document.onmousedown = null;
		dropdownDiv.style.visibility = "hidden";
		dropdownDiv.style.display = "none";
		
		var iFrameDiv = document.getElementById( iFrameDivID + gSelected );
		if (iFrameDiv)
			try
			{
				iFrameDiv.style.visibility = dropdownDiv.style.visibility;
				iFrameDiv.style.display = dropdownDiv.style.display;
			} catch(e) { }
	}
	gSelected = "";
}
// ============ DISPLAY =======================
function displayDropdown(pObjectName, displayBelowObject, pGetValuesFromField)
{
	var x = displayBelowObject.offsetLeft;
	var y = displayBelowObject.offsetTop + displayBelowObject.offsetHeight;
	var parent = displayBelowObject;
	while (parent.offsetParent) {
		parent = parent.offsetParent;
		x += parent.offsetLeft;
		y += parent.offsetTop ;
	}
	drawDropdown(pObjectName, x, y, pGetValuesFromField);
}
//============= DRAW =========================
function drawDropdown(pObjectName, x, y, pGetValuesFromField)
{
	var CompleteDropdownID = dropdownDivID + pObjectName;
	if (!document.getElementById(CompleteDropdownID)) {
		var newNode = document.createElement("div");
		newNode.setAttribute("id", CompleteDropdownID);
		newNode.setAttribute("class", "dropdownDiv");
		newNode.setAttribute("style", "visibility: hidden;");
		document.body.appendChild(newNode);
	}
	var dropdownDiv = document.getElementById(CompleteDropdownID);
	dropdownDiv.style.position = "absolute";
	dropdownDiv.style.left = x - 1 + "px";
	dropdownDiv.style.top = y + 1 + "px";
	dropdownDiv.style.visibility = (dropdownDiv.style.visibility == "visible" ? "hidden" : "visible");
	dropdownDiv.style.display = (dropdownDiv.style.display == "block" ? "none" : "block");
	dropdownDiv.style.zIndex = 10000;
	refreshDropdown(pObjectName, CompleteDropdownID, pGetValuesFromField);
}
function refreshDropdown(pObjectName, pCompleteDropdownID, pGetValuesFromField)
{
	var CompleteScrollID = scrollDivID + pObjectName;
	var DIV_1			= '<div class="scrolls" id="' + CompleteScrollID + '" >';
	var TABLE_main1		= "<table border='0' cellpadding='1' cellspacing='0' class='TableMain1'>";	
	var TR				= "<tr>";
	var TD				= "<td>";
	var xDIV			= "</div>";
	var xTABLE			= "</table>";
	var xTR				= "</tr>";
	var xTD				= "</td>";
	var html = '';
	html += DIV_1;
	html +=		TABLE_main1;
	html += 		getDropdownData(pGetValuesFromField);
	html +=		xTABLE;
	html +=	xDIV;
	document.getElementById(pCompleteDropdownID).innerHTML = html;
	adjustiFrame(pObjectName, pCompleteDropdownID, CompleteScrollID);
}
function getDropdownData(pGetValuesFromField)
{
	if( gObjCoR == gSelected)
		var xAction = ' onClick="setSelectedIntoDiv(this, \'CountryResidence\');" onMouseOver="this.className=\'dropdownEntryHover\';" onMouseOut="this.className=\'dropdownEntry\';"';
	else
		var xAction = ' onClick="setSelectedIntoDiv(this, \'Country\');" onMouseOver="this.className=\'dropdownEntryHover\';" onMouseOut="this.className=\'dropdownEntry\';"';
	
	var entryList = new Array();
	entryList = document.getElementById(pGetValuesFromField).value.split('#|#');
	var html = '';
	for( var i=0; i<entryList.length; i++)
	{
		html += entryList[i].replace( /%ACTION%/, xAction);
	}
	return html;
}
function adjustiFrame(pObjectName, pCompleteDropdownID, pCompleteScrollID)
{
	var CompleteIFrameID = iFrameDivID + pObjectName;
	
	// Using an "iFrame shim" to make sure the datepicker is in front of list elements
	// Opera doesn't like this, so if we're using Opera, don't even try
	var is_opera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
	if (is_opera)
		return;
	try {
		if (!document.getElementById(CompleteIFrameID))
		{
			var newNode = document.createElement('IFRAME'); 
			newNode.setAttribute("id", CompleteIFrameID);
			newNode.setAttribute("src", "javascript:false;");
			newNode.setAttribute("scrolling", "no");
			newNode.setAttribute("frameborder", "0");
			document.body.appendChild(newNode);
		}
		scrollDiv = document.getElementById(pCompleteScrollID);
		dropdownDiv = document.getElementById(pCompleteDropdownID);
		iFrameDiv = document.getElementById(CompleteIFrameID);
		try
		{
			iFrameDiv.style.position = "absolute";
			iFrameDiv.style.width = scrollDiv.offsetWidth;
			iFrameDiv.style.height = scrollDiv.offsetHeight ;
			iFrameDiv.style.top = dropdownDiv.style.top;
			iFrameDiv.style.left = dropdownDiv.style.left;
			iFrameDiv.style.zIndex = dropdownDiv.style.zIndex - 1;
			iFrameDiv.style.visibility = dropdownDiv.style.visibility ;
			iFrameDiv.style.display = dropdownDiv.style.display;
		} catch(e) { }
	} catch (ee) { }
}

