// JavaScript Document
function pad(number, length) {
    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }
    return str;
}

function validate(element){
	var	reg_num = /(^\d+$)/;
	var	reg_float = /(^\d+\.\d\d$)/;
	var	reg_email = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var reg_date = /^20[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/;
	var reg_time = /^(0[0-9]|1[0-9]|2[0-4]):(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9])$/;
	
	if($(element).hasClass("comp")){
		if($(element).hasClass("email")){
			if(reg_email.test($(element).val()) == false || $(element).val() == null){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				$("#msgTxt").html("The <b>" + label + "</b> field is not formatted properly or it is has been left empty.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else if($(element).hasClass("password")){
			if($(element).val() == "" || $(element).val() == null || $(element).val().length < 6){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				$("#msgTxt").html("The <b>" + label + "</b> field must be more than 6 characters in length.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else if($(element).hasClass("str")){
			if($(element).val() == "" || $(element).val() == null){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				if(label == null){
					label = "Search";
				}
				$("#msgTxt").html("The <b>" + label + "</b> field has been left empty.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else if($(element).hasClass("unit")){
			if(reg_num.test($(element).val()) == false || $(element).val() == null || $(element).val() > 20){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				if(label == null){
					label = "Search";
				}
				$("#msgTxt").html("The <b>" + label + "</b> field has either been left empty, is not numeric or is bigger than 20.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else if($(element).hasClass("date")){
			if(reg_date.test($(element).val()) == false || $(element).val() == null){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				if(label == null){
					label = "Search";
				}
				$("#msgTxt").html("The <b>" + label + "</b> field is not formatted properly or it is has been left empty.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else if($(element).hasClass("time")){
			if(reg_time.test($(element).val()) == false || $(element).val() == null){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				$("#msgTxt").html("The <b>" + label + "</b> field is not formatted properly or it is has been left empty.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else if($(element).hasClass("num")){
			if(reg_num.test($(element).val()) == false || $(element).val() == null){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				$("#msgTxt").html("The <b>" + label + "</b> field is not numeric or it is has been left empty.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else if($(element).hasClass("float")){
			if(reg_float.test($(element).val()) == false || $(element).val() == null){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				$("#msgTxt").html("The <b>" + label + "</b> field is not numeric, missing a decimal point or it is has been left empty.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else{
			return true;	
		}
	}
	else{
		if($(element).hasClass("email") && ($(element).val() != "" && $(element).val() != null)){
			if(reg_email.test($(element).val()) == false){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				$("#msgTxt").html("The <b>" + label + "</b> field is not formatted properly or it is has been left empty.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else if($(element).hasClass("password") && ($(element).val() != "" && $(element).val() != null)){
			if($(element).val().length < 6){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				$("#msgTxt").html("The <b>" + label + "</b> field must be more than 6 characters in length.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else if($(element).hasClass("unit") && ($(element).val() != "" && $(element).val() != null)){
			if(reg_num.test($(element).val()) == false || $(element).val() > 20){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				if(label == null){
					label = "Search";
				}
				$("#msgTxt").html("The <b>" + label + "</b> field has either been left empty, is not numeric or is bigger than 20.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else if($(element).hasClass("date") && ($(element).val() != "" && $(element).val() != null)){
			if(reg_date.test($(element).val()) == false){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				if(label == null){
					label = "Search";
				}
				$("#msgTxt").html("The <b>" + label + "</b> field is not formatted properly or it is has been left empty.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else if($(element).hasClass("time") && ($(element).val() != "" && $(element).val() != null)){
			if(reg_time.test($(element).val()) == false){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				$("#msgTxt").html("The <b>" + label + "</b> field is not formatted properly or it is has been left empty.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else if($(element).hasClass("num") && ($(element).val() != "" && $(element).val() != null)){
			if(reg_num.test($(element).val()) == false){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				$("#msgTxt").html("The <b>" + label + "</b> field is not numeric or it is has been left empty.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else if($(element).hasClass("float") && ($(element).val() != "" && $(element).val() != null)){
			if(reg_float.test($(element).val()) == false){
				var id = $(element).attr("id");
				var label = $("label[for='" + id + "']").html();
				$("#msgTxt").html("The <b>" + label + "</b> field is not numeric, missing a decimal point or it is has been left empty.");
				$("#msgTxt").dialog("open");
				return false;
			}
			else{
				return true;
			}
		}
		else{
			return true;	
		}
	}
}

function replaceImg(id, ext){
	if($("#placeholder").length > 0){
		var img = "profiles/" + id + ext;
		$("#placeholder").css("backgroundImage", "url(" + img + ")");
	}
}

$(document).ready(function(){
	var menus = new Array("users", "1,2,4,5,7,8,23", "csts", "4,5", "pros", "7,8,23,29", "admins", "1,2", "prods", "10,11,13,14", "cont","24,25,26,27,28");
		
	$("#msgTxt").dialog({
		autoOpen: false,
		show: 'fade',
		modal: 'true',
		resizable: 'false',
		title: 'Silver Lakes Golf Academy',
		position: 'center',
		buttons: {
				Close: function() {
					$(this).dialog('close');
					$(this).html("");
				}
		}
	});
	
	$("#infoTxt").dialog({
		autoOpen: false,
		show: 'fade',
		modal: 'true',
		resizable: 'false',
		title: 'Silver Lakes Golf Academy',
		position: 'center',
		width: 'auto',
		open: function(){
				if($(".datepicker").length > 0){
					$(".datepicker").datepicker({
						dateFormat: 'yy-mm-dd',
						showOn: "both",
						buttonImage: "images/calendar.gif",
						buttonImageOnly: true,
						minDate: new Date()
					});
				}
			},
		close: function() {
				$('.editor').each(function(){
					var editor = $(this).ckeditorGet();
            		editor.destroy();
				});
			}
	});
	
	$("a[rel='gallery']").colorbox({slideshow: "true"});
	
	if($("#galleryBtn").length > 0){
		$("#galleryBtn").click(function(){
			$("a[rel='gallery']").first().click();
		});
	}
	
	if($("textarea.editor").length > 0){
		$("textarea.editor").ckeditor();
	}
	
	if($(".button").length > 0){
		$(".button").button();
	}
	
	$(".closeBtn").live("click", function(){
		$("#infoTxt").dialog('close');
	});
	
	if($("#abf_cond").length > 0){
		$("#abf_cond").change(function(){
			if($("#abf_cond").val() == "Date"){
				$("#abf_param")	.datepicker({
					dateFormat: 'yy-mm-dd'
				});
			}
			else{
				$("#abf_param")	.datepicker("destroy");
			}
		});
	}
	
	if($("#msgTxt").length > 0){
		if($("#msgTxt").html() != ""){
			$("#msgTxt").dialog("open");	
		}
	}
	
	$("form").live("submit", function(){
		var okay = false;
		$(':input', this).each(function(){
			okay = validate($(this));
			return okay;
		});
		return okay;
	});
	
	if($(".helpTemplates").length > 0){
		$(".helpTemplates").css("left", 480);
		$(".helpTemplates").css("top", 73);
	}
	
	if($(".dropDown").length > 0){
		$(".dropDown").hide();	
	}
	
	if($(".minMax").length > 0){
		$(".minMax").show();	
	}
	
	if($(".closeBtn").length > 0){	
		$(".closeBtn").hide();
	}
	
	jQuery.fn.addAjaxEvents = function(element){
		$(element).ajaxStart(function(){
			$("#log").append("<li>Start</li>");
		});
		$(element).ajaxStop(function(){
			$("#log").append("<li>Stop</li>");
		});
		$(element).ajaxComplete(function(){
			$("#log").append("<li>Complete</li>");
		});
		$(element).ajaxError(function(){
			$("#log").append("<li>Error</li>");
		});
		$(element).ajaxSuccess(function(){
			$("#log").append("<li>Success</li>");
		});
	}
	
	jQuery.fn.addAjax = function(url){
		$("#loader").fadeIn(700);
		if($("#log").length > 0){
			$("#loader").addAjaxEvents($(this));
		}
		$("#infoTxt").load(url, function(data, status){
			$("#loader").fadeOut(500, function(){
				if(status == "success"){
					$("#infoTxt").dialog("open");
				}
				else{
					$("#msgTxt").html("<p class='error'>There was a problem with the server. Please try again. If the problem persists, contact an administrator.</p>");
					$("#msgTxt").dialog("open");
					
				}
			});
			$.getScript("js/common.js");
		});
	}
	
	if($(".upBtn").length > 0){
		$(".upBtn").click(function(){
			var arr = $(this).attr("id").split("_");
			$(this).addAjax("item.php?item=1&id=" + arr[1]);
			return false;
		});
	}
	
	if($(".uppBtn").length > 0){
		$(".uppBtn").click(function(){
			var arr = $(this).attr("id").split("_");
			$(this).addAjax("item.php?item=2&id=" + arr[1]);
			return false;
		});
	}
	
	if($(".uaBtn").length > 0){
		$(".uaBtn").click(function(){
			var arr = $(this).attr("id").split("_");
			$(this).addAjax("item.php?item=3&id=" + arr[1]);
			return false;
		});
	}
	
	if($(".uprodBtn").length > 0){
		$(".uprodBtn").click(function(){
			var arr = $(this).attr("id").split("_");
			$(this).addAjax("item.php?item=4&id=" + arr[1]);
			return false;
		});
	}
	
	if($(".ulBtn").length > 0){
		$(".ulBtn").click(function(){
			var arr = $(this).attr("id").split("_");
			$(this).addAjax("item.php?item=5&id=" + arr[1]);
			return false;
		});
	}
	
	if($(".cbBtn").length > 0){
		$(".cbBtn").click(function(){
			var arr = $(this).attr("id").split("_");
			$(this).addAjax("item.php?item=6&id=" + arr[1]);
			return false;
		});
	}
	
	if($(".ebBtn").length > 0){
		$(".ebBtn").click(function(){
			var arr = $(this).attr("id").split("_");
			$(this).addAjax("item.php?item=7&id=" + arr[1]);
			return false;
		});
	}
	
	if($(".uiBtn").length > 0){
		$(".uiBtn").click(function(){
			var arr = $(this).attr("id").split("_");
			$(this).addAjax("item.php?item=8&id=" + arr[1]);
			return false;
		});
	}
	
	if($(".atBtn").length > 0){
		$(".atBtn").click(function(){
			var arr = $(this).attr("id").split("_");
			$(this).addAjax("item.php?item=11&id=" + arr[1]);
			return false;
		});
	}
	
	if($(".vabBtn").length > 0){
		$(".vabBtn").click(function(){
			var arr = $(this).attr("id").split("_");
			$(this).addAjax("item.php?item=9&id=" + arr[1]);
			return false;
		});
	}
	
	if($(".bpBtn").length > 0){
		$(".bpBtn").click(function(){
			var parent = $(this).parent().parent().parent();
			var id = $(parent).find(".dynaSel").val();
			$(this).addAjax("item.php?item=1&id=" + id);
			return false;
		});
	}
	
	if($(".vcbBtn").length > 0){
		$(".vcbBtn").click(function(){
			var arr = $(this).attr("id").split("_");
			$(this).addAjax("item.php?item=2&id=" + arr[1]);
			return false;
		});
	}
	
	if($(".vpbBtn").length > 0){
		$(".vpbBtn").click(function(){
			var arr = $(this).attr("id").split("_");
			$(this).addAjax("item.php?item=1&id=" + arr[1]);
			return false;
		});
	}
	
	if($(".cBtn").length > 0){
		$(".cBtn").click(function(){
			var arr = $(this).attr("id").split("_");
			$(this).addAjax("item.php?item=10&id=" + arr[1] + "&type=" + arr[2]);
			return false;
		});
	}
	
	jQuery.fn.addDropDown = function(element){
		$("." + element).click(function(){
			if($(".dropDown." + element + "DropDown").is(":visible")){
				$(".dropDown." + element + "DropDown").slideUp();
				$(".dropDown." + element + "DropDown .minMax").each(function(){
					if($(this).hasClass("ui-icon-minusthick")){
						$(this).click();
					}
				});
				$(".minMax." + element).removeClass("ui-icon-minusthick");
				$(".minMax." + element).addClass("ui-icon-plusthick");
				
			}
			else{
				$("..dropDown." + element + "DropDown").slideDown();
				$(".minMax." + element).removeClass("ui-icon-plusthick");
				$(".minMax." + element).addClass("ui-icon-minusthick");
			}
			return false;
		});	
	}

	jQuery.fn.showDropDown = function(element, paths){
		var activePaths = paths.split(",");
		for(var i = 0; i < activePaths.length; i++){
			if(path == activePaths[i]){
				$(".dropDown." + element + "DropDown").show();
				$(".minMax." + element).removeClass("ui-icon-plusthick");
				$(".minMax." + element).addClass("ui-icon-minusthick");
				break;
			}
		}
	}
	
	for(var i = 0; i < menus.length; i++){
		if($("." + menus[i]).length > 0){
			$("." + menus[i]).addDropDown(menus[i++]);
		}
	}
	
	jQuery.fn.getPath = function(pathRef){
		path = pathRef;
		for(var i = 0; i < menus.length; i++){
			if($("." + menus[i]).length > 0){
				$("." + menus[i]).showDropDown(menus[i], menus[++i]);
			}
		}
	}
	
	$(".dynaSel").change(function(){
		var id = $(this).val();
		var parent = $("li." + id).parent();
		$(parent).find("li").hide();
		$("li." + id).fadeIn();
	});
	
	$(".diaryButton").live("click", function(){
		var clicked = $(this);
		$(".datepicker").each(function(){
			if($(this).val() == ""){
				$(this).datepicker("setDate", $(".calendar").datepicker("getDate"));
				var parent = $(this).parent();
				$(parent).find(".dynaTime").val($(clicked).find(".subTimeDiv2").html());
				$(parent).find(".dynaTime").change();
				return false;
			}
		});
	});
	
	if($(".calendarFull").length > 0){
		$(".calendarFull").datepicker({
			dateFormat: 'yy-mm-dd',
			numberOfMonths: 1,
			onSelect: function(dateText, inst){
				$(this).datepicker("disable");
				$("#loader").fadeIn(700);
				$.post('diary' + $("#type").val() + '.php', { date: dateText, id: $("#id").val() }, function(data) {
					$.getScript("js/common.js");
					$(".dashedDivTimepicker").html(data);
					if($(".bookingButton").length > 0){
						$(".bookingButton").button();
						$(".bookingButton").click(function(){
							$(this).addAjax("item.php?item=1&id=" + $(this).find(".statusTimeDiv").attr("id"));
							return false;
						});
					}
					if($(".bookingButtonCst").length > 0){
						$(".bookingButtonCst").button();
						$(".bookingButtonCst").click(function(){
							$(this).addAjax("item.php?item=2&id=" + $(this).find(".statusTimeDiv").attr("id"));
							return false;
						});
					}
				});
				$("#loader").fadeOut(700);
				$(this).datepicker("enable");
			}
		});
	}
	
	if($(".bookingButton").length > 0){
		$(".bookingButton").button();
		$(".bookingButton").click(function(){
			$(this).addAjax("item.php?item=1&id=" + $(this).find(".statusTimeDiv").attr("id"));
			return false;
		});
	}
	
	if($(".bookingButtonCst").length > 0){
		$(".bookingButtonCst").button();
		$(".bookingButtonCst").click(function(){
			$(this).addAjax("item.php?item=2&id=" + $(this).find(".statusTimeDiv").attr("id"));
			return false;
		});
	}
	
	if($(".customIcon").length > 0){
		$(".customIcon").button();
	}
	
	if($(".tipIcon").length > 0){
		$(".tipIcon").button({ disabled: true });
	}
	
	if($("[data-type=book]").length > 0){
		$("[data-type=book]").live("click", function(){
			$(this).addAjax("item.php?item=2&date=" + $(this).attr("data-date") + "&time=" + $(this).attr("data-time") + "&id=" + $("#prdSelect").val() + "&cst=" + $("#cstSelect").val());	
		});
	}
	
	if($("[data-type=comment]").length > 0){
		$("[data-type=comment]").live("click", function(){
			$(this).addAjax("item.php?item=3&date=" + $(this).attr("data-date") + "&time=" + $(this).attr("data-time"));	
		});
	}
});
