var szUsrNvg=navigator.userAgent.toLowerCase();
var _isIE=szUsrNvg.indexOf('msie')!=-1;
var _isIE5=szUsrNvg.indexOf('msie 5.')!=-1;
var _isIE6=szUsrNvg.indexOf('msie 6.')!=-1;
var _isIE7=szUsrNvg.indexOf('msie 7.')!=-1;
var _isIE8=szUsrNvg.indexOf('msie 8.')!=-1;
var _isOpera=szUsrNvg.indexOf('opera')!=-1;
var _isKonqueror=szUsrNvg.indexOf('konqueror')!=-1;
var _isGecko=szUsrNvg.indexOf('gecko')!=-1;//firefox,camino,safari,chrome
var _isFirefox,_isCamino,_isSafari,_isChrome;
_isFirefox=_isCamino=_isSafari=isChrome=false;
if(_isGecko){
	if(szUsrNvg.indexOf('firefox')!=-1){
		if(szUsrNvg.indexOf('camino')!=-1) _isCamino=true;
		else _isFirefox=true;
	}
	if(szUsrNvg.indexOf('safari')!=-1){
		if(szUsrNvg.indexOf('chrome')!=-1) _isChrome=true;
		else _isSafari=true;
	}
}
var szDomainList="|aero|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|shop|tel|travel|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|g|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw|";


function rmSlctn(){
	if(_isGecko||_isOpera) window.getSelection().removeAllRanges();
	else{
		if(document.selection.createRange) document.selection.createRange().empty();
	}
}


///dom
function _gel(sz){
	if(!sz) return document.body;
	return document.getElementById(sz);
}
function _cel(sz){
	return document.createElement(sz);
}
function _rel(obj){
	if(!obj) return false;
	var objP=obj.parentNode;
	if(!objP) objP=document.body;
	objP.removeChild(obj);
	return true;
}
function _ael(obj,objP,fn){
	if(!obj) return;
	if(!objP) objP=document.body;
	objP.appendChild(obj);
	if(fn) fn(obj);
}
function _rpl(objO,objN){
	if(!objO) return;
	objO.parentNode.replaceChild(objN,objO);
}
function _ibl(obj,objN){
	if(!obj||!objN) return;
	objN.parentNode.insertBefore(obj,objN);
	//.replaceChild(objN,objO);
}
function _gee(e){//era getElem()
	e=e?e:window.event;
	if(!e) return null;
	var obj;
	if(e.target) obj=e.target;
	else if(e.srcElement) obj=e.srcElement;
	if(!obj) return null;
	if(obj.nodeType==3) obj=obj.parentNode;
	return obj;
}
function _relCN(id){
	var obj=_gel(id);
	if(!obj) return;
	while(obj.childNodes.length>0) obj.removeChild(obj.firstChild);
}

//objects
function cntrObj(obj,objW,objH,objP){
	if(objP){
		var arD=[objP.offsetWidth,objP.offsetHeight];
		var arS=[0,0];
	}else{
		var arD=areaDoc();
		var arS=scrollDoc();
	}
	obj.style.left=Math.floor(parseInt(arD[0]/2-objW/2))+"px";
	//var iTop=(arD[1]-objH)/2+arS[1];
	var iTop=(arD[1]-objH)/2;//+arS[1];
	obj.style.top=Math.floor(parseInt(iTop))+"px";
}
function objRollOver(obj){
	if(!obj) return;
	if(obj.className.indexOf("Hvr")==-1) obj.className+="Hvr"; else obj.className=obj.className.slice(0,-3);
}
function stDm(obj,b){
	if(!obj) return;
	obj.style.width=obj.offsetWidth+"px";
	obj.style.height=obj.offsetHeight+"px";
	obj.style.overflow="hidden";
	//alert(obj.offsetWidth+"__"+obj.offsetHeight);
	if(b) obj.innerHTML="";
	
}
function objNxt(obj){
	var obj=obj.nextSibling;
	if(!obj) return false;
	if(obj.nodeType!=1) objNxt(obj);
	else return obj;
}

