/**
 * @author Kyo
 */

	var tempX = 0;
	var tempY = 0;
	var distX = 0;
	var distY = 0;
	var premuto;
	var time;
	var elem;
	var IE = document.all?true:false		//controllo se mi trovo su IE
	
 function getTarget(e){
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3){
		targ = targ.parentNode;
	}
	return targ;
 }

 function myAlert(type,text){
	var classe = 'a1';
	if(type==2)classe = 'a2';
	if(type==3)classe = 'a3';
	if(type==4)classe = 'a4';
	//creo il div
	var divA = document.createElement("DIV");	
	divA.id = "divAlert";	
	divA.className = 'alert ' + classe;
	//creo il testo
	var textA = document.createElement("DIV");
	textA.innerHTML = text;
	divA.appendChild(textA);	
	//creo il bottone
	var buttA = document.createElement("BUTTON");
	buttA.value = 'OK';
	divA.appendChild(buttaA);	
	//creo il div mask
	var divMaskA = document.createElement("DIV");	
	divMaskA.id = "divMaskAlert";	
	divMaskA.className = 'mask_alert';
	document.body.appendChild(divMaskA);	
	document.body.appendChild(divA);
 }
 
 function closeAlert(){
	document.body.removeChild(document.getElementById('divAlert'));
	document.body.removeChild(document.getElementById('divMaskAlert'));
 }
 
	
	//assegno l'ascoltatore all'evento mouseMove
/*	if (!IE) document.captureEvents(Event.MOUSEMOVE)
	document.onmousemove = getMouseXY;
	
	//assegno l'ascoltatore all'evento mouseUp
	if (!IE) document.captureEvents(Event.MOUSEUP)
	document.onmouseup = stopMove;	
*/	
	//visualizza un div di caricamento in corso
	function loading(type,obj){
		if(type){
			var divMX = document.createElement("DIV");
			divMX.id = "divLoading";	
			divMX.className = "maskLoading";	
			divMX.style.display = "block";			
			var loading = document.createElement("IMG");
			loading.id = 'imgLoading';
			loading.className = 'loading';
			loading.src="images/loading.gif";			
			var testo = document.createElement("DIV");
			testo.id = 'txtLoading';
			testo.className = 'loading';
			testo.innerHTML = 'loading';
			if (obj) {
				obj.appendChild(divMX);
				obj.appendChild(loading);
				obj.appendChild(testo);
			}
			else {
				document.getElementById('divMain').appendChild(divMX);
				document.getElementById('divMain').appendChild(loading);
				document.getElementById('divMain').appendChild(testo);
				/* li aggiungo al div principale per evitare problemi di scroll
				document.body.appendChild(divMX);
				document.body.appendChild(loading);
				document.body.appendChild(testo);
				*/
			}
		}else{
			document.getElementById('divMain').removeChild(document.getElementById("divLoading"));	
			document.getElementById('divMain').removeChild(document.getElementById("imgLoading"));	
			document.getElementById('divMain').removeChild(document.getElementById("txtLoading"));
			/*
			document.body.removeChild(document.getElementById("divLoading"));	
			document.body.removeChild(document.getElementById("imgLoading"));	
			document.body.removeChild(document.getElementById("txtLoading"));
			*/	
		}
	}
	

/** controlla le date passate
 *	@return 0 - se sono uguali
 *          1 - se la data 1 è > di data 2
 *          2 - se la data 2 è > di data 1
 */ 
 function compareDate(data1,data2){
	var app1 = data1.split('/');
	var app2 = data2.split('/');
	//controlli sull'anno
	if(app2[2]<app1[2])return 1;
	if(app2[2]>app1[2])return 2;
	//controlli sul mese
	if(app2[1]<app1[1])return 1;
	if(app2[1]>app1[1])return 2;
	//controlli sul giorno
	if(app2[0]<app1[0])return 1;
	if(app2[0]>app1[0])return 2;
	//sono uguali 
	return 0;
 }
	
/** catturo le coordinate del mouse
 * 
 * @param e evento di movimento
 * @return 
 */
 function getMouseXY(e) {
	  if (IE) { 
	    tempX = window.event.clientX + document.body.scrollLeft
	    tempY = window.event.clientY + document.body.scrollTop
	  } else {  
	    tempX = e.pageX
	    tempY = e.pageY
	  }  
	  //controllo se possono capiatare valori negativi
	  if (tempX < 0){tempX = 0}
	  if (tempY < 0){tempY = 0}  
	  return true
 }

