
/**********************************************************************
   Validazione di una data passata in un unico campo 
***********************************************************************/
function isDateString(dateStr) {
	var datePat = /^(\d{1,2})(\/)(\d{1,2})(\/)(\d{4})$/;
    var matchArray = dateStr.match(datePat); // is the format ok?
	var TipoDiErrore = '';
    if (matchArray == null) {
		return false;
    }
   day = matchArray[1]; // parse date into variables
   month = matchArray[3]; 
   year = matchArray[5];
    if (month < 1 || month > 12) { // check month range
		return false;
    }
    if (day < 1 || day > 31) {
        return false;
    }
    if ((month==4 || month==6 || month==9 || month==11) && day==31) {
        return false;
    }
    if (month == 2) { // check for february 29th
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29 || (day==29 && !isleap)) {
            return false;
        }
    }
    return true; // date is valid
}

	function isTime (sTime, bSeconds){
		var timePat;
		if (bSeconds == true){
			timePat = /^(\d{1,2})(\.)(\d{2})(\.)(\d{2})$/;			
		}else{
			timePat = /^(\d{1,2})(\.)(\d{2})$/;			
		}
		var matchArray = sTime.match(timePat); // is the format ok?

		if (matchArray == null) {
			return false;
		}
		var intHour, intMinute, intSecond;
		intHour = matchArray[1]; 
		intMinute = matchArray[3]; 
		if (bSeconds == true) { intSecond = matchArray[5] } else { intSecond = 00 };

		var objTempTime = new Date( 0, 0, 1, intHour, intMinute, intSecond );
		return	( ( objTempTime.getHours()   == intHour   ) &&
				  ( objTempTime.getMinutes() == intMinute ) &&
				  ( objTempTime.getSeconds() == intSecond ) ) ? true : false
	}

	function date2ISO(dateStr, bTime, timeStr){ // gg-mm-aaaa
		var datePat = /^(\d{1,2})(-)(\d{1,2})(-)(\d{4})$/;
		var matchArray = dateStr.match(datePat); // is the format ok?
		if (matchArray == null) {
			return false;
		}
	
	   day = matchArray[1]; 
	   month = matchArray[3]; 
	   year = matchArray[5];
	   
	   var date;
	   
	   if (bTime == true) {
		
			var timePat = /^(\d{1,2})(\.)(\d{1,2})$/;	
			
			var matchArray = timeStr.Replace(":",".").match(timePat); // is the format ok?
	
			if (matchArray == null) return false;
			
			var intHour, intMinute;
			intHour = matchArray[1]; 
			intMinute = matchArray[3]; 
			
			if (intHour.toString().length <=1) intHour = '0'+intHour;
			if (intMinute.toString().length <=1) intMinute = '0'+intMinute;

			date = new Date(year+'/'+month+'/'+day+' '+intHour+':'+intMinute+':00');
	   } else {
		    date = new Date(year+'/'+month+'/'+day);
	   }
	   return date;
	}	

/*************************************************************
	Controllo del Codice Fiscale - solo a livello di sintassi
**************************************************************/
	function Trim(stringa)
	   {
	   var reTrim = /\s+$|^\s+/g;
	   return stringa.replace(reTrim,"");
	   }
	function isCodFisc(cod_fisc)
	   {
	   var re = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
	   var Codice = Trim(cod_fisc.toString().toUpperCase());
		return re.test(Codice)
	   }
	   
	   


