function CalData() {
  var calDI = new Calendar(1, null, onSelectData, onCloseData);
  calDI.setDateFormat("%d/%m/%Y");
	var d = new Date();
	anno = d.getFullYear();
	calDI.setRange(anno, (anno+2));
  calDI.create();
  calDI.showAtElement(document.getElementById("news_data"), "Br");
}
function onSelectData(calDI, date) {
  document.getElementById("news_data").value = date;
  calDI.callCloseHandler();
  calDI.hide();
  calDI.destroy();
}
function onCloseData(calDI, date) {
  calDI.hide();
  calDI.destroy();
}










function CloseLightBox(){
	document.getElementById('light').style.display='none';
	document.getElementById('fade').style.display='none';
};

function ViewLightBox(){
	document.getElementById('light').style.display='block';
	document.getElementById('fade').style.display='block';
	//document.getElementById("light").style.top = ((document.body.clientHeight/2)-(document.getElementById("light").clientHeight/2))+document.body.scrollTop+'px';
	document.getElementById("light").style.top = (110+document.body.scrollTop)+'px';
	document.getElementById("light").style.left = ((document.body.clientWidth/2)-(document.getElementById("light").clientWidth/2))+document.body.scrollLeft+'px';
	//document.getElementById("light").style.height = (120+document.getElementById("content_light").style.height)+'px';
	//document.getElementById("light").style.height = '800px';
	document.getElementById("fade").style.height = document.body.clientHeight+document.body.scrollTop+'px';
};

function trim(stringa){    
	while (stringa.substring(0,1) == ' '){        
		stringa = stringa.substring(1, stringa.length);    
	}    
	while (stringa.substring(stringa.length-1, stringa.length) == ' '){        
		stringa = stringa.substring(0,stringa.length-1);    
	}    
	return stringa;
};

function numerico(sText)
{
   var ValidChars = "0123456789,";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
					IsNumber = false;
         }
      }
   return IsNumber;
}

function VerificaDataByRef(ctrlDataByRef,ctrlDataDescr)
 {
   var dataverifica;
   var dataoutput;
   var gginput;   
   var mminput; 
   var aaaainput;
   var ggoutput;   
   var mmoutput; 
   var aaaaoutput;
	 var datainput=ctrlDataByRef.value;

   if (datainput=="")
    {
     alert ("Il campo '" + ctrlDataDescr + "' è obbligatorio");
     return false;
    } 
     
   if (datainput.length!=10)
    {
     alert ("Verificare il campo '" + ctrlDataDescr + "'\r\nLa data deve essere in formato GG/MM/AAAA");
     return false;
    } 
    
   gginput=datainput.substr(0,2);  
   mminput=datainput.substr(3,2);
   aaaainput=datainput.substr(6,4);

   if(!(numerico(gginput)))
    {
     alert ("Verificare il campo '" + ctrlDataDescr + "'\r\nIl giorno inserito non è in formato numerico");
     return false;
    }
    
   if(!(numerico(mminput)))
    {
     alert ("Verificare il campo '" + ctrlDataDescr + "'\r\nIl mese inserito non è in formato numerico");
     return false;
    } 
    
   if(!(numerico(aaaainput)))
    {
     alert ("Verificare il campo '" + ctrlDataDescr + "'\r\nL`anno inserito non è in formato numerico");
     return false;
    }          
      
   dataverifica =new Date(aaaainput,mminput-1,gginput)

   aaaaoutput=dataverifica.getFullYear().toString(); 
   mmoutput=(dataverifica.getMonth()+1).toString(); 
   ggoutput=dataverifica.getDate().toString();

   if (mmoutput.length<2)
     mmoutput="0"+mmoutput;
    
   if (ggoutput.length<2)
     ggoutput="0"+ggoutput;

   dataoutput=ggoutput+"/"+mmoutput+"/"+aaaaoutput;

   if (datainput!=dataoutput){
     alert("Verificare il campo '" + ctrlDataDescr + "'\r\nLa data inserita non è corretta");
     return false;
   }else{
     return true;}
 }


