﻿
  function onRegistrationSubmit(form)
  {
    if (!validateRegistration(form))
        return false;   
     
    checkScreenName();
        
    return false;    
   
  }
  
  
  function checkTerms()
  {
        var chkTerms = document.getElementById("chkTerms") ;  
        if (chkTerms && chkTerms.checked == false)
        {
            alert ('Please indicate that you have read and agree to our \'Terms and Conditions\'.') ;
            return false;
        
        }
        return true;
  }
  
  function validateRegistration(form)
    {
    
        var oScreenName = document.getElementById("txtScreenName") ;
        var oEmail = document.getElementById("txtPlayerEmail") ;
        var oEmail2 = document.getElementById("txtEmail2") ;        
        var oPass = document.getElementById("txtPassword") ;                        
        var oPass2 = document.getElementById("txtPassword2") ;
        if (!oScreenName || !oEmail || !oEmail2 || !oPass && !oPass2){
            // there is an error on the page
            alert ('There is an error on the page. Cannot submit your information') ;
            return false ;
        }
        if (oScreenName.value == null || oScreenName.value == ""){
            alert ('Please choose your screen name.') ;
            return false ;
        }     
        else{
            if (!isValidScreenName(oScreenName.value))
            {
                alert ('Please enter a valid screen name.\nYour screen name must be between 4 & 24 characters and could include digits, underscore(_) and alphabetic characters.') ;
                return false ;            
            }
        }
        if (oEmail.value == null || oEmail.value == ""){
            alert ('Please enter your email address.') ;
            return false ;
        }                
        else{
            if (!isValidEmail(oEmail.value))
            {
            alert ('Please enter a valid email address.') ;
                return false ;            
            }
            else{  
               if(oEmail2.value != oEmail.value ){
                    alert ('Confirm email does not match the email you have entered.') ;
                    return false ;
                }
            }
        }    
                                
        
        if (oPass && (oPass.value == null || oPass.value == "") ){
            alert ('Please enter a password.') ;
            return false ;
        }
        else{
            if(oPass && (oPass.value != oPass2.value) ){
                alert ('Confirm password does not match the password you have entered.') ;
                return false ;        
             }
        }     
                                                      
        return checkTerms();
    }
    
    
    function validateUpdateDetail()
    {
        var oFirstName = document.getElementById("txtFirstName") ;
        var oLastName = document.getElementById("txtLastName") ;
        var oNationality = document.getElementById("ddNationality") ;        
        var oGender = document.getElementById("ddGender") ;                        
        var dobDay = document.getElementById("dobDay") ;
        var dobMonth = document.getElementById("dobMonth") ;        
        var dobYear = document.getElementById("dobYear") ;
        
        if (!oFirstName || !oLastName || !oNationality || !oGender){
            // there is an error on the page
            alert ('There is an error on the page. Cannot submit your information') ;
            return false ;
        }
        if (IsNullOrEmpty(oFirstName.value)){
            alert ('Please enter your first name.') ;
            return false ;
        }
        if (IsNullOrEmpty(oLastName.value)){
            alert ('Please enter your last name.') ;
            return false ;
        }             
        
        if (oNationality && oNationality.value == '')
        {
            alert ('Please select your Country.') ;
            return false ;
        }
        
        if (oGender && oGender.value == '')
        {
            alert ('Please select your Gender.') ;
            return false ;
        } 
        if (dobDay && (dobDay.value == '' || dobMonth.value == '' || dobYear.value == ''))
        {
            alert ('Please enter your date of birth') ;
            return false;
        }
        
        return true;
    }
    
    function addSuggestion(suggestion)
    {
                
        var node = '<a class=\"snItem\" href=\"#\" onclick=\"clickSuggest(\'' + suggestion + '\');\">' + suggestion + '</a>'
        return node ;

    }    
        
    function isValidScreenName(name)
    {
        
        if (name == null || name == '' || name.length < 3)
            return false;
            
	    var format=/^[a-zA-Z0-9_]{3,24}$/;

	    return(format.test(name)); 
    }
    
    function clickSuggest(suggestedName){

         
        var suggestedNameHolder = document.getElementById("suggestedNameHolder");
        if (suggestedNameHolder != null)
        {
            suggestedNameHolder.style.display = "none" ;            
        }
        
        document.getElementById("screenName").value = suggestedName;
    }    
    
        
 
function verifyEmailAddress()
{
    var oEmail = document.getElementById("txtPlayerEmail") ;
    if(!oEmail || oEmail.value=="")
        return false;
        
    var url = '/ws/security/verifyEmailAddress.aspx?emailAddress=' + oEmail.value;
//    var httpService = new HttpService(url,false,false,null,null,'verifyEmailAddressCallback');
//    
//    if (!httpService.httpRequest){
//        document.forms["frmRegister"].submit() ;       
//        return false;
//    }                         
//           
//    httpService.call(true);    

    $.facebox(function() { 
        $.get('/ws/security/verifyEmailAddress.aspx', { emailAddress : oEmail.value, t:  new Date().getTime() },
          function(data){
            verifyEmailAddressCallback(data);
            });
        });    

    
    return false;    
}

