// JavaScript Document
YAHOO.namespace('YAHOO.MW');
dom = YAHOO.util.Dom;
evnt = YAHOO.util.Event;

inDoc = function (eID) {
    return dom.inDocument(eID);
}

var isIE = YAHOO.env.ua.ie;
isAgent = window.navigator.userAgent.indexOf;

function $(eID) {
    return (!eID) ? null : document.getElementById(eID);
}

byClass = dom.getElementsByClassName;
addClass = dom.addClass;
removeClass = dom.removeClass;
replaceClass = dom.replaceClass;

var show = function (elementId) {
    if (inDoc(elementId)) {
        $(elementId).style.visibility = "visible";
        $(elementId).style.display = "block";
    }
}

var hide = function (elementId) {
    if (inDoc(elementId)) {
        $(elementId).style.visibility = "hidden";
        $(elementId).style.display = "none";
    }
}

var easeInContent = function (elementId, elementContent) {
    if (inDoc(elementId)) {
        if (!isIE) { //no animation for IE because of the integration of png files
            var contentAnim = new YAHOO.util.Anim(elementId, {
                opacity: {
                    from: 1,
                    to: 0
                }
            }, 1, YAHOO.util.Easing.easeOut);
            var tmpNewNode;
            contentAnim.onComplete.subscribe(function () { //subscribed funtion for content change
                $(elementId).innerHTML = elementContent;

                //implement fade on changed content
                var innerContentAnim = new YAHOO.util.Anim(elementId, {
                    opacity: {
                        from: 0,
                        to: 1
                    }
                }, 1, YAHOO.util.Easing.easeOut);
                innerContentAnim.animate();
            });
            contentAnim.animate();
        } else {
            $(elementId).innerHTML = elementContent;
        }
    }
}




var easeIn = function (elementID) {
    if (inDoc(elementID)) {
        $(elementID).opacity = 0;
        show(elementID);
        var contentAnim = new YAHOO.util.Anim(elementID, {
            opacity: {
                from: 0,
                to: 1
            }
        }, 1, YAHOO.util.Easing.easeOut);
        contentAnim.animate();
    }
}


var easeOut = function (elementID) {
    if (inDoc(elementID)) {
        $(elementID).opacity = 1;
        var contentAnim = new YAHOO.util.Anim(elementID, {
            opacity: {
                from: 1,
                to: 0
            }
        }, 1, YAHOO.util.Easing.easeOut);
        contentAnim.animate();
        hide(elementID);
    }
}

var easeOutIn = function (elementId1, elementId2) {
    if (inDoc(elementId1) && inDoc(elementId2)) {
        //if (!isIE) { //no animation for IE because of the integration of png files
        var contentAnim = new YAHOO.util.Anim(elementId1, {
            opacity: {
                from: 1,
                to: 0
            }
        }, 1, YAHOO.util.Easing.easeOut);

        var tmpNewNode;
        contentAnim.onComplete.subscribe(function () { //subscribed funtion for content change
            hide(elementId1);
            $(elementId2).opacity = 0;
            show(elementId2);

            //implement fade on changed content
            var innerContentAnim = new YAHOO.util.Anim(elementId2, {
                opacity: {
                    from: 0,
                    to: 1
                }
            }, 1, YAHOO.util.Easing.easeOut);
            innerContentAnim.animate();
        });
        contentAnim.animate();
/*}
		else {
			hide(elementId1);
			show(elementId2);
		}*/
    }
}

