function popupSurvey(fromPage, toPage, refid, windowprops)  {
   if(windowprops==null){
      windowprops = "width=515,height=260,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=yes";
   }

   var winleft = (screen.width / 2) - (515 / 2);
   var wintop = (screen.height / 2) - (260 / 2);
   windowprops=windowprops+",top="+wintop+",left="+winleft;

   if (document.all) {
      var top=self.screenTop; 
      if (top>9000) {
         window.open(toPage+"?FROM_PAGE="+fromPage+"&REF_ID="+refid, "", windowprops);
      }
   }
   else {
      var top = window.outerWidth;
      if (top==0) {
         window.open(toPage+"?FROM_PAGE="+fromPage+"&REF_ID="+refid, "", windowprops);
      }
   }
}

function isDollar(amount){
   if(amount==null || amount.length==0){
      return false;
   }

   var start=0;
   if(amount.charAt(0)=='-'){
      if(amount.length==1)
      return false;
      start=1;
   }
   
   var numOfDot=0;
   for(var i=start; i<amount.length; i++){
      if(amount.charAt(i)=='.' || (amount.charAt(i)>=0 && amount.charAt(i)<=9)){
         if(amount.charAt(i)=='.'){
            numOfDot++;
         }
         if(numOfDot>1){
            return false;
         }
      }
      else{
         return false;
      }
   }

   return true;
}

function isZip(s){
   return digitCount(s)==5 && s.length==5;
}

function isNum(s){
  if(isBlank(s)){
    return false;
  }
  var numOfDot=0;
  for(i=0; i<s.length; i++){
    if(s.charAt(i)<'0' || s.charAt(i)>'9'){
      if(s.charAt(i)=='.'){
         numOfDot++;
      }
      if(numOfDot>1 || s.charAt(i)!='.'){
         return false;
      }
    }
  }
  return true;
}
// Validate Credit Card
function isValidCC(s){

    if(!isValidCCNumber(s)){
        return false;
    }
    if(!isNoDup(s))
    {
        return false;
    } 
    return true;
}
// Validate Routing Number
function isValidRN(s){
   

    if(!isValidRNNumber(s))
	{
        return false;
    }
//	alert("checking NoDup() ");
    if(!isNoDup(s))
    {
        return false;
    } 
    return true;
}


// Validate Account Number
function isValidAN(s){

    
     if(!isValidANNumber(s))
     {
        return false;
     } 
     if(!isNoDup(s))
     {
        return false;
     } 
     return true;
}
function isNoDup(s){

    var myDupCount=0;
	var j=1;
	var k=0;
	var mark=0;
    
	mark=s.length - 1;

    for(i=0; i<mark; i++)
	{
		if(s.charAt(i) == s.charAt(j)){
			myDupCount++;
		}
		j++;
	}
	if (myDupCount == mark)
	{
//alert("we have a Duper");
		return false;
	}
	return true;
}



function isBlank(s){
    if(s==null || s==""){
        return true;
    }
    
	for(i=0; i<s.length; i++){
		if(s.charAt(i)!=' ' && s.charAt(i)!='\t' && s.charAt(i)!='\n'){
			return false;
		}
	}
	return true;
}


function digitCount(s){
	var count=0;
	for(i=0; i<s.length; i++){
		if(s.charAt(i)>='0' && s.charAt(i)<='9'){
			count++;
		}
	}
	return count;
}

function isValidSSN(firstSeq, secondSeq, thirdSeq){
    return digitCount(firstSeq)==3 && digitCount(secondSeq)==2 && digitCount(thirdSeq)==4;
}

function isValidPhone(areaCode, pre, suf){
    return areaCode.charAt(0)!='0' && digitCount(areaCode)==3 && digitCount(pre)==3 && digitCount(suf)==4;
}

function isLaterDate(mm, dd, yyyy){
   if(isValidDate(mm, dd, yyyy)){
      var now=new Date();
      var aDate=new Date(mm+"/"+dd+"/"+yyyy);
      return now<aDate;
   }
   return false;
}

function checkDate(s){
	if(s==null || s.length!=10){
		return false;
	}
   return isValidDate(s.substring(0,2), s.substring(3,5), s.substring(6));
}

function isValidDate(mm, dd, yyyy){
        mm=mm*1;
        dd=dd*1;
        yyyy=yyyy*1;
        var myDate=new Date(mm+"/"+dd+"/"+yyyy);
        return (myDate.getMonth()==mm-1 && myDate.getDate()==dd && myDate.getFullYear()==yyyy);
}

function getAge(bmon, bday, byear){
   var age = 0 
   var today = new Date();       
   var thisyear = today.getFullYear(); 
   var thismonth = today.getMonth() + 1;   // month starts from 0
   var thisday = today.getDate();    
   age = thisyear - byear;
   if(thismonth==bmon){
      if(thisday<bday){
         age -= 1;
      }
   }
   else if(thismonth<bmon){
      age -= 1;
   }
   return age;
}

