function hex_sha1(s){return binb2hex(core_sha1(str2binb(s),s.length * chrsz));}
/*
 * Convert an array of big-endian words to a hex string.
 */
function binb2hex(binarray)
{
  var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  var str = "";
  for(var i = 0; i < binarray.length * 4; i++)
  {
    str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) +
           hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8  )) & 0xF);
  }
  return str;
}

/*
 * Calculate the SHA-1 of an array of big-endian words, and a bit length
 */
function core_sha1(x, len)
{
  /* append padding */
  x[len >> 5] |= 0x80 << (24 - len % 32);
  x[((len + 64 >> 9) << 4) + 15] = len;

  var w = Array(80);
  var a =  1732584193;
  var b = -271733879;
  var c = -1732584194;
  var d =  271733878;
  var e = -1009589776;

  for(var i = 0; i < x.length; i += 16)
  {
    var olda = a;
    var oldb = b;
    var oldc = c;
    var oldd = d;
    var olde = e;

    for(var j = 0; j < 80; j++)
    {
      if(j < 16) w[j] = x[i + j];
		else{ 
			var temp=w[j-3] ^ w[j-8];
			temp=temp ^ w[j-14];
			temp=temp ^ w[j-16];
			w[j] = rol(temp, 1);
		}
      var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)),
                       safe_add(safe_add(e, w[j]), sha1_kt(j)));
      e = d;
      d = c;
      c = rol(b, 30);
      b = a;
      a = t;
    }

    a = safe_add(a, olda);
    b = safe_add(b, oldb);
    c = safe_add(c, oldc);
    d = safe_add(d, oldd);
    e = safe_add(e, olde);
  }
  return Array(a, b, c, d, e);

}
/*
 * Bitwise rotate a 32-bit number to the left.
 */
 
function rol(num, cnt)
{
  return (num << cnt) | (num >>> (32 - cnt));
}

/*
 * Add integers, wrapping at 2^32. This uses 16-bit operations internally
 * to work around bugs in some JS interpreters.
 */
function safe_add(x, y)
{
  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  return (msw << 16) | (lsw & 0xFFFF);
}

function init(){
		var x,y;
		if (self.innerHeight) // all except Explorer
		{
			x = self.innerWidth;
			y = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight)
			// Explorer 6 Strict Mode
		{
			x = document.documentElement.clientWidth;
			y = document.documentElement.clientHeight;
		}
		else if (document.body) // other Explorers
		{
			x = document.body.clientWidth;
			y = document.body.clientHeight;
		}

		$('waiting').style.height = y+'px';
		var ltop= (y-$('waiting-label').style.height)/2
		$('waiting-label').style.top = ltop+'px';
	}


