function trim(s)
{
		
  // Remove leading spaces and carriage returns
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
  {
    s = s.substring(1,s.length);
  }
  // Remove trailing spaces and carriage returns
  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}
//Alpha Numeric Validation
function isAlphaNumeric(str)
{
  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
  var checkStr = str;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {    
    return false;
  }
	return true ;
}
function getCheckBoxGroupsValues(CheckboxGrps)
{
	var strReturnVal="";
	var chks =document.getElementsByName(CheckboxGrps);	
	for(intCounter=0;intCounter<chks.length;intCounter++)
	{
				if (chks[intCounter].checked)
				{
					if(strReturnVal=="")
					{
						strReturnVal=chks[intCounter].value;
					}
					else
					{
						strReturnVal = strReturnVal + ","+chks[intCounter].value;						
					}	
				}
	}
	return strReturnVal;
}
function parseURI(uri)
{
    return encodeURIComponent(uri);
}
//Decimal Validation
function isDigit(str)
{  
  var checkOK = "0123456789";
  var checkStr = str;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  var deccnt = 0
  for (iCount = 0;  iCount < checkStr.length;  iCount++)
  {
    ch = checkStr.charAt(iCount);    
    for (jCount = 0;  jCount < checkOK.length;  jCount++)
      if (ch == checkOK.charAt(jCount))
        {	  
		  /*if (ch=='.')	
		    deccnt=deccnt+1*/
          break;
        } 
    if (jCount == checkOK.length)
    {
      allValid = false;
      break;
    }
    allNum += ch;
  }  
   if (!allValid) // || deccnt>1)
  {    
    return false;
  }
	return true ;
}
//Numeric Validation
function isNumeric(str)
{
  var checkOK = "0123456789.";
  var checkStr = str;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    if(ch==".")
    {
    	intDotCounter++;
    	if(intDotCounter>1)
    	{
    		allValid = false;
    		break;
    	}
    }
    for (j = 0;  j < checkOK.length;  j++)
    {
    	  if (ch == checkOK.charAt(j))
        break;
     }
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    allNum += ch;
  }
  if (!allValid)
  {    
    return (false);
  }
	return (true) ;
}
function isNumeric(str,fraction)
{
  var checkOK = "0123456789.";
  var checkStr = str;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  var intDotCounter=0;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    if(ch==".")
    {
    	intDotCounter++;
    	if(intDotCounter>1)
    	{
    		allValid = false;
    		break;
    	}
    	else if(checkStr.length-i>fraction+1)
    	{
    			allValid = false;
    			break;
    	}
    }
    for (j = 0;  j < checkOK.length;  j++)
    {  
    		if (ch == checkOK.charAt(j))
        	break;
    }
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    allNum += ch;
  }
  if (!allValid)
  {    
    return (false);
  }
	return (true) ;
}
//Phone Validation
function isPhoneFax(strvalue)
{  
  var str = strvalue;
  var checkOK = "0123456789()+- ";
  var checkStr = str;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
	    if (j == checkOK.length)
  	  {
    	  allValid = false;
      	break;
    	}
    allNum += ch;
  }
  
  if (!allValid)
  { 
    return false;
  }
	return true;
}
//Zip Code Validation
function isZipCode(strvalue)
{  
  var str = strvalue;
  var checkOK = "0123456789()+ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_,./\-";
  var checkStr = str;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
	    if (j == checkOK.length)
  	  {
    	  allValid = false;
      	break;
    	}
    allNum += ch;
  }
  
  if (!allValid)
  { 
    return false;
  }
	return true;
}
function isEMail(strvalue)
{
	var str = strvalue;
	lenstr = trim(str).length;
	nAtr = str.indexOf("@");
	nDot = str.indexOf(".",nAtr);
	nAtr2 = str.indexOf("@",nAtr+1);
	nfDot = str.indexOf(".");
	nlDot = str.indexOf(".",lenstr-1);
	nDDot = str.indexOf("..");
	nComma = str.indexOf(",");
	nSemiColon = str.indexOf(";");
	if (lenstr>4 &&  nAtr>0 && nDot>(nAtr+1) && nAtr2==-1 && nDot<lenstr-1 && nfDot>0 && nlDot==-1 && nDDot==-1 && nComma==-1 && nSemiColon==-1)
	{
		return true;
	}
	else
	{
		return false;
	}
return true ;
}
//Date Validation
function isDate(fd,fm,fy)
{
	fd = parseInt(fd);
	fm = parseInt(fm);
	fy = parseInt(fy);
	
	lipyr=false;	
	div = (fy%4);
	days=28;
	
	if(div==0)
	{
		lipyr=true;
		days = 29;
	}
	if(fm==2 && fd>days)
	{
		return false;
	}
	if((fm==4 || fm==6 || fm==9 || fm==11) && fd==31)
	{
		return false;
	}
	return true;
}
// Initializes a new instance of the StringBuilder class

// and appends the given value if supplied

function StringBuilder(value)
{
    this.strings = new Array("");
    this.append(value);
}

// Appends the given value to the end of this instance.

StringBuilder.prototype.append = function (value)
{
    if (value)
    {
        this.strings.push(value);
    }
}

// Clears the string buffer

StringBuilder.prototype.clear = function ()
{
    this.strings.length = 1;
}

// Converts this instance to a String.

StringBuilder.prototype.toString = function ()
{
    return this.strings.join("");
}
//Date Validation
function isDate(fd,fm,fy)
{
	fd = parseInt(fd);
	fm = parseInt(fm);
	fy = parseInt(fy);
	
	lipyr=false;	
	div = (fy%4);
	days=28;
	
	if(div==0)
	{
		lipyr=true;
		days = 29;
	}
	if(fm==2 && fd>days)
	{
		return false;
	}
	if((fm==4 || fm==6 || fm==9 || fm==11) && fd==31)
	{
		return false;
	}
	return true;
}
function replaceString(strText)
{
	/*strText=strText.replace("é","&#233");
	strText=strText.replace("â€™","&#146");*/
	return strText;
}
// Date Format might be in mdy,dmy OR ymd it will return Date in JAVA SCRIPT FORMAT
function checkDateDiff(fromDt,toDt)
{
	var fromdate = new Date(); // a new instance of from date
	fromdate = DateComponents(fromDt,"ymd");

	var todate = new Date(); // a new instance of to date
	todate = DateComponents(toDt,"ymd");
	
	if (fromdate > todate)
	{
		return(false);
	}
}
function DateComponents(dateStr, format)
	{
		var results = new Array();
		var datePat;
		
		if(format.charAt(0)!="y"){
			datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
		}
		else {
			datePat = /^(\d{1,4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/;
		}
		
		var matchArray = dateStr.match(datePat);
		var rDate = new Date();

		if (matchArray == null) return null; 
		// parse date into variables
		if (format.charAt(0)=="d")
		{ //format=dd/mm 
			results[0] = matchArray[1];
			results[1] = matchArray[3];
			results[2] = matchArray[4];
		} 
		else if(format.charAt(0)=="y")
		{
				results[0] = matchArray[5];
				results[1] = matchArray[3]; 
				results[2] = matchArray[1];
		}
		else { 
				results[1] = matchArray[1];
				results[0] = matchArray[3]; 
				results[2] = matchArray[4];
				
		}
		
		rDate.setFullYear(results[2]);
		rDate.setMonth(results[1]-1);
		rDate.setDate(results[0]);
		return rDate;
}
