﻿String.prototype.trim = function () 
{
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

var loginSuccessful = false;

function validateEmail(str)
{
    var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1)
	{
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	{
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	{
	    return false
	}

	 if (str.indexOf(at,(lat+1))!=-1)
	 {
	    return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	 {
	    return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1)
	 {
	    return false
	 }
	
	 if (str.indexOf(" ")!=-1)
	 {
	    return false
	 }

	 return true		
}

function OnTextFieldKeyUp(fieldName)
{
    $("#divLoginError").html("");
}

function ValidateLoginForm()
{
    // user name
    $("#divLoginError").html("");
    var isEmailValid = document.getElementById("userfield_Username").value.length > 0;
    if (!isEmailValid) 
    {
        $("#divLoginError").html("Please enter your user name/email");
        return;
    }
    else
    {
        isEmailValid = isEmailValid && validateEmail(document.getElementById("userfield_Username").value.trim())
        if (!isEmailValid)
        {
             $("#divLoginError").html("Please enter valid email address");
             return;
        }
    }
    
    // last name
    var isPasswordValid = document.getElementById("userfield_Password").value.length > 0;
    if (!isPasswordValid) 
    {
       $("#divLoginError").html("Please enter your password");
       return;
    }
    
   if (isEmailValid && isPasswordValid)
   {
        AuthenticateUser(document.getElementById("userfield_Username").value.trim(), document.getElementById("userfield_Password").value.trim());
   }
}


function onLoginFormKeyDown(e)
{
    var keynum;
    var keychar;
    var numcheck;

    if(window.event) // IE
    {
        keynum = e.keyCode;
    }
    else if(e.which) // Netscape/Firefox/Opera
    {
      keynum = e.which;
    }
    if (keynum == 13)
    {
     ValidateLoginForm();
    }
}

function AuthenticateUser(userName, password) 
{
    var url = "AuthenticateUser.aspx?userName="+userName + "&password=" + password;
	req = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
	if(req) {
		req.onreadystatechange = OnAuthenticateUserCompleted;
		req.open("GET", url, true);
		req.send("");
	}
}

function OnAuthenticateUserCompleted() 
{
    if (req.readyState == 4) 
    {
        // only if "OK"
        if (req.status == 200) 
        {
            if (req.responseText== "true")
            {
                var formIndex = document.forms.length - 1;
                document.forms[formIndex].submit();
            }
            else
            {
                $("#divLoginError").html("Invalid Username or Password.");
            }
        } 
        else 
        {
            $("#divLoginError").html("The system can't log you in at this moment. Please try again later.");
        }
    }
}




