function LTrim( value ) {

	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");

}

// Removes ending whitespaces
function RTrim( value ) {
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
}
// Removes leading and ending whitespaces
function trim( value ) {
	return LTrim(RTrim(value));
}


function validateAddress(address,min,max,error1,error2)
{
   
   var valid_accept_chars;
   address=trim(address);
    
   var not_accept_chars='!@$%^&*()+=[]\\\';/{}|\":<>?~_';
       
    
	if(!min)
     min=2;
	
	if(!max)
     max=20;
    
    if(address.length==0)
     return error1;
	 
		 
	for(var i=0;i<address.length;i++)
	{
		valid_accept_chars=true;
		for(var j=0;j<not_accept_chars.length;j++)
		{
			if(address.charAt(i)== not_accept_chars.charAt(j))
			{
				 valid_accept_chars=false;
			}	 
		}
		   if(!valid_accept_chars)
			 return error2;
	}
	 
	if(address.length < min)
     return error2;
	 
  
   if(address.length > max)
     return error2;
	 
	
      return 1;	
   
}

function validateSuburb(suburb,min,max,error1,error2)
{
   
   var valid_accept_chars;
   suburb=trim(suburb);
   
   var accept_chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\' ';
       
    
	if(!min)
     min=2;
	
	if(!max)
     max=50;
    
    if(suburb=='')
     return error1;
	 
		 
	for(var i=0;i<suburb.length;i++)
	{
		valid_accept_chars=false;
		for(var j=0;j<accept_chars.length;j++)
		{
			if(suburb.charAt(i)==accept_chars.charAt(j))
				 valid_accept_chars=true;
		}
		   if(!valid_accept_chars)
			 return error2;
	}
	 
	if(suburb.length < min)
     return error2;
	 
  
   if(suburb.length > max)
     return error2;
	 
	
      return 1;	
   
}

function validatePostcode(postcode,min,max,error1,error2)
{
   
   var valid_accept_chars;
   postcode=trim(postcode);
   
   var accept_chars='0123456789';
       
    
	if(!min)
     min=2;
	
	if(!max)
     max=50;
    
    if(postcode=='')
     return error1;
	 
		 
	for(var i=0;i<postcode.length;i++)
	{
		valid_accept_chars=false;
		for(var j=0;j<accept_chars.length;j++)
		{
			if(postcode.charAt(i)==accept_chars.charAt(j))
				 valid_accept_chars=true;
		}
		   if(!valid_accept_chars)
			 return error2;
	}
	 
	if(postcode.length < min)
     return error2;
	 
  
   if(postcode.length > max)
     return error2;
	 
	
      return 1;	
   
}


function validateEmail(email,min,max,error1,error2) 
{

	  var reg=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	  
	  if(!min)
		 min=6;
		
		if(!max)
		 max=75;
	   
	   var address = trim(email);
	   if(address=='')
		 return error1;
	   
	   if(reg.test(address) == false) {
		  return error2
		 
	   }
	   
	   if(address.length < min)
		 return error2;
		 
	  
	   if(address.length > max)
		 return error2;
		 
		
		  return 1;
}	  


function validatePassword(password,min,max,error1,error2)
{
    password=trim(password);
       
	if(!min)
     min=2;
	
	if(!max)
     max=25;
    
    if(password=='')
     return error1;
	
	 
	if(password.length < min)
     return error2;
	 
  
   if(password.length > max)
     return error2;
	 
	
      return 1;	
   
}

function validatePhone(phone,min,max,error1,error2)
{
   
   var valid_accept_chars;
   phone=trim(phone);
   
   var accept_chars='0123456789.+-() ';
       
    
	if(!min)
     min=5;
	
	if(!max)
     max=20;
    
    if(phone=='')
     return error1;
	 
		 
	for(var i=0;i<phone.length;i++)
	{
		valid_accept_chars=false;
		for(var j=0;j<accept_chars.length;j++)
		{
			if(phone.charAt(i)==accept_chars.charAt(j))
				 valid_accept_chars=true;
		}
		   if(!valid_accept_chars)
			 return error2;
	}
	 
	if(phone.length < min)
     return error2;
	 
  
   if(phone.length > max)
     return error2;
	 
	
      return 1;	
   
}
  
function validateUrl(value,error1,error2) {

if(value=='')
     return error1;
    
	  var URLReg = new RegExp();
      //URLReg.compile("^((https?\\://www\\.)|(www\\.))[A-Za-z0-9_\\-]+\\.[A-Za-z0-9_\\-\\%\\&\\?\\.\\=\\+]+$");
	  URLReg.compile("^((https?\\://www\\.)|(www\\.))[A-Za-z0-9_\\-]+\\.[A-Za-z0-9_\\+]+$");
	  var URLReg1 = new RegExp();
	  URLReg1.compile("^((http?\\://www\\.)|(www\\.))[A-Za-z0-9_\\-]+\\.[A-Za-z0-9_\\+]+$");
	  var URLReg2 = new RegExp();
	  URLReg2.compile("^[A-Za-z0-9_\\-]+\\.[A-Za-z0-9_\\+]+$");
      var URLReg3 = new RegExp();
	  URLReg3.compile("^((http?\\://))[A-Za-z0-9_\\-]+\\.[A-Za-z0-9_\\+]+$");
	  var URLReg4 = new RegExp();
	  URLReg4.compile("^((https?\\://))[A-Za-z0-9_\\-]+\\.[A-Za-z0-9_\\+]+$");
	        
		
		if (URLReg.test(value) || URLReg1.test(value) || URLReg2.test(value) || URLReg3.test(value) || URLReg4.test(value)) 
		{
			return 1;
		} else
		{
        return error2;
        }		
		
}

function validateDate(name,error1)
{
  
   name=trim(name);
    	
    if(name=='')
     return error1;	
	
      return 1;	
   
}

function validatefileext(name)
{
	var valid_extensions = /(.jpg|.jpeg|.gif|.png|.txt|.xlsx|.xls|.log|.doc|.docx|.pdf|.odt|.zip|.indd|.psd|.ai)$/i;

    name=trim(name);
    	 
    if (valid_extensions.test(name))
     return 1;
	 
    return 0;

}

function validateName(name,min,max,error1,error2)
{
   
   var valid_accept_chars;
   name=trim(name);
   
   var accept_chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\' ';
       
    
	if(!min)
     min=2;
	
	if(!max)
     max=20;
    
    if(name=='')
     return error1;
	 
		 
	for(var i=0;i<name.length;i++)
	{
		valid_accept_chars=false;
		for(var j=0;j<accept_chars.length;j++)
		{
			if(name.charAt(i)==accept_chars.charAt(j))
				 valid_accept_chars=true;
		}
		   if(!valid_accept_chars)
			 return error2;
	}
	 
	if(name.length < min)
     return error2;
	 
  
   if(name.length > max)
     return error2;
	 
	
      return 1;	
   
}

function trimSpaces(property)
{
     document.getElementById(property).value=trim(document.getElementById(property).value);
}
