/*
*   Reed Evans reed.evans@ipaper.com 
*   Last Edited: 6/25/2009
*/
var top=95;
var left=495;
var locationsArray=[];
var locationLength=0;
var numLocations=0;
var theForm="searchFilter";
var tempArray=new Array();

if(window.addEventListener)
{
	window.addEventListener( "load", myOnload, false );
} 
else 
{
	window.attachEvent( "onload", myOnload );
}

if(window.addEventListener)
{
	window.addEventListener( "unload", GUnload, false );
} 
else 
{
	window.attachEvent( "onunload", GUnload );
}


var cssNode=document.createElement('link');
cssNode.type='text/css';
cssNode.rel='stylesheet';
cssNode.href='HtmlControl.css';
document.getElementsByTagName("head")[0].appendChild(cssNode);

var map, cluster, eventListeners=[], markersArray=[],  center, icon;

function myOnload() 
{
	if (GBrowserIsCompatible()) 
	{	
		map = new GMap2(document.getElementById('map'));
		map.setCenter(new GLatLng(0, 0), 1, G_NORMAL_MAP);
		map.addControl(new GLargeMapControl3D(), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(20, 40)));
		GEvent.addListener(map, 'zoomend', function() { map.closeInfoWindow(); });
		GEvent.addListener(map, 'move', function() { center = map.getCenter(); });
		center=map.getCenter();
		sizeMap();
	   	map.checkResize();
		window.onresize=function () { sizeMap();map.checkResize(); };
		
		//	add an HtmlControl containing a couple of form elements
		//	see http://googlemapsapi.martinpearman.co.uk/htmlcontrol for more info on HtmlControl
		var html='<div class="htmlControl" style="padding:0px 3px 3px 3px;margin:0px 0px 0px 0px;">Enable clustering: <input type="checkbox" checked="checked" onclick="toggleClustering()" /></div>';
		var control=new HtmlControl(html);
		map.addControl(control, new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(20,7)));
		
		function myClusterClick(args) {
			cluster.defaultClickAction=function(){
				map.setCenter(args.clusterMarker.getLatLng(), map.getBoundsZoomLevel(args.clusterMarker.clusterGroupBounds))
				delete cluster.defaultClickAction;
			}
			var html='<div style="height:8em; overflow:auto; width:24em"><h5>'+args.clusteredMarkers.length+' Locations:</h5><a href="javascript:void(0)" onclick="cluster.defaultClickAction()">Zoom</a> in to show these locations<br /><br />';
			for (i=0; i<args.clusteredMarkers.length; i++) {
				html+='<a href="javascript:cluster.triggerClick('+args.clusteredMarkers[i].index+')">'+args.clusteredMarkers[i].getTitle()+'</a><br />';
			}
			html+='<br /><a href="javascript:void(0)" onclick="cluster.defaultClickAction()">Zoom</a> in to show these locations</div>';
			//	args.clusterMarker.openInfoWindowHtml(html);
			map.openInfoWindowHtml(args.clusterMarker.getLatLng(), html);
		}
		
		//	create a ClusterMarker
		cluster=new ClusterMarker(map, {clusterMarkerTitle:'Click to see info about %count locations' , clusterMarkerClick:myClusterClick });
		
		cluster.fitMapToMarkers();
		
		cluster.fitMapMaxZoom=6;
		
		icon=new GIcon();
		icon.shadow='icon_shadow.png';
		icon.shadowSize=new GSize(37, 34);
		icon.iconSize=new GSize(20, 34);
		icon.iconAnchor=new GPoint(10, 30);
		icon.infoWindowAnchor=new GPoint(10, 8);
        widthChange = 0;
        
        map.enableScrollWheelZoom();
		setupFilter();		
	}
}


function toggleClustering() 
{
	cluster.clusteringEnabled=!cluster.clusteringEnabled;
	cluster.refresh(true);
}


