var errorMessageArray = new Array();
var errorIdArray = new Array();
function trim(inputString) {

    if (typeof inputString != "string") { return inputString; }
    var retValue = inputString;
    var ch = retValue.substring(0, 1);
    while (ch == " ") {
        retValue = retValue.substring(1, retValue.length);
        ch = retValue.substring(0, 1);
    }
    ch = retValue.substring(retValue.length - 1, retValue.length);
    while (ch == " ") {
        retValue = retValue.substring(0, retValue.length - 1);
        ch = retValue.substring(retValue.length - 1, retValue.length);
    }
    while (retValue.indexOf("  ") != -1) {
        retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ") + 1, retValue.length);
    }
    return retValue;
}

function deliveryCheck(value) {

    if (value) {
        document.getElementById('txtDeliveryAddress1').value = document.getElementById('txtAddress1').value;
        document.getElementById('txtDeliveryAddress2').value = document.getElementById('txtAddress2').value;
        document.getElementById('txtDeliveryTownCity').value = document.getElementById('txtTownCity').value;
        document.getElementById('txtDeliveryCountyState').value = document.getElementById('txtCountyState').value;
        document.getElementById('txtDeliveryPostcode').value = document.getElementById('txtPostcode').value;
        document.getElementById('lstDeliveryCountry').value = document.getElementById('lstCountry').value;

        document.getElementById('txtDeliveryAddress1').disabled = true;
        document.getElementById('txtDeliveryAddress2').disabled = true;
        document.getElementById('txtDeliveryTownCity').disabled = true;
        document.getElementById('txtDeliveryCountyState').disabled = true;
        document.getElementById('txtDeliveryPostcode').disabled = true;
        document.getElementById('lstDeliveryCountry').disabled = true;
    }
    else {
        document.getElementById('txtDeliveryAddress1').disabled = false;
        document.getElementById('txtDeliveryAddress2').disabled = false;
        document.getElementById('txtDeliveryTownCity').disabled = false;
        document.getElementById('txtDeliveryCountyState').disabled = false;
        document.getElementById('txtDeliveryPostcode').disabled = false;
        document.getElementById('lstDeliveryCountry').disabled = false;
    }
    changeMandatoryFild("chkDeliverySame", 0, true);
}

function getElementByPartOfName(partOfName, tagName) {
    var a = new Array();
    a = document.getElementsByTagName(tagName);
    for (i = 0; i < a.length; i++) {
        if (((a[i].name != null) && (a[i].name.indexOf(partOfName) > -1)) ||
			((a[i].id != null) && ((a[i].id.indexOf(partOfName) > -1)))) {
            return a[i];
        }
    }
    return null;
} // function getElementByPartOfName(partOfName, tagName)

function deliveryCheckAddressDetails(value) {
    if (value) {
        document.getElementById('txtDeliveryAddress1').disabled = false;
        document.getElementById('txtDeliveryAddress2').disabled = false;
        document.getElementById('txtDeliveryTownCity').disabled = false;
        document.getElementById('txtDeliveryCountyState').disabled = false;
        document.getElementById('txtDeliveryPostcode').disabled = false;
        document.getElementById('lstDeliveryCountry').disabled = false;
    }
    else {
        document.getElementById('txtDeliveryAddress1').value = document.getElementById('txtAddress1').value;
        document.getElementById('txtDeliveryAddress2').value = document.getElementById('txtAddress2').value;
        document.getElementById('txtDeliveryTownCity').value = document.getElementById('txtTownCity').value;
        document.getElementById('txtDeliveryCountyState').value = document.getElementById('txtCountyState').value;
        document.getElementById('txtDeliveryPostcode').value = document.getElementById('txtPostcode').value;
        document.getElementById('lstDeliveryCountry').value = document.getElementById('lstCountry').value;

        document.getElementById('txtDeliveryAddress1').disabled = true;
        document.getElementById('txtDeliveryAddress2').disabled = true;
        document.getElementById('txtDeliveryTownCity').disabled = true;
        document.getElementById('txtDeliveryCountyState').disabled = true;
        document.getElementById('txtDeliveryPostcode').disabled = true;
        document.getElementById('lstDeliveryCountry').disabled = true;
    }
    changeMandatoryFild("chkDeliverySameAddress", 1, true);
}

