// JavaScript Document
/* 
REQUISITI: ajax_request.js
*/
function ZoomImage(image, description,id){
		id_image=(id)?id:image;
		img_description=description;
		showOverPage();
		document.getElementById('overlay').style.width='300px';	
		document.getElementById('overlay').style.height='300px';	
		centerOverlay();
		
		
		document.getElementById('overlay').innerHTML=getLoadingImage();
		AyaxRequest('ajax_request.php', 'POST', 'filetocall=zoom_image&image='+image+'&id_image='+id_image, ZoomImageHTML);		
}

function ZoomImageHTML(){
	
	//creo il contenitore
	var objContainer = document.createElement("div");
	objContainer.setAttribute('id','imgContainer');
	var objBody = document.getElementsByTagName("body").item(0);
	objBody.appendChild(objContainer);
	document.getElementById('imgContainer').style.left='0px';
	document.getElementById('imgContainer').style.top='0px';	
	document.getElementById('imgContainer').style.width='0px';	
	document.getElementById('imgContainer').style.height='0px';	
	objContainer.className = 'div_basic';

	// assegno al contenitore il codice html proveniente dal server
	document.getElementById('imgContainer').innerHTML=this.req.responseText;
	
	// assegno all envento onLoad dell' immagine la relativa funzione
	document.getElementById(id_image).onload = function() { imageOnLoad(); }	
//	view_child(document.getElementById(id_image));
	
}

function imageOnMouseOver(){
	
	try{
		if (img_description){
			setAltDiv();
			changeOpac(0, 'altContainer');
			opacity('altContainer', 0, 100, 100);
			id2follow='altContainer';
			document.onmousemove=followmouse;
		}
	}catch(e){alert(e)}
}


function setAltDiv(){
	
	// creo il contenitore per l'alt div
	var objContainer = document.createElement("div");
	objContainer.setAttribute('id','altContainer');
	var objBody = document.getElementsByTagName("body").item(0);
	objBody.appendChild(objContainer);
	var vScroll = getPageScroll();
	var immagine=document.getElementById(id_image);
	document.getElementById('altContainer').style.left=mouseX + 'px';
	if(navigator.userAgent.indexOf("MSIE")!=-1){
	document.getElementById('altContainer').style.top=mouseY +vScroll[1] + 'px';
	}else{
	document.getElementById('altContainer').style.top=mouseY + 'px';
	}
	document.getElementById('altContainer').className = 'div_alt';
	document.getElementById('altContainer').innerHTML=img_description.replace(/'/g,'&prime;');

}

var id2follow='';
function followmouse(e){
	getMouseCoords(e);
	var vScroll = getPageScroll();
	window.status=mouseX+'-'+mouseY;
	document.getElementById(id2follow).style.left=mouseX+30 + 'px';
	if(navigator.userAgent.indexOf("MSIE")!=-1){
	document.getElementById(id2follow).style.top=mouseY+vScroll[1] +25 + 'px';
	}else{
	document.getElementById(id2follow).style.top=mouseY+25 + 'px';
	}
	return false;
}


function imageOnMouseOut(){
	try{
		var objBody = document.getElementsByTagName("body").item(0);
		objBody.removeChild(document.getElementById('altContainer'));
		document.onmousemove='';
	}catch(e){	}
}


function imageOnLoad(){
	opacity('image_loader', 100, 0, 100);
	window.setTimeout('setOverlay()',100);
}

function imageOnClick(){
	imageOnMouseOut();	
	hideOverPage();
}


function setOverlay(){
	
	// nascondo l' overlay
	changeOpac(0, id_image);

	// dimensiono l' overlay
	document.getElementById('overlay').style.width=(document.getElementById(id_image).width+20)+'px';
	document.getElementById('overlay').style.height=(document.getElementById(id_image).height+30)+'px';
	document.getElementById('overlay').innerHTML=document.getElementById('imgContainer').innerHTML;
	centerOverlay();
	
	// fade in
	opacity(id_image, 0, 100, 300);
	
	// eventi per l'immagine
	document.getElementById(id_image).onclick = function() { imageOnClick(); }	
	document.getElementById(id_image).onmouseover = function() { imageOnMouseOver(); }	
	document.getElementById(id_image).onmouseout = function() { imageOnMouseOut(); }	
	

	// distruggo il contenitore dell' immagine
	var objBody = document.getElementsByTagName("body").item(0);
	objBody.removeChild(document.getElementById('imgContainer'));

}


function FadeIn(id, t){
	changeOpac(0, id);
	opacity(id, 0, 100, t);
}

function FadeOut(id, t){
	changeOpac(100, id);
	opacity(id, 100, 0, t);
}


function opacity(id, opacStart, opacEnd, millisec) { 

	//speed for each frame 
	var speed = Math.round(millisec / 100); 
	var timer = 0; 

	//determine the direction for the blending, if start and end are the same nothing happens 
	if(opacStart > opacEnd) { 
		for(i = opacStart; i >= opacEnd; i--) { 
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
			timer++; 
		} 
	} else if(opacStart < opacEnd) { 
		for(i = opacStart; i <= opacEnd; i++) { 
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
			timer++; 
		} 
	} 
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
	try{
		var object = document.getElementById(id).style; 
		object.opacity = (opacity / 100); 
		object.MozOpacity = (opacity / 100); 
		object.KhtmlOpacity = (opacity / 100); 
		object.filter = "alpha(opacity=" + opacity + ")"; 
	}catch(e){}
}

var mouseX=0;
var mouseY=0;

document.onmousemove=getMouseCoords;
function getMouseCoords(e){
	if (typeof e != "undefined"){
			mouseX=e.pageX;
			mouseY=e.pageY;
	}else if(typeof window.event != "undefined"){
		
			mouseX=event.clientX;
			mouseY=event.clientY;
			
		}
	
}


