function openWin(page){
	window.open(page,"nnn","menubar=no,width=550,height=380,toolbar=no, scrollbars=no");
}


function isValidExpDate(ccMonth,ccYear,fieldLabel,required)
{
	var result = true;

 	if (result && (ccMonth.length>0) &&  (ccYear.length>0))
 	{
 		var expired = false;

		var month = parseInt(ccMonth);
		var year = parseInt(ccYear);
 			
		var now = new Date();
		var nowMonth = now.getMonth() + 1;
		var nowYear = now.getFullYear();
		
		expired = (nowYear > year) || ((nowYear == year ) && (nowMonth > month));
		
  		if (expired)
		{
			setAlert("expmonth","Credit Card Expiration Invalid",formName);
		}
	} 
	return result;
}
function isCanadianPostCode(entry,field){ 
var result=true;
strlen = entry.length; if (strlen != 6) {result=false;}
entry=entry.toUpperCase();        // in case of lowercase characters
if ('ABCEHJKLMNPRSTVXY'.indexOf(entry.charAt(0)) < 0) {result=false;}
if ('0123456789'.indexOf(entry.charAt(1)) < 0) {result=false;}
if ('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(2)) < 0) {result=false;}
if ('0123456789'.indexOf(entry.charAt(3)) < 0) {result=false;}
if ('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(4)) < 0) {result=false;}
if ('0123456789'.indexOf(entry.charAt(5)) < 0) {result=false;}
	if (!result){
		setAlert("zip","Zip Invalid",formName);
	}
	return result;
}

function isUSPostCode(entry,field){
var result = true;
strlen = entry.length; 
	if (strlen != 5) {result=false;}
	for (k = 0; k < strlen; k++){
		if ('0123456789'.indexOf(entry.charAt(k)) < 0) {result=false;}
	}
	if (!result){
		setAlert("zip","Zip Invalid",formName);
	}
	return result;
}
function validateCCNum(cardType,cardNum)
{
	var result = false;
	//alert(cardType);
	cardType = cardType.toUpperCase();
	
	var cardLen = cardNum.length;
	var firstdig = cardNum.substring(0,1);
	var seconddig = cardNum.substring(1,2);
	var first4digs = cardNum.substring(0,4);

	switch (cardType)
	{
		case "VISA":
			result = ((cardLen == 16) || (cardLen == 13)) && (firstdig == "4");
			break;
		case "AMEX":
			var validNums = "47";
			result = (cardLen == 15) && (firstdig == "3") && (validNums.indexOf(seconddig)>=0);
			break;
		case "MASTERCARD":
			var validNums = "12345";
			result = (cardLen == 16) && (firstdig == "5") && (validNums.indexOf(seconddig)>=0);
			break;
		case "DISCOVER":
			result = (cardLen == 16) && (first4digs == "6011");
			break;
		case "DINERS":
			var validNums = "068";
			result = (cardLen == 14) && (firstdig == "3") && (validNums.indexOf(seconddig)>=0);
			break;
	}
	return result;
}
function validCCForm(ccTypeField,ccNumField,ccExpField)
{
	var result = isValidCreditCardNumber(ccNumField,ccTypeField.value,"Credit Card Number",true) &&
		isValidExpDate(ccExpField,"Expiration Date",true);
	return result;
}

function LuhnCheck(str) 
{
  var result = true;

  var sum = 0; 
  var mul = 1; 
  var strLen = str.length;
  
  for (i = 0; i < strLen; i++) 
  {
    var digit = str.substring(strLen-i-1,strLen-i);
	var tproduct = parseInt(digit ,10) * mul;
	//alert( tproduct );
    if (tproduct >= 10){
      sum += (tproduct % 10) + 1; //alert("greater then 10; sum: " + sum);
    }else{
      sum += tproduct; //alert("NOT greater then 10; sum: " + sum);
	}
    if (mul == 1)
      mul++;
    else
      mul--;
  }
  if ((sum % 10) != 0)
    result = false;
    
  return result;
}

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 isValidCreditCardNumber(formField,ccType,fieldLabel,required)
{
	var result = true;
 	var ccNum = formField;
 
  	if (result && (formField.length>0))
 	{ 
 		if (!allDigits(ccNum))
 		{
			setAlert("ccnumber","Credit Card Number Invalid",formName);
		}

		if (result)
 		{ 
  			if (!LuhnCheck(ccNum) || !validateCCNum(ccType,ccNum))
 			{
				setAlert("ccnumber","Credit Card Number Invalid",formName);
			}
		} 
	} 
	
	return result;
}

function testNull(obj){
	obj = eval(obj);
	//alert(obj);
	if( obj == null ){
		alert("It's Null");
	}
}

function GetRadioValue(rArray)
{
	for (var i=0;i<rArray.length;i++)
	{
		if (rArray[i].checked)
			return rArray[i].value;
	}
	
	return null;
}
