function checkSpaces(obj,args){ 
	if (args.Value.indexOf(" ") > -1) {
		args.IsValid = false;
	}
	else {
		args.IsValid = true;
	}
}
function checkForSubmit(obj,args)
{
	if (!document.forms[0].chk675.checked)
	{	
		args.IsValid = false;
	}
	else
	{
		args.IsValid = true;
	}
}
function emailCheck (emailStr) { 
	var checkTLD=0; 
	var knownDomsPat=/ ^(it|com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/; 
	var emailPat=/^(.+)@(.+)$/; 
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]"; 
	var validChars="\[^\\s" + specialChars + "\]"; 
	var quotedUser="(\"[^\"]*\")"; 
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/; 
	var atom=validChars + '+'; 
	var word="(" + atom + "|" + quotedUser + ")"; 
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); 
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$"); 
	var matchArray=emailStr.match(emailPat); 
	
	if (matchArray==null) { 
		return false; 
	} 
	
	var user=matchArray[1]; 
	var domain=matchArray[2]; 

	for (i=0; i<user.length; i++) { 
		if (user.charCodeAt(i)>127) { 
			return false; 
		} 
	} 

	for (i=0; i<domain.length; i++) { 
		if (domain.charCodeAt(i)>127) { 
			return false; 
		} 
	} 

	if (user.match(userPat)==null) { 
		return false; 
	} 
	
	var IPArray=domain.match(ipDomainPat); 
	if (IPArray!=null) { 
		for (var i=1;i<=4;i++) { 
			if (IPArray>255) { 
				return false; 
			} 
		} 
		return true; 
	} 

	var atomPat=new RegExp("^" + atom + "$"); 
	var domArr=domain.split("."); 
	var len=domArr.length; 
	
	for (i=0;i<len;i++) { 
		if (domArr[i].search(atomPat)==-1) { 
			return false; 
		} 
	} 

	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) { 
		return false; 
	} 

	if (len<2) { 
		return false; 
	}
	
	return true;
} 

function checkMail(object,args)
{
	var s = args.Value; 

	if (emailCheck(s))
		args.IsValid = true;
	else 
		args.IsValid = false;
}		
/**********************************************************************/ 
/*Function name :isDigit(theDigit) */ 
/*Usage of this function :test for an digit */ 
/*Input parameter required:thedata=string for test whether is digit */ 
/*Return value :if is digit,return true */ 
/* else return false */ 
/**********************************************************************/ 
function isDigit(theDigit) 
{ 
	var digitArray = new Array('0','1','2','3','4','5','6','7','8','9'),j; 

	for (j = 0; j < digitArray.length; j++) 
	{
		if (theDigit == digitArray[j]) 
			return true 
	} 
	
	return false 
} 
/*************************************************************************/ 
/*Function name :isPositiveInteger(theString) */ 
/*Usage of this function :test for an +ve integer */ 
/*Input parameter required:thedata=string for test whether is +ve integer*/ 
/*Return value :if is +ve integer,return true */ 
/* else return false */ 
/*function require :isDigit */ 
/*************************************************************************/ 
function isPositiveInteger(theString) 
{ 
	var theData = new String(theString) 

	if (!isDigit(theData.charAt(0))) 
		if (!(theData.charAt(0)== '+')) 
			return false 

	for (var i = 1; i < theData.length; i++) 
		if (!isDigit(theData.charAt(i))) 
			return false 
	
	return true 
} 
/**********************************************************************/ 
/*Function name :isDate(s,f) */ 
/*Usage of this function :To check s is a valid format */ 
/*Input parameter required:s=input string */ 
/* f=input string format */ 
/* =1,in mm/dd/yyyy format */ 
/* else in dd/mm/yyyy */ 
/*Return value :if is a valid date return 1 */ 
/* else return 0 */ 
/*Function required :isPositiveInteger() */ 
/**********************************************************************/ 
function isDate(s,f) 
{
	var a1=s.split("/"); 
	var a2=s.split("-"); 
	var e=true; 
	
	if ((a1.length!=3) && (a2.length!=3)) 
	{ 
		e=false; 
	} 
	else 
	{
		if (a1.length==3) 
			var na=a1; 
		if (a2.length==3) 
			var na=a2; 
		if (isPositiveInteger(na[0]) && isPositiveInteger(na[1]) && isPositiveInteger(na[2])) 
		{ 
			if (f==1) 
			{
				var d=na[1],m=na[0]; 
			} 
			else 
			{
				var d=na[0],m=na[1]; 
			} 
			
			var y=na[2]; 
			
			if (((e) && (y<1000)||y.length>4)) 
				e=false 
			if (e) 
			{ 
				v=new Date(m+"/"+d+"/"+y); 
				if (v.getMonth()!=m-1) 
					e=false; 
			} 
		} 
		else 
		{ 
			e=false; 
		} 
	} 
	
	return e 
} 

function checkDate(object, args) 
{ 
	var s = args.Value; 
	
	if (isDate(s,0)) //dd/mm/yyyy
		args.IsValid = true;
	else 
		args.IsValid = false;
} 

function checkIva(source,piva)
{
	pi = piva.Value;
	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) )
		piva.IsValid = false;
	else
		piva.IsValid = true;
}

function f_checkCF(source,cfins)
	{
	cfins.IsValid = true;
	var cf = cfins.Value.toUpperCase();
	var cfReg = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
	if (!cfReg.test(cf))
		cfins.IsValid = false;
	var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
	var 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) )
		cfins.IsValid = false;
	}




