/************************************************************** 
 *
 * ToggleVal 3.0
 * Updated: 01/15/2010
 * -------------------------------------------------- *
 * Author: Aaron Kuzemchak
 * URL: http://aaronkuzemchak.com/
 * Copyright: 2008-2010 Aaron Kuzemchak
 * License: MIT License
 *
 **************************************************************/

	(function($){$.fn.toggleVal=function(_1){if(!_1||typeof _1=="object"){_1=$.extend({},$.fn.toggleVal.defaults,_1);}else{if(typeof _1=="string"&&_1.toLowerCase()=="destroy"){var _2=true;}}return this.each(function(){if(_2){$(this).unbind("focus.toggleval").unbind("blur.toggleval").removeData("defText");return false;}var _3="";switch(_1.populateFrom){case "title":if($(this).attr("title")){_3=$(this).attr("title");$(this).val(_3);}break;case "label":if($(this).attr("id")){_3=$("label[for=\""+$(this).attr("id")+"\"]").text();$(this).val(_3);}break;case "custom":_3=_1.text;$(this).val(_3);break;default:_3=$(this).val();}$(this).addClass("toggleval").data("defText",_3);if(_1.removeLabels==true&&$(this).attr("id")){$("label[for=\""+$(this).attr("id")+"\"]").remove();}$(this).bind("focus.toggleval",function(){if($(this).val()==$(this).data("defText")){$(this).val("");}$(this).addClass(_1.focusClass);}).bind("blur.toggleval",function(){if($(this).val()==""&&!_1.sticky){$(this).val($(this).data("defText"));}$(this).removeClass(_1.focusClass);if($(this).val()!=""&&$(this).val()!=$(this).data("defText")){$(this).addClass(_1.changedClass);}else{$(this).removeClass(_1.changedClass);}});});};$.fn.toggleVal.defaults={focusClass:"tv-focused",changedClass:"tv-changed",populateFrom:"default",text:null,removeLabels:false,sticky:false};$.extend($.expr[":"],{toggleval:function(_4){return $(_4).data("defText")||false;},changed:function(_5){if($(_5).data("defText")&&$(_5).val()!=$(_5).data("defText")){return true;}return false;}});})(jQuery);
		
		if ($('form').length !== 0 && $('#MemberLoginForm_LoginForm').length === 0) { // If there is a form on the page & it's not the login page
			$(".field input, .field textarea").each(function () {
				if(!($(this).val()) && !$(this).hasClass('hiddenField') ) { // If it doens't alread have a value and isn't a hidden field
					$(this).toggleVal({
						populateFrom: "label",
						focusClass: "non-default",
						changedClass: "non-default"

					});
				}
			});
		
			$("div.field").addClass("no-label");
			$(".field label.left").hide();
		}

