﻿function selectReplacement(obj) {
    // append a class to the select
    obj.className += ' replaced';
    // create list for styling
    var ul = document.createElement('ul');
    ul.className = 'selectReplacement';
    var opts = obj.options;
    for (var i = 0; i < opts.length; i++) {
        var selectedOpt;
        if (opts[i].selected) {
            selectedOpt = i;
            break;
        } else {
            selectedOpt = 0;
        }
    }
    for (var i = 0; i < opts.length; i++) {
        var li = document.createElement('li');
        var txt = document.createTextNode(opts[i].text);
        li.appendChild(txt);
        li.selIndex = opts[i].index;
        li.selectID = obj.id;
        li.onclick = function () {
            selectMe(this);
        }
        if (i == selectedOpt) {
            li.className = 'selected';
            li.onclick = function () {
                this.parentNode.className += ' selectOpen';
                this.onclick = function () {
                    selectMe(this);
                }
            }
        }
        if (window.attachEvent) {
            li.onmouseover = function () {
                this.className += ' hover';
            }
            li.onmouseout = function () {
                this.className =
              this.className.replace(new RegExp(" hover\\b"), '');
            }
        }
        ul.appendChild(li);
    }
    // add the input and the ul
    obj.parentNode.appendChild(ul);
}

function selectMe(obj) {
    var lis = obj.parentNode.getElementsByTagName('li');
    for (var i = 0; i < lis.length; i++) {
        if (lis[i] != obj) { // not the selected list item
            lis[i].className = '';
            lis[i].onclick = function () {
                selectMe(this);
            }
        } else {
            setSelectVal(obj.selectID, obj.selIndex);
            obj.className = 'selected';
            obj.parentNode.className =
            obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
            obj.onclick = function () {
                obj.parentNode.className += ' selectOpen';
                this.onclick = function () {
                    selectMe(this);
                }
            }
        }
    }
}

function setSelectVal(objID, selIndex) {
    var obj = document.getElementById(objID);
    obj.selectedIndex = selIndex;
}

function setSelectsOnForm() {
    var s = document.getElementsByTagName('select');
    for (var i = 0; i < s.length; i++) {
        selectReplacement(s[i]);
    }
}

function closeSel(obj) {
    // close the ul
}

window.onload = function () {
    var IE7 = (navigator.appVersion.indexOf('MSIE 7.')==-1) ? false : true;
    if (!IE7)
        (document.all && !window.print) ? null : setSelectsOnForm();
}

function validateForm() {
    $("#frmSAWMain").validate({
                            rules: {
                                username: { required: true, minlength: 6 },
                                password: { required: true, minlength: 6 },
                                email: { required: true, email: true },
                                age: "required",
                                zip: "required",
                                cpassword: { required: true, equalTo: "#password" },
                                terms: { required: true, TermsOfService: "true" }
                                },
                            errorLabelContainer: "#validator-errors",
                            wrapper: "li",
                            messages: {
                                username: { minlength: "Username must be at least 6 characters.",
                                            required: "A username is required.",},
                                email: { required: "Your email address is required.",},
                                password: { minlength: "Password must be at least 6 characters.",
                                            required: "A password is required.",},
                                cpassword: {equalTo: "Your passwords do not match.",
                                            required: "Please confirm your password.",},
                                age: {required: "Your age is required."},
                                zip: {required: "Your zip code is required."},
                                terms: {required: "You must read and agree to the terms and conditions."}
                            },
                        });
}
