﻿/// <reference path="~/Resources/js/jquery-1.3.2.min.js" />

function showHelp(who){
	var parent = $("#"+who);
	parent.removeClass("help_closed");
	parent.removeClass("help_error");
	parent.addClass("help_open");
}

function closeHelp(who){
	var parent = $("#"+who);
	parent.removeClass("help_error");
	parent.removeClass("help_open");
	parent.addClass("help_closed");
}

function showHelpText(helpButton) {
	helpButton.siblings().find('.HelperText').toggle('normal');
}

function showHelpWidget(helpButton, helpPanel) {
   	$("body").unbind('click.helperwidget');
   	helpButton.siblings().find('.HelperText').show('normal', function() {
   		$("body").bind('click.helperwidget', function() {
   			hideHelpWidget();
   		});
   	});

   	$(helpPanel).bind('click.stopprop', function(event) {
   		event.stopPropagation();
   	});
}

function hideHelpWidget() {
	$('.HelperText').each(function() {
		$(this).hide('normal');
	});
}

function Highlight(elID) {
	$el = $("#" + elID);
	$el.effect("pulsate", { times: 1 }, 500);
}

function HelperMouseOver(clientID) {
	document.getElementById(clientID+'_uxHelperDescription').style.display = 'block';
}

function HelperMouseOut(clientID) {
	document.getElementById(clientID+'_uxHelperDescription').style.display = 'none';
}

function onBeginLoading() {
	var loading = $get('loading');
	if (loading == null) return;
	
	var wrapper = loading.parentNode;
	if (wrapper == null || wrapper.style == null) return;
	
	wrapper.style.display = '';
}

function onEndLoading() {
	var loading = $get('loading');
	if (loading == null) return;
	
	var wrapper = loading.parentNode;
	if (wrapper == null || wrapper.style == null) return;
	
	wrapper.style.display = 'none';
}

//Function to equalise column heights for content listings
function eqColumnHeights() {
	//listing auto-heigth adjust
	if($(".box .bd .section-content .listing").length)
		$(".box .bd .section-intro").height(Math.max($(".box .bd .section-intro").height(), $(".box .bd .section-content .listing").height() - 30));
		
	//wide-listing auto-heigth adjust
	if($(".box .bd .section-content .wide-listing").length)
		$(".box .bd .section-intro").height(Math.max($(".box .bd .section-intro").height(), $(".box .bd .section-content .wide-listing").height() - 30));
}

//Function to equalise heights for any two elements
function eqElementHeights(elementA, elementB) {
	$(elementA +", " + elementB).height(Math.max($(elementA).height(), $(elementB).height()));
}

//Function to set the default value on a form field and have it evaptorate once focused on
function setDefaultText(formField, defaultText) {
    var field = $(formField);
    if (field.val() == "" || field.val() == defaultText) {
        field.val(defaultText)
		    .addClass('watermark') //Add watermark class to field to begin with
    }
	field.focus(function() {
			switch ($(this).val()) {
				case defaultText:
					$(this).val("");
					$(this).removeClass('watermark');
					break;
			}
		})
		.blur(function() {
			switch ($(this).val()) {
				case "":
					$(this).val(defaultText);
					$(this).addClass('watermark');
					break;
			}
		});
}

//Prototype method for sending buttons so they are not clicked more than once
$.fn.buttonIsSending = function(isButtonSending) {
	if (isButtonSending) {
		this.hide();
		var newButton = "<input type=\"button\" class=\"button sending\" value=\"Sending...\" onclick=\"return false;\" />";
		this.before(newButton);
	}
	else {
		this.siblings(".sending").remove();
		this.show();
	}
};

