$(document).ready(function(){     
     var jstuff = '<ul id="controls" class="pipelist">'
     jstuff += '<li id="textsize">Text size: <a class=\"decreaseFont\" href=\"#\">Smaller -</a> / <a class=\"increaseFont\" href=\"#\">Larger +</a></li>'
     jstuff += '<li id="printpage"><a href="#" title="Print this page">Print page</a></li>'
     jstuff += '</ul>'
	 jstuff += '<br class="clearBoth" />'
	$("#breadcrumb").append(jstuff);

	$("#printpage").html(document.createElement('a'));
	$("#printpage a").attr("href", "javascript:window.print()");
	$("#printpage a").attr("title", "Print this page");
	$("#printpage a").html("Print page");

	// Page-load defaults
	$('.panelContents').not(".opened").hide();

	$('h4.panelToggle').each(function(){
		var elementid = $('.panelToggle').index(this);
		if ($('.panel').eq(elementid).hasClass('opened')) {
			$('h4.panelToggle').eq(elementid)
			.find('span').html('<a href="#" title="Close this panel">close</a>');
		} else {
			$('h4.panelToggle').eq(elementid)
			.find('span').html('<a href="#" title="Open this panel">open</a>');
		}
	});

	$('.panel p.closePanel')
		.append('<a href="#" title="Close this panel">close panel</a>')
		.find('a').click(function(){
			$(this).blur();
			var elementid = $('.closePanel a').index(this);
			slidePanelToggle(elementid);
			return false;
		});

	// slideToggle
	$(".panel:has(.panelContents) .panelToggle").click(function(){
		$(this).blur();
		var elementid = $('.panel:has(.panelContents) .panelToggle').index(this);
		slidePanelToggle(elementid);
		return false;
	});

	$("a").bind("click", function() {
		$(this).blur();
	});

	sitefunctions.textresize();	  
});

var sitefunctions = { 
	textresize : function(){ 
		// show text resizing links
		$(".FontSize").show(); 
		var cookie_name = "tSz"; 
		var originalFontSize = $("body").css("font-size"); 
		var szs = new Array( '9px','10px','12px','14px','16px' );

		// if exists load saved value, otherwise store it
		//$getSize = getCookie(cookie_name);
		startSz = getCookie(cookie_name);

		//if (($getSize == null) || ($getSize == "")) {
		if ((startSz == null) || (startSz == "")) {
			startSz = 2;
			//setCookie(cookie_name, originalFontSize, 30);
			setCookie(cookie_name, startSz, 30);
		} else {
			var $getSize = szs[ startSz ];
			//$("body").css({fontSize : $getSize  + ($getSize.indexOf("px")!=-1 ? "" : "px")}); // IE fix for double "pxpx" error 
			$("body").css({fontSize : $getSize}); 
		}
		// reset link
		$(".FontSizeReset").bind("click", function() { 
			$("body").css("font-size", originalFontSize); 
			setCookie(cookie_name, originalFontSize, 30);
		});
		// Increase Font Size
		$("a.increaseFont").bind("click", function() { 
			sz = parseInt(startSz);
			sz += 1;
			if ( sz > 4 ) sz = 4;
			var newFontSize = szs[ sz ];

			$("body").css("font-size", newFontSize); 
			//setCookie(cookie_name, newFontSize, 30);
			setCookie(cookie_name, sz, 30);
			startSz = sz;

			$(this).blur();
			return  false;	 
		}); 

		// Decrease Font Size
		$("a.decreaseFont").bind("click", function() {
			sz = parseInt(startSz);
			sz -= 1;
			if ( sz < 0 ) sz = 0;
			var newFontSize = szs[ sz ];

			$('body').css('font-size', newFontSize);
			setCookie(cookie_name, sz, 30);
			startSz = sz;
			return false;
		});
	} 
} 


function slidePanelToggle(id) {
	var parentPanel = $(".panelContents").eq(id).parents(".panel");
	$('.panelContents').eq(id).slideToggle("normal", function() {
		if ($('.panelContents').eq(id).hasClass('opened')) {
			parentPanel.find('.panelToggle span a').attr("title", "Open this panel");
			parentPanel.find('.panelToggle span a').text("open");
		} else {
			parentPanel.find('.panelToggle span a').attr("title", "Close this panel");
			parentPanel.find('.panelToggle span a').text("close");
			//$('.panelToggle').eq(id).find('span img').attr("src", "assets/css/img/arrow_close.gif");
		}

		parentPanel.find('.panelToggle span').toggleClass("open");
		parentPanel.find('.panelToggle span').toggleClass("close");

		$('.panelContents').eq(id).toggleClass('opened');
	});
}

// Cookies handling
function getCookie(c_name) {
	if (document.cookie.length>0) {
		c_start=document.cookie.indexOf(c_name + "=");
		if (c_start!=-1) { 
			c_start=c_start + c_name.length+1; 
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end==-1) c_end=document.cookie.length;
			return unescape(document.cookie.substring(c_start,c_end));
		} 
	}
	return "";
}

