﻿function TextReplacer(OriginalText, ObjID) {
    if (typeof document.getElementById(ObjID) == "undefined" || document.getElementById(ObjID).type != "text")
        return false;
    if (document.getElementById(ObjID).value == "") {
        document.getElementById(ObjID).value = OriginalText;
        document.getElementById(ObjID).style.color = "#666666";
        document.getElementById(ObjID).style.fontStyle = "italic";
    }
    else if (document.getElementById(ObjID).value == OriginalText) {
        document.getElementById(ObjID).value = "";
        document.getElementById(ObjID).style.color = "#000000";
        document.getElementById(ObjID).style.fontStyle = "normal";
    }
    else {
        document.getElementById(ObjID).style.color = "#000000";
        document.getElementById(ObjID).style.fontStyle = "normal";
        //TODO: Put back in once validation can be solved.
        //document.getElementById(ObjID).value = localeNumberFormat(document.getElementById(ObjID).value, "£", ",", 2);
    }
    
}

function DropDownChanger(ObjID)
{
    if (typeof document.getElementById(ObjID) == "undefined")
        return false;

    if (document.getElementById(ObjID).type == "select-one")
    {
        if (document.getElementById(ObjID).selectedIndex == 0)
        {
            document.getElementById(ObjID).style.color = "#666666";
            document.getElementById(ObjID).style.fontStyle = "italic";
        }
        else
        {
            document.getElementById(ObjID).style.color = "#000000";
            document.getElementById(ObjID).style.fontStyle = "normal";
        }
    }
    else if (document.getElementById(ObjID).type == "select-multiple")
    {
        //var arSelected = new Array();
        var blnSelect = new Boolean();
        blnSelect = false;

        for (var i = document.getElementById(ObjID).options.length - 1; i >= 0; i--)
        {
            if (document.getElementById(ObjID).options[i].selected)
            {
                //arSelected.push(document.getElementById(ObjID).options[document.getElementById(ObjID).selectedIndex].value);
                blnSelect = true;
                break;
            }
        }

        //if (arSelected.length > 0)
        if (blnSelect)
        {
            document.getElementById(ObjID).style.color = "#000000";
            document.getElementById(ObjID).style.fontStyle = "normal";
        }
        else
        {
            document.getElementById(ObjID).style.color = "#666666";
            document.getElementById(ObjID).style.fontStyle = "italic";
        }
    }
}

//******** code to limit key entry into text boxes **************
function getkey(e) {
    if (window.event)
        return window.event.keyCode;
    else if (e)
        return e.which;
    else
        return null;
}

function goodchars(e, goods) {
    var key, keychar;
    key = getkey(e);
    if (key == null) return true;
    keychar = String.fromCharCode(key);
    if (goods.indexOf(keychar) != -1)
        return true;
    if (key == null || key == 0 || key == 8 || key == 9 || key == 13 || key == 27)
        return true;
    return false;
}

function badchars(e, goods)
{
    var key, keychar;
    key = getkey(e);
    if (key == null) return true;
    keychar = String.fromCharCode(key);
    if (goods.indexOf(keychar) == -1)
        return true;
    if (key == null || key == 0 || key == 8 || key == 9 || key == 13 || key == 27)
        return true;
    return false;
}
//***************************************************************

var WinW;
var WinH;

if (navigator.appName.indexOf("Microsoft") != -1) {
    WinW = document.documentElement.clientWidth;
    WinH = document.documentElement.clientHeight;
} else {
    WinW = window.innerWidth;
    WinH = window.innerHeight;
}

// Centre dialogue in viewport.
function centreDialogue(elementToCentre, elementHeight, elementWidth) {
    var dlgH = (WinH / 2) - (elementHeight / 2);
    var dlgW = (WinW / 2) - (elementWidth / 2);
    document.getElementById(elementToCentre).style.top = dlgH + 'px';
    document.getElementById(elementToCentre).style.left = dlgW + 'px';
}



function UpdateMoney(amount) {
    var s = new String();
    s = amount;
    if (s != "") {
        s = s.replace(/,/g, "");
        s = s.replace(/£/g, "");
        s = CurrencyFormatted(s);
        s = CommaFormatted(s);
        s = "£" + s;
        //s = s.replace(/".00"/g,"");
        //alert(s);
    }
    return s;
}

function ListBoxEntered(oSrc, args) {
    
    var blnSelect = new Boolean();
    blnSelect = false;

    for (var i = document.getElementById(oSrc.controltovalidate).options.length - 1; i >= 0; i--)
    {
        if (document.getElementById(oSrc.controltovalidate).options[i].selected)
        {
            blnSelect = true;
            break;
        }
    }

    args.IsValid = blnSelect;
}


