jQuery().ready(function(){
		
	// Stop conflicts with mootools
	jQuery.noConflict();
  
  //Initialize home chart
  InitializeHomeChart()
  
	if (jQuery('a.bookmark')) {
		jQuery('a.bookmark').bind('click', function(e) { 
			e.preventDefault();
			e.stopPropagation();	
			return !bookmarkMe(this);
		});
	}
		
	if (jQuery('#graphthumbs div')) {
		// Hide the current hidden graph
		jQuery('#graphthumbs div[class=current-graph]').hide();
		jQuery('#graphthumbs div').bind('click', function() {
			var img = jQuery(this).children('img').get(0);
			var me = this;			
			// Hide the one we clicked on
			jQuery(this).fadeOut(500, function() {
				// hide it
				jQuery(this).addClass('current-graph');
				// show other one
				//alert(jQuery(this).siblings('div[class=current-graph]'));
				jQuery(this).siblings('div[class=current-graph]').fadeIn(500, function() { 
					jQuery(this).removeClass('current-graph'); 
				});				
			});
			
			// Set the big image's 
			// ~/(-thumb).gif/.gif/
			jQuery('#graph-area p img').fadeTo(500,0.01,function(){
				jQuery('#graph-area p img').attr('src', img.src.replace(/-thumb\.gif/i, '.gif')).attr('title', img.title);
				jQuery('#graph-date').text(img.getAttribute('alt'));
				jQuery(this).fadeTo(500,1);
			})
		});
				
		jQuery('#graphutilities a[rel=next]').bind('click', IMO.graph.next);
		jQuery('#graphutilities a[rel=prev]').bind('click', IMO.graph.previous);
	}
});

IMO = {
	graph: {
		next: function() {
			jQuery('#graphthumbs div').siblings('div[class=current-graph]').next().trigger('click');
			return false; },
		previous: function() {
			jQuery('#graphthumbs div').siblings('div[class=current-graph]').prev().trigger('click');
			return false; 
		}
	}
};

function InitPage(){
  FixImages();
  InitUtilities();
  AdjustSlideshowHeight();
  StyleDataTables();
}

function toggleProfile ( targetId ) {
	
	var div = document.getElementsByTagName('div');

	for (i = 0; i < div.length; i++) {
		if (div[i].id.match('staffprofile')) {
				div[i].style.display="none";
			}
		}
		
	if (document.getElementById) {
		target = document.getElementById( targetId );
				if (target.style.display == 'none') {
						target.style.display = '';
				} 
	}
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FixImages
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function FixImages(){
	var classArray = Array('imageRight','imageLeft');

	for (var i = 0; i < classArray.length; i++){
		var divNodes = getElementsByClass(classArray[i],null,'div')
		for (var j = 0; j < divNodes.length; j++){
			var divNode = divNodes[j];
			var divWidth = '100px';

			var imageNodes = divNode.getElementsByTagName('img');
			var captionNode = getElementsByClass('imageCaption',divNodes[j],'div')

			for ( k = 0; k < imageNodes.length; k++){
				if (parseInt(imageNodes[k].width) > parseInt(divWidth)){
					divWidth = imageNodes[k].width;
				}
			}
      if (captionNode.length > 0){
			  captionNode[0].style.width = (18 + parseInt(divWidth)) + 'px';
      }
		} 
	}
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Indexer - Using Jquery
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function UpdateIndexer(pageId, indexerId, pageNumber, thisHref){
  //alert("PageID: " + pageId + " IndexerID: " + indexerId + " page Number: " + pageNumber + " thisHref: " + thisHref );
  var updateNode = jQuery('#indexer-' + indexerId);
  
  var url = 'default.csf?pageid=' + pageId + '&indexer=' + indexerId + '&page=' + pageNumber;
  	   
  jQuery.ajax({
  type: 'GET',
  url: url,
  success: function(html){
   
    updateNode.html(html);
  }
  });
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null ){
		node = document;
	}

	if ( tag == null ){
		tag = '*';
	}

	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");

	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Utilities
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function InitUtilities(){
	jQuery('div#utilities').css("visibility", "visible");
	InitNextPreviousBtns();
	return;
}

function InitNextPreviousBtns(){
	jQuery("a#btnNext").click(function(){history.forward();return false;});
	jQuery("a#btnBack").click(function(){history.back(1);return false;});
	return;
}


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Slide show
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var sshowConHeight = '100px';
var sshowSpeed = 5000;
var sshowType = 'sequence';
var sshowTimeout = 8000;

function AdjustSlideshowHeight(){
	var slideshows = jQuery("div.slideshow");
	if(slideshows){
		for(var i = 0; i < slideshows.length; i++){
			var container = jQuery(slideshows[i]);	
			var firstImage = container.find('img:first');
		
			if(container.length > 0 && firstImage.length > 0){
				container.css("height", firstImage.height());
			}
		}
	}
	return;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Styling HTML Data tables that are XSLT Transformed
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function StyleDataTables(){
	
	var tables = jQuery("table.dataTransform");
	
	tables.each(function (i) {
			AddCssClassToTable(this);
		}
	)
}

function AddCssClassToTable(table){
	var rowCount = jQuery(table).find("tr").length;
	jQuery(table).find("tr:odd").addClass("alt");
	
	
	jQuery(table).find("tr:last").addClass('last');
	jQuery(table).find("tr:last td:first").addClass('bottomleft');
	jQuery(table).find("tr:last td:last").addClass('bottomright');
	return;
}


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Homepage Chart
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var chartContainer;
var homeImg;
var graphImg;
var GraphImgUrl;

function InitializeHomeChart(){
  chartContainer = jQuery('div#homeChartHolder');
  if(chartContainer.length < 1){
    return false;
  }
 
  homeImg = jQuery('img#homeImg');
  graphImg = jQuery('img#homeChartImg');
  GraphImgUrl = graphImg.attr("src");
  graphImg.hide();
  setTimeout('FadeHomeImage()', 3000);
  setTimeout('FadeInGraph()', 3000);
  setTimeout("RefreashGraphImage()", 1000 * 60 * 10)
}

function FadeHomeImage(){
  homeImg.fadeOut(5000);
}

function FadeInGraph(){
  graphImg.fadeIn(5000);
}

function RefreashGraphImage(){
  var randomStr = GetRandomString();
  graphImg.attr("src", GraphImgUrl + "&ver=" + randomStr);
  setTimeout("RefreashGraphImage()", 1000 * 60 * 13);
}

function GetRandomString() {
	var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	var string_length = 5;
  var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return randomstring;
}

window.onload = InitPage;