/**
 * 
 */

function loginAccountPopup(data){
	/*var options = {
		draggable:true,
		modal: true,
		position: ['right','top'],
		title: 'Login/Register',
		width: '950px'
	};
	jQuery(data).dialog(options);*/
	
	var scrollTop = $(window).scrollTop();
	var windowHeight = $(window).height();
	var windowWidth = $(window).width();
	
	var popupTop = scrollTop + ((windowHeight/2) - 225);
	var popupLeft = 180;
	
	$("#loginContainer").html(data);
	$("#loginContainer").jqm(
			{
				modal:false,
				//closeClass:'closeBox',
				onShow: function(h) {
					h.w.fadeIn(888);
				},
				onHide: function(h) { 
				      h.o.remove(); // remove overlay
				      h.w.fadeOut(888); // hide window
				    }
			});
	$("#loginContainer").css("top", popupTop + "px");
	$("#loginContainer").css("left", popupLeft + "px");
	$("#loginContainer").jqmShow();
	
	/*$(".ajaxLogin").click(function(){
		alert('ajax');
		return false;
	})*/
	
	$("#loginForm").submit(function(){
		try {
			$('#loginErrors').html('');
			var formData = jQuery(this).serializeObject();
			var submitButton = jQuery(".ajaxLogin");
			var submitButtonName=submitButton.attr('name');
			formData[submitButtonName]=submitButtonName;
			jQuery.post('/pal/checkout/login.jsp', formData, function(data){
				if (data.success){
					if ($('#successRedirect').val()){
						var redirectURL = $('#successRedirect').val()
						window.location = redirectURL;
					} else {
						window.location.reload();
					}
				} else {
					var errors = "";
					for (var i=0; i<data.errors.length; i++){
						errors = errors + '<p class="errormsg">' + data.errors[i] + '</p>';
					}
					$('#loginErrors').html(errors);
				}
			}, 'json');
		} catch(e) {
			alert(e);
		}
		return false;
	})
	$("#registerForm").submit(function(){
		try {
			$('#registerErrors').html('');
			$('#registerContainer').attr('style', '');
			var formData = jQuery(this).serializeObject();
			var submitButton = jQuery(".ajaxRegister");
			var submitButtonName=submitButton.attr('name');
			formData[submitButtonName]=submitButtonName;
			jQuery.post('/pal/checkout/login.jsp', formData, function(data){
				if (data.success){
					if ($('#successRedirect').val()){
						var redirectURL = $('#successRedirect').val()
						window.location = redirectURL;
					} else {
						window.location.reload();
					}
				} else {
					var errors = "";
					for (var i=0; i<data.errors.length; i++){
						errors = errors + '<p class="errormsg">' + data.errors[i] + '</p>';
					}
					$('#registerContainer').attr('style', 'height:auto;');
					$('#registerErrors').html(errors);
				}
			}, 'json').error(function(a,b,c){
				alert(a + ", " + b + ", " + c);
			});
		} catch(e) {
			alert(e);
		}
		return false;
	})
	
	
}

function launchLoginAccountWindow(redirectURL){
	window.location = '/pal/profile/login.jsp?successRedirect='+escape(redirectURL);
}

function editName(){
	closeAllMyAccount();
	jQuery('.myAccountNameRead').slideUp();
	jQuery('.myAccountNameEdit').slideDown();
}
function cancelEditName(){
	jQuery('.myAccountNameRead').slideDown();
	jQuery('.myAccountNameEdit').slideUp();
}
function editEmail(){
	closeAllMyAccount();
	jQuery('.myAccountEmailRead').slideUp();
	jQuery('.myAccountEmailEdit').slideDown();
}
function cancelEditEmail(){
	jQuery('.myAccountEmailRead').slideDown();
	jQuery('.myAccountEmailEdit').slideUp();
}
function editPassword(){
	closeAllMyAccount();
	jQuery('.myAccountPasswordRead').slideUp();
	jQuery('.myAccountPasswordEdit').slideDown();
}
function cancelEditPassword(){
	jQuery('.myAccountPasswordRead').slideDown();
	jQuery('.myAccountPasswordEdit').slideUp();
}
function editGender(){
	closeAllMyAccount();
	jQuery('.myAccountGenderRead').slideUp();
	jQuery('.myAccountGenderEdit').slideDown();
}
function cancelEditGender(){
	jQuery('.myAccountGenderRead').slideDown();
	jQuery('.myAccountGenderEdit').slideUp();
}
function closeAllMyAccount(){
	cancelEditName();
	cancelEditEmail();
	cancelEditPassword();
	cancelEditGender();
}
function saveAnonymousCart(){
	var href = window.location.href;
	launchLoginAccountWindow(href);
}