function compare(obj1, obj2, message) {
    errorBorder(obj1.id, false);
    errorBorder(obj2.id, false);

    if ((obj1.value != obj2.value) || (obj1.value == '' && obj2.value == '')) {
        errorBorder(obj1.id, true);
        errorBorder(obj2.id, true);
        alert(message);
        return false;
    }
    else {
        return true;
    }
}

function openPopup(type, additional, path, photo) {
    if (path == null) path = "";
    else path = "StaticPages/";
    switch (type) {
        case "faq": window.open(path + 'Faq.aspx', 'FAQ', 'width=590,height=600,scrollbars=1,resize=no,top=100,left=200'); break;
        case "photofaq": window.open(path + 'PhotoFaq.aspx', 'PhotographyFAQ', 'width=590,height=600,scrollbars=1,resize=no,top=100,left=200'); break;
        case "language": window.open(path + 'SetLanguage.aspx', 'SetLanguage', 'width=200,height=100,scrollbars=1,resize=no,top=200,left=200'); break;
        case "terms": window.open(path + 'TermsConditions.aspx?photo=' + photo, 'TermsConditions', 'width=590,height=602,scrollbars=1,resize=no,top=100,left=200'); break;
        case "contact": window.open(path + 'ContactUs.aspx?photo=' + photo, 'ContactUs', 'width=540,height=260,scrollbars=1,resize=no,top=200,left=200'); break;
        case "privacy": window.open(path + 'PrivacyPolicy.aspx?photo=' + photo, 'PrivacyPolicy', 'width=590,height=600,scrollbars=1,resize=no,top=100,left=200'); break;
        case "primelineLegal": window.open(path + 'PrimelineLegal.aspx', 'PrimelineLegal', 'width=735,height=519,scrollbars=1,top=150,left=200'); break;
        case "QuestPrimeline": window.open(path + 'PrimeLine.aspx', 'QuestPrimeline', 'width=735,height=650,scrollbars=1,top=30,left=200'); break;
        case "passwordHelp": window.open(path + 'PasswordHelp.aspx', 'PasswordHelp', 'width=580,height=190,scrollbars=0,top=200,left=200'); break;
        case "primelineApply": break;
        case "headMeasurement": window.open(path + 'HeadMeasurement.aspx', 'HeadMeasurement', 'width=421,height=550,scrollbars=0,left=200,top=100'); break;
        case "buyhelp": window.open(path + 'BuyHelp.aspx', 'BuyHelp', 'width=535,height=410,scrollbars=0,left=200,top=200'); break;
        case "special": window.open(path + 'SpecialRequirements.aspx', 'SpecialRequirements', 'width=580,height=220,scrollbars=0,top=200,left=200'); break;
        case "basket": break;
        case "Decline": window.open(path + 'Decline.aspx', 'Decline', 'width=480,height=190,scrollbars=0,top=200,left=200'); break;
        case "processing": break;
        case "privacyPrimeline": window.open('http://www.primeline.co.uk/global_options.asp?id=PRIVACY', 'primelineLegal', 'width=770,height=500,scrollbars=1,top=200,left=200'); break;
        case "cambridgeGownOverride": window.open(path + 'CambridgeOverrideGown.aspx', 'CambridgeOverrideGown', 'width=210,height=40,scrollbars=0,status=0,top=300,left=400'); break;
        case "accessabilityKeys": window.open(path + 'AccessibilityAltKeysInformation.aspx', 'AccessibilityKeys', 'width=250,height=113,scrollbars=0,top=100,left=100'); break;
        case "accessibilityStatement": window.open(path + 'AccessibilityStatement.aspx', 'AccessibilityStatement', 'width=650,height=600,scrollbars=0,top=50,left=50'); break;
        case "accessibilityFeedback": window.open(path + 'AccessibilityFeedback.aspx', 'AccessibilityStatement', 'width=650,height=600,scrollbars=0,top=50,left=50'); break;

        default: break;
    }
}

