var currDirWindow;
//---------------------------------------------------------------------------------------------
function createXHR()
{   
   try { return new XMLHttpRequest();} catch(e) {}
   try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch (e) {}
   try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch (e) {}
   try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}    
   return null;
}
//---------------------------------------------------------------------------------------------
function resolveLoc(loc, query)
{	
	var req = false;
    var self = this;	
	self.req = createXHR();	
	if (self.req){
		self.req.open("GET", query, true);
		self.req.onreadystatechange = function() {		
			if (self.req.readyState == 4) {
				var ele = document.getElementById(loc);
				ele.value=self.req.responseText;	
				if (ele != "")
				{
					ele.style.color="#333333";
				}
			}
		}
		self.req.send(null);
	}else{
		alert("XMLHttpRequest not supported");  
	}
}
//----------------------------------------------------------------------------------------------
function createTag (tagName, attrbs, attrVals) 
{
	var oTag = document.createElement(tagName);
	if (attrbs == null || attrVals == null){
		return oTag;
	}
	for (var i=0; i < attrbs.length; i++)
	{
		oTag.setAttribute(attrbs[i], attrVals[i]);
	}
	return oTag;
}
//----------------------------------------------------------------------------------------------
var isDirReversed = false;
var curDirContainer = null;

function TogleDir()
{
	var startAddrFlag = 0;
	var fromToStr = "To";
	var textStr = "enter your ending address";
	
	isDirReversed = !isDirReversed;
	if (isDirReversed){
		fromToStr = "From";
		textStr = "enter your starting address";
		startAddrFlag = 1;
	}
	var oSelf = document.getElementById("USERADDRLBL");
	oSelf.innerHTML = "Driving Directions("+fromToStr+"):";

	oSelf = document.getElementById("STARTADDRFLAG");
	oSelf.value = ""+startAddrFlag;

	textOnBlur('useraddress', textStr);
}


function DirFormOnResult(oSelfId, infoForcache)
{	
	//alert(infoForcache);
	var startAddrFlag = 0;
	var fromToStr = "To";
	var textStr = "enter your ending address";
	var oSelf = document.getElementById(oSelfId);	
	var layerId = "dirform";
	var checkLayer = document.getElementById(layerId);
	if (checkLayer != null)
	{
		curDirContainer.removeChild(checkLayer);
		if (curDirContainer.id == oSelf.id){
			curDirContainer = null;
			return;
		}
		isDirReversed = false;
	}
	if (isDirReversed){
		fromToStr = "From";
		textStr = "enter your starting address";
		startAddrFlag = 1;
	}
	var layer = createTag('div', ["id"], [layerId]);
    layer.style.visibility = "visible";
    oSelf.appendChild(layer);
	var tempstr = infoForcache;

	layer.innerHTML = "<form style=\"display: inline; margin: 0 0 0 0;font-family: Arial, Helvetica, sans-serif;font-size: 12px;\" name=\"form1\" method=\"post\" action=\"http://yellowlookup.com/VeDesktopSearch\"><span id=\"USERADDRLBL\" class=\"maintitle\">Driving Directions("+fromToStr+"):</span><br /><input name=\"useraddress\" type=\"text\" id=\"useraddress\"  size=\"30\" value='' onblur=\"textOnBlur('useraddress', '"+textStr+"')\" onfocus=\"textOnFocus('useraddress', '"+textStr+"')\" /><input tabindex=\"3\" name=\"btnG\" value=\"Go\" type=\"submit\" id=\"btnG\" /><br /><input tabindex=\"3\" name=\"REVBTN\" value=\"Reverse Directions\" type=\"button\" id=\"REVBTN\" onclick=\"TogleDir();\" />"
	+ "<input type=\"hidden\" name=\"REQTYPE\" id=\"REQTYPE\" value=\"directions\">"
	+ "<input type=\"hidden\" name=\"STARTADDRFLAG\" id=\"STARTADDRFLAG\" value=\""+startAddrFlag+"\">"
	+ tempstr
	+ "</form>";
	//alert(tempstr);

	curDirContainer = oSelf;

	textOnBlur('useraddress', textStr);
}

//----------------------------------------------------------------------------------------------
function textOnFocus(sID, placeHolder)
{
	var ele = document.getElementById(sID);
	if(ele.value == placeHolder)
	{
		ele.value='';
		ele.style.color="#333333";
	}
}

