﻿/////////////////////
/// StringBuilder ///
/////////////////////

function StringBuilder() {
    this.buffer = new Array();
    this.Append = function append(string) { this.buffer.push(string); };
    this.ToString = function toString() { return this.buffer.join(''); };
}
//////////////////////////
/// DisplayPrintDialog ///
//////////////////////////

function DisplayPrintDialog() {
    window.print();
}

/////////////////////
/// ExternalLinks ///
/////////////////////

// http://www.brucelawson.co.uk/index.php/2005/opening-links-in-new-windows-in-xhtml-strict-2/

function ExternalLinks() {
    var objCurrent, objReplacement;

    if (document.getElementsByTagName) {
        var objAnchors = document.getElementsByTagName('a');
        for (var iCounter = 0; iCounter < objAnchors.length; iCounter++) {
            if (objAnchors[iCounter].getAttribute('href') && objAnchors[iCounter].getAttribute('rel') == 'external') {
                objAnchors[iCounter].onclick = function(event) { return LaunchWindow(this, event); }
                objAnchors[iCounter].onkeypress = function(event) { return LaunchWindow(this, event); }

                if (document.replaceChild) {
                    objCurrent = objAnchors[iCounter].firstChild;
                    if (objCurrent.nodeType == 3) // Text node
                    {
                        objReplacement = document.createTextNode(objCurrent.data);
                        objAnchors[iCounter].replaceChild(objReplacement, objCurrent);
                    }
                    else if (objCurrent.alt) // Current element is an image
                    {
                        objReplacement = objCurrent;
                        objReplacement.alt = objCurrent.alt;
                        try {
                            objAnchors[iCounter].replaceChild(objReplacement, objCurrent);
                        }
                        catch (e) { }
                    }
                }
            }
        }
    }
}

////////////////////
/// LaunchWindow ///
////////////////////

function LaunchWindow(objAnchor, objEvent) {
    var iKeyCode;

    if (objEvent && objEvent.type == 'keypress') {
        if (objEvent.keyCode)
            iKeyCode = objEvent.keyCode;
        else if (objEvent.which)
            iKeyCode = objEvent.which;

        if (iKeyCode != 13 && iKeyCode != 32)
            return true;
    }

    return !window.open(objAnchor);
}


function SubmitEnterUrl(myfield,siteurl,e)
{
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else 
        return true;

    if (keycode == 13)
    {
        window.location.href = siteurl + myfield.value;
        return false;
    }
    else
       return true;
}

function EnterKeyPress(elementId, e)
{
    var keycode;
    
    if (window.event){
        keycode = window.event.keyCode;
    }
    else if (e) {
        keycode = e.which;
    }

    if (keycode == 13) {
        __doPostBack(elementId, '');
        return false;
    }
    else
    {
        return true;
    }
}

