﻿/// <reference path="jquery-1.2.6-vsdoc.js" />
var inSchedule = null;

function isSignInPage(){
	return $('#signin_container_page').css('display') != undefined;
}

function signCustomerIn(){
	var account = AjaxManager.Customer.getAccount();
	if(account === null){
		$('#login_error').hide();
		
		var valid = common.validateDialogInputText('#tbEmail');
		
		if(valid){
			valid = common.validateDialogInputText('#tbPassword');
		} else {
			common.validateDialogInputText('#tbPassword');
		}
		
		if (valid){
			redirectOnLogin.subscribe(AjaxManager.Customer.onSignedIn);
			signinCustomerRetrievedError.subscribe(AjaxManager.Customer.onSignInError)
			$('#signInWaitButton').show();
			AjaxManager.Customer.signIn($('#tbEmail').val(), $('#tbPassword').val());
		} else {
			$('.invalid').eq(0).focus();
		}
		
		return false;
	} else {
		//pass the call to the server if they've already logged in to allow for redirect.
		return true;
	}
}

function redirectOnLogin(){
	
	if(common.inSchedule()){
		common.clearSaleing_CustomerInfo(AjaxManager.Operation.getOperation().OperationID.toString(), false);
	}
	
	$("input[id$='signInButton']").click();
}

function signinCustomerRetrievedError(customer){
	redirectOnLogin.unsubscribe(AjaxManager.Customer.onSignedIn);
	signinCustomerRetrievedError.unsubscribe(AjaxManager.Customer.onSignInError)
	$('#signInWaitButton').hide();
	$('#login_error').show();
	return false;
}

function sendPasswordReminder(){
	$('#warning_forgot_password_no_email_match').hide();
	
	if(common.validateDialogInputText('#tbEmail_forgot_password_dialog')){
	    if (!emailExists($('#tbEmail_forgot_password_dialog').val())) {
	        AjaxManager.Customer.requestPassword($('#tbEmail_forgot_password_dialog').val());	    
	    }
	    else {
	        $('#warning_forgot_password_no_email_match').show();
	    }
	} else {
		$('#tbEmail_forgot_password_dialog').eq(0).focus();
	}

	return false;	
}

function emailExists (emailAddress) {
	    var email_exists = false;
	    var check_email_request = {
            EmailAddress: emailAddress
        };

        $.ajax({
            url: '/Service.asmx/CustomerAccountDoesNotAlreadyExist',
            type: 'POST',
            async: false,
            datatype: 'json',
            timeout: 10000,
            data: JSON.stringify(check_email_request),
            contentType: 'application/json; charset=utf-8',
            success: function(res) {
                email_exists = JSON.parse(res);
            },
            error: $('#warning_forgot_password_no_email_match').show()
        });
        return email_exists;	
	}

function bindForgotPasswordDialogActions(){
    $('#forgotPassword').bind('click', function(){
		$('#forgot_password_dialog').dialog({
			modal: true,
			resizable: false,
			width: 370,
			position: 'center'
		}).dialog('open');
    });
    
	$('#close_forgot_password_dialog').bind('click', closeForgotPasswordDialog);
   
    $('#password_dialog_return').bind('click', closeForgotPasswordDialog);
    
    $('#buttonSend').bind('click', sendPasswordReminder);
      
    $('#close_password_changed_dialog').bind('click', function(){
		$('#password_confirmation_dialog').dialog('destroy');	
    });
}

function closeForgotPasswordDialog(){
	$('#forgot_password_dialog').dialog('destroy');	

	$('#tbEmail_forgot_password_dialog').val('');
	
	var label = common.getLabelForInputControl('#tbEmail_forgot_password_dialog');
	$(label).css('color', '#000000');

	$('#warning_forgot_password_no_email_match').hide();
	return false;
}

function signinPasswordRequestError(){
	$('#warning_forgot_password_no_email_match').show();
}

function signinPasswordRequested(emailAddress){
	closeForgotPasswordDialog();
	
	$('#confirmation_email').empty();
	$('#confirmation_email').append(emailAddress);
	
	$('#password_confirmation_dialog').dialog({
		modal: true,
		resizable: false,
		width: 370,
		height: 90,
		position: 'center'
	});
	
	$('#close_password_changed_dialog').bind('click', function(){
		$('#password_confirmation_dialog').dialog('destroy');
	});		
}

function siginSubscribeToPublishers(){
	signinPasswordRequestError.subscribe(AjaxManager.Customer.onPasswordRequestedError);
	signinPasswordRequested.subscribe(AjaxManager.Customer.onPasswordRequested);
    if (inSchedule) {
        SchedulingTool.updateTotal.subscribe(AjaxManager.AreasAndServices.onComplete);
    }
}

$(document).ready(function() {
    inSchedule = common.inSchedule();
    siginSubscribeToPublishers(inSchedule);
    if (inSchedule) {
        SchedulingTool.disableSchedulingTool();
    }

    var account = AjaxManager.Customer.getAccount();
    if (account !== null) {
        AjaxManager.Customer.signOut();
    }

    $('#tbPassword').bind('keypress', function(event) {
        if (!(common.isNotEnterKey(event))) {
            $("input[id$='signInButton']").click();
            return false;
        }
    });

    bindForgotPasswordDialogActions();

});