//----------------------------------------------------------------------------------------------
function textOnBlur(sID, placeHolder)
{
	var ele = document.getElementById(sID);
	//alert(ele.value);
	if(ele.value=='' || ele.value == placeHolder)
	{
		ele.value = placeHolder;
		ele.style.color= "#98AFC7";
	}else if (ele.value != placeHolder)
	{
		ele.style.color="#333333";
	}	
}
//----------------------------------------------------------------------------------------------
function isDigit(num) {
	if (num.length > 1) {
		return false;
	}
	var string = "1234567890";
	if (string.indexOf(num) != -1) {
		return true;
	}
	return false;
}
//----------------------------------------------------------------------------------------------
function isInteger(val) {
	for (var i = 0; i < val.length; i++) {
		if (! isDigit(val.charAt(i))) {
			return false;
		}
	}
	return true;
}
//---------------------------------------------------------------------------------------------
function validateSSinput(url)
{	
	var temp = trim(document.ssForm.ssinput.value);
	if (temp == "" || temp == "Find businesses")
	{
		alert("Please enter a valid business and location.");
		document.ssForm.ssinput.focus();
		return false;
	}
	document.ssForm.action=url;	
	return true;
}
//---------------------------------------------------------------------------------------------
function validateLookup(url)
{	
	var temp = trim(document.reverseForm.phoneaddress_field.value);
	if (temp == "" || temp == "enter phone number/Address...")
	{
		alert("Please enter a valid phone number/address.");
		document.reverseForm.phoneaddress_field.focus();
		return false;
	}

	if (isInteger(temp) && temp.length < 10){
		alert("Please enter a valid phone number/address.");
		document.reverseForm.phoneaddress_field.focus();
		return false;
	}
	
	document.reverseForm.action=url;
	return true;
}
//---------------------------------------------------------------------------------------------
function validateName(url){	   	    
		var temp = trim(document.inputForm.what_field.value);
		if (temp == "" || temp == "search Local for..."){
			alert("Please enter what to search!");
			document.inputForm.what_field.focus();
			return false;
		}
		temp = trim(document.inputForm.where_field.value);
		if (temp == "" || temp == "enter an address, city & state or ZIP..."){
			alert("Please enter location!");
			document.inputForm.where_field.focus();
			return false;
		}
		
		document.inputForm.action=url;//"<%=m_config.m_Root%>"+"/VeDesktopSearch";
		return true;
}

function validatePerson(url){		
		var temp = trim(document.personForm.lastname_field.value);
		if (temp == "" || temp == "enter last name..."){
			alert("Please enter last name!");
			document.personForm.lastname_field.focus();
			return false;
		}
		temp = trim(document.personForm.where_field.value);
		if (temp == "" || temp == "enter an address, city & state or ZIP..."){
			alert("Please enter location!");
			document.personForm.where_field.focus();
			return false;
		}
		
		if (document.personForm.firstname_field.value == "enter first name...")
		{
			document.personForm.firstname_field.value = "";
		}

		document.personForm.action=url; //"<%=m_config.m_Root%>"+"/VeDesktopSearch";
		return true;
	}
//---------------------------------------------------------------------------------------------
function addHome(doc, homeURL)
{
	var index;
	var path=doc.location.href;
	index = path.lastIndexOf('/');
	if (index >=0)
	{
		path=path.substring(0, index);
	}
	img=doc.getElementsByTagName('img');
	var orgPath = path;
	for(var i=0; i<img.length; i++)
	{
		path = orgPath;index=img[i].src.indexOf(path);
		if (index == -1)
		{
			path = getPath(img[i].src, path);
			index=img[i].src.indexOf(path);
			if (index >= 0)
			{
				img[i].src=homeURL+img[i].src.substring(path.length+index, img[i].src.length);
			}
		}
		else
		{
			img[i].src=homeURL+img[i].src.substring(path.length+index, img[i].src.length);
		}
	}
}
//---------------------------------------------------------------------------------------------
function getPath(src, path){
	var orgPath = path;
	var http = 'http://';
	var index=path.lastIndexOf('/');
	while(index >= 0){
		path = path.substring(0, index);
		index = src.indexOf(path);
		if (index >= 0){
			break;
		}
		index=path.lastIndexOf('/');
	}
	if (path.length <= http.length)
		return orgPath;
	return path;
}
//---------------------------------------------------------------------------------------------
 function getTagContent(text, opentag, closetag)
 {
	var sidx = text.indexOf(opentag);
	var endidx = text.lastIndexOf(closetag);
	alert(opentag+":"+closetag+":"+sidx+":"+endidx);
	if (sidx >= 0 && endidx >= 0){
		return text.substring(sidx+opentag.length, endidx);
	}
	return null;
 }
