﻿/*
 *  Login.js
 *  Copyright © 2007 Mangrove Software Inc. 
 *
 *  Author:     Zac McCormick
 *  Created:    Jan 24, 2007
 */

function toggleAdvancedSettings() {
    var table  = document.getElementById('adv-settings');
    var anchor = document.getElementById('adv-settings-link');
    
    if (table && anchor) {
        anchor.advState = anchor.advState || 'block';
        table.style.display = anchor.advState;
        
        if (anchor.advState == 'block') {
            anchor.advState = 'none';
            anchor.innerHTML = 'Hide Settings';
        } else {
            anchor.advState = 'block';
            anchor.innerHTML = 'Show Settings';
        }

        setServerSettingsVisible(anchor.advState != 'block');
    }
}

function textBoxOver(element) {
    element.style.border = '1px solid #222';
    element.style.padding = '2px';
}

function textBoxOut(element) {
    element.style.border = '1px solid #a5acb2';
    element.style.padding = '2px';
}

function textBoxFocus(element) {
    element.style.border = '1px solid #222';
    element.style.backgroundColor = '#e7ecf4';
    element.style.padding = '2px';
}

function textBoxBlur(element) {
    element.style.border = '1px solid #a5acb2';
    element.style.backgroundColor = '';
    element.style.padding = '2px';
} 

function onWindowLoad() {

    var hideServerSettings = $('hideServerSettings')
    if (hideServerSettings)
        setServerSettingsVisible(hideServerSettings.value == '0');
      
      
    var showServerSettings = $('showServerSettings')
    if (showServerSettings)
        setServerSettingsVisible(showServerSettings.value == '1');
         
    var input = document.getElementById('txtUserName');
    
    if (input) {
        if (input.value.length > 1)
            document.getElementById('txtPassword').focus();
        else input.focus();
    }
    
    
    if (isServerSettingsVisible()) {
        toggleAdvancedSettings();
    }
    
    if (input.value.length > 0 && $('employeeRole').options.length > 0) {
        var bookmarkLink = $('bookmark-link');
        
        if (MSIE) {
            bookmarkLink.innerHTML = 'Add Favorite';
        } else {
            bookmarkLink.innerHTML = 'Add Bookmark';
        }
        
        bookmarkLink.style.color = '#555';
        bookmarkLink.style.textDecoration = 'none';
        bookmarkLink.style.fontSize = '7pt';
        bookmarkLink.style.position = 'absolute';
        bookmarkLink.style.right = '10px';
        bookmarkLink.style.bottom = '-5px';
        bookmarkLink.style.display = 'block';
    }
}


$addLoadEvent(onWindowLoad);




// 12.19.2006
// modified by: zmc
// changes:
//  - rewrote all functions so they use W3C standard methods/properties instead of IE-specific ones
//  - see bottom of file for old code

function body_onload() {

}

function showTermsAndConditions() {
    var opts = 'height=450, width=600, status=yes, toolbar=no, menubar=no, location=no, resizable=yes, scrollbars=yes';
    var url = '../legal/license.html';
    
    window.open(url, 'TermsAndConditions', opts);
}

function ShowNewScreen(url) {
    var opts = "height=450,width=600,status=yes,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes";
    var w = window.open( url, "License", opts );
    w.focus();
}


function stopEvent(event) {
    event = event || window.event;
    
    // IE doesn't use the standard W3C event model
	if (window.ActiveXObject) {
	    event.cancelBubble = true;
	    event.returnValue = false;
	} else {
	    event.stopPropagation();
	    event.preventDefault();
	}
}