function newMarker(markerLocation, html, title, busType, multiples) 
{   
    var myIcon = new GIcon(G_DEFAULT_ICON);
    
    if(multiples>0)
      myIcon.image="icons\/multiFunctional.png"; 

    else
    {
      busType=busType.substr(0,31);
      busType=busType.replace(/\s/, "-");
      myIcon.image = "icons\/"+ busType + ".png";
    }

    try
    {
	    var marker=new GMarker(markerLocation, {title:title, icon:myIcon});
	    eventListeners.push(GEvent.addListener(marker, 'click', function() {
            var tmp = map.fromLatLngToContainerPixel(markerLocation);
            tmp.y -= 75;
            map.setCenter(map.fromContainerPixelToLatLng(tmp));
    		marker.openInfoWindowHtml(html); 		
    	}));
    	return marker;
    }
    catch (err)
    {
    }
}



function getPoint(myLatLong) 
{
    try
    {
	var point = myLatLong.split(",");
	var theLat = parseFloat(point[0]);
	var theLong = parseFloat(point[1]);
	return new GLatLng(theLat,theLong);
    }
	catch(err)
	{
	    throw err;
	}
}

function toggler(anch)
{
  var alreadyExp=false;

  if($(anch).attr("class")=="expanded")
    alreadyExp=true;

  $("a.expanded").each( function(){
       $(this).removeClass("expanded")
       .next().slideUp("50")
       .parent().removeClass("expanded");
  });
  
  if(!alreadyExp){
   $(anch)
   	.toggleClass("expanded")
   	.next().slideToggle("50")
   	.parent().addClass("expanded");
  }




}

function buildInfoHTML(locObj,multi,first)
{
    var display="";
    var exp="";
    var hasImgClass="";
    
    var locData=locObj.address;
    locData+="<br />" +locObj.city+", ";
    
    if(locObj.state)
      locData+= locObj.state;
    else
      locData+= locObj.country; 
    
    locData+=" "+locObj.zip;
    locData+="<br />Phone:"+locObj.phone;
   /* 
    if(locObj.fax)
      locData+='<br />Fax:'+locObj.fax;
*/
    if(first){
    	display="display:block;";
    	exp=" expanded"
    }
    if(multi){
    	if(locObj.facImg)
    	  hasImgClass="hasImg";
    	  
        var htmlStr = "<div class='multiWrap"+exp+"'><a class='"+exp+"' href='javascript:void(null)' onClick='toggler(this)'>"+locObj.name+"</a>"
        		+"<div style='"+display+"' class='multiInfoDiv "+hasImgClass+"'><div class='infoAddress'>"+locData+"</div>";
        if(locObj.facLink)
           htmlStr+="<div class='rightDisp'>"+locObj.facImg+"<br /><a "+locObj.facLink+" target='_blank'/>View Facility Information</a></div>";
           
        htmlStr+="</div></div>";
        
        return htmlStr;
    }
    else
        return "<h5>"+locObj.name+"</h5>"+"<div class='info'>"+locData+"</div>";
  
}