/* comunicazione con il server */
function LoadSnippet(id,output,redirect,extrasnippet,codice) {
	var start = new Date();
	returnState = 0;
	var page = 'do';
	var data = '';
	var res=""
	document.getElementById('snippet').innerHTML = id;
	document.getElementById('timestamp').innerHTML = start.getTime();
	var args = new Array (['snippet','id_website','subsito','var1','var2','var3','var4','var5','var6','lang','lingua','timestamp','session_id','page_path','page_name','user_id','C_codice'],[output],'POST','NO_CACHE');
	for( var i=0; i<args[0].length;i++ ) { 
		if (data == '') data += args[0][i]+'='+document.getElementById(args[0][i]).innerHTML
		else data += '&'+args[0][i]+'='+encodeURIComponent(document.getElementById(args[0][i]).innerHTML)
	}
	
	var urlo = '/'+page+'.ajx';
	Mask.show(output);
	new Ajax.Request(urlo, {
	  method: 'post',
	  postBody: data,
	  onUninitialized: function(transport) {
	  	Mask.show(output);
	  },
	  onComplete: function(transport) {
			document.getElementById(output).innerHTML = transport.responseText;
			res = transport.responseText;
	  	Mask.hide(output);
	  	 
	       if (typeof codice != "undefined") {document.getElementById("C_codice").innerHTML = codice;}
	       //alert('---'+document.getElementById("komess")+'---');
	  	if (typeof extrasnippet != "undefined" && extrasnippet != "0" && document.getElementById("komess") == null) {
				//alert(extrasnippet);
				var extrasnip = extrasnippet.split(";");
				if (typeof extrasnip[1] != "undefined") {output = extrasnip[1]}
				if (typeof extrasnip[2] != "undefined") {document.getElementById("var1").innerHTML = extrasnip[2];}
				//alert(extrasnip[0]+'aaa'+output);
	  		LoadSnippet(extrasnip[0],output);
	  	}
	  	if (typeof redirect != "undefined") {
	  		if ((redirect.length) && document.getElementById("komess") == null) {
					var pat=new RegExp('<!--(.*?)-->',"gmi");
					res = res.replace(pat,'')
					redirect = redirect.replace('snippetRet',res)
					setTimeout ( "document.location = '" + redirect + "'", 1000 );
				}
	  	}
	  	if (typeof func != "undefined")
	  	return transport.responseText;
	  }
	});
}
function LoadPage(pagina,urlo,output,func) {
	Mask.show(output);
	var url = pagina+'?'+urlo;
	new Ajax.Request(url, {
  	method: 'get',
	  onUninitialized: function(transport) {
	  	Mask.show(output);
	  },
	  onComplete: function(transport) {
			document.getElementById(output).innerHTML = transport.responseText;
	  	Mask.hide(output);
	  	document.getElementById(output).style.display = 'block'
	  	if (typeof func != "undefined") {setTimeout ( func, 0 )}
	  }
	});
}
function send2loadsnippet(snippet,output,var1,var2,var3,var4,var5,var6) {
//	obj.disabled = true;
	document.getElementById("var1").innerHTML = var1;
	document.getElementById("var2").innerHTML = var2;
	document.getElementById("var3").innerHTML = var3;
	document.getElementById("var4").innerHTML = var4;
	document.getElementById("var5").innerHTML = var5;
	document.getElementById("var6").innerHTML = var6;
	var result = LoadSnippet(snippet,output);
}
function openclose(obj) {
	if (document.getElementById(obj).style.display == 'none') document.getElementById(obj).style.display = 'block'
	else document.getElementById(obj).style.display = 'none'
}
function docheckout(obj) {
//	obj.disabled = true;
	var x=document.getElementsByName("xped");
	var f = 0;
	for( var i=0; i<x.length;i++ ) {if (x[i].checked) f=x[i].value}
	if (!f) {alert ('[[PleaseSelectShipmentMethod]]');return false}
	var pat=new RegExp('<!--(.*?)-->',"gmi");
	f = f.replace(pat,'')
	document.getElementById("var1").innerHTML = f;
	document.getElementById("var3").innerHTML = document.getElementById("totale").innerHTML;
	LoadSnippet(682,"checkoutres","/services/payment.php?snippetRet");
}

function LoadSnippetNoDiv(id,output,var1) {
	var args = new Array (['id','id_website','subsito','var1'],[output],'GET');
	args[0][0] = '&snippet=' + id; 
	args[0][1] = '&id_website=' + id_website; 
	args[0][2] = '&subsito=' + escape(subsito); 
	args[0][3] = '&var1=' + escape(var1); 
	var urlp = args[0][0]+args[0][1]+args[0][2]+args[0][3];
	var l = ajax.length;
	ajax[l]= new pjx(args,"LoadSnippet",args[2]);
	ajax[l].url = '/do.ajax?' + urlp;
	document.getElementById(output).innerHTML = "attendere ... caricamento dati in corso";
	ajax[l].send2perl();
	/*$('data').style.display = "block";*/
}
function doSave(){
	document.getElementById('var1').innerHTML = FCK.GetXHTML();
	var qry = document.getElementById('query').innerHTML;
	document.getElementById('var2').innerHTML = qry;
	LoadSnippet(633,'updater');
	setTimeout("document.getElementById('confirm').style.display='none';",5000);
	return false
}

