//login click
function login(version) {
	//clear error messages
	jQuery("#facebox .content #loginError" + version).text("");

	//we have two identical forms, both of which are in the dom. So we need to make sure we're grabbing the right values on the right step.
	var username = jQuery("#facebox .content #username" + version).val();
	var password = jQuery("#facebox .content #password" + version).val();
	var useCookie = jQuery("#facebox .content #useCookie" + version).val();

	jQuery.get("/ajaxaction/AjaxLogin", { username: username, password: password, useCookie: useCookie, params: "/pid/4"},
			   function(xml){
				   jQuery(xml).find('AjaxLoginResp').each(function(){
						var result = jQuery(this).attr('result');

						if (result == "ok") {
							jQuery.cookie('Jesi_Template_Username', username);
							navigateSteps("login", "final");
						} else if (result == "unknown_user") {
							jQuery("#facebox .content #loginError" + version).text("No account with that username");
						} else if (result == "bad_password") {
							jQuery("#facebox .content #loginError" + version).text("Incorrect password");
						}		
						
				   });
			   }
		);

	return false;
}


function getProjects() {
jQuery.get("/ajaxaction/AjaxGetProjects", { params: "/pid/4" },
function(xml){
jQuery(xml).find('AjaxGetProjectsResp').each(function(){
var has_projects = jQuery(this).attr('has_projects');

if (has_projects == "true") {

var colorTool = jQuery.cookie('colorTools');

//Are we opening a color tool?  If so we just want to make all of these be links
//to the color tool but with the project name in the proper place.
//If not, give them links to the project itself.



jQuery(this).find("project").each(function() {
var url = jQuery(this).attr('url');
var title = jQuery(this).attr('title');


if (colorTool != undefined) {
//if we're opening a color tool
var folder = "<div class='folder'><table border='0' height='100%' cellspacing='0' cellpadding='0'>";
folder += "<tr><td valign='middle' align='center'><a href='#' onclick='openColorTool(\"";
folder += title + "\")'>" + title;
folder += "</a></td></tr></table></div>";
jQuery(folder).appendTo("#facebox .content #choose_project");
jQuery("#facebox .content #choose_project").show();

} else {

//If we're saving an image
var saveImageUrl = jQuery.cookie('saveImage');

if (saveImageUrl != undefined) {

escapedTitle = escape(title);
var imageType = jQuery.cookie('imageType');

var folder = "<div class='folder'> \
<table border='0' height='100%' cellspacing='0' cellpadding='0'> \
<tr> \
<td valign='middle' align='center'> \
<a href='#' onclick='saveToDreamFolder(\"" + saveImageUrl + "\", \"" + escapedTitle + "\", \"" + imageType + "\")'>" + title + "</a> \
</td> \
</tr></table></div>";

jQuery(folder).appendTo("#facebox .content #choose_project");
jQuery("#facebox .content #choose_project").show();


} else {


//Just give us links
var folder = "<div class='folder'> \
<table border='0' height='100%' cellspacing='0' cellpadding='0'> \
<tr> \
<td valign='middle' align='center'> \
<a href='" + url + "'>" + title + "</a> \
</td> \
</tr></table></div>";

jQuery(folder).appendTo("#facebox .content #goto_project");
jQuery("#facebox .content #goto_project").show();
}
}

								

								
							});
							
						} else if (has_projects == "false") {

						} 	

						//clear the cookie
						//jQuery.cookie('saveImage', null);
						
				   });
			   }
		);		
}		


//Creates an account
function createAccount() {

	//clear errors
	jQuery("#facebox .content #registerError2").text("");
	
	//Set username to email
	var newUserProp_email = jQuery('#facebox .content #newUserProp_email').val();
	var newUser_username = newUserProp_email;
	
	var newUserProp_firstname = jQuery("#facebox .content #newUserProp_firstname").val();
	var newUserProp_homeAddress = jQuery("#facebox .content #newUserProp_homeAddress").val();
	var newUserProp_city = jQuery("#facebox .content #newUserProp_city").val();
	var newUserProp_state = jQuery("#facebox .content #newUserProp_state").val();


	//Make sure everything required is filled out first.
	if (newUserProp_firstname == "") {

		jQuery("#facebox .content #registerError2").append("Name is a required field.");

	} else {

		
		jQuery.get("/ajaxaction/AjaxRegister", { newUser_username: newUser_username,	newUserProp_homeAddress: newUserProp_homeAddress,newUserProp_city: newUserProp_city,  newUserProp_state: newUserProp_state,	newUserProp_email: newUserProp_email, newUserProp_firstname: newUserProp_firstname, accountExistenceCheck: "no", params: "/pid/4"  },
				   function(xml){
					   jQuery(xml).find('AjaxRegisterResp').each(function(){
							var result = jQuery(this).attr('result');
							if (result == "error") {

								jQuery(this).find("errorMessage").each(function() {
									var details = jQuery(this).attr("details");
									jQuery("#facebox .content #registerError2").append(details + "<br />");
								});								
								
								
							} else if (result == "success") {
								//Step 3
								navigateSteps("register", 3);
							}		
					   });
				   }
			);

	}
	return false;		
}


