/* $Id: nc_advSearch.js,v 1.3 2011/03/19 04:56:56 hetal Exp $ */

/** Define global variable for those field they generated using javascript, used for manipulation */
var domTown=new Array();
var selTown=new Array();
var avlTo='';

/** when page is loaded store default value of those field they generated using javaScript,
this field value is not reset using reset function of javascript so, reset manually.
*/
function setDefReset(advForm)
{
    if(advForm.id_sel_town.length > 0)
    {
        for(var st=0; st<advForm.id_sel_town.length; st++)
        {
            /** Assign in domTown array 'selected domicile and town' as value and text seperated with , */
            if(advForm.id_sel_town[st].value != "")
                domTown[st]=advForm.id_sel_town[st].value+","+advForm.id_sel_town[st].text;
        }
    }

    if(advForm.availableTo.selectedIndex > 0)
        avlTo=advForm.availableTo.value;
    if(advForm.id_sel_town.length > 0)
        selTown=domTown;
}

function blankFa()
{
    if(isblank(document.adv.findAgent.value) || !checkCity(document.adv.findAgent.value))
    {
        alert(msgInvalidFa);
        document.adv.findAgent.focus();
        return false;
    }
}
function checkFa(advForm)
{
    var aT="";

    if(document.adv.id_sel_town.length > 0)
    {
        for(a=0; a<document.adv.id_sel_town.length-1; a++)
        {
            if(document.adv.id_sel_town[a].value != "")
                aT += document.adv.id_sel_town[a].value+",";
        }
        if(document.adv.id_sel_town[a].value != "")
            aT += document.adv.id_sel_town[a].value;

        document.adv.selTown.value=aT;
    }
    return true;
}
function loginWarning(msgWar,curTxt)
{
    if(!isblank(curTxt))
    {
        alert(msgWar);
    }
}
function updateNumField(o)
{
    if (frmFixUIntField(o))
    o.focus();
}
var frmD=new Object(), frmO, frmE;

function frmCheckUInt(o)
{
    for (var i=0;i < o.length;i++)
    {
        var c=o.charAt(i);
        if (c < '0' || c >'9')
        return false;
    }
    return true;
}

function frmFixUIntField(o)
{
    var t=frmCheckUInt(o.value);
    if (t)
    {
        frmD[o.name]=o.value;
    }
    else
    {
        o.value=(frmD[o.name]!=null?frmD[o.name]:'');
    }
    return t;
}
function loadDef(v1)
{
    if(!v1.value)
    {
        if(v1.name == 'priceFrom')
            v1.value=lvalue;
        else
            v1.value=uvalue;
    }
}
function loadDefArea(v1)
{
    if(!v1.value)
    {

        if(v1.name == 'areaFrom')
            v1.value=lvalue;
        else
            v1.value=uvalue;
    }
}

function loadDefGArea(v1)
{
    if(!v1.value)
    {

        if(v1.name == 'areaFrom')
            v1.value=lvalue;
        else
            v1.value=uvalue;
    }
}

function loadDefBerths(v1)
{
    if(!v1.value)
    {

        if(v1.name == 'berthsFrom')
            v1.value=lvalue;
        else
            v1.value=uvalue;
    }
}

function loadDefRoom(v1)
{
    if(!v1.value)
    {

        if(v1.name == 'roomFrom')
            v1.value=lvalue;
        else
            v1.value=uvalue;
    }
}

function chkMandOutOfTwo(chk,chkOther)
{
    /** if another checkbox is not selected/checked, keep the first one as selected regardless of
       whether user has checked or unchecked.
    */
    if(!chkOther.checked)
        chk.checked=true;

    return;
}

function checkAvailabilityDate(toDate,fromDate)
{
    var fdate=fromDate.value;
    var tdate=toDate.value;

    if(tdate && fdate && tdate != C_AVAILABLE_TO && fdate != C_AVAILABLE_FROM)
    {
        var fdarr=fdate.split('-');
        var tdarr=tdate.split('-');

        var fd=fdarr[0];
        var fm=fdarr[1];
        var fy=fdarr[2];
        var td=tdarr[0];
        var tm=tdarr[1];
        var ty=tdarr[2];

        if(fy > ty)
        {
            alert(msgAvailabilityDates);
            toDate.value='';
        }
        else if(fy == ty)
        {
            if(fm > tm)
            {
                alert(msgAvailabilityDates);
                toDate.value='';
            }
            else if(fm == tm)
            {
                if(fd > td)
                {
                    alert(msgAvailabilityDates);
                    toDate.value='';
                }
            }
        }
    }
}
/** Reset the all form field when reset button click */
function resetForm(advForm)
{
    advForm.reset();

    if(selTown)
        getDefValue(advForm.id_sel_town,selTown,'');

    getDomTown(document.adv.id_domicile.value,'','ADV'); //Default counter will call from here
    return true;
}
    
    addAny(document.adv.id_sel_town,document.adv.id_town);
    setDefReset(document.adv);// This is used when Reset button click
    getDomTown(document.adv.id_domicile.value,'','ADV'); //Default counter will call from here