function chiudiForm() {
	$('data').style.display = "none";
}

/**
 Shows a mask and a spinner over the element with the specified id
*/
/**
 Inspired by the Veil component by Igor Vaynberg in wicketstuff-minis
 http://wicketstuff.org/confluence/display/STUFFWIKI/wicketstuff-minis
 wicketstuff-minis is released under the Apache 2 License
 http://apache.org/licenses/LICENSE-2.0.html 
*/
Mask = { };
 
Mask.show = function(targetId)
{
  var target=document.getElementById(targetId);
  var mask=document.createElement("div");
  mask.innerHTML="&nbsp;";
  mask.className="wicket-mask";
  mask.style.cursor="not-allowed";
  mask.style.zIndex="5000";
  mask.id="wicket_mask_"+targetId;
  target.appendChild(mask);
  Mask.offsetMask(mask);

  var spinner=document.createElement("div");
  spinner.innerHTML="&nbsp;";
  spinner.className="wicket-spinner";
  spinner.style.cursor="not-allowed";
  spinner.style.zIndex="6000";
  spinner.id="wicket_spinner_"+targetId;
  target.appendChild(spinner);
  Mask.centerSpinner(spinner);
}

/**
 Hides the mask and spinner
*/
Mask.hide = function(targetId)
{
  var target=document.getElementById(targetId);
  var mask=document.getElementById("wicket_mask_"+targetId);
  if (mask!=null) {
   mask.style.display="none";
   target.removeChild(mask);
  }
  var spinner=document.getElementById("wicket_spinner_"+targetId);
  if (spinner!=null) {
   spinner.style.display="none";
   target.removeChild(spinner);
  }
}

/**
 * Places the spinner at the center of the viewport.
 */ 
Mask.centerSpinner = function(spinner)
{
  var width = document.body.clientWidth;
  var height = document.body.clientHeight;
  
  var offsetX =   document.body.scrollLeft;
  var offsetY =  document.body.scrollTop;
  
  var left = (width / 2) - 24 + offsetX;
  var top = (height / 2) - 24 + offsetY;
  
  spinner.style.left = left + "px";
  spinner.style.top = top + "px";
}
 
/**
 * Offsets the mask to the scroll position.
 */ 