function setupMarkers()
{
    var title=infoHTML="";
    markersArray=[];
    
    for(i=eventListeners.length-1; i>=0; i--)
    {
        GEvent.removeListener(eventListeners[i]); 
    }
    eventListeners=[];
    for (k in locationsArray) 
    {
        var markObj=locationsArray[k];
        var multiples=markObj.numPlaces;
        
        try
        {
            var point = getPoint(markObj.latLong);

            var infoHTML="";

            if(multiples>0)
            {
                infoHTML="<div class='multiInfoWrap'>"
                infoHTML+="<h5>Multi-Functional Site:</h5>"
                infoHTML+=buildInfoHTML(markObj,true,true); 
                title="Multi-Functional Site";
                
                for(j=0;j<multiples;j++)
                    infoHTML+=buildInfoHTML(markObj.samePlaces[j],true);

            }
            else
            {
                infoHTML="<div class='infoWrap'>"
                infoHTML+=buildInfoHTML(markObj,false); 
                title=markObj.name;
                
                if(markObj.facImg)
                  infoHTML+="</div><div style='padding-top:11px;float:left'>"+markObj.facImg;
	      
	        if(markObj.facLink)
	          infoHTML+="<br />"+"<a "+markObj.facLink+" target='_blank'/>View Facility Information</a>";
	        
	        infoHTML+="</div>";
            }
            
            //infoHTML+="</div><div style='float:left;margin-top:8px;'>"+markObj.facImg+"<br />";


            var address= markObj.address.replace(/\s+/g, "+");

            if(markObj.country.match(/Canada|US/))
                address+="+"+markObj.city+"+"+markObj.state+"+"+markObj.zip;
            else
                address=markObj.latLong;

            infoHTML+="</div>";
            //infoHTML+="<div style='position:relative;float:left;clear:both;'><a href='http://maps.google.com/maps?&saddr=&daddr="+address+"&z=11' target='_blank'><img border=0 src='icons/smallCar.gif' /></a></div>";


            marker=newMarker(point, infoHTML, title, markObj.busType,multiples);
            markersArray.push(marker);
        }
        catch (err)
        {/*
                    if(markObj.facLink)
            {
                infoHTML+="<a "+markObj.facLink+" target='_blank'/>View Facility Information</a>";
            }

            infoHTML+="</div><div style='width:300px;position:absolute;bottom:0;left:0;'>";
        */
        }
    }
    
    cluster.removeMarkers();
    cluster.addMarkers(markersArray);
    cluster.fitMapMaxZoom=5;
    cluster.fitMapToMarkers();
    map.savePosition();
    document.title='International Paper: Displaying '+numLocations+' locations';
    document.getElementById("countDiv").innerHTML = "Displaying " + numLocations + " locations";

    numLocations=0;
}

