// JavaScript Document
<!--
var xmlreqs = new Array();

function display_hide(div){
	var div_selected = document.getElementById(div);
	if(div_selected.style.display == 'block') {
		div_selected.style.display = 'none';
	} else {
		div_selected.style.display = 'block';
	}
}
function popup_float(div_origine, div_destinazione, pagina, percorso){
	popup_float_height(div_origine, div_destinazione, pagina, percorso, 0)
}

function popup_float_height(div_origine, div_destinazione, pagina, percorso, height){
/*
	var div_selezionato = document.getElementById(div_origine);
	var curtop = getPosY(div_selezionato);
	var curleft = getPosX(div_selezionato);
*/	

	var div_daspostare = document.getElementById(div_destinazione);
	div_daspostare.style.top = ((getWindowHeight())/2-($(('#'+div_destinazione)).height()+64)/2+getPageY())+"px";
	div_daspostare.style.left = ((getWindowWidth())/2-($(('#'+div_destinazione)).width()+64)/2+getPageX())+"px";
	var mytop=((getWindowHeight())/2-($(('#'+div_destinazione)).height()+64)/2+getPageY());
	if (mytop<0) mytop=0
	div_daspostare.style.top =mytop+"px";
	div_daspostare.style.left = ((getWindowWidth())/2-($(('#'+div_destinazione)).width()+64)/2+getPageX())+"px";
	if(div_daspostare.style.top<0)div_daspostare.style.top=0;
	if (height>0)
		$(('#'+div_destinazione)).height(height)
	//alert($(('#'+div_destinazione)).width());
	//alert($(('#'+div_destinazione)).height());
	//NOT WORKING alert(document.getElementById(div_destinazione).style.height);
	//bytefx.alpha(div_daspostare, 0);
	//$(("#"+div_destinazione)).hide();
	//$(("#"+div_destinazione)).css('opacity',0);
	//div_daspostare.style.display = "block";
	//completeAHAH.ahah(pagina, div_destinazione, 5, "POST", "");
	xmlreqPOSTSimple(pagina, '', div_destinazione);
	//bytefx.fade(div_daspostare, 0, 100, 10);
	$(("#"+div_destinazione)).fadeIn(100);
	//var pagina = document.getElementById("container");
	//pagina.style.display = "block";
	//bytefx.alpha(pagina, 100);
	//bytefx.fade(pagina, 100, 30, 8);
	$(("#container")).fadeTo(100, 0.3);
}

function popup_chiudi(target){
	//var div_selezionato = document.getElementById(target);
	/*
	bytefx.fade(div_selezionato, 100, 0, 12, 
		function() {
		}
	);
	*/
	//div_selezionato.style.display = "none";
	//var pagina = document.getElementById("container");
	//bytefx.fade(pagina, 30, 100, 12);
	$(("#"+target)).hide();
	$(("#container")).fadeTo(100,1);
	
}


// posizione X del div
function getPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
	while (obj.offsetParent) {
	curleft += obj.offsetLeft
	obj = obj.offsetParent;
	}
	}
	else if (obj.x)
	curleft += obj.x;
	return curleft;
}

// posizione Y del div
function getPosY(obj) {
var curtop = 0;
	if (obj.offsetParent) {
	while (obj.offsetParent) {
	curtop += obj.offsetTop
	obj = obj.offsetParent;
	}
	}
	else if (obj.y)
	curtop += obj.y;
	return curtop;
}

//posizione della pagina
function getPageY() {
	var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body
	//var dsocleft=document.all? iebody.scrollLeft : pageXOffset
	return dsoctop=document.all? iebody.scrollTop : pageYOffset
}

//posizione della pagina
function getPageX() {
	var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body
	//var dsocleft=document.all? iebody.scrollLeft : pageXOffset
	return dsoctop=document.all? iebody.scrollLeft : pageXOffset
}

//altezza della finestra
function getWindowHeight() {
	if (window.innerHeight) //if browser supports window.innerWidth
		return window.innerHeight;
	else if (document.all) //else if browser supports document.all (IE 4+)
		return document.body.clientHeight;
}

//larghezza della finestra
function getWindowWidth() {
	if (window.innerWidth) //if browser supports window.innerWidth
		return window.innerWidth;
	else if (document.all) //else if browser supports document.all (IE 4+)
		return document.body.clientWidth;
}


