
$(document).ready(function(){


   //check user name 
   $('#username_available').click(function(e){checkUsername();});
   



   $('.form-tip').each(function()
   {
      $(this).qtip(
      {
         content: $(this).attr('rel'),
         position: {
            corner: {
               target: 'rightMiddle',
               tooltip: 'leftMiddle'
            },
            adjust: {
                 x:6, screen: true   
            }
         },
         show: { 
             delay:500,
             when: 'mouseover', 
             solo: true 
         },
         hide: { when: 'mouseout', fixed: true },
         style: {
            tip: true, 
            border: {
               width: 0,
               radius: 4
            },
            name: 'dark'
         }
      }) //qtip
   }) //each;

});



function validSearch(frm) 
{
    var location = $("#inp-location").val();
    var sitename = $("#inp-sitename").val();
    var search = '';
    var type = ''; 
    if (sitename){
         type = 'name';
         $("#inp-location").val('');
         search = sitename.replace( /[^A-Za-z0-9\s]/g , '');
         $("#inp-sitename").val(search);  
    }
    else {
        type = location;
        search = location.replace( /[^A-Za-z0-9\,\s]/g , '');
        $("#inp-location").val(search);    
    }

   
    $("#sitefinder-error").empty().hide(); 
    if (!search){
        $("#sitefinder-error").append("<span class='form-field-alert error'>Please enter a location or establishment name.</span>").show();
        return false;    
     }
    if (type == 'name' && search.length < 3){
        $("#sitefinder-error").append("<span class='form-field-alert error'>Please enter 3 or more characters for site name.</span>").show();
        return false;    
     }
     if (type == 'location' && search.length < 5){
        $("#sitefinder-error").append("<span class='form-field-alert error'>Please enter 5 or more characters for location.</span>").show();
        return false;    
     }
     $('#site-results').empty();   
    return true; 
    

}




function checkUsername() 
{
    var name = $("#username").val();
    $("#username ~ .form-field-alert").remove();
    
    if (name == '' || name.length < 4 || name.length > 16) {
        $("#username_available").after("<span class='form-field-alert error'>Please enter a user name (4 to 16 characters).</span>");      
        return;
    }
    
    
    showActivity(true, 'username_available');  

    $.ajax({
      url: "/api/username_exists?username=" + encodeURI(name),
      cache: false,
      dataType:'xml',
      success: function(xml){

         if ($('exists', xml).text() == 'true'){           
            $("#username_available").after("<span class='form-field-alert error'>That name is already in use.</span>");
         }
         else {
           $("#username_available").after("<span class='form-field-alert good'>That name is available!</span>");   
         }
        showActivity(false, 'username_available'); 
      }
    });
}



function confirmPlayer() 
{
    var handle = $("input[name=handleconfirm]").val();
    handle = handle.toUpperCase();
    $("input[name=handleconfirm]").val(handle);   
    var pin = $("input[name=pin4]").val();      
    var siteID = parseInt($("input[name=siteID]").val()); 
           
     $("#form-error").empty();
     if (!handle || !pin  ){   
        addFieldError('form-error', 'Please enter your handle and PIN.');        
        return;    
     }

     if ( !siteID ){
        addFieldError('form-error', 'Please choose your home site.');
        return;    
     }
    
    showActivity(true, 'btn-confirm');
    $.ajax({
      url: "/register?task=confirmpplus&format=xml&handleconfirm=" + encodeURI(handle) +  "&pin4=" + pin +  "&siteID=" + siteID,
      cache: false,
      dataType:'xml',
      success: function(xml){
         var playerID = parseInt($('player_id', xml).text());
         if (playerID > 0 ){
            //submit form
            $('input[name=pin7]').val( $('pin7', xml).text() );
            $('input[name=playerID]').val( playerID );
            $('form[name=pplusForm]').attr('action', '/register/form').submit();             
         }
         else {
            var error = unescape($('error', xml).text());
           addFieldError('form-error', error);
   
         }
         showActivity(false);   
      }
        
      
    });
     
    
}

function showActivity(show, elem_id)
{
     if (show)
        $("#spinner").clone().insertBefore("#" + elem_id).show(); 
     else   
       $(".activity:visible").hide().remove();

}

function addFieldError(field, msg)
{

   $("#" + field).empty();
   $("#" + field).append("<span class='form-field-alert error'>" + msg + "</span>"); 
}

function hashPasswords(inpPass1, inpPass2)
{
 
        if (inpPass1.value != inpPass2.value){
            addFieldError('password_error', 'The passwords do not match'); 
            return false;
        }
        else if (inpPass1.value.length < 4 ||  inpPass1.value.length > 16){
            addFieldError('password_error', 'The password must have 4 to 16 characters'); 
            return false;
        }
        
        if (inpPass1.value){

            var junk_output;
            //last argument,  $show[nopasswordempty]
            md5hash(inpPass1, document.forms.register.password_md5, junk_output, false );
            md5hash(inpPass2, document.forms.register.passwordconfirm_md5, junk_output, false);

        }
        return true;

}

