﻿initSearchBox = function()
{
    YAHOO.util.Event.addListener("btnEstateSearch", "click", doEstateChecker);
    
    YAHOO.example.ACXml = new function()
    {
        this.oACDS = new YAHOO.widget.DS_XHR("/ajax/searchcity.ashx", ["Result", "Title"]);
        this.oACDS.responseType = YAHOO.widget.DS_XHR.TYPE_XML;
        this.oACDS.queryMatchContains = true;   
        this.oACDS.maxCacheEntries = 0;     
        
        // Instantiate AutoComplete
        this.oAutoComp = new YAHOO.widget.AutoComplete("city","citycontainer", this.oACDS);
        this.oAutoComp.useIFrame = true;     
        this.oAutoComp.useShadow = true;
        this.oAutoComp.maxResultsDisplayed = 20;
        //this.oAutoComp.typeAhead = true;
        
        // Stub for form validation
        this.validateForm = function() {
            // Validation code goes here
            return true;
        };
    };       
} 

YAHOO.util.Event.onDOMReady(initSearchBox);  

function clearEstateCheckerError()
{
    YAHOO.util.Dom.get('estateCheckerError').innerHTML = "";
    YAHOO.util.Dom.setStyle("estateCheckerError", "display", "none");
}

function showEstateCheckerError(errorText)
{
    var estate_checker = YAHOO.util.Dom.get("estateCheckerError");
    
    if(estate_checker)
    {
        estate_checker.innerHTML = errorText;
        YAHOO.util.Dom.setStyle("estateCheckerError", "display", "block");
    }
}

function doEstateChecker(e) 
{
    if (e)
        YAHOO.util.Event.stopEvent(e);
        
    var city = YAHOO.util.Dom.get("city");
    
    if(!city.value)
    {
        document.complexSearch.submit();
    }
    else
    {
        city = "city=" + city.value;
        YAHOO.util.Connect.asyncRequest("POST", "/ajax/estateChecker.ashx", checkerCallback, city);
    }
}

var checkerSuccess = function(o)
{
    regex = /^[0-9]/;
    
    if (o.responseText !== undefined && o.responseText != "-1" && (regex.test(o.responseText) != false))
    {
        document.complexSearch.submit();
    }
    else
    {
        showEstateCheckerError('A település nem található!');
    }
};

var checkerFailure = function(o)
{
    showEstateCheckerError('A település nem található!');
};

var checkerCallback =
{
    success: checkerSuccess,
    failure: checkerFailure
};