// JavaScript Document
/*
		 First action that run when document is loaded:
*/
	$(document).ready(function() {
		go_slider_c();
		go_slider_i();
		top_menu_link(); 
		
		// Let's highlight the 'Home' menu on the right menu (Home - About- Contact)
		$("#nav-home").addClass("li_selected");

	});




		function go_slider_c() 
		{
			var ocontainer = $('div.cloud_c');
			var ocontent = $('div.cloud_c_content');			  if ((ocontainer == null || ocontent == null) || ocontainer == '' || ocontent == '')  {  return;  }						
			if (ocontainer.get(0) == null)			{			return;			}
			containerSize = jQuery.iUtil.getSize(ocontainer.get(0));
			containerPosition = jQuery.iUtil.getPosition(ocontainer.get(0));
			containerInner = jQuery.iUtil.getClient(ocontainer.get(0));
			
			contentSize = jQuery.iUtil.getSize(ocontent.get(0));
			
/*			$('div.categ_slider1')
				.css('top', containerPosition.y + 'px')
				.css('left', containerPosition.x + containerSize.wb + 'px')
				.css('height', containerSize.hb + 'px');*/
			
			var spaceToScroll = contentSize.hb - containerInner.h;
			
			if(spaceToScroll>0){
			$('#block_category').append("<div class='categ_slider1'><div class='categ_slider_indicator'></div></div>");
			width_val = $('.block_both_2_h').css('width');width_val=width_val.slice(0,3);width_val = width_val*1 + 20;
			$('.block_both_2_h').css('width',width_val+'px');
			$('div.categ_slider_indicator')
				.css('height', containerInner.h * containerSize.hb / contentSize.hb + 'px');
			
			$('.categ_slider1').Slider(
				{
					accept : '.categ_slider_indicator',
					onSlide : function( cordx, cordy, x , y)
					{
						ocontent
							.css('top', - spaceToScroll * cordy / 100 + 'px');
					}
				}

			).css('visibility','visible');
			} /* End of If condition*/						
		}
		
		function go_slider_i() 
		{
			ocontainer = $('div.cloud');
			ocontent = $('div.cloud_content');
			if (ocontainer.get(0) == null)			{			return;			}
			containerSize = jQuery.iUtil.getSize(ocontainer.get(0));
			containerPosition = jQuery.iUtil.getPosition(ocontainer.get(0));
			containerInner = jQuery.iUtil.getClient(ocontainer.get(0));
			
			contentSize = jQuery.iUtil.getSize(ocontent.get(0));
						
			spaceToScroll = contentSize.hb - containerInner.h;
$('div.cloud').
	css('width',containerSize.wb+'px').css('height',containerSize.hb+'px').css('max-width','').css('max-height','');
$('div.cloud_content').
	css('position','absolute');
				
			if(spaceToScroll>0){
			width_val = $('.block_both_2_h').css('width');width_val=width_val.slice(0,3);width_val = width_val*1 + 20;
			$('.block_both_2_h').css('width',width_val+'px');
			$('#block_indexterm').append("<div class='indexterm_slider1'><div class='indexterm_slider_indicator'></div></div>");
			$('div.indexterm_slider_indicator').css('height', containerInner.h * containerSize.hb / contentSize.hb + 'px');
			$('.indexterm_slider1').Slider(
				{
					accept : '.indexterm_slider_indicator',
					onSlide : function( cordx, cordy, x , y)
					{
						ocontent.css('top', - spaceToScroll * cordy / 100 + 'px');
					}
				}
			).css('height',containerSize.hb+'px').css('visibility','visible');
			} /* End of If condition*/
		}
		
		