function setCookie(c_name,value,expiredays) {
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+" ;path=/"+
	((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function deleteCookie(name, path, domain) {
    if (getCookie(name))
    {
        document.cookie = name + "=" + 
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

function checkValidElements(names, form){

  var invalidDisplaynames = "";

  for (ii=0; ii<names.length; ii++) {
    var name = names[ii][0];

    var displayname = name;
    if (names[ii].length > 1)
      displayname = names[ii][1];

    // radio buttons are somewhat special, they're an array of radio objects which are selected or not.
    if (form.elements[name].length && form.elements[name][0].type == "radio"){
      form.elements[name][0].parentNode.style.backgroundColor = "white";

      var oneChecked = false;
      for (jj=0; jj<form.elements[name].length; jj++){
        if (form.elements[name][jj].checked){
          oneChecked = true;
          break;
        }
      }

      if (!oneChecked){
        invalidDisplaynames += displayname + "\n";
        form.elements[name][0].parentNode.style.backgroundColor = "#FFAAAA";
      }

      continue;
    } // end radio button

    // check boxes are somewhat special, they're an array of checkbox objects which are selected or not.
    if (form.elements[name].length && form.elements[name][0].type == "checkbox"){
      form.elements[name][0].parentNode.style.backgroundColor = "white";

      var oneChecked = false;
      for (jj=0; jj<form.elements[name].length; jj++){
        if (form.elements[name][jj].checked){
          oneChecked = true;
          break;
        }
      }

      if (!oneChecked){
        invalidDisplaynames += displayname + "\n";
        form.elements[name][0].parentNode.style.backgroundColor = "#FFAAAA";
      }

      continue;
    } // end checkbox

    form.elements[name].style.backgroundColor = "white";
    
    if (form.elements[name].value == ""){
      form.elements[name].style.backgroundColor = "#FFAAAA";
//      form.elements[name].focus();
      invalidDisplaynames += displayname + "\n";

    } else if (names[ii].length > 2){ // regular expression check
      re = names[ii][2];

      if (!form.elements[name].value.match(re)) {
        form.elements[name].style.backgroundColor = "#FFAAAA";
//        form.elements[name].focus();
        invalidDisplaynames += displayname + "\n";
      }
    }
  }


  if ("" != invalidDisplaynames){
    alert("Please enter valid values for the fields:\n\n" + invalidDisplaynames);
    return false;
  }

  return true;
}
/*--------------------------------------------------
	Primary Nav
--------------------------------------------------*/
$(function() {
	
	// navigation: calculate width of drop-down menu
	
	var childSize = $('#primaryNav > ul > li > div').children().size();
	var childWidth = $('#primaryNav > ul > li > div dl').css('width');
	var childWidthInt = parseInt(childWidth);
	var newWidth = childSize * childWidthInt;
	
	$('#primaryNav > ul > li > div').css('width', newWidth);
	
   // navigation: show 2nd level
	
	$('#primaryNav > ul > li > div').addClass('display-none'); // Hide all <div>s that are children of '#primaryNav > ul > li'.
	
	$('#primaryNav > ul > li').hover( // select all <li>s that don't have class "inactive" and listen for "mouseenter" events.
		function () { // mouseenter
			$(this).find('div').removeClass('display-none'); // Show <div> that is the child of <li> with "mouseenter" event.
			//alert(childSize + ", " + childWidthInt + ", " + newWidth);
		},
		function () { // mouseleave
			$(this).find('div').addClass('display-none'); // Hide <div> that is the child of <li> with "mouseleave" event.
		}
	);
	
});


/*--------------------------------------------------
	Test Browser
--------------------------------------------------*/

$(function() {
			  
	function initialise (){
		$("#test-browser-nav li").removeClass("selected");
		$(".article").addClass("display-none");
	}
	
	$("#test-browser-nav a").click (function (event) {
		initialise ();
		$(this).parent().addClass("selected");
		var targetId = $(this).attr("href");
		$(targetId).removeClass("display-none");
		return false;
	});
	
	$("#test-browser-nav a").eq(0).click ();
	
});

/*--------------------------------------------------
	Carousel
--------------------------------------------------*/
// This now resides within the home page
//
//jQuery(document).ready(function() {
//    jQuery('#mycarousel').jcarousel({
//        vertical: true,
//		  //wrap: 'both',
//        scroll: 12,
//		  buttonNextHTML: '<p title="Next"></p>',
//		  buttonPrevHTML: '<p title="Previous"></p>'
//    });
//});

/*--------------------------------------------------
	Search field
--------------------------------------------------*/

jQuery(document).ready(function() {
    //alert("search field jscript started");
    $('#searchfield').val('Search this site').css('color', '#999');
    $('#searchfield').focus(function() {
	$(this).val('').css('color', '#000');
    });
    $('#searchfield').blur(function() {
	$(this).val('Search this site').css('color', '#999');
    });
});

/*--------------------------------------------------
	Tabbed content
--------------------------------------------------*/

$(document).ready(function() {

	//Default Action
	$(".tab_content").hide(); //Hide all content - first tab is initialised by the structure content
	$(".tab_content.initialTab").show(); //Show first tab content
	
	//On Click Event
	$("ul.tabs li").click(function() {
		$("ul.tabs li").removeClass("active"); //Remove any "active" class
		$(this).addClass("active"); //Add "active" class to selected tab
		$(".tab_content").hide(); //Hide all tab content
		var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
		$(activeTab).fadeIn(); //Fade in the active content
		return false;
	});

});

