var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,total,thestring;

var minTop;
var maxTop;
var minLeft;
var maxLeft;
var delta = 1;
var isMoving = false;
var nb_divMobile = 1;

if(checkIt('konqueror')){
	browser = "Konqueror";
	OS = "Linux";
}
else if(checkIt('safari')) browser = "Safari"
else if(checkIt('omniweb')) browser = "OmniWeb"
else if(checkIt('opera')) browser = "Opera"
else if(checkIt('webtv')) browser = "WebTV";
else if(checkIt('icab')) browser = "iCab"
else if(checkIt('msie')) browser = "Explorer"
else if(!checkIt('compatible')){
	browser = "Netscape"
	version = detect.charAt(8);
}
else browser = "An unknown browser";

if(!version) version = detect.charAt(place + thestring.length);

if(!OS){
	if(checkIt('linux')) OS = "Linux";
	else if(checkIt('x11')) OS = "Unix";
	else if(checkIt('mac')) OS = "Mac"
	else if(checkIt('win')) OS = "Windows"
	else OS = "an unknown operating system";
}
function checkIt(string){
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}

function getRectPositions(id){
	clip = id.style.clip;
	
	clip = clip.replace("rect(","");
	clip = clip.replace("px)","");
	
	for(i = 0; i < 3; i++){
		if(browser == "Explorer" || browser == "Safari"){
			clip = clip.replace("px ","|");		
		}
		else{
			clip = clip.replace("px, ","|");		
		}
	}
	return clip.split("|");
}


function goTop(content_block, waitTime, maxTop){
	//Recupero delle dimensioni della maschera
	id = document.getElementById(content_block);
	//Recupero della posizione della maschera
	thisTop = Number(id.style.top.replace("px",""));
	
	//Se é possibile spostarsi a sinistra
	if(thisTop < maxTop){
		//Assegnazione delle nuove dimensioni della maschera
		arrayRect = getRectPositions(id);
		if(browser == "Explorer" || browser == "Safari"){
			id.style.clip = "rect("+ (Number(arrayRect[0]) - delta) +"px "+ arrayRect[1] +"px "+ (Number(arrayRect[2]) - delta) +"px "+ arrayRect[3] +"px)";
		} else {
			id.style.clip = "rect("+ (Number(arrayRect[0]) - delta) +"px, "+ arrayRect[1] +"px, "+ (Number(arrayRect[2]) - delta) +"px, "+ arrayRect[3] +"px)";
		}		
		//Assegnazione della nuova posizione della maschera	
		id.style.top = Number(thisTop + delta) + 'px';
		
		if(isMoving){
			timerID = setTimeout ('goTop(\''+content_block+'\', '+waitTime+', '+maxTop+')', waitTime);
		}
	}
}
function goRight(content_block, waitTime, minLeft){
	//Recupero delle dimensioni della maschera
	id = document.getElementById(content_block);
	//Recupero della posizione della maschera
	left = Number(id.style.left.replace("px",""));
	
	//Se é possibile spostarsi a sinistra
	if(left > minLeft){
		//Assegnazione delle nuove dimensioni della maschera
		arrayRect = getRectPositions(id);		
		if(browser == "Explorer" || browser == "Safari"){
			id.style.clip = "rect("+ arrayRect[0] +"px "+ (Number(arrayRect[1]) + delta) +"px "+ arrayRect[2] +"px "+ (Number(arrayRect[3]) + delta) +"px)";
		} else {
			id.style.clip = "rect("+ arrayRect[0] +"px, "+ (Number(arrayRect[1]) + delta) +"px, "+ arrayRect[2] +"px, "+ (Number(arrayRect[3]) + delta) +"px)";
		}	
		//Assegnazione della nuova posizione della maschera	
		id.style.left = Number(left - delta) + 'px';
		
		if(isMoving){
			timerID = setTimeout ('goRight(\''+content_block+'\', '+waitTime+', '+minLeft+')', waitTime);
		}
	}
}
function goBottom(content_block, waitTime, minTop){
	//Recupero delle dimensioni della maschera
	id = document.getElementById(content_block);
	//Recupero della posizione della maschera
	thisTop = Number(id.style.top.replace("px",""));
	
	//Se é possibile spostarsi a sinistra
	if(thisTop > minTop){
		//Assegnazione delle nuove dimensioni della maschera
		arrayRect = getRectPositions(id);
		if(browser == "Explorer" || browser == "Safari"){
			id.style.clip = "rect("+ (Number(arrayRect[0]) + delta) +"px "+ arrayRect[1] +"px "+ (Number(arrayRect[2]) + delta) +"px "+ arrayRect[3] +"px)";
		} else {
			id.style.clip = "rect("+ (Number(arrayRect[0]) + delta) +"px, "+ arrayRect[1] +"px, "+ (Number(arrayRect[2]) + delta) +"px, "+ arrayRect[3] +"px)";
		}		
		//Assegnazione della nuova posizione della maschera	
		id.style.top = Number(thisTop - delta) + 'px';
		
		if(isMoving){
			timerID = setTimeout ('goBottom(\''+content_block+'\', '+waitTime+', '+minTop+')', waitTime);
		}
	}
}
function goLeft(content_block, waitTime, maxLeft){
	//Recupero delle dimensioni della maschera
	id = document.getElementById(content_block);
	//Recupero della posizione della maschera
	left = Number(id.style.left.replace("px",""));
	
	//Se é possibile spostarsi a sinistra
	if(left < maxLeft){
		//Assegnazione delle nuove dimensioni della maschera
		arrayRect = getRectPositions(id);
		if(browser == "Explorer" || browser == "Safari"){
			id.style.clip = "rect("+ arrayRect[0] +"px "+ (Number(arrayRect[1]) - delta) +"px "+ arrayRect[2] +"px "+ (Number(arrayRect[3]) - delta) +"px)";
		} else {
			id.style.clip = "rect("+ arrayRect[0] +"px, "+ (Number(arrayRect[1]) - delta) +"px, "+ arrayRect[2] +"px, "+ (Number(arrayRect[3]) - delta) +"px)";
		}		
		//Assegnazione della nuova posizione della maschera	
		id.style.left = Number(left + delta) + 'px';
		
		if(isMoving){
			timerID = setTimeout ('goLeft(\''+content_block+'\', '+waitTime+', '+maxLeft+')', waitTime);
		}
		else{
			isMoving = false;
		}
	}
}

