
function trim(inputString) 
{
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   
   while (ch == " ") { 
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { 
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { 
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); 
   }
   return retValue;
}		
//check name
function checkname(sText)
{
    var ValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
    var IsNumber=true;
    var Char;
	if(sText.length==0)	
	{
	  return false;
	}
	else
	{
    for (i = 0; i < sText.length && IsNumber == true; i++) 
    { 
        Char = sText.charAt(i); 
        if (ValidChars.indexOf(Char) == -1) 
        {
            IsNumber = false;
        }
    }  
    return IsNumber;
   }	
}
//check name
function checkadd(sText)
{
    var ValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789.";
    var IsNumber=true;
    var Char;
	if(sText.length==0)	
	{
	  return false;
	}
	else
	{
    for (i = 0; i < sText.length && IsNumber == true; i++) 
    { 
        Char = sText.charAt(i); 
        if (ValidChars.indexOf(Char) == -1) 
        {
            IsNumber = false;
        }
    }  
    return IsNumber;
   }	
}
function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}
function inValidCharSet(str,charset)
{
	var result = true;
	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}

function isValidExpDate(formField,fieldLabel,required)
{
	var result = true;
	var formValue = formField;

 	if (result && (formField.length>0))
 	{
 		var elems = formValue.split("/");
 		
 		result = (elems.length == 2); // should be two components
 		var expired = false;
 		
 		if (result)
 		{
 			var month = parseInt(elems[0],10);
 			var year = parseInt(elems[1],10);
 			
 			if (elems[1].length == 2)
 				year += 2000;
 			
 			var now = new Date();
 			
 			var nowMonth = now.getMonth() + 1;
 			var nowYear = now.getFullYear();
 			
 			expired = (nowYear > year) || ((nowYear == year ) && (nowMonth > month));
 			
			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && ((elems[1].length == 2) || (elems[1].length == 4));
 		}
 		
  		if (!result)
 		{
 			alert('Please enter the "' + fieldLabel +'" field.');
			document.mycart.ccmonth.focus();
			result = false;
		}
		else if (expired)
		{
 			result = false;
 			alert('The date for "' + fieldLabel +'" has expired.');
			document.mycart.ccmonth.focus();
		}
	} 
	return result;
}

function checkCC(s) {
  var i, n, c, r, t;
  // First, reverse the string and remove any non-numeric characters.
  r = "";
  for (i = 0; i < s.length; i++) {
    c = parseInt(s.charAt(i), 10);
    if (c >= 0 && c <= 9)
     {
      r = c + r;
     }
    else
	 {
	   return false;
	 }	  
  }
  // Check for a bad string.
  if (r.length <= 1)
    return false;

  // Now run through each single digit to create a new string. Even digits
  // are multiplied by two, odd digits are left alone.
  t = "";
  for (i = 0; i < r.length; i++) {
    c = parseInt(r.charAt(i), 10);
    if (i % 2 != 0)
      c *= 2;
    t = t + c;
  }
  // Finally, add up all the single digits in this string.
  n = 0;
  for (i = 0; i < t.length; i++) {
    c = parseInt(t.charAt(i), 10);
    n = n + c;
  }
  // If the resulting sum is an even multiple of ten (but not zero), the
  // card number is good.
  if (n != 0 && n % 10 == 0)
    return true;
  else
    return false;
}
function isInteger(s)
{
    var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{
    var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone)
{
	var digits = "0123456789";
	var phoneNumberDelimiters = "-";
	var validWorldPhoneChars = phoneNumberDelimiters;
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 10;
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length == minDigitsInIPhoneNumber);
}
// ***********Old Code for Phone Number*********** 

//function checkPhoneNo(strPhone)
//{
// var digits = "0123456789";	
//var phoneNumberDelimiters = "-";	
//var validWorldPhoneChars = phoneNumberDelimiters;
// Minimum no of digits in an international phone no.
//var minDigitsInIPhoneNumber = 10;
//s=stripCharsInBag(strPhone,validWorldPhoneChars);
//return (isInteger(s) && s.length == minDigitsInIPhoneNumber);	
//}

//********* End of old code for phone number***********

//########## New Code for phoone number#########
function checkPhoneNo(strPhone)
 { 
var phoneRE = /^\d\d\d\-\d\d\d-\d\d\d\d$/;  
 if (strPhone.match(phoneRE))
 { 
   return true; 
 }
//else 
//{ 
// alert("The phone number entered is invalid!"); 
//alert("Please enter the correct Phone number in 999-999-1234 format only");  
//return false; 
//} 
}
//############# End of new Code#############


//***** Function to check valid email
function validateEmail(strEmail) 
{ 
	
	var sEmail = strEmail;
	if (sEmail == "")
	{
		return true;
	} else if (sEmail.length > 5) 
	{
		if ((sEmail.indexOf('@') == -1)||(sEmail.indexOf('.') == -1))
		{	
			//alert("Not a valid Email ID");
			return false;
		} 
	} else
	{
		return false;
	}
} 

//***** Function to check for valid date
function validateDATE(strDate)
{
	strFieldVal = strDate;
	if (strFieldVal == "")
	{
		return true;
	} else
	{
	
		var reDatePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
		var matchArray = strFieldVal.match(reDatePat);
		if (matchArray == null) 
		{
			strError = "This date must be in m/d/yyyy or m-d-yyyy format.";
		}
		else
		{
			var strError=""
			var strMonth = matchArray[1]; // parse date into variables
			var strDay = matchArray[3];
			var strYear = matchArray[5];
			if (strMonth < 1 || strMonth > 12) 
			{ // check month range
				strError += "Month must be between 1 and 12.";
			}
			if (strDay < 1 || strDay > 31) 
			{
				strError +="Day must be between 1 and 31.";
			}
			if ((strMonth==4 || strMonth==6 || strMonth==9 || strMonth==11) && strDay==31)
			{
				strError +="Month "+strMonth+" doesn't have 31 days!";
			}
			if (strMonth == 2) 
			{ // check for february 29th
				var blnIsleap = (strYear % 4 == 0 && (strYear % 100 != 0 || strYear % 400 == 0));
				if (strDay>29 || (strDay==29 && !blnIsleap)) 
				{
					strError += "February " + strYear + " doesn't have " + strDay + " days!";
				}
			}
			if (strYear == "0000") 
			{
				strError += "Year cannot be 0000 ";
			}
			
			if (strYear <= 1752) 
			{
				strError += " Year cannot be less than 1753";
			}
			 
		}
		if(strError.length>=1)
		{
		    alert(strError);
			//eval(evalstring + ".focus();")
			//eval(evalstring + ".select();")
			return false;
		}
	}
	return true;
}