function trimvalue(e) {
    var el = window.event ? window.event.srcElement : e.currentTarget;
    el.value = trim(el.value);
}

function attachuserevent() {
    if ("undefined" != typeof (msgTitle))
        document.title = msgTitle;
    RemoveAccessabilityUrl();
    for (var i = 0; oCurrForm = document.forms[i]; i++) {
        for (var j = 0; oCurrFormElem = oCurrForm.elements[j]; j++) {
            if (oCurrFormElem.isTextEdit) {
                if (oCurrFormElem.addEventListener) oCurrFormElem.addEventListener("blur", trimvalue, false);
                else if (oCurrFormElem.attachEvent) oCurrFormElem.attachEvent("onblur", trimvalue);
            }
        }
        if ("undefined" != typeof (txtCardNumber)) {
            document.getElementById(txtCardNumber).setAttribute('AUTOCOMPLETE', 'OFF');
            if ("undefined" != typeof (lstCardType))
                document.getElementById(lstCardType).focus();
        }
    }
}

function ConfirmExit() {
    var isExit;
    isExit = confirm(msgConfirmExit);
    return isExit;
}

function goBack() {
    history.go(goBackCount);
}

function SelectValidate() {
    if (document.getElementById('newUser').checked) {
        if (validateNew())
            __doPostBack('btnNext', '');
    }
    else {
        if (validateLogin())
            __doPostBack('btnNext', '');
    }
}

function getElementsByAttribute(tag, attribute) {
    var elements1 = document.getElementsByTagName(tag);
    var elements2 = new Array();
    for (var i = 0; i < elements1.length; i++) {
        if (elements1[i].getAttribute(attribute) != null) {
            elements2.push(elements1[i]);
        }
    }
    return elements2;
}

////   Validation functions
function validate() {
    errorMessageArray = new Array();
    errorIdArray = new Array();
    var toFocus = true;
    if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
        theform = document.forms["Form1"];
    }
    else {
        theform = document.Form1;
    }
    for (var i = 0; i < theform.length; i++) {
        if (typeof (theform[i].getAttribute("lang")) != "object"
				&& theform[i].getAttribute("lang") != ""
				&& theform[i].disabled == false
				) {
            errorBorder(theform[i].id, false);
            var mode = theform[i].getAttribute("lang");
            var func = theform[i].getAttribute("function");
            var defaultMessage = theform[i].getAttribute("message");
            var value;
            var optionLength = 0;
            if (theform[i].type != "checkbox") {
                if (theform[i].type == "select-one") {
                    optionLength = theform[i].options.length;
                }
                value = theform[i].value;
            }
            else value = theform[i].checked;

            var name = theform[i].getAttribute("name");

            var nameSplit = name.split(':');
            name = nameSplit[nameSplit.length - 1];
            if (!checkInput(value, mode, optionLength, func)) {
                if (name.length > 0) {
                    var message = "msg" + name.substr(3, name.length);
                    if (null != defaultMessage)
                        message = defaultMessage;
                    if ((name == "txtPostcode") || (name == "txtDeliveryPostcode"))
                        if (document.getElementById(name).value.length > 0)
                        message = "msgWrongFormatOrLess4"
                    if (name == "txtPhoneNumber")
                        if (document.getElementById(name).value.length > 0) {
                        message = "msgPhoneNumberNotCorrect";
                    }
                    if (name == "txtYearOfDegree")
                        if (document.getElementById(name).value.length > 0) {
                        message = "msgYearOfDegreeNotCorrect";
                    }
                    try {
                        eval(message);
                    }
                    catch (ex) {
                        message = "msgGenericError";
                    }
                    errorMessageArray.push(message);

                    errorIdArray.push(theform[i].id);
                    if (toFocus && theform[i].getAttribute("type") != "hidden") {
                        theform[i].focus();
                        toFocus = false;
                    }
                }
            }
        }
    }

    if (errorIdArray.length > 0) {

        for (var j = 0; j < errorIdArray.length; j++) {
            errorBorder(errorIdArray[j], true);
        }
        var globalMessage = "";
        for (var j = 0; j < errorMessageArray.length; j++) {
            globalMessage += eval(errorMessageArray[j]) + "\r\n";
        }
        alert(globalMessage);
        return false;
    }
    else {
        return true;
    }
}

