function header_login_script() {
	$("#login_form").validate({
		rules: {
			login_username: {
				required: true
			},
			login_password:{
				required: true
			}
			
		},
		
		messages: {
			login_username: {
				required: "Please enter Username."
			},
			login_password:{
				required: "Please enter password"
			}
		},
		
		submitHandler: function(form) {
			ajax_login();
		}
		
	});
}

function ajax_login(){
	var username = $("#login_username").val();
	var password = $("#login_password").val();
	var flag = "user_login";
	var params = "username="+username+"&password="+password+"&flag="+flag;
	
	$.post("ajax_handler.php", params, function(data) {
		if (data == 1) {
			location.href = "index.php";
		}
		else if(data == 0) {
			$("#success_message").html("Username or Password is Incorrect");
		}
		else if (data == 3) {
			$("#success_message").html("Your Membership is expired.");
		}
	});
	return false;
}

function forgot_password_handler() {
	var username = $("#username").val();
	var params = "username="+username+"&flag=forgot_password";
	$.post("ajax_handler.php", params, function(data) {
		if (data == "1") {
			$("#error_message").html("A link to reset your password has been sent to you.");
			$("#username").val("");
		}
		else {
			$("#error_message").html("Error Sending Email.");	
		}
	});
}

function registration_form_validator() {
	$("#register_form").validate({
		rules: {
			username: {
				required:true,
				remote: {
					url:"ajax_handler.php",
					type:"post",
					data: {
						username:function() {
							return $("#username").val();
						},
						flag:"does_user_exists"
					}
				}
			},
			email: {
				required:true,
				email:true,
				remote: {
					url:"ajax_handler.php",
					type:"post",
					data: {
						username:function() {
							return $("#email").val();
						},
						flag:"does_email_exists"
					}
				}
			},
			password: {
				required:true,
				minlength:5
			},
			confirmPassword: {
				required:true,
				equalTo:"#password"
			},
			first_name: {
				required:true
			},
			last_name: {
				required:true
			},
			membership_type: {
				required:true
			}
		},
		messages: {
			username: {
				required: "Please Enter Username",
				remote: "Username already exists"
			},
			email: {
				required: "Please Enter a valid Email",
				email: "Please Enter a valid Email",
				remote: "Email already exists"
			},
			password: {
				required:"Please Enter Password",
				minlength:"Password must be atlest 5 characters long"
			},
			confirmPassword: {
				required:"Please Confirm Password",
				equalTo:"Passwords does not match"
			},
			first_name: {
				required:"Please Enter First Name"
			},
			last_name: {
				required:"Please Enter Last Name"
			},
			membership_type: {
				required:"Please select a Membership Plan"
			}
		}
	
	});
	/*
	$("#membership_type").change(function() {
		if ( $(this).val() == "1" ) {
			$("#membership_period_row").hide();
		}
		else {
			$("#membership_period_row").show();
		}
	});
	*/
}


function edit_profile_form_validator() {
	$("#edit_profile_form").validate({
		rules: {
			username: {
				required:true,
				remote: {
					url:"ajax_handler.php",
					type:"post",
					data: {
						username:function() {
							return $("#username").val();
						},
						flag:"edit_profile_does_user_exists",
						user_id:function() {
							return $("#hidden_user_id").val();
						},
						
					}
				}
			},
			email: {
				required:true,
				email:true,
				remote: {
					url:"ajax_handler.php",
					type:"post",
					data: {
						username:function() {
							return $("#email").val();
						},
						flag:"edit_profile_does_email_exists",
						user_id:function() {
							return $("#hidden_user_id").val();
						}
					}
				}
			},
			password: {
				required:true,
				minlength:5
			},
			confirmPassword: {
				required:true,
				equalTo:"#password"
			},
			first_name: {
				required:true
			},
			last_name: {
				required:true
			},
			membership_type: {
				required:true
			}
		},
		messages: {
			username: {
				required: "Please Enter Username",
				remote: "Username already exists"
			},
			email: {
				required: "Please Enter a valid Email",
				email: "Please Enter a valid Email",
				remote: "Email already exists"
			},
			password: {
				required:"Please Enter Password",
				minlength:"Password must be atlest 5 characters long"
			},
			confirmPassword: {
				required:"Please Confirm Password",
				equalTo:"Passwords does not match"
			},
			first_name: {
				required:"Please Enter First Name"
			},
			last_name: {
				required:"Please Enter Last Name"
			},
			membership_type: {
				required:"Please select a Membership Plan"
			}
		}
	});

}

