// JavaScript Document
function addLoader(funcToStart) {
	if (funcToStart!=undefined) {
		if (window.onload) {
			var zfunc=window.onload	
			window.onload=function () {funcToStart();zfunc()}
		} else {
			window.onload=funcToStart
		}
	}
}
function addUnLoader(funcToStop) {
	if (window.onunload) {
		var zfunc=window.onunload	
		window.onunload=function () {zfunc();funcToStop()}
	} else {
		window.onunload=funcToStop
	}
}
Date.prototype.sqlDate=function() {
	var r=[]
	r.push(this.getFullYear())
	r.push(((this.getMonth()<9)?"0":"")+(this.getMonth()+1))
	r.push(((this.getDate()<10)?"0":"")+this.getDate())
	return r.join("-")
}
Date.prototype.sqlDateTime=function() {
	var r=[]
	r.push(((this.getHours()<10)?"0":"")+(this.getHours()))
	r.push(((this.getMinutes()<10)?"0":"")+this.getMinutes())
	r.push(((this.getSeconds()<10)?"0":"")+this.getSeconds())
	return this.sqlDate()+" "+r.join(":")
}
String.prototype.writeDate=function(withOra) {
	if (this=="") {return ""}
	var conOra=(typeof(withOra)=='undefined')?false:withOra
	var dd=this.split(" ")
	if (dd.length==1) {conOra=false}
	var a=dd[0].split("-")
	var r=a[2]+"-"+a[1]+"-"+a[0]
	if (withOra) {
		a=dd[1].split(":")
		r+=(" "+a[0]+":"+a[1])	
	}
	return r
}
function $o(id) {return document.getElementById(id)}
function $t(o,id) {return o.getElementsByTagName(id)}
function $b(id) {return document.createElement(id)}
function $ct(t) {return document.createTextNode(t)}
function $ae(o,eName,f) {
	if(window.addEventListener){ // Mozilla, Netscape, Firefox
		o.addEventListener(eName, f, false);
	} else { // IE
		o.attachEvent('on'+eName, f);
	}
}
function sc(o,ncn,ocn) {
	if (o) {
		if (ocn!=undefined) {
			if(ocn!="") {
				var re=new RegExp("\\b"+ocn+"\\b","gi")
				var i=o.className.search(re)
				if (i!=-1) {o.className=o.className.replace(re,"")}
			}
		}
		if (ncn!="") {
			var re=new RegExp("\\b"+ncn+"\\b","gi")
			var i=o.className.search(re)
			if (i==-1) {o.className=o.className.replace(/\s*$/,'')+" "+ncn}
		}
	}
}

String.prototype.parseJSON = function () {
    try {
        return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
                this.replace(/"(\\.|[^"\\])*"/g, ''))) &&
            eval('(' + this + ')');
    } catch (e) {
        return false;
    }
};
webKitVersion=getWKVersion()
function getWKVersion() {
	var webKitFields = RegExp("( AppleWebKit/)([^ ]+)").exec(navigator.userAgent)
	if (!webKitFields || webKitFields.length < 3) {
		return 0
	} else {
		return  webKitFields[2].split(".")[0]*1
	}	
}
var oObjMng=new Array()
function postLoad() {
	for (var i=0;i<oObjMng.length;i++) {
		if (oObjMng[i].postInit) {oObjMng[i].postInit()}
	}
}
function postUnload() {
	for (var i=0;i<oObjMng.length;i++) {
		if (oObjMng[i].unload) {oObjMng[i].unload()}
	}
}
addLoader(postLoad)
addUnLoader(postUnload)

