function replaceAll( str, replacements ) {
    for ( i = 0; i < replacements.length; i++ ) {
        var idx = str.indexOf( replacements[i][0] );

        while ( idx > -1 ) {
            str = str.replace( replacements[i][0], replacements[i][1] ); 
            idx = str.indexOf( replacements[i][0] );
        }

    }

    return str;
}

function valid_form(form)
{
	for(var i=0;i<document.form.elements.length;i++)
	{
		//--- TR - checking for blank values of text field---//
		if(document.form.elements[i].name.indexOf("TR") !=-1)
		{
			var nam=document.form.elements[i].name.substr(3);
			nam=replaceAll(nam,[["_", " "]]);
			if(Trim(document.form.elements[i].value)=="")
			{
				alert("Please enter "+nam);
				document.form.elements[i].focus();
				return false;
			}
		}
		
		//--- TM - validate an E-mail ID ---//
		else if(document.form.elements[i].name.indexOf("TM") !=-1)
		{
			var nam=document.form.elements[i].name.substr(3);
			nam=replaceAll(nam,[["_", " "]]);
			
			if((document.form.elements[i].value.indexOf("@")==-1)||(document.form.elements[i].value.indexOf(".")==-1))
			{
				alert("Please enter valid "+nam);
				document.form.elements[i].focus();
				document.form.elements[i].select();
				return false;
			}
		}

		//--- TN - Check for a Numeric field ---//
		else if(document.form.elements[i].name.indexOf("TN") !=-1)
		{
			var nam=document.form.elements[i].name.substr(3);
			nam=replaceAll(nam,[["_", " "]]);
			
			if(isNaN(document.form.elements[i].value)||(Trim(document.form.elements[i].value)==""))
			{
				alert("Please enter valid numeric "+nam);
				document.form.elements[i].focus();
				document.form.elements[i].select();
				return false;
			}
			else if(!isNaN(document.form.elements[i].value))
			{
				s=document.form.elements[i].value
				if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
				{
					alert("Please enter valid numeric "+nam);
					document.form.elements[i].focus();
					document.form.elements[i].select();
					return false;
				}
				if ((s=='0')||(s=='0.0')||(s=='0.00')||(s=='.0')||(s=='.00'))
				{
					alert("Value should be greater than zero");
					document.form.elements[i].focus();
					document.form.elements[i].select();
					return false;
				}
            }
		}
		//--- NN - Check for a Numeric field only---//
                else if(document.form.elements[i].name.indexOf("NN") !=-1)
                {
                        var nam=document.form.elements[i].name.substr(3);
                        nam=replaceAll(nam,[["_", " "]]);
                        if(isNaN(document.form.elements[i].value)&&(Trim(document.form.elements[i].value)!=""))
                        {
                                alert("Please enter valid numeric "+nam);
                                document.form.elements[i].focus();
                                document.form.elements[i].select();
                                return false;
                        }
						else if(!isNaN(document.form.elements[i].value)&&(Trim(document.form.elements[i].value)!=""))
						{
							s=document.form.elements[i].value
							if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
							{
								alert("Please enter valid numeric "+nam);
								document.form.elements[i].focus();
								document.form.elements[i].select();
								return false;
							}
							/*if ((s=='0')||(s=='0.00'))
							{
								alert("Value should be greater than zero");
								document.form.elements[i].focus();
								document.form.elements[i].select();
								return false;
							}*/
						}
                }

		//--- TD - check the validity of date ---//
		else if(document.form.elements[i].name.indexOf("TD") !=-1)
		{
			var nam=document.form.elements[i].name.substr(3);
			nam=replaceAll(nam,[["_", " "]]);
			if (isDate(document.form.elements[i].value)==false)
			{
				  document.form.elements[i].value="";
				  document.form.elements[i].focus();
				  return false;
			}
		}
		// this function diable the submit button when submitting
		var tempobj = document.form.elements[i];
		if (tempobj.type.toLowerCase() == "submit" || tempobj.type.toLowerCase() == "reset")
			tempobj.disabled = true;
	}
	return true;
}
// this function used to check valid chars
function check_validchar(pattern,str)
{
  var re = new RegExp(pattern,"g");
  var arr = re.exec(str);
  return arr;
}  

//Validation for proper Email address
function IsEmail(oObject) {
var emailStr=oObject.value;
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) {
	alert("Email address seems incorrect (check @ and .'s)");
	oObject.focus();
	oObject.select();
	return false;
}
var user=matchArray[1];
var domain=matchArray[2];

if (user.match(userPat)==null) {
    alert("The username doesn't seem to be valid. Please check or register fresh");
	oObject.focus();
	oObject.select();
    return false;
}
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        alert("Destination IP address is invalid!");
			oObject.focus();
			oObject.select();
		return false;
	    }
    }
    return true;
}

var domainArray=domain.match(domainPat);
if (domainArray==null) {
	alert("The domain name doesn't seem to be valid.");
	oObject.focus();
	oObject.select();
    return false;
}
var atomPat=new RegExp(atom,"g");
var domArr=domain.match(atomPat);
var len=domArr.length;
if (domArr[domArr.length-1].length<2 || 
    domArr[domArr.length-1].length>3) {
   alert("The address must end in a three-letter domain, or two letter country.");
	oObject.focus();
	oObject.select();
   return false;
}

if (len<2) {
   var errStr="This address is missing a hostname!";
   alert(errStr);
   oObject.focus();
	oObject.select();
   return false;
}
return true;
}
/*
==================================================================
LTrim(string) : Returns a copy of a string without leading spaces.
==================================================================
*/
function LTrim(str)
{
   var whitespace = new String(" \t\n\r");

   var s = new String(str);

   if (whitespace.indexOf(s.charAt(0)) != -1) {
      // We have a string with leading blank(s)...

      var j=0, i = s.length;

      // Iterate from the far left of string until we
      // don't have any more whitespace...
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;

      // Get the substring from the first non-whitespace
      // character to the end of the string...
      s = s.substring(j, i);
   }
   return s;
}

/*
==================================================================
RTrim(string) : Returns a copy of a string without trailing spaces.
==================================================================
*/
function RTrim(str)
/*
   PURPOSE: Remove trailing blanks from our string.
   IN: str - the string we want to RTrim

*/
{
   // We don't want to trip JUST spaces, but also tabs,
   // line feeds, etc.  Add anything else you want to
   // "trim" here in Whitespace
   var whitespace = new String(" \t\n\r");

   var s = new String(str);

   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      // We have a string with trailing blank(s)...

      var i = s.length - 1;       // Get length of string

      // Iterate from the far right of string until we
      // don't have any more whitespace...
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;


      // Get the substring from the front of the string to
      // where the last non-whitespace character is...
      s = s.substring(0, i+1);
   }

   return s;
}

/*
=============================================================
Trim(string) : Returns a copy of a string without leading or trailing spaces
=============================================================
*/
function Trim(str)
/*
   PURPOSE: Remove trailing and leading blanks from our string.
   IN: str - the string we want to Trim

   RETVAL: A Trimmed string!
*/
{
   return RTrim(LTrim(str));
}

function isValidUrl(url)
{
        isValidUrlReturn=false;
        if(((url.indexOf("http://")==0 && url.indexOf(".")> 7 ) || (url.indexOf("https://")==0 && url.indexOf(".")> 8 )) && url.indexOf("..")==-1 ) isValidUrlReturn=true;
        return isValidUrlReturn;
}

function check_float(price,numOfDigitBfrDecimal)
{
	var frmarry =	price.split('.');
		if(frmarry[0].length>numOfDigitBfrDecimal){
			return false;
		}else{
			return true;
		}
}

