// JavaScript Document

// Set default error messages for form validation
$.extend($.validator.messages, {
		required: "Invalid",
		email: "Email Address Invalid"
});

// Setup Validate to ignore default value;
jQuery.validator.methods.oldRequired = jQuery.validator.methods.required;
jQuery.validator.addMethod("required", function(value, element, param) {
		if (value == "Required") {
				return false;
		}
		return jQuery.validator.methods.oldRequired.call(this, value, element, param);
	},
	jQuery.validator.messages.required // use default message
);

(function($) {
	$.fn.collapsibleMenu = function () {
		$('dt', this).each(function () {
			var toggle = $(this);
			var content = toggle.next().hide();
			
			toggle.click(function() {
				content.slideToggle();
				toggle.toggleClass('active');
				content.toggleClass('open');
			});
		});
	};
})(jQuery);

(function($) {
	$.fn.vAlign = function() {
		return this.each(function(i) {
			var innerHeight = $(this).height();
			var outerHeight = $(this).parent().height();
			var marginHeight = (outerHeight - innerHeight) / 2;
			$(this).css('margin-top', marginHeight);
		});
	};
})(jQuery);

(function($) {
	$.fn.clearForm = function() {
		return this.each(function() {
			var type = this.type, tag = this.tagName.toLowerCase();
			if (tag == 'form')
				return $(':input',this).clearForm();
			if (type == 'text' || type == 'password' || tag == 'textarea')
				this.value = '';
			else if (type == 'checkbox' || type == 'radio')
				this.checked = false;
			else if (tag == 'select')
				this.selectedIndex = 0;
			$(this).focus().blur(); // Trigger defaultvalue plugin
		});
	};
})(jQuery);

$(function() {
					 
	// Set primary navigation 'active' states
	$('body#section-home #site-nav-home').addClass('active');
	$('body#section-about #site-nav-about').addClass('active');
	$('body#section-news #site-nav-news').addClass('active');
	$('body#section-openhre #site-nav-openhre').addClass('active');
	$('body#section-services #site-nav-services').addClass('active');
	$('body#section-success #site-nav-success').addClass('active');
	$('body#section-contact #site-nav-contact').addClass('active');

	$('.submit-lnk').each(function () {
		$(this).click(function () {
			$(this).parents('form').submit();
			return false;
		});
	});

	$('.clear-lnk').click(function () {
		$(this).parents('form').clearForm();
		return false;
	});

	$("form.validate").each(function() {
		$(this).validate({
			errorElement: "strong",
			onfocusout: function(element) { $(element).valid(); },
			onclick: function(element) { $(element).valid(); },
			showErrors: function(errorMap, errorList) {
				for ( var i = 0; this.errorList[i]; i++ ) {
					var error = this.errorList[i];
					$(error.element).parent().find('em').hide();
				}
				this.defaultShowErrors();
			},
			unhighlight: function(element, errorClass, validClass) {
				$(element).removeClass(errorClass).addClass(validClass);
				$(element).parent().find('em').css('display', 'inline');
			}
		});
	});
		
	$('.logo-container .text, #chart .text').vAlign();
	
	$('.collapsible-menu').collapsibleMenu();
		
});