function objPrv(obj){
	var obj=obj.previousSibling;
	if(!obj) return false;
	if(obj.nodeType!=1) objPrv(obj);
	else return obj;
}
function objPos(obj,b,objS){
	if(!obj) return;
	var x=0;
	var y=0;
	while(obj.offsetParent){
		x+=obj.offsetLeft;
		y+=obj.offsetTop;
		obj=obj.offsetParent;
	}
	if(!b) return [x,y];
	else{
		var a=scrollDoc(objS);
		return [x-a[0],y-a[1]];
	}
}
function objPosPage(obj,nOW,nOH,objCnt){
	var arAD=areaDoc(objCnt);//area disponibile
	var arAS=scrollDoc(objCnt);//area scroll
	var arOP=objPos(obj);//obj position
	if(objCnt){
		var arOPC=objPos(objCnt);//posizione del contenitore
		arOP=[arOP[0]-arOPC[0],arOP[1]-arOPC[1]];
	}
	var nOPX=arOP[0]+obj.offsetWidth+2;
	var nOPY=arOP[1];
	if(nOW>arAD[0]+arAS[0]-nOPX) nOPX=arOP[0]-nOW-2;
	if(nOH>arAD[1]+arAS[1]-nOPY) nOPY=nOPY-(nOH-((arAD[1]+arAS[1])-nOPY));
	if(nOW>arAD[0]-arAS[0]-arOP[0]) nOPX=nOPX-(nOW-((arAD[0]+arAS[0])-nOPX));
	return new Array(nOPX,nOPY);
}		

function isBool(o){
	return 'boolean'===typeof o;
}

//stringhe
function ppSrch(szPp,szSearch,szSep){
	if(!szSep) szSep="|";
	if(szPp.indexOf(szSep+szSearch+szSep)==-1) return false;
	return true;
}
function ltrim(sz){
	return sz.replace(/^\s{1,}/,"");
}
//trim function - rimuove gli spazi bianchi all'inizio e alla fine di una stringa
function trim(szStr){
	return szStr.replace(/^\s+|\s+$/g,'');
}

function rawurlencode(sz){
	sz=(sz+'').toString();
	return encodeURIComponent(sz).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/~/g, '%7E');
}
function ucfirst(sz){
	if(!sz||sz=="") return "";
	sz=sz.toLowerCase();
	var ar=sz.split("");
	ar[0]=ar[0].toUpperCase();
	return ar.join("");
}


//numeri
function vlPrnt(szVl){
	if(!szVl&&szVl!=0) return "";
	szVl=parseFloat(szVl);
	szVl=szVl.toFixed(2);
	var ar=szVl.split(".");
	var arC=ar[0].split("").reverse();
	var sz="";
	for(var i=0;i<arC.length;i++){
		//if(i%3==0 && i!=0) sz=(!cmsDec) ? "."+sz : ","+sz;
		if(i%3==0 && i!=0) sz="."+sz;
		sz=arC[i].toString()+sz;
	}
	//var sep=(!cmsDec)?",":".";
	var sep=",";
	if(parseFloat(sz)==0 && parseFloat(ar[1])==0) return "";
	return sz+sep+ar[1];
}
function vlSv(szVl,b){
	if(!szVl) return 0;
	szVl=szVl.toString();
	if(szVl.length-szVl.indexOf(",")==3){
		szVl=szVl.replace(/\./g,"");
		szVl=szVl.replace(/\,/g,".");
	}
	var val=new Number(szVl);
	if(!b) return parseFloat(val.toFixed(2));
	else return parseFloat(val);
}

///date
function dtPrnt(dtTRd){
	if(dtTRd=="0000-00-00"||dtTRd==""||!dtTRd) return "";
	var ar=dtTRd.split("-");
	return ar[2]+"/"+ar[1]+"/"+ar[0];
}
function dtTmPrnt(dtTmTRd){
	if(dtTmTRd=="0000-00-00 00:00:00"||dtTmTRd==""||!dtTmTRd) return "";
	var szSep=(dtTmTRd.indexOf("_")>-1)?"_":" ";
	var ar=dtTmTRd.split(szSep);
	return dtPrnt(ar[0])+" "+ar[1];
}
function dtSv(dtTRd){
	if(!dtTRd) return "";
	var ar=dtTRd.split("/");
	return ar[2]+"-"+ar[1]+"-"+ar[0];
}


