// JS for Dynamic Rates Displaying

var m_Rates = "    ";
var m_Stage = 0;
var m_Search = 0;
var m_state = 0;
var m_url = "http://www.blueface.ie/WebServices/ratesservice.asmx";    // URL of the page hosting the web services

// Main function: call webservice
function GetRates(location)
{   
    var lengthTest = location;
    var lengthTest = lengthTest.length
    if(lengthTest < 2)
    {
        alert("Please, enter at least 2 letters. Thank you.");      // Prevent the function from returning too many results which would not be relevant
    }
    else{
        m_Search = 1;       // new search
        m_Stage = 0;        // new search
        
        m_Rates = "Loading ...";
        DisplayRates();    
        
        var pl = new SOAPClientParameters();
        pl.add("location", location + "@0");
        SOAPClient.invoke(m_url, "GetRatesFct", pl, true, GetStatusCallback);
    }
}

function GetStatusCallback (rates)
{
    m_Rates = rates;
    DisplayRates();
}

// Display manager : buttons & data
function DisplayRates()
{   
    // Set the visibility of the button : Previous Results
    if(m_Stage == 0)    // OFF
    {
        document.getElementById("PreviousButton").innerHTML = '<img src=\"../rates/images/previous_results_inactive.png\"> ';
    }
    else                // ON
    {
       document.getElementById("PreviousButton").innerHTML = '<a class="PreviousResults" href="javascript:PrevTenResults(document.myRatesForm.location.value)"></a>'; 
    }
    
    // Check if there are some more results to display
    var temp = m_Rates;
    var bool = temp.charAt(temp.length-1);
    
    // Set the visibility of the button : Next 10 Results 
    if(bool == 1)       // ON
    { 
        document.getElementById("NextButton").innerHTML = '<a class="NextResults" href="javascript:NextTenResults(document.myRatesForm.location.value)"></a>';
    }
    else                // OFF
    { 
        document.getElementById("NextButton").innerHTML = '<img src=\"../rates/images/next_results_inactive.png\"> ';
    }
    
    if(bool == 0 || bool == 1) // Remove the marker from the XML string
    {
        m_Rates = m_Rates.substring(0, m_Rates.length-1);
    }    
    
    // Display the actual result
    document.getElementById("BluefaceRates").innerHTML = m_Rates;
}

// Display the previous results
function PrevTenResults(location)
{
    if(m_Search == 1)
    {
        m_Stage = m_Stage - 1;
        var pl = new SOAPClientParameters();
        pl.add("location", location + "@" + m_Stage);
        SOAPClient.invoke(m_url, "GetRatesFct", pl, true, GetStatusCallback);
    }
    else
    {
        alert("Please, make a search first.");
    }
}

// Display the next results
function NextTenResults(location)
{
    if(m_Search == 1)
    {
        m_Stage = m_Stage + 1;        
        var pl = new SOAPClientParameters();
        pl.add("location", location + "@" + m_Stage);
        SOAPClient.invoke(m_url, "GetRatesFct", pl, true, GetStatusCallback);
    }
    else
    {
        alert("Please, make a search first.");
    }
}


// Help section
function RatesHelpVisible()
{
    if(m_state == 0)
    {
        m_state = 1;
        document.getElementById("RatesHelp").style.display = "block";
        document.getElementById("closehelp").style.display = "block";
        document.getElementById("openhelp").style.display = "none";
    }
    else
    {
        m_state = 0;
        document.getElementById("RatesHelp").style.display = "none";
        document.getElementById("openhelp").style.display = "block";
        document.getElementById("closehelp").style.display = "none";
    }
}