				/**
				 * <p>Title: GPS-Buddy </p>
				 * <p>Description:  used to handle all common String functions </p>
				 * <p>Copyright: Copyright (c) 2005</p>
				 * <p>Company: E-Code Lanka SW</p>
				 * @author Kasun
				 * @version 1.0
				 */
				
				
				 
				
				/**
				 * Trim a string (Remove leading and trailing spaces)
				 *
				 */
				function _trim(s){
					if((s!=null) && (s.length>0)){	
					s = s.replace(/^\s+|\s+$/g,"");
					}
					return s;
				}
				
				
				/**
				 * Prepare form for validation by triming all fileds
				 */
				function _validate(frm1)
				{
				
				for(i=0 ; i < frm1.elements.length ; i++)
				{
				
				var __fieldIndex = i;
				var _field = frm1.elements[i];
				var _fieldType = frm1.elements[i].type;
				var _fieldName = frm1.elements[i].name;
				var _fieldValue;
				
				
				if (_fieldType == "hidden")
				{
					_fieldValue = frm1.elements[i].value;
					frm1.elements[i].value = _trim(_fieldValue);
				
				
				}
				if(_fieldType == "text" || _fieldType == "textarea" || _fieldType == "file" || _fieldType == "password")
				{
				
					_fieldValue = frm1.elements[i].value;
					frm1.elements[i].value = _trim(_fieldValue);
					
					
					}
					
				if(_fieldType == "submit" || _fieldType == "button" || _fieldType == "image")
				{
				
					
				}
				
				
				
				
				}//End OF for loop
				
					return true;
				}
				
				
				
				
				
				
				
				
				
				function _date()
				{
					//var regex = /^[\d]+[\-|\/\.][\d]+[\-|\/\.][\d]+$/;
					var regex = /^[\d]{2}[\-|\/\.][\d]{2}[\-|\/\.][\d]{4}$/;
					if(!regex.test(_fieldValue))
					{
						alert("Invalid Date format");
						__setFocus();
						return false;
					}
					else
					{
						var dd = parseInt(_fieldValue.substring(0,2), 10);
						var mm = parseInt(_fieldValue.substring(3,5), 10);
						var yy = parseInt(_fieldValue.substring(6,10), 10);
					
							if(mm <= 12){
							switch(mm) {
								case 4:
								case 6:
								case 9:
								case 11:
									if (dd > 30) 
									{
										alert("This month has 30 days");
										return false;
									}
									
								break;
							}
							}else{
								alert("Invalid Months...\n\nMakesure date format must be one of the following...\n\n[1] dd-mm-yyyy\n[2] dd/mm/yyyy\n[3] dd.mm.yyyy");
								return false;
							}
					
							if ((yy % 4) == 0) {
								if ((mm == 2) && (dd > 29)) {
										alert("Invalid days in February for leap year");
										return false;
								}
							}
							else {
								if ((mm == 2) && (dd > 28)) {
										alert("Invalid days in February for non leap year.");
										return false;
								}
							}
					}
					return true;
				}
				
				
				function _usPhoneNumber()
				{
					var regex = /[\(][\d]{3}[\)][\d]{3}[\-][\d]{4}/
					if(!regex.test(_fieldValue))
					{
						if(!_fieldMsg){
						alert("Please enter phone number into (xxx)xxx-xxxx pattern.");
						}else{
							alert(_fieldMsg);
						}
						__setFocus();
						return false;
					}
					return true;
				}
				
				function _mobileNumber()
				{
					var regex1 = /^[\d]{10}$/;
					var regex2 = /[\(][\+][\d]{2}[\)][\d]{10}/;
				
					if(!regex1.test(_fieldValue) && !regex2.test(_fieldValue))
					{
						if(!_fieldMsg){
						alert("Please enter phone number into (+xx)xxxxxxxxxx or xxxxxxxxxx pattern.");
						}else{
						alert(_fieldMsg);
						}
						__setFocus();
						return false;
					}
					return true;
				}
				
				
				function _phoneNumber()
				{
					if(_fieldValue!="")
					{
					var regex = /^[\d]+$/;
				
					if(!regex.test(_fieldValue))
					{
						if(!_fieldMsg){
						alert("Wrong phone number.");
						}else{
							alert(_fieldMsg);
						}
						__setFocus();
						return false;
					}
					}
					return true;
				}
				
				function _specialChars()
				{
					if(_fieldValue!=""){
					var regex = /^[a-zA-Z0-9\ ]+$/;
					if(!regex.test(_fieldValue))
					{
				
						if(!_fieldMsg){
						alert("No Special charactors.");
						}else{
							alert(_fieldMsg);
						}
						//alert("No Special charactors.");
				
						__setFocus();
						return false;
					}
					}
					return true;
				}
				
				function _specialCharsAndNumbers()
				{
					if(_fieldValue!=""){
					var regex = /^[a-zA-Z\ ]+$/;
					if(!regex.test(_fieldValue))
					{
						if(!_fieldMsg){
						alert("No Special charactors or Number allowed.");
						}else{
							alert(_fieldMsg);
						}
				
						__setFocus();
						return false;
					}
					}
					return true;
				}
				
				
				function _phoneAllCountry()
				{
					if(_fieldValue!=""){
					var regex = /^[0-9\(\)\+\-\ ]+$/;
					if(!regex.test(_fieldValue))
					{
						if(!_fieldMsg){
						alert("No Special charactors or Number allowed.");
						}else{
							alert(_fieldMsg);
						}
				
						__setFocus();
						return false;
					}
					}
					return true;
				}
				
				function _email()
				{
					if(_fieldValue!=""){
					var regex = /^[\w]+(\.[\w]+)*@([\w\-]+\.)+[a-zA-Z]{2,7}$/ ;
					if(!regex.test(_fieldValue))
					{
				
						if(!_fieldMsg){
						alert("Invalid Email Address");
						}else{
							alert(_fieldMsg);
						}
						__setFocus();
						return false;
					}
					}
					return true;
				}

				function isValidEmail(email){
					return (/^(\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+)(;\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+)*$/.test(email));
				}
				
				function _username()
				{
					if(_fieldValue!=""){
					var regex = /^[a-zA-Z]+[a-zA-Z0-9\.\_]*[a-zA-Z0-9]+$/;
					if(!regex.test(_fieldValue))
					{
				
						if(!_fieldMsg){
						alert("No Special charactors.");
						}else{
							alert(_fieldMsg);
						}
						__setFocus();
						return false;
					}
					}
					return true;
				}
				
				function _flName()
				{
					if(_fieldValue!=""){
					var regex = /^[a-zA-Z]+$/;
					if(!regex.test(_fieldValue))
					{
				
						if(!_fieldMsg){
						alert("No Special charactors.");
						}else{
							alert(_fieldMsg);
						}
						//alert("No Special charactors.");
				
						__setFocus();
						return false;
					}
					}
					return true;
				}
				
				
				
				function _currency()
				{
					if(_fieldValue!=""){
					regex = /^[\d]+[\d\.]*[\d]+$/;
				
				    if(!regex.test(_fieldValue)) {
						if(!_fieldMsg){
						alert("Error occured");
						}else{
							alert(_fieldMsg);
						}
						 return false;
				    }
					}
					return true;
				}
				
				function _url()
				{
					if(_fieldValue!=""){
				
				var regex1 = /^(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.(com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk)(\:[0-9]+)*(\/($|[a-zA-Z0-9\.\,\;\?\'\\\+&%\$#\=~_\-]+))*$/;
				var regex2 = /^(((http(s?))|(ftp))\:\/\/)?(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.(com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk)(\:[0-9]+)*(\/($|[a-zA-Z0-9\.\,\;\?\'\\\+&%\$#\=~_\-]+))*$/;
				
				
				
					if(!regex1.test(_fieldValue) && !regex2.test(_fieldValue))
					{
						if(!_fieldMsg){
						alert("Not a valid url.");
						}else{
							alert(_fieldMsg);
						}
						//alert("Not valid url.");
						__setFocus();
						return false;
					}
					}
					return true;
				}
				
				function _digits()
				{
				
					var regex = /^[\d]+$/;
				
					if(!regex.test(_fieldValue))
					{
						if(!_fieldMsg){
						alert("Invalid Digits");
						}else{
							alert(_fieldMsg);
						}
						__setFocus();
						return false;
					}
					return true;
				}
				
				function _zip()
				{
					if(_fieldValue!=""){
					var regex1 = /^[\d]{5,6}$/;
					var regex2 = /^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$/; 
				
					if(!regex1.test(_fieldValue) && !regex2.test(_fieldValue))
					{
						if(!_fieldMsg){
						alert("Zipcode/Postcode Invalid");
						}else{
							alert(_fieldMsg);
						}
						__setFocus();
						return false;
					}
					}
					return true;
				}
				
				
				
				function __setFocus()
				{
						try{
							_field.focus();
							_field.select();
						}catch(e){
						}
				}
				
				
				
				
				
