function upperDigitKeys(event)	{ // A-Z 0-9
  var keyCode=(event.keyCode)?event.keyCode:event.which;
  
	if((keyCode>=48) && (keyCode<=57))
		return;
	if((keyCode>=65) && (keyCode<=90))
		return;
	if((keyCode>=97) && (keyCode<=122)) {
	  if(event.keyCode)
	    event.keyCode-=32;
	  else {
	    var new_event=document.createEvent("KeyEvents");
      new_event.initKeyEvent("keypress",false,true,document.defaultView,false,false,false,false,0,event.which-32);
      event.preventDefault();
      event.target.dispatchEvent(new_event);
	  }
		return;
	}
	if((keyCode==8) || (keyCode==13))
		return;
  
  if(event.keyCode)
	  event.returnValue=false;
  else
    event.preventDefault();
} // End of upperDigitKeys() function

function alphaDigitKeys(event)	{ // A-Z a-z 0-9
  var keyCode=(event.keyCode)?event.keyCode:event.which;
  
	if((keyCode>=48) && (keyCode<=57))
		return;
	if((keyCode>=65) && (keyCode<=90))
		return;
	if((keyCode>=97) && (keyCode<=122))
		return;
	if((keyCode==8) || (keyCode==10) (keyCode==13))
		return;
  
  if(event.keyCode)
	  event.returnValue=false;
  else
    event.preventDefault();
} // End of alphaDigitKeys() function

function digitKeys(event) { // 0-9
  var keyCode=(event.keyCode)?event.keyCode:event.which;
  
	if((keyCode>=48) && (keyCode<=57))
		return;
	if((keyCode==8) || (keyCode==10) || (keyCode==13))
		return;
  
  if(event.keyCode)
	  event.returnValue=false;
  else
    event.preventDefault();
} // End of digitKeys() function

function floatKeys(event) { // 0-9 ,
  var keyCode=(event.keyCode)?event.keyCode:event.which;
  
  if(keyCode>=48 && keyCode<=57)
    return;
  if(keyCode==46 || keyCode==44) {
    if(event.keyCode)
      event.keyCode=46;
    else {
      var new_event=document.createEvent("KeyEvents");
      new_event.initKeyEvent("keypress",false,true,document.defaultView,false,false,false,false,0,46);
      event.preventDefault();
      event.target.dispatchEvent(new_event);
    }
    return;
  }
  
  if(event.keyCode)
    event.returnValue=false;
  else
    event.preventDefault();
} // End of floatKeys() function

function upperKeys(event) { // A-Z
  var keyCode=(event.keyCode)?event.keyCode:event.which;
  
	if((keyCode>=65) && (keyCode<=90))
		return;
	if((keyCode>=97) && (keyCode<=122)) {
	  if(event.keyCode)
	    event.keyCode-=32;
	  else {
	    var new_event=document.createEvent("KeyEvents");
      new_event.initKeyEvent("keypress",false,true,document.defaultView,false,false,false,false,0,event.which-32);
      event.preventDefault();
      event.target.dispatchEvent(new_event);
	  }
		return;
	}
	if((keyCode==8) || (keyCode==13))
		return;

  if(event.keyCode)
	  event.returnValue=false;
  else
    event.preventDefault();
} // End of upperKeys() function

function dateKeys(event) { // 0-9 /
  var keyCode=(event.keyCode)?event.keyCode:event.which;
  
	if((keyCode>=48) && (keyCode<=57))
		return;
	if((keyCode==45) || (keyCode==46) || (keyCode==47) || (keyCode==58)) {
	  if(event.keyCode)
	    event.keyCode=47;
	  else {
	    var new_event=document.createEvent("KeyEvents");
      new_event.initKeyEvent("keypress",false,true,document.defaultView,false,false,false,false,0,47);
      event.preventDefault();
      event.target.dispatchEvent(new_event);
	  }
		return;
	}
	if((keyCode==8) || (keyCode==13))
		return;
  
  if(event.keyCode)
	  event.returnValue=false;
  else
    event.preventDefault();

} // End of dateKeys() function

