String.prototype.trimLeft         = STRING_trimLeft;
String.prototype.trimRight        = STRING_trimRight;
String.prototype.trim             = STRING_trim;

function STRING_trimLeft() {
  var tmp = this;
  while((tmp.charAt(0) == ' ') || (tmp.charCodeAt(0) == 160)) tmp = tmp.slice(1);
  return tmp
}

function STRING_trimRight() {
  var tmp = this;
  while((tmp.charAt(tmp.length - 1) == ' ') || (tmp.charCodeAt(tmp.length - 1) == 160)) tmp = tmp.slice(0,-1)
  return tmp;
}

function STRING_trim() {
  return this.trimLeft().trimRight();
}



function mySubmit(func, todb) {
	//alert("FUNC == ***" + func+ "***");
	//alert("TODB == ***" + todb+ "***");
	with(document.forms[0]){
		f.value = func;
		if(func == "ins") {
			if(todb == "") {
				if(!myCheckObbligatori([marca,modello,cilindrata,anno_imm],["Marca","Modello","Cilindrata","Anno Immatricolazione"]))
          return false;
        if(!myCheckNumber( [[cilindrata,4,0],[anno_imm,4,0],[km_percorsi,6,0],[prezzo,10,2],[cavalli,3,0],[marce,1,0]], ["Cilindrata","Anno Immatricolazione","Chilometri Percorsi","Prezzo","Potenza (in KWatt)","Numero Marce"] ) )
					return false;
				if(anno_imm.value < 1900 || anno_imm.value > 2010 ) {
					alert("L'anno scelto per l'immatricolazione non è corretto");
					myFocus(anno_imm);
					return false;
				}
				if(prezzo.value < 200 || prezzo.value > 15000) {
        	if (!confirm("Sei sicuro di volere impostare " + prezzo.value + " euro come prezzo di vendita della moto?")) 
          	return false;
         }
				action = "annuncio.php";
				t.value = "y";
			  submit();
			}
		}
		else if(func == "upd") {
			if(todb == "") {
				if(!myCheckObbligatori([marca,modello,cilindrata,anno_imm],["Marca","Modello","Cilindrata","Anno Immatricolazione"]))
          return false;
        if(!myCheckNumber( [[cilindrata,4,0],[anno_imm,4,0],[km_percorsi,6,0],[prezzo,10,2]], ["Cilindrata","Anno Immatricolazione","Chilometri Percorsi","Prezzo"] ) )
					return false;
				if(anno_imm.value < 1900 || anno_imm.value > 2010 ) {
					alert("L'anno scelto per l'immatricolazione non è corretto");
					myFocus(anno_imm);
					return false;
				}
				if(prezzo.value < 200 || prezzo.value > 15000) {
        	if (!confirm("Sei sicuro di volere impostare " + prezzo.value + " euro come prezzo di vendita della moto?")) 
          	return false;
        }
				action = "annuncio.php";
				t.value = "y";
			  submit();
			}
		}
		else if(func == "del") {
      //alert('entrato in del');
			if(todb == "") {
        //alert('entrato in todb');
				//if(!myCheckObbligatori([USERID, PWD],["Userid", "Password"]))
        //  return false;
				action = "annuncio.php";
				t.value = "y";
			  submit();
			}
		}
    else if(func == "aut") {
      //alert('entrato in del');
			if(todb == "") {
        //alert('entrato in todb');
				if(!myCheckObbligatori([USERID, PWD],["Userid", "Password"]))
          return false;
				action = "annuncio.php";
				t.value = "y";
			  submit();
			}
		}
	}
}

function mySubmitNuovo(func, todb) {
	//alert("FUNC == ***" + func+ "***");
	//alert("TODB == ***" + todb+ "***");
	with(document.forms[0]){
		f.value = func;
		if(func == "ins") {
			if(todb == "") {
				if(!myCheckObbligatori([marca,modello,cilindrata],["Marca","Modello","Cilindrata"]))
          return false;
        if(!myCheckNumber( [[cilindrata,4,0],[prezzo,10,2],[cavalli,3,0],[marce,1,0]], ["Cilindrata","Prezzo","Potenza (in KWatt)","Numero Marce"] ) )
					return false;
				if(prezzo.value < 200 || prezzo.value > 15000) {
        	if (!confirm("Sei sicuro di volere impostare " + prezzo.value + " euro come prezzo di vendita della moto?")) 
          	return false;
         }
				action = "nuovo.php";
				t.value = "y";
			  submit();
			}
		}
		else if(func == "upd") {
			if(todb == "") {
				if(!myCheckObbligatori([marca,modello,cilindrata],["Marca","Modello","Cilindrata"]))
          return false;
        if(!myCheckNumber( [[cilindrata,4,0],[prezzo,10,2]], ["Cilindrata","Prezzo"] ) )
					return false;
				if(prezzo.value < 200 || prezzo.value > 15000) {
        	if (!confirm("Sei sicuro di volere impostare " + prezzo.value + " euro come prezzo di vendita della moto?")) 
          	return false;
        }
				action = "nuovo.php";
				t.value = "y";
			  submit();
			}
		}
		else if(func == "del") {
      //alert('entrato in del');
			if(todb == "") {
        //alert('entrato in todb');
				//if(!myCheckObbligatori([USERID, PWD],["Userid", "Password"]))
        //  return false;
				action = "nuovo.php";
				t.value = "y";
			  submit();
			}
		}
    else if(func == "aut") {
      //alert('entrato in del');
			if(todb == "") {
        //alert('entrato in todb');
				if(!myCheckObbligatori([USERID, PWD],["Userid", "Password"]))
          return false;
				action = "nuovo.php";
				t.value = "y";
			  submit();
			}
		}
	}
}

