﻿// Added By : Amrik Goswami
// Added On : 22-10-08
// Page : Register.aspx

var strURL = new String();
 strURL = location.href;     
 if(strURL.indexOf("www",0) == -1)
 {
      var subURL = new String(strURL.substring(7,strURL.length));
      var domain = strURL.substring(7, 23)
      if(domain=="authorstream.com" || domain=="authorstream.com/")
      {
        var strFullURL = "http://www."+subURL;
        location.replace(strFullURL);  
      }
 }

function trimString(str) 
{
    str = this != window? this : str;
    return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function ResetPage()
{        
  try
  {
    document.forms[0].reset();
    document.getElementById("lblAvailabilityMsg").style.display="none";
    document.getElementById("lblDisplayNameError").style.display="none";
    document.getElementById("lblFirstNameError").style.display="none";
    document.getElementById("lblLastNameError").style.display="none";
    document.getElementById("lblEmailError").style.display="none";
    document.getElementById("lblDisplayNameError").style.display="none";
    document.getElementById("lblRegistrationError").style.display="none";
    document.getElementById("lblValidation").style.visibility = "hidden";
    document.getElementById("lblValidation").style.display = "none";
            
    document.getElementById("txtFirstName").className = "signUptxtBox";
    document.getElementById("txtLastName").className = "signUptxtBox";
    document.getElementById("txtEmail").className = "signUptxtBox";
    document.getElementById("txtUserID").className = "signUptxtBox";
    document.getElementById("txtPassword").className = "signUptxtBox";
    document.getElementById("txtConfirmPassword").className = "signUptxtBox";                
    
    document.getElementById("txtFirstName").value="";
    document.getElementById("txtLastName").value="";
    document.getElementById("txtEmail").value=""; 
    document.getElementById("txtUserID").value="";
    document.getElementById("txtPassword").value="";
    document.getElementById("txtConfirmPassword").value="";        
  }
  catch(ex)
  {
    alert(ex);
  }  
}
function CheckAvailability(UserId) 
{   
    document.getElementById("lblAvailabilityMsg").style.display="none";
    var UserId = document.getElementById(UserId);
    if (IsPermittedWord(UserId) == false)
    {
        document.getElementById("lblDisplayNameError").innerHTML = "This word is not permitted for userid, please try another.";
        document.getElementById("lblDisplayNameError").style.display="block";
        UserId.className = "cssform_inputtxt_red";   
        return false;         
    }
    else
    {
        document.getElementById("lblDisplayNameError").style.display="none";
        UserId.className = "signUptxtBox";
    }    
    if (IsValidDisplayName(UserId))          
    {
        document.getElementById("imgLoader").style.visibility="visible";
        document.getElementById("imgLoader").style.display="inline";
        authorSTREAM.BizLayer.clsRegister.CheckAvailability(UserId.value, CheckAvailability_Callback);
    }    
    else
        return false;    
}
function CheckAvailability_Callback(Response)
{
    var lblMessage = document.getElementById("lblAvailabilityMsg");
    if (Response.value == true) 
        lblMessage.innerHTML = '<b>User ID is available.</b>';            
    else    
        lblMessage.innerHTML = '<b>User ID is already used by someone.</b>';    
        
    lblMessage.style.visibility = "visible";    
    lblMessage.style.display="inline";
    document.getElementById("imgLoader").style.visibility="hidden";
    document.getElementById("imgLoader").style.display="none";
}
function CheckKeyCode(UserId,e)
{
     if (navigator.appName == 'Microsoft Internet Explorer')
        var KeyPressed = e.keyCode;
    else
        var KeyPressed = e.which;
    if (KeyPressed == 13)
        CheckAvailability(UserId)        
}

var countCall = 0;
function ValidateRegistration()
{   
        var Validation = true;
        var returnValue = true;
        
        countCall++;
        
       if(countCall > 1)
       {
          countCall = 0;
          return false;
       }    
        
        document.getElementById("txtFirstName").value = trimString(document.getElementById("txtFirstName").value);
        var Control = document.getElementById("txtFirstName");
        
        //document.getElementById("HexillionEmailValidator1").innerHTML="";
        
        
        if (Control.value == "")
        {
            Validation = false;
            returnValue = false;
            Control.className = "cssform_inputtxt_red";
        }
        else if (IsValidAlpha2(Control.value) == false)
        {
            document.getElementById("lblFirstNameError").innerHTML = "*Invalid First name<br>";
            document.getElementById("lblFirstNameError").style.display="block";
            returnValue = false;
            Control.className = "cssform_inputtxt_red";
        }
        else
        {
            Control.className = "signUptxtBox";
            document.getElementById("lblFirstNameError").style.display="none";
        }    
        
        document.getElementById("txtLastName").value= trimString(document.getElementById("txtLastName").value);
        Control = document.getElementById("txtLastName");
        if (Control.value == "")
        {
            Validation = false;
            returnValue = false;
            Control.className = "cssform_inputtxt_red";
        }
        else if(IsValidAlpha2(Control.value) == false)
        {
            document.getElementById("lblLastNameError").innerHTML = "*Invalid last name<BR>";
            document.getElementById("lblLastNameError").style.display="block";
            returnValue = false;
            Control.className = "cssform_inputtxt_red";
        }        
        else
        {
            Control.className = "signUptxtBox";            
            document.getElementById("lblLastNameError").style.display="none";
        }
        
        document.getElementById("txtEmail").value = trimString(document.getElementById("txtEmail").value);
        Control = document.getElementById("txtEmail");
        if (Control.value == "")
        {
            Validation = false;
            returnValue = false;
            Control.className = "cssform_inputtxt_red";
        }
        else if (isEmail(Control.value) == false)
        {
            document.getElementById("lblEmailError").innerHTML = "*Invalid email address.<br>";
            document.getElementById("lblEmailError").style.display="block";
            returnValue = false;
            Control.className = "cssform_inputtxt_red";
        }
        else
        {
            Control.className = "signUptxtBox";        
            document.getElementById("lblEmailError").style.display="none";            
        }    
        
        document.getElementById("txtUserID").value = trimString(document.getElementById("txtUserID").value);
        Control = document.getElementById("txtUserID");
        document.getElementById("lblDisplayNameError").style.display="none";
        if (Control.value == "")
        {
            Validation = false;
            returnValue = false;
            Control.className = "cssform_inputtxt_red";
        }
        else if (IsValidDisplayName(Control) == false)
        {
            returnValue = false;
            Control.className = "cssform_inputtxt_red";
        }
        else if (IsPermittedWord(Control) == false)
        {
            document.getElementById("lblDisplayNameError").innerHTML = "This word is not permitted for userid, please try another.";
            document.getElementById("lblDisplayNameError").style.display="block";
            returnValue = false;
            Control.className = "cssform_inputtxt_red";
        }
        else
        {
            Control.className = "signUptxtBox";
            document.getElementById("lblDisplayNameError").style.display="none";
        }
        
        var strPassword = document.getElementById("txtPassword");
        var strConfirm = document.getElementById("txtConfirmPassword");
        if (strPassword.value == "")
        {
            Validation = false;
            strPassword.className = "cssform_inputtxt_red";
            returnValue = false;
        }
        if (strConfirm.value == "")
        {
            Validation = false;
            strConfirm.className = "cssform_inputtxt_red";
            returnValue = false;
        }
        if ((strPassword.value != "") && (strConfirm.value != ""))
        {
            if ((strPassword.value != "") && (strPassword.value.length < 5))
            {
                document.getElementById("lblRegistrationError").innerHTML = "*Password must be more than 4 characters.<br>";
                document.getElementById("lblRegistrationError").style.display="block";
                strPassword.className = "cssform_inputtxt_red";
                returnValue = false;
            }
            else if (strPassword.value != strConfirm.value)
            {
                document.getElementById("lblRegistrationError").innerHTML = "*Password and confirm password must be same.<br>";
                document.getElementById("lblRegistrationError").style.display="block";
                strPassword.className = "cssform_inputtxt_red";
                strConfirm.className = "cssform_inputtxt_red";
                returnValue = false;
            }
            else
            {
                document.getElementById("lblRegistrationError").style.display="none";
                strPassword.className = "signUptxtBox";
                strConfirm.className = "signUptxtBox";
            }
        }
        if (Validation == false)
        {
            document.getElementById("lblValidation").style.visibility = "visible";
            document.getElementById("lblValidation").style.display = "inline";
        }
        else
        {
            document.getElementById("lblValidation").style.visibility = "hidden";
            document.getElementById("lblValidation").style.display = "none";
        }    
        return returnValue;         
} 

function IsValidDisplayName(Ctrl) 
{   
    if (Ctrl.value == "")
    {
        document.getElementById("lblDisplayNameError").innerHTML = "*Enter User ID to verify.<br>";
        document.getElementById("lblDisplayNameError").style.display="block";
        Ctrl.className = "cssform_inputtxt_red";
        return false;
    }
    else if(Ctrl.value.length < 4)
    {
        document.getElementById("lblDisplayNameError").innerHTML = "*User ID must be more than 3 characters.<br>";
        document.getElementById("lblDisplayNameError").style.display="block";
        Ctrl.className = "cssform_inputtxt_red";
        return false;    
    }
    else 
    {
        var Value = new String(Ctrl.value);
        var ContainsDot = false;
        for (i=0;i<Value.length;i++)
        {
            if(  (((Value.charCodeAt(i) >= 48) && (Value.charCodeAt(i) <=57))     ||     ((Value.charCodeAt(i) >= 65) && (Value.charCodeAt(i) <= 90))  ||   ((Value.charCodeAt(i) >= 97) && (Value.charCodeAt(i) <= 122))) == false)
            {
                if (Value.charAt(i) == '.') 
                {
                    if(ContainsDot == false)
                        ContainsDot = true;
                    else    // More than 1 dot
                    {
                        document.getElementById("lblDisplayNameError").innerHTML = "*Invalid User ID.<br>";
                        document.getElementById("lblDisplayNameError").style.display="block";
                        Ctrl.className = "cssform_inputtxt_red";
                        return false;    
                    }   
                }
                else if (Value.charAt(i) != '_')
                {   // Special character
                    document.getElementById("lblDisplayNameError").innerHTML = "*Invalid User ID.<br>";
                    document.getElementById("lblDisplayNameError").style.display="block";
                    Ctrl.className = "cssform_inputtxt_red";
                    return false;
                }                    
            }
        }
    }
Ctrl.className = "signUptxtBox";
return true;               
}  

function IsPermittedWord(Ctrl)
{
    var UserID = new String(Ctrl.value);
    if ((UserID.toLowerCase().indexOf("admin") != -1) || (UserID.toLowerCase().indexOf("support") != -1) || (UserID.toLowerCase().indexOf("authorgen") != -1) || (UserID.toLowerCase().indexOf("authorflash") != -1) || (UserID.toLowerCase().indexOf("wiziq") != -1) || (UserID.toLowerCase().indexOf("authorpoint") != -1) || (UserID.toLowerCase().indexOf("feedback") != -1) || (UserID.toLowerCase().indexOf("authorstream") != -1) || (UserID.toLowerCase().indexOf("moderator") != -1) || (UserID.toLowerCase().indexOf("share") != -1) || (UserID.toLowerCase().indexOf("help") != -1) || (UserID.toLowerCase().indexOf("info") != -1) || (UserID.toLowerCase().indexOf("guest") != -1) || (UserID.toLowerCase().indexOf("owner") != -1) || (UserID.toLowerCase().indexOf("authorlive") != -1) || (UserID.toLowerCase().indexOf("sales") != -1))
        return false;
    return true;    
} 

function ClearMsgs(Ctrl, Type, event)
{   
    event = (window.event) ? window.event : event;
    if (navigator.appName == 'Microsoft Internet Explorer')
        var KeyPressed = event.keyCode;
    else
        var KeyPressed = event.which;    
    if (KeyPressed == 13)
        document.getElementById("btnRegister").click();
    else if((Ctrl == "txtPassword" || Ctrl == "txtConfirmPassword") && KeyPressed == 32)
    {
    
                  if (event.preventDefault) 
                    {
                        event.preventDefault();
                    } 
                    else 
                    {
                        event.returnValue = false;
                        return false;
                    }
                    
                      event.returnValue=false;
        
     }  
}

function SubmitPage(FormName)
{
    document.getElementById("btnRegister").click();
        
}
function getCookies()
{
    if(window.document.cookie.indexOf("userName") != -1)
    {
        var url = new String(location.href);
            url = url.substring(0, url.lastIndexOf('/'))  + "/Index";
        location.href = url;
    }
} 
function isEmail (s)
{
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}
function IsValidAlphaNumeric(val)
{
    //if (isBlank(val)){return false;}
    for(var i=0;i<val.length;i++){
	    if(!isAlphaDigit(val.charAt(i))){return false;}
	}
    return true;
}
function isAlphaDigit(num) {
    if (num.length>1){return false;}
    var string="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    if (string.indexOf(num)!=-1){return true;}
    return false;
}
function IsValidAlpha(val)
{
    //if (isBlank(val)){return false;}
    for(var i=0;i<val.length;i++){
	    if(!isAlpha(val.charAt(i))){return false;}
	}
    return true;
}
function isAlpha(num) {
    if (num.length>1){return false;}
    var string="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    if (string.indexOf(num)!=-1){return true;}
    return false;
}

/*****new function created to allow space in last name *************************/	
function IsValidAlpha2(val)
{
    //if (isBlank(val)){return false;}
    for(var i=0;i<val.length;i++){
	    if(!isAlpha2(val.charAt(i))){return false;}
	}
    return true;
}
function isAlpha2(num) {
    if (num.length>1){return false;}
    var string="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ";
    if (string.indexOf(num)!=-1){return true;}
    return false;
}
/*************functions end here**************************/