var dtTm={
	dtPrnt:function(dtTRd){
		if(dtTRd=="0000-00-00"||dtTRd==""||!dtTRd) return "";
		var ar=dtTRd.split("-");
		return ar[2]+"/"+ar[1]+"/"+ar[0];
	},
	dtSv:function(dtTRd){
		if(!dtTRd) return "";
		var ar=dtTRd.split("/");
		return ar[2]+"-"+ar[1]+"-"+ar[0];
	},
	dtTmPrnt:function(dtTmTRd,b){
		if(dtTmTRd=="0000-00-00 00:00:00"||dtTmTRd==""||!dtTmTRd) return "";
		var szSep=(dtTmTRd.indexOf("_")>-1)?"_":" ";
		var ar=dtTmTRd.split(szSep);
		if(b) ar[1]=dtTm.tmPrnt(ar[1]);
		return dtTm.dtPrnt(ar[0])+" "+ar[1];
	},
	tmPrnt:function(szTm){
		if(szTm=="00:00:00"||szTm==""||!szTm) return "";
		var ar=szTm.split("");
		if(ar[6]=="0"&&ar[7]=="0"){
			ar.pop();
			ar.pop();
			ar.pop();
		}
		if(ar[0]=="0") ar.shift();
		return ar.join("");
	},
	/*
	arAMGGMA:function(d,b,szSep){
		if(!d) d=new Date();
		if(typeof(d)=='string'){
			if(d.indexOf("-")>-1){
				szSep="-";
				ar=d.split(szSep);
				ar=[ar[0],ar[1],ar[2]];
			}
			if(d.indexOf("/")>-1){
				szSep="/";
				ar=d.split(szSep);
				ar=[ar[2],ar[1],ar[0]];
			}
		}else{
			if(!szSep) szSep="/";
			ar=[d.getFullYear(),d.getMonth()+1,d.getDate()];	
		}
		if(parseInt(ar[0])<10) parseInt(ar[0])="0"+ar[0];
		if(parseInt(ar[1])<10) parseInt(ar[1])="0"+ar[1];
		if(parseInt(ar[2])<10) parseInt(ar[2])="0"+ar[2];
		
	},
	*/
	arAMG:function(d,b,szSep){
		var ar=[];
		if(typeof(d)=='string'){
			if(d.indexOf("-")>-1){
				ar=d.split("-");
				if(!szSep) szSep="-";
				ar=[ar[0],ar[1],ar[2]];
			}
			if(d.indexOf("/")>-1){
				ar=d.split("/");
				if(!szSep) szSep="/";
				ar=[ar[2],ar[1],ar[0]];
			}
		}else{
			if(!szSep) szSep="-";
			//ar=[d.getDate(),d.getMonth()+1,d.getFullYear()];
			
			//alert("cambio di data, qui prima ritornavo un GMS ora un AMG come avrebbe dovuto essere");
			if(!d) d=new Date();
			ar=[d.getFullYear(),d.getMonth()+1,d.getDate()];
		}
		if(b){
			if(parseInt(ar[1])<10) ar[1]="0"+parseInt(ar[1]);
			if(parseInt(ar[2])<10) ar[2]="0"+parseInt(ar[2]);
			return ar[0]+szSep+ar[1]+szSep+ar[2];
		}
		return ar;
	},
	crDt:function(d){
		if(!d) d=new Date();
		else{
			var ar=dtTm.arAMG(d);
			d=new Date(ar[0],ar[1]-1,ar[2],0,0,0,0);
		}
		return d;
	},
	dtDiff:function(dD,dA){
		if(!dD){
			dD=new Date();
			dD=new Date(dD.getFullYear(),dD.getMonth(),dD.getDate(),0,0,0,0);
		}
		if(!dA){
			dA=new Date();
			dA=new Date(dA.getFullYear(),dA.getMonth(),dA.getDate(),0,0,0,0);
		}
		dD=dtTm.crDt(dD);
		dA=dtTm.crDt(dA);
		var gg=new String((dA-dD)/86400000);
		var p=gg.indexOf(".");
		if(p>-1) gg=gg.substring(0,p);
		return parseInt(gg);
	},
	dtSb:function(d,gg){
		var ar=dtTm.arAMG(d);
		if(ar[2][0]=="0") ar[2]=ar[2][1];
		ar[2]=parseInt(ar[2]);
		return dtTm.arAMG(new Date(ar[0],ar[1]-1,ar[2]+gg,0,0,0,0),1,"-");
	},
	tmAdd:function(szH,szD){
		var arH=szH.split(":");
		var arD=szD.split(":");
		for(var x in arH){
			if(arH[x][0]=="0") arH[x]=arH[x].substr(1);
			arH[x]=parseInt(arH[x]);
		}
		for(var x in arD){
			if(arD[x][0]=="0") arD[x]=arD[x].substr(1);
			arD[x]=parseInt(arD[x]);
		}
		var dO=dtTm.crDt();
		var d=new Date(dO.getFullYear(),dO.getMonth(),dO.getDate(),arH[0]+arD[0],arH[1]+arD[1],arH[2]+arD[2]);
		var H=d.getHours().toString();
		if(H.length<2) H="0"+H;
		var M=d.getMinutes().toString();
		if(M.length<2) M="0"+M;
		var S=d.getSeconds().toString();
		if(S.length<2) S="0"+S;
		var b=(dO.getDate()<d.getDate())?true:false;
		return [H+":"+M+":"+S,d,b];
	},
	addMnth:function(d,iNMnth){
		if(!iNMnth) iNMnth=1;
		if(!d) d=dtTm.crDt();
		var ar=dtTm.arAMG(d);
		var ggF=(cal.bBsst(ar[0]))?29:28;
		var arMnth=[31,ggF,31,30,31,30,31,31,30,31,30,31];
		if(ar[1][0]=="0") ar[1]=ar[1][1];
		var dF=new Date(parseInt(ar[0]),parseInt(ar[1])+(iNMnth-1),parseInt(ar[2]));
		var g=dF.getDate();
		var m=dF.getMonth();
		if(dF.getMonth()>parseInt(ar[1])+(iNMnth-1)){
			m--;
			g=arMnth[m];
		}else g--;
		return dtPrnt(dtTm.arAMG(new Date(dF.getFullYear(),m,g),true,"-"));
	}
	/*
	,
	crDtO:function(oD){
		return oD.getDate()+"/"+(oD.getMonth()+1)+"/"+oD.getFullYear();
	}
	*/
}




