    /*	Solo per Dom	*/
var DirImg = "/metallpreise/";
	/*	Messaggi gestione calendario	*/
var PosizString = "Current month";
var todayString = "Today is ";
var PrecMessage = "Previous month";
var SuccMessage = "Next month";
var selectMeseMessage = "Select month";
var selectAnnoMessage = "Select year";
var selectDataMessage = "Select [Date] as data.";
var Week = "Week";
var MeseName =new Array("January","February","March","April","May","June","July","August","September","October","November","December") ;
var dayName = new Array	("Mon","Tue","Wed","Thu","Fri","Sat","Sun");

var crossobj, crossMeseObj, crossAnnoObj, MeseSelected, AnnoSelected, DataSelected, oMeseSelected, oAnnoSelected, oDataSelected, MeseConstructed, AnnoConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2, ctlToPlaceValue, ctlNow, DataFormat, DataFormatOut,nStartingAnno;
var undefined;
var bPageLoaded=false;
var ie=document.all;
var dom=document.getElementById;

var today = new	Date();

var DataNow = today.getDate();
var MeseNow = today.getMonth();
var AnnoNow = today.getFullYear();
var imgsrc = new Array("cal_drop1.gif","cal_drop2.gif","cal_left1.gif","cal_left2.gif","cal_right1.gif","cal_right2.gif");
var img	= new Array();


var bShow = false;
var DataPointer	= 0;
var dayPointer	= 0;
var styleWeek = "background-color: #C9D8E8; width: 27px; text-align: right;";
var styleMove = "background-color: #C9D8E8";
var styleClose ="position:relative; left:-60%;" 
var	startData;
		
if (dom) {
	for	(i=0;i<imgsrc.length;i++) {
		img[i] = new Image
    		img[i].src = DirImg + imgsrc[i]
  	}
	document.write ("<div onclick='bShow=true' id='calendar' style=\"z-index:+999;position:absolute;visibility:hidden;\"><table style=\"width: 100px; font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#C0C0C0; background: #ffffff;\"><tr style=\"background: #00427F\"><td><table style=\"width: 100%;\"><tr><td style=\"padding:2px; font-family:arial; font-size:11px; color:#FFF;\"><B><span id='caption'></span></B></font></td><td><a href='javascript:hideCalendar()'><IMG SRC='"+DirImg+"cal_close.gif' WIDTH='15' HEIGHT='13' BORDER='0' ALT='Close'></a></td></tr></table></td></tr><tr><td style=\"padding:5px; background: #ffffff;\"><span id='content'></span></td></tr>");
	document.write ("<tr style=\"background: #C9D8E8;\"><td style=\"padding:5px; text-align: center;\"><span id='lbltoday'></span></td></tr>");
  	document.write ("</table></div><div id='selectMese' style=\"z-index:+999; position:absolute; visibility:hidden;\"></div><div id='selectAnno' style=\"z-index:+999; position:absolute; visibility:hidden;\"></div>");
}
	
var	styleAnchor="text-decoration:none; color:black;"

var	styleLightBorder="background-color:#00417F; color:#fbfbaf;"
var	styleLightBorder1="border: solid thin #C0A0A0;"

function swapImage(srcImg, destImg){
	document.getElementById(srcImg).setAttribute("src",DirImg + destImg)
}

    /* hides <select> objects */
function hideElement( overDiv ){
    		for( i = 0; i < document.getElementsByTagName( 'SELECT' ).length; i++ ){
		    obj = document.getElementsByTagName( 'SELECT' )[i];
    		if( !obj || !obj.offsetParent ){
			continue;
    		}
    
    // Find the element's offsetTop and offsetLeft relative to the BODY tag.
 	   	objLeft   = obj.offsetLeft;
 	   	objTop    = obj.offsetTop;
 	   	objParent = obj.offsetParent;
          
 	   	while( objParent.tagName.toUpperCase() != "BODY" ) {
 	   		if (objParent.offsetParent == null) break;
			objLeft  += objParent.offsetLeft;
	      		objTop   += objParent.offsetTop;
      			objParent = objParent.offsetParent;
    		}
     
    		objHeight = obj.offsetHeight;
    		objWidth = obj.offsetWidth;

	 
    		if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft ){}
    		else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop ){}
    		else if( overDiv.offsetTop >= ( objTop + objHeight )){}
    		else if( overDiv.offsetLeft >= ( objLeft + objWidth )){}
    		else {
      			obj.style.visibility = "hidden";
    		}	
			
	}
}
     