//---------------------------------------------------------------------------------------------
function disable()
{
	disableLinks();
	disableInput();
}
//---------------------------------------------------------------------------------------------
function disableLinks()
{
	links=document.getElementsByTagName('A');
	for(var i=0; i<links.length; i++) {
		links[i].href="javascript:return false";
	}
}
//---------------------------------------------------------------------------------------------
function disableInput(){
	input=document.getElementsByTagName('input');
	for(var i=0; i<input.length; i++) 
	{
		input[i].disabled=true;
	}
}
//---------------------------------------------------------------------------------------------
function changeLinks(a_proxyName){	
	//alert("changeLinks");
	links=document.getElementsByTagName('A');
	for(var i=0; i<links.length; i++) {
		var idx = links[i].href.indexOf('VeWap411'); 
		if (idx >= 0){
			idx += 9; 
			var substr = links[i].href.substring(idx); 
			links[i].href=a_proxyName+substr;
		}
	}
}
//---------------------------------------------------------------------------------------------
function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
//---------------------------------------------------------------------------------------------
function hideElement(sID)
{
	isFrom = true;
	currDirWindow = null;
	hide(document.getElementById(sID));
}

function hide(ele)
{
	ele.style.top=0;
	ele.style.height=0;
	ele.style.visibility="hidden";
}
//---------------------------------------------------------------------------------------------
function showElement(sID, getDirTitId, formId)
{
	var titEle = null;
	if (currDirWindow){
		isFrom = true;
		hide(currDirWindow);
		currDirWindow = null;
	}
	currDirWindow = document.getElementById(sID);
	currDirWindow.style.top=4;
	currDirWindow.style.height=100;
	currDirWindow.style.visibility="visible";

	titEle = document.getElementById(getDirTitId);
	titEle.alt = "Get Directions to here from:";
	var form = document.getElementById(formId);
	form.STARTADDRFLAG.value = "1";
}
//---------------------------------------------------------------------------------------------
function reverseDirection(sID, formsID)
{
	var ele = document.getElementById(sID);
	var form = document.getElementById(formsID);

	//var str = ele.alt + "[" +isFrom+ "]";
	//alert(str);
	if (isFrom){
		ele.alt = 'Get Directions from here to:';
		isFrom = false;
		form.STARTADDRFLAG.value = "0";
	}else{
		ele.alt = 'Get Directions to here from:';
		isFrom = true;
		form.STARTADDRFLAG.value = "1";
	}
}
//---------------------------------------------------------------------------------------------
	// START GOOGLE HANDLERs
//---------------------------------------------------------------------------------------------
function listing(name, streetNumber, streetName, city, state, zipCode, lat, lang)
{
	this.name=name;
	this.streetNumber=streetNumber;
	this.streetName=streetName;
	this.city=city;
	this.state=state;
	this.zipCode=zipCode;
	this.lat=lat;
	this.lang=lang;
}
//---------------------------------------------------------------------------------------------
function addMarkersToMap(map , listing, i){
	var bounds = map.getBounds();
//	var southWest = bounds.getSouthWest();
//	var northEast = bounds.getNorthEast();
	var latlng = new GLatLng(listing.lat, listing.lang);
	var marker = createMarker(latlng,listing, i);
	map.addOverlay(marker);
	if(i == 0 && listing.lat != "" && listing.lang != ""){
		bounds.extend(marker.getPoint());
		map.setCenter(marker.getPoint());
	}
}
//---------------------------------------------------------------------------------------------
function createMarker(point, listing, i){
	var baseIcon = new GIcon(G_DEFAULT_ICON);
	baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	markerOptions = {icon:baseIcon };
	
	marker[i] = new GMarker(point, markerOptions);

	GEvent.addListener(marker[i], "mouseover", function() {
		marker[i].openInfoWindowHtml("<b>"+listing.name+"</b>"+"<br/>"+listing.streetNumber+" "+listing.streetName+"<br/>"+listing.city+", "+listing.state+" "+listing.zipCode);
	});
        
	GEvent.addListener(marker[i], "mouseout", function() {
		marker[i].closeInfoWindow();
	});
	return marker[i]; 
}
//---------------------------------------------------------------------------------------------
function mouseOverListItem(i, sId, bgColor)
{
	var listing = busInfo[i];
	
	document.getElementById(sId).style.backgroundColor = bgColor;//"#FFF000";
	//document.getElementById(sId).style.border = "solid thin";

	if (listing.lat != "" && listing.lang != ""){
		marker[i].openInfoWindowHtml("<b>"+listing.name+"</b>"+"<br/>"+listing.streetNumber+" "+listing.streetName+"<br/>"+listing.city+", "+listing.state+" "+listing.zipCode);
	}
}
//---------------------------------------------------------------------------------------------
function mouseOutListItem(i, sId, bgColor)
{
	var listing = busInfo[i];

	document.getElementById(sId).style.backgroundColor = bgColor; //"#FFFFFF";
	//document.getElementById(sId).style.border = "none";
	if (listing.lat != "" && listing.lang != ""){
		marker[i].closeInfoWindow();
	}
}

//---------------------------------------------------------------------------------------------
	//END GOOGLE HANDLERs
//---------------------------------------------------------------------------------------------