////array
function arGetKey(ar,indexNm,szValue){
	for(var i=0;i<ar.length;i++){ if(ar[i][indexNm]==szValue) return i;}
	return false;
}
function ppStr(ar,szSep){
	if(!szSep) szSep="|";
	return szSep+ar.join(szSep)+szSep;	
}
function ppArr(sz,szSep){
	if(sz==""||!sz) return new Array();
	if(!szSep) szSep="|";
	var iSL=szSep.length;
	var sz=sz.slice(iSL,-iSL);
	return sz.split(szSep);
}
function arRmEl(ar,szValue){
	for(var i=0;i<ar.length;i++) if(ar[i]==szValue){ar.splice(i,1);break;}
}


///eventi
function noPropag(e){
	e=e?e:window.event;
	if(e.stopPropagation) e.stopPropagation();
	if(e.preventDefault) e.preventDefault();
	e.cancelBubble=true;
}
function addEvent(obj,e,fn,useCapture){
	//alert(fn+"\n\n"+addEvent.caller)
	if(!obj||!fn) return;
	if(obj.addEventListener){
		//alert(obj.id+"\n"+e+"\n"+addEvent.caller.name);
		obj.addEventListener(e,fn,useCapture);
		return true;
	}else if(obj.attachEvent)	return obj.attachEvent("on"+e,fn);
	else alert("evento non attaccato");
}
function rmvEvent(obj,e,fn,useCapture){
	if(obj.removeEventListener){
		obj.removeEventListener(e,fn,useCapture);
		return true;
	}else if(obj.detachEvent)	return obj.detachEvent("on"+e,fn);
	else alert("evento non staccato");
}
function stOnLd(fn){
	addEvent(window,"load",fn,false);
}


//coockie
function setCookie(name,value){
	var argv=setCookie.arguments;
	var argc=setCookie.arguments.length;
	var nHours=(2<argc) ? parseInt(argv[2]):null;
	var path=(3<argc) ? argv[3]:null;
	var domain=(4<argc) ? argv[4]:null;
	var secure=(5<argc) ? argv[5]:false;
	var today=new Date();
	expires=new Date(today.getTime()+3600000*nHours);
	document.cookie=name+"="+escape(value)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
}
function getCookieVal(offset){
   var endstr=document.cookie.indexOf(";",offset);
   if(endstr==-1) endstr=document.cookie.length;
   return unescape(document.cookie.substring(offset,endstr));
}
function getCookie(name){
	var arg=name+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while(i<clen){
		var j=i+alen;
		if(document.cookie.substring(i,j)==arg) return getCookieVal(j);
		i=document.cookie.indexOf(" ",i)+1;
		if(i==0)break; 
	}
	return null;
}


//window
function areaDoc(obj){
	obj=obj?obj:document.documentElement;
	return ar=new Array(obj.clientWidth,obj.clientHeight);
}
function scrollDoc(obj){
	obj=obj?obj:document.documentElement;
	return ar=new Array(obj.scrollLeft,obj.scrollTop);
}


//animazioni
var arRszd=[];
function gstRsz(obj,wF,hF,fn,iTO,bC){
	if(!ppSrch(ppStr(arRszd),obj.id)){
		arRszd.push(obj.id);
		new objRsz(obj,wF,hF,fn,iTO,bC);
	}
}