function myAvviso(_obj, _name){
	myFocus(_obj);
	alert("Attenzione:\nIl parametro '"+ _name +"' è obbligatorio!");
}

function myFocus(field) {
	self.focus();
	with(document.forms[0]){
		//alert('eval(field).type => ' + eval(field).type);
		switch (eval(field).type){
			case 'text' :
				if(eval(field).disabled == false){	
					eval(field).focus();
					eval(field).select();
				}
			break;
			case 'password' :
				if(eval(field).disabled == false){	
					eval(field).focus();
					eval(field).select();
				}
			break;
			case 'select-one' :
				if(eval(field).disabled == false){
					eval(field).focus();
				}
			break;
			case 'hidden' :
			break;
		}
	}
}

function myCheckNumber(_arrNumb, _arrName){
	var bRet = true;
	if(_arrNumb.length != null){
		for(var i=0;i<_arrNumb.length;i++){
			
			if(_arrNumb[i][0].value.trim() != ""){
				var name		= _arrName[i];
				var dimMax 	= parseInt(_arrNumb[i][1]);
				var dimDec 	= parseInt(_arrNumb[i][2]);
				var indVirg = _arrNumb[i][0].value.trim().indexOf(',');
				//alert("Nome del campo "+_arrNumb[i][0].name);
				//alert("Nome esteso del campo "+name);
				//alert("Dim Max del campo "+dimMax);
				//alert("Dim decimale del campo "+dimDec);
				//alert("Indice della virgola del campo "+indVirg);
				var re = /[^0-9\-,]/g;
				// 1° TEST: CONTIENE CARATTERI CHE NON SONO CIFRE O LA VIRGOLA...
				if(re.test(_arrNumb[i][0].value.trim())){
					bRet = false;
					_arrNumb[i][0].focus();
				}
				// 2° TEST: SE E'UN NUMERO INTERO E LA LUNGHEZZA TOTALE ECCEDE LA LUNGHEZZA IMPOSTATA COME SECONDO ARGOMENTO OPPURE CONTIENE LA VIRGOLA
				if ( (dimDec == 0) && ( _arrNumb[i][0].value.trim().length > dimMax || indVirg != -1) ){
					bRet = false;
					_arrNumb[i][0].focus();
				}
				// 3° TEST: LA PARTE DECIMALE
				else if(dimDec > 0) {
					if(indVirg != -1) {
						var decLen	= parseInt(_arrNumb[i][0].value.trim().substring(indVirg+1, _arrNumb[i][0].value.trim().length ).length);
						//alert("decLen = " + decLen);
						if( decLen > dimDec ) {
							bRet = false;
							_arrNumb[i][0].focus();
						}
					}
				}
				var dimMax = (indVirg!=-1) ? (dimMax+1) : dimMax;
				// 4° TEST: LA LUNGHEZZA TOTALE
				if (_arrNumb[i][0].value.trim().length > dimMax || (indVirg != -1 && indVirg != _arrNumb[i][0].value.trim().lastIndexOf (','))){
					bRet = false;
					_arrNumb[i][0].focus();
				}
			}
			if(!bRet){
				if(dimDec>0)
					alert("Attenzione:\n'"+ _arrName[i] + "' è un campo numerico decimale,\ninserire al massimo "+dimMax+ " cifre di cui "+dimDec+" al massimo per la parte decimale,\nutilizzando la virgola come separatore della parte decimale dalla parte intera!");
				else
					alert("Attenzione:\n'"+ _arrName[i] + "' è un campo numerico intero,\ninserire al massimo "+dimMax+ " cifre per la parte intera e nessuna per la parte decimale!");
				break;
			}
		}
	}
	return bRet;
}

function myCheckObbligatori(_arrObj, _arrName){
	var bSubmit = true;
	if(_arrObj.length != null){
		//alert(_arrObj[0].type);
		for(var a=0;a<_arrObj.length;a++){
			//alert("name: "+_arrObj[a].name+" type: "+_arrObj[a].type);
			var typez = _arrObj[a].type;
			if(!typez){
				typez = _arrObj[a][0].type;
			}
			//alert(typez);
			switch (typez){
				case "text" :
					//alert("case text");
					if(_arrObj[a].value.trim() == ""){
						bSubmit = false;
						myAvviso(_arrObj[a], _arrName[a]);
						return false;
					}
					break;
				case "textarea" :
					//alert("case text");
					if(_arrObj[a].value.trim() == ""){
						bSubmit = false;
						myAvviso(_arrObj[a], _arrName[a]);
						return false;
					}
					break;
				case "select-one" :
					//alert("case select");
					if(_arrObj[a].value.trim() == -1){
						bSubmit = false;
						myAvviso(_arrObj[a], _arrName[a]);
						return false;
					}
					break;
				case "hidden" :
					//alert("case hidden");
					if(_arrObj[a].value.trim() == ''){
						bSubmit = false;
						myAvviso(_arrObj[a], _arrName[a]);
						return false;
					}
					break;
				case "radio" :
					//alert("case radio, length: "+_arrObj[a].length);
					if(_arrObj[a].length != null){
						bSubmit = false;
						for(var i = 0; i < _arrObj[a].length; i++){
							//alert(_arrObj[a][i].checked);
							if(_arrObj[a][i].checked){
								bSubmit = true;
							}
						}
						if(!bSubmit){
							myAvviso(_arrObj[a][0], _arrName[a]);
							return false;
						}
					}
					break;
        case "password" :
          if(_arrObj[a].value.trim() == ""){
						bSubmit = false;
						myAvviso(_arrObj[a], _arrName[a]);
						return false;
					}
          break;
				default :
					alert('default di controllaCampiObbligatori '+_arrObj[a].type+' '+_arrObj[a].name);
					return false;
			}
		}
	}
	return bSubmit;
}