Mask.offsetMask = function(mask)
{
  var offsetX =   document.body.scrollLeft;
  var offsetY =  document.body.scrollTop;
  
  mask.style.left = offsetX + "px";
  mask.style.top = offsetY + "px";
}
/* number format */
function NumberFormat(num, inputDecimal) {
	this.VERSION = 'Number Format v1.5.4';
	this.COMMA = ',';
	this.PERIOD = '.';
	this.DASH = '-';
	this.LEFT_PAREN = '(';
	this.RIGHT_PAREN = ')';
	this.LEFT_OUTSIDE = 0;
	this.LEFT_INSIDE = 1;
	this.RIGHT_INSIDE = 2;
	this.RIGHT_OUTSIDE = 3;
	this.LEFT_DASH = 0;
	this.RIGHT_DASH = 1;
	this.PARENTHESIS = 2;
	this.NO_ROUNDING = -1
	this.num;
	this.numOriginal;
	this.hasSeparators = false;
	this.separatorValue;
	this.inputDecimalValue;
	this.decimalValue;
	this.negativeFormat;
	this.negativeRed;
	this.hasCurrency;
	this.currencyPosition;
	this.currencyValue;
	this.places;
	this.roundToPlaces;
	this.truncate;
	this.setNumber = setNumberNF;
	this.toUnformatted = toUnformattedNF;
	this.setInputDecimal = setInputDecimalNF;
	this.setSeparators = setSeparatorsNF;
	this.setCommas = setCommasNF;
	this.setNegativeFormat = setNegativeFormatNF;
	this.setNegativeRed = setNegativeRedNF;
	this.setCurrency = setCurrencyNF;
	this.setCurrencyPrefix = setCurrencyPrefixNF;
	this.setCurrencyValue = setCurrencyValueNF;
	this.setCurrencyPosition = setCurrencyPositionNF;
	this.setPlaces = setPlacesNF;
	this.toFormatted = toFormattedNF;
	this.toPercentage = toPercentageNF;
	this.getOriginal = getOriginalNF;
	this.moveDecimalRight = moveDecimalRightNF;
	this.moveDecimalLeft = moveDecimalLeftNF;
	this.getRounded = getRoundedNF;
	this.preserveZeros = preserveZerosNF;
	this.justNumber = justNumberNF;
	this.expandExponential = expandExponentialNF;
	this.getZeros = getZerosNF;
	this.moveDecimalAsString = moveDecimalAsStringNF;
	this.moveDecimal = moveDecimalNF;
	this.addSeparators = addSeparatorsNF;
	if (inputDecimal == null) {
		this.setNumber(num, this.PERIOD);
	} else {
		this.setNumber(num, inputDecimal);
	}
	this.setCommas(true);
	this.setNegativeFormat(this.LEFT_DASH);
	this.setNegativeRed(false);
	this.setCurrency(false);
	this.setCurrencyPrefix('$');
	this.setPlaces(2);
}
function setInputDecimalNF(val){
	this.inputDecimalValue = val;
}
function setNumberNF(num, inputDecimal){
	if (inputDecimal != null) {
		this.setInputDecimal(inputDecimal);
	}
	this.numOriginal = num;
	this.num = this.justNumber(num);
}
function toUnformattedNF(){
	return (this.num);
}
function getOriginalNF(){
	return (this.numOriginal);
}
function setNegativeFormatNF(format){
	this.negativeFormat = format;
}
function setNegativeRedNF(isRed){
	this.negativeRed = isRed;
}
function setSeparatorsNF(isC, separator, decimal){
	this.hasSeparators = isC;
	if (separator == null) separator = this.COMMA;
	if (decimal == null) decimal = this.PERIOD;
	if (separator == decimal) {
		this.decimalValue = (decimal == this.PERIOD) ? this.COMMA : this.PERIOD;
	} else {
		this.decimalValue = decimal;
	}
	this.separatorValue = separator;
}
function setCommasNF(isC){
	this.setSeparators(isC, this.COMMA, this.PERIOD);
}
function setCurrencyNF(isC){
	this.hasCurrency = isC;
}
function setCurrencyValueNF(val){
	this.currencyValue = val;
}
function setCurrencyPrefixNF(cp){
	this.setCurrencyValue(cp);
	this.setCurrencyPosition(this.LEFT_OUTSIDE);
}
function setCurrencyPositionNF(cp){
	this.currencyPosition = cp
}
function setPlacesNF(p, tr){
	this.roundToPlaces = !(p == this.NO_ROUNDING);
	this.truncate = (tr != null && tr);
	this.places = (p < 0) ? 0 : p;
}
function addSeparatorsNF(nStr, inD, outD, sep){
	nStr += '';
	var dpos = nStr.indexOf(inD);
	var nStrEnd = '';
	if (dpos != -1) {
		nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
		nStr = nStr.substring(0, dpos);
	}
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(nStr)) {
		nStr = nStr.replace(rgx, '$1' + sep + '$2');
	}
	return nStr + nStrEnd;
}
function toFormattedNF(){
	var pos;
	var nNum = this.num;
	var nStr;
	var splitString = new Array(2);
	if (this.roundToPlaces) {
		nNum = this.getRounded(nNum);
		nStr = this.preserveZeros(Math.abs(nNum));
	} else {
		nStr = this.expandExponential(Math.abs(nNum));
	}
	if (this.hasSeparators) {
		nStr = this.addSeparators(nStr, this.PERIOD, this.decimalValue, this.separatorValue);
	} else {
		nStr = nStr.replace(new RegExp('\\' + this.PERIOD), this.decimalValue);
	}
	var c0 = '';
	var n0 = '';
	var c1 = '';
	var n1 = '';
	var n2 = '';
	var c2 = '';
	var n3 = '';
	var c3 = '';
	var negSignL = (this.negativeFormat == this.PARENTHESIS) ? this.LEFT_PAREN : this.DASH;
	var negSignR = (this.negativeFormat == this.PARENTHESIS) ? this.RIGHT_PAREN : this.DASH;
	if (this.currencyPosition == this.LEFT_OUTSIDE) {
		if (nNum < 0) {
			if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n1 = negSignL;
			if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n2 = negSignR;
		}
		if (this.hasCurrency) c0 = this.currencyValue;
	} else if (this.currencyPosition == this.LEFT_INSIDE) {
		if (nNum < 0) {
			if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n0 = negSignL;
			if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n3 = negSignR;
		}
		if (this.hasCurrency) c1 = this.currencyValue;
	}
	else if (this.currencyPosition == this.RIGHT_INSIDE) {
		if (nNum < 0) {
			if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n0 = negSignL;
			if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n3 = negSignR;
		}
		if (this.hasCurrency) c2 = this.currencyValue;
	}
	else if (this.currencyPosition == this.RIGHT_OUTSIDE) {
		if (nNum < 0) {
			if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n1 = negSignL;
			if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n2 = negSignR;
		}
		if (this.hasCurrency) c3 = this.currencyValue;
	}
	nStr = c0 + n0 + c1 + n1 + nStr + n2 + c2 + n3 + c3;
	if (this.negativeRed && nNum < 0) {
		nStr = '<font color="red">' + nStr + '</font>';
	}
	return (nStr);
}
function toPercentageNF(){
	nNum = this.num * 100;
	nNum = this.getRounded(nNum);
	return nNum + '%';
}
function getZerosNF(places){
	var extraZ = '';
	var i;
	for (i=0; i<places; i++) {
		extraZ += '0';
	}
	return extraZ;
}
function expandExponentialNF(origVal){
	if (isNaN(origVal)) return origVal;
	var newVal = parseFloat(origVal) + '';
	var eLoc = newVal.toLowerCase().indexOf('e');
	if (eLoc != -1) {
		var plusLoc = newVal.toLowerCase().indexOf('+');
		var negLoc = newVal.toLowerCase().indexOf('-', eLoc);
		var justNumber = newVal.substring(0, eLoc);
		if (negLoc != -1) {
			var places = newVal.substring(negLoc + 1, newVal.length);
			justNumber = this.moveDecimalAsString(justNumber, true, parseInt(places));
		} else {
			if (plusLoc == -1) plusLoc = eLoc;
			var places = newVal.substring(plusLoc + 1, newVal.length);
			justNumber = this.moveDecimalAsString(justNumber, false, parseInt(places));
		}
		newVal = justNumber;
	}
	return newVal;
}
function moveDecimalRightNF(val, places){
	var newVal = '';
	if (places == null) {
		newVal = this.moveDecimal(val, false);
	} else {
		newVal = this.moveDecimal(val, false, places);
	}
	return newVal;
}
function moveDecimalLeftNF(val, places){
	var newVal = '';
	if (places == null) {
		newVal = this.moveDecimal(val, true);
	} else {
		newVal = this.moveDecimal(val, true, places);
	}
	return newVal;
}
function moveDecimalAsStringNF(val, left, places){
	var spaces = (arguments.length < 3) ? this.places : places;
	if (spaces <= 0) return val;
	var newVal = val + '';
	var extraZ = this.getZeros(spaces);
	var re1 = new RegExp('([0-9.]+)');
	if (left) {
		newVal = newVal.replace(re1, extraZ + '$1');
		var re2 = new RegExp('(-?)([0-9]*)([0-9]{' + spaces + '})(\\.?)');
		newVal = newVal.replace(re2, '$1$2.$3');
	} else {
		var reArray = re1.exec(newVal);
		if (reArray != null) {
			newVal = newVal.substring(0,reArray.index) + reArray[1] + extraZ + newVal.substring(reArray.index + reArray[0].length);
		}
		var re2 = new RegExp('(-?)([0-9]*)(\\.?)([0-9]{' + spaces + '})');
		newVal = newVal.replace(re2, '$1$2$4.');
	}
	newVal = newVal.replace(/\.$/, '');
	return newVal;
}
function moveDecimalNF(val, left, places){
	var newVal = '';
	if (places == null) {
		newVal = this.moveDecimalAsString(val, left);
	} else {
		newVal = this.moveDecimalAsString(val, left, places);
	}
	return parseFloat(newVal);
}
function getRoundedNF(val){
	val = this.moveDecimalRight(val);
	if (this.truncate) {
		val = val >= 0 ? Math.floor(val) : Math.ceil(val);
	} else {
		val = Math.round(val);
	}
	val = this.moveDecimalLeft(val);
	return val;
}
function preserveZerosNF(val){
	var i;
	val = this.expandExponential(val);
	if (this.places <= 0) return val;
	var decimalPos = val.indexOf('.');
	if (decimalPos == -1) {
		val += '.';
		for (i=0; i<this.places; i++) {
			val += '0';
		}
	} else {
		var actualDecimals = (val.length - 1) - decimalPos;
		var difference = this.places - actualDecimals;
		for (i=0; i<difference; i++) {
			val += '0';
		}
	}
	return val;
}
function justNumberNF(val){
	newVal = val + '';
	var isPercentage = false;
	if (newVal.indexOf('%') != -1) {
		newVal = newVal.replace(/\%/g, '');
		isPercentage = true;
	}
	var re = new RegExp('[^\\' + this.inputDecimalValue + '\\d\\-\\+\\(\\)eE]', 'g');
	newVal = newVal.replace(re, '');
	var tempRe = new RegExp('[' + this.inputDecimalValue + ']', 'g');
	var treArray = tempRe.exec(newVal);
	if (treArray != null) {
		var tempRight = newVal.substring(treArray.index + treArray[0].length);
		newVal = newVal.substring(0,treArray.index) + this.PERIOD + tempRight.replace(tempRe, '');
	}
	if (newVal.charAt(newVal.length - 1) == this.DASH ) {
		newVal = newVal.substring(0, newVal.length - 1);
		newVal = '-' + newVal;
	}
	else if (newVal.charAt(0) == this.LEFT_PAREN && newVal.charAt(newVal.length - 1) == this.RIGHT_PAREN) {
		newVal = newVal.substring(1, newVal.length - 1);
		newVal = '-' + newVal;
	}
	newVal = parseFloat(newVal);
	if (!isFinite(newVal)) {
		newVal = 0;
	}
	if (isPercentage) {
		newVal = this.moveDecimalLeft(newVal, 2);
	}
	return newVal;
}