function change_password_validation () {
	$("#change_password_form").validate({
		rules: {
			current_password: {
				required: true,
				minlength: 5
			},
			new_password:{
				required: true,
				minlength: 5
			},
			confirm_password: {
				required: true,
				equalTo:"#new_password"
			}
			
		},
		
		messages: {
			current_password: {
				required: "Please Enter Current Password"
			},
			new_password:{
				required: "Please Enter New Password",
				minlength: "Password must have atleset 5 letters"
			},
			confirm_password: {
				required: "Please Confirm New Password",
				equalTo:"Passwords does not match"
			}
		},
		submitHandler:function(form) {
			
			var current_password = $("#current_password").val();
			var new_password = $("#new_password").val();
			var flag = "change_password";
			var params = "current_password="+current_password+"&password="+new_password+"&flag="+flag;
			
			$.post("ajax_handler.php", params, function(data) {
				if (data == "0") {
					$("#error_message").html("Error changing Password");
				}
				else if (data == "1") {
					$("#error_message").html("Password has been changed.");
					$("#current_password").val("");
					$("#new_password").val("");
					$("#confirm_password").val("");
				}
				else if (data == "3") {
					$("#error_message").html("Password is Incorrect");
				}
			});
		}
	});
}

function add_area_handler() {
	$("#add_area_form").validate({
		rules: {
			area: {
				required: true,
				remote: {
					url:"ajax_handler.php",
					type:"post",
					data: {
						area:function() {
							return $("#area").val();
						},
						area_id:function() {
							return $("#area_id").val();
						},
						flag:"does_area_exists"
					}
				}
			}
		},
		messages: {
			area: {
				required: "Please Enter Area name",
				remote : "Area already exists"
			}
		}
	
	});
	
	$(".thickbox").click(function() {
		$("#area").focus();
	});

}

function add_item_handler() {
	$("#add_item_form").validate({
		rules: {
			item_name: {
				required: true
			},
			on_hand: {
				required: true,
				number:true
			},
			goal: {
				required: true,
				number:true
			},
			barcode: {
				required:true,
				digits:true,
				rangelength: [8, 13],
				remote: {
					url:"ajax_handler.php",
					type:"post",
					data: {
						barcode:function() {
							return $("#barcode").val();
						},
						area_id:function() {
							return $("#area_id").val();
						},
						item_id:function() {
							return $("#item_id").val();
						},
						flag:"does_barcode_exists"
					}
				}
				
			}
			
		},
		messages: {
			item_name: {
				required: "Please Enter Item Name"
			},
			on_hand: {
				required: "Please Enter On Hand Quantity",
				number: "Please Enter a numeric value only"
			},
			goal: {
				required: "Please Enter Goal Quantity",
				number: "Please Enter a numeric value only"
			},
			barcode: {
				required:"Please enter barcode",
				remote:"Item already exists in this area"
			}
		}
	
	});
	
	$("#item_name, #goal, #on_hand, #item_type_id, #item_type").attr("disabled", "disabled");
	
	$("#item_name, #goal, #on_hand, #item_type_id, #item_type").parent().addClass("disabled_field");
	$("#item_name, #goal, #on_hand, #item_type_id, #item_type").addClass("disabled_field");
	
	$("#barcode").keyup(function() {
		var barcode = $(this).val();
		var barcode = $.trim(barcode);
		
		if (barcode.length != 8 && barcode.length != 12 && barcode.length != 13) {
			$("#item_name, #goal, #on_hand, #item_type_id, #item_type").val("");
			$("#item_name, #goal, #on_hand, #item_type_id, #item_type").attr("disabled", "disabled");
			$("#item_name, #goal, #on_hand, #item_type_id, #item_type").parent().addClass("disabled_field");
			$("#item_name, #goal, #on_hand, #item_type_id, #item_type").addClass("disabled_field");
			return;
		}
		
		$("#loading").removeClass("off");
		
		var params = "upc="+barcode;
		
		$.post("upc_lookup.php", params, function(data) {
			$("#loading").addClass("off");
			var obj = $.parseJSON(data);
			var status = obj.status;
			if (status == 0) {
				$("#item_name, #goal, #on_hand, #item_type_id, #item_type").attr("disabled", "");
				$("#item_name, #goal, #on_hand, #item_type_id, #item_type").parent().removeClass("disabled_field");
				$("#item_name, #goal, #on_hand, #item_type_id, #item_type").removeClass("disabled_field");
			}
			else {
				var item_name = obj.item_name;
				$("#item_name").val(item_name);
				var type = obj.type;
				if (type > 0) {
					$('#item_type_id option[value=' + type +']"').attr("selected","selected")
				}
				
				$("#item_name, #goal, #on_hand, #item_type, #item_type_id").attr("disabled", "");
				$("#item_name, #goal, #on_hand, #item_type, #item_type_id").parent().removeClass("disabled_field");
				$("#item_name, #goal, #on_hand, #item_type, #item_type_id").removeClass("disabled_field");
			}
		});
	});
	
	$("#item_type").blur(function() {
		
		var item_type = $(this).val();
		if (item_type != "") {
			$("#item_type_id").val("-1");
		}
		
	});
}

