﻿// JScript File
var AutoCompXmlObj = null;
var resultsDivId = "";
var textBoxObj  = null;
var currSelDivId = 0;
var maxResultsNum = 10;
var selectedCatId = "0";
var selectedCatName = "";

var baseURL = "";
var selectedAreaId = "0";
var selectedAreaName = "";

var idsArr;

var isCat = 1;

var isACMPDisplayed = 0;

function getHttpRequestObj() 
{
	var xmlhttp;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function setAutoComp(textObj, pageToExec)
{  
    hideResults();
    if(textObj.value.length > 0)
    {
        pageToExec += "?key=" + escape(textObj.value);
        requestPage(pageToExec);
    }
}





function requestPage(pageToExec)
{
    AutoCompXmlObj = getHttpRequestObj();
	AutoCompXmlObj.onreadystatechange = requestDone;
	AutoCompXmlObj.open ("get", pageToExec ,true);
	AutoCompXmlObj.send(null);
}




function requestDone()
{
	
    if(AutoCompXmlObj.readyState == 4)
    {
        
        var htmStr = "";		
	    try
	    {
            htmStr = AutoCompXmlObj.responseText;
        }
        catch(expt)
        {
            htmStr = "";
        }
        if(htmStr.length > 0)
        {
            //////////////////////////
            // Getting num of results:
            try
            {
                var startPos = htmStr.indexOf("<!--c:") + 6;
                var endPos = htmStr.indexOf(":c-->");
                var num = parseInt(htmStr.substring(startPos, endPos));
                maxResultsNum = num;
            }
            catch(expt)
            {
                maxResultsNum = 10;
            }
            
            //////////////////////////
            // Getting the ids:
            try
            {
                var startPos = htmStr.indexOf("<!--i:") + 6;
                var endPos = htmStr.indexOf(":i-->");
                var idsStr = htmStr.substring(startPos, endPos);
                idsArr = idsStr.split(";");
            }
            catch(expt)
            {
                idsArr = null;
            }
            showResults(htmStr)
        }
    }
}


function hideResults()
{
    try
    {
   document.getElementById(resultsDivId).innerHTML = "";
   document.getElementById(resultsDivId).style.display = "none";
   }
   catch(expt){}
   isACMPDisplayed = 0;
}


function showResults(resultsStr)
{
   isACMPDisplayed = 1;
   document.getElementById(resultsDivId).innerHTML = resultsStr;
   document.getElementById(resultsDivId).style.display = "";
   
}


function acDivOver(divId,  catId , catName)
{
    acDivOut(currSelDivId);
    try
    {
        divObj = document.getElementById("ac_div_" + divId);
        divObj.style.backgroundColor= "#eef1f1";
        currSelDivId = divId;
        if(isCat)
        {
            selectedCatId = catId;
            selectedCatName = catName;   
        }
        else
        {
            selectedAreaId = catId;
            selectedAreaName = catName;  
        }     
    }
    catch(expt){}
}

function acDivOut(divId)
{
    try
    {
        divObj = document.getElementById("ac_div_" + divId);
        divObj.style.backgroundColor= "#ffffff";        
    }
    catch(expt){}
}

function selectNextDiv()
{
    try
    {
        acDivOut(currSelDivId);
        currSelDivId ++;
        if(currSelDivId > maxResultsNum)
        {
            currSelDivId = 1;
        }
        acDivOver(currSelDivId,idsArr[currSelDivId - 1],document.getElementById("ac_div_" + currSelDivId).title);
    }
    catch(expt){}    
}

function selectPrevDiv()
{
    try
    {
        acDivOut(currSelDivId);
        currSelDivId --;
        if(currSelDivId < 1)
        {
            currSelDivId = maxResultsNum;
        }    
        acDivOver(currSelDivId,idsArr[currSelDivId - 1],document.getElementById("ac_div_" + currSelDivId).title); 
    }
    catch(expt){}   
}

function mainDivKeyPress(evnt)
{
    var KeyID = (window.event) ? event.keyCode : evnt.keyCode;
    if(KeyID == 40) // Arrow Down
    {
        selectNextDiv();
        return;
    }
    if(KeyID == 38) // Arrow UP
    {
        selectPrevDiv();
        return;
    }
}


function catsTextBoxKeyPress (textObj, evnt)
{
    if(resultsDivId != "" && resultsDivId != "autoCompleteCatsResults")
        hideResults();
    
    isCat = 1;
    textBoxObj = textObj;
    resultsDivId = "autoCompleteCatsResults";
    
    
    var KeyID = (window.event) ? event.keyCode : evnt.keyCode;
    
    if(KeyID != 40 && KeyID != 38) // Arrow Down
    {
        if(KeyID == 13)
        {
            if(isACMPDisplayed == 0 || selectedCatName == '')
            {
                clickOnSearch();
            }
            else
            {
                textBoxObj.value = selectedCatName;
                hideResults();
                return false;
            }
        }
        else
        {
            currSelDivId = 0;
            selectedCatId = "0"
            _networkId = 0;
            setAutoComp(textObj, '/autocomplete/getCats.aspx');
          
        }
        
    }
    else
    {
        mainDivKeyPress();
    }
   
}


function mainDivKeyPress(evnt)
{
    var KeyID = (window.event) ? event.keyCode : evnt.keyCode;
    if(KeyID == 40) // Arrow Down
    {
        selectNextDiv();
        return;
    }
    if(KeyID == 38) // Arrow UP
    {
        selectPrevDiv();
        return;
    }
}



function areasTextBoxKeyPress (textObj, evnt, AltResultsDivId , AltBaseURL)
{

    if(AltBaseURL!= undefined)
    {
        baseURL = AltBaseURL
    }
    
    if((resultsDivId != "" && resultsDivId != "autoCompleteAreasResults" ) || AltResultsDivId != undefined)
        hideResults();
    isCat = 0;
    textBoxObj = textObj;
    if(AltResultsDivId == undefined)
    {
        resultsDivId = "autoCompleteAreasResults";
    }
    else
        resultsDivId = AltResultsDivId;
       
    var KeyID = (window.event) ? event.keyCode : evnt.keyCode;
    if(KeyID != 40 && KeyID != 38) // Arrow Down
    {
        if(KeyID == 13)
        {
            if(isACMPDisplayed == 0)
            {
                clickOnSearch();
            }
            else
            {
                textBoxObj.value = selectedAreaName;
                hideResults();
                return false;
            }            
        }
        else
        {
            currSelDivId = 0;
            selectedAreaId = "0"
            setAutoComp(textObj, '/autocomplete/getAreas.aspx');
       
        }       
    }
    else
    {
        mainDivKeyPress();

    }
}


function hideAllAutoComplete()
{
    try
    {
        hideResults();
    }
    catch(expt){}
}


function selectCat()
{
    textBoxObj.value = selectedCatName;
    hideResults();
}


function selectArea()
{
    textBoxObj.value = selectedAreaName;
    hideResults();
    if(baseURL != "")
    {
        baseURL +=  "&ai=" + selectedAreaId;
        location.href = baseURL;
    }
    
}


function clickOnSearch()
{
    var destURL = "";
    var catText = document.getElementById("catSearch").value;
    var areaText = document.getElementById("areaSearch").value;

    ///////////////////////////


    if(catText == "" && areaText == "" &&  selectedCatId == "0" && selectedAreaId == "0")
    {
        // Nothing for search
        return;
    }

    if (selectedCatId == "0" && catText.length > 0)
    {
        destURL = "/List-" + encodeURIComponent(catText);
        if(areaText != '')
        {
            if (selectedAreaId == "0")
            {
                destURL += "-" + encodeURIComponent(areaText);
            }
            else
            {
                destURL += "-" + encodeURIComponent(areaText);
            } 
        }        
    }
    else if(selectedCatId != "0")
    {
    
        var pageURL = "/autocomplete/getSearchLink.aspx?catId=" + selectedCatId + "&areaText=" + escape(areaText);
        var xObj = getHttpRequestObj();
       // location.href = pageURL;

	    xObj.open ("get", pageURL ,false);
	    xObj.send(null);
        var responseText = xObj.responseText.trim();
        destURL = responseText;    
     
    } 
    else if(selectedCatId == "0" && catText.length == 0)
    {
        return;
    }
    location.href = destURL;
}




/////////////////////////////////////////////////////////////////
// Autocomplete for new business page: //////////////////////////


function businTextBoxKeyPress (textObj, evnt)
{
    var KeyID = (window.event) ? event.keyCode : evnt.keyCode;
    
    if(KeyID != 40 && KeyID != 38) // Arrow Down
    {
        
            currSelDivId = 0;
            selectedCatId = "0"
            _networkId = 0;
            setBusinAutoComp(textObj, '/autocomplete/getCatsForBusin.aspx');      
    }
}


function setBusinAutoComp(textObj, pageToExec)
{  
    hideResultsForBusin();
    if(textObj.value.length > 0)
    {
        pageToExec += "?key=" + escape(textObj.value);
        requestPageForBusin(pageToExec);
    }
}

function requestPageForBusin(pageToExec)
{
    AutoCompXmlObj = getHttpRequestObj();
	AutoCompXmlObj.onreadystatechange = requestPageForBusinDone;
	AutoCompXmlObj.open ("get", pageToExec ,true);
	AutoCompXmlObj.send(null);
}




function requestPageForBusinDone()
{
	
    if(AutoCompXmlObj.readyState == 4)
    {
        
        var htmStr = "";		
	    try
	    {
            htmStr = AutoCompXmlObj.responseText;
        }
        catch(expt)
        {
            htmStr = "";
        }
        if(htmStr.length > 0)
        {
            //////////////////////////
            // Getting num of results:
            try
            {
                var startPos = htmStr.indexOf("<!--c:") + 6;
                var endPos = htmStr.indexOf(":c-->");
                var num = parseInt(htmStr.substring(startPos, endPos));
                maxResultsNum = num;
            }
            catch(expt)
            {
                maxResultsNum = 10;
            }
            
            //////////////////////////
            // Getting the ids:
            try
            {
                var startPos = htmStr.indexOf("<!--i:") + 6;
                var endPos = htmStr.indexOf(":i-->");
                var idsStr = htmStr.substring(startPos, endPos);
                idsArr = idsStr.split(";");
            }
            catch(expt)
            {
                idsArr = null;
            }
            showResultsForBusin(htmStr)
        }
    }
}


function showResultsForBusin(resultsStr)
{
   document.getElementById("autoCompleteCatsBusin").innerHTML = resultsStr;
   document.getElementById("autoCompleteCatsBusin").style.display = "";
   
}

function hideResultsForBusin()
{
   document.getElementById("autoCompleteCatsBusin").innerHTML = "";
   document.getElementById("autoCompleteCatsBusin").style.display = "none";
   isACMPDisplayed = 0;
}




function businSelectCat(catId, catName)
{
    addCatToRel(catId, catName);
}


function bacDivOver(divId,  catId , catName)
{
    acDivOut(currSelDivId);
    try
    {
        divObj = document.getElementById("bac_div_" + divId);
        divObj.style.backgroundColor= "#eef1f1";
        currSelDivId = divId;
        if(isCat)
        {
            selectedCatId = catId;
            selectedCatName = catName;   
        }
        else
        {
            selectedAreaId = catId;
            selectedAreaName = catName;  
        }     
    }
    catch(expt){}
}

function bacDivOut(divId)
{
    try
    {
        divObj = document.getElementById("bac_div_" + divId);
        divObj.style.backgroundColor= "#ffffff";        
    }
    catch(expt){}
}

function selectText(textObj)
{

        textObj.select();
}

function unSelectText(textObj)
{
      
        if (document.selection)
        {
            document.selection.empty();      
        }
        else
        {
            window.getSelection().removeAllRanges();
        }
}

