function trim(inString) {
  return rtrim(ltrim(inString));
}

// lasciate per compatibilita'
function trimString(inString) {
  return trim(inString);
}

function rtrim(inString) {
	var outString;
	var endPos;
	var ch;

  // where do we end?
	endPos = inString.length - 1;
	ch = inString.charAt(endPos);
	while ((ch == " ") || (ch == "\b") || (ch == "\f") ||
	       (ch == "\n") || (ch == "\r") || (ch == "\n") ||
	       (ch == "\t"))
  {
		endPos--;
		ch = inString.charAt(endPos);
	}

	// get the string
	outString = inString.substring(0, endPos + 1);

	return outString;
}

function ltrim(inString) {
	var outString;
	var startPos;
	var ch;

	// where do we start?  \t\n\r
	startPos = 0;
	ch = inString.charAt(startPos);
	while ((ch == " ") || (ch == "\b") || (ch == "\f") ||
	       (ch == "\n") || (ch == "\r") || (ch == "\n") ||
	       (ch == "\t"))
  {
		startPos++;
		ch = inString.charAt(startPos);
	}

	// get the string
	outString = inString.substring(startPos, inString.length);

	return outString;
}

function indirizzoEmailValido(indirizzo)
{
  if (window.RegExp)
  {
    var nonvalido = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
    var valido = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
    var regnv = new RegExp(nonvalido);
    var regv = new RegExp(valido);
    if (!regnv.test(indirizzo) && regv.test(indirizzo))
      return true;
  }
  else
  {
    if(indirizzo.indexOf("@") >= 0)
      return true;
  }

  return false;
}

function isMoney(obj)
{
   var valido = "[0-9]";
   var regv = new RegExp(valido);
   if (regv.test(obj))
      return true;

  return false;
}

function isCampoNumerico(obj, str)
{
  if (obj.value == "")
  {
    alert("Il campo "+ str + " deve essere valorizzato.");
    obj.focus();
    return false;
  }
  else  if (isNaN(obj.value))
  {
    alert("Il campo "+ str + " deve contenere solo numerici.");
    obj.focus();
    return false;
  }
  else  if (obj.value == 0)
  {
    alert("Il campo "+ str + " deve contenere un valore maggiore di zero.");
    obj.focus();
    return false;
  }

  return true;
}

function isPositivo(obj, str)
{
  if (obj.value < 0)
  {
    alert("Il campo "+ str + " deve contenere un valore maggiore di zero.");
    obj.focus();
    return false;
  }
}

function isIntero(obj, str)
{
  if (obj.value.indexOf('.') != -1)
  {
    alert("Il campo "+ str + " deve contenere solo numerici interi.");
    obj.focus();
    return false;
  }

  return true;
}

function VerificaData(data1, sep)
{
  if (data1.value == '')
    return false;

  iPos = data1.indexOf(sep);
  var gg1 = parseInt(data1.substr(0,iPos));

  sub = data1.substr(iPos+1);
  iPos = sub.indexOf(sep);
  var mm1 = parseInt(sub.substr(0,iPos));

  sub = sub.substr(iPos+1);
  var aaaa1 = parseInt(sub);
  data2 = new Date(aaaa1,(mm1-1),gg1);

  if (parseInt(data2.getFullYear()) != aaaa1)
    return false;

  if (parseInt(data2.getMonth()) != (mm1-1))
    return false;

  if (parseInt(data2.getDate()) != gg1)
    return false;

  return true;
}

// ritorna true le la data2 � maggiore della data1
// esempio DiffDate('01-01-2005','01-02-2005', '-') => true
// esempio DiffDate('01-01-2005','01-02-2004', '-') => false
function DataMaggiore(data1, data2, sep)
{
  iPos = data1.indexOf(sep);
  var gg1 = parseInt(data1.substr(0,iPos));

  sub = data1.substr(iPos+1);
  iPos = sub.indexOf(sep);
  var mm1 = parseInt(sub.substr(0,iPos));

  sub = sub.substr(iPos+1);
  var aaaa1 = parseInt(sub);

  iPos = data2.indexOf(sep);
  var gg2 = parseInt(data2.substr(0,iPos));

  sub = data2.substr(iPos+1);
  iPos = sub.indexOf(sep);
  var mm2 = parseInt(sub.substr(0,iPos));

  sub = sub.substr(iPos+1);
  var aaaa2 = parseInt(sub);

  var my_data1 = new Date(aaaa1,(mm1-1),gg1);
  var my_data2 = new Date(aaaa2,(mm2-1),gg2);

  if (my_data2 < my_data1)
    return false;

  return true;
}