/************************************************************** 
 *
 * jQuery Cycle Lite Plugin
 * http://malsup.com/jquery/cycle/lite/
 * Copyright (c) 2008 M. Alsup
 * Version: 1.0 (06/08/2008)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * Requires: jQuery v1.2.3 or later
 *
 **************************************************************/
	(function(D){var A="Lite-1.0";D.fn.cycle=function(E){return this.each(function(){E=E||{};if(this.cycleTimeout){clearTimeout(this.cycleTimeout)}this.cycleTimeout=0;this.cyclePause=0;var I=D(this);var J=E.slideExpr?D(E.slideExpr,this):I.children();var G=J.get();if(G.length<2){if(window.console&&window.console.log){window.console.log("terminating; too few slides: "+G.length)}return }var H=D.extend({},D.fn.cycle.defaults,E||{},D.metadata?I.metadata():D.meta?I.data():{});H.before=H.before?[H.before]:[];H.after=H.after?[H.after]:[];H.after.unshift(function(){H.busy=0});var F=this.className;H.width=parseInt((F.match(/w:(\d+)/)||[])[1])||H.width;H.height=parseInt((F.match(/h:(\d+)/)||[])[1])||H.height;H.timeout=parseInt((F.match(/t:(\d+)/)||[])[1])||H.timeout;if(I.css("position")=="static"){I.css("position","relative")}if(H.width){I.width(H.width)}if(H.height&&H.height!="auto"){I.height(H.height)}var K=0;J.css({position:"absolute",top:0,left:0}).hide().each(function(M){D(this).css("z-index",G.length-M)});D(G[K]).css("opacity",1).show();if(D.browser.msie){G[K].style.removeAttribute("filter")}if(H.fit&&H.width){J.width(H.width)}if(H.fit&&H.height&&H.height!="auto"){J.height(H.height)}if(H.pause){I.hover(function(){this.cyclePause=1},function(){this.cyclePause=0})}D.fn.cycle.transitions.fade(I,J,H);J.each(function(){var M=D(this);this.cycleH=(H.fit&&H.height)?H.height:M.height();this.cycleW=(H.fit&&H.width)?H.width:M.width()});J.not(":eq("+K+")").css({opacity:0});if(H.cssFirst){D(J[K]).css(H.cssFirst)}if(H.timeout){if(H.speed.constructor==String){H.speed={slow:600,fast:200}[H.speed]||400}if(!H.sync){H.speed=H.speed/2}while((H.timeout-H.speed)<250){H.timeout+=H.speed}}H.speedIn=H.speed;H.speedOut=H.speed;H.slideCount=G.length;H.currSlide=K;H.nextSlide=1;var L=J[K];if(H.before.length){H.before[0].apply(L,[L,L,H,true])}if(H.after.length>1){H.after[1].apply(L,[L,L,H,true])}if(H.click&&!H.next){H.next=H.click}if(H.next){D(H.next).bind("click",function(){return C(G,H,H.rev?-1:1)})}if(H.prev){D(H.prev).bind("click",function(){return C(G,H,H.rev?1:-1)})}if(H.timeout){this.cycleTimeout=setTimeout(function(){B(G,H,0,!H.rev)},H.timeout+(H.delay||0))}})};function B(J,E,I,K){if(E.busy){return }var H=J[0].parentNode,M=J[E.currSlide],L=J[E.nextSlide];if(H.cycleTimeout===0&&!I){return }if(I||!H.cyclePause){if(E.before.length){D.each(E.before,function(N,O){O.apply(L,[M,L,E,K])})}var F=function(){if(D.browser.msie){this.style.removeAttribute("filter")}D.each(E.after,function(N,O){O.apply(L,[M,L,E,K])})};if(E.nextSlide!=E.currSlide){E.busy=1;D.fn.cycle.custom(M,L,E,F)}var G=(E.nextSlide+1)==J.length;E.nextSlide=G?0:E.nextSlide+1;E.currSlide=G?J.length-1:E.nextSlide-1}if(E.timeout){H.cycleTimeout=setTimeout(function(){B(J,E,0,!E.rev)},E.timeout)}}function C(E,F,I){var H=E[0].parentNode,G=H.cycleTimeout;if(G){clearTimeout(G);H.cycleTimeout=0}F.nextSlide=F.currSlide+I;if(F.nextSlide<0){F.nextSlide=E.length-1}else{if(F.nextSlide>=E.length){F.nextSlide=0}}B(E,F,1,I>=0);return false}D.fn.cycle.custom=function(K,H,I,E){var J=D(K),G=D(H);G.css({opacity:0});var F=function(){G.animate({opacity:1},I.speedIn,I.easeIn,E)};J.animate({opacity:0},I.speedOut,I.easeOut,function(){J.css({display:"none"});if(!I.sync){F()}});if(I.sync){F()}};D.fn.cycle.transitions={fade:function(F,G,E){G.not(":eq(0)").css("opacity",0);E.before.push(function(){D(this).show()})}};D.fn.cycle.ver=function(){return A};D.fn.cycle.defaults={timeout:4000,speed:1000,next:null,prev:null,before:null,after:null,height:"auto",sync:1,fit:0,pause:0,delay:0,slideExpr:null}})(jQuery)
	
	$.fn.cycle.defaults = { 
		timeout:       6000,  // milliseconds between slide transitions (0 to disable auto advance) 
		speed:         1000,  // speed of the transition (any valid fx speed value) 
		next:          null,  // id of element to use as click trigger for next slide 
		prev:          null,  // id of element to use as click trigger for previous slide 
		before:        null,  // transition callback (scope set to element to be shown) 
		after:         null,  // transition callback (scope set to element that was shown) 
		height:       'auto', // container height 
		sync:          1,     // true if in/out transitions should occur simultaneously 
		fit:           0,     // force slides to fit container 
		pause:         1,     // true to enable "pause on hover" 
		delay:         -4000,     // additional delay (in ms) for first transition (hint: can be negative) 
		slideExpr:     null   // expression for selecting slides (if something other than all children is required) 
	}; 

	function initCycle() {
		$('#logo-image').cycle({ slideExpr: 'img' });
	}