//Verifies user doesn't exist
function accountExistenceCheck()  {

	//clear errors
	jQuery('#facebox .content #registerError').text("");
	
	var newUserProp_email = jQuery('#facebox .content #newUserProp_email').val();
	var newUser_username = newUserProp_email;

	if (newUser_username == "") {
		jQuery('#facebox .content #registerError').text("Email is a required field");
		
	} else {
		
			jQuery.get("/ajaxaction/AjaxRegister", {newUser_username: newUser_username, accountExistenceCheck: "ok", params: "/pid/4"	}, 
					   function(xml){
						   jQuery(xml).find('AjaxRegisterResp').each(function(){
								var result = jQuery(this).attr('result');
	
								if (result == "error") {
									jQuery('#facebox .content #registerError').text("Account with that name already exists");
								}  else {
									navigateSteps("register", 2);
								}
								
						   });
						}
			);

	}

}



function openColorTool(folderName) {

	var username = jQuery.cookie('Jesi_Template_Username');
	var dreamPainterParams = jQuery.cookie('dreamPainterParams');
	
	var dreamPainterLink =  dreamPainterUrl + "?";
	if ((username != undefined) && (username != "guest")) {
		dreamPainterLink += "projectName=" + folderName + "&userName=" + username + "&";
	}
	dreamPainterLink += "dreamSaveURL=http://" + window.location.hostname + "/Jahia/imageSaverKey&Height=400&Width=300";

	if (dreamPainterParams != null) {
		dreamPainterLink += ("&" + dreamPainterParams);
	}

	var colorSchemerLink = colorSchemerUrl;
	if (colorSchemerLink.indexOf("?") >= 0) {
		colorSchemerLink += "&";
	} else {
		colorSchemerLink += "?";
	}
	if ((username != undefined) && (username != "guest")) {	
		colorSchemerLink += "projectName="+ folderName + "&userName=" + username + "&";
	}
	colorSchemerLink += "dreamSaveURL=http://" + window.location.hostname + "/Jahia/imageSaverKey&Height=400&Width=300";

	var colorExplorerLink = colorExplorerUrl;
	if (colorExplorerLink.indexOf("?") >= 0) {
		colorExplorerLink += "&";
	} else {
		colorExplorerLink += "?";
	}
	if ((username != undefined) && (username != "guest")) {	
		colorExplorerLink += "projectName=" + folderName + "&userName=" + username + "&";
	}
	colorExplorerLink += "dreamSaveURL=http://" + window.location.hostname + "/Jahia/imageSaverKey&Height=400&Width=300";
	
	var designByNineLink = designByNineUrl + "?";
	if ((username != undefined) && (username != "guest")) {	
		designByNineLink += "projectName=" + folderName + "&userName=" + username + "&";
	}
	designByNineLink += "dreamSaveURL=http://" + window.location.hostname + "/Jahia/imageSaverKey&Height=400&Width=300";

	
	var colorTool = jQuery.cookie('colorTools');

	switch (colorTool) {
		case "dreamPainter":
			window.open(dreamPainterLink, target="dreamPainter");
			break;

		case "colorSchemer":
			window.open(colorSchemerLink , target="colorSchemer");
			break;

		case "colorExplorer":
			window.open(colorExplorerLink, target="colorExplorer");
			break;

		case "designBy9":
			window.open(designByNineLink, target="designByNine");
			break;
	}

	jQuery.cookie('colorTools', null);

	jQuery(document).trigger('close.facebox');


}