function locationObj(latLong,name,address,city,state,country,zip,phone,fax,busType,busUnit,facType,facLink,facImg,companyName,maddress,mstate,mcity,mzip)
{
	this.name=name;
	this.address=address;
	this.city=city;
	this.state=state;
	this.country=country;
	this.zip=zip;
	this.phone=phone;
	this.fax=fax;
	var tudes=latLong.replace(" ", "");
	this.latLong=tudes;
	this.busType=busType;
	this.busUnit=busUnit;
	this.companyName=companyName;
	
	this.maddress=maddress;
	this.mstate=mstate;
	this.mcity=mcity;
	this.mzip=mzip;
	
	
	var facData=facType.replace(/^;/,"");
	facData=facData.replace(/;$/,"");
	this.facType=facData;
	
	var imgText = facImg.replace(/width=\d+/i,"width=200");
	imgText= imgText.replace(/height=\d+/i,"height=100");
	this.facImg=imgText;
	
	var href=facLink.match(/href=\".+?\"/i);
	var facLink=href;
	
	this.facLink=facLink;
	this.samePlaces=new Array();//Stores any locations that have the same lat/long
	this.numPlaces=0;

}

function resetFilter()
{

    window.setTimeout("toggleDiv(true)",0);

    document.forms[theForm].elements["FacType"].value = "all";
    document.forms[theForm].elements["BusType"].value = "all";
    document.forms[theForm].elements["BusUnit"].value = "all";
    document.forms[theForm].elements["keywords"].value = "";
    setupFilter();
}

function getXML(filterTypes)
{
    var request = GXmlHttp.create();
    request.open("GET", "mapOutputExternal.xml", true);
    request.onreadystatechange = function() 
    {
        if (request.readyState == 4) 
        {
            var startTime = Number(new Date().getTime());

            var xmlDoc = GXml.parse(request.responseText);
            // obtain the array of markers and loop through it

            var keyword = document.forms[theForm].elements["keywords"].value.toLowerCase();
            document.forms[theForm].elements["keywords"].value='';

            var latlongFilter = document.forms[theForm].elements["latlong"].value;
            document.forms[theForm].elements["latlong"].value='';

            var markers = xmlDoc.documentElement.getElementsByTagName("location");
            var nodes = new Array();
            nodes[0] = xmlDoc.documentElement.getElementsByTagName("BusinessType");
            nodes[1] = xmlDoc.documentElement.getElementsByTagName("BusinessUnit");
            nodes[2] = xmlDoc.documentElement.getElementsByTagName("FacilityType");
            nodes[3] = xmlDoc.documentElement.getElementsByTagName("mailAddress");
            nodes[4] = xmlDoc.documentElement.getElementsByTagName("mailCity");
            nodes[5] = xmlDoc.documentElement.getElementsByTagName("mailState");
            nodes[6] = xmlDoc.documentElement.getElementsByTagName("mailZip");
            nodes[7] = xmlDoc.documentElement.getElementsByTagName("country");
            nodes[8] = xmlDoc.documentElement.getElementsByTagName("region");
            nodes[9] = xmlDoc.documentElement.getElementsByTagName("latLong");
            nodes[10] = xmlDoc.documentElement.getElementsByTagName("name");
            nodes[11] = xmlDoc.documentElement.getElementsByTagName("mainFax");
            nodes[12] = xmlDoc.documentElement.getElementsByTagName("facLink");
            nodes[13] = xmlDoc.documentElement.getElementsByTagName("facImg");
            nodes[14] = xmlDoc.documentElement.getElementsByTagName("paddress");
            nodes[15] = xmlDoc.documentElement.getElementsByTagName("pcity");
            nodes[16] = xmlDoc.documentElement.getElementsByTagName("pzip");
            nodes[17] = xmlDoc.documentElement.getElementsByTagName("pstate");
            nodes[18] = xmlDoc.documentElement.getElementsByTagName("phone");
            nodes[19] = xmlDoc.documentElement.getElementsByTagName("pcountry");
            nodes[20] = xmlDoc.documentElement.getElementsByTagName("keywordsMeta");
            nodes[21] = xmlDoc.documentElement.getElementsByTagName("companyName");
            
        
        
            var busType,busUnit,facType,latLong,name,address,city,state,country,zip,fax,phone,pcountry,keywordsMeta,companyName,maddress,mstate,mcity,mzip = "";

            for (var i = 0; i < markers.length; i++)
            {	  
                busType = busUnit = facType = latLong = name = address = city = state = country = zip = fax = phone = facLink = facImg = pcountry = keywordsMeta = companyName = maddress = mstate = mcity = mzip ="";
                
                try{busType = nodes[0][i].firstChild.data;}catch(e){}   
                try{busUnit = nodes[1][i].firstChild.data;}catch(e){}  
                try{facType = nodes[2][i].firstChild.data;}catch(e){}  

                if(!filterTypes[0].match("all"))
                {
                	//alert(filterTypes[0]+"="+facType);
                    if(!facType.match(".*"+filterTypes[0]+".*"))
                        continue;
                }

                if(!filterTypes[1].match("all"))
                {
                    if(!filterTypes[1].match(busType))
                        continue;
                }
                if(!filterTypes[2].match("all"))
                {
                    if(!filterTypes[2].match(busUnit))
                        continue;
                }

                try{maddress = nodes[3][i].firstChild.data;}catch(e){} 
                try{mcity    = nodes[4][i].firstChild.data;}catch(e){}  
                try{mstate   = nodes[5][i].firstChild.data;}catch(e){}  
                try{mzip     = nodes[6][i].firstChild.data;}catch(e){}  
                try{country = nodes[7][i].firstChild.data;}catch(e){}  
                try{region  = nodes[8][i].firstChild.data;}catch(e){}  
                try{latLong = nodes[9][i].firstChild.data;}catch(e){}  
                try{name    = nodes[10][i].firstChild.data;}catch(e){}  
                try{fax     = nodes[11][i].firstChild.data;}catch(e){}
                
                try{address= nodes[14][i].firstChild.data;}catch(e){} 
                try{city   = nodes[15][i].firstChild.data;}catch(e){} 
                try{zip    = nodes[16][i].firstChild.data;}catch(e){} 
                try{state   = nodes[17][i].firstChild.data;}catch(e){}       
                
                try{phone     = nodes[18][i].firstChild.data;}catch(e){}
                try{pcountry     = nodes[19][i].firstChild.data;}catch(e){}
                try{keywordsMeta     = nodes[20][i].firstChild.data;}catch(e){}
                try{companyName  = nodes[21][i].firstChild.data;}catch(e){}      
                //try{facLink = nodes[12][i].firstChild.data;}catch(e){}
                facLink="";  
                try{facImg  = nodes[13][i].firstChild.data;}catch(e){}


	         
                

                
                latLong=latLong.replace(" ","");

                if(keyword != "")
                {
                    var searchData = busType +" "+ busUnit +" "+ facType +" "+ latLong +" "+ name +" "+ address +" "+ city + "," + state +" "+ country +" "+ zip +" "+ fax +" "+ phone+" "+pcountry+" "+keywordsMeta+" "+companyName;
                    searchData = searchData.toLowerCase();
                
                    var keyArr = keyword.split(" ");
                    var numWords = 0;

                    for(j=0; j< keyArr.length;j++)
                    {
                        var tempWord=keyArr[j];
			            tempWord=tempWord.toLowerCase();
			
                        if(searchData.match(".*"+tempWord+".*"))
                            numWords++;
                    }

                    if(numWords < keyArr.length)
                        continue;
                }

                if(latlongFilter != "")
                {
                    if(!latLong.match(latlongFilter))
                        continue;
                }
                try
                {
                   if(locationsArray[latLong].name != "")
                   {
                     locationsArray[latLong].samePlaces[locationsArray[latLong].numPlaces]=new locationObj(latLong,name,address,city,state,country,zip,phone,fax,busType,busUnit,facType,facLink,facImg,companyName,maddress,mstate,mcity,mzip);
                     locationsArray[latLong].numPlaces++;
                     numLocations++;
                   }
                   else
                   {
                   
                     locationsArray[latLong]=new locationObj(latLong,name,address,city,state,country,zip,phone,fax,busType,busUnit,facType,facLink,facImg,companyName,maddress,mstate,mcity,mzip);
                     locationLength++;
                     numLocations++; 
                   }
                }
                catch(e){
                  locationsArray[latLong]=new locationObj(latLong,name,address,city,state,country,zip,phone,fax,busType,busUnit,facType,facLink,facImg,companyName,maddress,mstate,mcity,mzip);
                  locationLength++;
                  numLocations++;
                }
            }


            if(!locationLength)
            {
                cluster.removeMarkers();

                var ul=document.getElementById('calloutUL');
                ul.innerHTML="";

                var noResults = document.createElement('li');

                noResults.className="noResults";    
                noResults.innerHTML="No Results Found";

                ul.appendChild(noResults);

                map.setCenter(new GLatLng(0, 0), 1, G_NORMAL_MAP);
                locationsArray = new Array();
    		    locationLength=0;
                numLocations=0;
                document.title='International Paper Facilities: Displaying '+numLocations+' locations';
		        document.getElementById("countDiv").innerHTML = "Displaying " + numLocations + " locations";
		window.setTimeout("toggleDiv(false)",0);    
                return; 
            }

            setupMarkers();

            if(latlongFilter!="" || locationLength==1)
                buildLI(true); 
            else  
                buildLI();
                
         window.setTimeout("toggleDiv(false)",0);

        }
    }
    request.send(null);
}

function setupFilter()
{
    window.setTimeout("toggleDiv(true)",0); 
    
    var filterTypes= new Array();
    var myForm = document.forms[theForm];
    var numElem = myForm.elements.length;

    for(i=0;i < numElem; i++)
    {
        var myElem = myForm.elements[i];
        try
        {
            filterTypes[filterTypes.length] = myElem.value;
        }
        catch(e)
        {
            filterTypes[filterTypes.length] = "";
        }
    }
    getXML(filterTypes);
}

function sizeMap() 
{       
    var myWidth = 0, myHeight = 0;
    var leftAdjust = 0;
    
    if (rightHidden && leftHidden)
        leftAdjust += 7;
                
    if( typeof( window.innerWidth ) == 'number' ) 
    { 
        //Non-IE
        myWidth = window.innerWidth - 28; 
        myHeight = window.innerHeight;
        leftAdjust += 20;
    } 
    else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
    { 
        //IE 6+ in 'standards compliant mode' 
        myWidth = document.documentElement.clientWidth; 
        myHeight = document.documentElement.clientHeight; 
    } 
    else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
    { 
        //IE 4 compatible 
        myWidth = document.body.clientWidth; 
        myHeight = document.body.clientHeight; 
    }

    var myMapDiv=document.getElementById("map"); 
    var myListingBox = document.getElementById("listingBox");
    var rightNav=document.getElementById("rightNav");
    
    var curWidth = parseInt($("#map").css("width"));
    
    if(myWidth > 900)
    {
        top = 95;
        myMapDiv.style.width = myWidth - left + leftAdjust;
        $("body").css("overflow-x","hidden").css('width',myWidth+25);
        document.getElementById("wrapper").style.width = "100%";
        document.getElementById("topShadowWrapper").style.width = "100%";
        document.getElementById("headerDiv").style.width = "100%";
        $('#listingBox').css("overflow-y","scroll");
    }
    else
    {
        myMapDiv.style.width = 900 - left;
        top = 110;
        document.getElementById("wrapper").style.width = "900px";   
        document.getElementById("topShadowWrapper").style.width = "900px";  
        document.getElementById("headerDiv").style.width = "900px";   
        $("body").css("overflow-x","auto").css("width",900);
    }

    if(myHeight > 500)
    {
        myMapDiv.style.height = myHeight-top;
        myListingBox.style.height = myHeight - top - 25;
        rightNav.style.height= myHeight - top;
        document.getElementById("leftShadowWrapper").style.height = myHeight-top;
        document.getElementById("rightShadowWrapper").style.height = myHeight-top;
        $("body").css("overflow-y","hidden");
        $('#listingBox').css("overflow-y","scroll");
    }
    else
        $("body").css("overflow-y","scroll");

    map.checkResize();    
    map.setCenter(center);
}

function sortByName(a, b) 
{
	var x = a.name;
	var y = b.name;
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function tempObj(name,locationObj,markNum)
{
	this.name=name;
	this.locationObj=locationObj;
	this.markNum=markNum;
}

function buildLI(expanded)
{
    var ul=document.getElementById('calloutUL');
    var expandAll=false;

    ul.innerHTML="";

    if(locationLength<5)
    expandAll=true;

    var count=0;
    tempArray=new Array();

    for(i in locationsArray)
    {
        var pointObj=locationsArray[i];
        if(locationsArray[i].numPlaces > 0)
        {        
            for(j=0;j<pointObj.numPlaces;j++)
            {
                tempArray.push(new tempObj(pointObj.samePlaces[j].name,pointObj.samePlaces[j],count));
            }
        }

        tempArray.push(new tempObj(pointObj.name,pointObj,count));
        count++;
    }

    
    tempArray.sort(sortByName);
       
    for(i=0;i<tempArray.length;i++)
    {
        var pointObj=tempArray[i].locationObj;
    	
    	var markNum=tempArray[i].markNum;
    	
    	var inHtml = '<div style="float:left;width:185px;"><a href="javascript:void(null)" onClick="expandData(this,'+i+')" class="loc">' + pointObj.name + 
                             '</a></div><div style="float:right;width:10px;"><a class="show" href="javascript:cluster.triggerClick(' + markNum + ');">Map</a></div>';

     	var listItem = document.createElement('li');
        listItem.innerHTML=inHtml;
        ul.appendChild(listItem);

    }
    
    //expand all is less than 5, while expanded means only 1
    
    if(expanded || expandAll){
      $(".loc").each(function(){
        $(this).click();
      });
      if(expanded)
        cluster.triggerClick(0);
    }
    
    locationsArray = new Array();
    locationLength=0;

    var paddingDiv = document.createElement('div');
    paddingDiv.className="padDiv";

    ul.appendChild(paddingDiv);

}


function expandData(anch,index){

var $parentLi = $(anch).closest("LI");



if(!$parentLi.hasClass("expand")){

  if(!$parentLi.hasClass("filled")){
    $parentLi.addClass("filled");
    
    var pointObj=tempArray[index].locationObj;

   
    var inHtml = '<div class="text"><p>' + pointObj.address + '</p><p>' + pointObj.city + ', ';
    
    if(pointObj.state)
      inHtml+= pointObj.state;
    else
      inHtml+= pointObj.country; 
    
    inHtml+= '&nbsp;' + pointObj.zip + '</p>';

    if(pointObj.phone)
       inHtml+='<p>Phone: ' + pointObj.phone + '</p>';
    
    if(pointObj.fax)
      inHtml+='<p>Fax:'+pointObj.fax+'</p>';
      
    inHtml+='<p>&nbsp;</p><p>-'+ pointObj.busType+'</p><p>-'+pointObj.busUnit+'</p><p>-'+pointObj.facType+'</p>';
    
    if(pointObj.maddress){
      inHtml+='<br /><p>Mailing:<br />';
      
      if(pointObj.companyName)
        inHtml+= pointObj.companyName + '<br />';
      
      inHtml+=pointObj.maddress+'<br />'+pointObj.mcity+', ';

    if(pointObj.state)
      inHtml+= pointObj.state;
    else
      inHtml+= pointObj.country;
      
     inHtml+='&nbsp;'+pointObj.mzip+'</p>';
    }
     
     inHtml+='</div>';
   
    $parentLi.append(inHtml);
  }
  $parentLi.addClass("expand");
  $parentLi.children("div.text").show(300);
}
else {
  $parentLi.children("div.text").hide(300);
  $parentLi.removeClass("expand");
}

return false;

        
}

function toggleDiv(toggle)
{
    var disp="none";
    
    if(toggle)
      disp="block";
    
    document.getElementById("loadDiv").style.display=disp;
    
    document.getElementById("FacType").disabled=toggle;
    document.getElementById("BusType").disabled=toggle;
    document.getElementById("BusUnit").disabled=toggle;
}



function findParentLi($element) 
{
    if ("LI" == $element[0].nodeName) 
    {
        return $element;
    }
    else 
    {
         return findParentLi($element.parent());
    }
}

var leftDist = 250;
var rightDist = 250;
var leftHidden = false;
var rightHidden = false;

function showHideLeftNav()
{  
    var mapWidth = parseInt($("#map").css("width"));

    if(!leftHidden)
    {    
        $('#listingBox').css("overflow-y","hidden");

        $("#map").css("left","0")
                 .css("width",mapWidth + leftDist);                 

        if (left == 495)
            left = 280;
        else if (left == 280)
            left = 0;

        var tmp = map.fromLatLngToContainerPixel(map.getCenter());
        tmp.x -= leftDist;
        center = map.fromContainerPixelToLatLng(tmp);        
        map.setCenter(map.fromContainerPixelToLatLng(tmp));
        
        map.checkResize();
        
        $("#showHideArrowsLeft").css("display", "none");
        $("#showHideImageLeft").attr("src", "icons/arrows_right.gif");
        $("#showHideArrowsLeftShadow").css("display", "none");
        $("#showHideImageLeftShadow").attr("src", "icons/arrows_right_shadow.gif");
        $("#leftShadowWrapper").css("display", "none");
        $("#leftNavShadowWrapper").css("display", "none");
        $('#leftContainer').animate({marginLeft: -leftDist},
                                    {duration:250, 
                                     complete: function() 
                                               {
                                                    $("#showHideArrowsLeft").css("display", "block").css("left", "0px");
                                                    $("#showHideArrowsLeftShadow").css("display", "block").css("left", "0px");
                                               } 
                                     });   
        $('#calloutUL').css("display","none");

        leftHidden=true;    
    }
    else
    {         
        $("#showHideArrowsLeft").css("display", "none");
        $("#showHideImageLeft").attr("src", "icons/arrows_left.gif");
        $("#showHideArrowsLeftShadow").css("display", "none");
        $("#showHideImageLeftShadow").attr("src", "icons/arrows_left_shadow.gif");
        $('#leftContainer').animate({marginLeft: 0},
                                    {duration:250, 
                                     complete: function()
                                               {
                                                    $("#leftShadowWrapper").css("display", "block");
                                                    $("#leftNavShadowWrapper").css("display", "block");
                                                    $('#calloutUL').css("display","block");
                                                    $('#listingBox').css("overflow-y","scroll");
                                                    $("#map").css({left: "250px", width: mapWidth - leftDist});
                                                    if (left == 280) 
                                                        left = 495;
                                                    else if (left == 0) 
                                                        left = 280;
                                                    var tmp = map.fromLatLngToContainerPixel(map.getCenter());
                                                    tmp.x += (leftDist);
                                                    center = map.fromContainerPixelToLatLng(tmp);
                                                    map.setCenter(map.fromContainerPixelToLatLng(tmp));
                                                    map.checkResize();
                                                    $("#showHideArrowsLeft").css("display", "block").css("left", "236px");
                                                    $("#showHideArrowsLeftShadow").css("display", "block").css("left", "234px");
                                                }
                                    });
        leftHidden=false;    
    }  
}

function showHideRightNav()
{  
    var mapWidth = parseInt($("#map").css("width"));
   
    if(!rightHidden)
    { 
        $("#map").css("width",mapWidth + rightDist);                 

        if (left == 495)
            left = 280;
        else if (left == 280)
            left = 0;

        var tmp = map.fromLatLngToContainerPixel(map.getCenter());
        tmp.x -= 0;
        center = map.fromContainerPixelToLatLng(tmp);
        map.setCenter(map.fromContainerPixelToLatLng(tmp));
        
        map.checkResize();
        
        $("#showHideArrowsRight").css("display", "none");
        $("#showHideImageRight").attr("src", "icons/arrows_left.gif");
        $("#showHideArrowsRightShadow").css("display", "none");
        $("#showHideImageRightShadow").attr("src", "icons/arrows_left_shadow.gif");
        $("#rightShadowWrapper").css("display", "none");

        $('#rightNav').animate({marginRight: -rightDist},
                               {duration:250, 
                                complete: function() 
                                          {
                                                $("#showHideArrowsRight").css("display", "block").css("right", "0px");
                                                $("#showHideArrowsRightShadow").css("display", "block").css("right", "0px");
                                          } 
                               });   

        rightHidden=true;    
    }
    else
    {         
        $("#showHideArrowsRight").css("display", "none");
        $("#showHideImageRight").attr("src", "icons/arrows_right.gif");
        $("#showHideArrowsRightShadow").css("display", "none");
        $("#showHideImageRightShadow").attr("src", "icons/arrows_right_shadow.gif");       
        $('#rightNav').animate({marginRight: 0},
                               {duration:250, 
                                complete: function()
                                          {
                                                $("#rightShadowWrapper").css("display", "block");
                                                $("#map").css({width: mapWidth - rightDist});
                                                if (left == 280) 
                                                    left = 495;
                                                else if (left == 0) 
                                                    left = 280;
                                                var tmp = map.fromLatLngToContainerPixel(map.getCenter());
                                                tmp.x += (0);
                                                center = map.fromContainerPixelToLatLng(tmp);
                                                map.setCenter(map.fromContainerPixelToLatLng(tmp));
                                                map.checkResize();
                                                $("#showHideArrowsRight").css("display", "block").css("right", "236px");
                                                $("#showHideArrowsRightShadow").css("display", "block").css("right", "234px");
                                          }
                               });

        rightHidden=false; 
    }  
}