
/***************************************
 * Login Globals
 ***************************************/
var _div_loginContainerId;
var _div_pnlMessagesId;
var _lbllMessagesId;
var _lnkLoginId;
var _lnkLogoutId;
var _lblUserNameId;
var _handleId;
var _passId;

/***************************************
 * Register Globals
 ***************************************/
var _txt_FirstNameId;
var _txt_LastNameId;
var _txt_UserNameId;
var _txt_EmailId;
var _txt_ConfirmEmailId;
var _txt_PasswordId;
var _txt_ConfrimPasswordId;
var _txt_PhoneAreaCodeId;
var _txt_PhoneExchangeId;
var _txt_PhoneLastFourId;
var _txt_CompanyNameId;
var _tabStrip_AddressId;
var _chk_SameAddressId;
var _txt_BillingAddress1Id;
var _txt_BillingAddress2Id;
var _txt_BillingCityId;
var _ddl_BillingStateId;
var _txt_BillingZipId;
var _txt_ShippingAddress1Id;
var _txt_ShippingAddress2Id;
var _txt_ShippingCityId;
var _ddl_ShippingStateId;
var _txt_ShippingZipId;

var _req_lblUserNameId      = 'reqUserName';
var _req_lblLastNameId      = 'reqLastName';
var _req_lblFirstNameId     = 'reqFirstName';
var _req_lblEmailId         = 'reqEmail';
var _req_lblConfirmEmailId  = 'reqConfirmEmail';
var _req_lblPasswordId      = 'reqPassword';
var _req_lblConfirmPasswordId = 'reqConfirmPassword';
var _req_lblEmailSameId     = 'reqEmailSame';
var _req_lblPassowrdSameId  = 'reqPassowrdSame';
var _req_lblPhoneId         = 'reqPhone';

/***************************************
 * Event - Toggle the login window
 ***************************************/
function ToggleLogin(ev, show)
{
    //Prevent Post
    if (ev != null)
        PreventPostBack(ev);
        
    if (show == null)
        show = false;
    
    //Get container
    var div = $(_div_loginContainerId);
    
    //Check parameter
    if (div && show != null)
    {
        if (show)
        {
            //Show Class
            div.className = 'popupWindow';
            
            //find overlay
            var fade = $('blck_ovrly');
            if (!fade)
            {
                var fade = document.createElement('DIV');
                fade.id = 'blck_ovrly';
                fade.name = fade.id;
                div.parentNode.parentNode.appendChild(fade);
            }
            
            fade.className = 'login_black_overlay';
            fade.style.opacity = 0.8;
            fade.style.filter  = 'Alpha(opacity = 80)';
            fade.style.display='block';
            
            $(_handleId).focus();
        }
        else
        {
            div.className = 'hide';
            
            //Find overlay
            var fade = $('blck_ovrly');
            
            if (fade)
            {
                fade.className = "hide";
//                var parent = fade.parentNode;
//                parent.removeChild(fade);
            }
        }
    }
}
/***************************************
 * Event - Toggle the login window
 ***************************************/
function btnLogin_Click(ev)
{
    //Prevent Post
    if (ev != null)
        PreventPostBack(ev);
        
    //Get Controls
    var handle = $(_handleId).value;
    var pass = $(_passId).value;
    $(_passId).value = '';
        
    //Make Ajax Call
    var params = "handle=" + handle + "&pass=" + pass;
    new Ajax.Request('WebServices/ClevelandKaraoke.asmx/Login',
    {
        method:'post',
        parameters: params,
        onComplete: function(transport)
        {
            if(transport.status == 200)
            {
                var response = ((transport.responseXML.text) ? transport.responseXML.text : transport.responseXML.lastChild.textContent);
                _loginComplete(response.evalJSON());            
            }
            else
                ToggleLogin(null,false);
        },
        onFailure: function(transport) { alert("Ajax error in Login!"); }
     });    
}
/***************************************
 * AJAX Success Event
 ***************************************/
