﻿DEFAULT_LENGTH = 80;


function IsNumericInt(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}
      }
    if(!IsNumber){alert('Inserire un valore numerico intero valido.')}
   return IsNumber;
}
function IsNumericDec(sText){
	sText = sText.replace(',','.');
   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}
      }
    if(!IsNumber){alert('Inserire un valore numerico decimale valido.')}
   return IsNumber;
}
function isNumberKey(event){
	var charCode = (evt.which) ? evt.which : event.keyCode
   if (charCode > 31 && (charCode < 48 || charCode > 57))
          return false;
  return true;
}
function isEmail(value){
    if(value =='' || value == null){ return true;}
    var rg=  /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/
	var exp = new RegExp(rg);
	exp.ignoreCase=true;
	return exp.test(value)
}
function isDate(value){
    // month argument must be in the range 1 - 12
    var c = new Date(value);
    return !isNaN(c);
//	var rg =/^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/
//	var exp = new RegExp(rg)
//	return exp.test(value)
}
function isCreditCart(value){
	var rg =/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$./
	var exp= new RegExp(rg);
	return exp.test(value)

}
function validateField(value,obj){
	var fname = obj.getAttribute('_displayName')
	if(fname == null){fname =obj.getAttribute('_fieldName')}
	if(fname == null){fname =obj.getAttribute('_parameterName')}
	if(fname == null){fname =obj.getAttribute('_optionName')}
	var isRequired = (obj.getAttribute('_required') == 'true')
	var type = obj.getAttribute('_type')
	var _len = obj.getAttribute('_length')
	var _minlen = obj.getAttribute('_minlength')
	var isValid = true;
	
	/*controllo se è necessario*/
	if((value == '' || value ==null) && isRequired){
		alert('Field ' + fname + ' required.');
			return false;
  }
	
  if(_len == null){_len = DEFAULT_LENGTH}
  if(value != null && value.length > _len){
		alert('Field ' + fname + ' too long. Max ' + _len + ' chars.');
		return false
	}
	if(value != null && value.length < _minlen){
		alert('Field ' + fname + ' too short. Min ' + _minlen + ' chars.');
		return false
	}

  if(type!=null){
	  switch(type.toLowerCase()){
		  case 'decimal' :
				if(!IsNumericDec(value)){alert('Formato campo \'' + fname + '\' non valido.Necessario numero intero o decimale');isValid=false}
	  		break;
		  case 'int' :
				if(!IsNumericInt(value)){alert('Formato campo \'' + fname + '\' non valido.Necessario numero intero');isValid=false}
	  		break;
		  case 'date' :
				if(!isDate(value)){alert('Formato campo \'' + fname + '\' non valido.Necessario un campo data nel formato [dd/mm/yyyy o dd-mm-yyyy]');isValid=false}
			break;
		  case 'email' :
				if(!isEmail(value)){alert('Wrong format \'' + fname + '\'. Provide a valid email.');isValid=false}
			break;
		 default : 
			break;
	  }
	}
  return isValid;
  
}				


var _checkedUsername = false;
var _checkedEmail = false;
function checkIsEmailUnique(value,exceptAccount){
	if(ribo.cms.ws.iaccountws == null){alert('importare servizio Web AccountWs per utilizzare checkIsEmailUnique');}
	_checkedEmail=false;
	ribo.cms.ws.iaccountws.IsEmailUnique(value,exceptAccount,onSuccessCheckEmail,onFailCheckEmail);
}
function checkIsUsernameUnique(value){
	if(ribo.cms.ws.iaccountws == null){alert('importare servizio Web AccountWs per utilizzare checkIsUsernameUnique');}
	_checkedUsername=false;
	ribo.cms.ws.iaccountws.IsUsernameUnique(value,onSuccessCheckUsername,onFailCheckUsername);
}
function onSuccessCheckUsername(result,context){
	if(result==true){
	    $get('chk_username_image').src = $get('chk_username_image').src.replace('/delete.png','/true.png').replace('/false.png','/true.png')
	}else{
	    $get('chk_username_image').src = $get('chk_username_image').src.replace('/delete.png','/false.png').replace('/true.png','/false.png')
	}
	_checkedUsername=result;
}
function onFailCheckUsername(result,context){
	alert(result);
}
function onSuccessCheckEmail(result,context){
	if(result==true){
	    $get('chk_email_image').src = $get('chk_email_image').src.replace('/delete.png','/true.png').replace('/false.png','/true.png')
	}else{
	    $get('chk_email_image').src = $get('chk_email_image').src.replace('/delete.png','/false.png').replace('/true.png','/false.png')
	}
    _checkedEmail=result;
}
function onFailCheckEmail(result,context){
	alert(result);
}