function removeAttribute(objectID, AttributeName)
{
    var obj = document.getElementById(objectID);
    obj.removeAttribute(AttributeName);
}

function addAttribute(objectID, AttributeName, Value)
{
    var obj = document.getElementById(objectID);
    obj.setAttribute(AttributeName, Value);
}


//function ShowHideCallbackFooter()
//{
//    
//    //__doPostBack("hi", "fool");
//    //__doPostBack('ctl00$FooterPartners', 'x');
//    ShowHideCallback();
//    BackendHooks.FLogoCallback("boo");
//    //BackendHooks.FLogoCallback = <% GetClickRef() %>;
//}


function ShowHideCallback()
{
    var iCallback = document.getElementById('IframeContainer');
    
    // Or if called from within IFrame
    if (iCallback == null)
        iCallback = parent.document.getElementById('IframeContainer');
    
    if (iCallback.className == "iFrameHidden")
    {
        iCallback.className = "iFrameShow";
        centreDialogue('IframeContainer', 400, 300);
        document.getElementById('Overlay').style.display = "block";
    }
    else
    {
        iCallback.className = "iFrameHidden";
        document.getElementById('Overlay').style.display = "none";
    }
}

function ShowHideCallback2()
{
    
    var iCallback = document.getElementById('IframeContainer2');

//    alert(iCallback);

    // Or if called from within IFrame
    if (iCallback == null)
        iCallback = parent.document.getElementById('IframeContainer2');

//    alert(iCallback.className);
    if (iCallback.className == "iFrameHidden")
    {
        iCallback.className = "iFrameShow";
        //centreDialogue('IframeContainer2', 400, 300);
        iCallback.style.top = 300 + 'px';
        iCallback.style.left = 300 + 'px';
        iCallback.style.zindex = 9999;
        document.getElementById('Overlay').style.display = "block";
    }
    else
    {
        iCallback.className = "iFrameHidden";
        document.getElementById('Overlay').style.display = "none";
    }
//    alert(iCallback.className);
}

function localeNumberFormat(amount, currencySymbol, delimiter, decimalPlaces)
{
    // setup some default values
    if (decimalPlaces == null || decimalPlaces == undefined) { decimalPlaces = 0; }

    //check that the value can be recognised as an Floating point number
    try
    {
        amount = parseFloat(amount);
        amount = amount.toFixed(decimalPlaces);
    }
    catch (e)
    {
        throw ('localeNumberFormat caused INVALID FLOAT with value ' + amount)
        return null;
    }

    if (delimiter == null || delimiter == undefined) { delimiter = ','; }

    // convert to string
    if (amount.match != 'function') { amount = amount.toString(); }

    // validate as numeric
    var regIsNumeric = /[^\d,\.-]+/igm;
    var results = amount.match(regIsNumeric);

    if (results != null)
    {
        outputText('INVALID NUMBER', eOutput)
        return null;
    }

    // setup some variables for delimiting the strings with commas
    var minus = amount.indexOf('-') >= 0 ? '-' : '';
    amount = amount.replace('-', '');
    //alert(amount);

    var amtLen = amount.length;
    var decPoint = amount.indexOf('.');
    var wholeNumberEnd = decPoint > 0 ? amtLen - (amtLen - decPoint) : amtLen;

    var wholeNumber = amount.substr(0, wholeNumberEnd);
    var fraction = amount.substr(wholeNumberEnd, amtLen - wholeNumberEnd);

    var segments = (wholeNumberEnd - (wholeNumberEnd % 3)) / 3;
    var rvsNumber = wholeNumber.split('').reverse().join('');
    var output = '';

    for (i = 0; i < wholeNumberEnd; i++)
    {
        if (i % 3 == 0 && i != 0 && i != wholeNumberEnd) { output += ','; }
        output += rvsNumber.charAt(i);
    }

    output = minus + currencySymbol + output.split('').reverse().join('') + fraction;

    return output;
}

var BackendHooks = {};




function FLogoLoading(Direction)
{
    var cell = document.getElementById("ctl00_FooterPartners_FLogoContainer");

    if (cell.hasChildNodes())
    {
        while (cell.childNodes.length >= 1)
        {
            cell.removeChild(cell.firstChild);
        }
    }

    var image = document.createElement("img");
    image.className = "FLogoLoadingBar"
    image.setAttribute("src", "http://www.hiltonbaird.co.uk/images/ajax-loader-bar.gif");
    image.align = "center";
    cell.appendChild(image);

    pageTracker._trackEvent('Funder Logo', 'New Set', Direction)

}