/*************************************************************

	varie
	
**************************************************************/

	   
	function confirmLink( sMessage, sUrl ) {
		//alert( sMessage+'\n'+sUrl );
		if (confirm(sMessage)) window.navigate(sUrl);
	}

	function ShowHideElement( sObjectId ) {
		var oObj = document.getElementById(sObjectId);
		if (oObj.style.display=='') { oObj.style.display='none' }
		else { oObj.style.display='' }
	}
	
	function todayDate(){
	   var d, s = "";          
	   d = new Date();
	   var giorno, mese, anno;
	   giorno = d.getDate();
	   if (giorno.toString().length <= 1) {
		giorno = '0' + giorno;
	   }  
	   mese = d.getMonth() + 1;
	   if (mese.toString().length <= 1) {
		mese = '0' + mese;
	   }  
	   anno = d.getYear();
	   
	   s += giorno + "/";                   
	   s += mese + "/";            
	   s += anno;                         
	   return(s);                               
	}
	
	function calendarOnClick(obj){
		if (notBlank(obj.value)) {
			if (!isDateString(obj.value)) {
				obj.value = todayDate();
			}
		}
	}

    // sostituisce , con .
	function replaceComma( obj ){
	   var r, re;                    
	   var ss = obj.value;
	   re = new RegExp(",");
	   obj.value = ss.replace(re, ".");    
	   return(obj.value);                   
	}

	// sostituisce 0 con 0.00
	function setZero( obj ){
	   var ss = Trim(obj.value);
	   if ( (isNumber(ss) && parseFloat(ss)==0) || !isNumber(ss) )  ss = "0.00" ;
	   obj.value = ss;
	   return(obj.value);                   
	}

	function moveCheckedValues(obj1, obj2){
		obj2.value = '';
		if (obj1.length != undefined) {
			for (var i=0; i < obj1.length ;i++) {
				if (obj1[i].checked) obj2.value += obj1[i].value + ",";
			}
		} else {
			if (obj1.checked) obj2.value += obj1.value + ",";
		}
	}
	function openPopupStd( url, dimx, dimy, sScroll) {
		dimwidth = dimx;
		dimheight = dimy;
		x = (800 - dimwidth)/2, y = (600 - dimheight)/2;
		if (screen) {
			x = (screen.availWidth - dimwidth)/2;
			y = (screen.availHeight - dimheight)/2;
		}
		finestra1 = window.open(url,'','location=no,status=no,scrollbars='+sScroll+',resizable=no,width='+dimwidth+',height='+dimheight+',screenX='+x+',screenY='+y+',top='+y+',left='+x);
		finestra1.focus();
	}
	
	String.prototype.Replace = function(s1, s2){
		return this.split(s1).join(s2);
	}
	
	function replaceHtmlSpecialChars(str) {
		var sHtml = str;
		return sHtml.Replace("’","'").Replace("“","\"").Replace("”","\"").Replace("–", "-").Replace("€", "&euro;");
		return sHtml;
	}
	
	
	function textCounter(field, countfield, maxlimit) {
		if (field.value.length > maxlimit) { // if too long...trim it!
			field.value = field.value.substring(0, maxlimit);
			// otherwise, update 'characters left' counter
		} else { 
			countfield.value = maxlimit - field.value.length;
		}
	}
	
	function isBoxChecked(obj) {
		if (obj.length != undefined ) {
			for (var i=0; i < obj.length ;i++) {
				if (obj[i].checked) return true;
			}
		} else {
			if (obj.checked) return true;
		}
	}
			  
    function txtValida(oObj1, oObj2, sTrue, sFalse){
	  if (document.getElementById(oObj1).checked == true){
		document.getElementById(oObj2).innerText = sTrue;
	  }else{
		document.getElementById(oObj2).innerText = sFalse;
	  }
    }
	
	//**************************************************************
	// SHOW - HIDE OBJECT
	//**************************************************************
	if(document.layers) { var ns4 = true; }
	if(document.all && !document.getElementById) { var ie4 = true; }
	//ie5 = (document.all && document.getElementById);
	//nn6 = (document.addEventListener);
	
	function showObject(obj) {
		var myObj;
		if (ns4) {
			 myObj = document[obj];
			 myObj.visibility = "show";
		}else if (ie4) {
			 myObj = document.all[obj];
			 myObj.style.visibility = "visible";
		} else {
			document.getElementById(obj).style.display = '';
		}
	}
	
	function hideObject(obj) {
		var myObj;
		if (ns4) {
			 myObj = document[obj];
			 myObj.visibility = "hide";
		} else if (ie4) {
			 myObj = document.all[obj];
			 myObj.style.display = "none";
		} else {
			document.getElementById(obj).style.display = 'none';
		}
	}
	
	function JsShowHideObject(obj){
		var myObj;
		if (ns4) {
			 myObj = document[obj];
			 if (myObj.visibility == "show") { myObj.visibility = "hide" }
			  else { myObj.visibility = "show" }
		}else if (ie4) {
			 myObj = document.all[obj];
			 if (myObj.style.visibility == "visible") { myObj.style.visibility = "none" }
			  else { myObj.style.visibility = "visible" }
		} else {
			myObj = document.getElementById(obj);
			 if (myObj.style.display == '') { myObj.style.display = 'none' }
			  else { myObj.style.display = '' }
		}
	}
	//**************************************************************
	// SHOW - HIDE OBJECT
	//**************************************************************

	function bgAlternate(oObj, sColor){
		oObj.style.backgroundColor=sColor;
	}
	
	// RICHIESTA PREMI
	function enableQuantity(oObj1, oObj2, oForm){
		if (isBoxChecked(oObj1)){
			oObj2.disabled = false;
			oObj2.style.border = '1px solid #ff0000';
		}else{
			oObj2.disabled = true;
			oObj2.style.border = '1px solid #7f9db9';
			oObj2.value = '0';
			sumCheckedValues(oForm);                
		}
	}
	
	function sumCheckedValues(oForm){
		var myVal = 0;
		var myAmount = 0;
		
		var qty = oForm.qty;
		var points = oForm.points;
		var totQty = oForm.totQty;
		var totAmount = oForm.totAmount;
		
		if (qty.length != undefined) {
			for (var i=0; i < qty.length ;i++) {
				if (parseInt(qty[i].value)>0){
					myVal += parseInt(qty[i].value);
					myAmount += parseInt(qty[i].value)*parseFloat(points[i].value);
				}
			}
		} else {
			myVal += parseInt(qty.value);
			myAmount += parseInt(qty.value)*parseFloat(points.value)
		}
		totAmount.value = myAmount;
		totQty.value = myVal;
	}
	
	function qtyOnChange( obj, oForm ){
	   var ss = Trim(obj.value);
	   if ( !isDigits(ss) || ss == "" ) ss = "0" ;
	   obj.value = ss;
	   sumCheckedValues(oForm);                
	}
	
	function enableCheckedValues(oForm){
		
		var product = oForm.product;
		
		if (product.length != undefined) {
			for (var i=0; i < product.length ;i++) {
				var currentProductQty = eval("oForm.product_"+product[i].value+"");
				if (isBoxChecked(product[i])){
					currentProductQty.disabled = false;
					currentProductQty.style.border = '1px solid #ff0000'
				}else{
					currentProductQty.disabled = true;
					currentProductQty.style.border = '1px solid #7f9db9'
				}
			}
		}else{
				if (isBoxChecked(product)){
					eval("oForm.product_"+product.value+"").disabled = false;
					eval("oForm.product_"+product.value+"").style.border = '1px solid #ff0000'
				}else{
					eval("oForm.product_"+product.value+"").disabled = true;
					eval("oForm.product_"+product.value+"").style.border = '1px solid #7f9db9'
				}
		} 
		
	}
			
	function confirmOrder(oForm){
		var sErr = ''; var sEntryErr = 'Errore di Compilazione Ordine:\n';
		sumCheckedValues(oForm); 
		// controllo correttezza ordine
		var myVal = oForm.totQty.value;
		if (parseFloat(myVal)==0) {
				sErr += 'Verificare quantità inserite\n';
		}else{
			if (parseFloat(oForm.totAmount.value) > parseFloat(oForm.persPoints.value)) sErr += 'Punti Disponibili ['+oForm.persPoints.value+']\nInsufficienti per la \nrichiesta premio effettuata ['+oForm.totAmount.value+']';
		}
		if (sErr == ''){
			if (confirm("Vuoi procedere con la richiesta premio?")){
				oForm.submit();
				//alert("go ...");
				return true;
			}
		}else{
			alert(sEntryErr+sErr);
			return false;
		}
	}
	
	// MAGAZZINO NUOVA VERSIONE
	function qtyMagOnChange( obj, oForm ){
	   var ss = Trim(obj.value);
	   if ( !isDigits(ss) || ss == "" ) ss = "0" ;
	   obj.value = ss;
	   sumMagValues(oForm);
	}
	
	function enableDisableXLS(oObj1, oObj2){
		if (parseInt(oObj1)>0){
			oObj2.src = "images/xls.gif";
		}else{
			oObj2.src = "images/xls_off.gif";
		}
	}

	function sumMagValues(oForm){
		var myValMag = 0;
		var myValReq = 0;
		var myValRit = 0;
		var myValDaRit = 0;
		var myValDisp = 0;
		var myValDispNeg = 0;
		var tempDisp;
		
		var qty = oForm.qty;
		var qtyMag = oForm.qtyMag;  
		var qty_req = oForm.qty_req;
		var qty_rit = oForm.qty_rit;
		var qty_darit = oForm.qty_darit;
		
		var qty_disp = oForm.qty_disp;

		var totMag = oForm.totMag;
		var totRic = oForm.totRic;
		var totRit = oForm.totRit;
		var totDaRit = oForm.totDaRit;
		
		var totDisp = oForm.totDisp;
		var totDispNeg = oForm.totDispNeg;
		
		if (qty.length != undefined) {
			for (var i=0; i < qty.length ;i++) {
				myValReq += parseInt(qty_req[i].value);
				myValMag += parseInt(qtyMag[i].value);
				myValRit += parseInt(qty_rit[i].value);
				myValDaRit += parseInt(qty_darit[i].value);
				
				//myValMag += parseInt(qty[i].value);
				//qty_disp[i].value = parseInt(qtyMag[i].value)-( parseInt(qty_rit[i].value) + parseInt(qty_darit[i].value) );
				tempDisp = parseInt(qtyMag[i].value)-( parseInt(qty_rit[i].value) + parseInt(qty_darit[i].value) );
				if (parseInt(tempDisp)>=0){
					myValDisp += tempDisp;
				}else{
					myValDispNeg += tempDisp;
				}
			}
		} else {
			myValReq += parseInt(qty_req.value);
			myValMag += parseInt(qtyMag.value);
			myValRit += parseInt(qty_rit.value);
			myValDaRit += parseInt(qty_darit.value);
			
			//myValMag += parseInt(qty.value);
			tempDisp = parseInt(qtyMag.value)-( parseInt(qty_rit.value) + parseInt(qty_darit.value) );
			if (parseInt(tempDisp)>=0){
				myValDisp += tempDisp;
			}else{
				myValDispNeg += tempDisp;
			}
		}
		totRic.value = myValReq;
		totMag.value = myValMag;
		totRit.value = myValRit;
		totDaRit.value = myValDaRit;
		
		totDisp.value = myValDisp;
		totDispNeg.value = myValDispNeg;
		if (parseInt(myValDispNeg)==0) totDispNeg.style.display = "none";
	}
	
	function openXlsPage(sUrl){
		var xlsPage = window.open(sUrl,"displayWindow","width=600,height=600,left=10,top=10");
		setTimeout(refreshPage, 4000);
	}
	
	function refreshPage(){
		window.location.href = 'adminWarehouse.asp?msg=ok';
	}
	function enableXLS(sArticle, obj1, obj2, obj3, obj4, obj5){
		var qty = obj1.value;      // disponibilità
		var orig_qty = obj2.value; // disp. before modifications
		var qtyDaRit = obj5.value; // NR DA SPEDIRE
		if (parseInt(qty)>0 ){
			if (parseInt(qty)==parseInt(orig_qty)){
				if (parseInt(qtyDaRit)>0){
					document.images[obj4].src="images/xls.gif";
					document.getElementById(obj3).title = "CLICCA PER PROCEDERE CON L'ESTRAZIONE";
					document.getElementById(obj3).href = "javascript:openXlsPage('adminWareHouseXls.asp?article="+sArticle+"')";
				}else{
					document.images[obj4].src="images/xls_off.gif";
					document.getElementById(obj3).title = "IMPOSSIBILE PROCEDERE CON L'ESTRAZIONE\nNESSUN PREMIO RICHIESTO GIACENTE";
					document.getElementById(obj3).href = "#";
				}
			}else{
				document.images[obj4].src="images/xls.gif";
				document.getElementById(obj3).title = "PREGASI AGGIORNARE LE QUANTITA'";
				document.getElementById(obj3).href = "#";
			}
		}else{
			document.images[obj4].src="images/xls_off.gif";
			document.getElementById(obj3).title = "IMPOSSIBILE PROCEDERE CON L'ESTRAZIONE";
			document.getElementById(obj3).href = "#";
		}
	}
