/*===============================================================
/
/ Last Updated: June-2001
================================================================*/

/*****************
Browsercheck:
******************/
ie=document.all?1:0
n=document.layers?1:0

/********************************************************************************
*****	FUNCTION THAT WILL REMOVE LEADING SPACES IN TEXTBOXES			   ******
********************************************************************************/

// whitespace characters
var whitespace = " \t\n\r";

function BrowserCheck()
{
	var x, y 
	/* x = 1 then netscape */
	/* y = 1 then explorer */
	x=document.layers?1:0;
	y=document.all?1:0;
	if (x!=0)
	{
		return(false);
	} 
	else
	{
		return(true);
	}
	/*if BrowserCheck = false then it's netscape*/
	/*if BrowserCheck = true then it's ie*/
}


/****************************************************************
***********		Check whether string s is empty. ****************
****************************************************************/
function IsEmail(valEmail)
{
	var sEmail="";
	var iFound, f = "@"; 
	sEmail += valEmail;
	if (Trim$(sEmail)=="")
	{
		return(false);
	}

	iFound = sEmail.indexOf(f)
	if (iFound >= 0)
	{
		return (true);
	}
	else
		return (false);
}


/****************************************************************
***********		Check whether string s is empty. ****************
****************************************************************/
function IsEmpty(s)
{
	return ((s == null) || (s.length == 0))
}