/** Setup for pop-up calendar call for available from date */
document.getElementById("trigger_availableFrom").disabled = false;
Calendar.setup({
inputField : "availableFrom",
ifFormat : "%d-%m-%Y",
daFormat : "%d-%m-%Y",
button : "trigger_availableFrom"
});

/** Setup for pop-up calendar call for available to date */
document.getElementById("trigger_availableTo").disabled = false;
Calendar.setup({
inputField : "availableTo",
ifFormat : "%d-%m-%Y",
daFormat : "%d-%m-%Y",
button : "trigger_availableTo"
});

/** call Ajax function for search result counter on change elements value. */
function callAjax(frmObj)
{
   /** for write hidden parameter selected model & selected acc and validate inspected motmonth & motyear */
   var ajaxFName=_su + '/ajaxSearchCounter.php?ajxifrm=A&site=NC';
   if(frmObj.name == 'adv')
   {
       checkFa();
       return ajaxCounterChng(ajaxFName+'&frm=ADV&'+ cleanFrmUrl(frmObj),frmObj.name);
   }
   else if(frmObj.name == 'srch')
   {
       return ajaxCounterChng(ajaxFName+'&frm=SIMP&'+ cleanFrmUrl(frmObj),frmObj.name);
   }
}
/** Ajax Function for display total counter of vehicle which are belong to search criteria */
function ajaxCounterChng(searchUrl,frmName)
{
    var loadingImg='';
    var ajaxFname=searchUrl.replace('/#/ig','@');

    if(frmName == 'adv')
        loadingImg='loadingImg_src_chngCntAdv';
    else if(frmName == 'srch')
        loadingImg='loadingImg_src_chngCnt';

    idiv(loadingImg).style.display='inline';

    var xmlHttpReq=createXHR();

    xmlHttpReq.open('GET',ajaxFname,true);
    xmlHttpReq.setRequestHeader("Content-Type", "text/xml;charset=UTF-8");
    xmlHttpReq.onreadystatechange=function() {
        if(xmlHttpReq.readyState == 4) {
            showResponse(xmlHttpReq.responseXML);
            idiv(loadingImg).style.display='none';
        }
    };
    xmlHttpReq.send(null);
    return false;
}
function getDomTown(domVal,curval,page,srch)
{
    var townStr='';
    var srchStr='';
    var mapId='';
    var simpAjaxCall="callAjax(document.srch);";

    if(srch == 'map')
    {
        mapId='_map';
        srchStr='&srch='+srch;
        simpAjaxCall='';
    }
    else if(srch == 'qs')
        simpAjaxCall='';

    var townUrl=_su+'/ajaxGetDomicileTown.php?ajxifrm=A&frm='+page+'&site=NC'+srchStr+'&';

    if(curval) townStr='&sel_id_town='+curval;

    if(page == 'ADV')
        AjaxUpdater('adv_id_town',townUrl+'id_domicile='+domVal+townStr,"callAjax(document.adv);");
    else if(page == 'BBLSIMP')
        AjaxUpdater('bbl_simp_id_town',townUrl+'id_domicile='+domVal+townStr,"makeAllTownSelected();");
    else if(page == 'SIMP')
        AjaxUpdater('srch_id_town'+mapId,townUrl+'id_domicile='+domVal+townStr,simpAjaxCall);
    else if(page == 'POST')
        AjaxUpdater('post_id_town',townUrl+'id_domicile='+domVal+townStr);
    else if(page == 'listService')
        AjaxUpdater('service_id_town',townUrl+'id_domicile='+domVal+townStr);
}
function addAny(v1,v2)
{
    if(v1.options.length == 0)
    {
        selOpt=new Option("","");
        eval("v1.options[0]=selOpt");
    }
    if(v2.options.length == 0)
    {
        selOpt=new Option("","");
        eval("v2.options[0]=selOpt");
    }
}

