

var strQueryString
var bNoConnectionFee, bNoMaintenanceFee, bNoPayphoneFee, bRechargable
var strExpires, strRounding, strPrice, strLastPeriod
var lngLastNoCalls = 5
var bPreSearchVisible = true
var bSlideResultsFromCurPos = false

function initialisePhoneCardPriceCompare(p_strQueryString, p_bNoConnectionFee, p_bNoMaintenanceFee, p_bNoPayphoneFee, p_bRechargable, p_strExpires, p_strRounding, p_strPrice, bHasJustSearched, p_nTimeDialSessionID)
{
    var divPostSearch = document.getElementById('divPostSearch')

    strQueryString = p_strQueryString
    bNoConnectionFee = p_bNoConnectionFee
    bNoMaintenanceFee = p_bNoMaintenanceFee
    bNoPayphoneFee = p_bNoPayphoneFee
    bRechargable = p_bRechargable
    strExpires = p_strExpires
    strRounding = p_strRounding
    strPrice = p_strPrice
    nTimeDialSessionID = p_nTimeDialSessionID

    if (bHasJustSearched)
    { 
        toggleOptions()
        bSlideResultsFromCurPos = true
        document.getElementById('divPostSearch').style.display = 'block'
    }
 
    if (!(bNoConnectionFee
        || bNoMaintenanceFee
        || bNoPayphoneFee
        || bRechargable
        || strExpires != "All"
        || strRounding != "All"
        || strPrice != "All"))
    {
        divAdvancedOptionsToggle_onclick(true)  
    }
    else
    {
        document.getElementById('chkConnectionFee').checked = bNoConnectionFee
        document.getElementById('chkMaintenanceFee').checked = bNoMaintenanceFee
        document.getElementById('chkPayphoneFee').checked = bNoPayphoneFee
        document.getElementById('chkRechargable').checked = bRechargable
        
        selectFromCombo(document.getElementById('cbxExpires'),strExpires)
        selectFromCombo(document.getElementById('cbxRounding'),strRounding)
        selectFromCombo(document.getElementById('cbxPrice'),strPrice)
    }
}

function toggleOptions()
{
    var lngSlideUpFrom
    
    if(bPreSearchVisible)
    {
        
        if(bSlideResultsFromCurPos)
        {
            lngSlideUpFrom = posTop('divResults') - posTop('divPreSearch')
        }
        else
        {
            lngSlideUpFrom = 400
        }
        slide('divPreSearch', lngSlideUpFrom, 0, 2000)
        document.getElementById('divPostSearch').innerHTML = '- Unhide Options And Search Again'
        bPreSearchVisible = false
    }
    else
    {
        slide('divPreSearch', posTop('divResults') - posTop('divPreSearch'), posTop('btnPhoneCardSearch') - posTop('divPostSearch'), 2000)
        document.getElementById('divPostSearch').innerHTML = '- Hide Options And View Results'
        bPreSearchVisible = true
    }
}