/** muovo la finestra selezionata
 * 
 * @return
 */ 
 function move(){
	if (premuto) {
		premuto.style.left = (tempX - distX) + "px";
		premuto.style.top = (tempY - distY) + "px";
		distX = tempX - premuto.offsetLeft;
		distY = tempY - premuto.offsetTop;
	}		
 }

/** inializzo le variabili per indicare l'inizio del movimento
 * 
 * @param id id dell'oggetto che si vuole muovere
 * @return
 */ 
 function setPremuto(id){
	//creo il div per catturare il movimento su tutta la pagina
	elem = document.createElement("DIV");
	elem.id = "divCanvas";
	elem.className = "canvas";

	//IE non riesce a prendere lo zindex dal foglio css associato, bisogna prima settareglielo
	document.getElementById(id).style.zIndex = 28;
	
	elem.style.zIndex = (parseInt(document.getElementById(id).style.zIndex)-1);
	document.body.appendChild(elem);
	premuto = document.getElementById(id);
	distX = tempX - premuto.offsetLeft;
	distY = tempY - premuto.offsetTop;			
	time = setInterval(move,10);
 }

/** indico che è finito il movimento dell'oggetto
 * 
 * @return
 */
 function stopMove(){			
	if(time)clearInterval(time);
	if(document.getElementById("divCanvas"))document.body.removeChild(elem);			
	premuto=null;
 }

/** richiama la pagina per effettuare l'upload del file
 * 
 * @param {String} filename
 * @param {int} idPost 
 */ 
 function uploadFile(filename,idPost){
 	//cambio l'immagine 
	document.getElementById("imgObject").src = filename;
 }

 /**
   * cambia il formato della data
   * @param (String) data data da convertire
   * @param (int) type 2:da gg/mm/aaaa a aaaammgg
   *						   1:da aaaa-mm-gg a gg/mm/aaaa
   */
 function xDate(data,type){
	var conv = "";
	if(type==2){
		var dates = data.split('/');
		conv = dates[2] + "" + dates[1] + "" + dates[0];
	}else{
		var dates = data.split('-');
		conv = dates[2] + "/" + dates[1] + "/" + dates[0];
	}
	return conv;
 }
 
 
 /** rimuove gli spazi a destra e sinistra di una stringa
  * 
  * @param {String} str stringa
  * @param {Object} chars 
  */
 function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
 }

/** rimuove gli spazi a sinistra di una stringa
 * 
 * @param {String} str stringa
 * @param {Object} chars
 */
 function ltrim(str, chars) {
	chars = chars || "\\s";
 	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
 }

/** rimuove gli spazi a destra di una stringa
 * 
 * @param {String} str stringa
 * @param {Object} chars
 */
 function rtrim(str, chars) {
	chars = chars || "\\s";
 	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
 }

/**
 * ritorna l'esatta posizione dell'oggetto all'interno della pagina
 * @param {Object} obj oggetto da cui prendere le coordinate
 */
 function getOffsetPosition(obj){	
	var trg = obj;
	var a_coords = new Array();
	var app = '';
	var trgApp = trg;
	var x = trg.offsetLeft;
	var y = trg.offsetTop;
	var a_parent = new Array();	
	a_parent.push(trgApp);				
	//prendo tutti gli elementi che content
	while(app!='HTML'){
		trgApp = trgApp.parentNode;
		a_parent.push(trgApp);
		app = trgApp.tagName;
	}	
	for(var i=1;i<a_parent.length;i++){
		//controllo gli elementi padre figlio per capire quale offset mantere
		var obj1 = a_parent[i-1];
		var obj2 = a_parent[i];
		if(obj2.style.position=='absolute'){
			//contenitore absolute e contenuto absolute,relative,static
			y = y + obj2.offsetTop;	
			x = x + obj2.offsetLeft;
		}else if(obj2.style.position=='static'){
			if(obj1.style.position=='absolute'||obj1.style.position=='relative'){
				//contenitore static e contenuto absolute o relative
				y = obj1.offsetTop;	
				x = obj1.offsetLeft;
			}else{
				//contenitore static e contenuto static
				y = y + obj2.offsetTop;	
				x = x + obj2.offsetLeft;	
			}						
		}else if(obj2.style.position=='relative'){
			//contenitore relative e contenuto absolute,relative,static
			y = y + obj2.offsetTop;	
			x = x + obj2.offsetLeft;
		}
	}
	a_coords.push(x);
	a_coords.push(y);
	return a_coords;
 }

 