function errorBorder(id, error) {
    var obj;
    if (document.getElementById(id) != null)
        obj = document.getElementById(id);
    else if (id != null && id.type != "string")
        obj = id;

    if (obj != null &&
		obj.type != null &&
		obj.type != "checkbox" &&
		obj.type != "radio"
		) {
        if (error) {
            obj.style.border = "1px solid red";
            obj.style.color = "red";
        }
        else {
            obj.style.border = "1px solid #ccc";
            obj.style.color = "black";
        }
    }
}

function checkInput(value, type, optionLength, func) {
    var toReturn;
    switch (type) {
        case "characterNonMandatory":
            toReturn = !isComma(value);
            break;
        case "character":
            toReturn = !isComma(value) && !isBlank(value)
            break;
        case "number":
            toReturn = isInteger(value);
            break;
        case "numberMand":
            toReturn = isIntegerMand(value);
            break;
        case "emailNonMandatory":
            toReturn = isEmailNonMandatory(value);
            break;
        case "email":
            toReturn = isEmail(value);
            break;
        case "password":
            toReturn = !isBlank(value)
            break;
        case "dropdown":
            toReturn = indexZero(value, optionLength);
            break;
        case "checkbox":
            toReturn = value;
            break;
        case "phoneNumber":
            toReturn = isPhone(value);
            break;
        case "phoneNumberMand":
            toReturn = isPhone(value) && !isBlank(value);
            break;
        case "phoneNumberMandOxford":
            toReturn = isPhoneOxford(value) && !isBlank(value);
            break;
        case "function":
            if (typeof (validatorArray[func]) != "undefined")
                toReturn = validatorArray[func]();
            else
                toReturn = true;
            break;
        case "PostCode":
            toReturn = isPostcode(value);
            break;
        case "characterWithComma":
            toReturn = !isBlank(value);
            break;
        case "issueNbr":
            toReturn = isIssueNumber(value);
        default: break;
    }
    return toReturn;
}

function isIssueNumber(val) {
    if (val.match(/^([0-9]{0,2})$/) == null) {
        return false;
    }
    else {
        return true;
    }
}

function alphaNumericCheck(theChar) {

    if ((theChar < 48) || (theChar > 122) || ((theChar > 57) && (theChar < 65)) || ((theChar > 90) && (theChar < 97)))
        return false;
    else
        return true;
}

function isPostcode(val) {
    var space = 0;
    for (var i = 0; i < val.length; i++) {
        if (!alphaNumericCheck(val.charCodeAt(i)) && val.charAt(i) != " ")
            return false;
        if (val.charAt(i) == " ")
            space++;
    }
    if ((val.length - space) >= 4)
        return true;
    else
        return false;
}

function isPhone(val) {
    for (var i = 0; i < val.length; i++) {
        if (!isDigit(val.charAt(i)) && val.charAt(i) != " " && val.charAt(i) != "+")
            return false;
    }
    return true;
}

function isPhoneOxford(val) {
    for (var i = 0; i < val.length; i++) {
        if (!isDigit(val.charAt(i))
				&& val.charAt(i) != " "
				&& val.charAt(i) != "+"
				&& val.charAt(i) != "("
				&& val.charAt(i) != ")"
				&& val.charAt(i) != "."
				)
            return false;
    }
    return true;
}

function indexZero(val, optionLength) {

    if (val == "")
        return false;
    else if (val == 0 && optionLength > 1)
        return false;
    else
        return true;
}
function isBlank(val) {
    if (val == null) { return true; }
    for (var i = 0; i < val.length; i++) {
        if ((val.charAt(i) != ' ')
			&& (val.charAt(i) != "\t")
			&& (val.charAt(i) != "\n")
			&& (val.charAt(i) != "\r"))
        { return false; }
    }
    return true;
}