function objRsz(obj,wF,hF,fn,iTO,bC){
	this.obj=obj;
	this.wI=parseInt(obj.offsetWidth);
	this.hI=parseInt(obj.offsetHeight);
	this.wF=wF;
	this.hF=hF;
	this.xDir=this.wF-this.wI;
	this.yDir=this.hF-this.hI;
	this.fn=fn;
	this.iTO=(iTO)?iTO:42;
	this.bC=bC;
	var thi=this;
	this.fnRsz=function(){
		if(thi.xDir==0 && thi.yDir==0){ arRmEl(arRszd,thi.obj.id); return;}
		if(thi.hF!=null){   
			var jmp=(thi.hF-thi.hI)/4;
			thi.hI+=jmp;
			thi.obj.style.height=thi.hI+"px";
			if((thi.yDir>0&&thi.hI>=thi.hF-1)||(thi.yDir<0&&thi.hI<=thi.hF+1)){
				thi.obj.style.height=thi.hF+"px";
				thi.hF=null;
			}
		}
		if(thi.wF!=null){
			var jmp=(thi.wF-thi.wI)/4;
			thi.wI+=jmp;
			thi.obj.style.width=thi.wI+"px";
			if((thi.xDir>0&&thi.wI>=thi.wF-1)||(thi.xDir<0&&thi.wI<=thi.wF+1)){
				thi.obj.style.width=thi.wF+"px";
				thi.wF=null;
			}
		}
		if(thi.bC) cntrObj(thi.obj,thi.wI,thi.hI);
		if(thi.wF!=null || thi.hF!=null) setTimeout(thi.fnRsz,thi.iTO); 
		else{
			if(fn) fn();
			arRmEl(arRszd,thi.obj.id);
			//delete thi;
		}
	};
	this.fnRsz();
}

var arFdd=new Array();
function gstFdd(obj,time,iDir,fn){
	if(!obj){
		return;
	}
	if(!ppSrch(ppStr(arFdd),obj.id)){
		arFdd.push(obj.id);
		new objFd(obj,time,iDir,fn);
	}
}
function objFd(obj,time,iDir,fn){
	this.obj=obj;
	this.time=time;
	this.iAlpha=(iDir<0)?100:0;
	this.iTime=35;
	this.iDir=100/(time/this.iTime);
	if(this.iDir<1) this.iDir=1;
	if(iDir<0) this.iDir*=-1;
	obj.style.visibility="visible";
	//alert("inizio: "+iAlpha+"___"+iDir);
	var thi=this;
	stAlph(this.obj,this.iAlpha);
	this.fader=function(){
		thi.iAlpha+=thi.iDir; 
		if(thi.iAlpha<0) thi.iAlpha=0;
		if(thi.iAlpha>100) thi.iAlpha=100;
		stAlph(thi.obj,thi.iAlpha);
		if((thi.iAlpha>0&&thi.iDir<0)||(thi.iAlpha<100&&thi.iDir>0)) setTimeout(thi.fader,thi.iTime);
		else{
			//alert("finito: "+thi.iAlpha+"___"+thi.iDir);
			if(thi.iAlpha==0) obj.style.visibility="hidden";
			if(fn) fn(thi.obj);
			arRmEl(arFdd,thi.obj.id);
		}
	};
	this.fader();
}
function stAlph(obj,iAlpha){
	if(_isIE) obj.style.filter="alpha(opacity="+iAlpha+")";
	else obj.style.opacity=iAlpha/100;
}

function addslashes(sz){
    return (sz+'').replace(/[\\"']/g,'\\$&').replace(/\u0000/g,'\\0');
}
function stripslashes(sz){
    return (sz+'').replace(/\\(.?)/g,function(s,n1){
        switch(n1){
        case '\\': return '\\';
        case '0': return '\u0000';
        case '': return '';
        default: return n1;
	}
    });
}











function isUrl(szUrl){
	var re=/^((http[s]?|ftp)\:\/\/)([a-zA-Z0-9\-\.]+)\.([a-zA-Z]{2,3})(:[a-zA-Z0-9]*)?\/?([a-zA-Z0-9\-\._\?\,\'\/\\\+&amp;%\$#\=~])*$/;
	var ar=szUrl.match(re);
	return (re.test(szUrl) && ppSrch(szDomainList,ar[4]));
}
function isEmail(szMail){
	var arStr=szMail.split('.');
	var regExpression=/^(([^<>()[\]\\.,\\?;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
	return (regExpression.test(szMail) && ppSrch(szDomainList,arStr.pop()));
}


