﻿function $n(element) {
    if (arguments.length > 1) {
        for (var i = 0, elements = [], length = arguments.length; i < length; i++)
            elements.push($n(arguments[i]));
        return elements;
    }
    if (typeof element == 'string') {
        var el = document.getElementById(element);
        if (el)
            return el;
    }
    else
        return element;

    var regExp = new RegExp('_' + element + '$');
    var formsLength = document.forms.length;
    for (var i = 0; i < formsLength; i++) {
        var form = document.forms[i];
        var elementsLength = form.elements.length;
        for (var j = 0; j < elementsLength; j++) {
            element = form.elements[j];
            if (element.id && element.id.match(regExp))
                return element;
        }
    }

    //try divs
    var divs = document.getElementsByTagName('div');
    for (var i = 0; i < divs.length; i++) {
        var element = divs[i];
        if (element.id && element.id.match(regExp))
            return element;
    }

    //try images
    var imagesLength = document.images.length;
    for (var i = 0; i < imagesLength; i++) {
        element = document.images[i];
        if (element.id && element.id.match(regExp))
            return element;
    }

    //try inputs
    var inputs = document.getElementsByTagName('input');
    for (var i = 0; i < inputs.length; i++) {
        var element = inputs[i];
        if (element.id && element.id.match(regExp))
            return element;
    }

    //try selects
    var selects = document.getElementsByTagName('select');
    for (var i = 0; i < selects.length; i++) {
        var element = selects[i];
        if (element.id && element.id.match(regExp))
            return element;
    }

    //try a
    var a = document.getElementsByTagName('a');
    for (var i = 0; i < a.length; i++) {
        var element = a[i];
        if (element.id && element.id.match(regExp))
            return element;
    }

    //try tr's
    var trs = document.getElementsByTagName('tr');
    for (var i = 0; i < trs.length; i++) {
        var element = trs[i];
        if (element.id && element.id.match(regExp))
            return element;
    }

    //try iframes
    var ifr = document.getElementsByTagName('iframe');
    for (var i = 0; i < ifr.length; i++) {
        var element = ifr[i];
        if (element.id && element.id.match(regExp))
            return element;
    }



    return null;
}

function removeLastComma(str) {
    return str.replace(/,$/, "");
}

function removeLastCommaAndSpace(str) {
    return str.replace(/, $/, "");
}

/*
function DropdownCheckBoxClick(type) {
    var combo = $find("ctl00_maincontent_ddptypes" + type);
    //var checkboxlist = $get("ctl00_cpSubBody_ddptypes" + type + "_i0_cblptypes" + type).getElementsByTagName("td");
    var text = "";
    var values = "";
    var hid = $n("ptypes" + type);

    /*
    for (var i = 0; i < checkboxlist.length; i++) {
        if (checkboxlist[i].firstChild.checked) {
            text += checkboxlist[i].lastChild.innerHTML + ", ";
            values += (i + 1) + ",";
        }
    }
    
    //remove the last comma from the string
    text = removeLastCommaAndSpace(text);
    values = removeLastComma(values);

    if (text.length > 0) {
        //set the text of the combobox
        combo.set_text(text);
        hid.value = values;
    }
    else {
        //all checkboxes are unchecked
        //so reset the controls
        //combo.set_text("Any");
        hid.value = "";
    }
}
*/

/*
name - name of the cookie
value - value of the cookie
[expires] - expiration date of the cookie
(defaults to end of current session)
[path] - path for which the cookie is valid
(defaults to path of calling document)
[domain] - domain for which the cookie is valid
(defaults to domain of calling document)
[secure] - Boolean value indicating if the cookie transmission requires
a secure transmission
* an argument defaults when it is assigned null as a placeholder
* a null placeholder is not required for trailing omitted arguments
*/

function setCookie(name, value, expires, path, domain, secure) {
    var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
    document.cookie = curCookie;
}



function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else
        begin += 2;
    var end = document.cookie.indexOf(";", begin);
    if (end == -1)
        end = dc.length;
    return unescape(dc.substring(begin + prefix.length, end));
}


function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}