function isInteger(val) {
    for (var i = 0; i < val.length; i++) {
        if (!isDigit(val.charAt(i))) { return false; }
    }
    return true;
}
function isIntegerMand(val) {
    if (isBlank(val)) { return false; }
    for (var i = 0; i < val.length; i++) {
        if (!isDigit(val.charAt(i))) { return false; }
    }
    return true;
}

function isDigit(num) {

    var string = "1234567890";
    if (string.indexOf(num) != -1) { return true; }
    return false;
}
function isEmail(val) {
    if (val.match(/^\w+((-\w+)|(\.\w+)|(\'\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]{1,4}$/) == null || isBlank(val)) {
        return false;
    }
    else {
        return true;
    }
}
function isEmailNonMandatory(val) {
    if (val.match(/^(\w([-._\w']*\w)*@(\w[-_\w]*\w\.)+\w{2,9})$/) == null && !isBlank(val)) {
        return false;
    }
    else {
        return true;
    }
}
function isComma(val) {
    if (val == null) { return true; }
    var j = 0;
    for (var i = 0; i < val.length; i++) {
        if (val.charAt(i) == ",")
            return true;
        else
            j++;
    }
    if (j == val.length)
        return false;
}

// End of Validation functions

function IsBrowserNetscape() {
    return (window.navigator.appName.toLowerCase().indexOf("netscape") > -1);
}

function IsBrowserIE() {
    return (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1);
}

function showImage(img, alt) {
    WinId = window.open('', 'Po', 'resizable=yes,width=675,height=675,top=10,left=100');
    var Text = '';
    Text += "<html><head><title>" + alt + "</title></head><body style=\"overflow:hidden;\"><img src=\"" + img + "\" width='655px' height='650px' border=\"0\" alt=\"" + alt + "\"></body></html>";
    WinId.document.open();
    WinId.document.write(Text);
    WinId.document.close();
}

function fnCheckNumber(obj) {

    if (obj.value.length != 0) {
        if (!obj.value.match(/^\d+$/) || obj.value == 0) {    
            errorBorder(obj.id, true);
            alert(msgIncorrectQuantity);
            obj.focus();
            return false;
        }
        errorBorder(obj.id, false);

    }
    errorBorder(obj.id, false);

}

function fnCheckNumberRemoveZero(obj) {

    if (obj.value.length != 0) {
        if (!obj.value.match(/^\d+$/)) {
            errorBorder(obj.id, true);
            alert(msgIncorrectQuantity);
            obj.focus();
            return false;
        }
        if (obj.value == 0) {
            obj.value = '';
        }
        errorBorder(obj.id, false);
    }
    errorBorder(obj.id, false);
}

function getListFromArray(ev) {
    try {
        var ddl;
        if (IsBrowserNetscape()) {
            ddl = ev.target;
        }
        else {
            ddl = ev.srcElement;
        }

        var r = eval(ddl.value);
        var rText = eval(ddl.value + '_txt');

        var controlID = ddl.id;

        //Selecting another datasource for child DDL
        var nextControlID = getNextControlID(controlID);
        var ddlTC = document.getElementById(nextControlID);
        //clear DDL
        while (ddlTC.length > 0) {
            ddlTC.remove(0);
        }
        //Adjusting new items to DDL
        for (var i = 0; i < r.length; i++) {
            var oOption = document.createElement("OPTION");

            if (IsBrowserNetscape()) {
                ddlTC.add(oOption, null);
            }
            if (IsBrowserIE()) {
                ddlTC.options.add(oOption);
            }

            oOption.innerHTML = rText[i];
            oOption.value = r[i];
        }

        //Firing "onchange" event to nested DDLs to renew their values;
        //For next DDL and the next Array (the first element of current array)
        if (IsBrowserNetscape()) {
            var evt = document.createEvent("HTMLEvents");
            evt.initEvent("change", true, false);
            ddlTC.dispatchEvent(evt);
        }
        if (IsBrowserIE()) {
            ddlTC.fireEvent("onchange");
        }
    }
    catch (e) { }
}

function getNextControlID(currentControlID) {
    for (var i = 0; i < DDLNames.length - 1; i++) {
        if (DDLNames[i] == currentControlID) {
            return DDLNames[i + 1];
        }
    }

    return null;
}

function setPrice(ev) {
    var ddl;
    if (IsBrowserNetscape()) {
        ddl = ev.target;
    }
    if (IsBrowserIE()) {
        ddl = ev.srcElement;
    }

    var productID = ddl.value;

    var priceLabelControl = document.getElementById(priceLabel);

    for (var i = 0; i < ProductPrices.length; i++) {
        if (ProductPrices[i][0] == productID) {
            priceLabelControl.innerHTML = ProductPrices[i][1];
            document.getElementById(hdnProductID).value = ProductPrices[i][0];
            return;
        }
    }
}

function $() {
    var elements = new Array();
    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == 'string')
            element = document.getElementById(element);
        if (arguments.length == 1)
            return element;
        elements.push(element);
    }
    return elements;
}

function changeMandatoryFild(name, control, firstTime) {
    if (document.getElementById("lstCountry").value == 74) {
        document.getElementById("asterix1").style.display = "";
        document.getElementById("txtPostcode").setAttribute("lang", "PostCode");
    }
    else {
        document.getElementById("txtPostcode").removeAttribute("lang");
        document.getElementById("asterix1").style.display = "none";
    }
    if (control == 1)
        var checkedValue = true;
    else
        if (control == 0)
        var checkedValue = false;
    if (document.getElementById(name) != undefined) {
        if (checkedValue)
            var tmp = document.getElementById(name).checked;
        else
            var tmp = !document.getElementById(name).checked;
        if (document.getElementById(name) != null && document.getElementById(name) != undefined && tmp) {
            if (document.getElementById("lstDeliveryCountry").value == 74) {
                document.getElementById("asterix2").style.display = "";
                document.getElementById("txtDeliveryPostcode").setAttribute("lang", "PostCode");
            }
            else {
                document.getElementById("txtDeliveryPostcode").removeAttribute("lang");
                document.getElementById("asterix2").style.display = "none";
            }
        }
        if (firstTime) {
            if (document.getElementById("lstDeliveryCountry").value == 74) {
                document.getElementById("asterix2").style.display = "";
                document.getElementById("txtDeliveryPostcode").setAttribute("lang", "PostCode");
            }
            else {
                document.getElementById("txtDeliveryPostcode").removeAttribute("lang");
                document.getElementById("asterix2").style.display = "none";
            }
        }
    }

}
function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}

function fnCheckQuantity(controlToCheck) {
    while (controlToCheck.value.charAt(0) == '0') {
        controlToCheck.value = controlToCheck.value.slice(1);
    }
    var regex = /^\d+$/;
    if (controlToCheck.value.match(regex)) {
        errorBorder(controlToCheck, false)
        return true;
    }
    else {
        errorBorder(controlToCheck, true)
        alert(msgIncorrectQuantity);
        return false;
    }
}

/* ------------------- Accessability manipulations ----------------------------------- */
function RemoveAccessabilityUrl() {
    var links = GetAccessabilityLinks();
    for (var i = 0; i < links.length; i++) {
        if ("1" == links[i].getAttribute('accesskey')) {
            links[i].setAttribute("href", "#");
        }
    }
}

function GetAccessabilityLinks() {
    return getElementsByAttribute("a", "accesskey");
}
/* ------------------- END Of Accessability Manipulation ------------------------------*/

//----------------------------------OnKeyDownFunctionNotEvent----------------------------

function OnKeyDownFunctionNotEvent(e) {

    if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
        if (e.which == 13) {
            return false;
        }

    }
    else {
        if (window.event.keyCode == 13) {
            event.returnValue = false;
            event.cancel = true;
        }

    }
}
//----------------------------------OnKeyDownFunctionNotEvent----------------------------
// creates the xmlhttp object and starts the load of the xml document
function GetXMLFrom(sSrc) {
    var xmlHttp = XmlHttp.create();
    xmlHttp.open("GET", sSrc, true); // async
    xmlHttp.send(null);
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.responseXML) {
                document.getElementById('itemlist').innerHTML = xmlHttp.responseXML.xml;
                d1 = new SelectableElements(document.getElementById("div-1"), true);
                d1.onchange = function() {
                    var text = d1.getSelectedIndexes().toString();
                }
            }
            else document.getElementById('itemlist').innerHTML = '';

        }
    };
}