function btnSearch_onclick()
{
    var strFormXML
    var txtNoCalls = document.getElementById('txtNoCalls')
    var txtTalktimeHours = document.getElementById('txtTalktimeHours')
    var txtTalktimeMins = document.getElementById('txtTalktimeMins')
    var divError = document.getElementById('divError')
    var divSearching = document.getElementById("divSearching")
    var divSearching
    var divAds = document.getElementById('divAds') 
    var xmlCombos   
    divError.innerHTML = ''
    
    if (isNaNEmptyZero(txtNoCalls.value) || (isNaNEmptyZero(txtTalktimeHours.value) & isNaNEmptyZero(txtTalktimeMins.value)))
    {
        divError.innerHTML = 
            '<br />THE FOLLOWING IS REQUIRED'
            + '<br />'
            + '<ul>'
        if(isNaNEmptyZero(txtNoCalls.value))
        {
            divError.innerHTML = divError.innerHTML + '<li>Valid Number of Calls</li>'
        }
        if(isNaNEmptyZero(txtTalktimeHours.value) & isNaNEmptyZero(txtTalktimeMins.value))
        {
            divError.innerHTML = divError.innerHTML + '<li>Valid Total Calling Time</li>'
        } 
              
        divError.innerHTML = divError.innerHTML 
            + '</ul>'
    }
    else
    {
        if(isNaNEmptyZero(txtTalktimeHours.value))
        {
            txtTalktimeHours.value = 0
        } 
        if(isNaNEmptyZero(txtTalktimeMins.value))
        {
            txtTalktimeMins.value = 0
        } 
        strFormXML = 
            '<?xml version="1.0" encoding="utf-8"?>'
            + '<formSearchEngine'
                + ' Period="' + document.getElementById('cbxPeriod').value + '"'
                + ' NoCalls="' + txtNoCalls.value + '"'
                + ' TalktimeHours="' + txtTalktimeHours.value + '"'
                + ' TalktimeMins="' + txtTalktimeMins.value + '"'
                + ' RateToUse="' + document.getElementById('cbxRateToUse').value + '"'
                + ' Payphone="' + document.getElementById('chkPayphone').checked + '"'
                + ' FromMobile="' + document.getElementById('chkFromMobile').checked + '"'
                + ' Mobile="' + document.getElementById('chkMobile').checked + '"'
                + ' NoConnectionFee="' + readFormValue(document.getElementById('chkConnectionFee'),false) + '"'
                + ' NoMaintenanceFee="' + readFormValue(document.getElementById('chkMaintenanceFee'),false) + '"'
                + ' NoPayphoneFee="' + readFormValue(document.getElementById('chkPayphoneFee'),false) + '"'
                + ' Rechargable="' + readFormValue(document.getElementById('chkRechargable'),false) + '"'
                + ' Expires="' + readFormValue(document.getElementById('cbxExpires'),'All') + '"'
                + ' Rounding="' + readFormValue(document.getElementById('cbxRounding'),'All') + '"'
                + ' Price="' + readFormValue(document.getElementById('cbxPrice'),'All') + '"'
            + ' />'
        

        postToServer('PhoneCardAds.aspx?SearchEngine=True&AreaID='+ readFormValue(document.getElementById('cbxArea'),'') + '&' + strQueryString,strFormXML, divAds, true, false)

        fade('divWholeContainerContainer', 100, 25, 4000)
        divSearching = document.createElement('div')
        divSearching.setAttribute('id','divSearching')
        divSearching.innerHTML = '<br />Searching<br />Please Wait'
        document.body.appendChild(divSearching)
        
        if(BrowserDetect.browser == 'Explorer' & BrowserDetect.version < 7)
        {
            divSearching.style.top = posTop('btnPhoneCardSearch')
            divSearching.style.position = 'absolute'
        }
        
        window.setTimeout('var dateNow = new Date(); window.location.href = window.location.pathname + "?time=" + dateNow.getTime()',100)

    }
}

function readFormValue(elemForm,objDefault)
{
    if (elemForm != null)
    {
        if (elemForm.getAttribute('type') == 'checkbox')
        {
            return elemForm.checked 
        }
        else
        {
            return elemForm.value
        }
    }
    else
    {
        return objDefault
    }
}

function cbxPeriod_onmousedown()
{
    strLastPeriod = document.getElementById('cbxPeriod').value
}

function cbxPeriod_onchange()
{
    var cbxPeriod = document.getElementById('cbxPeriod')
    var txtNoCalls = document.getElementById('txtNoCalls')
    if (cbxPeriod.value == 'A Call')
    {
        lngLastNoCalls = txtNoCalls.value
        txtNoCalls.value = 1
        txtNoCalls.disabled = true
        document.getElementById('spnPeriod1').innerHTML = '<i>...</i>'
        document.getElementById('spnPeriod2').innerHTML = '<i>The Call</i>' 
    }
    else
    {
        if (txtNoCalls.disabled)
        {
             txtNoCalls.value = lngLastNoCalls
             txtNoCalls.disabled = false  
        } 
        document.getElementById('spnPeriod1').innerHTML = '<i>' + cbxPeriod.value + '</i>'
        document.getElementById('spnPeriod2').innerHTML = '<i>' + cbxPeriod.value + '</i>'
    }               
}

