


function search()
{
    var query = document.getElementById("Query").value.trim();
    var querytype = document.getElementById("QueryType").value;
    var querydistance = document.getElementById("QueryDistance").value;
    
    var offset = findCenterOffset();
    
    var doSearch = true;
    if (query.length < 2)
    {
        if (querydistance.length == 0)
        {
            if (querytype.length==0 || querytype=='Populated places')
            {
                doSearch = false;                
            }
        }
        else
        {
            if (querytype.length==0)
            {
                doSearch = false;                
            }   
        }        
    }
    
    
    
    if (doSearch)
    {
    
        var xmlHttp = false;
    	
	    if(window.ActiveXObject)
        {
    	    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        else if(window.XMLHttpRequest)
        {
    	    xmlHttp=new XMLHttpRequest();
        } 	
    	
    	
    	var postString = "query=" + query + "&querytype=" + querytype + "&shiftX=" + offset[0] + "&shiftY=" + offset[1] + "&querydistance=" + querydistance;
    	
	    xmlHttp.open("POST","Search.ashx", true); 
	    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", postString.length);
        xmlHttp.setRequestHeader("Accept-Charset","UTF-8");
	    xmlHttp.onreadystatechange = function(){acceptSearch(xmlHttp)}; 
	    xmlHttp.send(postString);
	    
	    var box = document.getElementById("Search");
	    box.innerHTML = "<div class=smalltext>Searching ... </div>";
	}
	else
	{
	    alert('At least 2 non-blank characters required for search.');
	}
}

function searchStreets()
{
    var streetName = document.getElementById("StreetSearchName").value.trim();
    var cityName = document.getElementById("StreetSearchCity").value;
    
    if (streetName.length < 2)
    {
        alert('At least 2 non-blank characters required for search.');
    }
    else
    {
    
        var xmlHttp = false;
    	
	    if(window.ActiveXObject)
        {
    	    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        else if(window.XMLHttpRequest)
        {
    	    xmlHttp=new XMLHttpRequest();
        } 	
    
        var postString = "street=" + streetName + "&area=" + cityName;	
    	
	    xmlHttp.open("POST","Search.ashx", true); 
	    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", postString.length);
        xmlHttp.setRequestHeader("Accept-Charset","UTF-8");
	    xmlHttp.onreadystatechange = function(){acceptSearchStreets(xmlHttp)}; 
	    xmlHttp.send(postString);
	    
	    var box = document.getElementById("SearchStreet");
	    box.innerHTML = "<div class=smalltext>Searching ... </div>";
	}
}

function clearSearch()
{
    document.getElementById("SearchForm").reset();
    document.getElementById("Search").innerHTML = "";
    document.getElementById("Query").focus();
}

function clearStreetSearch()
{
    document.getElementById("SearchStreetForm").reset();
    document.getElementById("SearchStreet").innerHTML = "";
    document.getElementById("StreetSearchName").focus();
}


function acceptSearch(xmlHttp)
{

    if(xmlHttp.readyState==4)
    {
        if(xmlHttp.status==200)
        {
            var box = document.getElementById("Search");
            var text = "";
            
            var searchStatus = xmlHttp.responseXML.getElementsByTagName("objects")[0].getAttribute("status");
            var searchCompleteness = xmlHttp.responseXML.getElementsByTagName("objects")[0].getAttribute("complete");

            
            var objects = xmlHttp.responseXML.getElementsByTagName("objects")[0].childNodes;
            
            if (objects.length == 0)
            {
                text = "<p class=smalltext style='margin:3px;'>No results found.";
            }
            else
            {
                if (searchCompleteness == "1")
                {
                    text = "<p class=smalltext style='margin:3px;' style='color:#aa0000'>Top 50 (search too wide)";   
                }
            
                for (i=0;i<objects.length;i++)
                {
                    var objectData = objects[i];                
                    var objectName = objectData.getAttribute("name");
                    var objectFocus = objectData.getAttribute("focus");
                    var objectArea = objectData.getAttribute("area");
                    var objectType = objectData.getAttribute("type");
                    var layerName = objectData.getAttribute("type");
                    var objectDistance = objectData.getAttribute("distance");
                    
                    var objectLink = "'" + objectType + "'," + objectFocus;

                    if (layerName == "Village" || layerName == "Smalltown" || layerName == "Town" || layerName == "City" || layerName == "Metropolis")
                    {
                        layerName = "Populated places";
                    }
                    layerName = layerName.replace(' ','%20');
                                        
                    text += "<p class=smalltext style='margin:3px;margin-top:9px;'><a href=\"javascript:showLink(" + objectLink + ")\" style='margin:0px;' class='searchresult'>" + objectName + "</a> " ;
                    text += "<br> " + objectType;
                    if (objectArea.length > 0)
                    {
                        //text += ", Mun. " + objectArea + "";
                        text += "," + (objectType != "Street" ? " Mun. " : " ") + objectArea + "";
                    }
                   
                    if (objectDistance != "0")
                    {
                        text += "<br> " + objectDistance;   
                    }                    
                    
                    text += "<img height=1 width=1 align=bottom border=0 src=img/empty.gif>";
                    
                    
                    var linkId = "link" + i;
                    var linkText = "Show.ashx?location=" + objectFocus + "&layer=" + layerName;
                    text += "<br><a href=\"javascript:displayLink('" + linkId + "','" + linkText + "','" + objectName+ "')\" style='margin:0px;color:#777777' class=tinytext>Get link</a> " ;
                    
                    
                }
            }
            
            box.innerHTML = text;
             

        }
        else
        {
            //document.getElementById("Hint").innerHTML = xmlHttp.statusText;
        }
 
    }
    
    
}

function acceptSearchStreets(xmlHttp)
{

    if(xmlHttp.readyState==4)
    {
        if(xmlHttp.status==200)
        {
            var box = document.getElementById("SearchStreet");
            var text = "";
            
            var searchStatus = xmlHttp.responseXML.getElementsByTagName("objects")[0].getAttribute("status");
            var searchCompleteness = xmlHttp.responseXML.getElementsByTagName("objects")[0].getAttribute("complete");

            var objects = xmlHttp.responseXML.getElementsByTagName("objects")[0].childNodes;
            
            if (objects.length == 0)
            {
                text = "<p class=smalltext style='margin:3px;'>No results found.";
            }
            else
            {
                if (searchCompleteness == "1")
                {
                    text = "<p class=smalltext style='margin:3px;' style='color:#aa0000'>Top 50 (search too wide)";   
                }
            
                var i=0;
                for (i=0;i<objects.length;i++)
                {
                    var objectData = objects[i];                
                    var objectName = objectData.getAttribute("name");
                    var objectFocus = objectData.getAttribute("focus");
                    var objectArea = objectData.getAttribute("area");
                    
                    
                                        
                    text += "<p class='smalltext' style='margin:3px;margin-top:9px;'><a href=javascript:show(" + objectFocus + ") style='margin:0px;' class='searchresult'>" + objectName + "</a> " ;
                    text += "<br>" + objectArea + "";
                    text += "<img height=1 width=1 align=bottom border=0 src=img/empty.gif>";
                    
                }
            }
            
            box.innerHTML = text; 

        }
        else
        {
            //document.getElementById("Hint").innerHTML = xmlHttp.statusText;
        }
 
    }
    
    
}

String.prototype.trim = function () 
{
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function displayLink(linkId, linkText, linkName)
{

    var text =  "&lt;a target=blank href=http://www.serbiamap.net/" + linkText + "&gt;" + linkName + "&lt;/a&gt;";
    var linkWindow = window.open("","","status=no,width=550,height=100,menubar=no,resizable=no");
    
    linkWindow.document.write("<html><head><title>" + linkName + " Location</title></head><p style='font:11px Arial;color:#777777'>Copy this link and paste where appropriate:<p style='font:11px Arial'>" + text + "</html>");  
    linkWindow.moveTo(220, 200);

      
}