function btnLogin_click(event) {
    var emp = document.getElementById('txtUserName');
    
    if (!emp || emp.value.length < 1) {
        alert('Please enter an Employee Number or Email Address before trying to login.');
        stopEvent(event);
        return false;
    }
    
    var box = document.getElementById('checkTerms');
    
    if (!box.checked) {
		window.alert("You must agree to this Website's Usage Terms and Conditions before proceeding.");
		stopEvent(event);
		return false;
    } else {
        box.checked = true;
    }
    
    if (document.getElementById('txtPassword').value == '') {
        alert("Please provide a password before proceeding.");
        stopEvent(event);
        return false;
    }
    
    if (document.getElementById('showCaptcha').value == '1' && document.getElementById('txtSecurityCheck').value.length == 0) {
        alert("Please enter the Security Check characters before proceeding.");
        stopEvent(event);
        return false;
    }
    
    
    //if (document.getElementById('txtServerName').value.length == 0) {
    //    alert("Please enter a Server Name before proceeding.");
    //    stopEvent(event);
    //    return false;
    //}
    
    if (document.getElementById('txtServiceID') && document.getElementById('txtServiceID').value.length == 0) {
        alert("Please enter a Service ID before proceeding.");
        stopEvent(event);
        return false;
    }
    
    if (document.getElementById('txtClientCode') && document.getElementById('txtClientCode').value.length == 0) {
        alert("Please enter a Client Code before proceeding.");
        stopEvent(event);
        return false;
    }
    
    if (document.getElementById('employeeRole') && document.getElementById('employeeRole').selectedIndex < 0) {
        alert('Please select a role before attempting to login.');
        stopEvent(event);
        return false;
    }
}


function updateRoles_click(event, element) {
    var emp = document.getElementById('txtUserName');
    
    if (!emp || emp.value.length < 1) {
        alert('Please enter an Employee Number or Email Address before trying to login.');
        stopEvent(event);
        return false;
    }
    
    //if (document.getElementById('txtServerName').value.length == 0) {
    //    alert("Please enter a Server Name before proceeding.");
    //    stopEvent(event);
    //    return false;
    //}
    
    if (document.getElementById('txtServiceID') && document.getElementById('txtServiceID').value.length == 0) {
        alert("Please enter a Service ID before proceeding.");
        stopEvent(event);
        return false;
    }
    
    if (document.getElementById('txtServiceID') && document.getElementById('txtServiceID').value.length != 5) {
        alert("Service ID must be 5 characters.");
        stopEvent(event);
        return false;
    }
    
    if (document.getElementById('txtClientCode') && document.getElementById('txtClientCode').value.length == 0) {
        alert("Please enter a Client Code before proceeding.");
        stopEvent(event);
        return false;
    }
}

function body_onkeypress(event) {
    event = event || window.event;
    
    if (event.keyCode == 13) {
        document.getElementById('btnLogin').click();
        
        stopEvent(event);
        
        return false;
    }
}



function setServerSettingsVisible(on) {//30days
    Cookie.set('ShowServerSettings', on ? 'true' : 'false', new Date((new Date()).getTime() + 30*24*60*60*1000));
}

function isServerSettingsVisible() {
    return (Cookie.get('ShowServerSettings') == 'true' ? true : false);
}

function forgotPassword() {
    window.location = '../SysForms/ForgotPassword.aspx?login=priv';
}


function changePassword() {
    window.location = '../SysForms/ChangePassword.aspx?login=priv';
}

function createNewAccount() {
    window.location = '../SysForms/CreateAccount.aspx';
}


function createBookmark(title, url) { 
    if (window.sidebar) { 	
        window.sidebar.addPanel(title, url, '');	
    } else if (window.external) {
        window.external.AddFavorite(url, title); 
    }
}


function createLoginBookmark(title) {
    var url = window.location.href.toString();
    
    if (url.indexOf('?') > -1) {
        url = url.substring(0, url.indexOf('?'));
    }
    
    url += '?sid=' + encodeURIComponent($('txtServiceID').value) + '&client=' + encodeURIComponent($('txtClientCode').value) + '&user=' + encodeURIComponent($('txtUserName').value);

    try {
        if (navigator.userAgent.toLowerCase().indexOf('safari') > -1) {
            var buttonString = navigator.userAgent.toLowerCase().indexOf('mac') > -1 ? 'Command' : 'CTRL';
            
            alert('To bookmark this page in Safari or Google Chrome, press ' + buttonString + '+D after clicking OK.');
            
            window.location = url;
        } else {
            if (confirm('This will add your personalized login URL to your browser\'s ' + (MSIE ? 'favorites' : 'bookmarks') + '.\n\nHere is your login URL:\n\n' + url + '\n\nAre you sure you want to do this?')) {
                createBookmark(title, url);
            }
        }
    } catch (ex) {
    }
}


function setUpperCase(event, element) {
    element.value = element.value.toUpperCase();
}