function Trim$(s)
{

	var indx1=0;
	var indx2=s.length-1;
	var m=0;

	for (var m=0;(m < s.length) && (s.charAt(m) == " ");m++,indx1=m);

	if (indx1 != s.length)
		for (var m=s.length-1; (m>=0) && (s.charAt(m) == " ");m--,indx2=m);

	if (indx1 == s.length)
	{
		return "";
	}

	var i;
    // Is s empty?
    if (IsEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {
         // Check that current character isn't whitespace.
         var c = s.charAt(i);

         if (whitespace.indexOf(c) == -1) return s;
    }
    // All characters are whitespace.
    //return true;
    return "";
}


/********************************************************************************
*****	FUNCTION THAT WILL CHECK IF THE DATA ENTERED IS A VALID DATE ENTRY 
******
********************************************************************************/
function IsDate(DateVal)
{
	var newDate,sDate="",s=""
	sDate += DateVal
	newDate = new Date(DateVal)
	s += newDate
	if (s == "NaN")
	{
		return (false);
	}
	else
	{
		var Mo,Yr,Dy,iFound, f = "/", f1 = "-"
		iFound = sDate.indexOf(f)
		if (iFound >= 0)
		{
			Mo = sDate.slice(0,iFound);
			sDate = sDate.slice(iFound+1);
			iFound = sDate.indexOf(f);
			if (iFound >=0)
			{
				Dy = sDate.slice(0,iFound);
				sDate = sDate.slice(iFound+1);
				Yr = sDate
			}
		}
		else
		{
			iFound = sDate.indexOf(f1)
			if (iFound >=0)
			{
				Mo = sDate.slice(0,iFound);
				sDate = sDate.slice(iFound+1);
				iFound = sDate.indexOf(f1);
				if (iFound >= 0)
				{
					Dy = sDate.slice(0, iFound);
					sDAte = sDate.slice(iFound+1)
					Yr = sDate
				}
			}
		}
		var nYr = new Number(Yr), iYr, sYr
		var m1 = 30, m2 = 31, v1 = 28, v2 = 29
		var nMo = new Number(Mo)
		var nDy = new Number(Dy)		
		
		if (nYr < 999)
		{
			nYr = nYr + 2000;
		}

		if (nYr < 1800)
		{
			nYr = nYr - 1800 + 2000;
			/*return (false);*/
		}

		if (nMo < 1)
		{
			return (false);
		}

		if (nMo > 12)
		{
			return (false);
		}

		if (nMo == 1)/** JANUARY **/
		{
			if (nDy > m2)
			{
				return (false);
			}
		}

		if (nMo == 3) /** MARCH **/
		{
			if (nDy > m2)
			{
				return (false);
			}
		}

		if (nMo == 5) /** MAY **/
		{
			if (nDy > m2)
			{
				return (false);
			}
		}

		if (nMo == 7) /** JULY **/
		{
			if (nDy > m2)
			{
				return (false);
			}
		}

		if (nMo == 8) /** AUGUST **/
		{
			if (nDy > m2)
			{
				return (false);
			}
		}

		if (nMo == 10) /** OCTOBER **/
		{
			if (nDy > m2)
			{
				return (false);
			}
		}

		if (nMo == 12) /** DECEMBER **/
		{
			if (nDy > m2)
			{
				return (false);
			}
		}

		if (nMo == 2) /** FEBRUARY **/
		{
			/**var nYr = new Number(Yr), iYr, sYr**/
			iYr = nYr%4;
			if (iYr > 0)
			{
				if (nDy > v1)
				{
					return (false);
				}
			}
			else
			{
				if (nDy > v2)
				{
					return (false);
				}
			}
		}

		if (nMo == 4) /** APRIL **/
		{
			if (nDy > m1)
			{
				return (false);
			}
		}

		if (nMo == 6) /** JUNE **/
		{
			if (nDy > m1)
			{
				return (false);
			}
		}

		if (nMo == 9) /** SEPTEMBER **/
		{
			if (nDy > m1)
			{
				return (false);
			}
		}

		if (nMo == 11) /** NOVEMBER **/
		{
			if (nDy > m1)
			{
				return (false);
			}
		}
	}
return (true);
}


/******************************************************************************************
*****	FUNCTION THAT WILL CHECK IF THE DATE IS LESS THAN OR EQUAL THAN TODAY  
	      *****
******************************************************************************************/
function IsLessThanToday(valDate, valNow)
{
	var strNow, strDate
	strNow = new Date(valNow)
	strDate = new Date(valDate)

	if (Date.UTC(strDate) > Date.UTC(strNow))
	{
		return (false);
	}
}

/******************************************************************************************
*****	FUNCTION THAT WILL CHECK IF THE DATA ENTERED IS A VALID TIME ENTRY			 
******
******************************************************************************************/
function IsTime(valTime)
{	var newTime,sTime="",t="",f1=":"
	var iFound, hh, mm, nhh,nmm, shh="", smm=""
	sTime += valTime
	iFound = sTime.indexOf(f1)
	if (iFound <= 0)
	{
		hh = sTime
		nhh = new Number(hh)
		shh += nhh
		if (shh == "NaN")
			return (false);
		else
		{
			if (nhh > 12 || nhh < 1)
			{
				return (false);
			}
		}
	}
	else
	{
		hh = sTime.slice(0,iFound)
		mm = sTime.slice(iFound+1)
		nhh = new Number(hh)
		shh += nhh
		if (shh == "NaN")
		{
			return (false);
		}
		else
		{
			if (nhh > 12 || nhh < 1)
			{
				return (false);
			}
		}
		nmm = new Number(mm)
		smm += nmm
		if (smm == "NaN")
		{
			return (false)
		}
		else
		{
			if (nmm > 59 || nmm < 0)
				{ return
			(false);
			}
		}
	}

}


function IsTime1(valTime)
{	var newTime,sTime="",t="",f1=":"
	var iFound, hh, mm, nhh,nmm, shh="", smm=""
	sTime += valTime
	iFound = sTime.indexOf(f1)
	if (iFound <= 0)
	{
		return (false);
	}
	else
	{
		hh = sTime.slice(0,iFound)
		mm = sTime.slice(iFound+1)
		nhh = new Number(hh)
		shh += nhh
		if (shh == "NaN")
		{
			return (false);
		}
		else
		{
			if (nhh > 12 || nhh < 1)
			{
				return (false);
			}
		}
		nmm = new Number(mm)
		smm += nmm
		if (smm == "NaN")
		{
			return (false)
		}
		else
		{
			if (nmm > 59 || nmm < 0)
				{ return
			(false);
			}
		}
	}

}


/******************************************************************************************
*****	FUNCTION THAT WILL CHECK IF THE DATA ENTERED IS A VALID AMOUNT				 
******
******************************************************************************************/
function IsAmount(valAmount)
{
  var checkOK = "0123456789.,";
  var checkStr = valAmount;
  var allValid = true;
  var decPoints = 0;
  var numDiv = 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;
    }
    if (ch == ".")
    {
      if (ch.length > 15)
      {
		allValid = false;
      }
      else
      {
		allNum += ".";
		decPoints++;
	  }
    }
    else if (ch != ",")
      allNum += ch;
  }

  if (checkStr.slice(0,1) == ",")
  {
	numDiv++;
  }

  if (!allValid)
  {
    return (false);
  }

  if (decPoints > 1)
  {
    return (false);
  }

  if (numDiv > 0)
  {
	return (false);
  }
  return (true);
}


