/*
 * Browser detection code
 */
function Browser ()
{
    var name = navigator.appName;
    if (name == "Netscape")
        this.name = "ns";
    else if (name == "Microsoft Internet Explorer")
        this.name = "ie";

    this.version = navigator.appVersion;
    this.vMajor  = parseInt(this.version);
    this.isNS    = (this.name =="ns" && this.vMajor >= 4);
    this.isNS4   = (this.name =="ns" && this.vMajor == 4);
    this.isNS6   = (this.name =="ns" && this.vMajor == 5);
    this.isIE    = (this.name =="ie" && this.vMajor >= 4);
    this.isIE4   = (this.version.indexOf ('MSIE 4')   >0);
    this.isIE5   = (this.version.indexOf ('MSIE 5')   >0);
    this.isDOM   = (document.createElement
                    && document.appendChild
                    && document.getElementsByTagName) ? true : false;

    var ua = navigator.userAgent.toLowerCase();
    if (ua.indexOf ("win") > - 1)
        this.platform = "win";
    else if (ua.indexOf("mac") > -1)
        this.platform = "mac";
    else
        this.platform="other";
}
var browser = new Browser;

/*
 * Map control code
 */
function Map (id, level, sessionId) {
    this.id        = id;
    this.level     = level;
    this.sessionId = sessionId;
    this.element   = document.getElementById (id);
    this.offset_x  = 0;
    this.offset_y  = 0;

    if (this.element) {
        var el = this.element;
        this.url = el.src;
        if (browser.isDOM && !browser.isIE) {
            while (el.offsetParent) {
                this.offset_x += el.offsetLeft;
                this.offset_y += el.offsetTop;
                el = el.offsetParent;
            }
        }
    }
   

    this.recenter = function (x, y)
    {
        if (this.element) {
            this.element.src = this.url + "&mapbrowse=center&x=" + (x - this.offset_x) + "&y=" + (y - this.offset_y) + "&rand=" + Math.random ();
        }
    };
    this.zoom = function (level)
    {
        if (this.element) {
            this.element.src = this.url + "&mapbrowse=zoom_" + level + "&rand=" + Math.random ();
            this.level = level;
        }
    };

    this.pan = function(dir) {
        if (this.element) {
            this.element.src = this.url + "&mapbrowse=pan_" + dir + "&rand=" + Math.random();
        }
    };

    this.recenterzoom = function (x, y)
    {
        if (this.element) {
           this.element.src = this.url + "&mapbrowse=center_zoom&x=" + (x - this.offset_x) + "&y=" + (y - this.offset_y) + "&rand=" + Math.random ();
            if (map.level < 10) {
                ++this.level;
                showZoomState ();
                showVendor ();
            }
        }
    };

    this.identify = function (x, y)
    {
        path = window.location.protocol + "//"
            + window.location.host + window.location.pathname
/*
//This is to see xml code...
	url = "http://xml.sa.mapquest.com/identify.asp"
            + '?clientID=30150&template=identify&transaction=locMap&identifyIcon='
            + this.sessionId
            + '&x=' + (x - this.offset_x) + '&y=' + (y - this.offset_y)
			+ '&path=' + path 
			+ '&pc=45458' ;	

*/
        url = window.location.protocol + "//" + window.location.host + "/Controls/Locaiton/TabbedResults/LocationSearchBranchResults.ascx"
            + '?clientID=30150&template=identify&zoomLevel=10&transaction=locMap&identifyIcon='
            + this.sessionId
            + '&x=' + (x - this.offset_x) + '&y=' + (y - this.offset_y)
			+ '&address=' + getURLParameters("address") 
			+ '&city=' + getURLParameters("city")
			+ '&country=' + getURLParameters("country")
			+ '&postalCode=' + getURLParameters("postalCode")
			+ '&stateProvince=' + getURLParameters("stateProvince")
			+ '&radius=' + getURLParameters("radius")
			+ '&path=' + path ;
				

        var width  = 255;
        var height = 255;
        infoWindow = window.open (url,
                   Math.floor (Math.random () * 100000),
                   "height=" + height + ",width=" + width + ",toolbar=no,scrollbars=no,resize=yes");
        infoWindow.moveTo ((screen.width - width) / 2, (screen.height - height) / 2);
    };
}

