var btnLogin;
var txtCustomerId;
var txtPassword;
var leftOffset = 355;
var topOffset = 40;
window.onload = function() {
    initializeVariables();
    attachEvents();
    initializeView();
}

function attachEvents() {
    Event.observe(document, "click", document_onClick);
    if (navigator.appVersion.indexOf("MSIE") == -1) {
        Event.observe(document, "keypress", document_onKeyPress);
        Event.observe(txtCustomerId, "keypress", formElement_onKeyPress);
        Event.observe(txtPassword, "keypress", formElement_onKeyPress);
    }
    else
        Event.observe(document, "keydown", document_onKeyDown);
        
    Event.observe(document, "keyup", document_onKeyUp);  
    
    Event.observe(document,"mouseover", document_onChange);
    
    Event.observe($("spCBubble"),"mouseover", spCBubble_onMouseOver);
    Event.observe($("spCBubble"),"mouseout", spCBubble_onMouseOut);
}

function initializeVariables() {
    var aInputs = $$("input");
    var oInput;
    var sId;
    for (var iInput = 0; iInput < aInputs.length; iInput++) {
        oInput = aInputs[iInput];
        sId = oInput.identify();
        if (sId.indexOf("txtCustomerId") != -1)
            txtCustomerId = oInput;
        else if (sId.indexOf("txtPassword") != -1)
            txtPassword = oInput;
        else if (sId.indexOf("btnSubmit") != -1)
            btnLogin = oInput;
    }
}

function document_onClick(event) {
    var oElement = Event.element(event);
    if (oElement.match("a")) {
        Page_ValidationActive = false;
    }
}


function document_onChange(event)
{
    if(!btnLogin.disabled) return;
    var bDisabled = false;
    var oPage_Validator;
    for (var iPage_Validator = 0; iPage_Validator < Page_Validators.length; iPage_Validator++) {
        oPage_Validator = Page_Validators[iPage_Validator];
        if (oPage_Validator.id.indexOf("Required") != -1) {
            ValidatorValidate(oPage_Validator);
            if (!oPage_Validator.isvalid) {
                bDisabled = true;
                break;
            }
        }
    }
    
    //btnLogin.disabled = bDisabled;
    btnLogin.disabled = false;
}

function document_onKeyDown(event) {
    var iKeyCode = event.which ? event.which : event.keyCode;
    if (iKeyCode == 13) {
        var oElement = Event.element(event);
        if (oElement == txtCustomerId || oElement == txtPassword) {
            Event.stop(event);
            btnLogin.click();
        }
        else
            Page_ValidationActive = false;
    }
}

function document_onKeyPress(event) {
    Page_ValidationActive = false;
}

function document_onKeyUp(event) {
    var oElement = Event.element(event);
    if (oElement == txtCustomerId || oElement == txtPassword) {
        var bDisabled = false;
        var oPage_Validator;
        for (var iPage_Validator = 0; iPage_Validator < Page_Validators.length; iPage_Validator++) {
            oPage_Validator = Page_Validators[iPage_Validator];
            if (oPage_Validator.id.indexOf("Required") != -1) {
                ValidatorValidate(oPage_Validator);
                if (!oPage_Validator.isvalid) {
                    bDisabled = true;
                    break;
                }
            }
        }
        
        //change to bDisabled to enable javascript switch
        btnLogin.disabled = false;
    }
}

function formElement_onKeyPress(event) {
    var iKeyCode = event.which;
    if (iKeyCode == 13) {
        Event.stop(event);
        var oElement = Event.element(event);
        if (oElement == txtPassword && oElement.value.length > 0) {
            btnLogin.click();
        }
    }
}

function initializeView() {
	//btnLogin.disabled = txtCustomerId.value.length == 0 && txtPassword.value.length == 0;
	btnLogin.disabled = false;
}

function spCBubble_onMouseOver(event) {
	var oElement = Event.element(event);
	var oParentPositioning, oScrollOffsets, iLeft, iTop;
	if (oElement.match("span#spCBubble")) {
		oParentPositioning = $("support_container").cumulativeOffset();
		oScrollOffsets = document.viewport.getScrollOffsets();
		iLeft = event.clientX - oParentPositioning.left + oScrollOffsets.left - leftOffset;
		iTop = event.clientY - oParentPositioning.top + oScrollOffsets.top - topOffset;  
		
		var oMoreInfoBubble = $("noteBubble");
		oMoreInfoBubble.setStyle({left: iLeft + "px", top: iTop + "px"});
		oMoreInfoBubble.removeClassName("hidden");
	}
}

function spCBubble_onMouseOut(event) {
	var oElement = Event.element(event);
	if (oElement.match("span#spCBubble")) {
		$("noteBubble").addClassName("hidden");
	}
}