function initcalendar()	{
	// Faccio connessione con server per reperire le descrizioni dell'applicazione
	// cerco il file delle lingue con nome lang+"lingua applicazione";
	// Crea l'oggetto per la connessione
	// var xmlhttp = new SyncConnect();
	// in arrayobject ci sono tutte le descrizioni, mesi.. giorni.. e altro legati all'applicazione
	
	// var buffer = xmlhttp.getURL("/scripts/LangCalend"+NetA.lang+".txt",null);
	var arrayobject = { 
							  PosizString:"Current month",
							  todayString:"Today is ",
							  PrecMessage:"Previous month",
							  SuccMessage:"Next month",
							  selectMeseMessage:"Select month",
							  selectAnnoMessage:"Select year",
							  selectDataMessage:"Select [Date] as data.",
							  Mese1:"January",
							  Mese2:"February",
							  Mese3:"March",
							  Mese4:"April",
							  Mese5:"May",
							  Mese6:"June",
							  Mese7:"July",
							  Mese8:"August",
							  Mese9:"September",
							  Mese10:"October",
							  Mese11:"November",
							  Mese12:"December",
							  Week:"Week",
							  gg1:"Mon",
							  gg2:"Tue",
							  gg3:"Wed",
							  gg4:"Thu",
							  gg5:"Fri",
							  gg6:"Sat",
							  gg7:"Sun"
								}
	
	/*
	var arrayobject = null;
	
        
          try{
          	arrayobject = eval("(" + buffer + ")"); 
	    } 
		catch(e){
			arrayobject = null;	
	   	    alert("Syntax Error in file: LangCalend"+NetA.lang+".txt");
	            }
	*/
	
	//------------------------------------------------
		/*	Messaggi gestione calendario	*/
	//-------------------------------------------------	
	if(arrayobject!=null){
	PosizString = arrayobject.PosizString; //"Mese corrente"
    todayString = arrayobject.todayString; //"Oggi e' "
    PrecMessage = arrayobject.PrecMessage; //"Mese precedente."
    SuccMessage = arrayobject.SuccMessage; //"Mese successivo."
    selectMeseMessage = arrayobject.selectMeseMessage; //"Selezione mese"
    selectAnnoMessage = arrayobject.selectAnnoMessage; //"Selezione anno"
    selectDataMessage = arrayobject.selectDataMessage;//"seleziona [Date] come data."
    // Week
	Week = arrayobject.Week;
    // Mesi
	MeseName =new Array(arrayobject.Mese1,arrayobject.Mese2,arrayobject.Mese3,arrayobject.Mese4,arrayobject.Mese5,arrayobject.Mese6,arrayobject.Mese7,arrayobject.Mese8,arrayobject.Mese9,arrayobject.Mese10,arrayobject.Mese11,arrayobject.Mese12) ;
    //Anni
	dayName = new Array	(arrayobject.gg1,arrayobject.gg2,arrayobject.gg3,arrayobject.gg4,arrayobject.gg5,arrayobject.gg6,arrayobject.gg7);
	
	}
	//------------------------------------------------------
	crossobj = document.getElementById("calendar").style;
	hideCalendar()

	crossMeseObj=document.getElementById("selectMese").style 
	crossAnnoObj=document.getElementById("selectAnno").style

	MeseConstructed=false;
	AnnoConstructed=false;
	document.getElementById("lbltoday").innerHTML =	todayString + " <a onmousemove='window.status=\""+PosizString+"\"' onmouseout='window.status=\"\"' title='"+PosizString+"' style='"+styleAnchor+"' href='javascript:MeseSelected=MeseNow;AnnoSelected=AnnoNow;constructCalendar();'>"+dayName[(today.getDay()-1)]+", " + DataNow + " " + MeseName[MeseNow].substring(0,3)	+ " " +	AnnoNow	+ "</a>";
		
	sHTML1= "<span id='spanLeft'	title='"+PrecMessage+"' style=\"border-style:solid; border-width:3px; border-color:#3366FF; cursor:pointer;\" onmouseover='swapImage(\"changeLeft\",\"cal_left2.gif\"); this.style.borderColor=\"#88AAFF\"; window.status=\""+PrecMessage+"\"' onclick='javascript:decMese();' onmouseout='clearInterval(intervalID1); swapImage(\"changeLeft\",\"cal_left1.gif\"); this.style.borderColor=\"#3366FF\";window.status=\"\"' onmousedown='clearTimeout(timeoutID1); timeoutID1=setTimeout(\"StartDecMese()\",500);'	onmouseup='clearTimeout(timeoutID1); clearInterval(intervalID1);'>&nbsp<IMG id='changeLeft' SRC='"+DirImg+"cal_left1.gif' width=10 height=11 BORDER=0>&nbsp</span>&nbsp;";
	sHTML1+="<span id='spanRight' title='"+SuccMessage+"' style=\"border-style:solid; border-width:3px; border-color:#3366FF; cursor:pointer;\"	onmouseover='swapImage(\"changeRight\",\"cal_right2.gif\"); this.style.borderColor=\"#88AAFF\"; window.status=\""+SuccMessage+"\"' onmouseout='clearInterval(intervalID1); swapImage(\"changeRight\",\"cal_right1.gif\"); this.style.borderColor=\"#3366FF\"; window.status=\"\"' onclick='incMese()' onmousedown='clearTimeout(timeoutID1); timeoutID1=setTimeout(\"StartIncMese()\",500)'	onmouseup='clearTimeout(timeoutID1); clearInterval(intervalID1)'>&nbsp<IMG id='changeRight' SRC='"+DirImg+"cal_right1.gif'	width=10 height=11 BORDER=0>&nbsp</span>&nbsp;";
	sHTML1+="<span id='spanMese' title='"+selectMeseMessage+"' style=\"border-style:solid; border-width:3px; border-color:#3366FF; cursor:pointer; color:#fbfbaf\" onmouseover='swapImage(\"changeMese\",\"cal_drop2.gif\"); this.style.borderColor=\"#88AAFF\"; window.status=\""+selectMeseMessage+"\"' onmouseout='swapImage(\"changeMese\",\"cal_drop1.gif\"); this.style.borderColor=\"#3366FF\"; window.status=\"\"' onclick='popUpMese()'></span>&nbsp;";
	sHTML1+="<span id='spanAnno' title='"+selectAnnoMessage+"' style=\"border-style:solid; border-width:3px; border-color:#3366FF; cursor:pointer; color:#fbfbaf\" onmouseover='swapImage(\"changeAnno\",\"cal_drop2.gif\"); this.style.borderColor=\"#88AAFF\"; window.status=\""+selectAnnoMessage+"\"' onmouseout='swapImage(\"changeAnno\",\"cal_drop1.gif\"); this.style.borderColor=\"#3366FF\"; window.status=\"\"' onclick='popUpAnno()'></span>&nbsp;";
			
	document.getElementById("caption").innerHTML  =	sHTML1;

	bPageLoaded=true;
}
/** Ritorna il Numero della settimana dell'anno */
function getWeekNumber(){
	var d = new Date(startData.getFullYear(), startData.getMonth(), DataPointer, 0, 0, 0);
	var DoW = d.getDay();
	d.setDate(d.getDate() - (DoW + 6) % 7 + 3); // Nearest Thu
	var ms = d.valueOf(); // GMT
	d.setMonth(0);
	d.setDate(4); // Thu in Week 1
	return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;
};