YAHOO.MW.main = function () {
    var username_holder = ' Username';
    var password_holder = ' Password';

    var focused_username = false;
    var focused_password = false;

    var holdUsernameValue = function (e) {
        evnt.stopEvent(e);
        if (e.type == 'focus') {
            if (!focused_username) {
                $('loginUsername').value = '';
                focused_username = true;
            }
        } else {
            var iValue = $('loginUsername').value;
            if ((iValue == '') || (iValue == username_holder)) {
                $('loginUsername').value = username_holder;
                focused_username = false;
            }
        }
    }

    var holdPasswordValue = function (e) {
        evnt.stopEvent(e);

/*
        $('loginPassword').type = 'password';
        if (e.type == 'focus') {
                $('loginPassword').value = '';
        } 
		*/
        if (e.type == 'focus') {
            if (!focused_password) {
                if ($('loginPassword').value == password_holder) {
                    $('loginPassword').type = 'password';
                    $('loginPassword').value = '';
                    focused_password = true;
                }
            }
        } else {
            var iValue = $('loginPassword').value;

            if (iValue == '') {
                $('loginPassword').type = 'text';
                $('loginPassword').value = password_holder;
                focused_password = false;
            }

        }
    }


    var validateLogin = function () {
        var username = $('loginUsername').value;
        var password = $('loginPassword').value;
        var missinginfo = "";

        if ($('loginUsername').value == '') {
            missinginfo += "\n -Enter Username";
        }

        if ($('loginPassword').value == '') {
            missinginfo += "\n -Enter Password";
        }

        if (missinginfo != "") {
            missinginfo = "_____________________________\n" + missinginfo + "\n_____________________________" + "\nPlease re-enter and Login again!";
            alert(missinginfo);
            return false;
        } else {
            if ($('loginRememberChk').checked) toMem($('frmSignIn'));

            return true;
        }
    }

    var loginSubmit = function (ev) {
        evnt.stopEvent(ev);
        if (validateLogin()) {
            $('frmSignIn').submit();
            //alert('LOGIN');
        }
    }

    /******************************************
     *	Forgot password page
     ******************************************/

    var validateForgot = function () {
        var username = $('username');
        var email = $('emailID');

        //alert('validateForgot');
        var missinginfo = "";

        if ($('rbPass').checked == true) {
            if (username.value == '') {
                missinginfo += "\n -Enter Username";
                username.focus();
                error = true;
            } else if (!validInput(username.value)) {
                missinginfo += "\n -Invalid Characters in Username.";
                username.focus();
                error = true;
            } else {
                error = false;
            }
        }


        if ($('rbUser').checked == true) {
            if ((email.value == "") || (email.value.indexOf('@') == -1) || (email.value.indexOf('.') == -1)) {
                email.focus();
                error = true;
                missinginfo += "\n -Please Enter a valid Email address.";
            } else {
                error = false;
            }

        }


        if (missinginfo != "") {
            missinginfo = "_____________________________\n" + missinginfo + "\n_____________________________" + "\nPlease re-enter and Login again!";
            alert(missinginfo);
            return false;
        } else
        return true;
    }

    var forgotSubmit = function (ev) {
        evnt.stopEvent(ev);
        if (validateForgot()) {
            $('frmForgot').submit();
        }
    }

    setRBUser = function () {
        $('rbUser').checked = true;
        $('rbPass').checked = false;
        changetoUser();
    }

    setRBPass = function () {
        $('rbPass').checked = true;
        $('rbUser').checked = false;
        changetoPass();
    }

    changetoPass = function () {
        //$('frmForgot').username.focus();
        easeOut('forgotUser');
        easeIn('forgotPass');
        //$('frmForgot').btnForgot.value='Email me my Password';
        $('frmForgot').action.value = '1';
    }

    changetoUser = function () {
        //$('frmForgot').emailID.focus();
        easeOut('forgotPass');
        easeIn('forgotUser');
        //$('frmForgot').btnForgot.value='Email me my Username(s)';
        $('frmForgot').action.value = '2';
    }
    /******************************************
     *	END forgot password
     ******************************************/

    var validateAdminLogin = function () {
        var returnValue = false;
        if ($('adminUsername').value == '') {
            missinginfo += "\n -Enter Username";
        }

        if ($('adminPassword').value == '') {
            missinginfo += "\n -Enter Password";
        }

        if (missinginfo != "") {
            missinginfo = "_____________________________\n" + missinginfo + "\n_____________________________" + "\nPlease re-enter and Login again!";
            alert(missinginfo);
            returnValue = false;
        } else {
            returnValue = true;
        }

        return returnValue;
    }
    var adminLoginSubmit = function (ev) {
        evnt.stopEvent(ev);
        if (validateAdminLogin) {
            $('frmAdminLogin').submit();
            //alert('LOGIN');
        }
    }


    /******************************************
     *	Cookies
     ******************************************/

    newCookie = function (name, value, days) {
        var days = 1; // the number at the left reflects the number of days for the cookie to last
        // modify it according to your needs
        if (days) {
            var date = new Date();
            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
            var expires = "; expires=" + date.toGMTString();
        } else
        var expires = "";
        document.cookie = name + "=" + value + expires + "; path=/";
    }

    readCookie = function (name) {
        var nameSG = name + "=";
        var nuller = '';
        if (document.cookie.indexOf(nameSG) == -1) return nuller;

        var ca = document.cookie.split(';');
        for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') c = c.substring(1, c.length);
            if (c.indexOf(nameSG) == 0) return c.substring(nameSG.length, c.length);
        }
        return null;
    }

    eraseCookie = function (name) {
        newCookie(name, "", 1);
    }

    toMem = function (a) {
        newCookie('MWuser', encode_cookie($('loginUsername').value));
        newCookie('MWpass', encode_cookie($('loginPassword').value));
    }

    delMem = function (a) {
        eraseCookie('MWuser');
        eraseCookie('MWpass');
        // reset values
        $('loginUsername').value = username_holder;
        $('loginPassword').value = password_holder;
    }

    /******************************************
     *	END Cookies
     ******************************************/


    /******************************************
     *	Slogans
     ******************************************/

    timedRefresh = function (timeoutPeriod) {
        //alert('hello');
        setTimeout(function () {
            swapSlogans();
        }, timeoutPeriod);
    }

    swapSlogans = function () {
        timedRefresh(5000);
        //show('slogan1');
        if ($('slogan1').style.display == 'block') {
            easeOutIn('slogan1', 'slogan2');
            //easeOut('slogan1');
            //easeIn('slogan2');
        } else if ($('slogan2').style.display == 'block') {
            easeOutIn('slogan2', 'slogan3');
            //easeOut('slogan2');
            //easeIn('slogan3');
        } else if ($('slogan3').style.display == 'block') {
            //easeOut('slogan3');
            //easeIn('slogan1');
            easeOutIn('slogan3', 'slogan1');
        } else {
            hide('slogan1');
            hide('slogan2');
            hide('slogan3');
            easeIn('slogan1');
        }
    }


    /******************************************
     *	END Slogans
     ******************************************/


    return {
        init: function () {

            if (inDoc('loginUsername')) {

                if (readCookie("MWuser") != "") {
                    $('loginUsername').value = decode_cookie(readCookie("MWuser"));
                } else {
                    $('loginUsername').value = username_holder;
                }

                evnt.addListener('loginUsername', 'focus', holdUsernameValue);
                evnt.addListener('loginUsername', 'blur', holdUsernameValue);

                $('loginUsername').blur();


                evnt.addListener('loginUsername', 'keydown', function (e) {
                    if (e.keyCode == 13) {
                        loginSubmit(e);
                    }
                });
            }

            if (inDoc('loginPassword')) {
                if (readCookie("MWpass") != "") {
                    $('loginPassword').value = decode_cookie(readCookie("MWpass"));
                } else {
                    $('loginPassword').value = password_holder;
                    $('loginPassword').type = 'text';
                }

                evnt.addListener('loginPassword', 'focus', holdPasswordValue);
                evnt.addListener('loginPassword', 'blur', holdPasswordValue);

                evnt.addListener('loginPassword', 'keydown', function (e) {
                    if (e.keyCode == 13) {
                        loginSubmit(e);
                    }
                });
            }

            if (inDoc('btnLogin')) {
                evnt.addListener('btnLogin', 'click', loginSubmit);
            }

            if (inDoc('btnForgot')) {
                evnt.addListener('btnForgot', 'click', forgotSubmit);
            }
            if (inDoc('btnAdminLogin')) {
                evnt.addListener('btnAdminLogin', 'click', adminLoginSubmit);
            }
            if (inDoc('hero-text')) {
                if (isIE) {
                    show('slogan1');
                    show('slogan2');
                    hide('slogan3');
                } else {
                    swapSlogans();
                }
            }
        }
    };
}();
evnt.onAvailable("header", YAHOO.MW.main.init);
