var xmlhttp = false;
var xmlhttp2 = false;
var rvalue = "";

var ttXpos = 100, ttYpos = 100;
var myTooltipContainer = false;
var ttNS4 = (document.layers) ? 1 : 0;           // the old Netscape 4
var ttIE4 = (document.all) ? 1 : 0;              // browser wich uses document.all
var ttDOM = (document.getElementById) ? 1 : 0;   // DOM-compatible browsers
if (ttDOM) { // if DOM-compatible, set the others to false
    ttNS4 = 0;
    ttIE4 = 0;
}

myTooltipContainer = document.createElement('div');
myTooltipContainer.id = 'TooltipContainer';
myTooltipContainer.name = 'TooltipContainer';
myTooltipContainer.className = 'TooltipContainer';
document.body.appendChild(myTooltipContainer);


if (typeof ActiveXObject != 'undefined') {
	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} else if (typeof XMLHttpRequest != 'undefined') {
	xmlhttp = new XMLHttpRequest();
	xmlhttp.overrideMimeType('text/xml');
}

function controllaNumeri (myfield, e, dec) {
	var key;
	var keychar;
	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;
	keychar = String.fromCharCode(key);
	// control keys
	if ((key==null) || (key==0) || (key==8) ||
	    (key==9) || (key==27) )
	   return true;
	// numbers
	else if ((("0123456789").indexOf(keychar) > -1))
	   return true;
	// decimal point jump
	else if (dec && (keychar == "."))
	   {
	   myfield.form.elements[dec].focus();
	   return false;
	   }
	else
	   return false;
}

function show(elementId) {
	document.getElementById(elementId).style.display='';
}
function hide(elementId) {
	document.getElementById(elementId).style.display='none';
}
function showHide(elementId) {
	if (document.getElementById(elementId).style.display=='none') {
		show(elementId);
	} else {
		hide(elementId);
	}
}

function passaChar(nextfield, chars, currfield) {
    x = currfield.value.length;
    if (x == chars) {
        o = document.getElementById(nextfield);
        //changed, not get the webwork's form_id
        if (o != null)    o.focus();
    }
}

function validRequired(formField,tipo,fieldLabel) {
	var result = true;
    if (formField.name ){
        switch(tipo){
            case "select-one":
                if (formField.options[formField.selectedIndex].text == "" || formField.options[formField.selectedIndex].text == "None"){
                    result = false;
                }
                break;
            case "select-multiple":
                if (formField.selectedIndex == -1){
                    result = false;
                }
                break;
            case "noNull":
                if (formField.value == "" || formField.value == null){
                    result = false;
                }
                break;
            case "noZero":
//	            alert (formField.name + "--->  " + parseInt(formField.value))
                if (formField.value == "" || formField.value == null || isNaN(parseInt(formField.value)) || parseInt(formField.value,10) == 0){
                    result = false;
                }
                break;
            case "radio":
//	            alert (formField.name + "--->  " + formField.checked)
                if (formField.checked == false){
                    result = false;
                }
                break;
            case "hidden":
            	var a = 0;
					 		for (i = 0; i < document.forms[0].length; i++) {
					 			if (document.forms[0].elements[i].name==formField.name) {
			        				if (document.forms[0].elements[i+1].name.indexOf("New")>-1 && (formField.value == "" || formField.value == null || formField.value == "0")) {
			        					a = 1;
						                if (document.forms[0].elements[i+1].value == "" || document.forms[0].elements[i+1].value == null || document.forms[0].elements[i+1].value == "0"){
						                    result = false;
						                }
						            }
						        }
						    }
                if (a==0 && (formField.value == "" || formField.value == null || formField.value == "0")){
                    result = false;
                }
                break;
            case "year":
                if (formField.value < 1990 || formField.value > 2020 || formField.value == null || formField.value.length > 4){
                    result = false;
                }
                break;
            case "data":
                if (formField.value.length != 8 && formField.value.length != 10){
                    result = false;
                }
                break;
            default:
                if (formField.value == "" || formField.value == null){
                    result = false;
                }
            }
    }

    if (!result) {
		alert('Insert a valid value to: ' + formField.id);
		formField.focus();
	}
	return result;
}