function hideCalendar()	{
	crossobj.visibility="hidden";
	if (crossMeseObj != null){crossMeseObj.visibility="hidden"}
	if (crossAnnoObj !=	null){crossAnnoObj.visibility="hidden"}
	
	showElements( document.getElementById("calendar") );

}

    /* show <select> objects */
function showElements(overDiv){
    		for( i = 0; i < document.getElementsByTagName( 'SELECT' ).length; i++ ){
		    obj = document.getElementsByTagName( 'SELECT' )[i];
    		if( !obj || !obj.offsetParent ){
			continue;
    		}

    // Find the element's offsetTop and offsetLeft relative to the BODY tag.
 	   	objLeft   = obj.offsetLeft;
 	   	objTop    = obj.offsetTop;
 	   	objParent = obj.offsetParent;

 	   	while( objParent.tagName.toUpperCase() != "BODY" ) {
 	   		if (objParent.offsetParent == null) break;
			objLeft  += objParent.offsetLeft;
	      		objTop   += objParent.offsetTop;
      			objParent = objParent.offsetParent;
    		}

    		objHeight = obj.offsetHeight;
    		objWidth = obj.offsetWidth;

    		if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft );
    		else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop );
    		else if( overDiv.offsetTop >= ( objTop + objHeight ));
    		else if( overDiv.offsetLeft >= ( objLeft + objWidth ));
    		else {
      			obj.style.visibility = "visible";
    		}
	}
}