/***********************************************************************************
*****	FUNCTION THAT WILL CHECK IF THE DATA ENTERED IS A VALID NUMERIC ENTRY 
******
***********************************************************************************/
function IsNumber(valNumber)
{
	var checkOK = "0123456789";
	var checkStr = valNumber;
	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 THAT WILL CHECK IF THE DATA ENTERED IS A VALID RATE ENTRY	  
******
***********************************************************************************/
function IsRate(valRate)
{
  	var checkOK = "0123456789-.";
  	var checkStr = valRate
  	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;
    	}
    	if (ch == ".")
    	{
    		allNum += ".";
    		decPoints++;
    	}
    	else
    		allNum += ch;
  	}

	if (!allValid)
	{
		return (false);
	}

  	if (decPoints > 1)
  	{
    	return (false);
  	}
	return (true);
}

/***********************************************************************************
*****	FUNCTION THAT WILL CHECK IF THE DATA ENTERED IS A VALID DATE ENTRY 
******
***********************************************************************************/
function CheckDate()
{
	if (window.event.keyCode==13)
	{
		return true
	}
	if ((window.event.keyCode >=47) && (window.event.keyCode<=57))
		return true;
	else
		return false;
}


/***********************************************************************************
*****	FUNCTION THAT WILL CHECK IF THE DATA ENTERED IS A VALID AMOUNT ENTRY 
******
***********************************************************************************/
function CheckAmount()
{
	if (window.event.keyCode==13)
	{
		return true
	}

	if ((window.event.keyCode == 44) || (window.event.keyCode == 46))
	{
		return true
	}

	if ((window.event.keyCode >=48) && (window.event.keyCode<=57))
		return true;
	else
		return false;
}


/***********************************************************************************
*****	FUNCTION THAT WILL CHECK IF THE DATA ENTERED IS A VALID NUMERIC ENTRY 
******
***********************************************************************************/
function CheckNumber()
{
	if (window.event.keyCode==13)
	{
		return true
	}

	if ((window.event.keyCode >=48) && (window.event.keyCode<=57))
		return true;
	else
		return false;
}


/***********************************************************************************
*****	FUNCTION THAT WILL CHECK IF THE DATA ENTERED IS A VALID RATE/DECIMAL 
ENTRY *
***********************************************************************************/
function CheckRate()
{
	if (window.event.keyCode==13)
	{
		return true
	}

	if (window.event.keyCode == 46)
	{
		return true
	}

	if ((window.event.keyCode >=48) && (window.event.keyCode<=57))
		return true;
	else
		return false;
}


/***********************************************************************************
*****	FUNCTION THAT WILL CHECK IF THE DATA ENTERED IS A VALID TIME ENTRY 
*********
***********************************************************************************/
function CheckTime()
{
	if (window.event.keyCode==13)
	{
		return true
	}

	if (window.event.keyCode==58)
	{
		return true
	}

	if ((window.event.keyCode >=47) && (window.event.keyCode<=57))
		return true;
	else
		return false;
}