function add_list_handler() {
	$("#add_list_form").validate({
		rules: {
			list: {
				required: true,
				remote: {
					url:"ajax_handler.php",
					type:"post",
					data: {
						list:function() {
							return $("#list").val();
						},
						list_id:function() {
							return $("#list_id").val();
						},
						flag:"does_shopping_list_exist"
					}
				}
			}
		
		},
		messages: {
			list: {
				required: "Please Enter List name",
				remote : "List already exists"
			}
		}
	
	});
	
	$(".thickbox").click(function() {
		$("#list").focus();
	});

}

function edit_item_handler() {
	$("#edit_item_form").validate({
		rules: {
			edit_item_name: {
				required: true
			},
			edit_on_hand: {
				required: true,
				number:true
			},
			edit_goal: {
				required: true,
				number:true
			}
		},
		messages: {
			edit_item_name: {
				required: "Please Enter Item Name"
			},
			edit_on_hand: {
				required: "Please Enter On Hand Quantity",
				number: "Please Enter a numeric value only"
			},
			edit_goal: {
				required: "Please Enter Goal Quantity",
				number: "Please Enter a numeric value only"
			},
		}
	
	});
}

function br_code_handler() {
	$("#br_code_form").validate({
		rules: {
			item_name: {
				required: true,
				remote: {
					url:"ajax_handler.php",
					type:"post",
					data: {
						item_name:function() {
							return $("#item_name").val();
						},
						flag:"does_custom_code_exists"
					}
				}
			},
			quantity: {
				required: true,
				digits: true,
				min: 1
			}
			
		},
		messages: {
			item_name: {
				required: "Please Enter Item Name",
				remote:"Custom Code already generated"
			}
		}
		
	});
}

function print_div(selector) {
		$('#'+selector).printElement();
}

function delete_area() {
	$(".delete_area").click(function() {
		var agree = confirm("Are you sure, you want to delete this Area and all its Items?");
		if (!agree) {
			return false;
		}
		var area_id = $(this).attr("area_id");
		var flag = "area_delete_request";	
		var params = "area_id="+area_id+"&flag="+flag;
		
		$.post("ajax_handler.php", params, function(data) {
			if (data == "1"){
				window.location.reload();
			}
		});
		
	});
}

function delete_item() {
	$(".delete_item").click(function() {
		
		var agree = confirm("Are you sure, you want to delete this Item?");
		if (!agree) {
			return false;
		}
		var item_id = $(this).attr("item_id");
		var flag = "item_delete_request";
		var params = "item_id="+item_id+"&flag="+flag;
		
		$.post("ajax_handler.php", params, function(data) {
			if (data == "1"){
				window.location.reload();
			}
		});
	
	});
}

function delete_list() {
	$(".delete_list").click(function() {
		
		var agree = confirm("Are you sure, you want to delete this Shopping List?");
		if (!agree) {
			return false;
		}
		var list_id = $(this).attr("list_id");
		var flag = "shopping_list_delete_request";
		var params = "list_id="+list_id+"&flag="+flag;
		
		$.post("ajax_handler.php", params, function(data) {
			if (data == "1"){
				window.location.reload();
			}
		});
	
	});
}

function delete_device_api() {
	$(".delete_link").click(function() {
		var agree = confirm("Are you sure, you want to delete this Api?");
		if (!agree) {
			return false;
		} 
		var api_id = $(this).attr("id");
		var flag = "delete_device_api";
		var params = "api_id="+api_id+"&flag="+flag;
		
		$.post("ajax_handler.php", params, function(data) {
			if (data == "1"){
				window.location.reload();
			}
		});
	
	});
}