function padZero(num) {
	return (num	< 10)? '0' + num : num ;
}

function constructData(g,m,a) {
    if(DataFormatOut == ""){ 
	sTmp = DataFormat;
	}else{
	sTmp = DataFormatOut;
	}
	sTmp = sTmp.replace	("gg","<e>")
	sTmp = sTmp.replace	("g","<g>")
	sTmp = sTmp.replace	("<e>",padZero(g))
	sTmp = sTmp.replace	("<g>",g)
	sTmp = sTmp.replace	("mmmm","<p>")
	sTmp = sTmp.replace	("mmm","<o>")
	sTmp = sTmp.replace	("mm","<n>")
	sTmp = sTmp.replace	("m","<m>")
	sTmp = sTmp.replace	("<m>",m+1)
	sTmp = sTmp.replace	("<n>",padZero(m+1))
	sTmp = sTmp.replace	("<o>",MeseName[m])
	sTmp = sTmp.replace	("aaaa",a)
	return sTmp.replace ("aa",padZero(a%100))
}

function closeCalendar() {
	var	sTmp
	hideCalendar();
	ctlToPlaceValue.value =	constructData(DataSelected,MeseSelected,AnnoSelected)
}

	/*** Mese Pulldown	***/

function StartDecMese()	{
	intervalID1=setInterval("decMese()",80)
}

function StartIncMese()	{
	intervalID1=setInterval("incMese()",80)
}

function incMese () {
	MeseSelected++
	if (MeseSelected>11) {
		MeseSelected=0
		AnnoSelected++
	}
	constructCalendar()
}

function decMese () {
	MeseSelected--
	if (MeseSelected<0) {
		MeseSelected=11
		AnnoSelected--
	}
	constructCalendar()
}

function constructMese() {
	popDownAnno()
	if (!MeseConstructed) {
		sHTML =	""
		for	(i=0; i<12;	i++) {
			sName =	MeseName[i];
			if (i==MeseSelected){
				sName =	"<B>" +	sName +	"</B>"
			}
			sHTML += "<tr><td id='m" + i + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style=\"cursor:pointer\" onclick='MeseConstructed=false;MeseSelected=" + i + ";constructCalendar();popDownMese();event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
		}
		
		document.getElementById("selectMese").innerHTML = "<table style=\"width: 70px; font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#C0C0C0; background: #FFFFDD\" cellspacing=0 onmouseover='clearTimeout(timeoutID1)'	onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMese()\",100);event.cancelBubble=true'>" +	sHTML +	"</table>"

		MeseConstructed=true
	}
}

function popUpMese() {
	constructMese()
	crossMeseObj.visibility = "visible"
	crossMeseObj.left = parseInt(crossobj.left) + 50 +"px";
	crossMeseObj.top =	parseInt(crossobj.top) + 26 +"px";

	hideElement(document.getElementById("selectMese") );
}

function popDownMese()	{
	crossMeseObj.visibility= "hidden"
}

	/*** Anno Pulldown ***/

function incAnno() {
	for	(i=0; i<7; i++){
		newAnno	= (i+nStartingAnno)+1
		if (newAnno==AnnoSelected)
		{ txtAnno =	"&nbsp;<B>"	+ newAnno +	"</B>&nbsp;" }
		else
		{ txtAnno =	"&nbsp;" + newAnno + "&nbsp;" }
		document.getElementById("y"+i).innerHTML = txtAnno
	}
	nStartingAnno ++;
	bShow=true
}

function decAnno() {
	for	(i=0; i<7; i++){
		newAnno	= (i+nStartingAnno)-1
		if (newAnno==AnnoSelected)
		{ txtAnno =	"&nbsp;<B>"	+ newAnno +	"</B>&nbsp;" }
		else
		{ txtAnno =	"&nbsp;" + newAnno + "&nbsp;" }
		document.getElementById("y"+i).innerHTML = txtAnno
	}
	nStartingAnno --;
	bShow=true
}