function _loginComplete(responseObj)
{
    try
    {
        if (responseObj != null)
        {
            if (responseObj.Error != null)
            {
                $(_div_pnlMessagesId).className = 'row';
                $(_lbllMessagesId).innerText = responseObj.Error;
                $(_lbllMessagesId).textContent = responseObj.Error; 
            }
            else if (responseObj.IsAuth == false)
            {
                $(_div_pnlMessagesId).className = 'row';
                $(_lbllMessagesId).innerText = responseObj.Message;
                $(_lbllMessagesId).textContent = responseObj.Message;
            }
            else if (responseObj.IsAuth == true)
            {
                ToggleLogin(null, false);
                
                //Set logged in user name
                var lbl = $(_lblUserNameId);
                lbl.innerText = "Welcome " + responseObj.DisplayName;
                lbl.textContent = "Welcome " + responseObj.DisplayName;
                
                //Set login link
                $(_lnkLoginId).className = 'hide';
                $(_lnkLogoutId).className = '';
            }
        }
    }
    catch(err)
    {
        alert(err.description);
        ToggleLogin(null,false);
    }
}
/***************************************
 * Event - Toggle the login window
 ***************************************/
function Logout(ev)
{
    if (ev != null)
        PreventPostBack(ev);
    
    new Ajax.Request('WebServices/ClevelandKaraoke.asmx/Logout',
    {
        method:'post',
        parameters: "",
        onComplete: function(transport)
        {
            if(transport.status == 200)
            {
                _logoutComplete();            
            }
        },
        onFailure: function(transport) { alert("Ajax error in Login!"); }
     });    
}
/***************************************
 * AJAX Success Event 
 ***************************************/
function _logoutComplete()
{
    //Set logged in user name
    var lbl = $(_lblUserNameId);
    lbl.innerText = "Welcome Guest";
    lbl.textContent = "Welcome Guest";
    
    //Set login link
    $(_lnkLoginId).className = '';
    $(_lnkLogoutId).className = 'hide';
}
/***************************************
 * Register Screen Events
 ***************************************/
 function ToggleSameAddress(ev)
 {
    try
    {
        //Get Checkbox
        var sameAddress = $get(_chk_SameAddressId).checked;
       
        //Get variables
        var sh_add1 = $(_txt_ShippingAddress1Id);
        var sh_add2 = $(_txt_ShippingAddress2Id);
        var sh_city = $(_txt_ShippingCityId);
        var sh_state = $find(_ddl_ShippingStateId);
        var sh_zip = $(_txt_ShippingZipId);

        var bl_add1 = $(_txt_BillingAddress1Id);
        var bl_add2 = $(_txt_BillingAddress2Id);
        var bl_city = $(_txt_BillingCityId);
        var bl_state = $find(_ddl_BillingStateId);
        var bl_zip = $(_txt_BillingZipId);

        if(sameAddress)
        {
            //Set new values
            sh_add1.value = bl_add1.value;
            sh_add2.value = bl_add2.value;
            sh_city.value = bl_city.value;
            sh_state.set_value(bl_state.get_value());
            sh_state.set_text(bl_state.get_text());
            sh_zip.value = bl_zip.value;
            
            //Disable controls
            sh_add1.disabled =true;
            sh_add2.disabled =true;
            sh_city.disabled =true;
            sh_state.disable();
            sh_zip.disabled =true;
        }
        else
        {
            //enable controls
            sh_add1.disabled = false;
            sh_add2.disabled = false;
            sh_city.disabled = false;
            sh_state.enable();
            sh_zip.disabled = false;
        }
    }
    catch(err)
    {
        alert(err.message);
    }
 }
 
