﻿ function GetClientId(strid) 
 {
   // var count = document.all.length;
     var cntrls = document.getElementsByTagName('*');
    var i = 0;
    var eleName;
    for (i = 0; i < cntrls.length; i++) 
    {
        eleName = cntrls[i].id;
        pos = eleName.indexOf(strid);
        if (pos >= 0) break;
        else eleName=null;
    }
    return eleName;
};

function showHideRegSection()
{
    hideErrorMessage();
    if(document.getElementById(GetClientId('rdoAnonymous')).checked)
    {
        document.getElementById(GetClientId('divAnonymousCredentials')).style.display = 'block';
        document.getElementById(GetClientId('panelLogin')).style.display = 'none';
        document.getElementById(GetClientId('panelRegister')).style.display = 'none';
    }
    else if(document.getElementById(GetClientId('rdoRegister')).checked)
    {
        document.getElementById(GetClientId('divAnonymousCredentials')).style.display = 'none';
        document.getElementById(GetClientId('panelLogin')).style.display = 'none';
        document.getElementById(GetClientId('panelRegister')).style.display = 'block';
    }
    else if(document.getElementById(GetClientId('rdoLogin')).checked)
    {
        document.getElementById(GetClientId('divAnonymousCredentials')).style.display = 'none';
        document.getElementById(GetClientId('panelLogin')).style.display = 'block';
        document.getElementById(GetClientId('panelRegister')).style.display = 'none';
    }
};
function hideAnonymousCredentials()
{
    if(document.getElementById(GetClientId('divAnonymousCredentials')))
    {
        document.getElementById(GetClientId('divAnonymousCredentials')).style.display = 'none';
    }
};

function checkBlogBeforeSave()
{
    hideErrorMessage();
    
    if(!isPostBlank())
    {
        var errorMessage = "Please add a comment.";
        document.getElementById(GetClientId('spnErrorMessage')).innerHTML = errorMessage;
        document.getElementById(GetClientId('trErrorMessage')).style.display = 'block';
        return false;
    }
    else if(document.getElementById(GetClientId('divRegistrationBlock')).style.display != "none")
    {
        if(document.getElementById(GetClientId('rdoAnonymous')).checked)
        {
            return checkAnonymousInfo();
        }
        else if(document.getElementById(GetClientId('rdoRegister')).checked)
        {
           return checkRegistrationInfo();
        }
        else if(document.getElementById(GetClientId('rdoLogin')).checked)
        {
            return checkLoginInfo();
        }
    }
};

function checkAnonymousInfo()
{
    var name = document.getElementById(GetClientId('tbName')).value;
    if(name.length == 0)
    {
        document.getElementById(GetClientId('spnErrorMessage')).innerHTML = "Name is required.";
        document.getElementById(GetClientId('trErrorMessage')).style.display = 'block';
        return false;
    }
    else if(!IsTextInputSafe(name))
    {
        document.getElementById(GetClientId('spnErrorMessage')).innerHTML = "Angle bracket is not allowed.";
        document.getElementById(GetClientId('trErrorMessage')).style.display = 'block';
        return false;
    }
    return true;
};

//Starts: Login Validations-------------------------------------------------------------------------------------------------------
function checkLoginInfo()
{  
    var emailAddress = document.getElementById(GetClientId('loginUsername')).value;
    var password = document.getElementById(GetClientId('loginPassword')).value;
    var errorMessage = "";
    
    if(!isBlankEntry(emailAddress,password))
    {
        errorMessage = "Both email and password are mandatory.";
    }
    else if(!IsValidEmail(emailAddress))
    {
        errorMessage = "Please enter a valid email address.";
    }
    else if(!IsTextInputSafe(emailAddress) || !IsTextInputSafe(password))
    {
        errorMessage = "Angle bracket is not allowed.";
    }
    else
    {   
        return true;
    }
    if(errorMessage != "")
    {
        document.getElementById(GetClientId('spnErrorMessage')).innerHTML = errorMessage;
        document.getElementById(GetClientId('trErrorMessage')).style.display = 'block';
        return false;
    }
};
function isPostBlank()
{
    if(document.getElementById(GetClientId('tbComment')).value.trim() == "")
        return false;
    else
        return true;
};
// Private Functions
function isBlankEntry(emailAddress,password)
{
    if(emailAddress.trim().length == 0 || password.trim().length == 0)
    {
        return false;
    }
    return true;
};
//End: Login Validations-------------------------------------------------------------------------------------------------------


//Start: Registration Validations-------------------------------------------------------------------------------------------------------

