function mainFunc() {
    var previousCombo;
    if (!document.getElementById && !document.createTextNode) { return; }
    for (var lightOrDark = 0; lightOrDark < 2; lightOrDark++) {

        // Classes for the link and the visible dropdown
        var ts_selectclass = 'turnintodropdown' + lightOrDark; 	// class to identify selects

        var ts_boxclass = 'dropcontainer' + lightOrDark; 		// parent element
        var ts_triggeronDark = 'activetrigger1'; 		// class for the active trigger link
        var ts_triggeronLight = 'activetrigger0'; 		// class for the active trigger link
        var ts_triggeroffDark = 'trigger1'; 		// class for the inactive trigger link
        var ts_triggeroffLight = 'trigger0'; 		// class for the inactive trigger link
        var ts_dropdownclosedDark = 'dropdownhidden1'; // closed dropdown
        var ts_dropdownclosedLight = 'dropdownhidden0'; // closed dropdown
        var ts_dropdownopenDark = 'dropdownvisible1'; // open dropdown
        var ts_dropdownopenLight = 'dropdownvisible0'; // open dropdown
        /*
        Turn all selects into DOM dropdowns
        */
        var count = 0;
        var toreplace = new Array();
        var sels = document.getElementsByTagName('select');
        for (var i = 0; i < sels.length; i++) {
            if (ts_check(sels[i], ts_selectclass)) {
                var hiddenfield = document.createElement('input');
                hiddenfield.name = sels[i].name;
                hiddenfield.type = 'hidden';
                hiddenfield.id = sels[i].id;
                hiddenfield.value = sels[i].options[sels[i].selectedIndex].value;
                sels[i].parentNode.insertBefore(hiddenfield, sels[i])
                trigger = document.createElement('a');
                if (lightOrDark == 0) {
                    ts_addclass(trigger, ts_triggeroffLight);
                }
                else {
                    ts_addclass(trigger, ts_triggeroffDark);
                }
                if ((location.href.indexOf("?") < 0 || hiddenfield.id == "language"))
                    trigger.style.color = "#99cc00";
                if (hiddenfield.id.length>5 && hiddenfield.id.substring(0,6) == "market") {
                    trigger.style.color = "#4f7065";
                    trigger.style.fontSize = "11px";
                    trigger.style.fontWeight = "bold";
                }
                if ((location.href.indexOf("newAccount") >= 0) && (lightOrDark == 1)) {
                    trigger.style.padding = "5 0 0 10px";
                }
                if (((location.href.indexOf("comboSearch") >= 0) || (location.href.indexOf("techniques") >= 0) || (location.href.indexOf("categories") >= 0)) && (lightOrDark == 0)) {
                    trigger.style.padding = "5px 0 0 15px"
                    trigger.style.margin = "0 0 0 15px"
                }
                trigger.href = '#';
                if (lightOrDark == 0) {
                    trigger.onclick = function () {
                        if ((previousCombo != null) && (previousCombo != this)) {
                            ts_swapclass(previousCombo, ts_triggeroffLight, ts_triggeronLight, true)
                            ts_swapclass(previousCombo.parentNode.getElementsByTagName('ul')[0], ts_dropdownclosedLight, ts_dropdownopenLight, true);
                        }
                        previousCombo = this;
                        ts_swapclass(this, ts_triggeroffLight, ts_triggeronLight)
                        ts_swapclass(this.parentNode.getElementsByTagName('ul')[0], ts_dropdownclosedLight, ts_dropdownopenLight);
                        return false;
                    }
                }
                else {
                    trigger.onclick = function () {
                        if ((previousCombo != null) && (previousCombo != this)) {
                            ts_swapclass(previousCombo, ts_triggeroffDark, ts_triggeronDark, true)
                            ts_swapclass(previousCombo.parentNode.getElementsByTagName('ul')[0], ts_dropdownclosedDark, ts_dropdownopenDark, true);
                        }
                        previousCombo = this;
                        ts_swapclass(this, ts_triggeroffDark, ts_triggeronDark)
                        ts_swapclass(this.parentNode.getElementsByTagName('ul')[0], ts_dropdownclosedDark, ts_dropdownopenDark);
                        return false;
                    }
                }
                trigger.appendChild(document.createTextNode(sels[i].options[sels[i].selectedIndex].text));
                sels[i].parentNode.insertBefore(trigger, sels[i]);
                var replaceUL = document.createElement('ul');
                if (hiddenfield.id != "language") {
                    replaceUL.style.margin = "0";
                }
                if ((location.href.indexOf("newPublisher") >= 0 || location.href.indexOf("newTemplate") >= 0) && hiddenfield.id != "language") {
                    trigger.style.width = replaceUL.style.width = "155px";
                }
                replaceUL.style.overflowY = "scroll"
                replaceUL.style.height = "100px"
                for (var j = 0; j < sels[i].getElementsByTagName('option').length; j++) {
                    var newli = document.createElement('li');
                    var newa = document.createElement('a');
                    if ((location.href.indexOf("newPublisher") >= 0 || location.href.indexOf("newTemplate") >= 0) && hiddenfield.id != "language") {
                        newa.style.width = newli.style.width = "143px";
                    }
                    if (hiddenfield.id.length>5 && hiddenfield.id.substring(0,6) == "market") 
                        newa.style.fontSize=16;
                    newli.v = sels[i].getElementsByTagName('option')[j].value;
                    newli.elm = hiddenfield;
                    newli.istrigger = trigger;
                    newa.href = '#';
                    if (location.href.indexOf("?") < 0 || hiddenfield.id == "language" || location.href.indexOf("page=2027") > 0 || location.href.indexOf("acquire.asp") >= 0)
                        newa.style.color = "#99cc00";
                    newa.appendChild(document.createTextNode(
					sels[i].getElementsByTagName('option')[j].text));
                    if (lightOrDark == 0) {
                        newli.onclick = function () {
                            this.elm.value = this.v;
                            ts_swapclass(this.istrigger, ts_triggeronLight, ts_triggeroffLight);
                            ts_swapclass(this.parentNode, ts_dropdownopenLight, ts_dropdownclosedLight)
                            this.istrigger.firstChild.nodeValue = this.firstChild.firstChild.nodeValue;
                            if (this.elm.id == "language") {
                                document.formLanguage.submit();
                            }
                            else if (this.elm.id.length>5 && this.elm.id.substring(0,6) == "market") {
                                document.forms["form" + this.elm.id].submit();
                            }
                            if (this.elm.id == "keywordsselect") {
                                if (document.form1.keywords.value == "")
                                    document.form1.keywords.value += this.v;
                                else
                                    document.form1.keywords.value += ("," + this.v);
                            }
                            if ((location.href.indexOf("newPublisher") >= 0 || location.href.indexOf("newTemplate") >= 0))
                                emailAs_change();
                            return false;
                        }
                    }
                    else {
                        newli.onclick = function () {
                            this.elm.value = this.v;
                            ts_swapclass(this.istrigger, ts_triggeronDark, ts_triggeroffDark);
                            ts_swapclass(this.parentNode, ts_dropdownopenDark, ts_dropdownclosedDark)
                            this.istrigger.firstChild.nodeValue = this.firstChild.firstChild.nodeValue;
                            if (this.elm.id == "keywordsselect")
                                if (document.form1.keywords.value == "")
                                    document.form1.keywords.value += this.v;
                                else
                                    document.form1.keywords.value += ("," + this.v);
                            return false;
                        }
                    }
                    newli.appendChild(newa);
                    replaceUL.appendChild(newli);
                }
                if (lightOrDark == 0) {
                    ts_addclass(replaceUL, ts_dropdownclosedLight);
                }
                else {
                    ts_addclass(replaceUL, ts_dropdownclosedDark);
                }
                var div = document.createElement('div');
                if (location.href.indexOf("profile") >= 0) {
                    div.style.margin = "0 0 0 -10px"
                }
                div.appendChild(replaceUL);
                ts_addclass(div, ts_boxclass);
                sels[i].parentNode.insertBefore(div, sels[i])
                toreplace[count] = sels[i];
                count++;
            }
        }
        for (i = 0; i < count; i++) {
            toreplace[i].parentNode.removeChild(toreplace[i]);
        }
    }
    function ts_check(o, c) {
        return new RegExp('\\b' + c + '\\b').test(o.className);
    }
    function ts_swapclass(o, c1, c2, flag) {
        if ((flag == true) && ((o.className == "dropdownvisible0") || (o.className == "dropdownvisible1"))) {
            var cn = o.className;
            o.className = !ts_check(o, c1) ? cn.replace(c2, c1) : cn.replace(c1, c2);
        }
        else
            if (!flag) {
                var cn = o.className;
                o.className = !ts_check(o, c1) ? cn.replace(c2, c1) : cn.replace(c1, c2);
            }
    }
    function ts_addclass(o, c) {
        if (!ts_check(o, c)) { o.className += o.className == '' ? c : ' ' + c; }
    }
}

window.onload = function () {
    mainFunc();
    // add more functions if necessary
}