function selectAnno(nAnno) {
	AnnoSelected=parseInt(nAnno+nStartingAnno);
	AnnoConstructed=false;
	constructCalendar();
	popDownAnno();
}

function constructAnno() {
	popDownMese()
	sHTML =	""
	if (!AnnoConstructed) {
			sHTML =	"<tr><td onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' style=\"text-align: center; cursor:pointer;\"	onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decAnno()\",30)' onmouseup='clearInterval(intervalID1)'>-</td></tr>"
			j =	0
		nStartingAnno =	AnnoSelected-3
		for	(i=(AnnoSelected-3); i<=(AnnoSelected+3); i++) {
			sName =	i;
			if (i==AnnoSelected){
				sName =	"<B>" +	sName +	"</B>"
			}
			sHTML += "<tr><td id='y" + j + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style=\"cursor:pointer\" onclick='selectAnno("+j+");event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
			j ++;
		}
		sHTML += "<tr><td align='center' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style=\"cursor:pointer\" onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incAnno()\",30)'	onmouseup='clearInterval(intervalID2)'>+</td></tr>"

		document.getElementById("selectAnno").innerHTML	= "<table style=\"width: 44px; font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#C0C0C0; background: #FFFFDD\" onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownAnno()\",100)' cellspacing=0>"	+ sHTML	+ "</table>"
		
		AnnoConstructed	= true
	}
}

function popDownAnno() {
	clearInterval(intervalID1)
	clearTimeout(timeoutID1)
	clearInterval(intervalID2)
	clearTimeout(timeoutID2)
	crossAnnoObj.visibility= "hidden"
}

function popUpAnno() {
	var	leftOffset
	constructAnno()
	crossAnnoObj.visibility	= "visible"
	leftOffset = parseInt(crossobj.left) + document.getElementById("spanAnno").offsetLeft;
	leftOffset += 6;
	crossAnnoObj.left =	leftOffset + "px";
	crossAnnoObj.top = parseInt(crossobj.top) +	26 + "px";
}