function go_slider_left(which) 
{
	switch (which){
	case 'categories':
			var ocontainer = $('div.left_cloud_cat');
			var ocontent = $('div.left_cloud_content_cat');
			
			containerSize = jQuery.iUtil.getSize(ocontainer.get(0));
			containerPosition = jQuery.iUtil.getPosition(ocontainer.get(0));
			containerInner = jQuery.iUtil.getClient(ocontainer.get(0));
			
			contentSize = jQuery.iUtil.getSize(ocontent.get(0));
			
			var spaceToScroll = contentSize.hb - containerInner.h;
			if(spaceToScroll>0){
			$('.left_cloud_cat').after("<div class='left_slider_cat'><div class='left_slider_indicator_cat'></div></div>");
			$('div.left_slider_indicator_cat')
				.css('height', containerInner.h * containerSize.hb / contentSize.hb + 'px');
			
			$('.left_slider_cat').Slider(
				{
					accept : '.left_slider_indicator_cat',
					onSlide : function( cordx, cordy, x , y)
					{
						ocontent
							.css('top', - spaceToScroll * cordy / 100 + 'px');
					}
				}

			).css('visibility','visible');
			} /* End of If condition*/
	$('left_slider_indicator_cat').unbind("Click");
			
	break;
	case 'indexterms':
			var ocontainer = $('div.left_cloud_index');
			var ocontent = $('div.left_cloud_content_index');
			
			containerSize = jQuery.iUtil.getSize(ocontainer.get(0));
			containerPosition = jQuery.iUtil.getPosition(ocontainer.get(0));
			containerInner = jQuery.iUtil.getClient(ocontainer.get(0));
			
			contentSize = jQuery.iUtil.getSize(ocontent.get(0));
			
			var spaceToScroll = contentSize.hb - containerInner.h; 
			
			if(spaceToScroll>0){
			$('.left_cloud_index').after("<div class='left_slider_index'><div class='left_slider_indicator_index'></div></div>");
			$('div.left_slider_indicator_index')
				.css('height', containerInner.h * containerSize.hb / contentSize.hb + 'px');
			
			$('.left_slider_index').Slider(
				{
					accept : '.left_slider_indicator_index',
					onSlide : function( cordx, cordy, x , y)
					{
						ocontent
							.css('top', - spaceToScroll * cordy / 100 + 'px');
					}
				}

			).css('visibility','visible');
			} /* End of If condition*/
	break;
	}
}				

function slideto() {
	if (category_selected.length!=0) {
			var ocontainer = $('div.left_cloud_cat');
			var ocontent = $('div.left_cloud_content_cat');
			var oelement = $('#category'+category_selected[0]);
			var subelement = $('div.submenu');
			
			subelement_h = (subelement ? jQuery.iUtil.getSize(subelement.get(0)).h : 0); 
			item_y = jQuery.iUtil.getPosition(oelement.get(0));
			item_h =  jQuery.iUtil.getSize(oelement.get(0)); 
			containerPosition = jQuery.iUtil.getPosition(ocontainer.get(0));
			containerSize = jQuery.iUtil.getSize(ocontainer.get(0));
			contentSize = jQuery.iUtil.getSize(ocontent.get(0));
			containerInner = jQuery.iUtil.getClient(ocontainer.get(0));
			if ((item_y.y+item_h.h+subelement_h - containerPosition.y) <= containerSize.h ) return;

			var spaceToScroll = contentSize.hb - containerInner.h;
			var deplacement_relatif_ocontent = item_y.y - containerPosition.y - containerSize.h + item_h.h + subelement_h;
			//ocontent.css('top', - (item_y.y - containerPosition.y - containerSize.h + item_h.h) + 'px'); //--> PERFECT positionning
			var deplacement_relatif_slider_pourcentage = 100*deplacement_relatif_ocontent/spaceToScroll;	
			var deplacement_relatif_slider = deplacement_relatif_slider_pourcentage * (containerSize.hb-containerInner.h*containerSize.hb/contentSize.hb)/100 +2;
//var deplacement_relatif_slider = deplacement_relatif_slider_pourcentage * (containerSize.hb-containerInner.h*containerSize.hb/contentSize.hb)/100;
			$('.left_slider_cat').SliderSetValues(
				[
					[,deplacement_relatif_slider]

				]
			);
	} else if (indexterm_selected.length!=0) {
		
			var ocontainer = $('div.left_cloud_index');
			var ocontent = $('div.left_cloud_content_index');
			var oelement = $('#indexterm'+indexterm_selected[0]);

			item_y = jQuery.iUtil.getPosition(oelement.get(0));
			item_h =  jQuery.iUtil.getSize(oelement.get(0)); 
			containerPosition = jQuery.iUtil.getPosition(ocontainer.get(0));
			containerSize = jQuery.iUtil.getSize(ocontainer.get(0));
			contentSize = jQuery.iUtil.getSize(ocontent.get(0));
			containerInner = jQuery.iUtil.getClient(ocontainer.get(0));
			if ((item_y.y+item_h.h - containerPosition.y) <= containerSize.h ) return;

			var spaceToScroll = contentSize.hb - containerInner.h;
			var deplacement_relatif_ocontent = item_y.y - containerPosition.y - containerSize.h + item_h.h;
			//ocontent.css('top', - (item_y.y - containerPosition.y - containerSize.h + item_h.h) + 'px'); //--> PERFECT positionning
			var deplacement_relatif_slider_pourcentage = 100*deplacement_relatif_ocontent/spaceToScroll;	
			var deplacement_relatif_slider = deplacement_relatif_slider_pourcentage * (containerSize.hb-containerInner.h*containerSize.hb/contentSize.hb)/100 +2;
//var deplacement_relatif_slider = deplacement_relatif_slider_pourcentage * (containerSize.hb-containerInner.h*containerSize.hb/contentSize.hb)/100;
			$('.left_slider_index').SliderSetValues(
				[
					[,deplacement_relatif_slider]
					//,[width,height] ? 
				]
			);
	}

}