function GetHTMLFrom(URL) {
    var xmlContainer = document.getElementById("ContainerDownload");
    if (xmlContainer) {
        document.body.removeChild(xmlContainer);
    }
    var xmlContainer = document.createElement("IFRAME");
    xmlContainer.name = "ContainerDownload";
    xmlContainer.id = "ContainerDownload";
    xmlContainer.style.display = "none";
    document.body.appendChild(xmlContainer);
    xmlContainer.src = URL;
}

function parseHTMLResponse(html) {
    document.getElementById('itemlist').innerHTML = html;
    d1 = new SelectableElements(document.getElementById("div-1"), true);
}


function getDomDocumentPrefix() {
    if (getDomDocumentPrefix.prefix)
        return getDomDocumentPrefix.prefix;

    var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
    var o;
    for (var i = 0; i < prefixes.length; i++) {
        try {
            o = new ActiveXObject(prefixes[i] + ".DomDocument");
            return getDomDocumentPrefix.prefix = prefixes[i];
        }
        catch (ex) { };
    }

    throw new Error("Could not find an installed XML parser");
}

function getXmlHttpPrefix() {
    if (getXmlHttpPrefix.prefix)
        return getXmlHttpPrefix.prefix;

    var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
    var o;
    for (var i = 0; i < prefixes.length; i++) {
        try {
            o = new ActiveXObject(prefixes[i] + ".XmlHttp");
            return getXmlHttpPrefix.prefix = prefixes[i];
        }
        catch (ex) { };
    }

    throw new Error("Could not find an installed XML parser");
}

