// Load On Document Ready;
$(document).ready(function(){
	
	$("a[href=#top]").click(function(){
		$('html, body').animate({scrollTop:0}, 'slow');
		return false;
	});
	
	initRegisterModal();
	initLoginModal();
	initUpdateModal();
	initSubscribeModal();
	initReviewModal();
	
	$("#logout-btn").click(function(e){
		e.preventDefault();
		$.post("user/logout",function(data){
			window.location.reload();
		});
	});

});

/********************* Register *****************/
function initRegisterModal(){
	var register_options = {
			title     : "REGISTER",
			buttons   : {"REGISTER" : function(){if(validateReg()){$(".af-form-wrapper").submit()}}},
			minHeight : 420,
			width  	  : 700,
			modal     : true,
			autoOpen  : false
	};
	
	$("#register").dialog(register_options);
	
	$(".button2, .action-add-me, .reg-btn").click(function(e){
		e.preventDefault()
		$("#register").dialog('open');
	});
	
	$("#awf_field-22745936").change(function(){
		$.post('user/check-email',{'emailAddress' : $(this).val()},function(data){
			var result = $.parseJSON(data);
			if(result.status == 'email exists'){
				$("#emailCheck").val("1");
			}else{
				$("#emailCheck").val("");
			}
		});
	});
	
	// hide dropdown list of businesses until user selects "I Am A: Business Owner"
	$(".businessList").hide();
	$(".userType").click(function(){
		if($(this).val() == 'Business Owner'){
			if($("#listname").val() == "btbntest"){
				$("#listname").val("btbntest2");
			}
			if($("#listname").val() == "be-the-boss-net"){
				$("#listname").val("be-the-boss-biz");
			}
			$(".businessList").show();
		}else{
			if($("#listname").val() == "btbntest2"){
				$("#listname").val("btbntest");
			}
			if($("#listname").val() == "be-the-boss-biz"){
				$("#listname").val("be-the-boss-net");
			}
			$("#awf_field-22748039").val("0");
			$(".businessList").hide();
		}
	});
}
/********************* Login *****************/
function initLoginModal(){
	var login_options = {
			title     : "LOGIN",
			buttons   : {"LOGIN" : function(){$("#login-form").submit();}},
			height 	  : 250,
			width  	  : 350,
			modal     : true,
			autoOpen  : false
	};

	$("#sign-in").dialog(login_options);

	$(".button1, .login-btn").click(function(e){
		e.preventDefault()
		$("#sign-in").dialog('open');
	});
	
	$("#login-form").submit(function(e){
		e.preventDefault();
		$.post("user/login", $("#login-form").serialize(),loginCallback);
	});
}
/********************* Update Account *****************/
function initUpdateModal(){
	$("#tabs").tabs();
	var update_options = {
			title     : "UPDATE YOUR PROFILE",
			buttons   : {"Update" : function(){$("#update-form").submit();}},
			height 	  : 600,
			width  	  : 650,
			modal     : true,
			autoOpen  : false
	};
	
	$("#update").dialog(update_options);
	
	if($(".iUserType:checked").val() == 0){
		$("#update-business").hide();
	}
	
	$(".iUserType").focus(function(){
		if($(this).val() == '1'){
			$("#update-business").show();
		}else{
			$("#update-business").hide();
		}
	});
	$("#update-form").submit(function(e){
		e.preventDefault();
		var params = {
			'cNameF' 	   : $("#update-cNameF").val(),
			'cNameL' 	   : $("#update-cNameL").val(),
			'cEmail' 	   : $("#update-cEmail").val(),
			'iZip'		   : $("#update-iZip").val(),
			'cPassword1'   : $("#update-cPassword1").val(),
			'cPassword2'   : $("#update-cPassword2").val(),
			'iUserType'    : $("input[name=iUserType]:checked").val(),
			'iBusinessID'  : $("#update-iBusinessID").val(),
			'cTitle'       : $("#update-cTitle").val(),
			'cAboutText'   : $("#update-cAboutText").val(),
			'facebook' 	   : $("#update-Facebook").val(),
			'twitter' 	   : $("#update-Twitter").val(),
			'linkedIn' 	   : $("#update-LinkedIn").val(),
			'googlePlus'   : $("#update-GooglePlus").val(),
			'personalSite' : $("#update-PersonalSite").val(),
			'userTypeChange' : $("#userTypeChange").val(),
			'adminCheck'   : $(".adminCheck").val()
		};
		$.post("user/update", params, updateCallback);
	});
	
	$("#edit-profile").click(function(e){
		e.preventDefault();
		$("#update").dialog('open');
	});
}
/********************* Subscribe to Newsletter *****************/
function initSubscribeModal(){
	var subscribe_options = {
		title     : "Subscribe to Our Newsletter",
		height	  : 300,
		width  	  : 440,
		modal     : true,
		autoOpen  : false,
		resizable : false,
		draggable : false
	};

	$("#subscribe-modal").dialog(subscribe_options);
	
	$(".subscribe-link").click(function(e){
		e.preventDefault();
		$("#subscribe-modal").dialog('open');
	});
}

