﻿function LoginUser(userNameClientId,passwordClientId,url,checkBoxId) {
    var username = document.getElementById(userNameClientId);
    var password = document.getElementById(passwordClientId);
    var rememberMe = document.getElementById(checkBoxId);
    if (ValidateLogin(username, password)) {
        if (rememberMe.checked) {
            Set_Cookie('uid', username.value,10000, '/', '', '');
        }
        else {
            Set_Cookie('uid', '', '', '/', '', '');
        }
        CreateForm(username, password, url);
    }
    return false;
}

function ValidateLogin(Uname, Pass) {
    var isPageValid = false;

    if (Uname.value != 'host') {
        if (typeof (Page_ClientValidate) == 'function') {
            isPageValid = Page_ClientValidate('validateLogin');
        }
    }
    else {
        if (Pass.value.length == 0) {
            alert('Password field is required.');
            Pass.focus();
            isPageValid = false;
        }
        else {
            isPageValid = true;
        }
    }
    
    return isPageValid;
}

function CreateForm(username, password,url) {
    var form = document.createElement('form');
    form.setAttribute('method', 'post');
    form.setAttribute('target', '_blank');
    form.setAttribute('action', url);
    var hiddenFieldUserName = document.createElement('input');
    var hiddenFieldPassword = document.createElement('input');
    hiddenFieldUserName.setAttribute('id', 'username');
    hiddenFieldUserName.setAttribute('name', 'username');
    hiddenFieldUserName.setAttribute('type', 'hidden');
    hiddenFieldUserName.setAttribute('value', username.value);
    hiddenFieldPassword.setAttribute('id', 'password');
    hiddenFieldPassword.setAttribute('name', 'password');
    hiddenFieldPassword.setAttribute('type', 'hidden');
    hiddenFieldPassword.setAttribute('value', password.value);
    //username.value = '';
    password.value = '';
    form.appendChild(hiddenFieldUserName);
    form.appendChild(hiddenFieldPassword);
    document.body.appendChild(form);
    form.submit();
    document.body.removeChild(form);
}

function Set_Cookie(name, value, expires, path, domain, secure) {
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime(today.getTime());
    /*
    if the expires variable is set, make the correct
    expires time, the current script below will set
    it for x number of days, to make it for hours,
    delete * 24, for minutes, delete * 60 * 24
    */
    if (expires) {
        expires = expires * 1000 * 60 * 60 * 24;
    }

    var expires_date = new Date(today.getTime() + (expires));
    document.cookie = name + "=" + escape(value) +
            ((expires) ? ";expires=" + expires_date.toGMTString() : "") +
            ((path) ? ";path=" + path : "") +
            ((domain) ? ";domain=" + domain : "") +
            ((secure) ? ";secure" : "");
}



// this fixes an issue with the old method, ambiguous values
// with this test document.cookie.indexOf( name + "=" );
function Get_Cookie(check_name) {
    // first we'll split this cookie up into name/value pairs
    // note: document.cookie only returns name=value, not the other components
    var a_all_cookies = document.cookie.split(';');
    var a_temp_cookie = '';
    var cookie_name = '';
    var cookie_value = '';
    var b_cookie_found = false; // set boolean t/f default f

    for (i = 0; i < a_all_cookies.length; i++) {
        // now we'll split apart each name=value pair
        a_temp_cookie = a_all_cookies[i].split('=');


        // and trim left/right whitespace while we're at it
        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

        // if the extracted name matches passed check_name
        if (cookie_name == check_name) {
            b_cookie_found = true;
            // we need to handle case where cookie has no value but exists (no = sign, that is):
            if (a_temp_cookie.length > 1) {
                cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, ''));
            }
            // note that in cases where cookie is initialized but no value, null is returned
            return cookie_value;
            break;
        }
        a_temp_cookie = null;
        cookie_name = '';
    }
    if (!b_cookie_found) {
        return null;
    }
}