/*
		FUNCTION adaptSlider
		author: Francois Chemillier
		date: 13 March 2007
		is called from the home page when a main category/indexterm is selected and left menu created
		is called from the left menu when a main category/indexterm is selected 
		
			-> resize the menu-scroller with the new submenu height
			-> reposition the scroller 
*/


function original_slider (which) {

		switch (which){
		case 'categories':
			if (cat_original_spaceToScroll >0) {
				var ocontent = $('div.left_cloud_content_cat');
				$("div.left_slider_cat").remove();
				$('.left_cloud_cat').after("<div class='left_slider_cat'><div class='left_slider_indicator_cat'></div></div>");
				$('div.left_slider_indicator_cat').css('height', cat_original_slider_height + 'px');
				$('.left_slider_cat').Slider(
				{
					accept : 'div.left_slider_indicator_cat',
					onSlide : function( cordx, cordy, x , y)
					{
						ocontent
							.css('top', - cat_original_spaceToScroll * cordy / 100 + 'px');
					}
				}
				).css('visibility','visible');
				$('div.left_slider_indicator_cat').css("top",0+"px");
			}
		break;
		case 'indexterms':
			if (index_original_spaceToScroll >0) {
				var ocontent = $('div.left_cloud_content_index');
				$("div.left_slider_index").remove();
				$('.left_cloud_index').after("<div class='left_slider_index'><div class='left_slider_indicator_index'></div></div>");
				$('div.left_slider_indicator_index').css('height', index_original_slider_height + 'px');
				$('.left_slider_index').Slider(
				{
					accept : 'div.left_slider_indicator_index',
					onSlide : function( cordx, cordy, x , y)
					{
						ocontent
							.css('top', - index_original_spaceToScroll * cordy / 100 + 'px');
					}
				}
				).css('visibility','visible');
				$('div.left_slider_indicator_index').css("top",0+"px");
			}

		break;
		}

}
function record_slider_original (which) {
		switch (which){
		case 'categories':
			var ocontainer = $('div.left_cloud_cat');
			var ocontent = $('div.left_cloud_content_cat');
			var containerSize = jQuery.iUtil.getSize(ocontainer.get(0));
			var containerInner = jQuery.iUtil.getClient(ocontainer.get(0));			
			var contentSize = jQuery.iUtil.getSize(ocontent.get(0));
			
			cat_original_spaceToScroll = contentSize.hb - containerInner.h;
			cat_original_slider_height =containerInner.h * containerSize.hb / contentSize.hb;
		break;
		case 'indexterms':
			var ocontainer = $('div.left_cloud_index');
			var ocontent = $('div.left_cloud_content_index');
			var containerSize = jQuery.iUtil.getSize(ocontainer.get(0));
			var containerInner = jQuery.iUtil.getClient(ocontainer.get(0));			
			var contentSize = jQuery.iUtil.getSize(ocontent.get(0));
			
			index_original_spaceToScroll = contentSize.hb - containerInner.h;
			index_original_slider_height =containerInner.h * containerSize.hb / contentSize.hb;
		break;
		}

}