/***************** Submit Review *******************************/
function initReviewModal(){
	var review_options = {
		title     : "Submit a Review - " + $("#businessName").val(),
		height	  : 830,
		width  	  : 700,
		modal     : true,
		autoOpen  : false,
		resizable : false,
		draggable : false,
		close     : function(){
			location.hash = '';
		}
	}
	
	$("#review-modal").dialog(review_options);
	
	$(".add-review-btn").click(function(e){
		e.preventDefault();
		$("#review-modal").dialog('open');
	});
	
	$("#cDescription").focus(function(){
		if($(this).val() == "Enter Your Review Here"){
			$(this).val("");
			$(this).css({'color':'#000','font-style':'normal'});
		}
	});
	
	$("#reviewSubmit").click(function(e){
		e.preventDefault();
		$.post('user/insert-review',$("#submitReview").serialize(),function(data){
			var result = $.parseJSON(data);
			if(result.status){
				$("#review-modal").dialog('close');
				alert(result.successMessage);
				if(window.isReg){
					location.href = 'about/' + $("#aboutURL").val();
				}
			}else{
				var errorString;
				errorString = result.error.title ? result.error.title + "\n" : "";
				errorString += result.error.desc ? result.error.desc + "\n" : "";
				errorString += result.error.rating ? result.error.rating : "";
				alert(errorString);
			}
		});
	});
}
/******************************************************************/

function loginCallback(data){
	if(data == 'valid'){
		window.location.reload();
	}else{
		$("#login-error").html(data);
	}
}

function updateCallback(data){
	var result = $.parseJSON(data);
	if(result.status){
		$("#update").dialog('close');
		alert("Your account has been updated.");
		if(!result.redirect){
			location.reload();
		}else{
			location.href = 'mlm-directory';
		}
	}else{
		var errorString = "";
		for(var i in result.errors){
			errorString += result.errors[i];
		}
		alert(errorString);
	}
}

/******* Validate Registration ***********/
function validateReg(){
	var flag = true;
	var errorString = "";
	$(".required").each(function(){
		var errorMsg;
		switch($(this).attr('name'))
		{
			case 'name (awf_first)':
			errorMsg = "Please Enter A Valid First Name<br />";
			break;
			case 'name (awf_last)':
			errorMsg = "Please Enter A Valid Last Name<br />";
			break;
			case 'email':
			errorMsg = "Please Enter A Valid E-Mail Address<br />";
			break;
			case 'zipcode':
			errorMsg = "Please Enter A Valid Zip Code<br />";
			break;
			case 'custom Password':
			errorMsg = "Please Complete Password Field 1<br />";
			break;
			case 'custom Re-Enter Password':
			errorMsg = "Please Complete Password Field 2<br />";
			break;
		}
		if(!$(this).val()){
			flag = false;
			errorString += errorMsg;
		}
	})
	
	// format names and e-mails
	var lower_fname = $("#awf_field-22745935-first").val().toLowerCase();
	var fLetterfName = lower_fname.charAt(0).toUpperCase();
	var clean_fname = fLetterfName + lower_fname.substr(1);
	$("#awf_field-22745935-first").val(clean_fname);
	
	var lower_lname = $("#awf_field-22745935-last").val().toLowerCase();
	var fLetterlName = lower_lname.charAt(0).toUpperCase();
	var clean_lname = fLetterlName + lower_lname.substr(1);
	$("#awf_field-22745935-last").val(clean_lname);
	
	var clean_email = $("#awf_field-22745936").val().toLowerCase();
	$("#awf_field-22745936").val(clean_email);
	
	var emailRegex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
	if($('#awf_field-22745936').val() && !$('#awf_field-22745936').val().match(emailRegex)){
		flag = false;
		errorString += "Please Enter A Valid E-Mail Address<br />";
	}
	if($(".pw1").val() != $(".pw2").val()){
		flag = false;
		errorString += "Please Make Sure Both Password Fields Match Exactly<br />";	
	}
	if(!$(".adminCheck").val()){
		if($(".userType:checked").val() == "Business Owner" && $("#awf_field-22748039").val() == 0){
			flag = false;
			errorString += "Please Select Your Business Opportunity or Choose \"Business Seeker\" Above.<br />";
		}
	}
	if(($(".pw1").val() || $(".pw2").val()) && $(".pw1").val().length < 6){
		flag = false;
		errorString += "Please Make Sure Your Password Is At Least 6 Characters Long<br />";
	}
	if($("#emailCheck").val()){
		flag = false;
		errorString += "That E-Mail Address is Already Registered<br />";
	}
	if(!flag){
		$("#reg_errors").html(errorString);
	}else{
		if($('.userType:checked').val() == 'Business Seeker'){
			_gaq.push(['_trackEvent', 'Registration Type', 'Register', 'Business Seeker']);
		}else{
			_gaq.push(['_trackEvent', 'Registration Type', 'Register', 'Business Owner']);
		}
	}
	return flag;
}