$(document).ready(function() {

	//Sets up rollovers for central drop down menu
	$("#header .tabs ul > li").hover(
		function() {
			$(this).addClass("hover")
				.find("ul").show();

			if ($(this).hasClass("first"))
				$(this).addClass("first-hover");

			if ($(this).hasClass("last"))
				$(this).addClass("last-hover");
		},
		function() {
			$(this).removeClass("hover")
				.removeClass("first-hover")
				.removeClass("last-hover")
				.find("ul").hide();
		}
	);

	//Sets up rollovers for left hand menu
	$("#content .left-bar li:first-child").addClass("first");
	$("#content .left-bar li").hover(
		function() {
			$(this).addClass("active");
		},
		function() {
			$(this).removeClass("active");
		}
	);

	//Middle nav
	$("#header .menu-dd .level-one ul li:first").each(function() {
		$(this).addClass("club-home");
		$(this).find("a:first").wrapInner("<span class=\"club-icon\"></span>");

		if ($(this).hasClass("active"))
			$(this).addClass("club-home-active");
	});

	$("#header .menu-dd ul > li").each(function() {
		$(this).hover(
			function() {
				//Add the corrent classes for the context
				$(this).addClass("hover");

				if ($(this).hasClass("active"))
					$(this).addClass("active-hover");

				if ($(this).hasClass("club-home"))
					$(this).addClass("club-home-hover");

				if ($(this).hasClass("club-home-active"))
					$(this).addClass("club-home-active-hover");

				if ($(this).hasClass("admin-link"))
					$(this).addClass("admin-link-hover");

				//Show the first ul found
				$(this).find("ul:first").show();
			},
			function() {
				$(this).removeClass("hover")
					.removeClass("active-hover")
					.removeClass("club-home-hover")
					.removeClass("club-home-active-hover")
					.removeClass("admin-link-hover")
					.find("ul:first").hide();
			}
		);
	});

	//Position level two elements correctly according to their level one parent
	var levelTwoWrapper = $(".menu-dd .level-two-wrapper");
	var levelTwo = $(".menu-dd .level-two");
	var paddingLeft = 0;
	var itemPosition;
	var levelTwoItemsWidth = 0;

	$(".menu-dd .level-two ul:first > li").each(function() { levelTwoItemsWidth += $(this).width(); });

	if ($(".menu-dd .level-one ul li.active:first").length) {
		itemPosition = $(".menu-dd .level-one ul li.active:first").position();

		if (itemPosition) {
			if ((itemPosition.left + levelTwoItemsWidth) > levelTwoWrapper.width())
				paddingLeft = levelTwoWrapper.width() - levelTwoItemsWidth;
			else
				paddingLeft = itemPosition.left;
		}

		if (paddingLeft <= 0)
			paddingLeft = 15;


		levelTwo.css("padding-left", paddingLeft);
	}

	levelTwoWrapper.css("visibility", "visible");

	//Panel buttons rollover
	$(".panel .button").live("mouseover", function() {
		var hiClass = $(this).hasClass("secondary") ? "secondary-hi" : "button-hi";
		$(this).addClass(hiClass);
	});
	$(".panel .button").live("mouseout", function() {
		var hiClass = $(this).hasClass("secondary") ? "secondary-hi" : "button-hi";
		$(this).removeClass(hiClass);
	});

});

$(window).load(function(){
	eqColumnHeights();
});

// Following script to prevent enter key on textbox.
function stopRKey(evt) {
    var evt = (evt) ? evt : ((event) ? event : null);
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
    if ((evt.keyCode == 13) && (node.type == "text")) { return false; }
}

// Following script to prevent enter key on textbox.
function GetCorrectURL(url) {

    if (url.toLowerCase().indexOf("http:") > -1 || url.toLowerCase().indexOf("https:") > -1) {
        return url;
    }
    else {
        return "http://" + url;
    }
}

// Adds a popup tip onto an element at runtime
function addTip(jQueryObject, id, text, offsetX, offsetY) {
	var left = jQueryObject.offset().left + offsetX;
	var top = jQueryObject.offset().top + offsetY;

	$("body").append("<div class=\"help-pod-wrapper\" id=\"" + id + "\" style=\"position: absolute; left: " + left + 
		"px; top: " + top + "px\"><div class=\"help-pod\"><p>" + text + "</p></div></div>");
}