function createProject(projectName) {
	jQuery.get("/ajaxaction/AjaxCreateProject", {project_name: projectName, params: "/pid/4"	}, 
			   function(xml){
				   jQuery(xml).find('AjaxCreateProjectResp').each(function(){
						var result = jQuery(this).attr('result');
						if (result == "project_exists") {
							jQuery('#facebox .content #createProjectError').text("Project with that name already exists");
						}  else if (result == "error") {
							jQuery('#facebox .content #createProjectError').text("Error creating project.  Please try again.");
						} else if(result == "not_logged_in") {
							jQuery('#facebox .content #createProjectError').text("Must be logged in to create a project.");
						} else  if (result == "ok") {
							jQuery('#facebox .content #createProjectError').text("Project created successfully.");

							//If we're using a color tool we want to open the color tool.
							//If we're saving an image we want to save the image
							//If not we want to go to the project page
							var colorTool = jQuery.cookie('colorTools');
							var imageUrl = jQuery.cookie('saveImage');
							var imageType = jQuery.cookie('imageType');
							
							if (colorTool != undefined) {
								openColorTool(projectName);
							} else if (imageUrl != undefined) {
								saveToDreamFolder(imageUrl, projectName, imageType);
							} else {
								window.location = "http://" + window.location.hostname + myDreamFolderUrl + projectName;
							}
						}
						
				   });
				}
	);
	
}

function saveToDreamFolder(imageUrl, projectFolder, imageType) {
	jQuery.get("/ajaxaction/AjaxSaveImage", { image_url: imageUrl, project_folder: projectFolder, params: "/pid/4", image_type: imageType },
			   function(xml){
				   jQuery(xml).find('AjaxSaveImageResp').each(function(){
						var result = jQuery(this).attr('result');
						if (result == "error") {
							jQuery('#facebox .content #createProjectError').text("Error saving image to project");
						} else if (result == "ok") {
							jQuery('#saveToDream').text("Saved to " + unescape(projectFolder) + " project.");
							jQuery(document).trigger('close.facebox');
						} else if (result == "not_logged_in"){
							jQuery('#facebox .content #createProjectError').text("You need to be logged in to save to a project.");
						}		
				   });
			   }
		);

}		

function resetPassword() {

	//clear error messages
	jQuery("#facebox .content #resetPassword").text("");

	//we have two identical forms, both of which are in the dom. So we need to make sure we're grabbing the right values on the right step.
	var username = jQuery("#facebox .content #username").val();
	jQuery.get("/ajaxaction/AjaxResetPassword", { username: username,  params: "/pid/4"},
			   function(xml){
				   jQuery(xml).find('AjaxResetPasswordResp').each(function(){
						var result = jQuery(this).attr('result');

						if (result == "ok") {
							jQuery("#facebox .content #resetPassword").html("Your password has been reset and sent to you.  " +
									"Click <a href=\"#\" onclick=\"navigateSteps('', 'start');\">here</a> to log in once " + 
									"you receive the e-mail.");
						} else if (result == "unknown_user") {
							jQuery("#facebox .content #resetPassword").text("No account was found with that username.  " +
									"Please enter a valid username.");
						} 	
						
				   });
				   
			   }
		);

	return false;
}	



function navigateSteps (type, stepNum) {

	jQuery("#facebox .content #first_step").hide();
	jQuery("#facebox .content #forgotPassword_step").hide();
	jQuery("#facebox .content #login_step1").hide();
	jQuery("#facebox .content #login_step2").hide();
	jQuery("#facebox .content #register_step1").hide();
	jQuery("#facebox .content #register_step2").hide();
	jQuery("#facebox .content #register_step3").hide();
	jQuery("#facebox .content #final_step").hide();
	jQuery("#facebox .content #processing").hide();

	//if called before we put them in the facebox. 
	jQuery("#first_step").hide();
	jQuery("#forgotPassword_step").hide();
	jQuery("#login_step1").hide();
	jQuery("#login_step2").hide();
	jQuery("#register_step1").hide();
	jQuery("#register_step2").hide();
	jQuery("#register_step3").hide();
	jQuery("#final_step").hide();
	jQuery("#processing").hide();



	
	if (stepNum == "final") {
		var loginOnly = jQuery.cookie('loginOnly');

		//Reset the cookie
		jQuery.cookie('loginOnly', null);
		
		if (loginOnly != 'true') {
			getProjects();
			jQuery("#facebox .content #final_step").show();
			jQuery("#final_step").show();
		} else if (type == 'login') {
			
			location.reload(true);
			jQuery("#facebox .content #processing").show();
			
			jQuery("#processing").show();			

			
		}
	} else if (stepNum == "start") {
		jQuery("#facebox .content #login_step1").show();
		jQuery("#facebox .content #register_step1").show();

		jQuery("#login_step1").show();
		jQuery("#register_step1").show();
	} else if (stepNum == "forgotPassword") {
		
		jQuery("#facebox .content #forgotPassword_step").show();
		jQuery("#forgotPassword_step").show();
	} else {
		jQuery("#facebox .content #" + type + "_step" + stepNum).show();
		
		jQuery("#" + type + "_step" + stepNum).show();
	}
	
}