/************************************************************** 
 * Accessible menu
 * 
 * 
 **************************************************************/
	 /**
	 * Adds and removes classes to a list of links to allow keyboard accessibility
	 *
	 * @param string dropDownId
	 * @param string hoverClass
	 * @param int mouseOffDelay
	 */
	function dropdown(dropdownId, hoverClass, mouseOffDelay) {
		if(dropdown = document.getElementById(dropdownId)) {
			var listItems = dropdown.getElementsByTagName('li');
			for(var i = 0; i < listItems.length; i++) {
				listItems[i].onmouseover = function() { this.className = addClass(this); }
				listItems[i].onmouseout = function() {
					var that = this;
					setTimeout(function() { that.className = removeClass(that); }, mouseOffDelay);
					this.className = that.className;
				}
				
				var anchor = listItems[i].getElementsByTagName('a');
				anchor = anchor[0];
				anchor.onfocus = function() { tabOn(this.parentNode); }
				anchor.onblur = function() { tabOff(this.parentNode); }
			}
		}
		
		function tabOn(li) {
			if(li.nodeName == 'LI') {
				li.className = addClass(li);
				tabOn(li.parentNode.parentNode);
			}
		}
		
		function tabOff(li) {
			if(li.nodeName == 'LI') {
				li.className = removeClass(li);
				tabOff(li.parentNode.parentNode);
			}
		}
		
		function addClass(li) { return li.className + ' ' + hoverClass; }
		function removeClass(li) { return li.className.replace(hoverClass, ""); }
	}
	sfHover = function() {
		var sfEls = document.getElementById("mainnav").getElementsByTagName("LI");
		for (var i=0; i<sfEls.length; i++) {
			sfEls[i].onmouseover=function() {
				this.className+=(this.className.length>0? " ": "") + "sfhover";
			};
			sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
			};
		}
	};
	mcAccessible = function() {
		var mcEls = document.getElementById("mainnav").getElementsByTagName("A");
		for (var i=0; i<mcEls.length; i++) {
			mcEls[i].onfocus=function() {
				this.className+=(this.className.length>0? " ": "") + "sffocus"; //a:focus
				this.parentNode.className+=(this.parentNode.className.length>0? " ": "") + "sfhover"; //li < a:focus
				if(this.parentNode.parentNode.parentNode.nodeName == "LI") {
					this.parentNode.parentNode.parentNode.className+=(this.parentNode.parentNode.parentNode.className.length>0? " ": "") + "sfhover"; //li < ul < li < a:focus
					if(this.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "LI") {
						this.parentNode.parentNode.parentNode.parentNode.parentNode.className+=(this.parentNode.parentNode.parentNode.parentNode.parentNode.className.length>0? " ": "") + "sfhover"; //li < ul < li < ul < li < a:focus
					}
				}
			};
			mcEls[i].onblur=function() {
				this.className=this.className.replace(new RegExp("( ?|^)sffocus\\b"), "");
				this.parentNode.className=this.parentNode.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
				if(this.parentNode.parentNode.parentNode.nodeName == "LI") {
					this.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
					if(this.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "LI") {
						this.parentNode.parentNode.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
					}
				}
			};
		}
	};
	
	$( function() {
		dropdown('mainnav', 'hover', 150);
	} );

/************************************************************** 
 * Validate subscribe fields
 **************************************************************/
	
	function validateForm(objElem) {
		if ($('#Form_Form_FirstName').val() == "First name" || $('#Form_Form_FirstName').val() == "" ) {
			$('#Form_Form_FirstName').addClass("validation-error");
	//		alert('fn');
			return false;
		}
	
		if ($('#Form_Form_Surname').val() == "Surname" || $('#Form_Form_Surname').val() == "" ) {
			$('#Form_Form_Surname').addClass("validation-error");
	//		alert('sn');
			return false;
		}
	
		if ($('#Form_Form_Email').val() == "Email address" || $('#Form_Form_Email').val() == "" ) {
			$('#Form_Form_Email').addClass("validation-error");
	//		alert('em');
			return false;
		}
		
	}
	
	// removes the 'error' class on focus
	function unValidateField(objElem) {
		if ($(objElem).hasClass("validation-error")) {
			$(objElem).removeClass("validation-error");
		}
	}
	
	// checks for defaults and errors if found. Email is handled by PHP
	function validateField(objElem) {
		objElem = $(objElem);
		if (objElem.val() == "First name" || objElem.val() == "Surname" || objElem.val()== "Email address" || objElem.val() == "") {
			objElem.addClass("validation-error");
			objElem.val("");
			return false;
		}
	}
	
	// fired on load for Subscribe page.
	function signupForm() {
		//add validation to inputs
		$("#subscribe .field input").each(function () {
			$(this).blur(function () {
				validateField(this);
			}); 
			$(this).focus(function () {
				unValidateField(this);
			}); 
		});
	
		//add validation to form submit
		$("#subscribe form").submit(function () {
			return validateForm(this);
		}); 
	
	}

/************************************************************** 
 * Table zebra striping
 **************************************************************/
	function zebraTable() {
		if ($('table').length !== 0) { // If there is a table on the page

			$("table tr:even").addClass("even");

			$("table tr").hover(function(){
				$(this).addClass("ruled");
			}, function(){
				$(this).removeClass("ruled");
			});
		}
	}

	//$( function() {
	//	zebraTable();
	//} );