function constructCalendar () {
	var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31)
	var DataMessage
	startData =	new	Date (AnnoSelected,MeseSelected,1)
	var endData

	if (MeseSelected==1)
	{
		endData	= new Date (AnnoSelected,MeseSelected+1,1);
		endData	= new Date (endData	- (24*60*60*1000));
		numDaysInMese = endData.getDate()
	}
	else
	{
		numDaysInMese = aNumDays[MeseSelected];
	}

	DataPointer	= 0
	dayPointer = startData.getDay() - 1
	
	if (dayPointer<0)
	{
		dayPointer = 6
	}

	sHTML =	"<table style=\"border: none; font-family:verdana; font-size:10px;\"><tr>"

	for	(i=0; i<7; i++)	{
	    if(i==0){
	    sHTML += "<td style='"+styleWeek+"'><B>"+Week+"</B></td><td style=\"width: 27px; text-align: right;\"><B>"+ dayName[i]+"</B></td>"
	    }else{
		sHTML += "<td style=\"width: 27px; text-align: right;\"><B>"+ dayName[i]+"</B></td>"
		}
	}
	sHTML +="</tr><tr>"
	// Aggiungo numero settimana su prima riga
	sHTML += "<td style='"+styleWeek+"'><B>"+ getWeekNumber()+"</B></td>"
	var riga = false;
		
	for	( var i=1; i<=dayPointer;i++ )
	{
		sHTML += "<td style=\"width: 27px;\">&nbsp;</td>"
	}
	
	for	( DataPointer=1; DataPointer<=numDaysInMese; DataPointer++ ){
		dayPointer++;
		if(riga == true){
		// Aggiungo numero settimana
		sHTML += "<td  style='"+styleWeek+"'><B>"+ getWeekNumber()+"</B></td>"
		riga = false;
		}
		sHTML += "<td style=\"width: 27px; text-align: right;\" onmouseover='this.style.backgroundColor=\"#C9D8E8\"' onmouseout=this.style.backgroundColor=\"\">"
		sStyle=styleAnchor
		
		if ((DataPointer==oDataSelected) &&	(MeseSelected==oMeseSelected)	&& (AnnoSelected==oAnnoSelected))
		{ sStyle+=styleLightBorder }
		
    if ((DataPointer==DataNow) &&	(MeseSelected==MeseNow)	&& (AnnoSelected==AnnoNow))
		{ sStyle+=styleLightBorder1 }
    sHint = ""
		var regexp= /\"/g
		sHint=sHint.replace(regexp,"&quot;")

		DataMessage = "onmousemove='window.status=\""+selectDataMessage.replace("[Date]",constructData(DataPointer,MeseSelected,AnnoSelected))+"\"' onmouseout='window.status=\"\"' "

		if ((DataPointer==DataNow)&&(MeseSelected==MeseNow)&&(AnnoSelected==AnnoNow))
		{ sHTML += "<a "+DataMessage+" title= \"" + sHint + "\" style='"+sStyle+"' href='javascript:DataSelected="+DataPointer+";closeCalendar();'>&nbsp;" + DataPointer + "&nbsp;</a>"}
		else if	(dayPointer % 7 == 1)
		{ sHTML += "<a "+DataMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:DataSelected="+DataPointer + ";closeCalendar();'>&nbsp;" + DataPointer + "&nbsp;</a>" }
		else
		{ sHTML += "<a "+DataMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:DataSelected="+DataPointer + ";closeCalendar();'>&nbsp;" + DataPointer + "&nbsp;</a>" }
		sHTML += ""
		if ((dayPointer) % 7 == 0) { 
			sHTML += "</tr><tr>" 
			riga = true;
		}
	}

	document.getElementById("content").innerHTML   = sHTML
	document.getElementById("spanMese").innerHTML = "&nbsp;" +	MeseName[MeseSelected] + "&nbsp;<IMG id='changeMese' SRC='"+DirImg+"cal_drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
	document.getElementById("spanAnno").innerHTML =	"&nbsp;" + AnnoSelected	+ "&nbsp;<IMG id='changeAnno' SRC='"+DirImg+"cal_drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
}


function viewCalendar(ctl, format, evt)	{

	// ale corretto, altrimenti per data vuota non parte il calendario;
	//if (!ctl.value) return;
	DataFormatOut = "";
	if (!ctl) return;
	if (evt.button < 2){
		popUpCalendar(ctl,format);
		evt.cancelBubble = true;
 		evt.returnValue = false;
	}
}
//----------------------------------------------------------
//  Funzione chiamata con 2 parametri x il formato  
//  principalmente usata da Netacross in Interattivo
//----------------------------------------------------------

function viewCalendarINT(ctl, format,formatout, evt)	{


	if (!ctl) return;
	
    DataFormatOut = formatout;

	if (evt.button == 0){
		popUpCalendar(ctl,format);
		evt.cancelBubble = true;
 		evt.returnValue = false;
	}
}
//-------------------------------------------------------------------


function popUpCalendar(ctl, format) {

//	if (ie){
		if (ctl.value == undefined) return; 

    		if(dom) {
      	    			
  			var	leftpos=0
  			var	toppos=0
		
			if (bPageLoaded) {
				if ( crossobj.visibility == "hidden" ) {
  		  			ctlToPlaceValue	= ctl
  		  			DataFormat=format;
  		  				
	  		  		formatChar = " "
  			  		aFormat	= DataFormat.split(formatChar)
  			  		if (aFormat.length<3){
	  		  			formatChar = "/"
  			  			aFormat	= DataFormat.split(formatChar)
  			  			if (aFormat.length<3){
	  		  				formatChar = "."
  			  				aFormat	= DataFormat.split(formatChar)
  			  				if (aFormat.length<3) {
 	 		  					formatChar = "-"
  			  					aFormat	= DataFormat.split(formatChar)
  			  					if (aFormat.length<3){
	  		  						// invalid Data	format
	  		  						formatChar=""
	  		  					}
  			  				}
  			  			}
  		  			}
  		  				
  		  			
  		  			tokensChanged =	0
  		  				
  		  			if ( formatChar	!= "" ){
	  		  			// use user's Data
  			  			aData =	ctl.value.split(formatChar)
  	
   						for	(i=0;i<3;i++){
	   						if ((aFormat[i]=="g") || (aFormat[i]=="gg")){
 	   							DataSelected = parseInt(aData[i], 10);
    								tokensChanged ++;
  	   						}
  		  					else if	((aFormat[i]=="m") || (aFormat[i]=="mm")){
	  			  				MeseSelected =	parseInt(aData[i], 10) - 1;
  						   		tokensChanged ++;
  						   	}
  							else if	(aFormat[i]=="aaaa"){ 
  							
  								 AnnoSelected = parseInt(aData[i], 10);
  								 
  							// Toppa se mi passi l'anno di due
  							try {
  							if (aData[i].length < 4)
  							{
  								if (AnnoSelected > 50) {
									AnnoSelected = 1900 + AnnoSelected;
								}
								else {
									AnnoSelected = 2000 + AnnoSelected;
								}	
  							}
					  		}catch(e){}					
  							//
	    	 					
     							 tokensChanged ++
    				 			}
    				 			else if	(aFormat[i]=="aa"){
	    	 						AnnoSelected = parseInt(aData[i], 10)
								if (AnnoSelected > 50) {
									AnnoSelected = 1900 + AnnoSelected;
								}
								else {
									AnnoSelected = 2000 + AnnoSelected;
								}
     								tokensChanged ++
    				 			}
    			 				else if	(aFormat[i]=="mmm"){
	    							for	(j=0; j<12;	j++){
    									if (aData[i]==MeseName[j]){
	    			 						MeseSelected=j
  			  							tokensChanged ++
    	 								}
  	    							}
  	   						}
  		  				}
  			   		}
  			   		if ((DataSelected == 99) || (MeseSelected == 99))
	    			{
	    				DataSelected = DataNow;
  						MeseSelected =	MeseNow;
  						AnnoSelected = AnnoNow;
	    			}
	    			if ((DataSelected <= 0) || (MeseSelected < 0))
	    			{
	    				DataSelected = DataNow;
  						MeseSelected =	MeseNow;
  						AnnoSelected = AnnoNow;
	    			} 
	    			if ((tokensChanged!=3)||isNaN(DataSelected)||isNaN(MeseSelected)||isNaN(AnnoSelected)){
	  					DataSelected = DataNow;
  						MeseSelected =	MeseNow;
  						AnnoSelected = AnnoNow;
  					}
  			
	  		  		oDataSelected=DataSelected;
  			  		oMeseSelected=MeseSelected;
  			  		oAnnoSelected=AnnoSelected;
	  		  		aTag = ctl;
	  		  		
	  		  		
  			  		do {
  			  			//window.alert(aTag);
  		  				//window.alert(aTag.tagName);
  		  			 if (aTag.offsetParent == null) break;
  			  			aTag = aTag.offsetParent;
  		  				leftpos	+= aTag.offsetLeft;
  		  				toppos += aTag.offsetTop;
  		  				
  		  			} while(aTag.tagName!="BODY");  		  		
				
	  				if (leftpos > 400){
                        value = ctl.offsetLeft + leftpos - 220 + ctl.offsetWidth + 1;				
  						crossobj.left =	value  + "px";
  		  			}
  		  			else {
  		  			    value = ctl.offsetLeft	+ leftpos
		  				crossobj.left =	value + "px";
  			  		}
  			  		value = ctl.offsetTop +	toppos + ctl.offsetHeight +	2;
  			  		/*
  			  		// Faccio controllo se la posizione del top Ë troppo bassa rispetto all'altezza della finestra
  			  		var w = xdom.Browser.getMaxX();
                    var y = xdom.Browser.getMaxY();
                    var r = y-(toppos + ctl.offsetHeight +2);
                    var q = y - (180 + toppos + ctl.offsetHeight +2);
                    if(q>r)    {
                    value = toppos - 180;
                    }
                    if(q<0)    {
                    value = toppos - 180;
                    }
                    //--------------------------
  			  		*/
  		  			crossobj.top = value + "px";									
  		  			constructCalendar (1, MeseSelected, AnnoSelected);
  		  			crossobj.visibility= "visible" 
					hideElement( document.getElementById("calendar") );
		  		
	  		  		bShow = true;
  				}
  		  		else {
	  				hideCalendar()
  			  		if (ctlNow!=ctl) {popUpCalendar(ctl, format)}
  				}
  		  		ctlNow = ctl
  			}
      		}
	//}
}



// Funzione init
//if(ie){
	if(dom) {
	   initcalendar()
	}
//}