/*
	// MAGAZZINO VECCHIA VERSIONE
	function qtyMagOnChange( obj, oForm ){
	   var ss = Trim(obj.value);
	   if ( !isDigits(ss) || ss == "" ) ss = "0" ;
	   obj.value = ss;
	   sumMagValues(oForm);
	}
	
	function enableDisableXLS(oObj1, oObj2){
		if (parseInt(oObj1)>0){
			oObj2.src = "images/xls.gif";
		}else{
			oObj2.src = "images/xls_off.gif";
		}
	}

	function sumMagValues(oForm){
		var myValMag = 0;
		var myValReq = 0;
		var myValDisp = 0;
		var myValRit = 0;
		var myValDaRit = 0;
		
		var qty = oForm.qty;
		var qty_req = oForm.qty_req;
		var qty_rit = oForm.qty_rit;
		var qty_darit = oForm.qty_darit;
		var qty_disp = oForm.qty_disp;

		var totMag = oForm.totMag;
		var totRic = oForm.totRic;
		var totRit = oForm.totRit;
		var totDaRit = oForm.totDaRit;
		var totDisp = oForm.totDisp;
		
		if (qty.length != undefined) {
			for (var i=0; i < qty.length ;i++) {
				//if (parseInt(qty[i].value)>0){
					myValMag += parseInt(qty[i].value);
					myValReq += parseInt(qty_req[i].value);
					myValRit += parseInt(qty_rit[i].value);
					myValDaRit += parseInt(qty_darit[i].value);
					qty_disp[i].value = parseInt(qty[i].value)-parseInt(qty_rit[i].value);
					myValDisp += parseInt(qty[i].value)-parseInt(qty_rit[i].value);
				//}
			}
		} else {
			myValMag += parseInt(qty.value);
			myValReq += parseInt(qty_req.value);
			myValRit += parseInt(qty_rit.value);
			myValDaRit += parseInt(qty_darit.value);
			myValDisp += parseInt(qty.value)-parseInt(qty_req.value);
		}
		totMag.value = myValMag;
		totRic.value = myValReq;
		totRit.value = myValRit;
		totDaRit.value = myValDaRit;
		totDisp.value = myValDisp;
	}
	
	function openXlsPage(sUrl){
		var xlsPage = window.open(sUrl,"displayWindow","width=600,height=600,left=10,top=10");
		setTimeout(refreshPage, 4000);
	}
	
	function refreshPage(){
		window.location.href = 'adminWarehouse.asp?msg=ok';
	}
	function enableXLS(sArticle, obj1, obj2, obj3, obj4, obj5){
		var qty = obj1.value;
		var orig_qty = obj2.value;
		var qtyDaRit = obj5.value;
		if (parseInt(qty)>0 ){
			if (parseInt(qty)==parseInt(orig_qty)){
				if (parseInt(qtyDaRit)>0){
					document.images[obj4].src="images/xls.gif";
					document.getElementById(obj3).title = "CLICCA PER PROCEDERE CON L'ESTRAZIONE";
					document.getElementById(obj3).href = "javascript:openXlsPage('adminWareHouseXls.asp?article="+sArticle+"')";
				}else{
					document.images[obj4].src="images/xls_off.gif";
					document.getElementById(obj3).title = "IMPOSSIBILE PROCEDERE CON L'ESTRAZIONE\nNESSUN PREMIO RICHIESTO GIACENTE";
					document.getElementById(obj3).href = "#";
				}
			}else{
				document.images[obj4].src="images/xls.gif";
				document.getElementById(obj3).title = "PREGASI AGGIORNARE LE QUANTITA'";
				document.getElementById(obj3).href = "#";
			}
		}else{
			document.images[obj4].src="images/xls_off.gif";
			document.getElementById(obj3).title = "IMPOSSIBILE PROCEDERE CON L'ESTRAZIONE";
			document.getElementById(obj3).href = "#";
		}
	}
*/