/* proc tolte da catalogo.pm */

function salva_dati(plugin_save,id_template,all_fields1,campi_obbligatori1,etichette1,tipi1,pk_id,all_ids_desc1,all_ids_memo1,js_password_main,js_password_check,js_email,unicof,redirect,extrasnippet,useupload,id_ws,codice,tab_type,divrisposta) {
	if (js_password_main) {var z = ValidaPassword(js_password_main,js_password_check);if (z == false) {alert ("[[alert_password1]]");return false;}}
	if (js_password_main) {
		if(document.getElementById('stub').value.length==0) {alert('nopass');return false}
	}
	if (js_email) {var z = ValidaEmail(js_email); if (js_email){if (z == false) {alert ("[[alert_mail]]");return false;}}}
	if (unicof) {document.getElementById('var6').innerHTML = unicof+';'+document.getElementById('field-'+unicof).value}
	var all_fields = all_fields1.split(",");
	var campi_obbligatori = campi_obbligatori1.split(",");
	var etichette = etichette1.split("!!!");
	var tipi = tipi1.split(",");
	var all_ids_memo = "'"+all_ids_memo1.split(",").join("','")+"'";
	var all_ids_desc = "'"+all_ids_desc1.split(",").join("','")+"'";
	var allv_desc = "";
	var allv_memo = "";
	for (i=0;i<all_fields.length;i++) {
		var valore='';
		var f = document.getElementById(all_fields[i]);
		if (!f) {
			if (tipi[i] == 3 || tipi[i] == 5) {
				if (!allv_memo) allv_memo = "''";
				else allv_memo = allv_memo+",''";
			}
			else {
				if (!allv_desc) allv_desc = "''";
				else allv_desc = allv_desc+",''";
			}
		}
		else {
			if (tipi[i] == 4) {
				if(f.checked) valore='1';
				else valore='';
			}
			else if (tipi[i] == 8 || tipi[i] == 2) {
				try {
					for (j=0; j<f.options.length; j++) {
						if (f.options[j].selected) {
							if (valore.length) {valore = valore + ',' + f.options[j].value} else {valore = f.options[j].value}
						}
					}
				}
				catch(err) {valore = ''}
			}
			else if (tipi[i] == 5) try {valore = FCK.GetXHTML()} catch(err) {valore = f.innerHTML}
			else {valore = f.value}
			if (!valore) {valore=''}
			if (tipi[i] == 3 || tipi[i] == 10) {valore = valore.replace(/\n/g, "<br />");}
			if (campi_obbligatori[i] == 1 && valore == '') {
				alert ('campo obbligatorio: '+ etichette[i])
				f.focus()
				return false
			}
			if (tipi[i] == 3 || tipi[i] == 5) {
				if (!allv_memo) allv_memo = "'"+valore.replace(/'/g,"''")+"'";
				else allv_memo = allv_memo+",'"+valore.replace(/'/g,"''")+"'";
			}
			else {
				if (!allv_desc) allv_desc = "'"+valore.replace(/'/g,"''")+"'";
				else allv_desc = allv_desc+",'"+valore.replace(/'/g,"''")+"'";
			}
		}
	}
	document.getElementById('var2').innerHTML = document.getElementById('field-'+pk_id).value;
	document.getElementById('var4').innerHTML = id_template;
	document.getElementById('var1').innerHTML = all_ids_desc+';'+allv_desc;
	document.getElementById('var3').innerHTML = all_ids_memo+';'+allv_memo;
	document.getElementById('var5').innerHTML = tab_type;
	if (extrasnippet && js_email) {extrasnippet = extrasnippet+";okmess;"+document.getElementById('field-'+js_email).value;}
	if (divrisposta.lenght>0){risposta=divrisposta}
	else{risposta='risposta1'}
	LoadSnippet(90,risposta,redirect,extrasnippet,codice);
}


function inserisci_elemlista(n,id,dellist_js) {
	z = prompt ('[[PromptValue]]')
	if (z) {
		document.getElementById('var1').innerHTML = z
		document.getElementById('var2').innerHTML = n
		document.getElementById('var3').innerHTML = id
		document.getElementById('var4').innerHTML = dellist_js
		document.getElementById('var5').innerHTML = document.getElementById('id_template').value
		var output = "span-"+id
		LoadSnippet(88,output)
	}
}
function inserisci_elemlistab(n,id,label,link,temp_link,dellist_js) {
	z = prompt ('[[PromptValue]]')
	if (z) {
		document.getElementById('var1').innerHTML = z
		document.getElementById('var2').innerHTML = n
		document.getElementById('var3').innerHTML = id
		document.getElementById('var5').innerHTML = link
		document.getElementById('var6').innerHTML = temp_link
		document.getElementById('var4').innerHTML = dellist_js
		var output = "div-"+id
		LoadSnippet(643,output)
	}
}
function elimina_elemlista(n,id,dellist_js) {
	z = confirm ('[[PromptDeleteValue]]')
	if (z) {
		var x=document.getElementById("listbox-"+id)
		document.getElementById('var1').innerHTML = x.options[x.selectedIndex].value
		document.getElementById('var2').innerHTML = n
		document.getElementById('var3').innerHTML = id
		document.getElementById('var4').innerHTML = dellist_js
		document.getElementById('var5').innerHTML = document.getElementById('id_template').value
		var output = "span-"+id
		LoadSnippet(89,output)
	}
}
				
function ValidaPassword(js_password_main,js_password_check)	{
	if (document.getElementById('stub').value != document.getElementById('field-'+js_password_check).value ) {return false}
	document.getElementById('field-'+js_password_main).value  = hex_sha1(document.getElementById('stub').value)
}
function ValidaEmail(js_email) {
	var indirizzo = document.getElementById('field-'+js_email).value
	if (window.RegExp) {
		var nonvalido = "(@.*@)|(\\\\.\\\\.)|(@\\\\.)|(\\\\.@)|(^\\\\.)";
		var valido = "^[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,})$";
		var regnv = new RegExp(nonvalido);
		var regv = new RegExp(valido);
		if (!regnv.test(indirizzo) && regv.test(indirizzo)) return true; return false;
	}
	else {
		if(indirizzo.indexOf("@") >= 0) return true; return false;
	}
}

/* per vault */
var vault = null;
function doOnLoad() {
	preLoadImages();
	vault = new dhtmlXVaultObject();
	vault.setImagePath("/images/dhtmlx/");
	vault.setServerHandlers("/cgi-bin/dhtmlxVault/UploadHandler.cgi", "/cgi-bin/dhtmlxVault/GetInfoHandler.cgi", "/cgi-bin/dhtmlxVault/GetIdHandler.cgi");
	vault.create("vault1");
}

function preLoadImages(){
	var imSrcAr = new Array("btn_add.gif","btn_clean.gif","btn_upload.gif","ico_file.png","ico_image.png","ico_sound.png","ico_video.png","ico_zip.png","pb_back.gif","pb_demoUload.gif","pb_empty.gif");
	var imAr = new Array(0);
	for(var i=0;i<imSrcAr.length;i++){
		imAr[imAr.length] = new Image();
		imAr[imAr.length-1].src = "/images/dhtmlx/"+imSrcAr[i];
	}
}
function LoadSon(valore,id_site,list_field,list_template,son_link,label,obb) {
		document.getElementById('var1').innerHTML = id_site
		document.getElementById('var2').innerHTML = valore
		document.getElementById('var3').innerHTML = list_field
		document.getElementById('var4').innerHTML = list_template
		document.getElementById('var5').innerHTML = "s;"+son_link+";"+obb;
		document.getElementById('var6').innerHTML = label
		output = "div-"+id_site;
		LoadSnippet(817,output)
}
function LoadDeps(valore,id_site,condizioni,sons,sons_type,label,values) {
	document.getElementById('var4').innerHTML = id_site
	document.getElementById('var2').innerHTML = valore
	var acond = condizioni.split(";;");
	var avals = values.split(";;");
	found = 0;
	for( var i=0; i<acond.length;i++ ) {
		var acond2 = acond[i].split("::");
		if (acond2[1] == '<') {exitv = 3;if(avals[i]<valore){condition_res=1}else{condition_res=0}}
		else if (acond2[1] == '>') {exitv = 4;if(avals[i]>valore){condition_res=1}else{condition_res=0}}
		else if (acond2[1] == '=') {exitv = 5;if(avals[i]==valore){condition_res=1}else{condition_res=0}}
		else if (acond2[1] == '!=') {exitv = 6;if(avals[i]!=valore){condition_res=1}else{condition_res=0}}
		if (condition_res) {
			found = 1;
		}
	}
	var asons = sons.split(",");
	var asons_type = sons_type.split(",");
	var alabel = label.split(",");
	for( var j=0; j<asons.length;j++ ) {
		document.getElementById('var3').innerHTML = condizioni;
		document.getElementById('var1').innerHTML = asons[j];
		document.getElementById('var5').innerHTML = asons_type[j];
		document.getElementById('var6').innerHTML = alabel[j];
		output = "div-"+asons[j];
		if (found == 1) {LoadSnippet(817,output)} else {document.getElementById(output).innerHTML = ""}
	}			
}
function IsNumeric(input){
    var RE = /^-{0,1}\d*\.{0,1}\d+$/;
    return (RE.test(input));
}
/* !!!!! */
<!-- translate - -->