function CXMLReq(freed) {
	this.freed = freed;
	this.xmlhttp = false;
	if (window.XMLHttpRequest) {
		this.xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function xmlreqPOSTSimple(url,str, rdiv) {
	var pos = -1;
	for (var i=0; i<xmlreqs.length; i++) {
		if (xmlreqs[i].freed == 1) { pos = i; break; }
	}
	if (pos == -1) { pos = xmlreqs.length; xmlreqs[pos] = new CXMLReq(1); }
	if (xmlreqs[pos].xmlhttp) {
		xmlreqs[pos].freed = 0;
		xmlreqs[pos].xmlhttp.open("POST",url,true);
		xmlreqs[pos].xmlhttp.onreadystatechange = function() {
			if (typeof(xmlhttpChange) != 'undefined') { xmlhttpChange(pos, rdiv); }
		}
		xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		//xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "multipart/form-data");
//		alert(getquerystring(formname));
		xmlreqs[pos].xmlhttp.send(str);
	}
}

//Used by templategallery_add when submitting (submit form if ok)
function xmlreqPOSTSalvaBiglietto(url,str, f) {
	var pos = -1;
	for (var i=0; i<xmlreqs.length; i++) {
		if (xmlreqs[i].freed == 1) { pos = i; break; }
	}
	if (pos == -1) { pos = xmlreqs.length; xmlreqs[pos] = new CXMLReq(1); }
	if (xmlreqs[pos].xmlhttp) {
		xmlreqs[pos].freed = 0;
		xmlreqs[pos].xmlhttp.open("POST",url,true);
		xmlreqs[pos].xmlhttp.onreadystatechange = function() {
			if (typeof(xmlhttpChangeF) != 'undefined') { xmlhttpChangeF(pos,f);
			}
		}
		xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		//xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "multipart/form-data");
//		alert(getquerystring(formname));
		xmlreqs[pos].xmlhttp.send(str);
	}
}

function xmlreqPOSTFormF(url,formname, f) {
	var pos = -1;
	for (var i=0; i<xmlreqs.length; i++) {
		if (xmlreqs[i].freed == 1) { pos = i; break; }
	}
	if (pos == -1) { pos = xmlreqs.length; xmlreqs[pos] = new CXMLReq(1); }
	if (xmlreqs[pos].xmlhttp) {
		xmlreqs[pos].freed = 0;
		xmlreqs[pos].xmlhttp.open("POST",url,true);
		xmlreqs[pos].xmlhttp.onreadystatechange = function() {
			if (typeof(xmlhttpChangeF) != 'undefined') { xmlhttpChangeF(pos,f);
			}
		}
		xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		//xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "multipart/form-data");
//		alert(getquerystring(formname));
		xmlreqs[pos].xmlhttp.send(getquerystring(formname));
	}
}


function xmlhttpChange(pos, rdiv) {
	if (typeof(xmlreqs[pos]) != 'undefined' && xmlreqs[pos].freed == 0 && xmlreqs[pos].xmlhttp.readyState == 4) {
		if (xmlreqs[pos].xmlhttp.status == 200 || xmlreqs[pos].xmlhttp.status == 304) {
			//handle_response(xmlreqs[pos].xmlhttp.responseXML);
            updatepage(xmlreqs[pos].xmlhttp.responseText,rdiv);
		} else {
			handle_error();
		}
		xmlreqs[pos].freed = 1;
	}
}

function xmlhttpChangeF(pos, f) {
	if (typeof(xmlreqs[pos]) != 'undefined' && xmlreqs[pos].freed == 0 && xmlreqs[pos].xmlhttp.readyState == 4) {
		if (xmlreqs[pos].xmlhttp.status == 200 || xmlreqs[pos].xmlhttp.status == 304) {
			f();
		} else {
			handle_error2(xmlreqs[pos].xmlhttp.status);
		}
		xmlreqs[pos].freed = 1;
	}
}


function handle_error() {
	//alert('Errore -1');
}

function handle_error(val) {
	//alert('Errore salvataggio ' + val);
}

function updatepage(str,responsediv){
	
	if (responsediv.length>0) {
		$('#'+responsediv).html(str);
	} else {
		var timestamp = new Date().getTime();
		$('#imgTemplate').attr('src',(str+'&'+timestamp)); 
	}
	//$('#imgTemplate2').attr('src',(str+'&'+timestamp)); 
	//if (document.getElementById("imgTemplate") != undefined) document.getElementById("imgTemplate").src = str+'&'+timestamp;
	$('#imgTemplate').load(function(){ 
		$('#imgLoad').fadeTo(0,0);
	});
	evalJS(responsediv); //run js
	
}



function getquerystring(formname) {
    var form = document.forms[formname];
	var qstr = "";

    function GetElemValue(name, value) {
	
		if (encodeURIComponent) {
			qstr += (qstr.length > 0 ? "&" : "")
				+ encodeURIComponent(name).replace(/\+/g, "%2B") + "="
				+ encodeURIComponent(value ? value : "").replace(/\+/g, "%2B");
				//+ escape(value ? value : "").replace(/\n/g, "%0D");
		} else {
			qstr += (qstr.length > 0 ? "&" : "")
				+ escape(name).replace(/\+/g, "%2B") + "="
				+ escape(value ? value : "").replace(/\+/g, "%2B");
				//+ escape(value ? value : "").replace(/\n/g, "%0D");
		}	
    }
	var elemArray = form.elements;
    for (var i = 0; i < elemArray.length; i++) {
        var element = elemArray[i];
		if (!element.name) continue;
        var elemType = element.type.toUpperCase();
        var elemName = element.name;
		//alert(elemName+' '+element.value);
        if (elemName) {
            if (elemType == "TEXT"
                    || elemType == "TEXTAREA"
                    || elemType == "PASSWORD"
					|| elemType == "BUTTON"
					|| elemType == "RESET"
					|| elemType == "SUBMIT"
					|| elemType == "FILE"
					|| elemType == "IMAGE"
                    || elemType == "HIDDEN") {

				if(element.className != "noValue") GetElemValue(elemName, element.value);
				else  GetElemValue(elemName, "");
			}
            else if (elemType == "CHECKBOX" && element.checked)
                GetElemValue(elemName, 
                    element.value ? element.value : "On");
            else if (elemType == "RADIO" && element.checked)
                GetElemValue(elemName, element.value);
            else if (elemType.indexOf("SELECT") != -1)
                for (var j = 0; j < element.options.length; j++) {
                    var option = element.options[j];
                    if (option.selected)
                        GetElemValue(elemName,
                            option.value ? option.value : option.text);
                }
        }
    }
    return qstr;
}


function xmlreqPOST(url,formname, rdiv) {
	var pos = -1;
	for (var i=0; i<xmlreqs.length; i++) {
		if (xmlreqs[i].freed == 1) { pos = i; break; }
	}
	if (pos == -1) { pos = xmlreqs.length; xmlreqs[pos] = new CXMLReq(1); }
	if (xmlreqs[pos].xmlhttp) {
		xmlreqs[pos].freed = 0;
		xmlreqs[pos].xmlhttp.open("POST",url,true);
		xmlreqs[pos].xmlhttp.onreadystatechange = function() {
			if (typeof(xmlhttpChange) != 'undefined') { xmlhttpChange(pos, rdiv); }
		}
		//xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "multipart/form-data");
		xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		//xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "Content-Type", "application/json; charset=utf-8");
		
//		alert(getquerystring(formname));
		xmlreqs[pos].xmlhttp.send(getquerystring(formname));
	}
}

function xmlreqGET(url,formname, rdiv) {
	var pos = -1;
	for (var i=0; i<xmlreqs.length; i++) {
		if (xmlreqs[i].freed == 1) { pos = i; break; }
	}
	if (pos == -1) { pos = xmlreqs.length; xmlreqs[pos] = new CXMLReq(1); }
	if (xmlreqs[pos].xmlhttp) {
		xmlreqs[pos].freed = 0;
		xmlreqs[pos].xmlhttp.open("GET",url,true);
		xmlreqs[pos].xmlhttp.onreadystatechange = function() {
			if (typeof(xmlhttpChange) != 'undefined') { xmlhttpChange(pos, rdiv); }
		}
		//xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "multipart/form-data");
		xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		//xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "Content-Type", "application/json; charset=utf-8");
		
//		alert(getquerystring(formname));
		xmlreqs[pos].xmlhttp.send(getquerystring(formname));
	}
}

function pageReload() {
	window.location.reload();
}


function evalJS(elementId) {
	if (!elementId) { return }
	var scripts = document.getElementById(elementId).getElementsByTagName('script');
	var code;
	for (var i = 0; i < scripts.length; i++) {
		code =	scripts[i].innerHTML ? scripts[i].innerHTML : 
			scripts[i].text ? scripts[i].text : 
			scripts[i].textContent;
		try {
			eval(code);
		} catch(e) {
			alert(e);
		}
	}
}

//-->
