window.name = 'MapWindow';
// Global value holders;
var snumber, sname, sboro, sdir, snameId;
function fnTrapKD(evnt, btn)
{
	if (evnt.keyCode == 13)
	{
			 evnt.returnValue=false;     
			 evnt.cancel = true;
			 btn.click();   
			 return false;
	}  
 }
 function IsValidKey(evt)
 {
 	var ret = false;
	if ((evt.keyCode >= 48 && evt.keyCode <= 90) || (evt.keyCode >= 96 && evt.keyCode <= 105))
			ret = true;
	
	return ret;
 }


//-----------------------------------------------------------------------------------------------------------------------
var AffidavitId;
//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
       if (window.XMLHttpRequest) {
               return new XMLHttpRequest();
       } else if(window.ActiveXObject) {
               return new ActiveXObject("Microsoft.XMLHTTP");
       } else {
               alert("Your Browser is Old!\nIt's about time to upgrade.");
       }
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.


function CheckAddressLookup(evnt, streetnumberId, streetNameId, boroId, strUrl)
{
	snameId = streetNameId;
	streetnumber = convertDashes(document.getElementById(streetnumberId).value);
	streetname = document.getElementById(streetNameId).value;
	var objBoro = document.getElementById(boroId);
	var boro = objBoro.options[objBoro.selectedIndex].value;
	if(IsValidKey(evnt) && boro > 0 && streetnumber != "" && streetname.length > 1)
	{
		if(searchReq)
		{
				var url = strUrl + "/GetAddressRange?streetnumber=" + streetnumber + "&streetname=" + streetname + "&boro=" + boro;
				//window.open(url);

				searchReq.open("GET",url,true);
				searchReq.setRequestHeader('Content-Type',  "text/xml"); 
				searchReq.onreadystatechange  = searchExpsite;
				searchReq.send(null);
		}
   }
   else
   {
	hidePopup();
   }
   return true;
}

//Starts the AJAX request.
function searchExpsite()
{
   if (searchReq.readyState == 4)
   {
			var xmlDoc;
			
			if (window.ActiveXObject)
			{
				xmlDoc= new ActiveXObject("Microsoft.XMLDOM");
				xmlDoc.async    =   "false";
				xmlDoc.load(searchReq.responseXML);
			}
			else
			{
				xmlDoc = searchReq.responseXML;
			}

			
			el = document.getElementById(zpopup);
			el.className="suggest_link_hide";
			el.innerHTML = "";
			
			el2 = document.getElementById(zpopup2);
			el2.className="suggest_link_hide";
			el2.innerHTML = "";

           if(xmlDoc.documentElement != null)
           {
				var strGetXML = xmlDoc.documentElement.childNodes[0].data;
				var objxmlDoc;
				if (window.ActiveXObject)
				{
					strGetXML = strGetXML.substring(1,strGetXML.length);
					strGetXML = String(convertQuotes(strGetXML));
					objxmlDoc = new ActiveXObject("Microsoft.XMLDOM");
					objxmlDoc.async = "false";
					objxmlDoc.loadXML(strGetXML);
				}
				else
				{
					var oParser = new DOMParser();
					objxmlDoc = oParser.parseFromString(strGetXML, "text/xml");
				}
				var allItems = objxmlDoc.getElementsByTagName("AddressRange");
				if(allItems.length > 0)
				{
					if(allItems.length < 10)
					{
						el.innerHTML = "<div class=\"suggestions\">Suggestions&nbsp;&nbsp;<a href=\"#\" onclick=\"hidePopup();\"><img src=\"/images/close_small.gif\" border=0></a></div>";
						for (var i=0;i<allItems.length;i++)
						{
							var itemElm = allItems[i];
							var titleElm = itemElm.getElementsByTagName("Street_name");
							var titleText = titleElm[0].childNodes[0].data;
							var suggest = "<div class=\"suggest_link\" onmouseover=\"javascript:suggestOver(this);\" onmouseout=\"javascript:suggestOut(this);\" onclick=\"setExpSearch('" + titleText + "')\">" + titleText + "</div>";
							el.innerHTML += suggest;
							el.className = 'suggest_link';
						}
					}
					else
					{
						el2.innerHTML = "<div class=\"suggestions\">Suggestions&nbsp;&nbsp;<a href=\"#\" onclick=\"hidePopup();\"><img src=\"/images/close_small.gif\" border=0></a></div>";
						for (var i=0;i<allItems.length;i++)
						{
							var itemElm = allItems[i];
							var titleElm = itemElm.getElementsByTagName("Street_name");
							var titleText = titleElm[0].childNodes[0].data;
							var suggest = "<div class=\"suggest_link\" onmouseover=\"javascript:suggestOver(this);\" onmouseout=\"javascript:suggestOut(this);\" onclick=\"setExpSearch('" + titleText + "')\">" + titleText + "</div>";
							el2.innerHTML += suggest;
							el2.className = 'suggest_link';
						}
					}
				}
           }
           else
           {
               //alert("xmlDoc.documentElement is Null");
           }
   }
}

