$(document).ready(function() {
	
	// PORTFOLIO REGISTER FORM
	$('.top-navigation .register a').click(function(e){
		e.preventDefault();
		
		// check if lead session variable is set or not
		var isLeadSessionVarSet = "";
		
		$.get('/my-portfolio/is-lead-session-var-set',
				function(json_object) {
				
					if(!$('#register-account').size()){
						$('<div class="hide"></div>')
							.appendTo('body')
							.load('/my-portfolio/is-lead-session-var-set',function(data){
									
								$('#register-account',this).dialog({
									autoOpen: false,
									dialogClass: 'dialog-window portfolio-window',
									draggable: false,
									resizeable: false,
									modal: true,
									closeText: 'Close',
									create: function() {
										Engine.enhancements.tabs(this);
										//Engine.enhancements.popups.loginForm();
									},
									open: function() {
										$('input:first',  this).focus();
									}
								});
								$('#register-account').dialog('open');
							});
					} else {
						$('#register-account').dialog('open');
					}
			}
		);
		
		return false;
	});
				
	$('form#portfolio-register-form .btn-submit').live('click', function(e){
		
		$("#portfolio-register-form").validate({
		/*showErrors: function(errorMap, errorList) {
			alert(this.numberOfInvalids()); 
			this.defaultShowErrors();
		},*/
        rules: {
			salutation: "required",
            first_name: "required",
            last_name: "required",         
            email: "required",
            password: "required",
            confirm_password: "required"
        },
        messages: {
			salutation: "*required",
            first_name: "*required",
            last_name: "*required",
			email: "*required",
            password: "*required",
            confirm_password: "*required"
		},
		submitHandler: function() {
			
			e.preventDefault();
		
			var dataString = $("form#portfolio-register-form").serialize();
			$.getJSON("/my-portfolio/add-user?jsoncallback=?",
				  dataString,
				  function(json_object) {
				    if (json_object.status == "success") {
					
						$('#register-account').dialog('close');
						
						if ($('.top-navigation li.welcome-back').length == 0) {
							$('<li class=\"welcome-back\">Welcome back,&nbsp;<em><strong>' + json_object.first_name + ' ' + json_object.last_name + '</strong></em></li>').insertAfter('.top-navigation li.sign-in');
						}
						$('.top-navigation li.register').remove();
						$('.top-navigation li.sign-in').remove();
						
						if (!$('#my-portfolio').size()) {
							$('<div class="hide"></div>').appendTo('body').load('/my-portfolio/view', function(data){
							
								$('#my-portfolio', this).dialog({
									autoOpen: false,
									dialogClass: 'dialog-window portfolio-window portfolio-window-registered',
									draggable: false,
									resizeable: false,
									modal: true,
									closeText: 'Close',
									create: function(){
										Engine.enhancements.scrollablePortfolio();
										Engine.enhancements.tabs(this);
									}
								});
								$('#my-portfolio').dialog('open');
							});
							
							
						}
						else {
						//$('#my-portfolio').dialog('open');
						}
						
					}
					else if (json_object.status == "email-exists") {
						alert("A user with this email already exists.");
					}
					else if (json_object.status == "passwords-do-not-match") {
						alert("Passwords do not match.");
					}
				});
			
			}
		});
		
	});
	// END PORTFOLIO REGISTER FORM
	
	
	
	// PORTFOLIO LOGIN FORM
	$('.sign-in a').live('click', function(){

					if(!$('#login-form').size()){
						$('<div class="hide"></div>')
							.appendTo('body')
							.load($(this).attr('href'),function(data){
								
								$('#login-form',this).dialog({
									autoOpen: false,
									dialogClass: 'dialog-window portfolio-window account-form',
									draggable: false,
									resizeable: false,
									modal: true,
									closeText: 'Close',
									create: function() {
										Engine.enhancements.popups.forgotPassword();
									}
								});
								$('#register-account').dialog('close');
								$('#login-form').dialog('open');
							});
					} else {
						$('#register-account').dialog('close');
						$('#login-form').dialog('open');
					}

					return false;
				});
				
	$('form#portfolio-login-form .btn-submit').live('click', function(e){
		e.preventDefault();
		
		var dataString = $("form#portfolio-login-form").serialize();
		$.getJSON("/my-portfolio/check-user?jsoncallback=?",
			  dataString,
			  function(json_object) {
			    if (json_object.status == "success") {
					
				 	$('#login-form').dialog('close');
					for (x in json_object.saved_models)
					{
						$('a#' + json_object.saved_models[x]).html("Saved!");
					}
					
					if ($('.top-navigation li.welcome-back').length == 0) {
						$('<li class=\"welcome-back\">Welcome back,&nbsp;<em><strong>' + json_object.first_name + ' ' + json_object.last_name + '</strong></em></li>').insertAfter('.top-navigation li.sign-in');
					}
					$('.top-navigation li.register').remove();
					$('.top-navigation li.sign-in').remove();
					
					if(!$('#my-portfolio').size()){
						$('<div class="hide"></div>')
							.appendTo('body')
							.load('/my-portfolio/view', {email: json_object.email} , function(data){
							
								$('#my-portfolio',this).dialog({
									autoOpen: false,
									dialogClass: 'dialog-window portfolio-window portfolio-window-registered',
									draggable: false,
									resizeable: false,
									modal: true,
									closeText: 'Close',
									create: function() {
										Engine.enhancements.scrollablePortfolio();
										Engine.enhancements.tabs(this);
									}
								});
								$('#my-portfolio').dialog('open');
							});
					} else {
						$('#my-portfolio').dialog('open');
					}
				} else if (json_object.status == "fail") {
						alert("Login failed.\nPlease retype your email address and password.");
				}
			});
	});
	
	$('form#portfolio-forgot-password-form .btn-submit').live('click', function(e){
		e.preventDefault();
		
		var dataString = $("form#portfolio-forgot-password-form").serialize();
		$.getJSON("/my-portfolio/send-password?jsoncallback=?",
			  dataString,
			  function(json_object) {
			    if (json_object.status == "success") {
						
				 	$('#forgot-password').dialog('close');
					alert("Your new password was sent to your email");
						
				} else if (json_object.status == "fail") {
						alert("User doesn't exist.");
				}
			});
	});
	
	$('form#portfolio-login-form a.register').live('click', function(e){
		e.preventDefault();
		
			if(!$('#register-account').size()){
				$('<div class="hide"></div>')
					.appendTo('body')
					.load('/my-portfolio/register',function(data){
									
						$('#register-account',this).dialog({
							autoOpen: false,
							dialogClass: 'dialog-window portfolio-window',
							draggable: false,
							resizeable: false,
							modal: true,
							closeText: 'Close',
							create: function() {
								Engine.enhancements.tabs(this);
								//Engine.enhancements.popups.loginForm();
							},
							open: function() {
								$('input:first',  this).focus();
							}
						});
						$('#login-form').dialog('close');
						$('#register-account').dialog('open');
					});
			} else {
				$('#login-form').dialog('close');
				$('#register-account').dialog('open');
			}
	});
	// END PORTFOLIO LOGIN FORM
	
	
	
	// MY PORTFOLIO
	$('.top-navigation .portfolio a').click(function(e){
		e.preventDefault();
		
		// check if portfolio session variable is set or not
		var isPortfolioSessionVarSet = "";
		$.getJSON("/my-portfolio/is-portfolio-session-var-set?jsoncallback=?",
			function(json_object) {
				if (json_object.isPortfolioSessionVarSet == "true") {
					
					// session variable is set -> my portfolio
					// delete div.hide and div.portfolio-window-registered
					$('div.portfolio-window-registered').prev().remove();
					$('div.portfolio-window-registered').remove();
					$('#my-portfolio').remove();
					
					$('<div class="hide"></div>')
						.appendTo('body')
						.load('/my-portfolio/view',function(data){

							$('#my-portfolio',this).dialog({
								autoOpen: false,
								dialogClass: 'dialog-window portfolio-window portfolio-window-registered',
								draggable: false,
								resizeable: false,
								modal: true,
								closeText: 'Close',
								create: function() {
									Engine.enhancements.scrollablePortfolio();
									Engine.enhancements.tabs(this);
								}
							});
							$('#my-portfolio').dialog('open');
						});
					
				} else {
					
					// session variable is not set -> login
					if(!$('#login-form').size()){
						$('<div class="hide"></div>')
							.appendTo('body')
							.load('/my-portfolio/login',function(data){
								
								$('#login-form',this).dialog({
									autoOpen: false,
									dialogClass: 'dialog-window portfolio-window account-form',
									draggable: false,
									resizeable: false,
									modal: true,
									closeText: 'Close',
									create: function() {
										Engine.enhancements.popups.forgotPassword();
									}
								});
								$('#register-account').dialog('close');
								$('#login-form').dialog('open');
							});
					} else {
						$('#register-account').dialog('close');
						$('#login-form').dialog('open');
					}
				}
		});
				
		return false;
	});
	
	$('form#my-portfolio-account-info-form .btn-submit').live('click', function(e){
		
		$("#my-portfolio-account-info-form").validate({
		/*showErrors: function(errorMap, errorList) {
			alert(this.numberOfInvalids()); 
			this.defaultShowErrors();
		},*/
        rules: {
			salutation: "required",
            first_name: "required",
            last_name: "required",         
            email: "required",
            password: "required",
            confirm_password: "required"
        },
        messages: {
			salutation: "*required",
            first_name: "*required",
            last_name: "*required",
			email: "*required",
            password: "*required",
            confirm_password: "*required"
		},
		submitHandler: function() {
			
			e.preventDefault();
		
			var dataString = $("form#my-portfolio-account-info-form").serialize() + '&email=' + $("form#my-portfolio-account-info-form #email").val();
			$.getJSON("/my-portfolio/save-user-profile-information?jsoncallback=?",
				  dataString,
				  function(json_object) {
				    if (json_object.status == "success") {
					
						$('#my-portfolio .user-msg em').html("<em><strong>" + json_object.first_name + " " + json_object.last_name + "</strong></em>");
						
						$('form#my-portfolio-account-info-form .status p').html('Profile Information saved');
						setTimeout("$('form#my-portfolio-account-info-form .status p').html('')", 3000);
						
					//$('form#my-portfolio-account-info-form .status #status_saved').attr('style', 'visibility: visible;');
					
					}
					else if (json_object.status == "password_not_match") {
						alert("Passwords don't match.");
						$('form#my-portfolio-account-info-form .status p').html('Profile Information not saved')
						//setTimeout("$('form#my-portfolio-account-info-form .status p').html('')", 5000);
					} else if (json_object.status == "user_not_exist") {
						alert("User doesn't exist.");
					}
				});
			
			}
		});
		
	});
	
	$('.dialog-window .header .log-out').live('click', function(e){
		e.preventDefault();
		
		var dataString = 'log-out=true';
		$.getJSON("/my-portfolio/log-out?jsoncallback=?",
			  dataString,
			  function(json_object) {
			    if (json_object.status == "success") {
					$('#my-portfolio').dialog('close');
					//$('.top-navigation li.register').css('display', 'inline');
					//$('.top-navigation li.sign-in').css('display', 'inline');
					
					if ($('.top-navigation li.register').length == 0 && $('.top-navigation li.sign-in').length == 0) {
						$('<li class=\"register\"><a href=\"/my-portfolio/register\">Register</a></li><li class=\"last sign-in\"><a href=\"/my-portfolio/login\">Sign In</a></li>').insertAfter('.top-navigation li.portfolio');
					}
					$('.top-navigation li.welcome-back').remove();
					location.href = window.location.pathname;
				 	
				} else if (json_object.status == "fail") {
					
				}
			});
	});
	
	$('.dialog-window .tabs .remove').live('click', function(e){
		e.preventDefault();
		
		var li_parent_class = $(this).parents('li').attr('class');
		var model_id = $(this).attr('id');
		
		if (li_parent_class == 'item first-item')
		{
			$(this).parents('li').next().attr('class', 'item first-item');
			$(this).parents('li').remove();
		} else {
			$(this).parents('li').remove();
		}
		
		var dataString = 'model_id=' + $(this).attr('id');
		$.getJSON("/my-portfolio/delete-model?jsoncallback=?",
			  dataString,
			  function(json_object) {
			    if (json_object.status == "success") {
					
					// reduce the number of saved models
					var savedModelsNums = $('span#saved-models-nums').html();
					$('span#saved-models-nums').html(savedModelsNums - 1);
					$('a#' + model_id).html("Add to My Portfolio");
					
					// resize the scroll bar width
					if (savedModelsNums > 3)
					{
						var scrollBarWidth = $('div#saved-plans .items-container > ul').css('width');
						$('div#saved-plans .items-container > ul').css('width', parseInt(scrollBarWidth) - 267);
					}
					/*
					if (json_object.numberOfSavedModels <= 3) {
						$('.dialog-window .tabs .items-container-scroll').css('overflow', 'hidden');
					}
				 	*/
				} else if (json_object.status == "fail") {
					//$('form#my-portfolio-account-info-form .status p').html('Profile Information not saved');
				}
			});
			
			
	});
	// END MY PORTFOLIO


	
	// ADD MODEL TO MY PORTFOLIO
	$('a.add-to-portfolio').click(function(e){
		e.preventDefault();
		var model_id = $(this).attr('id');
		var dataString = 'model_id=' + $(this).attr('id');
		$.getJSON("/my-portfolio/add-model?jsoncallback=?",
			  dataString,
			  function(json_object) {
			  	
			    if (json_object.status == "success") {
					
					$('a#' + model_id).html("Saved!");
				 	
				} else if (json_object.status == "fail") {
					
					if(!$('#login-form').size()){
						$('<div class="hide"></div>')
							.appendTo('body')
							.load('/my-portfolio/login',function(data){
								
								$('#login-form',this).dialog({
									autoOpen: false,
									dialogClass: 'dialog-window portfolio-window account-form',
									draggable: false,
									resizeable: false,
									modal: true,
									closeText: 'Close',
									create: function() {
										Engine.enhancements.popups.forgotPassword();
									}
								});
								$('#login-form').dialog('open');
							});
					} else {
						$('#login-form').dialog('open');
					}
					
				}
			});
	});
	// END ADD MODEL TO MY PORTFOLIO
	
	
	
	/*
	$('form#portfolio-login-form #btn-submit').click(function(e){
		e.preventDefault();
		alert('test');
	});
	*/
	
});