function divAdvancedOptionsToggle_onclick(bDontSlideOptions)
{
    var divAdvancedOptions = document.getElementById('divAdvancedOptions')
    var divAdvancedOptionsToggle = document.getElementById('divAdvancedOptionsToggle')
    
    if (divAdvancedOptions.style.display == 'none')
    {
        divAdvancedOptions.style.display = 'block'
        divAdvancedOptionsToggle.innerHTML = '- Advanced Options'
        document.getElementById('divPreSearch').style.height = '';   
    }
    else
    {
  
        if((document.getElementById('chkConnectionFee').checked
        || document.getElementById('chkMaintenanceFee').checked
        || document.getElementById('chkPayphoneFee').checked
        || document.getElementById('chkRechargable').checked
        || document.getElementById('cbxExpires').value != "All"
        || document.getElementById('cbxRounding').value != "All"
        || document.getElementById('cbxPrice').value != "All"))
        {
            if(!confirm('Advanced options selected will still influence the results. Do you still want to collapse advanced options?'))
            {
                return
            }
        }
        
        divAdvancedOptions.style.display = 'none'
        divAdvancedOptionsToggle.innerHTML = '+ Advanced Options'
        document.getElementById('divPreSearch').style.height = '';
    }
    
    
}

function cbxArea_onChange()
{
    var imgSubRegion = new Image()
    imgSubRegion.src = '../ServerValSet.aspx?SubRegionIDAway=' + this.value
    return true
}

function divPostSearch_onMouseOver()
{
    document.getElementById('divPostSearch').style.backgroundColor = '#EFEFEF'
}

function divPostSearch_onMouseOut()
{
    document.getElementById('divPostSearch').style.backgroundColor = '#FCFCFC'
}

function noResultsPrompt()
{
    var tblSearchEngineResults = document.getElementById('tblSearchEngineResults') 
    var trNoResults, tdBlank, tdMessage
    var tdNoResults

    if(tblSearchEngineResults)
    {
        if(tblSearchEngineResults.rows.length == 1)
        {
            trNoResults = tblSearchEngineResults.insertRow(-1)
            trNoResults.setAttribute('id','trRowOdd')
            tdBlank = trNoResults.insertCell(-1)
            tdBlank.innerHTML = '&nbsp;'
            tdMessage = trNoResults.insertCell(-1)
            tdMessage.setAttribute('id','tdNoResults')
            tdMessage.innerHTML = '<br />Sorry. The search returned no results for the options you selected.<br /><br />Try changing some options an searching again.<br /><br />'
            tdBlank = trNoResults.insertCell(-1)
            tdBlank.innerHTML = '&nbsp;'
            
            document.getElementById('trRowOdd').style.backgroundColor = '#EEEEEE'
            tdNoResults = document.getElementById('tdNoResults')
            tdNoResults.style.textAlign = 'center'
            tdNoResults.style.fontWeight = 'bold'
            tdNoResults.style.color = '#0073E6'
            tdNoResults.colSpan = '3'
            tdNoResults.style.width = '375px'
        }
    }
}

function toggleMobilePayphone(bPayphone)
{
    var chkPayphone = document.getElementById('chkPayphone')
    var chkFromMobile = document.getElementById('chkFromMobile')
    
    if(bPayphone)
    {
        if(chkPayphone.checked)
        {
            chkFromMobile.checked = false
        }
    }
    else
    {
        if(chkFromMobile.checked)
        {
            chkPayphone.checked = false
        }
    }
}

function recordPhoneCardClick(sender,strCompany, strCardName)
{
    postToServer('../ServerValSet.aspx?PhoneCardClickCompany=' + strCompany + '&PhoneCardClickCard=' + strCardName + '&PhoneCardClickPos=' + sender.parentNode.parentNode.attributes['position'].value + '&TimeDialSessionID=' + nTimeDialSessionID)
    return true
}

function statusSet(strStatus)
{
    window.status = strStatus
    return true;
}

function statusRemove()
{
    window.status = ''
    return true;
}