// formato date gg-mm-aaa
// esempio DiffDate('01-01-2005','01-02-2005', '-'):
// esempio DiffDate('01/01/2005','01/02/2005', '/'):
function DiffDate(data1, nomedata1, data2, nomedata2, sep)
{
  if (data1 == '') return '';
  if (data2 == '') return '';

  if (!VerificaData(data1, sep))
  {
    alert(nomedata1+' non valorizzata correttamente');
    return '';
  }

  if (!VerificaData(data2, sep))
  {
    alert(nomedata2+' non valorizzata correttamente');
    return '';
  }

  if (DataMaggiore(data1, data2, sep) == false)
  {
    alert(nomedata2 + " e' precedente alla " + nomedata1);
    return '';
  }

  iPos = data1.indexOf(sep);
  var gg1 = parseInt(data1.substr(0,iPos));

  sub = data1.substr(iPos+1);
  iPos = sub.indexOf(sep);
  var mm1 = parseInt(sub.substr(0,iPos));

  sub = sub.substr(iPos+1);
  var aaaa1 = parseInt(sub);

  iPos = data2.indexOf(sep);
  var gg2 = parseInt(data2.substr(0,iPos));

  sub = data2.substr(iPos+1);
  iPos = sub.indexOf(sep);
  var mm2 = parseInt(sub.substr(0,iPos));

  sub = sub.substr(iPos+1);
  var aaaa2 = parseInt(sub);

  var anni = aaaa2 - aaaa1;
  var mesi = mm2 - mm1;
  var giorni = gg2 - gg1;

  if (mm2 < mm1)
  {
    anni--;
    mesi = (mm2+12) - mm1;
  }

  if (gg2 < gg1)
  {
    mesi--;
    giorni = (gg2+30) - gg1;
  }

  var stringa = new String;

  stringa = '';
  if (anni > 0)
    stringa = ' ' + anni + ' anni ';

  if (mesi > 0)
    stringa += ' ' + mesi + ' mesi ';

  if (giorni > 0)
    stringa += ' ' + giorni + ' giorni ';

  if (giorni == 0 && stringa == '')
    stringa = '0 giorni';

  return stringa;
}

function popup(str, titolo)
{
  searchWin = window.open(str,titolo,'scrollbars=yes,resizable=yes,status=no,location=no,toolbar=no,width=800,height=600');
}

function popupNewWindow(str, titolo)
{
  searchWin = window.open(str,titolo,'scrollbars=yes,resizable=yes,status=yes,location=yes,toolbar=yes');
}

function popupWindow(mypage, myname, w, h, scroll) {
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable';
	win = window.open(mypage, myname, winprops);
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

function submitbutton(pressbutton, verify) {
	submitform(pressbutton, verify);
}

/**
* Submit the admin form
*/
function submitform(pressbutton, verify){
	document.adminForm.operazione.value=pressbutton;

	if (verify)
	{
	  if (verifica()) {
    	try {
    		document.adminForm.onsubmit();
  		}	catch(e){}
    	document.adminForm.submit();
    }
	}
  else
  {
  	//try {
  	//	document.adminForm.onsubmit();
  	//}	catch(e){}
  	document.adminForm.submit();
  }
}

function submitOrder(campo, ordine) {
  document.adminForm.operazione.value='view';

  document.adminForm.campo_ordinamento.value = campo;
  document.adminForm.ordinamento.value = ordine;

  try {
  	document.adminForm.onsubmit();
  }	catch(e){}
  document.adminForm.submit();
}