function checkAlphaDigit(s) {
	var i,c;
	
	for(i=0;i<s.length;i++) {
		c=s.substring(i,i+1);
		if(!(c>='a' && c<='z') && !(c>='A' && c<='Z') && !(c>='0' && c<='9'))
			return false;
	}
	return true;
} // End of checkAlphaDigit() function

function validateCF(cf) {
    var validi,i,s,set1,set2,setpari,setdisp;
    if(cf=='')
      return '';
    cf=cf.toUpperCase();
    if(cf.length!=16)
    	return false;
    validi="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    for(i=0;i<16;i++) {
      if(validi.indexOf(cf.charAt(i) )==-1)
      	return false;
    }
    set1="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    set2="ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setpari="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setdisp="BAKPLCQDREVOSFTGUHMINJWZYX";
    s=0;
    for(i=1;i<=13;i+=2)
      s+=setpari.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));
    for(i=0;i<=14;i+=2)
      s+=setdisp.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));
    if(s%26!=cf.charCodeAt(15)-'A'.charCodeAt(0))
    	return false;
   	return true;
} // End of validateCF() function

function checkVATNo(pi) {
  var validi="0123456789";
  
  if(pi.length!=11)
  	return false;
  
  for(i=0;i<11;i++) {
    if(validi.indexOf(pi.charAt(i))==-1)
      return false;
  }
  s=0;
  for(i=0;i<=9;i+=2)
    s+=pi.charCodeAt(i)-'0'.charCodeAt(0);
  for(i=1;i<=9;i+=2) {
    c=2*(pi.charCodeAt(i)-'0'.charCodeAt(0));
    if(c>9)
      c=c-9;
    s+=c;
  }
  if((10-s%10)%10!=pi.charCodeAt(10)-'0'.charCodeAt(0))
    return false;
  return true;
} // End of checkVATNo() function

function myParseInt(s) {
	while((s.charAt(0)=='0') && (s.length>1))
		s=s.substring(1,s.length);
	return(parseInt(s));
} // End of myParseInt() function

function checkDate(s,empty) {
	if(s=="")
		return(empty==1);
	if(s.length!=10)
		return false;
	if((s.substring(2,3)!="/") || (s.substring(5,6)!="/"))
		return false;
	g=myParseInt(s.substring(0,2));
	m=myParseInt(s.substring(3,5));
	a=myParseInt(s.substring(6,10));
	if(isNaN(g) || isNaN(m) || isNaN(a))
		return(false);
	if((g<1) || (m<1) || (a<0))
		return false;
	switch(m) {
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
		  if(g>31)
				return false;
			return true;
		case 4:
		case 6:
		case 9:
		case 11:
			if(g>30)
				return false;
			return true;
		case 2:
			if(a%4) {
				if(g>28)
					return false;
			}
			else {
				if(g>29)
					return false;
			}
			return true;
		default:
			return false;
	}
	return true;
} // End of checkDate() function

function checkEmail(s_email) {
	var i=s_email.indexOf(' ',0);
	while(i>-1) {
		s_email = s_email.substring(0,i) + 
			s_email.substring((i + 1),s_email.length);
		i = s_email.indexOf(' ',0);
	}
	if((s_email.length<6) || (s_email.indexOf('@',0)<1) ||
	   (s_email.lastIndexOf('@')!=s_email.indexOf('@',0)) || (s_email.lastIndexOf('@')>(s_email.length-5)) ||
	   (s_email.lastIndexOf('.')>(s_email.length-3)) || (s_email.lastIndexOf('.')<(s_email.length-7)) ||
	   (s_email.indexOf('..',0)>-1) || (s_email.indexOf('@.',0)>-1) ||
	   (s_email.indexOf('.@',0)>-1) || (s_email.indexOf(',',0)>-1))
		return false;
	return true;
} // End of checkEmail() function

