function addFavourite(url, title) {
    if (window.sidebar) {
        //  firefox et al
        window.sidebar.addPanel(title, url, '');
    } else if (window.external) {
        try {
            window.external.addFavorite(url, title);
        } catch (e) {
            alert('Your browser doesn\'t support this tool, please try pressing Ctrl+D after closing this message');
        }
    } else if (window.opera) {
        var e = document.createElement('a');
        e.setAttribute('href', self.location);
        e.setAttribute('title', document.title);
        e.setAttribute('rel', 'sidebar');
        e.click();
    } else {
        alert('Your browser doesn\'t support this tool, please try pressing Ctrl+D after closing this message');
    }
}

function doSearch() {
    var objQ = document.getElementById("q");
    
    //  Redirect.
    window.location = "/search.aspx?q=" + objQ.value;
}

function doSearchKeypress(e) {
    var intKeyCode;

    if(window.event) // IE
    {
        intKeyCode = e.keyCode;
    }
    else if(e.which) // Netscape/Firefox/Opera
    {
        intKeyCode = e.which;
    }

    if ( intKeyCode == 13 ) {
        document.getElementById("searchbutton").focus()
        doSearch();
    }
}

function enlargeImage( strImage ) {
    
    //  Open a new window.
    objWin = window.open( "/enlarge-image.aspx?imagefilename=" + strImage, "mywin", "status=0, toolbar=0, location=0, menubar=0, resizable=0, scrollbars=0, height=475, width=430" );
    objWin.focus();
}

function setAction( strActionName, strActionValue, strConfirm ) {
    var bConfirm;

    //  Request confirmation if necessary.
    if ( strConfirm != null ) {
        bConfirm = confirm( strConfirm );
    } else {
        bConfirm = true;
    }
    
    if ( bConfirm == true ) {

        //  Set the action.
        document.getElementById( "action_name" ).value = strActionName;
        document.getElementById( "action_value" ).value = strActionValue;

        //  Submit the form.
        document.getElementById( "aspnetForm" ).submit();
    }
}
        
function swapImage( strID, strImage ) {
    var objImage = document.getElementById( strID );

    //  Set the nav image.
    objImage.src = "/media/images/" + strImage;
}

function numbersonly(myfield, e, dec)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27))
   return true;

// numbers
else if ((("0123456789").indexOf(keychar) > -1))
   return true;
   
else
   return false;
}


function characterCount(text, mode, standard, extra)
{
var spnCharacters = document.getElementById('ctl00_cntMain_spnCharacters_' + mode);
var spnCharge = document.getElementById('ctl00_cntMain_spnCharge_' + mode);
var engCharge = document.getElementById('engCharge_' + mode);
var maxLength=50;
var standardCharge = parseFloat(standard);
var extraCharge = parseFloat(extra);
var exemptChar=0

for (var i=0;i<text.value.length;i++) {
    var asciiNum = text.value.charCodeAt(i);

    if (asciiNum == 32 || asciiNum == 46)
    {
        exemptChar = exemptChar + 1;
    }
}

var el = text.value.length - exemptChar;
var espnCharacters = (el - maxLength);

if (spnCharacters) spnCharacters.innerHTML = el;

if (espnCharacters > 0)
{
    spnCharge.innerHTML = parseFloat(standardCharge + (espnCharacters * extraCharge)).toFixed(2);
    engCharge.value = parseFloat(standardCharge + (espnCharacters * extraCharge)).toFixed(2);
}
else if (text.value.length == 0 )
{
    spnCharge.innerHTML = parseFloat(0).toFixed(2);
    engCharge.value = parseFloat(0).toFixed(2);
}
else
{
    spnCharge.innerHTML = parseFloat(standardCharge).toFixed(2)
    engCharge.value = parseFloat(standardCharge).toFixed(2)
}

return true;
}