function removeFieldFromFormObject(data, fieldId){
	var fieldName = $('#'+fieldId).attr('name');
	if (fieldName){
		delete data[fieldName];
	}
	return data;
}

$(document).ready(function() {
   /*$("#loginLink").click(function() {
     launchLoginAccountWindow();
     return false;
   });*/
	$('#loginForm').submit(function(){
		$('#loginErrors').html('');
		var formData = $('#loginForm').serializeObject();
		formData = removeFieldFromFormObject(formData, 'loginSuccessURL');
		formData = removeFieldFromFormObject(formData, 'loginErrorURL');
		jQuery.post('/pal/json/loginAJAXResponse.jsp', formData, function (data){
			if (data.success){
				if (data.overrideURL){
					window.location = data.overrideURL;
				} else if ($('#successRedirect').val()){
					var redirectURL = $('#successRedirect').val()
					window.location = redirectURL;
				} else {
					var refererURL = $('#referer').val();
					window.location=refererURL;
				}
			} else {
				if (data.overrideURL){
					window.location = data.overrideURL;
				} else {
					var errors = "";
					for (var i=0; i<data.errors.length; i++){
						errors = errors + '<p class="errormsg">' + data.errors[i] + '</p>';
					}
					$('#loginErrors').html(errors);
				}
			}
		},
			'json').error(function(jqXHR, textStatus, errorThrown) {
				//showShippingErrors([(textStatus + "-" + errorThrown)]);
				alert("error:"+textStatus + ", " + errorThrown); 
		});
		return false;
	});
	$("#registerForm").submit(function(){
		try {
			$('#registerErrors').html('');
			$('#registerContainer').attr('style','');
			var formData = jQuery(this).serializeObject();
			formData = removeFieldFromFormObject(formData, 'createSuccessURL');
			formData = removeFieldFromFormObject(formData, 'createErrorURL');
			jQuery.post('/pal/json/loginAJAXResponse.jsp', formData, function(data){
				if (data.success){
					if (data.overrideURL){
						window.location = data.overrideURL;
					} else if ($('#redirectOverride').val()){
						var redirectURL = $('#redirectOverride').val()
						window.location = redirectURL;
					} else if ($('#successRedirect').val()){
						var redirectURL = $('#successRedirect').val()
						window.location = redirectURL;
					} else {
						var refererURL = $('#referer').val();
						window.location=refererURL;
					}
				} else {
					if (data.overrideURL){
						window.location = data.overrideURL;
					} else {
						var errors = "";
						for (var i=0; i<data.errors.length; i++){
							errors = errors + '<p class="errormsg">' + data.errors[i] + '</p>';
						}
						$('#registerContainer').attr('style','height:auto;');
						$('#registerErrors').html(errors);
					}
				}
			}, 'json').error(function(a,b,c){
				alert(a + ", " + b + ", " + c);
			});
		} catch(e) {
			alert(e);
		}
		return false;
	})
   $("#registerLink").click(function() {
     launchLoginAccountWindow();
     return false;
   });
   $("#myAccountNameEditButton").click(function(){
	   editName();
	   return false;
   })
   $("#myAccountNameCancelButton").click(function(){
	   cancelEditName();
	   return false;
   })
   $("#myAccountEmailEditButton").click(function(){
	   editEmail();
	   return false;
   })
   $("#myAccountEmailCancelButton").click(function(){
	   cancelEditEmail();
	   return false;
   })
   $("#myAccountPasswordEditButton").click(function(){
	   editPassword();
	   return false;
   })
   $("#myAccountPasswordCancelButton").click(function(){
	   cancelEditPassword();
	   return false;
   })
   $("#myAccountGenderEditButton").click(function(){
	   editGender();
	   return false;
   })
   $("#myAccountGenderCancelButton").click(function(){
	   cancelEditGender();
	   return false;
   })
   $("#myAccountBirthDate").datepicker();
   $(".loginRedirect").click(function(){
	   var href = $(this).attr('href');
	   launchLoginAccountWindow(href);
	   return false;
   })
 });