function XmlHttp() { }
XmlHttp.create = function() {
    try {
        if (window.XMLHttpRequest) {
            var req = new XMLHttpRequest();
            if (req.readyState == null) {
                req.readyState = 1;
                req.addEventListener("load", function() {
                    req.readyState = 4;
                    if (typeof req.onreadystatechange == "function")
                        req.onreadystatechange();
                }, false);
            }

            return req;
        }
        if (window.ActiveXObject) {
            return new ActiveXObject(getXmlHttpPrefix() + ".XmlHttp");
        }
    }
    catch (ex) { }
    throw new Error("Your browser does not support XmlHttp objects");
};

function XmlDocument() { }

XmlDocument.create = function() {
    try {
        if (document.implementation && document.implementation.createDocument) {
            var doc = document.implementation.createDocument("", "", null);

            if (doc.readyState == null) {
                doc.readyState = 1;
                doc.addEventListener("load", function() {
                    doc.readyState = 4;
                    if (typeof doc.onreadystatechange == "function")
                        doc.onreadystatechange();
                }, false);
            }

            return doc;
        }
        if (window.ActiveXObject)
            return new ActiveXObject(getDomDocumentPrefix() + ".DomDocument");
    }
    catch (ex) { }
    throw new Error("Your browser does not support XmlDocument objects");
};
if (window.DOMParser &&
	window.XMLSerializer &&
	window.Node && Node.prototype && Node.prototype.__defineGetter__) {
    XMLDocument.prototype.loadXML =
	Document.prototype.loadXML = function(s) {
	    var doc2 = (new DOMParser()).parseFromString(s, "text/xml");
	    while (this.hasChildNodes())
	        this.removeChild(this.lastChild);
	    for (var i = 0; i < doc2.childNodes.length; i++) {
	        this.appendChild(this.importNode(doc2.childNodes[i], true));
	    }
	};

    XMLDocument.prototype.__defineGetter__("xml", function() {
        return (new XMLSerializer()).serializeToString(this);
    });
    Document.prototype.__defineGetter__("xml", function() {
        return (new XMLSerializer()).serializeToString(this);
    });
}