function verificadata(ctrlDataName,ctrlDataDescr)
 {
   var dataverifica;
   var dataoutput;
   var gginput;   
   var mminput; 
   var aaaainput;
   var ggoutput;   
   var mmoutput; 
   var aaaaoutput;
	 var datainput=document.getElementById(ctrlDataName).value;

   if (datainput=="")
    {
     alert ("Il campo '" + ctrlDataDescr + "' è obbligatorio");
     return false;
    } 
     
   if (datainput.length!=10)
    {
     alert ("Verificare il campo '" + ctrlDataDescr + "'\r\nLa data deve essere in formato GG/MM/AAAA");
     return false;
    } 
    
   gginput=datainput.substr(0,2);  
   mminput=datainput.substr(3,2);
   aaaainput=datainput.substr(6,4);

   if(!(numerico(gginput)))
    {
     alert ("Verificare il campo '" + ctrlDataDescr + "'\r\nIl giorno inserito non è in formato numerico");
     return false;
    }
    
   if(!(numerico(mminput)))
    {
     alert ("Verificare il campo '" + ctrlDataDescr + "'\r\nIl mese inserito non è in formato numerico");
     return false;
    } 
    
   if(!(numerico(aaaainput)))
    {
     alert ("Verificare il campo '" + ctrlDataDescr + "'\r\nL`anno inserito non è in formato numerico");
     return false;
    }          
      
   dataverifica =new Date(aaaainput,mminput-1,gginput)

   aaaaoutput=dataverifica.getFullYear().toString(); 
   mmoutput=(dataverifica.getMonth()+1).toString(); 
   ggoutput=dataverifica.getDate().toString();

   if (mmoutput.length<2)
     mmoutput="0"+mmoutput;
    
   if (ggoutput.length<2)
     ggoutput="0"+ggoutput;

   dataoutput=ggoutput+"/"+mmoutput+"/"+aaaaoutput;

   if (datainput!=dataoutput){
     alert("Verificare il campo '" + ctrlDataDescr + "'\r\nLa data inserita non è corretta");
     return false;
   }else{
     return true;}
 }


function formData2QueryString(docForm) {

	var strSubmitContent = '';
	var formElem;
	var strLastElemName = '';
	
	for (i = 0; i < docForm.elements.length; i++) {

		formElem = docForm.elements[i];
		//alert(formElem.name + ' ' + strSubmitContent);
		switch (formElem.type) {
			// Text fields, hidden form elements
			case 'text':
			case 'hidden':
			case 'password':
			case 'textarea':
			case 'select-one':
				strSubmitContent += formElem.name + '=' + escape(htmlEncode(formElem.value)) + '&'
				break;
				
			// Radio buttons
			case 'radio':
				if (formElem.checked) {
					strSubmitContent += formElem.name + '=' + escape(htmlEncode(formElem.value)) + '&'
				}
				break;
				
			// Checkboxes
			case 'checkbox':
				if (formElem.checked) {
					// Continuing multiple, same-name checkboxes
					if (formElem.name == strLastElemName) {
						// Strip of end ampersand if there is one
						if (strSubmitContent.lastIndexOf('&') == strSubmitContent.length-1) {strSubmitContent = strSubmitContent.substr(0, strSubmitContent.length - 1);}
						// Append value as comma-delimited string
						strSubmitContent += ',' + escape(htmlEncode(formElem.value));
					}else{
						strSubmitContent += formElem.name + '=' + escape(htmlEncode(formElem.value));
					}
					strSubmitContent += '&';
					strLastElemName = formElem.name;
				}
				break;
		}

	}
	
	// Remove trailing separator
	strSubmitContent = strSubmitContent.substr(0, strSubmitContent.length - 1);
	return strSubmitContent;
};

function xLeft(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
};

function xRight(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
};