function isValidDate_old(mm, dd, yyyy){ //Note: January==1
var daysInMonth=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  if(mm>12 || mm<1){
    return false;
  }
  if(yyyy<1900){
    return false;
  }
  var numDays=daysInMonth[mm-1];
  if(mm==2 && isLeapYear(yyyy)){
    numDays++;
  }
  return dd<=numDays;
}

function isLeapYear(yyyy){
  if(yyyy%4!=0)
    return false;
  if(yyyy%100==0 && yyyy%400!=0)
    return false;
  return true;
}

function isValidEmail_old(email){
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) return (str.indexOf(".") > 2) && (str.indexOf("@")> 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(email) && r2.test(email));
}

function isValidEmail(email){
   return /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email);
}


var toHaveFocusObj=null;
var errorMsg="";

function resetObjFocus(){
    toHaveFocusObj=null;
}

function setObjFocus(newObj){
    if(toHaveFocusObj==null){
        toHaveFocusObj=newObj;
    }
}

function showObjFocus(){
    if(toHaveFocusObj!=null){
        toHaveFocusObj.focus();
    }
}

function isRadioSelected(radios){
    for(i=0; i<radios.length; i++){
        if(radios[i].checked==true){
            return true;
        }
    }
    return false;
}

function getSelectedRadio(radios){
   if(radios.length==null || radios.length==1){
      if(radios.checked){
         return radios;
      }
   }

   for(var i=0; i<radios.length; i++){
      if(radios[i].checked){
         return radios[i];
      }
   }
   return null;
}

function isValidRNNumber(s){

	var myDigitCount = digitCount(s);

   if(s==null || s==""){
        return false;
    }
	if (myDigitCount != 9)
	{
	   return false;
	}

    return s.length==digitCount(s);
}

function isValidANNumber(s){
    if(s==null || s==""){
        return false;
    }
    return s.length==digitCount(s);
}
function isValidCCNumber(s){
    if(s==null || s==""){
        return false;
    }
    return s.length==digitCount(s);
}

function compareTime(t1, t2){
  return t1-t2;
}

function SetCookie(name, value) {
   var argv = SetCookie.arguments;
   var argc = SetCookie.arguments.length;
   var expires = (argc > 2) ? argv[2] : null;
   var path = (argc > 3) ? argv[3] : null;
   var domain = (argc > 4) ? argv[4] : null;
   var secure = (argc > 5) ? argv[5] : false;
   if(expires==null){
      expires=new Date ();
      expires.setTime(expires.getTime() + (24 * 60 * 60 * 1000 * 365));
   }

   document.cookie = name + "=" + escape (value) +
   ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
   ((path == null) ? "" : ("; path=" + path)) +
   ((domain == null) ? "" : ("; domain=" + domain)) +
   ((secure == true) ? "; secure" : "");
}

function getCookieVal(offset) {
   var endstr = document.cookie.indexOf (";", offset);
   if (endstr == -1) endstr = document.cookie.length;
   return unescape (document.cookie.substring(offset, endstr));
}

function GetCookie(name, defaultValue){
   var arg = name+"=";
   var alen = arg.length;
   var clen = document.cookie.length;
   var i = 0;
   while (i < clen) {
      var j = i + alen;
      if (document.cookie.substring(i, j) == arg) return getCookieVal(j);
      i = document.cookie.indexOf(" ", i) + 1;
      if (i == 0) break;
   }
   return defaultValue;
}



function checkBlank(obj, msg){
   if(isBlank(obj.value)){
      alert(msg);
      obj.focus();
      return false;
   }
   return true;
}

function checkZipcode(obj, msg){
   if(!isZip(obj.value)){
      alert(msg);
      obj.focus();
      return false;
   }
   return true;
}

function checkPhoneArea(obj, msg){
   if(!isNum(obj.value) || obj.value.length!=3){
      alert(msg);
      obj.focus();
      return false;
   }
   return true;
}

function checkPhonePre(obj, msg){
   if(!isNum(obj.value) || obj.value.length!=3){
      alert(msg);
      obj.focus();
      return false;
   }
   return true;
}

function checkPhoneSuf(obj, msg){
   if(!isNum(obj.value) || obj.value.length!=4){
      alert(msg);
      obj.focus();
      return false;
   }
   return true;
}

function checkEmail(obj, msg){
   if(!isValidEmail(obj.value)){
      alert(msg);
      obj.focus();
      return false;
   }
   return true;
}

function makeFullName(firstName, middleInit, lastName){
   var fullName=firstName;
   if(middleInit!="" && middleInit!=null){
      fullName+=' '+middleInit;
   }
   fullName+=' '+lastName;
   return fullName;
}