function move(direction, waitTime, content_block){
	isMoving = true;
	switch (direction){
		case 'top':
			goTop(content_block, waitTime, maxTop);
			break;
		case 'right':
			goRight(content_block, waitTime, minLeft);
			break;
		case 'bottom':
			goBottom(content_block, waitTime, minTop);
			break;
		case 'left':
			goLeft(content_block, waitTime, maxLeft);
			break;
	}
}

function stopMove(){
	isMoving = false;
}

function printContents(contents_position, content_block, is_edit_mode){
	//Se nel sito ci sono blocchi di contenuti mobili
	if(document.getElementById(contents_position) != null){
		content = getAnchorPosition(contents_position);
		id = document.getElementById(content_block);
		arrayRect = getRectPositions(id);			
		
		//Posizionamento del blocco con i contenuti alla posizione stabilitą dal design
		contentBlock = document.getElementById(content_block);
		contentBlock.style.visibility = 'visible';
		contentBlock.style.top = content.y - arrayRect[0] + 'px';
		contentBlock.style.left = content.x + 'px';	
		
		//Calcolo delle posizioni minime e massime dello spostamento del blocco dei contenuti		
		minTop = content.y - (id.offsetHeight - arrayRect[2]);
		maxTop = content.y;
		if(is_edit_mode){
			minTop -= 180;
		}
		minLeft = content.x - (id.offsetWidth - arrayRect[1]);
		maxLeft = content.x;
		heightReservedSpace = id.offsetHeight - arrayRect[2];
		widthReservedSpace = id.offsetWidth - arrayRect[1];
				
		//Se il blocco con i contenuti é pił alto dello spazio assegnato
		if(heightReservedSpace > 0){
			//Riservare dello spazio per poter muovere la pagina senza muovere la finestra
			document.getElementById('contents_block_reserved_space').style.height = heightReservedSpace + 'px';		
			//Attivare le frecce le frecce del movimento
			document.getElementById('contents_block_botton_up').style.visibility = 'visible';
			document.getElementById('contents_block_botton_down').style.visibility = 'visible';			
		}
		//Se il blocco con i contenuti é pił largo dello spazio assegnato
		if(widthReservedSpace > 0){
			//Riservare dello spazio per poter muovere la pagina senza muovere la finestra
			document.getElementById('contents_block_reserved_space').style.width = widthReservedSpace + 'px';		
			//Attivare le frecce le frecce del movimento
/*
			document.getElementById('contents_block_botton_left').style.visibility = 'visible';
			document.getElementById('contents_block_botton_right').style.visibility = 'visible';		*/		
		}
	}
}