var map;

function Trim(s) 
{
  // Remove leading spaces and carriage returns
  
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
  {
    s = s.substring(1,s.length);
  }

  // Remove trailing spaces and carriage returns

  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}


function getURLParameters(paramName) 
{
	var sURL = window.document.URL.toString();
	
	if (sURL.indexOf("?") > 0)
	{
		var arrParams = sURL.split("?");
			
		var arrURLParams = arrParams[1].split("&");
		
		var arrParamNames = new Array(arrURLParams.length);
		var arrParamValues = new Array(arrURLParams.length);
		
		var i = 0;
		for (i=0;i<arrURLParams.length;i++)
		{
			var sParam =  arrURLParams[i].split("=");
			arrParamNames[i] = sParam[0];
			if (sParam[1] != "")
				arrParamValues[i] = unescape(sParam[1]);
			else
				arrParamValues[i] = "No Value";
		}
		
		for (i=0;i<arrURLParams.length;i++)
		{
			if(arrParamNames[i]==paramName){
				return arrParamValues[i];			
			}
		}
	}
	else
	{
		alert("No parameters.");
	}
}

function mqaMapClick (e)
{
    var x, y;
    if (browser.isIE) {
        if (!(event.button == 1 || (browser.platform == "mac" && event.button == 0))) return;
        x = event.offsetX;
        y = event.offsetY;
    } else if (browser.isDOM) {
        if (e.which != 1) return;
        x = e.pageX;
        y = e.pageY;
    }

//    if (document.mapClick.clickAction[0].checked) {
//        // Zoom
//        mqaMapZoomIn ();
//    } else if (document.mapClick.clickAction[1].checked) {
//        // Recenter
//        map.recenter (x, y)
//    } else if (document.mapClick.clickAction[2].checked) {
        // Identify Icon
//        if (document.mapClick.clickAction[2].value == 'identify') {
            map.identify (x, y);
//        } else {
//            map.recenterzoom (x, y);
//        }
//    }
}

function mqaMapInit (id, level, sessionId) {
    map = new Map(id, level, sessionId);
    //alert('this is mqpMapInit');
    if (map.element) {
//        if (browser.isIE) {
//            map.element.onmouseup = mqaMapClick;
//        } else if (browser.isDOM) {
//            map.element.addEventListener ("mouseup", mqaMapClick, true);
//        }
        showZoomState ();
        showVendor ();
    }
}

function mqaMapZoom (level)
{
    if (! map) {
        alert ('you must call mqaMapInit(mapurl) before you can call this function');
    } else {
        map.zoom (level);
        showZoomState ();
        showVendor ();
    }
}

function mqaMapZoomIn (name)
{
    if (map.level < 10)
        mqaMapZoom (map.level + 1);
}
function mqaMapZoomOut (name)
{
    if (map.level > 3)
        mqaMapZoom (map.level - 1);
}

function showZoomState ()
{
    for (var i = 3; i <= 10; ++i) {
        var image = i == map.level ? 'zoom_on.gif' : 'zoom.gif';
        eval ("document.zoom" + i + ".src='/App_Themes/" + themeName + "/images/map/" + image + "'");
    }
}

function showVendor ()
{
    if (! document.vendor) return;

    if ((map.level <= 10) && (map.level >= 6))
    {
      var vendImage = 'navteq.gif';
    } else {
      var vendImage = 't.gif';
    }
    eval("document.vendor.src='/App_Themes/" + themeName + "/images/map/" + vendImage + "'");
}

function mqaMapPan (dir)
{
    if (! map) {
        alert ('you must call mqaMapInit(mapurl) before you can call this function');
    } else {
        map.pan (dir);
    }
}