function ChangeStrip(oTabStrip,oTab){
	var docTabStrip = document.getElementById(oTabStrip);
	var childrenTab = docTabStrip.childNodes;
	for(ts=0;ts<childrenTab.length;ts++){
		if(childrenTab[ts].tagName=='DIV'){
			childrenTab[ts].style.display='none';
		}
	}
	document.getElementById(oTab).style.display='block';
};

function NewChangeStrip(oTabStrip,oTab){
	myStrip = document.getElementById(oTabStrip);
	myStripTables = myStrip.getElementsByTagName("table");
	//alert(myStripTables.length);
	for(st=0;st<myStripTables.length;st++){
		// Blocco di gestione delle intestazioni del tabstrip
		if(myStripTables[st].id=="stripHeaderTable"){
			myStripHeaders = myStripTables[st].getElementsByTagName("td");
			for(tdn=0;tdn<myStripHeaders.length;tdn++){
				if(tdn==oTab){myStripHeaders[tdn].className = "tabstrip_pressed";}else{myStripHeaders[tdn].className = "tabstrip_unpressed";};
			};
		};
		// Blocco di gestione dei tabstrip effettivi
		if(myStripTables[st].id=="stripTabTable"){
			myStripHeaders = myStripTables[st].getElementsByTagName("td");
			myStripTd = myStripHeaders[0];
			//myStripDiv = myStripTd.getElementsByTagName("div");
			myStripDiv = myStripTd.childNodes;
			//alert(myStripDiv.length);
			for(tddiv=0;tddiv<myStripDiv.length;tddiv++){
				//alert(myStripDiv[tddiv].tagName + ' -> ' + myStripDiv[tddiv].id);
				if(myStripDiv[tddiv].tagName=='DIV'){
					if(myStripDiv[tddiv].id=='strip'+oTab){myStripDiv[tddiv].style.display = "block";}else{myStripDiv[tddiv].style.display = "none";};
				};
			};
		};
	};
};


function htmlEncode(source, display, tabs)
{
	function special(source)
	{
		var result = '';
		for (var i = 0; i < source.length; i++)
		{
			var c = source.charAt(i);
			if (c < ' ' || c > '~')
			{
				c = '&#' + c.charCodeAt() + ';';
			}
			result += c;
		}
		return result;
	}
	
	function format(source)
	{
		// Use only integer part of tabs, and default to 4
		tabs = (tabs >= 0) ? Math.floor(tabs) : 4;
		
		// split along line breaks
		var lines = source.split(/\r\n|\r|\n/);
		
		// expand tabs
		for (var i = 0; i < lines.length; i++)
		{
			var line = lines[i];
			var newLine = '';
			for (var p = 0; p < line.length; p++)
			{
				var c = line.charAt(p);
				if (c === '\t')
				{
					var spaces = tabs - (newLine.length % tabs);
					for (var s = 0; s < spaces; s++)
					{
						newLine += ' ';
					}
				}
				else
				{
					newLine += c;
				}
			}
			// If a line starts or ends with a space, it evaporates in html
			// unless it's an nbsp.
			newLine = newLine.replace(/(^ )|( $)/g, '&nbsp;');
			lines[i] = newLine;
		}
		
		// re-join lines
		var result = lines.join('<br />');
		
		// break up contiguous blocks of spaces with non-breaking spaces
		result = result.replace(/  /g, ' &nbsp;');
		
		// tada!
		return result;
	}

	var result = source;
	
	// ampersands (&)
	result = result.replace(/\&/g,'&amp;');

	// less-thans (<)
	result = result.replace(/\</g,'&lt;');

	// greater-thans (>)
	result = result.replace(/\>/g,'&gt;');
	
	if (display)
	{
		// format for display
		result = format(result);
	}
	else
	{
		// Replace quotes if it isn't for display,
		// since it's probably going in an html attribute.
		result = result.replace(new RegExp('"','g'), '&quot;');
	}

	// special characters
	result = special(result);
	
	// tada!
	return result;
}


function EmailValidator(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   //alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   //alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    //alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    //alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }

 		 return true					
	}

