/*
Javascript function HASHes
copyright ekuana 2007 and gotire 2007

** Menus function are generic function to work and initialize the menu system

** Zoom function is a way to add unobstrusive behavior to image thru class selectors
in this case we are adding a "smart" popup overlay of zoomed imaged when clicked
and align it to make sure it fits within the main content window. The mouseout event removes all 
new zoom DIVs created previously so if user clicks more then once, it will remove all new DIVs
thru the allocated class selector and the $$ prototype utiliy method.

Important to respect the naming schema for thumb and large image here to simplify scripting

gotire

*/

/*****************************************************************/


var menus = {
	init:function(currentID){
		allmenus = $$('.menu1 img');
		
		// add preload _2 images
		allmenus.each(function(element){
			var id2find = element.id.split("-")[1];
			var img2load = id2find+"_2.png";
			//console.log(img2load);
			menus.preLoad(img2load);
		
		});
		//handle mouse over for current page - menu
		menus.lock(currentID);

	},

	over:function(refID){
		imgID = "img-"+refID;
		//console.log($(imgID).src);
		$(imgID).src="img/"+refID+"_2.png";
		
		if(refID!='menu_concepts'){submenus.hideall()};
	},
	
	out:function(refID){
		imgID = "img-"+refID;
		//console.log($(imgID).src);
		$(imgID).src="img/"+refID+"_1.png";
	},
	
	lock:function(currentID){
		//keep mouseover state for current page except accueil
		if(currentID !="menu_accueil"){
			menus.over(currentID);
			
			Event.observe(currentID,'mouseout',function(e){
				menus.over(this.id);
			});
		
		};
			
	},
	
	preLoad:function(imgID){
		MM_preloadImages("img/"+imgID);
		//console.log("Images to preload: "+imgID);
	}

};
/*****************************************************************/
var submenus = {
	over:function(id){
		$(id).className = "submenu2";	
	},
	
	out:function(id){
		$(id).className = "submenu1";
	},
	
	show:function(id){
		$(id).show();
	},
	hideall:function(){
		$('submenu_concepts').hide();	
	}
};

/*****************************************************************/
var zoom = {
	init:function(){
		allthumbs = $$("img.thumb1");
		allthumbs.each(function(e){
				//on click show large image
				Event.observe(e.id,'click', function(evt){
					//console.log("add behavior to "+e.id);
					zoom.show(e.id);
				});
				/* onmouse out hide large image
				Event.observe(e.id,'mouseout', function(evt){
					//console.log("add behavior to "+e.id);
					zoom.hideall(e.id);
				});	*/			
				
			});
	},
	
	show: function(imgID){
		//console.log("run show for img : "+imgID +" in DIV named : "+$(imgID).up().id);
		zoom.hideall();
		
		imgDiv = $(imgID).up().id;
		imgPosition = Position.cumulativeOffset($(imgID));
		imgFile = imgID+".jpg";
		containerPosition = Position.cumulativeOffset($('mid_content'));
		
		//extract if vertical or horizntal large image and thumbnail size
			imgOrient = imgID.split("-")[1];
			thumbHeight = $(imgID).getHeight();
			thumbWidth = $(imgID).getWidth();
			
			//calculate distance of thumb to top of container DIV
					
			sectionID = $(imgID).up(1).id;
			sectionPosition = Position.cumulativeOffset($(sectionID));
			thumbDistance = imgPosition[1]-sectionPosition[1];
			
			//console.log("distance from top of section : "+thumbDistance);
			//console.log("orientation : "+imgOrient);
			//console.log("thumb height : "+ thumbHeight);
			//console.log("thumb width : "+ thumbWidth);
		//console.log("position X of container is : "+containerPosition[0])
		// determine to position left or right justified by comparing
		// the X position of the content container to that of the proposed DIV img
		// which is X-275 pixels
		


		//adjust height depending on orientation
		if(imgOrient=='h'){
			divWidth="423px";
			divHeight="282px";
			divBackImg="img/backload-h.png";
			spinTop="130px";
			spinLeft="200px";
			//check thumb position to figure Y coordinate
			if(thumbDistance>=150){
			zoomY = (imgPosition[1]-260+thumbHeight)+"px";
			} else {
			zoomY = (imgPosition[1]-160+thumbHeight)+"px";
			};			
			
			if((imgPosition[0]-275)>containerPosition[0]){
			
				zoomX = (imgPosition[0]-275)+"px";
				//console.log("right position");
				}
				else{
				zoomX = (imgPosition[0])+"px";
				//console.log("left position");
			};			
		};
		
		if(imgOrient=='v'){
			divWidth="282px";
			divHeight="423px";
			divBackImg="img/backload-v.png";
			spinTop="200px";
			spinLeft="130px";
			//check thumb position to figure Y coordinate
			if(thumbDistance>=305){
			zoomY = (imgPosition[1]-405+thumbHeight)+"px";
			} else {
				
				if(thumbDistance>=250){
				
				zoomY = (sectionPosition[1]+85)+"px";
				}else {
				zoomY = (sectionPosition[1]+10)+"px";
				};
			};			


		if((imgPosition[0]-275)>containerPosition[0]){
			
				zoomX = (imgPosition[0]-175)+"px";
				//console.log("right position");
				}
				else{
				zoomX = (imgPosition[0]-0)+"px";
				//console.log("left position");
			};			
			
			
		};
		//IEzoomY = (imgPosition[1])+"px";
		//console.log ("position of img is : "+zoomX + ", "+ zoomY);
		
		var zoomHTML = "";
		zoomHTML = "<div class='zoom2' style='top:"+zoomY+";left:"+zoomX+"; width:"+divWidth+"; height:"+divHeight+"; background-image:url("+divBackImg+");' onclick='zoom.hideall();' >";
		zoomHTML = zoomHTML + "<img src='img/loader.gif' style='position:absolute;top:"+spinTop+"; left:"+spinLeft+"; z-index:10'/>";
		zoomHTML = zoomHTML + "<img src='img/but_close.png' width='29' height='30' class='zoom_close'/>";
		zoomHTML = zoomHTML + "<img src='img/"+imgFile+"' style='position:absolute;top:0px; left:0px; z-index:20;   margin-top:0px; -margin-top:-42px;'/>";
		
		zoomHTML = zoomHTML + "</div>";
		
		new Insertion.After('mid_container1',zoomHTML);
		
	}, 
	
	hideall: function(imgID){
		//console.log("hidding all zooms");
		$$('div.zoom2').invoke('remove');
	}
	
	
};

/*****************************************************************/


//UTILITY FUNCTIONS from MM library
function SetCookie(cookieName,cookieValue,nDays) {
	 var today = new Date();
	 var expire = new Date();
	 if (nDays==null || nDays==0) nDays=1;
	 expire.setTime(today.getTime() + 3600000*24*nDays);
	 document.cookie = cookieName+"="+escape(cookieValue)
					 + ";expires="+expire.toGMTString();
}
function ReadCookie(cookieName) {
 var theCookie=""+document.cookie;
 var ind=theCookie.indexOf(cookieName);
 if (ind==-1 || cookieName=="") return ""; 
 var ind1=theCookie.indexOf(';',ind);
 if (ind1==-1) ind1=theCookie.length; 
 return unescape(theCookie.substring(ind+cookieName.length+1,ind1));
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