/***************************************
 * Register Screen Event
 ***************************************/
 function Validate_Registration(ev)
 {
    var isValid = true;
    
    var fname = $(_req_lblFirstNameId);
    var lname = $(_req_lblLastNameId);
    var handle = $(_req_lblUserNameId);
    var email = $(_req_lblEmailId);
    var email2 = $(_req_lblConfirmEmailId);
    var samemail = $(_req_lblEmailSameId);
    var pass = $(_req_lblPasswordId);
    var pass2 = $(_req_lblConfirmPasswordId);
    var samepass = $(_req_lblPassowrdSameId);
    var phone = $(_req_lblPhoneId);
    
    //First NAme
    if($(_txt_FirstNameId).value.length == 0)
    {
        fname.className = 'req';
        isValid = false;
    }
    else
        fname.className = 'hide';
    
    //Last NAme
    if($(_txt_LastNameId).value.length == 0)
    {
        lname.className = 'req';
        isValid = false;
    }
    else
        lname.className = 'hide';
    
    //Handle
    if($(_txt_UserNameId).value.length == 0)
    {
        handle.className = 'req';
        isValid = false;
    }
    else
        handle.className = 'hide';
        
    //Email
    if($(_txt_EmailId).value.length == 0)
    {
        email.className = 'req';
        isValid = false;
    }
    else
        email.className = 'hide';
    
    //Email 2
    if($(_txt_ConfirmEmailId).value.length == 0)
    {
        email2.className = 'req';
        isValid = false;
    }
    else
        email2.className = 'hide';
       
    //same email
    if ($(_txt_EmailId).value != $(_txt_ConfirmEmailId).value)
    {
        samemail.className = 'req';
        isValid = false;
    }
    else
        samemail.className = 'hide';
        
        
    //Password
    if($(_txt_PasswordId).value.length == 0)
    {
        pass.className = 'req';
        isValid = false;
    }
    else
        pass.className = 'hide';
        
    //Password 2
    if($(_txt_ConfrimPasswordId).value.length == 0)
    {
        pass2.className = 'req';
        isValid = false;
    }
    else
        pass2.className = 'hide';
        
    //same password
    if ($(_txt_PasswordId).value != $(_txt_ConfrimPasswordId).value)
    {
        samepass.className = 'req';
        isValid = false;
    }
    else
        samepass.className = 'hide';
    
    //Phone
    if (($(_txt_PhoneAreaCodeId).value.length > 0 && !IsOnlyNumeric($(_txt_PhoneAreaCodeId).value))
        || ($(_txt_PhoneExchangeId).value.length > 0 && !IsOnlyNumeric($(_txt_PhoneExchangeId).value))
        || ($(_txt_PhoneLastFourId).value.length > 0 && !IsOnlyNumeric($(_txt_PhoneLastFourId).value)))
    {
        phone.className = 'req'
        isValid = false;
    }
    else
    {
        phone.className = 'hide'
    }
    
    if (!isValid && ev != null)
        PreventPostBack(ev);
 }
 
/***************************************
 * Register Screen Event
 ***************************************/
 function Clear_Registration(ev)
 {
    if (ev != null)
        PreventPostBack(ev);
    
    $(_txt_FirstNameId).value = '';
    $(_txt_LastNameId).value = '';
    $(_txt_UserNameId).value = '';
    $(_txt_EmailId).value = '';
    $(_txt_ConfirmEmailId).value = '';
    $(_txt_PasswordId).value = '';
    $(_txt_ConfrimPasswordId).value = '';
    $(_txt_PhoneAreaCodeId).value = '';
    $(_txt_PhoneExchangeId).value = '';
    $(_txt_PhoneLastFourId).value = '';
    $(_txt_CompanyNameId).value = '';
    $(_chk_SameAddressId).checked = false;
    $(_txt_BillingAddress1Id).value = '';
    $(_txt_BillingAddress2Id).value = '';
    $(_txt_BillingCityId).value = '';
    $(_txt_BillingZipId).value = '';
    $(_txt_ShippingAddress1Id).value = '';
    $(_txt_ShippingAddress2Id).value = '';
    $(_txt_ShippingCityId).value = '';
    $(_txt_ShippingZipId).value = '';
    
    $(_req_lblFirstNameId).className = 'hide';
    $(_req_lblLastNameId).className = 'hide';
    $(_req_lblUserNameId).className = 'hide';
    $(_req_lblEmailId).className = 'hide';
    $(_req_lblConfirmEmailId).className = 'hide';
    $(_req_lblPasswordId).className = 'hide';
    $(_req_lblConfirmPasswordId).className = 'hide';
    $(_req_lblEmailSameId).className = 'hide';
    $(_req_lblPassowrdSameId).className = 'hide';
    
    $find(_ddl_BillingStateId).get_items().getItem(0).select();
    $find(_ddl_ShippingStateId).get_items().getItem(0).select();
 }
 
/***************************************
 * Register Screen Event
 ***************************************/
 function btnCancel_click(ev)
 {
    var resp = confirm('Are you sure you would like to cancel?');
    if  (resp == null || resp == false)
    {
        if (ev != null)
            PreventPostBack(ev);  
    }
 }
 