function login() {

	FB.ensureInit(function() {
		// Display FBConnect login window
		FB.Connect.requireSession();
		// Get user session state ...
		FB.Facebook.get_sessionState().waitUntilReady(function() {
			// If we are here it means the user has a valid session state and is now logged in
			$.getJSON('/ajax/user.php?action=connect', function(result) {
				if(result.type=="logged_in") {
					user_id = result.message;
					showReveal();			
				} else if(result.type=="email") {
					//change to email box and ask nicely
					checkPermissions();
					//showEmail();
				} else if(result.type=="connected") {
					//connected fine, now get permissions
					checkPermissions();
				} else {
					//alert(result.message);
				}
			});
			
		});
	});
	
}

function checkPermissions() {

	FB.ensureInit(function() {
		FB.Facebook.apiClient.users_hasAppPermission('publish_stream,offline_access,email', function(result) {
			
			FB.Connect.showPermissionDialog("publish_stream,offline_access,email",
			function(perm){
				$.getJSON('/ajax/user.php?action=permissions', function(result) {
					if(result.type=="email") {
						//change to email box and ask nicely
						showEmail();					
					} else if(result.type=="permissions") {
						//alert("welcome!! & reveal!!");
						user_id = result.message;
						welcome();
						showReveal();
					} else if(result.type=="link") {
						showLinkAccounts();
						$("#linkEmail").val(result.message);
					} else {
						//alert(result.message);
					}
				});
			},true, null);
			
		});
	});
}

function showEmail() {

	$('#codeWindow').jqm().jqmShow();
	$(".codeBox").hide();
	$("#codeEmail").show();

}

function showLinkAccounts() {

	$('#codeWindow').jqm().jqmShow();
	$(".codeBox").hide();
	$("#codeLink").show();

}

function showReveal() {
	
	$('#codeWindow').jqm().jqmShow();
	$("#codeRegistration").hide();
	$("#codeReveal").show();
	
}


function welcome() {
	
	$.get('/ajax/user.php?action=welcome');
	
}

function reveal(href,elem) {

	storeWin = window.open(href,'_blank','toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1');
	
	if(elem.hasClass('discount_code')) {
		storeWin.blur();
		$(".item_button",elem).hide();
		$(".item_reveal",elem).show();
	}
}



/*
function handlePermissions(perms) {
	if(!perm) {
		handlePermissionsDenied();
	} else {
		handlePermissionsGranted();
	}
}
*/

$(function() {

	$("#connect").click(function(){
		//alert('11');
		login();
		return false;
	});
	
	$(".discount .code_reveal").click(function(){
	
		id = $(this).parents("div.discount").attr("id");
		href = $(this).attr("href");
		elem = $(this).parents("div.discount");
	
		//Check if user if logged in
		//if(user_id!=0) {
		if(user_id!=0||user_id==0) {
			reveal(href,elem);		
		} else {
			reveal(href,elem);
			
			$('#codeWindow').load('/ajax/code_window.php?id='+id,function(){
			
				$(".initial").bind("focus", function(){
					if(this.value == this.defaultValue ) {
						this.value = "";
						$(this).addClass("focus");
					}
				});
				$(".initial").bind("blur", function(){
					if( !this.value.length ) {
						this.value = this.defaultValue;
						$(this).removeClass("focus");
					}
				});
				$('.code_reveal_reveal').click(function() {
					$('#codeWindow').jqm().jqmHide();
					return false;
				});
				$('#showCodeLogin').click(function() { 
					$("#showCodeLogin").hide();
					$("#codeLogin").show();
					$(".error").hide();
					return false;
				});
				$('#showCodeRegister').click(function() { 
					$("#codeFacebook").hide();
					$("#codeRegister").show();
					$("#codeLogin").hide();
					$("#showCodeLogin").show();
					$(".error").hide();
					return false;
				});
				$('#showCodeFacebook').click(function() { 
					$("#codeRegister").hide();
					$("#codeFacebook").show();
					$(".error").hide();
					return false;
				});
				$(".fbConnect").click(function(){
					login();
					return false;
				});
				$("#codeRegister .submit").click(function(){
					$("#regError").hide();
					$.post("/ajax/register.php",{
						email: $("#regEmail").val(),
						password: $("#regPassword").val()
					},function(result){
						if(result.type=="true") {
							//success
							$("#regError").hide();
							user_id = result.message;
							showReveal();
						} else {
							$("#regError").html(result.message);
							$("#regError").fadeIn(200);
						}
						
					}, "json");
					return false;
				});
				
				$("#codeSignup .submit").click(function(){
					$("#signupError").hide();
					$.post("/ajax/register.php",{
						email: $("#signupEmail").val()
					},function(result){
						if(result.type=="true") {
							//success
							$("#signupError").hide();
							user_id = result.message;
							showReveal();
						} else {
							$("#signupError").html(result.message);
							$("#signupError").fadeIn(200);
						}
						
					}, "json");
					return false;
				});
				
				$("#codeLogin .submit").click(function(){
					$("#loginError").hide();
					
					$.post("/ajax/login.php",{
						email: $("#loginEmail").val(),
						password: $("#loginPassword").val()
					},function(result){
						if(result.type=="true") {
							//success
							$("#loginError").hide();
							user_id = result.message;
							showReveal();
						} else {
							$("#loginError").html(result.message);
							$("#loginError").fadeIn(200);
						}
					}, "json");
					
					/*
					$.ajax({
						async: false,
						type: 'POST',
						url: "/ajax/login.php",
						data: {
							email: $("#loginEmail").val(),
							password: $("#loginPassword").val()
						},
						dataType: "json",
						success: function(result) {
							if(result.type=="true") {
								//success
								$("#loginError").hide();
								$('#codeWindow').jqm().jqmHide();
							} else {
								$("#loginError").html(result.message);
								$("#loginError").fadeIn(200);
							}
							test = "123123";
							return false;
						}
					});
					*/
					
					return false;
				});
				
				$("#codeEmail .submit").click(function(){
					$("#emailError").hide();
					$.post("/ajax/user.php?action=email",{
						email: $("#emailEmail").val()
					},function(result){
						if(result.type=="link") {
							//link two accounts!
							showLinkAccounts();
							$("#linkEmail").val($("#emailEmail").val());
						} else if(result.type=="true") {
							//success
							$("#emailError").hide();
							user_id = result.message;
							welcome();
							showReveal();
							
						} else {
							$("#emailError").html(result.message);
							$("#emailError").fadeIn(200);
						}
						
					}, "json");
					return false;
				});
				
				$("#codeLink .submit").click(function(){
					$("#linkError").hide();
					$.post("/ajax/user.php?action=link",{
						email: $("#linkEmail").val(),
						password: $("#linkPassword").val()
					},function(result){
					
						if(result.type=="true") {
							//success
							$("#linkError").hide();
							user_id = result.message;
							welcome();
							showReveal();
						} else {
							$("#linkError").html(result.message);
							$("#linkError").fadeIn();
						}
						
					}, "json");
					
					return false;
				});
				
				$(".jqmClose").click(function(){
					$('#codeWindow').jqm().jqmHide();
					return false;
				});
			
			});
			$('#codeWindow').jqm().jqmShow();
			
			$('#codeWindow').jqm({onHide:function(hash){
				hash.w.hide();
				hash.o.remove();
				reveal(href,elem);
				return false;
			}});
		}

		return false;
	});
	/*
	$("#codeWindow").click(function(){
		alert('dsf');
		
		return false;
	});
	*/
});