/***********************************************************************************
*****	FUNCTION THAT WILL CHECK IF THE DATA ENTERED IS A VALID CARD NUMBER 
********
*****	FOR A SPECIFIC CARD TYPE
***********************************************************************************/
function Check_CardNumber(varCardType)
{
	if (varCardType == "Visa Gold International")
	{
		if (FrontPage_Form1.Card1.value != "4921")
		{
			return (false);
		}
	}

	if (varCardType == "Visa Gold Local")
	{
		if (FrontPage_Form1.Card1.value != "4921")
		{
			return (false);
		}
	}

	if (varCardType == "Visa Classic International")
	{
		if (FrontPage_Form1.Card1.value != "4921")
		{
			return (false);
		}
	}

	if (varCardType == "Visa Classic Local")
	{
		if (FrontPage_Form1.Card1.value != "4921")
		{
			return (false);
		}
	}

	if (varCardType == "MasterCard Gold International")
	{
		if (FrontPage_Form1.Card1.value != "5456")
		{
			return (false);
		}
		if (FrontPage_Form1.Card2.value != "3600")
		{
			return (false);
		}
	}

	if (varCardType == "MasterCard Classic International")
	{
		if (FrontPage_Form1.Card1.value != "5456")
		{
			return (false);
		}
		if (FrontPage_Form1.Card2.value != "3500")
		{
			return (false);
		}
	}

	if (varCardType == "MasterCard Classic Local")
	{
		if (FrontPage_Form1.Card1.value != "5417")
		{
			return (false);
		}
	}

	if (varCardType == "JCB Gold")
	{
		if (FrontPage_Form1.Card1.value != "3562")
		{
			return (false);
		}
		if (FrontPage_Form1.Card2.value != "7800")
		{
			return (false);
		}
	}

	if (varCardType == "JCB Standard")
	{
		if (FrontPage_Form1.Card1.value != "3562")
		{
			return (false);
		}
		if (FrontPage_Form1.Card2.value != "7700")
		{
			return (false);
		}
	}

	if (varCardType == "American Express Standard International")
	{
		if (FrontPage_Form1.Card1.value != "0377")
		{
			return (false);
		}
		if (FrontPage_Form1.Card2.value != "6710")
		{
			return (false);
		}
	}

	if (varCardType == "American Express Gold International")
	{
		if (FrontPage_Form1.Card1.value != "0377")
		{
			return (false);
		}
		if (FrontPage_Form1.Card2.value != "6700")
		{
			return (false);
		}
	}
	return (true);
}


/***********************************************************************************
*****	FUNCTION THAT WILL CHECK IF THE STRING IS A VALID USERNAME
*****   THAT IS WITHOUT SPECIAL ASCII CHARACTERS
*****	VALID CHARACTERS ARE A-Z, a-z, 0-9 and underscore, no spaces	
***********************************************************************************/
function ValidUserName(strUserName)
{
	if (Trim$(strUserName)=="")
	{
		return(false);
	}

  	var checkOK = "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ";
  	var notOK = "0123456789";
  	var checkStr = strUserName
  	var allValid = true;
  	var blankspace = 0;
  	var allChar = "";
  		
  	ch = checkStr.charAt(0)
  	for (j = 0; j < notOK.length; j++)
  	if (ch == notOK.charAt(j))
  	{
  		return(false);
  	}
  	
  	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 (ch == " ")
    	{
    		allChar += " ";
    		blankspace++;
    	}
    	else
    		allChar += ch;
  	}

	if (!allValid)
	{
		return (false);
	}

  	if (blankspace > 1)
  	{
    	return (false);
  	}
	return (true);
}


/***********************************************************************************
*****	FUNCTION THAT WILL CHECK IF THE STRING IS A VALID PASSWORD ENTRY
*****   THAT IS WITHOUT SPECIAL ASCII CHARACTERS
*****	VALID CHARACTERS ARE A-Z, a-z, 0-9 and underscore, no spaces	
***********************************************************************************/
function ValidPassword(strPassword)
{
	if (Trim$(strPassword)=="")
	{
		return(false);
	}

  	var checkOK = "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ";
  	var notOK = "0123456789";
  	var checkStr = strPassword
  	var allValid = true;
  	var blankspace = 0;
  	var allChar = "";
  		
  	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 (ch == " ")
    	{
    		allChar += " ";
    		blankspace++;
    	}
    	else
    		allChar += ch;
  	}

	if (!allValid)
	{
		return (false);
	}

  	if (blankspace > 1)
  	{
    	return (false);
  	}
	return (true);
}