function adaptSlider(which) {
		switch (which){
		case 'categories':
			var ocontainer = $('div.left_cloud_cat');
			var ocontent = $('div.left_cloud_content_cat');
			var oslider = $("div.left_slider_cat");
			
			var containerSize = jQuery.iUtil.getSize(ocontainer.get(0));
			var containerPosition = jQuery.iUtil.getPosition(ocontainer.get(0));
			var containerInner = jQuery.iUtil.getClient(ocontainer.get(0));
			var contentSize = jQuery.iUtil.getSize(ocontent.get(0));
			var contentPosition = jQuery.iUtil.getPosition(ocontent.get(0));
			
			var spaceToScroll = contentSize.hb - containerInner.h;
			if(spaceToScroll>0){
			
		// RESIZE THE SCROLLER
				oslider.remove();
				ocontainer.after("<div class='left_slider_cat'><div class='left_slider_indicator_cat' style='visibility:hidden'></div></div>");
				$('div.left_slider_indicator_cat')
					.css('height', containerInner.h * containerSize.hb / contentSize.hb + 'px');
				$('.left_slider_cat').Slider(
				{
					accept : 'div.left_slider_indicator_cat',
					onSlide : function( cordx, cordy, x , y)
					{
						ocontent
							.css('top', - spaceToScroll * cordy / 100 + 'px');
					}
				}
				);

		// REPOSITION THE SCROLLER
//						var contentTop = ($('div.left_cloud_content_cat').css("top") ? $('div.left_cloud_content_cat').css("top").slice(0,$('div.left_cloud_content_cat').css("top").length-2)*1 : 0);
						var test = contentPosition.y - containerPosition.y;
						if (test) {
							var contentTop = test;
						} else {
							var contentTop = 0;				
						}
						var scroller_y = -(containerInner.h / contentSize.hb) * contentTop; 
						$(".left_slider_indicator_cat").css("top",scroller_y).css('visibility','visible');
		
			} /* End of If condition*/

			
		break;
		case 'indexterms':
			var ocontainer = $('div.left_cloud_index');
			var ocontent = $('div.left_cloud_content_index');
			var containerSize = jQuery.iUtil.getSize(ocontainer.get(0));
			var containerPosition = jQuery.iUtil.getPosition(ocontainer.get(0));
			var contentPosition = jQuery.iUtil.getPosition(ocontent.get(0));
			var containerInner = jQuery.iUtil.getClient(ocontainer.get(0));
			var oslider = $("div.left_slider_index");
			
			var contentSize = jQuery.iUtil.getSize(ocontent.get(0));
			
			var spaceToScroll = contentSize.hb - containerInner.h;
			if(spaceToScroll>0){
			
		// RESIZE THE SCROLLER
			
				oslider.remove();
				ocontainer.after("<div class='left_slider_index'><div class='left_slider_indicator_index' style='visibility:hidden'></div></div>");
				$('div.left_slider_indicator_index')
					.css('height', containerInner.h * containerSize.hb / contentSize.hb + 'px');

				$('.left_slider_index').Slider(
				{
					accept : 'div.left_slider_indicator_index',
					onSlide : function( cordx, cordy, x , y)
					{
						ocontent
							.css('top', - spaceToScroll * cordy / 100 + 'px');
					}
				}
				);

		// REPOSITION THE SCROLLER
						var test = contentPosition.y - containerPosition.y;
						if (test) {
							var contentTop = test;
						} else {
							var contentTop = 0;				
						}
						var scroller_y = -(containerInner.h / contentSize.hb) * contentTop; 
						$("div.left_slider_indicator_index").css("top",scroller_y).css('visibility','visible');
		
			} /* End of If condition*/

		break;
		}

}
/*
	date: 		15 March 2007
	author: 	Francois Chemillier
	use:		determine either the content of the category/indexterm left panel needs to be resized, reslided when a submenu is cleared
	arguments:	which - panel categories OR panel indexterm
				submenuH - the height of the submenu to cleared	

*/

function FixBuggWhenScrolling(which) {
		switch (which){
		case 'categories':
			var ocontainer = $("div.left_cloud_cat");
			var ocontent = $("div.left_cloud_content_cat");
			var submenu = $(".submenu");
			
		break;
		case 'indexterms':
			var ocontainer = $("div.left_cloud_index");
			var ocontent = $("div.left_cloud_content_index");
			var submenu = $(".submenu");
		break;
		}
			ocontentY = jQuery.iUtil.getPosition(ocontent.get(0)).y;
			ocontentH = jQuery.iUtil.getSize(ocontent.get(0)).hb;
			ocontainerY = jQuery.iUtil.getPosition(ocontainer.get(0)).y;
			ocontainerH = jQuery.iUtil.getSize(ocontainer.get(0)).hb;
			submenuH = jQuery.iUtil.getSize(submenu.get(0)).hb;
			
			var bugger = (ocontentH	- (submenuH) +	ocontentY - ocontainerY	- ocontainerH)	
			if (bugger < 0) {
						var presentTop = ocontentY - ocontainerY;
						var futurTop = presentTop+ submenuH;
						if (futurTop>=0) futurTop = 0;
						futurTop += 'px';
						ocontent.animate({top:futurTop},"slow");
			}
}