function reset_password_validation () {
	
	$("#reset_password_form").validate({
		rules: {
			new_password:{
				required: true,
				minlength: 5
			},
			confirm_password: {
				required: true,
				equalTo:"#new_password"
			}
			
		},
		
		messages: {
			new_password:{
				required: "Please Enter New Password",
				minlength: "Password must have atleset 5 letters"
			},
			confirm_password: {
				required: "Please Confirm the new Password",
				equalTo:"Passwords does not match"
			}
		},
		submitHandler:function(form) {
			
			var new_password = $("#new_password").val();
			var user_id = $("#hidden_user_id").val();
			var flag = "reset_password";
			var params = "password="+new_password+"&flag="+flag+"&user_id="+user_id;
			
			$.post("ajax_handler.php", params, function(data) {
				if (data == "0") {
					$("#error_message").html("Error saving Password");
				}
				else if (data == "1") {
					$("#error_message").html("Password has been saved.");
					$("#current_password").val("");
					$("#new_password").val("");
					$("#confirm_password").val("");
				}
			});
		}
	});
}


function custom_item_handler() {
	$("#add_custom_item").validate({
		rules: {
			item_name: {
				required: true
			},
			quantity: {
				required: true
			}
			
		},
		messages: {
			item_name: {
				required: "Please Enter Item Name"
			},
			quantity: {
				required: "Please Enter Quantity of the Item"
			}
		}
	
	});
}

function contact_us_handler() {
	$("#contact_us_form").validate({
		rules: {
			name: {
				required: true
			},
			email: {
				required: true,
				email: true
			},
			message: {
				required: true
			}
		},
		messages: {
			name: {
				required: "Please enter your Name"
			},
			email: {
				required: "Please enter your Email",
				email: "Please enter a valid Email"
			},
			message: {
				required: "Please enter some text message"
			}
		}
	
	});
}

function user_custom_items_handler() {
	$(".print").click(function() {
		var custom_item_id  = $(this).attr("id");
		
		var params = "custom_item_id="+custom_item_id;
		
		$.post("print_custom_item.php", params, function(data) {
			$("#printable").html(data);
			print_div("printable");
		});
	
	});
	
	$(".delete_link").click(function() {
		var agree = confirm("Are you sure, you want to delete this?");
		if (!agree) {
			return;
		}
		var custom_item_id  = $(this).attr("id");
		var params = "custom_item_id="+custom_item_id+"&flag=delete_custom_item";
		
		$.post("ajax_handler.php", params, function(data) {
			location.href = "custom_item.php";
		});
	});
}

function add_recipe_handler() {
	$("#add_recipe_form").validate({
		rules: {
			name: {
				required: true
			},
			directions: {
				required: true,
				number:true
			}
		},
		messages: {
			name: {
				required: "Please Enter Item Name"
			},
			directions: {
				required: "Please Enter Directions"
			}
		}
	
	});
}

function delete_recipe() {
	$(".delete_recipe").click(function() {
		
		var agree = confirm("Are you sure, you want to delete this Recipe?");
		if (!agree) {
			return false;
		}
		var recipe_id = $(this).attr("recipe_id");
		var user_id = $(this).attr("user_id");
		var flag = "recipe_delete_request";
		var params = "recipe_id="+recipe_id+"user_id="+user_id+"&flag="+flag;
		
		$.post("ajax_handler.php", params, function(data) {
			if (data == "1"){
				window.location.reload();
			}
		});
	});
}

function edit_recipe_handler() {
	$("#edit_recipe_form").validate({
		rules: {
			edit_name: {
				required: true
			},
			edit_directions: {
				required: true
			}
		},
		messages: {
			edit_name: {
				required: "Please Enter Item Name"
			},
			edit_directions: {
				required: "Please Enter On Hand Quantity"
			},
		}
	});
}

function switch_user() {
	$("#switch_user").change(function() {
		var user_id = $(this).attr("value");
		var flag = "switch_user";
		var params = "user_id="+user_id+"&flag="+flag;
		
		$.post("ajax_handler.php", params, function(data) {
			if (data == "1"){
				window.location.reload();
			}
			else {
				alert("Error switching users");
			}
		});
	});
}