function checkRegistrationInfo()
{
    var email = document.getElementById(GetClientId('Email')).value;
    var password = document.getElementById(GetClientId('FirstPassword')).value;
    var password2 = document.getElementById(GetClientId('SecondPassword')).value;
    var firstname = document.getElementById(GetClientId('Firstname')).value;
    var lastname = document.getElementById(GetClientId('Lastname')).value;
    var screenname = document.getElementById(GetClientId('Screenname')).value;
    var acceptAgreement = document.getElementById(GetClientId('AcceptAgreement')).checked;
    
    var errorMessage = "";
    
    if(!isBlankRegEntry(email,password,password2,firstname,lastname,screenname))
    {
        errorMessage = "All the fields are mandatory, please complete all the fields below.";
    }
    else if(!IsValidEmail(email))
    {
        errorMessage = "Please enter a valid email address.";
    }
    else if(!isValidPassword(password))
    {
        errorMessage = "Your password must be at least 6 characters long and contain at least one letter and one number.";
    }
    else if(password != password2)
    {
        errorMessage = "Your passwords do not seem to match.";
    }
    else if(acceptAgreement == false)
    {
        errorMessage = "Please accept Clickable's Terms of Service to complete registration.";        
    }
    else if(!IsTextInputSafe(email) || !IsTextInputSafe(password) || !IsTextInputSafe(firstname) || !IsTextInputSafe(lastname) || !IsTextInputSafe(screenname))
    {
        errorMessage = "Angle bracket is not allowed.";
    }
    else
    {   
        return true;
    }
    if(errorMessage != "")
    {
        document.getElementById(GetClientId('spnErrorMessage')).innerHTML = errorMessage;
        document.getElementById(GetClientId('trErrorMessage')).style.display = 'block';
        return false;
    }
};
function isBlankRegEntry(email,password,password2,firstname,lastname,screenname)
{
    if(email.length == 0 || password.length == 0 || password2.length == 0 || firstname.length == 0 || lastname.length == 0 || screenname.length == 0)
    {
        return false;
    }
    return true;
};
function isValidPassword(strPass)
{
    //The password must be a minimum of 6 characters and contain letters and either numbers or punctuation marks.
    //Must contain only A-Z a-z 0-9 . ? ! : ; , - _ / '
    var isSpaceExists = 0;
    if(strPass.indexOf(' ') != -1)
        isSpaceExists = 1;
    var re = /^[\w.?!:;,-_/']{6,}$/;
    //For at least one alphabate.
    var re1 = /[A-Za-z]{1}/; 
    //For at least one char other than alphabate.
    var re2 = /[0-9.?!:;,-/'_]{1}/; 
    if (!re.test(strPass) || !re1.test(strPass) || !re2.test(strPass) || isSpaceExists == 1) 
    {
        return false;
    }
    return true;
};
//End: Registration Validations-------------------------------------------------------------------------------------------------------

function showHideForumRegSection()
{
    hideForumErrorMessage();
    if(document.getElementById(GetClientId('rdoRegister')).checked)
    {
        document.getElementById(GetClientId('panelLogin')).style.display = 'none';
        document.getElementById(GetClientId('panelRegister')).style.display = 'block';
    }
    else if(document.getElementById(GetClientId('rdoLogin')).checked)
    {
        document.getElementById(GetClientId('panelLogin')).style.display = 'block';
        document.getElementById(GetClientId('panelRegister')).style.display = 'none';
    }
};

function checkForumBeforeSave()
{
    hideForumErrorMessage();
    if(!isForumBlank())
    {
        var errorMessage = "Please enter your comments.";
        document.getElementById(GetClientId('spnErrorMessage')).innerHTML = errorMessage;
        document.getElementById(GetClientId('trErrorMessage')).style.display = 'block';
        return false;
    }                                
    else if(document.getElementById(GetClientId('divRegistrationBlock')).style.display != "none" && (document.getElementById(GetClientId('divRegistrationBlock')).style.display == 'block' || document.getElementById(GetClientId('divRegistrationBlock')).style.display == ''))
    {
        if(document.getElementById(GetClientId('rdoRegister')))
        {
            if(document.getElementById(GetClientId('rdoRegister')).checked)
            {
               return checkForumRegistrationInfo();
            }
            else if(document.getElementById(GetClientId('rdoLogin')).checked)
            {
                return checkForumLoginInfo();
            }
        }
    }
};

//function checkForumBlankReply()
//{
//    var postBody = document.getElementById('ctl00_ctl00_bcr_bcr_PostForm_ctl05_PostBody_ctl00_Editor').value;
//    var errorMessage = "";
//    
//    if(postBody=="<p>&nbsp;</p>" || postBody=="<p></p>" || postBody=="")
//    {
//        errorMessage = "Please enter your comments.";
//    }
//    
//    if(errorMessage != "")
//    {
//        document.getElementById('ctl00_ctl00_bcr_bcr_PostForm_ctl05_spnErrorMessage').innerHTML = errorMessage;
//        document.getElementById('ctl00_ctl00_bcr_bcr_PostForm_ctl05_trErrorMessage').style.display = 'block';
//        return false;
//    }
//};
function checkForumLoginInfo()
{  
    var emailAddress = document.getElementById(GetClientId('loginUsername')).value;
    var password = document.getElementById(GetClientId('loginPassword')).value;
    //var postBody = document.getElementById('ctl00_ctl00_bcr_bcr_PostForm_ctl05_PostBody_ctl00_Editor').value;
    var errorMessage = "";
    
//    if(postBody=="<p>&nbsp;</p>" || postBody=="<p></p>" || postBody=="")
//    {
//        errorMessage = "Please enter your comments.";
//    }
//    else 
    
    if(!isBlankEntry(emailAddress,password))
    {
        errorMessage = "Both email and password are mandatory.";
    }
    else if(!IsValidEmail(emailAddress))
    {
        errorMessage = "Please enter a valid email address.";
    }
    else if(!IsTextInputSafe(emailAddress) || !IsTextInputSafe(password))
    {
        errorMessage = "Angle bracket is not allowed.";
    }
    else
    {   
        return true;
    }
    if(errorMessage != "")
    {
        document.getElementById(GetClientId('spnErrorMessage')).innerHTML = errorMessage;
        document.getElementById(GetClientId('trErrorMessage')).style.display = 'block';
        return false;
    }
};
function checkForumRegistrationInfo()
{
    var email = document.getElementById(GetClientId('Email')).value;
    var password = document.getElementById(GetClientId('FirstPassword')).value;
    var password2 = document.getElementById(GetClientId('SecondPassword')).value;
    var firstname = document.getElementById(GetClientId('Firstname')).value;
    var lastname = document.getElementById(GetClientId('Lastname')).value;
    var screenname = document.getElementById(GetClientId('Screenname')).value;
    //var postBody = document.getElementById('ctl00_ctl00_bcr_bcr_PostForm_ctl05_PostBody_ctl00_Editor').value;
    var acceptAgreement = document.getElementById(GetClientId('AcceptAgreement')).checked;
    
    var errorMessage = "";
    
//    if(postBody=="<p>&nbsp;</p>" || postBody=="<p></p>" || postBody=="")
//    {
//        errorMessage = "Please enter your comments.";
//    }
//    else 
    
    if(!isBlankRegEntry(email,password,password2,firstname,lastname,screenname))
    {
        errorMessage = "All the fields are mandatory, please complete all the fields below.";
    }
    else if(!IsValidEmail(email))
    {
        errorMessage = "Please enter a valid email address.";
    }
    else if(!isValidPassword(password))
    {
        errorMessage = "Your password must be at least 6 characters long and contain at least one letter and one number.";
    }
    else if(password != password2)
    {
        errorMessage = "Your passwords do not seem to match.";
    }
    else if(acceptAgreement == false)
    {
        errorMessage = "Please accept Clickable's Terms of Service to complete registration.";        
    }
    else if(!IsTextInputSafe(email) || !IsTextInputSafe(password) || !IsTextInputSafe(firstname) || !IsTextInputSafe(lastname) || !IsTextInputSafe(screenname))
    {
        errorMessage = "Angle bracket is not allowed.";
    }
    else
    {   
        return true;
    }
    if(errorMessage != "")
    {
        document.getElementById(GetClientId('spnErrorMessage')).innerHTML = errorMessage;
        document.getElementById(GetClientId('trErrorMessage')).style.display = 'block';
        return false;
    }
};
function isForumBlank()
{
    var postBody = document.getElementById(GetClientId('Editor')).value;
    postBody = postBody.replace("<p>","").replace("</p>","").replace(/&nbsp;/g,"");
    
    if(postBody.trim() =="")
    {
        return false;
    }
    else
    {
        return true;
    }
};
//Starts: Login Validations-------------------------------------------------------------------------------------------------------

function hideErrorMessage()
{
    if(document.getElementById(GetClientId('divCommentRequired')) != null)
    {
        document.getElementById(GetClientId('divCommentRequired')).style.display = 'none';
    }
    if(document.getElementById(GetClientId('trErrorMessage')) != null)
    {
        document.getElementById(GetClientId('trErrorMessage')).style.display = 'none';
    }
};
function hideForumErrorMessage()
{
    if(document.getElementById(GetClientId('divCommentRequired')) != null)
    {
        document.getElementById(GetClientId('divCommentRequired')).style.display = 'none';
    } 
    if(document.getElementById(GetClientId('trErrorMessage')) != null)
    {
        document.getElementById(GetClientId('trErrorMessage')).style.display = 'none';
    }
};