function sndGeocode(streetNameId, HouseNumberId, BoroughId, PrefixId, strUrl )
{
	sname = document.getElementById(streetNameId).value;
	snumber  = convertDashes(document.getElementById(HouseNumberId).value);
	objsboro = document.getElementById(BoroughId);
	objsdir = document.getElementById(PrefixId);
	sdir = objsdir.options[objsdir.selectedIndex].value;
	var valid = ' -#,;./()ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
	var ok = 'yes';
	var temp;
	var temp2;
	sboro = objsboro.options[objsboro.selectedIndex].value;
	
	for (var i=0; i<sname.length; i++) {
		temp = "" + sname.substring(i, i+1);
		if (valid.indexOf(temp) == '-1') ok = 'no';
	}
	if(sboro == "0") 
	{
		alert("Please select a borough.");
		document.getElementById(BoroughId).focus();
	}
	else if(snumber == "") 
	{
		alert("Please enter house number.");
		document.getElementById(HouseNumberId).focus();
	}
	else if(sname == "") 
	{
		alert("Please enter street name.");
		document.getElementById(streetNameId).focus();
	}
	else if(ok== "no") 
	{
		alert("Invalid entry for street name!  Only characters and numbers are accepted!");
	}
	else
	{

		CheckAddress(strUrl);
	}
}
function CheckAddress(strUrl)
{

   if(sboro > 0 && snumber != "" && sname.length >= 2)
   {
		if(searchReq)
		{
				var url = strUrl + "/CheckAddress?streetnumber=" + snumber + "&streetname=" + sname + "&boro=" + sboro;
				
				
				//alert(url);
				searchReq.open("GET",url,true);
				
				searchReq.setRequestHeader('Content-Type',  "text/xml"); 
				searchReq.onreadystatechange  = searchAddress;
				searchReq.send(null);
				
		}
   }
   else
   {
		return false;
   }
}

//Starts the AJAX request.
function searchAddress()
{
   if (searchReq.readyState == 4)
   {
		var xmlDoc;
		if (window.ActiveXObject)
		{
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async    =   "false";
			xmlDoc.load(searchReq.responseXML);
		}
		else
		{		
			xmlDoc=searchReq.responseXML;
		}
		
		el = document.getElementById(zpopup);
		el.className="suggest_link_hide";
		el.innerHTML = "";
		
		el2 = document.getElementById(zpopup2);
		el2.className="suggest_link_hide";
		el2.innerHTML = "";

        if(xmlDoc.documentElement != null)
        {
			var strGetXML = xmlDoc.documentElement.childNodes[0].data;
			var objxmlDoc;

			
			if (window.ActiveXObject)
			{
				strGetXML = strGetXML.substring(1,strGetXML.length);
				strGetXML = String(convertQuotes(strGetXML));
				objxmlDoc = new ActiveXObject("Microsoft.XMLDOM");
				objxmlDoc.async = "false";
				objxmlDoc.loadXML(strGetXML);
			}
			else
			{
				var oParser = new DOMParser();
				objxmlDoc = oParser.parseFromString(strGetXML, "text/xml");
			}
			var allItems = objxmlDoc.getElementsByTagName('CorrectAddress');

			if(allItems[0].childNodes[0].data == "false")
			{
				alert("Please check your address and try again.");
			}
			else
			{
				if(sdir != "")
				{
					sname = sdir + " " +sname;
				}
				window.open("http://maps.nycboe.net/index.asp?street=" + sname + "&addBoro=" + sboro + "&hsenum=" + snumber + "&action=addGeo","_self");
			}
        }
        else
        {
            //alert("xmlDoc.documentElement is Null");
        }
   }
}

function convertQuotes(string)
{
   return string.replace(/"/g,"'");
}

function convertDashes(string)
{
   return string.replace("-","0");
}
//Mouse over function
function suggestOver(div_value) {
       div_value.className = 'suggest_link_over';
}
//Mouse out function
function suggestOut(div_value) {
       div_value.className = 'suggest_link';
}
function setExpSearch(Value)
{
   document.getElementById(snameId).value =  Value;
   hidePopup();
}
function hidePopup()
{
	document.getElementById(zpopup).innerHTML = '';
	document.getElementById(zpopup).className = 'suggest_link_hide';
	document.getElementById(zpopup2).innerHTML = '';
	document.getElementById(zpopup2).className = 'suggest_link_hide';
	
}

