/* MHE JS CODE */

/* Handle Width resizing on main accordion elements */
var accordion_content_width = 0;
var main_accordion_width = 0;

var getMainAccordionWidth = function() {
	var cWidth = $(window).width();
	var acc_width = 0;
	if (cWidth < 900) {acc_width = (cWidth - 5)};
	if (cWidth < 1200) { if (cWidth > 900) {acc_width = Math.floor(cWidth * 0.98)}};
	if (cWidth > 1200) { acc_width = Math.floor(cWidth * 0.8)};
	main_accordion_width = acc_width;
	return acc_width;
	
};

var getAccordionContentWidth = function() {
	var acc_width = getMainAccordionWidth();
	var acc_content_width = 0;
	var acc_toggles_width = 0;
	// We've stopped calculating the width of tabs
	$('#mainAccordion > .haccordion_toggle').each( function(i){ 
							var mywidth = $(this).width();
							if (mywidth == 0) {mywidth = 52} // If this connetent has been hidden during the initialization phase well have to make a guesss
							acc_toggles_width = acc_toggles_width + mywidth } );
	acc_content_width = acc_width - acc_toggles_width - 10;
	accordion_content_width = acc_content_width;
	return acc_content_width;
	
};

var sizer = function() {
			$('#mainAccordion > .haccordion_content_open').width(getAccordionContentWidth());
			$('.haccordion_internal_wrapper').width(accordion_content_width);
			$('#mainContent').width(main_accordion_width);	
			
			// Do some margin spacing for items floated left in .float class containers
			$('.floats').each(function (e) {
				// Reset margins to 0 (important for handling drag resizes)
				$(this).children().each( function (e) { $(this).css("margin", 0); } );
				var childwidth = $(this).find(':first').outerWidth({'margin':true}) + 2;
				var modified_accordion_width = (accordion_content_width - 0);
				var horizontal_items = Math.floor(modified_accordion_width/childwidth);
				var remainder = modified_accordion_width - (horizontal_items * childwidth);
				var margin = Math.floor(remainder / (horizontal_items * 2)) + 1;
				$(this).children().each( function (e) { $(this).css("margin", margin); } );
				
			});
			

			
};

/* Build an Accordion Effect */
jQuery.fn.extend({
  haccordion: function(params){
    var jQ = jQuery;
    var params = jQ.extend({
      speed: 'normal',
      headerclass: "haccordion_toggle",
      activeheaderclass : "haccordion_toggle_active",
      contentclass: "haccordion_content",
      opencontentclass: "haccordion_content_open"
    },params);
    return this.each(function(){
      var starter = jQ("."+params.activeheaderclass, this);
       starter.next("div."+params.contentclass).animate({
          width: accordion_content_width + "px"
        }, params.speed); 
	/*starter.next("div."+params.contentclass).SlideInLeft(params.speed);*/
      this.opened = starter;
      jQ("."+params.headerclass,this).click(function(){
        var p = jQ(this).parent()[0];
     
        if (p.opened != "undefined"){
          var opened = jQ(p.opened);
          
          opened.next("div."+params.contentclass).animate({
            width: "0px"
          },params.speed);
	 /*opened.next("div."+params.contentclass).SlideOutLeft(params.speed);*/
          opened.toggleClass(params.activeheaderclass);
	  opened.next("div."+params.contentclass).toggleClass(params.opencontentclass);
        }
        p.opened = this;
        jQ(this).next("div."+params.contentclass).animate({
          width: accordion_content_width + "px"
        }, params.speed); 
        /* jQ(this).next("div."+params.contentclass).SlideInLeft(params.speed); */
        jQ(this).toggleClass(params.activeheaderclass);
	jQ(this).next("div."+params.contentclass).toggleClass(params.opencontentclass);
        
      });
    });
  }
});

/* Document Ready Functions */
    
$(document).ready(function() {  
	/* Setup rollovers */
	$('.rollover').hover(
		function () {
			cur = $(this).attr("src");
			extindex = cur.lastIndexOf('.')
			suffix = cur.substring(extindex);
			over = '';
			over += cur.substring(0, extindex);
			over += '2';
			over += suffix;
			$(this).attr({src: over });
		},
		function () {
			$(this).attr({src: cur});
		}
	);
	/* Preload rollover images */
	$('.rollover').each(function(i) {
		cur = this.src;
		extindex = cur.lastIndexOf('.')
		suffix = cur.substring(extindex);
		over = '';
		over += cur.substring(0, extindex);
		over += '2';
		over += suffix;
		preloaded_image = new Image();
		preloaded_image.src = over;
	});
	
	/* Setup Commenting Functions */
	$('.commentwarning').hide();
    $(".commentform").hide();
    $(".commentformtoggle").click(function() { 
    	$(".commentform").slideToggle();
        $.get('./antispamtoken.html', function(data) {
        	$(".commentform").append('<input type="hidden" name="comment.asdigest" value="' + data +'" />');
    	});
        return false;
     });
     
     /* Add a convenience class to form submit buttons */
	 $(":submit").addClass("StyledButt")
            
     /* Setup Search Toggles */       
     $("#advanced-search").hide();
     $("#advanced-toggle").click(function() {
     	$("#advanced-search").slideToggle('fast');
        	return false;
     }); 
     
     /* Handle Status Messages */     
     $("#statusmessage").fadeIn('fast').animate({opacity:1.0}, 3000).fadeOut('slow');
     
     /* Setup Sizer Functions */
     	 $('#mainAccordion > .haccordion_content_open').width(getAccordionContentWidth());
	 //$('.haccordion_internal_wrapper').width(accordion_content_width);
	 //$('#mainContent').width(main_accordion_width);	

	 $(window).resize(function() {
	 	sizer();	
	 });
	 /* Find the largest content height and size the toggles to suit */
	 var c_height = 0; 
	 c_height = $(window).height() - $('#topbar').height() - $('#topnav').height();
	 $('#mainAccordion > .haccordion_toggle').height(c_height);
	 /* Hide the Accordion Content (so that we dont have to do it in CSS (accessibility) */
 	 var closed_acc = $(".haccordion_content:not(.haccordion_content_active)");
 	 if (closed_acc.length > 0) { closed_acc.width(0); } 
	 $(".haccordion").haccordion();
	 $("#mainContent").css('display','block');
	 $('.haccordion_content_active').width(accordion_content_width);
	sizer();
	 
	 
});