 String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function changeInputType(oldObject, oType) {
    var newObject = document.createElement('input');
    newObject.type = oType;
    if (oldObject.size) newObject.size = oldObject.size;
    if (oldObject.value) newObject.value = oldObject.value;
    if (oldObject.name) newObject.name = oldObject.name;
    if (oldObject.id) newObject.id = oldObject.id;
    if (oldObject.className) newObject.className = oldObject.className;
    if (oldObject.onfocus) newObject.onfocus = oldObject.onfocus;
    if (oldObject.onblur) newObject.onblur = oldObject.onblur;
    oldObject.parentNode.replaceChild(newObject, oldObject);
    return newObject;
}

var usernameDefaultValue = "Username...";
var passwordDefaultValue = "Password...";

function usernameOnFocus() {
    var usernameCtrl = document.getElementById("username");
    if (usernameCtrl.value.toString() == usernameDefaultValue) {
        usernameCtrl.value = "";
    }
}

function usernameOnBlur() {
    var usernameCtrl = document.getElementById("username");
    if (usernameCtrl.value.toString().trim().length == 0) {
        usernameCtrl.value = usernameDefaultValue;
    }
}

function passwordOnFocus() {
    var passwordCtrl = document.getElementById("password");
    if (passwordCtrl.value.toString() == passwordDefaultValue) {
        passwordCtrl.value = "";
        try {
            passwordCtrl.type = "password";
        }
        catch(e) {
            passwordCtrl = changeInputType(passwordCtrl, "password");
        }
        passwordCtrl.select();
        passwordCtrl.focus();
    }
}

function passwordOnBlur() {
    var passwordCtrl = document.getElementById("password");
    if (passwordCtrl.value.toString().trim().length == 0) {
        passwordCtrl.value = passwordDefaultValue;
        try {
            passwordCtrl.type = "text";
        }
        catch(e) {
            changeInputType(passwordCtrl, "text");
        }
    }
}

function usernameOnLoad() {
    var usernameCtrl = document.getElementById("username");
    usernameCtrl.value = usernameDefaultValue;
    usernameCtrl.onfocus = usernameOnFocus;
    usernameCtrl.onblur = usernameOnBlur;
}

function passwordOnLoad() {
    var passwordCtrl = document.getElementById("password");
    passwordCtrl.value = passwordDefaultValue;
    passwordCtrl.onfocus = passwordOnFocus;
    passwordCtrl.onblur = passwordOnBlur;

    try {
        passwordCtrl.type = "text";
    }
    catch(e) {
        changeInputType(passwordCtrl, "text");
    }
}

function setupAuthForm() {
    usernameOnLoad();
    passwordOnLoad();
}