function ajaxQuery(tipo,campo1,campo2,campo3,campo4,campo5) {
	var phpAjax = '../inc/weBoostFunctions.php?tipo=' + tipo + '&campo1=' + campo1 + '&campo2=' + campo2 + '&campo3=' + campo3 + '&campo4=' + campo4 + '&campo5=' + campo5;
	//alert (phpAjax)
	xmlhttp.open('GET',phpAjax, true);
	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        	if (xmlhttp.responseText != "" ) {
	        	alert (xmlhttp.responseText + ' ');
        	}
		}
	};
	xmlhttp.send(null);
}

function ajaxInner(tipo,varInner,var1,var2,var3,var4,var5) {
	var phpAjax = '../spendiFunctions.php?tipo=' + tipo + '&var1=' + var1 + '&var2=' + var2 + '&var3=' + var3+ '&var4=' + var4+ '&var5=' + var5;
	var aggiungiTesto = "";
	xmlhttp.open('GET',phpAjax, true);
	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			if (varInner != '') {
				if (varInner == 'alerta' ||  xmlhttp.responseText.indexOf("ATTENTION! ") > 0) {
					alert(xmlhttp.responseText + ' ');
				} else if (varInner == 'ritorna') {
					rvalue = String(xmlhttp.responseText);
				} else if (varInner == 'evaluate') {
					eval(xmlhttp.responseText );
				} else if (var1 == "append") {
						var txt = document.createTextNode(xmlhttp.responseText);
						document.getElementById('TooltipContainer').appendChild(txt);
				} else if (varInner.indexOf("_src")!=-1) {
					varInner = varInner.replace("_src","");
					document.getElementById(varInner).src = xmlhttp.responseText;
				} else if (varInner == 'toolTip') {
					pmaTooltip(xmlhttp.responseText + ' ');
				} else {
					document.getElementById(varInner).innerHTML = xmlhttp.responseText + ' ';
				}
			}
		}
	};
	xmlhttp.send(null);
}





/// ================= TooltipContainer functions
/**
  * show / hide the Tooltip
  */
function showTooltip(stat) {
//	hideProgressive('TooltipContainer');
//	return true;
	myEl = myTooltipContainer;

    if (stat==false) {
        if (ttNS4)
            myTooltipContainer.visibility = "hide";
        else
            myTooltipContainer.style.visibility = "hidden";
        ttDisplay = 0;
    } else {
        if (ttNS4)
            myTooltipContainer.visibility = "show";
        else
            myTooltipContainer.style.visibility = "visible";
        ttDisplay = 1;
    }
}

/**
  * hold it, if we create or move the mouse over the tooltip
  */
function holdTooltip() {
    ttHoldIt = 1;
    swapTooltip('true');
    ttHoldIt = 0;
}

/**
  * move the tooltip to mouse position
  */
function moveTooltip(posX, posY) {
    if (ttDOM || ttIE4) {
    	//alert (posX + ' ' + posY)
    	if (posY < 0) {
    		posY = 0;
   		}
        myTooltipContainer.style.left =	posX + "px";
        myTooltipContainer.style.top  =	posY + "px";
    } else if (ttNS4) {
        myTooltipContainer.left = posX;
        myTooltipContainer.top  = posY;
    }
}

/**
  * build the tooltip
  */
function pmaTooltip(theText) {
    textTooltip(theText);
    if ((ttXpos) < 0) {
    	myX = ttXpos + 90;
    } else {
    	myX = ttXpos;
    }
    //moveTooltip(myX, ttYpos);
    //moveTooltip(400, posTop()+300);
    //hideProgressive('TooltipContainer');
    showTooltip(true);
}

/**
  * init the tooltip and write the text into it
  */