function verifyEmailAddressCallback(httpRequest)
{
    //var xmlDoc = httpRequest.responseXML ;
    var rootNode = httpRequest.documentElement ;
    
      
    if (!rootNode)
    {
        //closePopup() ;
        //$(document).trigger('close.facebox') ;              
        popupDialog.close() ;        
        document.forms["frmRegister"].submit() ;  
        return false;
    }
    
    var result = rootNode.getAttribute("result");
    document.getElementById("verifiedEmail").value = result;
    if(result == "1")
    {
        //closePopup() ;
        //$(document).trigger('close.facebox') ;
        popupDialog.close() ;        
        document.forms["frmRegister"].submit() ;
        return true ;
    }
    else if(result == "0")
    {
        var oEmail = document.getElementById("txtPlayerEmail") ;
        var html = "<p>We are currently unable to verify the email address '" + oEmail.value + "'.</p>";
        html += "<ul class=\"feed\"><li>If you are sure you wish to continue you can click 'confirm', otherwise click 'cancel' to go back.</li>";
        html += "<li><br><br></li><li class=\"feedLink\"><a href=\"javascript:void(0);\" onclick=\"javascript:document.getElementById('frmRegister').submit();return(false);\">Confirm &#187;</a></li>";
        html += "<li class=\"feedLink\"><a href=\"javascript:void(0);\" onclick=\"javascript:return popupDialog.close(); \">Cancel &#187;</a></li></ul>";

        popupDialog.showForm('Registration', html, '446')
       
    }
    
   
}


function checkScreenName()
{
    //closePopup() ;
    var oScreenName = document.getElementById("txtScreenName") ;
    if (!oScreenName || oScreenName.value=="")
        return false;     

    if (!isValidScreenName(oScreenName.value))
    {
        alert ('Please enter a valid screen name.\nYour screen name must be between 4 & 24 characters and could include digits, underscore(_) and alphabetic characters.') ;
        return false ;            
    }         
    
    //relocatePopup(oScreenName);
    //fadeInPopup();
    //showLoading(); 

    //setTimeout("_checkScreenName('" + oScreenName.value + "')",500);
    
    $.facebox(function() { 
        $.get('/ws/security/checkScreenName.aspx', { screenName:oScreenName.value, t:  new Date().getTime() },
          function(data){
            checkScreenNameCallBack(data);        
            });
        });    
        
    return false;       
}
function _checkScreenName(screenName)
{
    var url = '/ws/security/checkScreenName.aspx?screenName=' + screenName;
    var httpService = new HttpService(url, false, false, null, null, 'checkScreenNameCallBack') ;
          
       
    if (!httpService.httpRequest){
        document.forms["frmRegister"].submit() ;       
        return false;
    }  
        
    httpService.call(true) ;
    
    return false;    

}

function checkScreenNameCallBack(httpRequest)
{    
    
    var rootNode = httpRequest.documentElement ;
    var isAvailable = false ;
    var html ="";     
    if (!rootNode)
    {
        popupDialog.close() ;
        document.forms["frmRegister"].submit() ;  
        return false;
    }
       
    var xNode = null ;
    var suggestedName ;

    //xNode = rootNode.getElementsByTagName('result') ;               
                            
    if (rootNode.getAttribute("status") == "1"){
        verifyEmailAddress();
        return false ;        
    }

    
    var xSuggestions = rootNode.getElementsByTagName('suggestion') ;

    if (xSuggestions[0] == null)
    {
        html = "That name has already been taken. Please choose another screen name." ;
        popupDialog.showForm('Registration', html, '446', popupDialog.ok) ;
        return false ;
    }
                            
    var l = xSuggestions.length ;
           
    for (var i=0; i<l; ++i)
    {
        xNode = xSuggestions[i] ;
        suggestedName = xNode.getAttribute("screenName") ;
        if (suggestedName) html = html + addSuggestion(suggestedName) ;
    }

    html = "<p id=\"screenNameError\">That name has already been taken. Please try another or pick one of our suggestions.</p><p class=\"errorF\"></p>" + "<ul class=\"feed\"><li>" + html + "</li></ul>"    
    popupDialog.showForm('Registration', html, '446', popupDialog.cancel) ;
    
    return false ;
}    

function addSuggestion(suggestion)
{
            
    var node = '<a class=\"snItem\" href=\"#\" onclick=\"clickSuggest(\'' + suggestion + '\');\">' + suggestion + '</a>'
    return node ;

}    

function clickSuggest(suggestedName){
                
    document.getElementById("txtScreenName").value = suggestedName;
    popupDialog.close() ;    
}    

function prePopulateBasic()
{
    if(hasCookie("regDetails"))
    {
        var form = document.forms["frmRegister"];
        form["txtScreenName"].value = getCookie("regDetails","screenName");
        form["txtPlayerEmail"].value = getCookie("regDetails","email");
        form["txtEmail2"].value = getCookie("regDetails","email");                        
    }
}

function prePopulateFull()
{
    if(hasCookie("regDetails"))
    {
         var form = document.forms["frmUpdateDetail"];
         form["txtFirstName"].value = getCookie("regDetails","firstName");   
         form["txtLastName"].value = getCookie("regDetails","lastName");
         form["ddNationality"].value = getCookie("regDetails","countryOrigin");
         form["ddGender"].value = getCookie("regDetails","gender");
         form["dobDay"].value = getCookie("regDetails","dobDay");
         form["dobMonth"].value = getCookie("regDetails","dobMonth");
         form["dobYear"].value = getCookie("regDetails","dobYear");
         form["txtBonusCode"] = getCookie("bonusCode");
         form["address1"].value = getCookie("regDetails","address1");
         form["address2"].value = getCookie("regDetails","address2");
         form["address3"].value = getCookie("regDetails","address3");
         form["town"].value = getCookie("regDetails","town");
         form["postCode"].value = getCookie("regDetails","postcode");
         
         form["countryList"].value = getCookie("regDetails","country");
         country_OnChange(stateListLoaded);
         
    }
}

function stateListLoaded()
{
   var form = document.forms["frmUpdateDetail"];
   form["stateList"].value = getCookie("regDetails","county");
}

   