var readyDone=false
var readyReady=false
var readyFunctionList=[]
function addReady(funToCall) {
	if (readyFunctionList) {readyFunctionList.push(funToCall)}	
}
function callReadyFn() {
	if (!readyReady) {
		readyReady=true
		if (readyFunctionList) {
			for(var i=0;i<readyFunctionList.length;i++) {
				readyFunctionList[i].call()	
			}
			readyFunctionList=null
		}
	}
}
function setReadyDoc() {
	if (readyDone) {return}
	readyDone=true
	if(window.addEventListener){
		document.addEventListener("DOMContentLoaded", function() {
			document.removeEventListener("DOMContentLoaded",arguments.callee,false)
			callReadyFn()
		}, false);
	} else { // IE
		document.attachEvent("onreadystatechange", function() {
			if (document.readyState==="complete") {
				document.detachEvent("onreadystatechange",arguments.callee)
				callReadyFn()
			}
		 });
		if (document.documentElement.doScroll&&window==window.top) (function() {
				if (readyReady) {return}
				try {
					document.documentElement.doScroll("left")
				} catch(error) {
					setTimeout(arguments.callee,0)
					return
				}
				callReadyFn()
			})()
	}
	addLoader(callReadyFn)
}
setReadyDoc()

function goMail(n,d) {
	document.location="mailto:"+n+"@"+d
}
var vxc=new Array()
var vxr=false

function callSite(f,p,a) {
	callAction(["P",f,p,a,"T"])
}
function callAction(ve) {
	vxc.push(ve)
///	wl("callA")
	if (!vxr) {callX()}
}

function callX() {
	if (vxc.length==0) {return}
	vxr=true
	ve=vxc.pop()
	var isXML=false
	var isIE=false
//	wl("callX")
	var callback=ve[1]
	
	isXML=(window.XMLHttpRequest?true:false)
	isIE=(window.ActiveXObject?true:false)
	if (isIE) {
		try {
			req = new ActiveXObject("Microsoft.XMLHTTP")
			isIE=(req?true:false)
		} catch (e) {
       		isIE = false;
		}
	}
	if (isIE) {isXML=true}
	if (isXML) {
		if (isIE) {
			var Req = new ActiveXObject("Microsoft.XMLHTTP");
		} else {
		    var Req = new XMLHttpRequest();
		}
		if (ve[0]=="P") {
			Req.onreadystatechange = mycallback
		    Req.open("POST", ve[2], true)
			//Req.setRequestHeader('Accept','jsxfalcosoft')
			//Req.setRequestHeader('Content-Type','charset=UTF-8')
			Req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			Req.send(ve[3]);
		} else {
			Req.onreadystatechange = mycallback
		    Req.open("GET", ve[2]+"?"+ve[3], true);
			Req.setRequestHeader('Accept','jsxfalcosoft')
			//Req.setRequestHeader('Content-Type','charset=UTF-8')
			Req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    		Req.send(null);
		}
	} else {
		document.location=ve[2]+"?"+ve[3]
	}
	function mycallback() {
        if (Req.readyState != 4) return;
        if (Req.status == 200) {
			if (ve[4]=="T") {
				callback(true, Req.responseText,ve[2],ve[3])
			} else {
				callback(true, Req.responseXML,ve[2],ve[3])
			}
        } else {
			callback(false, Req.status + ": " + Req.statusText,ve[2],ve[3])
		}
		if(vxc.length!=0) {
			callX()
		} else {
			vxr=false
		}
    }
}

function getMVars(ids,nr,v) {
	for(j=0;j<nr;j++) {
		for (var i=0;i<ids.length;i++) {
			getVar(ids[i]+"_"+j,v)	
		}
	}
}
function getVars(ids,v) {
	for (var i=0;i<ids.length;i++) {
		getVar(ids[i],v)	
	}
}
function getVar(id,v) {
	var o=$o(id)
	if (o) {
		var r=[id]
		if (o.type=="checkbox") {
			r.push((o.checked)?o.value:"")	
		} else {
			r.push(encodeURI(o.value).replace(/\+/gi,"%2b").replace(/\&/gi,"%26"))
		}
		v.push(r.join("="))
	}
}

function doCheck(id) {
	var o=$o(id) 
	if (o) {o.checked=!o.checked}
}

function showErrors(lista) {
	var o
	for(var i=0;i<lista.length;i++) {
		o=$o(lista[i][0])
		if (o) {
			if (lista[i][1]!="") {
				sc(o,"errore")
				o.title=lista[i][1]
			}else {
				sc(o,"","errore")
				o.title=""
			}
		}
	}
}
