var EToolsBar = function() {    
    this.init();
}
EToolsBar.prototype = {
    
    overCurrent: false,
    overTools: false,
    ebusinessDomain: "https://ecprod.cn.ca",
    serviceURL: "/rw2/FavouriteTools/service/",
    mainMenuStr: "MainMenu",
    
    init: function() {
        var formEl = YAHOO.util.Dom.get("login_form");
        if (!formEl) {
            return;
        }
        this.ebusinessDomain = formEl.action.substring(0, formEl.action.indexOf("/", 8));
        this.mainMenuURL = this.ebusinessDomain + "/velocity/" + this.mainMenuStr + "/HTML/" + lang.langTxt + "/main_menu_frameset.html";
        
        if (window.location.href.indexOf("ebusiness-logout") != -1 || window.location.href.indexOf("ebusiness-session-timeout") != -1) {
            UserMgr.logout();
        }        
        
        this.initDropdown();
        if (UserMgr.isLoggedIn()) {
            this.removeLoggedOutFields();
            this.addLoggedInFields();
            this.loadName();
        }
        else {
            this.addFormValidation();
            this.initUsernameField();
            this.initPasswordField();        
        }        
    },
    
    initDropdown: function() {
        var select = YAHOO.util.Dom.get("etools_dropdown");
        if (select) {
            var rowEl = select.parentNode.parentNode;
            if (rowEl) {
                var cells = rowEl.getElementsByTagName('td');
                rowEl.removeChild(cells[1]);
                rowEl.removeChild(cells[0]);
            }
        }
    },
       
    addFormValidation: function() { 
        var formEl = YAHOO.util.Dom.get("login_form");       
        YAHOO.util.Event.on(formEl, "submit", function(e) {
            // Donald Camacho May 08 2011
            // AAR/DR code to protect secure site
            //alert ("Please try later"); if (e && e.preventDefault) e.preventDefault(); return false;

            var usernameEl = YAHOO.util.Dom.get("login_username"), passwordEl = YAHOO.util.Dom.get("login_password");
            if (!usernameEl || usernameEl.value == "" || !passwordEl || passwordEl.value == "") {
                YAHOO.util.Event.stopEvent(e);
                alert(lang.eTools.missingUsernameOrPasswordTxt);
                return;
            }
        usernameEl.value=usernameEl.value.replace(/^\s+|\s+$/g, ''); //dlc remove leading and trailing spaces
        passwordEl.value=passwordEl.value.replace(/^\s+|\s+$/g, ''); //dlc from username and password 
            if (UserMgr.getUsername() != usernameEl.value) {
                UserMgr.setUsername(usernameEl.value); 
                UserMgr.deleteId();
                UserMgr.deleteTools();
            }
            // omniture tracking
            var s=s_gi(s_account);
            s.linkTrackVars = "eVar7,events";
            s.linkTrackEvents = "event6,event19";
            s.eVar7="Login";
            s.events="event6,event19";
            s.tl(true,"o","Login");  
        });
    },
    
    initUsernameField: function() {
        var usernameEl = document.getElementById("login_username");
        
        var username = UserMgr.getUsername();
        if (username) {
            usernameEl.value = username;
        }
        
        this.initTextField(usernameEl, lang.eTools.usernameImage);
    },
    
    initPasswordField: function() {
        this.initTextField(document.getElementById("login_password"), lang.eTools.passwordImage);
    },
    
    initTextField: function(field, bgImage) {    
        // if field does not exist, then there is nothing to do
        if( !field ) {
            return;
        }        
        // remove label
        var parent = field.parentNode;
        while( parent.className != "field" ) {
            parent = parent.parentNode;
        }
        YAHOO.util.Dom.setStyle(parent, "position", "relative");
        YAHOO.util.Dom.setStyle(parent, "overflow", "hidden");
        
        var labels = parent.getElementsByTagName("label");
        for(var i = 0; i < labels.length; i++) {
            YAHOO.util.Dom.setStyle(labels[i], "position", "absolute");
            YAHOO.util.Dom.setStyle(labels[i], "left", "100px");
        }
        // set background image
        YAHOO.util.Event.onDOMReady(function() {
            if( field.value == "" ) {
                YAHOO.util.Dom.setStyle(field, "backgroundImage", "url(" + bgImage + ")");
            }
        });
        
        var checkPasswordFieldOn = false;
        var checkPasswordField = function() {
            var passwordEl = YAHOO.util.Dom.get("login_password");
            if (passwordEl && passwordEl.value != "") {
                YAHOO.util.Dom.setStyle(passwordEl, "backgroundImage", "none");
            }
            
            if (checkPasswordFieldOn) {
                setTimeout(checkPasswordField, 50);
            }
        };
        
        // add listeners to password field        
        YAHOO.util.Event.addListener(field, "focus", function() {        
            YAHOO.util.Dom.setStyle(field, "backgroundImage", "none");
            checkPasswordFieldOn = true;
            checkPasswordField();
        });
        YAHOO.util.Event.addListener(field, "blur", function() {
            if (field.value == "") {
                YAHOO.util.Dom.setStyle(field, "backgroundImage", "url(" + bgImage + ")");
            }
            
            checkPasswordFieldOn = false;
        });
    },   
    
    removeLoggedOutFields: function() {
        var containerEl = YAHOO.util.Dom.get("login_container");
        var tdEls = containerEl.getElementsByTagName("td");        
        for(var i = tdEls.length - 1; i >= 0; i--) {
            tdEls[i].parentNode.removeChild(tdEls[i]);
        }
    },
    
    addLoggedInFields: function() {
        var containerEl = YAHOO.util.Dom.get("login_container");
        var trEl, tdEl, listEl, itemEl, linkEl;
        
        trEl = containerEl.getElementsByTagName("tr")[0];
        
        tdEl = document.createElement("td");
        YAHOO.util.Dom.addClass(tdEl, "greeting");
        trEl.appendChild(tdEl);
        tdEl = document.createElement("td");
        YAHOO.util.Dom.addClass(tdEl, "options");
        trEl.appendChild(tdEl);
        listEl = document.createElement("ul");
        YAHOO.util.Dom.addClass(listEl, "horizontal_list");
        tdEl.appendChild(listEl);
        
        // create return to tools link
        itemEl = document.createElement("li");
        listEl.appendChild(itemEl);
        
        linkEl = document.createElement("a");
        linkEl.id = "overlay_context";
        if (self != top) {
            linkEl.href = this.ebusinessDomain + "/velocity/common/html/" + lang.langTxt + "/mainmenu/cn_static.html";
        }
        else {
            linkEl.href = this.mainMenuURL;
        }
        linkEl.innerHTML = lang.eTools.toolsTxt;
        itemEl.appendChild(linkEl);
        
        // create logoff link
        itemEl = document.createElement("li");
        listEl.appendChild(itemEl);
        
        linkEl = document.createElement("a");
        linkEl.id = "logoff_button";
        linkEl.href = this.ebusinessDomain + "/velocity/" + this.mainMenuStr + "/" + lang.langTxt + "/Common_Logoff";
        linkEl.innerHTML = "<strong>" + lang.eTools.logoutTxt + "</strong>";
        itemEl.appendChild(linkEl);        
    },
        
    loadName: function() {
        if (UserMgr.isLoggedIn() && UserMgr.hasName()) {
            var containerEl = YAHOO.util.Dom.get("login_container");
            var tdEl = YAHOO.util.Dom.getElementsByClassName("greeting", "td", containerEl)[0];
                        
            tdEl.innerHTML = lang.eTools.greetingTxt + UserMgr.getName();   
        }        
    }
        
}
new EToolsBar();