function textTooltip(theText) {
    if	(ttDOM || ttIE4) {                   // document.getEelementById || document.all
        myTooltipContainer.innerHTML = "";  // we should empty it first
        myTooltipContainer.innerHTML = theText;
    } else if (ttNS4) {                     // document.layers
        var layerNS4 = myTooltipContainer.document;
        layerNS4.write(theText);
        layerNS4.close();
    }
}
function pageWidth() {
	return window.innerWidth != null? window.innerWidth: document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth:document.body != null? document.body.clientWidth:null;
}
function pageHeight() {
	return window.innerHeight != null? window.innerHeight: document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight:document.body != null? document.body.clientHeight:null;
}
function posLeft() {
	return typeof window.pageXOffset != 'undefined' ? window.pageXOffset:document.documentElement && document.documentElement.scrollLeft? document.documentElement.scrollLeft:document.body.scrollLeft? document.body.scrollLeft:0;
}
function posTop() {
	return typeof window.pageYOffset != 'undefined' ? window.pageYOffset:document.documentElement && document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop?document.body.scrollTop:0;
}
function posRight() {
	return posLeft()+pageWidth();
}
function posBottom() {
	return posTop()+pageHeight();
}


function setToolTipProperties (el, x, y, w, h) {
	if (x <= 0 && y <= 0) { // container sotto elemento
		myTooltipContainer.style.marginTop = '0px';
		myTooltipContainer.style.marginLeft = '0px';
    moveTooltip((findPosX(el) + x), (2 + y + findPosY(el) + el.offsetHeight));
	} else {

	}
	myTooltipContainer.style.width = w + 'px';
	myTooltipContainer.style.height = h + 'px';
}

/// TooltipContainer functions FINE  ================= \\\\\


function hideProgressive(elemento, nascondi) {
	var vitesse = 3;
	var hauteur = 10;
	var obj = document.getElementById(elemento); // entre les deux ' tu mes le nom du div que tu veux faire apparaître !
	if (obj.style.height) {
		var hFinal = obj.style.height; //Hauteur initiale (la hauteur dès le début !)
		hFinal = hFinal.replace("px","");
	} else {
		var hFinal = 200; //Hauteur finale (la hauteur une fois que ça aura fini de déplier !)
	}
	if(!nascondi){
		//obj.innerHTML = 'Ici le text que tu veux faire apparaître !';
		//obj.style.display = 'block';
    if (ttNS4) {
    	obj.visibility = "show";
    } else {
    	obj.style.visibility = "visible";
    }
		obj.style.overflow = 'hidden';
		//link.innerHTML = '-';
		var hActuel = 0; //Hauteur initiale (la hauteur dès le début !)
		var timer;
		var fct = function () {
			hActuel += hauteur; //Augmente la hauteur de 20px (tu peux modifier) tous les 40ms !
			obj.style.height = hActuel + 'px';
			if( hActuel > hFinal) {
				clearInterval(timer); //Arrête le timer
				if (obj.style.overflow) {
					obj.style.overflow = 'inherit';
				}
			}
		};
		fct();
		timer = setInterval(fct,vitesse); //Toute les 40 ms

	// CHIUDE
	} else {
		var hFinal = 0; //Hauteur finale (la hauteur une fois que ça aura fini de déplier !)
		var hActuel = obj.style.height; //Hauteur initiale (la hauteur dès le début !)
		hActuel = hActuel.replace("px","");
		var timer;
		var fct = function () {
			hActuel -= hauteur; //Augmente la hauteur de -20px (tu peux modifier) tous les 40ms !
			obj.style.height = hActuel + 'px';
			if(hActuel <= hFinal) {
		    if (ttNS4) {
		    	obj.visibility = "hide";
		    } else {
		    	obj.style.visibility = "hidden";
		    }
				clearInterval(timer); //Arrête le timer
				obj.style.overflow = 'inherit';
				//obj.style.display = 'none';
			}
		};
		fct();
		timer = setInterval(fct,vitesse); //Toute les 40 ms
		//link.innerHTML = '+';
	}
}

function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1)
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }


function setCookie(c_name,value,expiredays) {
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+";expires="+exdate.toGMTString()+"; path=/";
}
function getCookie(name) {
	name = name + "=";
	var carray = document.cookie.split(';');
	for(var i=0;i < carray.length;i++) {
		var c = carray[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(name) == 0) return unescape(c.substring(name.length,c.length));
	}
	return null;
}
