document.write('<SCRIPT language=JavaScript src="/js/Util.js"><\/script>');
document.write('<SCRIPT language=JavaScript src="/javascript/BrowserSniffer.js"><\/script>');
document.write('<SCRIPT language=JavaScript src="/javascript/xmlhttprequest.js"><\/script>');
//var favicon_url="favicon.jsp?url="+escape(location.href);
//document.write("<LINK REL='SHORTCUT ICON' HREF='"+favicon_url+"'>");

/* BEGIN of Submit */
var trivia_delim = "<!-- Trivia begins from HERE -->";
var trivia_div = "trivia0";

function getStrFromHttp(url, data) {
  var MyElmt = document.getElementById(trivia_div);
  if (window.opera || window.is_opera) {
    if (MyElmt) MyElmt.innerHTML = "<BR><FONT color=#ff0000 size=3 face=Arial><B>This site does not work with Opera.</B></FONT>";
    return null;
  }

  if (window.is_mac && window.is_ie) {
  //if (window.is_mac && (!window.is_safari || window.is_minor < 1.2)) {
    //if (MyElmt) MyElmt.innerHTML = "<BR><FONT color=#ff0000 size=3 face=Arial><B>This site does not work with Mac IE.<BR>It is compatable with Safari 1.2</B></FONT>";
    if (MyElmt) MyElmt.innerHTML = "<BR><FONT color=#ff0000 size=3 face=Arial><B>This site is compatable with Safari 1.2</B></FONT>";
    //return null;
  }
  else if (window.is_ie && window.is_minor < 5) {
    if (MyElmt) MyElmt.innerHTML = "<BR><FONT color=#ff0000 size=3 face=Arial><B>This site is compatable with IE 5.0 or Later</B></FONT>";
  }

  var pastdata = "";
  for (var i=0; data!=null && i<data.length-1; i+=2) {
    if (pastdata.length>0) pastdata += "&";
    pastdata += data[i] + "=" + ("function"==typeof encodeURIComponent ? encodeURIComponent(data[i+1]) : escape(data[i+1]));
  }

  //var xmlHttp = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
  //var xmlHttp = window.ActiveXObject ? new ActiveXObject("MSXML2.DOMDocument") : new XMLHttpRequest();
  //var xmlHttp = window.ActiveXObject ? new ActiveXObject("MsXml2.XmlHttp") : new XMLHttpRequest();
  var xmlHttp = new XMLHttpRequest();
  //xmlHttp.overrideMimeType("text/xml");
  xmlHttp.open("POST", url, false);
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
  xmlHttp.send(pastdata);
  var response_content = xmlHttp.responseText;
  if(response_content.indexOf(trivia_delim)>=0)
    response_content = response_content.substr(response_content.indexOf(trivia_delim)+trivia_delim.length);
//alert(response_content);
  return response_content;
}

function addData(data, name, value) {
  if (name==null) return data;
  if (value==null) value = "";
  if (data==null) data = new Array();
  data[data.length]=name;
  data[data.length]=value;
  return data;
}

function getDataIndex(data, name) {
  if (data==null || name==null) return -1;
  for (var i=0; i<data.length; i+=2) {
    if (name == data[i]) {
      return i;
    }
  }
  return -1;
}
/* END of Submit */


/* BEGIN of Trivia */
var __trivia_qa = new Array();
function getTriviaQAIndex(dstid) {
  for (var i=0; i<__trivia_qa.length; i+=3) {
    if (dstid == 1*__trivia_qa[i]) {
      return i;
    }
  }
  return -1;
}

function setTriviaQA(str) {
  var qa = str.split(",");
  var index = getTriviaQAIndex(qa[0]);
  if (index == -1) index = 0;
  __trivia_qa[index++] = qa[0];
  __trivia_qa[index++] = qa[1];
  __trivia_qa[index++] = qa[2];
}

function doSubmit(data) {
  var http_response = getStrFromHttp("submitTrivia.jsp", data);
  //alert(http_response);
  var res_data = http_response.split(/[\n\r]+/g);
  var regex = new RegExp("trivia_qa\\s*=");
  for (var i=0; i<res_data.length; i++) {
    res_data[i] = trim(res_data[i]);
    //alert(res_data[i]);
    if (res_data[i].search(regex) == 0) {
      //alert(res_data[i]);
      setTriviaQA(res_data[i].replace(regex, ""));
    }
  }
}

function initTrivia() {
  var form;
  for (var i=0; i<document.forms.length; i++) {
    if (document.forms[i].is_trivia && document.forms[i].is_trivia.value==1) {
      form = document.forms[i];
      break;
    }
  }
  if (!form) return;

  //alert(myOnLoad);

  var data = null, elmts = form.elements;
  for (var i=0; i<elmts.length; i++) {
    if (elmts[i].name.indexOf("element_") != 0 ||
        -1 != getDataIndex(data, elmts[i].name)) {
      continue;
    }
    data = addData(data, elmts[i].name, 0);
  }

  doSubmit(data);
  //alert(__trivia_qa);

  for (var i=0; i<__trivia_qa.length; i+=3) {
    if (1*__trivia_qa[i+2] == 0) {
      continue;
    }

    setRadio(elmts["element_"+__trivia_qa[i]], __trivia_qa[i+2]);
    var show_elmt = 1*__trivia_qa[i+2]==1*__trivia_qa[i+1] ? "correct_"+__trivia_qa[i] : "wrong_"+__trivia_qa[i];
    show_elmt = document.getElementById(show_elmt);
    show_elmt.style.display = "block";
    show_elmt.style.visibility = "visible";
  }
}

var myOnLoad = window.onload;

window.onload = function() {
  if ("function" == typeof myOnLoad) {
    //myOnLoad.call();
  }
  initTrivia();
}

function submitTrivia(elmt, whichButtonClick) {
  var index = getTriviaQAIndex(elmt.name.replace(/^element_/, ""));
  if (index == -1) {
    alert("Wrong operation !!!");
    return;
  }

  var myAnswer;
  if (__trivia_qa[index+2] > 0) {
    myAnswer = __trivia_qa[index+2];
  }
  else {
    myAnswer = elmt.value;
  }

  setRadio(elmt.form.elements[elmt.name], myAnswer);
  var show_elmt = 1*myAnswer==1*__trivia_qa[index+1] ? "correct_"+__trivia_qa[index] : "wrong_"+__trivia_qa[index];
  show_elmt = document.getElementById(show_elmt);
  show_elmt.style.display = "block";
  show_elmt.style.visibility = "visible";

  if (__trivia_qa[index+2] == 0) {
    var data = null;
    if (whichButtonClick) {
      data = addData(data, "whichButtonClick", whichButtonClick);
    }
    data = addData(data, elmt.name, elmt.value);
    doSubmit(data);
    index = getTriviaQAIndex(elmt.name.replace(/^element_/, ""));
  }
}

function isFinished(form) {
  elmts = form.elements;
  for (var i=0; i<elmts.length; i++) {
    if (elmts[i].name.indexOf("element_") != 0) {
      continue;
    }
    var index = getTriviaQAIndex(elmts[i].name.replace(/^element_/, ""));
    if (index == -1) {
      //alert(elmts[i].name);
      return false;
    }
  }

  return true;
}

function setAnswer(elmt) {
  submitTrivia(elmt);
  if (!isFinished(elmt.form)) return;
  show_elmt = document.getElementById("next");
  show_elmt.style.display = "block";
  show_elmt.style.visibility = "visible";
}

function next(form) {
  _checkForm(form);
  if (form.IP_nextpage && form.IP_nextpage.value != "") {
    location.href = form.IP_nextpage.value;
  }
  else if (form.IP_pgcode && form.IP_pgcode.value != "") {
    location.href = "Reg.jsp?init_pgcode="+form.IP_pgcode.value;
  }
}
/* END of Trivia */













var special_delimited_str="<@@@@@@>";

function myKeyDown() {
    if(typeof event!='undefined' && typeof event.altKey!='undefined') {
        var keycode=event.keyCode;
        if (keycode==67 && event.altKey) {
            popupNewWin("hex.jsp",10,10,780,450,0);
            return true;
        }
    }
    return true;
}

if(typeof is_be!='undefined') document.onkeydown=myKeyDown;

function myDblClick() {
    if(typeof event!='undefined') {
        var mobj=event.srcElement;
        if(mobj.type=='radio') {
            mobj.checked=false;
        }
    }
}
// document.ondblclick=myDblClick

function changeQueryStr(queryStr,paraName,value) {
   value=escape(unescape(value));
   var paraName1="&"+paraName+"=";
   var paraName2=paraName+"=";
   var s1="";
   if(queryStr.toLowerCase().indexOf("http:")==0 || queryStr.toLowerCase().indexOf("https:")==0) {
    if(queryStr.indexOf("?")>0) {
        s1=queryStr.substring(0,queryStr.indexOf("?")+1);
        queryStr=queryStr.substring(queryStr.indexOf("?")+1);
    }
    else {
        queryStr="";
        s1=queryStr;
    }
   }

   if(queryStr=="") {
        return paraName2+value;
   }

   var begin1=queryStr.indexOf(paraName1);
   var begin2=queryStr.indexOf(paraName2);
   var end=0;
   if(begin1>0 || begin2==0)    {
      if(begin1>0) {
          end=queryStr.indexOf("&",begin1+1);
          if(end>=0)
              queryStr=queryStr.substring(0,begin1)+paraName1+value+queryStr.substring(end);
          else
              queryStr=queryStr.substring(0,begin1)+paraName1+value;
       }
       else if(begin2==0)   {
          end=queryStr.indexOf("&",begin2+1);
          if(end>0)
            queryStr=paraName2+value+queryStr.substring(end);
          else
            queryStr=paraName2+value;
       }
   }
   else
      queryStr=queryStr+paraName1+value;
   return s1+queryStr;
}




function fieldIsNDigital(fieldObj,bits) {
        var errorMsg1="";
        var errorMsg2="";
        if(arguments[2]!=null)
            errorMsg1 = arguments[2];
        if(arguments[3]!=null)
            errorMsg2 = arguments[3];

        if (fieldObj.value=="") {
            if(errorMsg1.length>0) alert(errorMsg1);
            fieldObj.select();
            fieldObj.focus();
                return false;
        }
        if(fieldObj.value.length!=bits) {
            fieldObj.select();
            if(errorMsg2.length>0) alert(errorMsg2);
            fieldObj.focus();
                return false;
        }
        else
          return fieldIsDigital(fieldObj,errorMsg2);
}

function fieldIsDigital(fieldObj)   {
        var errorMsg="";
        if(arguments[1]!=null)
            errorMsg = arguments[1];
        for(var i=0;i<fieldObj.value.length;i++)    {
            var c=fieldObj.value.charAt(i);
            if(c<'0' || c>'9')  {
                if(errorMsg.length>0)   alert(errorMsg);
                fieldObj.select();
                fieldObj.focus();
                    return false;
            }
        }
        return true;
}

function fieldIsMoney(fieldObj) {
        var errorMsg="";
        if(arguments[1]!=null)
            errorMsg = arguments[1];
        for(var i=0;i<fieldObj.value.length;i++)    {
            var c=fieldObj.value.charAt(i);
            if( !((c>='0' && c<='9') || c=='.' || c=='$' || c==',' || c=='E') ) {
                if(errorMsg.length>0) alert(errorMsg);
                fieldObj.select();
                fieldObj.focus();
                    return false;
            }
        }
        return true;
}


function getMoney(fieldObj) {
    var str=fieldObj.value;
    if(!fieldIsMoney(fieldObj))
        return 0;
    str=replaceString(str,"$","");
    str=replaceString(str,",","");
    str=replaceString(str," ","");
    str=replaceString(str,"E","");
    var m= Math.round(parseFloat(str)*100.00)/100;
    return m;
}


function removeAllOpts(selectObj)   {
    var sltObj=selectObj;
    for(var i=sltObj.length-1;i>=0;i--)
        sltObj.options[i]=null;
}


function selectChanged(field, paraName) {
  if ("undefined" == typeof field || "undefined" == typeof field.options) return false;
  if (!paraName) paraName = field.name;

  var queryStr = location.search.substr(1);
  queryStr = changeQueryStr(queryStr, paraName, field.options[field.selectedIndex].value);
  location.href = location.pathname + "?" + queryStr;

  return true;
}

function gotoPage()
{
  var jspStr = null, queryStr = null, pageNum = null;

  if (arguments.length == 1) {
    jspStr = location.pathname;
    queryStr = location.search.substr(1);
    pageNum = arguments[0];
  } else {
    jspStr = arguments[0];
    queryStr = arguments[1];
    pageNum = arguments[2];
  }

  queryStr=changeQueryStr(queryStr,"page",pageNum);
  location.href=jspStr+"?"+queryStr;
  return true;
}

function setNumEachPage() {
  var jspStr = null, queryStr = null, field = null;

  if (arguments.length == 1) {
    jspStr = location.pathname;
    queryStr = location.search.substr(1);
    field = arguments[0];
  } else {
    jspStr = arguments[0];
    queryStr = arguments[1];
    field = arguments[2];
  }

  queryStr=changeQueryStr(queryStr,"page",1);
  queryStr=changeQueryStr(queryStr,"numEachPage",field.options[field.selectedIndex].value);
  location.href=jspStr+"?"+queryStr;
  return true;
}




//  ======================
function checkYearMonthDay(yearObj,monthObj,dayObj,errorMsg)    {
    var year=parseInt(yearObj.options[yearObj.selectedIndex].value);
    var month=monthObj.options[monthObj.selectedIndex].value;
    var day=dayObj.options[dayObj.selectedIndex].value;
    if(day.length>0 && day.charAt(0)=='0') day = day.substring(1);
    day = parseInt(day);
    var maxDay=31;
    if(month=='01' || month=='03' || month=='05' || month=='07' || month=='08' || month=='10' || month=='12')
        maxDay=31;
    else if (month=='04' || month=='06' || month=='09' || month=='11')
        maxDay=30;
    else if(year%4==0 && month=='02')
        maxDay=29;
    else if(year%4!=0 && month=='02')
        maxDay=28;
    if(day>maxDay) {
        dayObj.focus();
        alert(errorMsg);
        return false;
    }
    else
        return true;
}

function checkMonthDay(monthObj,dayObj,errorMsg)    {
    var year=1972;
    var month=monthObj.options[monthObj.selectedIndex].value;
    var day=dayObj.options[dayObj.selectedIndex].value;
    if(day.length>0 && day.charAt(0)=='0') day = day.substring(1);
    day = parseInt(day);
    var maxDay=31;
    if(month=='01' || month=='03' || month=='05' || month=='07' || month=='08' || month=='10' || month=='12')
        maxDay=31;
    else if (month=='04' || month=='06' || month=='09' || month=='11')
        maxDay=30;
    else if(year%4==0 && month=='02')
        maxDay=29;
    else if(year%4!=0 && month=='02')
        maxDay=28;
    if(day>maxDay) {
        dayObj.focus();
        alert(errorMsg);
        return false;
    }
    else
        return true;
}



function generateDateStrNoHMS(yearObj,monthObj,dayObj)  {
    var year=getSltObjValue(yearObj);
    var month=getSltObjValue(monthObj);
    var day=getSltObjValue(dayObj);

    if(month.length<2) month="0"+month;
    if(day.length<2) day="0"+day;
    return year+"-"+month+"-"+day;
}

function generateDateStr(yearObj,monthObj,dayObj,hObj,mObj,sObj)    {
    var year=getSltObjValue(yearObj);
    var month=getSltObjValue(monthObj);
    var day=getSltObjValue(dayObj);

    var h=getSltObjValue(hObj);
    var m=getSltObjValue(mObj);
    var s=getSltObjValue(sObj);

    if(month.length<2) month="0"+month;
    if(day.length<2) day="0"+day;
    if(h.length<2) h="0"+h;
    if(m.length<2) m="0"+m;
    if(s.length<2) s="0"+s;
    return year+"-"+month+"-"+day+" "+h+":"+m+":"+s;
}

function generateDateWithoutTimeStr(yearObj,monthObj,dayObj)    {
    var year=getSltObjValue(yearObj);
    var month=getSltObjValue(monthObj);
    var day=getSltObjValue(dayObj);


    if(month.length<2) month="0"+month;
    if(day.length<2) day="0"+day;
    return year+"-"+month+"-"+day;
}


function getSltObjValue(field)
{
  if(typeof field!='undefined')
    return field.options[field.selectedIndex].value;
  else
    return "";
}

function getRidOfZeroAtBeginning(str) {
    var cnt=0;
    for(var i=0;i<str.length;i++) {
        if(str.charAt(i)!='0') break;
        cnt++;
    }
    return str.substring(cnt);
}

function setSltFrom(mObj,m0) {
    parseInt(getRidOfZeroAtBeginning(m0+""));
    var values=",";
    for(var i=0;i<mObj.length;i++) {
        var v=parseInt(getRidOfZeroAtBeginning(mObj.options[i].value));
        if(v<m0 || values.indexOf(","+v+",")>=0) {
            mObj.options[i]=null;
            i--;
        }
        values=values+v+",";
    }
}

var sltObjValue_org=new Array();

function recoverSltObj(sltObj) {
    var name=sltObj.name;
    var v=sltObj.options[sltObj.selectedIndex].value
    removeAllOpts(sltObj);
    for(var i=0;i<sltObjValue_org.length/3;i++) {
        var j=i*3;
        if(sltObjValue_org[j]==name) {
            sltObj.options[sltObj.length]=new Option(sltObjValue_org[j+1],sltObjValue_org[j+2],0,0);
            if(v==sltObjValue_org[j+2]) sltObj.options[sltObj.length-1].selected=true;
        }
    }
}

function saveSltItemValue(sltObj) {
    var name=sltObj.name;
    var has_saved=false;
    for(var i=sltObjValue_org.length/3;i>0;i--) {
        var j=(i-1)*3;
        if(sltObjValue_org[j]==name) {
            //sltObjValue_org.splice(j,1);
            has_saved=true;
        }
    }

    if(!has_saved) {
        for(var i=0;i<sltObj.length;i++) {
            sltObjValue_org[sltObjValue_org.length]=name;
            sltObjValue_org[sltObjValue_org.length]=sltObj.options[i].text;
            sltObjValue_org[sltObjValue_org.length]=sltObj.options[i].value;
        }
    }
}

function checkYearMonthDayObj(yearObj, monthObj, dayObj,year,month,day) {
  if(typeof yearObj == 'undefined' || typeof monthObj == 'undefined' || typeof dayObj == 'undefined' )
        return;
  if(typeof earliest_date_sltobj_time=='undefined') 
        return;

  var y0=-9999,m0=0,d0=0;
  if(typeof earliest_date_sltobj_time!='undefined') {
    y0=parseInt(getRidOfZeroAtBeginning(earliest_date_sltobj_time.substring(0,4)));
    m0=parseInt(getRidOfZeroAtBeginning(earliest_date_sltobj_time.substring(5,7)));
    d0=parseInt(getRidOfZeroAtBeginning(earliest_date_sltobj_time.substring(8,10)));
    saveSltItemValue(yearObj);
    saveSltItemValue(monthObj);
    saveSltItemValue(dayObj);
  }

  if(year==y0) {
    setSltFrom(monthObj,m0);
    if(parseInt(getRidOfZeroAtBeginning(month+""))==m0)
        setSltFrom(dayObj,d0);
    else
        recoverSltObj(dayObj);
    day=getSltObjValue(dayObj);
  }else if(y0>0) {
    recoverSltObj(monthObj);
    recoverSltObj(dayObj);
  }
}

function dateValidInDatepicker(year,month,day) {
  if(typeof earliest_date_sltobj_time=='undefined') return true;
  var ymd=parseFloat(getRidOfZeroAtBeginning(year+""))*10000+parseFloat(getRidOfZeroAtBeginning(month+""))*100+parseFloat(getRidOfZeroAtBeginning(day+""));
  var ymd0=parseFloat(replaceString(earliest_date_sltobj_time,"-",""));
  if(ymd>=ymd0) return true;
  else return false;
}

function setYearMonthDay(yearObj, monthObj, dayObj) {
  if(typeof yearObj == 'undefined' || typeof monthObj == 'undefined' || typeof dayObj == 'undefined' )
        return;

  var y0=-9999,m0=0,d0=0;
  if(typeof earliest_date_sltobj_time!='undefined') {
    y0=parseInt(getRidOfZeroAtBeginning(earliest_date_sltobj_time.substring(0,4)));
    m0=parseInt(getRidOfZeroAtBeginning(earliest_date_sltobj_time.substring(5,7)));
    d0=parseInt(getRidOfZeroAtBeginning(earliest_date_sltobj_time.substring(8,10)));
    saveSltItemValue(yearObj);
    saveSltItemValue(monthObj);
    saveSltItemValue(dayObj);
  }
  var year=getSltObjValue(yearObj);
  var month=getSltObjValue(monthObj);
  var day=getSltObjValue(dayObj);
  var month_len=monthObj.options.length;

  if(year==y0) {
    setSltFrom(monthObj,m0);
    month=getSltObjValue(monthObj);
    if(parseInt(getRidOfZeroAtBeginning(month+""))==m0) {
        setSltFrom(dayObj,d0);
    }
    else
        recoverSltObj(dayObj);
    day=getSltObjValue(dayObj);
    month_len=monthObj.options.length;
  }else if(y0>0) {
    recoverSltObj(monthObj);
    recoverSltObj(dayObj);
  }


  if (month == "") return;
  if(!isNaN(month)) month=parseInt(month);

  var maxDay = 0;

  switch (month) {
    case 4:
    case 6:
    case 9:
    case 11:
      maxDay = 30;
      break;
    case 2:
      maxDay = (0 == year%4) ? 29 : 28;
      break;
    default:
      maxDay = 31;
      break;
  }

  if (1*day > maxDay) dayObj.selectedIndex = maxDay;

  if(month_len==13) {
    for (var i=dayObj.length; i<=maxDay+1; i++) {
       dayObj.options[i] = new Option(i, i);
    }
    dayObj.length = maxDay+1;
  }
  else {
    for (var i=dayObj.length; i<maxDay; i++) {
       dayObj.options[i] = new Option(i+1, i+1);
    }
    dayObj.length = maxDay;
  }

  if(year==y0 && month==m0) {
        setSltFrom(dayObj,d0);
        for(var i=dayObj.options.length-1; i>=0; i--) {
           var d2=parseInt(getRidOfZeroAtBeginning(dayObj.options[i].value+""));
           if(d2>maxDay) dayObj.options[i]=null;
        }
  }
  
}


function limitDate(yObj,mObj,dObj) {
    if(typeof earliest_date_sltobj_time=='undefined') return;
    var y0=parseInt(getRidOfZeroAtBeginning(earliest_date_sltobj_time.substring(0,4)));
    var m0=parseInt(getRidOfZeroAtBeginning(earliest_date_sltobj_time.substring(5,7)));
    var d0=parseInt(getRidOfZeroAtBeginning(earliest_date_sltobj_time.substring(8,10)));
    for(var i=0;i<yObj.length;i++) {
        var v=parseInt(getRidOfZeroAtBeginning(yObj.options[i].value));
        if(v<y0) {
            yObj.options[i]=null;
            i--;
        }

    }
    setYearMonthDay(yObj, mObj, dObj);
}

function trim(s)
{
  for (var i=0; i<s.length && s.charAt(i)==' '; i++);
  for (var j=s.length; j>0 && s.charAt(j-1)==' '; j--);
  if (i > j-1) return "";
  return s.substring(i,j);
}


function getArrayByStr() {
    var delimitedStr=",";
    var str="";
    var myArray=new Array();
    if(arguments.length==3) {
        delimitedStr=arguments[0];
        str=arguments[1];
        myArray=arguments[2];
    }
    else if(arguments.length==2) {
        str=arguments[0];
        myArray=arguments[1];
        if(str.indexOf(special_delimited_str)>=0)
            delimitedStr=special_delimited_str;
    }

    str=trim(str);
    if(str.length==0) return myArray;
    while(str.indexOf(delimitedStr)>=0) {
         var v = str.substring(0,str.indexOf(delimitedStr));
         v=trim(v);
         //if(v.length>0)  {
            myArray[myArray.length] = v;
         //}
         str = str.substring(str.indexOf(delimitedStr)+delimitedStr.length);

    }
    myArray[myArray.length] = str;
    return myArray;
}

function replaceString(toReplaceString,preString,postString) {
      var replacedCnt = -1;
      if (arguments[3] != null)
    replacedCnt=arguments[3];
      var start,end;
      var len1=toReplaceString.length;
      var len2=preString.length;
      var len3=postString.length;
      var ptr=0;
      var TEMP="";
      var head="";
      var tail="";
      var i=0;

      while((start=toReplaceString.toLowerCase().indexOf(preString.toLowerCase(),ptr))>=0) {
         // alert(start);
         head=toReplaceString.substring(0,start);
         tail=toReplaceString.substring(start+len2);
         toReplaceString=head+postString+tail;
         ptr=start+len3;
         i++;
         if(replacedCnt>0 && i>=replacedCnt) break;
      }
      return toReplaceString;
  }

function moveList(listObj1,listObj2) {
    for(var i=0;i<listObj1.length;i++) {
        if(listObj1.options[i].selected) {
            var v=listObj1.options[i].value;
            var n=listObj1.options[i].text;
            var len2=listObj2.length;
            listObj2.options[len2]=new Option(n,v,0,0);
            listObj2.options[len2].selected=true;
            listObj1.options[i]=null;
            i--;
        }
    }
    if(listObj2.length>7)
        listObj2.size=7;
    //else
    //  listObj2.size=listObj2.length;
    return true;
}


function setSameValue(form) {
    if(typeof form.same_values=='undefined') return;
    var samevalueFldnames=form.same_values.value;
    var flds=samevalueFldnames.split(",");
    if(flds.length%2!=0) return;
    for(var i=0;flds!=null && i<flds.length/2;i++) {
        if(flds[2*i]=="" || flds[2*i+1]=="") continue;
        var fn1=flds[2*i];
        var fn2=flds[2*i+1];
        var is_v=false;
        if(fn1.indexOf("[")==0 && fn1.indexOf("]")>0 && fn1.lastIndexOf("]")==fn1.length-1 ) {
            is_v=true;
            fn1=fn1.substring(1,fn1.length-1);
        }
        var fld2=eval("form."+fn2);
        if(typeof fld2!='undefined') {
            if(is_v)
                fld2.value=fn1;
            else {
                var fld1=eval("form."+fn1);
                if(typeof fld1!='undefined')
                    fld2.value=fld1.value;
            }
        }
    }
}

function capital(str) {
    var rst="";
    str=trim(replaceString(str,"  "," ")).toLowerCase();
    var strA=str.split(" ");
    for(var i=0;i<strA.length;i++) {
        rst=rst+(i==0?"":" ")+strA[i].substring(0,1).toUpperCase()+strA[i].substring(1);
    }
    return rst;
}




function ChangeCaseForSpecialFields(form){
    if(form==null) return;
    var zipcodeObj=form.zipcode;
    var firstnameObj=form.firstname;
    var lastnameObj=form.lastname;
    if(typeof zipcodeObj!='undefined') {
        //var zipcodeV=replaceString(zipcodeObj.value," ","").toUpperCase();
        //if(zipcodeV.length==6 && zipcodeV.substring(0,1)<='Z' &&  zipcodeV.substring(0,1)>='A')
        //   zipcodeV=zipcodeV.substring(0,3)+" "+zipcodeV.substring(3);
        var zipcodeV=zipcodeObj.value.toUpperCase();
        zipcodeObj.value=zipcodeV;
    }
    if(typeof firstnameObj!='undefined')
        firstnameObj.value=capital(firstnameObj.value);
    if(typeof lastnameObj!='undefined')
        lastnameObj.value=capital(lastnameObj.value);
}

function _checkForm(form0)
{
    var form=arguments[0];

    if(arguments[0]!=null)
            form = form0;

    if ( typeof _preProcessForm !='undefined' ) {
       if(!_preProcessForm(form)) return false;
    }

    if ( typeof _preProcessForm2 !='undefined' ) {
       if(!_preProcessForm2(form)) return false;
    }

    setSameValue(form);
    ChangeCaseForSpecialFields(form);

    if(typeof form.whichButtonClick!='undefined' && trim(form.whichButtonClick.value).indexOf("non_submit")==0)
        return true;

    var delimitedStr=",";
    if(arguments.length==2) {
        delimitedStr=arguments[1];
    }
    else if(typeof form.isrequired_fields!='undefined' && form.isrequired_fields.value.indexOf(special_delimited_str)>=0){
        delimitedStr=special_delimited_str;
    }
    var isrequiredFields = new Array();
    var isrequiredFieldsDisp = new Array();
    if(typeof form.isrequired_fields!='undefined') {
        isrequiredFields = getArrayByStr(delimitedStr,form.isrequired_fields.value,isrequiredFields);
        isrequiredFieldsDisp = getArrayByStr(delimitedStr,form.isrequired_fieldsDisp.value,isrequiredFieldsDisp);
    }

    if(typeof form.isrequired_fields2!='undefined') {
        isrequiredFields = getArrayByStr(form.isrequired_fields2.value,isrequiredFields);
        isrequiredFieldsDisp = getArrayByStr(form.isrequired_fieldsDisp2.value,isrequiredFieldsDisp);
    }

    if(typeof form.isrequired_fields3!='undefined') {
        isrequiredFields = getArrayByStr(form.isrequired_fields3.value,isrequiredFields);
        isrequiredFieldsDisp = getArrayByStr(form.isrequired_fieldsDisp3.value,isrequiredFieldsDisp);
    }

    if ( __checkFields(form,isrequiredFields,isrequiredFieldsDisp) ) {




       if ( typeof form.firstname !='undefined' ) {
          checkName(form.firstname);
       }


       if ( typeof form.lastname !='undefined' ) {
          checkName(form.lastname);
       }

       if ( typeof form.email !='undefined' ) {
          if ( form.email.type != 'hidden' ) {
              if (trim(form.email.value).length>0 && ! checkEmail(form.email) ) {
                 return false;
              }
          }
       }

         return true;


    } else {
       return false;
    }
}

function checkName(field) {
  var name = field.value;
  name = trim(name);
  if ( name == "") return "";

  field.value = name.substr(0, 1).toUpperCase() + name.substr(1);
}


function removeBlank(code, chars)
{
  var newcode = "";

  for (var i=0; i<code.length; i++) {
    if (chars.indexOf(code.charAt(i)) == -1) newcode += code.charAt(i)
  }

  return newcode;
}


function checkEmail(field)
{

  field.value = removeBlank(field.value, " ");

  var em = field.value;
  if (em == "") return false;
  if (em.indexOf(">") != -1 ||
      em.indexOf(",") != -1 ||
      em.indexOf("<") != -1 ||
      em.indexOf(":") != -1 ||
      em.indexOf(";") != -1 ||
      //em.indexOf("'") != -1 ||
      em.indexOf('"') != -1 ||
      em.indexOf("/") != -1 ||
      em.indexOf("?") != -1) {
    printAlert(field);
    return false;
  }
  var arr = field.value.split("@");
  if (arr.length != 2 || arr[0].length == 0) {
    printAlert(field);
    return false;
  }
  arr = arr[1].split(".");
  if (arr.length < 2) {
    printAlert(field);
    return false;
  }
  var index = 0;
  for (; index<arr.length-1; index++) {
    if (arr[index].length == 0) {
      printAlert(field);
      return false;
    }
  }
  if (arr[index].length < 2 || arr[index].length > 4) {
    printAlert(field);
    return false;
  }
  return true;
}


function printAlert(field)
{
  var form = field.form;
  if ( typeof form.js_language_id != 'undefined' ) {
      if ( form.js_language_id.value == "1" )  {
        alert("Vous devez fournir une adresse de courriel valide.");
      } else {
        alert(field.value + "is not a valid email address. " + "Please provide a valid email address!");
      }
  } else {
      alert(field.value + "is not a valid email address. " + "Please provide a valid email address!");
  }

//  field.focus();
//  field.select();
}


function __getMultiTextFields(form) {
    var e = form.elements;
    var text_fields="";
    var tagtype=null;
    var tagname=null;
    var original_tagname=null;
    var objByName=null;


    for(var i=0;e!=null && typeof e!='undefined' && i<e.length;i++) {
        elementObj = e[i];
        if(typeof elementObj=='undefined') continue;
        tagtype = elementObj.type;
        original_tagname = elementObj.name;
        tagname = original_tagname.toLowerCase();
        if(original_tagname.length<=0) continue;
        objByName=e[original_tagname];
        if(objByName.length==null) continue;

        if( (tagtype.toLowerCase().indexOf("text")>=0 || tagtype.toLowerCase().indexOf("password")>=0) && (special_delimited_str+text_fields).indexOf(special_delimited_str+original_tagname+special_delimited_str)<0 ) {
            text_fields=text_fields+original_tagname+special_delimited_str+"["+tagtype+"]"+special_delimited_str;
        }
    }
    if(text_fields.length>0)
        text_fields=text_fields.substring(0,text_fields.length-special_delimited_str.length);
    return text_fields;
}

function getVirtualFieldName(form,tagname) {

    if(typeof form.dttype=='undefined') return tagname;
    if(tagname.indexOf("element_")<0) return tagname;
    var dstid=tagname.substring(8);

    if(isNaN(dstid)) return tagname;
    var dttype=parseFloat(form.dttype.value);
    var found=false;
    if(!isNaN(dttype) && parseFloat(dttype)>=1)
        found=true;

    
    var ele="element_"+dttype+"_"+dstid;
    for(var i=1;i<=100;i++) {
        var obj=eval("form.d_keyid"+(i==1?"":(i+"")));
        if(typeof obj=='undefined') break;

        
        if( (i==1 && obj.value!='0' && obj.value!='') || (i>1 && obj.value!='')  ) found=true;
        ele=ele+"_"+obj.value;
    }
    if(found) return ele;
    else return tagname;
}

function __checkFields(form,isrequiredFields,isrequiredFieldsDisp)
{
    var hasValue = false;
    var elementObj = null;
    var index=0;
    var errmsg="";
    var tagtype=null;
    var tagname=null;
    var original_tagname=null;
    var pos="-1";
    var regex="";
    var e = form.elements;
    var eleType=0;
    var language=0;
    var full_errmsg=false;
    var all_elements_in_formValue=special_delimited_str;
    var raw_elementsA=new Array();
    var phone_elementsA=new Array();


    for(var i=0;e!=null && typeof e!='undefined' && i<e.length;i++) {
        hasValue = true;
        elementObj = e[i];
        if(typeof elementObj=='undefined') continue;
    tagtype = elementObj.type;
    original_tagname = elementObj.name;
    if(typeof elementObj.name=='undefined') continue;
        tagname = original_tagname.toLowerCase();
        if(tagname.indexOf("raw_element_")==0 && getIndexOfArrayByStr(raw_elementsA,tagname.substring("raw_".length))=='-1' ) {
            raw_elementsA[raw_elementsA.length]=tagname.substring("raw_".length);
        }
        else {
            var phoneEleName=getPhoneEleName(tagname);
            if(phoneEleName.length>0 && getIndexOfArrayByStr(phone_elementsA, phoneEleName)=='-1' )
                phone_elementsA[phone_elementsA.length]=phoneEleName;
        }


        if(original_tagname.length<=0) continue;
        if(all_elements_in_formValue.indexOf(special_delimited_str+original_tagname+special_delimited_str)<0) {
            if(tagtype.toLowerCase()=="file" && elementObj.value=="") {
                // continue;
            }
            else
                all_elements_in_formValue=all_elements_in_formValue+getVirtualFieldName(form,original_tagname)+special_delimited_str+"["+tagtype+"]"+special_delimited_str;
        }
        else
            continue;
    if(!isNaN(tagname)) continue;

        if( true ) {
        pos = getIndexOfArrayByStr(isrequiredFields,tagname);
        if(pos.indexOf("_")>=0) {
            regex=pos.substring(pos.indexOf("_")+1);
            pos=pos.substring(0,pos.indexOf("_"));
        }
        if(isNaN(pos)) continue;
        pos=parseInt(pos);
        if(pos<0) continue;

        var mandatory_base_on=trim(getMandatoryBaseOn(isrequiredFields[pos]));
        var fldname_error = getSameValueTextAttrs(isrequiredFields[pos]);
        var same_value_text_name=fldname_error[0];
        var same_value_error_message=fldname_error[1];

        errmsg = trim(isrequiredFieldsDisp[pos]);
        eleType=0;
        language=1;
        full_errmsg=false;
        if(errmsg.indexOf("F-")==0) {
            language=2;
            errmsg=errmsg.substring(2);
        }


        var do_not_add_please = false;

        if ( typeof form.do_not_add_please != 'undefined' ) {
            if ( form.do_not_add_please.value == "1" ) {
               do_not_add_please = true;
            }
        }
        do_not_add_please = true;

        if( do_not_add_please || errmsg.toLowerCase().indexOf("please")==0 || errmsg.toLowerCase().indexOf("in question")==0 || errmsg.toLowerCase().indexOf("veuillez")==0 || errmsg.toLowerCase().indexOf("vous")==0 || errmsg.toLowerCase().indexOf("votre")>=0 || errmsg.toLowerCase().indexOf("olivido")>=0 || isErrorCode(errmsg) )
            full_errmsg=true;
        if(tagtype.indexOf('radio')>=0 || tagtype.indexOf('checkbox')>=0) {
            eleType=1;
            if(!full_errmsg && language==1)
                errmsg = "Please Choose one '" + errmsg + "'";
            else if(!full_errmsg && language==2)
                errmsg=errmsg = "Veuillez choisir une '" + errmsg + "'";
        }else if(tagtype.indexOf('text')>=0  || tagtype.indexOf('password')>=0  || tagtype.indexOf('file')>=0) {
            eleType=2;
            if(!full_errmsg && language==1)
                errmsg = "Please enter the '" + errmsg + "'";
            else if(!full_errmsg && language==2)
                errmsg=errmsg = "Veuillez entrer '" + errmsg + "'";
        }else if(tagtype.indexOf('select')>=0) {
            eleType=3;
            if(!full_errmsg && language==1)
                errmsg = "Please Choose one '" + errmsg + "'";
            else if(!full_errmsg && language==2)
                errmsg=errmsg = "Veuillez choisir une '" + errmsg + "'";
        }


            if(eleType==1) {
                hasValue = false;
                if(!checkMandatoryBaseOn(form,mandatory_base_on))
                    hasValue = true;
                else {
                    elementObj = e[original_tagname];
                    index=1;
                    if(elementObj.length!=null && typeof elementObj.length!='undefined') index=elementObj.length;
                    for(var j=0;j<index;j++) {
                        var obj = null;
                        if(index==1)
                            obj = eval("form."+original_tagname);
                        else
                            obj = eval("form."+original_tagname+"["+j+"]");
                        if(obj.checked) {hasValue = true; break;}
                    }
                }
            }
            else if(eleType==2) {
                hasValue = false;
                if(tagtype.indexOf('file')>=0) {
                    var fileValueObj=eval("form."+tagname+"_filev");
                    if(typeof fileValueObj!='undefined' && fileValueObj.value!='') {
                        hasValue=true;
                    }
                }
                if(!hasValue && !checkMandatoryBaseOn(form,mandatory_base_on))
                    hasValue = true;
                else if(!hasValue) {
                    elementObj = e[original_tagname];
                    hasValue=false;
                    if(elementObj.length!=null && elementObj.length>0) {
                        for(var i=0;i<elementObj.length;i++) {
                        if(__validateValue(regex,trim(elementObj[i].value)) ) {
                                hasValue = true;
                                break;
                            }
                        }
                    }
                    else if(__validateValue(regex,trim(elementObj.value)) ) {
                            hasValue = true;
                    }


                    if( typeof form.elements[same_value_text_name]!='undefined' && same_value_text_name.indexOf("{}")<0 && same_value_text_name.indexOf("[")<0 && hasValue && same_value_text_name.length>0 && typeof eval("form."+same_value_text_name)!='undefined') {
                        if(elementObj.value!=eval("form."+same_value_text_name).value) {
                            hasValue=false;
                            errmsg=same_value_error_message;
                        }
                    }
                }
            }
            else if(eleType==3) {
                if(checkMandatoryBaseOn(form,mandatory_base_on))
                {
                    elementObj = e[original_tagname];
                    if(elementObj.options[elementObj.selectedIndex].value=='' && elementObj.options.length>1 ) {
                        hasValue = false;
                    }
                }
            }
            if(!hasValue) {
                if(!isErrorCode(errmsg)) {
                alert(errmsg);
                }
                else {
                    popUpErrWin(errmsg);
                }

                var obj=eval("form."+original_tagname);
                if(typeof is_be=='undefined' || is_be!="1") {
                    if(typeof obj.type=='undefined')
                        obj[0].focus();
                    else
                        obj.focus();
                } else{
                    try {
                        if(typeof obj.type=='undefined')
                            obj[0].focus();
                        else
                            obj.focus();
                    }catch(error) {
                    }
                }
                
                return false;
            }
            else {
                if(isrequiredFields[pos].indexOf("<%")<0)
                    isrequiredFields[pos]="";
            }
        }
    }
    if(!checkAge(form)) return false;
    setWhichButtonClickValue(form);
    setAllElementsHiddenValue(form,all_elements_in_formValue);
    setMultiList(form,raw_elementsA);
    setPhoneElesValue(form,phone_elementsA);
    setIP_pgcode(form);
    return true;
}


function setIP_pgcode(form) {
    var IP_pgcodesWithCondObj=form.IP_pgcodesWithCond;
    var IP_pgcodeObj=form.IP_pgcode;
    if(typeof IP_pgcodesWithCondObj!='undefined' && trim(IP_pgcodesWithCondObj.value).length>0 ) {
        var code=getIP_pgcode(form,IP_pgcodesWithCondObj.value);
        if(code.indexOf("PG")==0 && code.indexOf("||")>0) {
            var a=new Array();
            a = getArrayByStr("||",code,a);
            code = a[(Math.round(Math.random()*100000000))%(a.length)];
        }
        IP_pgcodeObj.value=code;
    }
}

function getIP_pgcode(form,IP_pgcodesWithCond) {
    IP_pgcodesWithCond=trim(IP_pgcodesWithCond);
    if(IP_pgcodesWithCond.length<=0) return"";
    else {
        var IP_pgcodesWithCondA=new Array();
        getArrayByStr(";",IP_pgcodesWithCond,IP_pgcodesWithCondA);
        for(var i=0;IP_pgcodesWithCondA!=null && i<IP_pgcodesWithCondA.length;i++) {
            var IP_pgcode="";
            var IP_cond="";
            if(IP_pgcodesWithCondA[i].indexOf("[(")>=0) {
                IP_pgcode = IP_pgcodesWithCondA[i].substring(0,IP_pgcodesWithCondA[i].indexOf("[(") );
                IP_cond = IP_pgcodesWithCondA[i].substring(IP_pgcodesWithCondA[i].indexOf("[(")+2);
                if(IP_cond.indexOf(")]")>=0)
                    IP_cond=IP_cond.substring(0,IP_cond.indexOf(")]"));
            }
            else {
                IP_pgcode=IP_pgcodesWithCondA[i];
                return IP_pgcode;
            }
            var meet=meetIP_cond(form,IP_cond);
            if(meet) {
                return IP_pgcode;
            }
        }
        return "";
    }
}

function meetIP_cond(form,IP_conds) {
        var IP_condsA=new Array();
        var fldname="";
        var values="";
        var fldname_values="";

        getArrayByStr("&&",IP_conds,IP_condsA);

        for(var i=0;IP_condsA!=null && i<IP_condsA.length;i++) {
            fldname_values=IP_condsA[i];
            if(fldname_values.indexOf(":")<0) return false;
            fldname=trim(fldname_values.substring(0,fldname_values.indexOf(":")));
            values=","+fldname_values.substring(fldname_values.indexOf(":")+1)+",";
            values=replaceString(values," ","");
            var obj=eval("form."+fldname);
            if(typeof obj=='undefined') continue;
            var oneObj=null;
            var hasValue=false;
            if(typeof obj.options!='undefined') {
                for(var j=0;j<obj.options.length;j++) {
                    if(obj.options[j].selected) {
                        if(values.indexOf(","+obj.options[obj.selectedIndex].value+",")>=0) {
                            hasValue=true;
                            break;
                        }
                    }
                }
            }
            else {
                var otype=null;
                var len=1;
                if(typeof obj.length!='undefined')
                    len = obj.length;
                for(var j=0;j<len;j++) {
                    if(typeof obj.length!='undefined')  oneObj=obj[j];
                    else oneObj=obj;
                    otype=oneObj.type.toLowerCase();
                    if(otype.indexOf("radio")>=0 || otype.indexOf("check")>=0) {
                        if(oneObj.checked && values.indexOf(","+oneObj.value+",")>=0) {
                            hasValue=true;
                            break;
                        }
                    }
                    else if(otype.indexOf("text")>=0 || otype.indexOf("password")>=0 || otype.indexOf("file")>=0 ) {
                        if(values.indexOf(","+oneObj.value+",")>=0) {
                            hasValue=true;
                            break;
                        }
                    }
                }
            }
            if(!hasValue) return false;
        }
        return true;
}


function checkAge(form) {
    var rst=true;
    if(typeof now_datetime!='undefined' && typeof form.birthdate_year!='undefined' && typeof form.birthdate_month!='undefined' && typeof form.birthdate_day!='undefined' && typeof form.required_age_from!='undefined') {
        var age_from=trim(form.required_age_from.value);
        var error_message="";
        var y=form.birthdate_year.options[form.birthdate_year.selectedIndex].value;

        var m= "01";
        if ( form.birthdate_month.selectedIndex >  0 ) {
            m=form.birthdate_month.options[form.birthdate_month.selectedIndex].value;
        }
        if( (m+"").length<2) m="0"+m;

        var d= "01";
        if ( form.birthdate_day.selectedIndex > 0 ) {
            d=form.birthdate_day.options[form.birthdate_day.selectedIndex].value;
        }
        if( (d+"").length<2) d="0"+d;

        if(age_from.indexOf("-")>0) {
            error_message=trim(age_from.substring(age_from.indexOf("-")+1));
            age_from=trim(age_from.substring(0,age_from.indexOf("-")));
            if(error_message.length>0 && !isNaN(age_from) ) {
                age_from=parseInt(age_from);
                var age=0;
                age=getAge(y+"-"+m+"-"+d,now_datetime);
                if(isNaN(age) || age<age_from) {
                    form.birthdate_year.focus();
                    alert(error_message);
                    rst=false;
                }
            }
        }
    }
    return rst;

}

function getMandatoryBaseOn(str) {
    if(str==null || trim(str).length<=0)
        return "";
    str=trim(str);
    var mandatory_base_on="";
    if(str.lastIndexOf(")]")>str.lastIndexOf("[(")) {
        mandatory_base_on=str.substring(str.lastIndexOf("[(")+2, str.lastIndexOf(")]") );
    }
    return mandatory_base_on;
}

function getSameValueTextAttrs(str) {
    var fldname_error=new Array();
    fldname_error[0]="";fldname_error[1]="";
    if(str==null || trim(str).length<=0)
        return fldname_error;
    str=trim(str);


    if(str.indexOf("([")>=0) {
        str=str.substring(str.lastIndexOf("([")+2);
        if(str.indexOf("])")>=0)
            str=str.substring(0,str.lastIndexOf("])"));
    }
    else
        str="";
    var pos=str.indexOf(":");
    if(pos>0) {
        fldname_error[0]=trim(str.substring(0,pos));
        fldname_error[1]=str.substring(pos+1);
    }
    return fldname_error;
}

function setWhichButtonClickValue(form) {
    if(typeof form.whichButtonClick!='undefined' && trim(form.whichButtonClick.value).length==0) {
        form.whichButtonClick.value="submit";
    }
}

function setAllElementsHiddenValue(form,all_elements_in_formValue) {
    var all_elements_in_formObj=form.all_elements_in_form;
    if(typeof all_elements_in_formObj!='undefined') {
        if(all_elements_in_formValue.indexOf(special_delimited_str)==0)
            all_elements_in_formValue=all_elements_in_formValue.substring(special_delimited_str.length);
        if(all_elements_in_formValue.lastIndexOf(special_delimited_str)==all_elements_in_formValue.length-special_delimited_str.length)
            all_elements_in_formValue=all_elements_in_formValue.substring(0,all_elements_in_formValue.length-special_delimited_str.length);
        all_elements_in_formObj.value=all_elements_in_formValue;
    }
}

function setMultiList(form,raw_elementsA) {
    for(var i=0;i<raw_elementsA.length;i++) {
        var mele=eval("form."+raw_elementsA[i]);
        if(typeof mele!='undefined') {
            for(var j=0;j<mele.options.length;j++)
                mele.options[j].selected=true;
        }
    }
}

function setPhoneElesValue(form,phone_elementsA) {
    for(var i=0;i<phone_elementsA.length;i++) {
        var mele=eval("form."+phone_elementsA[i]);
        var mobj=null;
        if(typeof mele!='undefined') {
            mele.value="";
            for(var j=0;j<=100;j++) {
                if(j==0) {
                    mobj=eval("form._"+phone_elementsA[i]+"_area");
                    if(typeof mobj=='undefined')
                        mobj=eval("form."+phone_elementsA[i]+"_area");
                }
                else {
                    mobj=eval("form._"+phone_elementsA[i]+"_part"+j);
                    if(typeof mobj=='undefined')
                        mobj=eval("form."+phone_elementsA[i]+"_part"+j);
                }
                if(typeof mobj=='undefined')
                    continue;
                mele.value=mele.value+"-"+mobj.value;
            }
            if(mele.value.indexOf("-")==0)
                mele.value=mele.value.substring(1);
            var melevalue=mele.value;
            if(trim(replaceString(melevalue,'-',''))=='')
                mele.value='';
        }
    }
}

function getPhoneEleName(tagName) {
    if(tagName==null || trim(tagName)=="")
        return "";
    tagName=trim(tagName);
    var phoneEleName="";
    if(tagName.indexOf("element_")>=0 && (endsWith(tagName,"_area") || tagName.indexOf("_part")>tagName.indexOf("element_")  )) {
        tagName=tagName.substring(tagName.indexOf("element_"));
        if(endsWith(tagName,"_area")) {
            phoneEleName=tagName.substring(0,tagName.lastIndexOf("_area"));
        }
        else if(tagName.indexOf("_part")>tagName.indexOf("element_")) {
            phoneEleName=tagName.substring(0,tagName.lastIndexOf("_part"));
        }
    }
    return phoneEleName;
}


function checkMandatoryBaseOn(form,mandatory_base_on) {
    var baseOnsArray=new Array();
    var hasValueArray=new Array();
    baseOnsArray = getArrayByStr("&&",mandatory_base_on,baseOnsArray);

    var len1=0;
    for(var i=baseOnsArray.length-1;i>=0;i--) {
        var me=trim(baseOnsArray[i]);
        if(me.indexOf(":")>=0)
            me=me.substring(0,me.indexOf(":"));
        if(me.length>0 && typeof eval("form."+me)!='undefined')
            len1++;
    }

    var oneBaseOn="";
    var mobj=null;
    var mv=null;
    var rst=false;
    var hasTheEles=false;
    var mtype="";
    for(var i=0;i<baseOnsArray.length;i++) {
        oneBaseOn=trim(baseOnsArray[i]);

        if(oneBaseOn.length==0) continue;
        mv="";
        if(oneBaseOn.indexOf(":")>0) {
            mv=trim(oneBaseOn.substring(oneBaseOn.indexOf(":")+1));
            oneBaseOn=oneBaseOn.substring(0,oneBaseOn.indexOf(":"));
        }
        mobj=eval("form."+oneBaseOn);
        if(typeof mobj=='undefined') continue;
        hasTheEles=true;
        var valuesArray = getValuesByNameEleObj(mobj);
        if(valuesArray==null) continue;

        if(mv=="" && valuesArray.length>0) hasValueArray[hasValueArray.length]=mobj.name;
        else if(mv!="" && valuesArray.length>0) {
            var mvArray=new Array();
            mvArray=getArrayByStr(",",mv,mvArray);
            for(var j=0;j<mvArray.length;j++) {
                var mv_temp=trim(mvArray[j]);
                for(var k=0;k<valuesArray.length;k++) {
                    if(valuesArray[k]==mv_temp) {
                        var mstr="";
                        if(typeof mobj.length!='undefined') mstr=mobj[0].name;
                        else mstr=mobj.name;
                        hasValueArray = insertNoDuplicationValueToArray(hasValueArray, mstr);
                        break;
                    }
                }
            }
        }
    }
    if(len1<=hasValueArray.length) return true;
    else return false;
}

function insertNoDuplicationValueToArray(a,str) {
    if(typeof a=='undefined' || a==null) return a;
    var hasValue=false;
    for(var i=0;i<a.length;i++) {
        if(a[i]==str) {
            hasValue=true;
            break;
        }
    }
    if(!hasValue) a[a.length]=str;
    return a;
}

function getValuesByNameEleObj(mobj) {
    var myArray=new Array();
    if(typeof mobj=='undefined') return null;
    var mtype=mobj.type;
    if(typeof mtype=='undefined' && typeof mobj.length!='undefined') mtype=mobj[0].type;
    if(typeof mtype=='undefined') return null;
    var oneObj=null;
    mtype=mtype.toLowerCase();

    if(mtype.indexOf("text")>=0 || mtype.indexOf("password")>=0 || mtype.indexOf("file")>=0) {
        if(typeof mobj.length=='undefined') {
           myArray[myArray.length]=mobj.value;
        }
        else {
           for(var i=0;i<mobj.length;i++) {
            myArray[myArray.length]=mobj[i].value;
           }
        }
    }
    else if(mtype.indexOf("radio")>=0 || mtype.indexOf("checkbox")>=0 ) {
        if(typeof mobj.length=='undefined') {
           if(mobj.checked) myArray[myArray.length]=mobj.value;
        }
        else {
           for(var i=0;i<mobj.length;i++) {
            if(mobj[i].checked) myArray[myArray.length]=mobj[i].value;
           }
        }
    }
    else if(mtype.indexOf("select")>=0) {
        for(var i=0;i<mobj.options.length;i++) {
           if(mobj.options[i].selected) myArray[myArray.length]=mobj.options[i].value;
        }
    }
    return myArray;
}


function __validateValue(regex,value) {
    if(value==null) return false;
    if(typeof "test".search!="undefined" && trim(regex).length>0) {
        //alert(regex);
        //if(value.search(regex)<0) 
    if(value.match(regex)==value)
            return true;
        else
            return false;
    } else {
        if(value=="")
            return false;
        else
            return true;
    }
}

function getIndexOfArrayByStr(a,str) {
    if(a==null || a.length<=0)
        return "-1";
    str=trim(str);
    var mstr="";
    var sss="";
    for(var i=0;i<a.length;i++) {
        mstr=trim(a[i]);
        if(mstr.indexOf("{")>=0) {
            sss=trim(mstr.substring(mstr.indexOf("{")+1));
            if(sss.indexOf("}")>=0)
                sss=sss.substring(0,sss.indexOf("}"));
            mstr=trim(mstr.substring(0,mstr.indexOf("{")));
        }
        if(matchVar(mstr.toLowerCase(), str.toLowerCase()))
            return i+"_"+sss;
    }
    return "-1";
}

function endsWith(str, str0)
{
  return -1 != str.indexOf(str0) && str.length == str.lastIndexOf(str0) + str0.length;
}

function matchVar(varStr, str) {
  if (varStr == null || str == null || varStr == "") return varStr == str;
  var flag1 = false, flag2 = false;
  var i1 = -1, i2 = -2;
  var tokens = new Array();
  var s1 = null;

  while ((i1 = varStr.indexOf("<%", i2)) != -1) {
    s1 = varStr.substring(i2 + 2, i1);
    if (i1 == 0) flag1 = true;
    if (s1.length > 0) tokens[tokens.length] = s1;
    i2 = varStr.indexOf("%>", i1);
  }

  s1 = varStr.substr(i2 + 2);
  if (s1.length == 0) flag2 = true;
  else tokens[tokens.length] = s1;

  i1=0;i2=0;
  for (var i=0; i<tokens.length; i++) {
    i1 = str.indexOf(tokens[i],i2);
    if (i1 == -1) return false;
    if (i == 0 && !flag1 && i1 > 0) return false;
    i2=i1 + tokens[i].length;
  }
  return flag2 || endsWith(str, tokens[tokens.length-1]);
}


function isErrorCode(str) {
    if(str.length==8 && str.substring(0,1)=='E' && str.substring(4,5)=='-')
        return true;
    else
        return false;
}


/*
function trippedTextFromHtml(documentObj) {

    var hasLinkHtmls = new Array();
    var addedURLHtmls = new Array();
    var linksNum = 0;
    var str ="";
    var html_original=documentObj.body.innerHTML;

    if(location.href=="http://www.onlineemailmarketing.com/EmailMessageEdit.jsp?modeFlag=edit&emid=2606&pageid=204") {
        lineupTableText(documentObj);
    }

    documentObj.body.innerHTML = replaceString(replaceString(html_original,"<%","<%@@~@@"),"%>","@@~@@%>");

    for(var i=0;i<90000000;i++) {

        if(typeof documentObj.all[i] == 'undefined') break;


        if(documentObj.all[i].tagName == 'A' && trim(documentObj.all[i].innerText).length>0 ) {



            hasLinkHtmls[linksNum]=documentObj.all[i].innerHTML+"</A>";


            var aa=documentObj.all[i].href;
            if(aa.indexOf("<%@@~@@deac")>=0) aa=aa.substring(aa.indexOf("<%@@~@@deac") );
            if(aa.indexOf("<%@@~@@ac")>=0) aa=aa.substring(aa.indexOf("<%@@~@@ac") );


            var ps = "<%@@~@@email_html_anchor_page@@~@@%>";
            if ( aa.indexOf(ps) == (aa.length - ps.length) ) {
//alert("to remove domain");
                aa = removeDomain(aa);
            }


            addedURLHtmls[linksNum] = documentObj.all[i].innerText + " ( " + aa +" ) </A>";


            addedURLHtmls[linksNum] = replaceString(addedURLHtmls[linksNum],"%>/) </A>","%>) </A>");
            addedURLHtmls[linksNum] = replaceString(addedURLHtmls[linksNum],"<%","@@@@@@@@@@@@open@@@@@@@@@@@@");
            addedURLHtmls[linksNum] = replaceString(addedURLHtmls[linksNum],"%>","@@@@@@@@@@@@close@@@@@@@@@@@@");
            linksNum = linksNum + 1;
        }
    }

    var originalHTML=documentObj.body.innerHTML;
    originalHTML=replaceString(originalHTML,"%>/\"","%>\"");
    str = originalHTML +"";
    for(var i=0;i<hasLinkHtmls.length;i++) {
        str=replaceString(str,hasLinkHtmls[i],addedURLHtmls[i],1);
    }

    str = replaceString(str,"<p>","<BR>");
    str = replaceString(str,"</p>","<BR>");

    documentObj.body.innerHTML=str;
    str=documentObj.body.innerText
    documentObj.body.innerHTML=originalHTML;
    str = replaceString(str,"@@@@@@@@@@@@open@@@@@@@@@@@@","<%");
    str = replaceString(str,"@@@@@@@@@@@@close@@@@@@@@@@@@","%>");
    documentObj.body.innerHTML=html_original;

    str = replaceString(replaceString(str,"<%@@~@@","<%"),"@@~@@%>","%>");

    return str;
}
*/


function trippedTextFromHtml(documentObj) {


    var hasLinkHtmls = new Array();
    var addedURLHtmls = new Array();
    var linksNum = 0;
    var str ="";
    //alert(documentObj.body.documentElement);
    var html_original_outer=documentObj.body.outerHTML;
    var html_original=documentObj.body.innerHTML;
    if(trim(html_original).indexOf("<HTML")!=0 && html_original.indexOf("<BODY")<0 && html_original.indexOf("</HTML>")<0) {
         html_original="<HTML><HEAD></HEAD><BODY>"+html_original+"</BODY></HTML>";
    }

    if(location.href=="http://www.onlineemailmarketing.com/EmailMessageEdit.jsp?modeFlag=edit&emid=2606&pageid=204") {
        lineupTableText(documentObj);
    }


    var html_original_b = html_original;


    documentObj.body.innerHTML = replaceString(replaceString(html_original_b,"<%","impossible.start_url.com"),"%>","impossible.end_url.com");


    for(var i=0;i<90000000;i++) {
        if(typeof documentObj.all[i] == 'undefined') break;
        if(documentObj.all[i].tagName == 'A' && trim(documentObj.all[i].innerText).length>0 ) {

            hasLinkHtmls[linksNum]=documentObj.all[i].innerHTML+"</A>";

            var aa=documentObj.all[i].href;

            if(aa.indexOf("impossible.start_url.comdeac")>=0) aa=aa.substring(aa.indexOf("impossible.start_url.comdeac") );
            if(aa.indexOf("impossible.start_url.comac")>=0) aa=aa.substring(aa.indexOf("impossible.start_url.comac") );
//alert(aa);

            var ps = "impossible.start_url.comemail_html_anchor_pageimpossible.end_url.com";
            if ( aa.indexOf(ps) == (aa.length - ps.length) ) {
                aa = removeDomain(aa);
            }

            ps = "impossible.start_url.comremove_link_with_topic_optoutsimpossible.end_url.com";
            if ( aa.indexOf(ps) == (aa.length - ps.length) ) {
                aa = removeDomain(aa);
            }



            ps = "impossible.start_url.com_baseurlimpossible.end_url.com";


            if ( aa.indexOf(ps) >-1 ) {
                aa = "impossible.start_url.com_baseurlimpossible.end_url.com" + "/" + removeDomain(aa);
                //alert("new aa=" + aa);
            }


            addedURLHtmls[linksNum] = documentObj.all[i].innerText + " (" + aa +") </A>";
            addedURLHtmls[linksNum] = replaceString(addedURLHtmls[linksNum],"%>/) </A>","%>) </A>");
            addedURLHtmls[linksNum] = replaceString(addedURLHtmls[linksNum],"<%","@@@@@@@@@@@@open@@@@@@@@@@@@");
            addedURLHtmls[linksNum] = replaceString(addedURLHtmls[linksNum],"%>","@@@@@@@@@@@@close@@@@@@@@@@@@");
            linksNum = linksNum + 1;
        }
    }


    var originalHTML=documentObj.body.innerHTML;
    originalHTML=replaceString(originalHTML,"%>/\"","%>\"");
    str = originalHTML +"";
    for(var i=0;i<hasLinkHtmls.length;i++) {
        str=replaceString(str,hasLinkHtmls[i],addedURLHtmls[i],1);
    }



    str = replaceString(str,"<p>","<BR>");
    str = replaceString(str,"</p>","<BR>");

    documentObj.body.innerHTML=str;
    str=documentObj.body.innerText
    documentObj.body.innerHTML=originalHTML;
    str = replaceString(str,"@@@@@@@@@@@@open@@@@@@@@@@@@","<%");
    str = replaceString(str,"@@@@@@@@@@@@close@@@@@@@@@@@@","%>");
    // documentObj.body.innerHTML=html_original;

    documentObj.write(html_original_outer);
    documentObj.close();

    str = replaceString(replaceString(str,"impossible.start_url.com","<%"),"impossible.end_url.com","%>");
    return str;
}




function removeDomain(s0) {
  var s = trim(s0);
  var pos = s.indexOf("/");
  while ( pos > -1 ) {
      s = s.substring(pos + 1, s.length);
      pos = s.indexOf("/");
  }
  return s;
}


function popUpHelp() {
   var helpcode=arguments[0];

   var scrollbars = 0;
   if(arguments[1]!=null) {
     scrollbars = arguments[1];
   }

//alert("scrollbars=" + scrollbars);

   var winleft=100;var wintop=100;var winwidth=500;var winheight=300;
   var url="helpmsg.jsp?helpcode="+helpcode+"&drdr="+Math.ceil(Math.random()*10000000);
   var sAgent = navigator.userAgent.toLowerCase();
   var sAgent1=navigator.appName.toLowerCase();
   var isNetScape=false;
   if(sAgent.indexOf("netscape")>=0 || sAgent1.indexOf("netscape")>=0)
    isNetScape=true;
   if(!isNetScape) {
     if ( false && scrollbars==0) {
        showModalDialog(url,"","dialogLeft:"+winleft+"px;dialogTop:"+wintop+"px;dialogWidth:"+winwidth+"px;dialogHeight:"+winheight+"px;status:no;help:no;edge:sunken;scroll:no");
     } else {
        showModalDialog(url,"","dialogLeft:"+winleft+"px;dialogTop:"+wintop+"px;dialogWidth:"+winwidth+"px;dialogHeight:"+winheight+"px;status:no;help:no;edge:sunken;scroll:yes");
     }
   }
   else {
    // var winobj=open(url,"","left="+winleft+",top="+wintop+",width="+winwidth+",height="+winheight+",toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0");

    var winobj=null;
    if (  false && scrollbars==0) {
      winobj=open(url,"NVHelp","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0");
    } else {
      winobj=open(url,"NVHelp","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1");
    }
    winobj.focus();
   }
}


function popUpErrWin() {
   var errcode=arguments[0];
   if(errcode!=null && errcode.toLowerCase().indexOf("to url:")==0) {
    var formObj=document["Register"];
    if(formObj==null || typeof formObj=='undefined') formObj=document["register"];
    if( (formObj==null || typeof formObj=='undefined') && document.forms.length>0) formObj=document.forms[0];
    if(formObj!=null && typeof formObj!='undefined') {
        errcode=errcode.substring(7);
        var action0=formObj.action;
        var method0=formObj.method;
        if(typeof formObj.no_submit!='undefined') formObj.no_submit.value="1";
        formObj.action=errcode;
        formObj.method="post";
        formObj.submit();
        if(typeof formObj.no_submit!='undefined') formObj.no_submit.value="0";
        formObj.action=action0;
        formObj.method=method0;
        return;
    }
   }

   if(errcode!=null && !isErrorCode(errcode) ) {
    var url="";
    if(errcode.indexOf("[url:")>0) {
        url=errcode.substring(errcode.indexOf("[url:")+5);
        errcode=errcode.substring(0,errcode.indexOf("[url:"));
        if(url.indexOf("]")>=0)
            url=url.substring(0,url.lastIndexOf("]"));
    }
    alert(errcode);
    if(url.length>0) location.href=url;
    return;
   }
   var reload_mainwin = 0;
   if ( arguments[0] != null ) {
     reload_mainwin = 1;
   }

   var winleft=100;var wintop=100;var winwidth=500;var winheight=300;
   var url="errormsg.jsp?errcode="+errcode+"&drdr="+Math.ceil(Math.random()*10000000)+"&adjustWin=1&reload_mainwin=" + reload_mainwin;
   var sAgent = navigator.userAgent.toLowerCase();
   var sAgent1=navigator.appName.toLowerCase();
   var isNetScape=false;
   if(sAgent.indexOf("netscape")>=0 || sAgent1.indexOf("netscape")>=0)
    isNetScape=true;
   if(!isNetScape) {
        showModalDialog(url,"","dialogLeft:"+winleft+"px;dialogTop:"+wintop+"px;dialogWidth:"+winwidth+"px;dialogHeight:"+winheight+"px;status:no;help:no;edge:sunken;scroll:no");
   }
   else {
    // var winobj=open(url,"","left="+winleft+",top="+wintop+",width="+winwidth+",height="+winheight+",toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0");
    var winobj=open(url,"NV","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0");
    winobj.focus();
   }
}


function popupNewWin(url) {
    var winleft=50;
    var wintop=40;
    var winwidth=600;
    var winheight=400;
    var trackClick=1;
    if(arguments.length==3) {
        winwidth=arguments[1];
        winheight=arguments[2];
        winleft = (screen.width - winwidth) / 2;
        wintop = (screen.height - winheight) / 2;
    }
    else if(arguments.length>=5) {
        winleft=arguments[1];
        wintop=arguments[2];
        winwidth=arguments[3];
        winheight=arguments[4];
        if(winleft==0) {
            winleft = (screen.width - winwidth) / 2;
            wintop = (screen.height - winheight) / 2;
        }
    }
    if(arguments.length>=6) {
        trackClick=arguments[5];
    }
    var popupStep=null;
    if(trackClick==0)
        popupStep=window.open(url,"",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,left='+winleft+',top='+wintop+',width='+winwidth+',height='+winheight+'');
    else if(trackClick==-1)
        popupStep=window.open(url,"",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,left='+winleft+',top='+wintop+',width='+winwidth+',height='+winheight+'');
    else
        popupStep=window.open("gotoPage.jsp?pg="+escape(url),"",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,left='+winleft+',top='+wintop+',width='+winwidth+',height='+winheight+'');
    popupStep.focus();
}

function selectedcountry(form) {
    form.whichButtonClick.value="selected_country";
    form.submit();
}

function selectedcity(form) {
    form.whichButtonClick.value="selected_city";
    form.submit();
}


function selectedcc_country(form) {
    form.whichButtonClick.value="selected_cc_country";
    form.submit();
}


  function foreColor2() {

    var result = window.showModalDialog("selcolor.html","","font-family:Verdana; font-size:12; dialogWidth:30em; dialogHeight:34em" );
    var str = "" + result;
    if ( str != "undefined" )   {
       document.MyForm.bgcoloronthesite.value=result;
    }
  }

  function foreColor3() {

    var result = window.showModalDialog("selcolor.html","","font-family:Verdana; font-size:12; dialogWidth:30em; dialogHeight:34em" );
    var str = "" + result;
    if ( str != "undefined" )   {
       document.MyForm.coloronthesite.value=result;
    }
  }


function lineupTableText(documentObj) {
  var padElement="&nbsp;";
  var allTables = documentObj.body.getElementsByTagName("TABLE");
  var allRows=null;
  var allCols=null;

  for (i=0; i < allTables.length; i++) {
    var rows_array=new Array();
    allRows = allTables[i].rows
    for (y=0; y < allRows.length; y++) {
      allCellsInRow = allRows[y].cells;
      var cols_array=new Array();
      for (x=0; x < allCellsInRow.length; x++) {
        for(var colnum=1;colnum<=allCellsInRow[x].getAttribute('colSpan'); colnum++) {
            if(colnum<=1) {
                cols_array[cols_array.length]=allCellsInRow[x].getAttribute('colSpan');
                cols_array[cols_array.length]=allCellsInRow[x].innerText;
            }
            else {
                cols_array[cols_array.length]=0;
                cols_array[cols_array.length]="";
            }
        }
      }
      rows_array[rows_array.length]=cols_array;
    }
    var maxLenArray=new Array();
    for(var y1=0;y1<rows_array[0].length/2;y1++) {
        var maxLen=0;
        for(var x1=0;x1<rows_array.length;x1++) {
            if(rows_array[x1][y1*2+1].length>maxLen && rows_array[x1][y1*2]<=1) maxLen=rows_array[x1][y1*2+1].length;
        }
        for(var x1=0;x1<rows_array.length;x1++) {
            if(rows_array[x1][y1*2]>1 && rows_array[x1][y1*2+1].length>maxLen)  {
                rows_array[x1][y1*2+3]=rows_array[x1][y1*2+1].substring(maxLen);
                rows_array[x1][y1*2+1]=rows_array[x1][y1*2+1].substring(0,maxLen);
                rows_array[x1][y1*2+2]=rows_array[x1][y1*2]-1;
            }
        }
        maxLenArray[maxLenArray.length]=maxLen;
    }
    for (y=0; y < allRows.length; y++) {
      allCellsInRow = allRows[y].cells;
      var colCnt=0;
      for (x=0; x < allCellsInRow.length; x++) {
          var colspan=allCellsInRow[x].getAttribute('colSpan');
          var maxLen=0;
          for(var maxLenStation=colCnt; maxLenStation<colCnt+colspan; maxLenStation++) {
            maxLen=maxLen+maxLenArray[maxLenStation];
          }
          var pad="";
          for(var colNum=0;colNum<colspan;colNum++) {
             pad=pad+padElement;
          }

          for(var padNum=0;padNum<maxLen-allCellsInRow[x].innerText.length;padNum++) {
            pad=pad+padElement;
          }
          allCellsInRow[x].innerHTML=allCellsInRow[x].innerHTML+pad;
          colCnt=colCnt+colspan;
      }
    }
  }
}


function redirectForSubFrame() {
  if(location.href.indexOf("https://www.penguinsinsider.com")>=0)
    return;
  if (top!=null) {
    var url = top.location.href;
    //alert(url);
      var url2 = getParas(url);
    //alert(url2);


      if ( url2.length > 3 ) {
          location.href= getParas(url);

      }


  }
}


function getParas(url) {
  var pos = url.indexOf("?");
  if ( pos > 0 ) {
    var base= url.substring(0, pos);
    var pos0 = base.lastIndexOf("/");
    if ( pos0 > 0 ) {
      base = base.substring(0, pos0 + 1);
      if ( base.indexOf("http://www.penguinsinsider.com/contest/") > - 1  ) {
          base= "https://www.penguinsinsider.com/contest/";
      } else if ( base.indexOf("http://www.penguinsinsider.com/insider/") > - 1  ) {
          base= "https://www.penguinsinsider.com/insider/";
      }

    } else {
      alert("empty");
      return "";
    }

    var name_val = url.substring(pos + 1);
    if ( name_val == "" ) return "";

    var len = "&redirect=".length;

    var pattern1="&redirect=";
    var pattern2="redirect=";

    var begin1=name_val.indexOf(pattern1);
    var begin2=name_val.indexOf(pattern2);
    var end=0;
    if( begin1>0 || begin2==0)  {
      if( begin1>0 ) {
          end=name_val.indexOf("&",begin1+1);
          if(end >=0 ) {

              var n_v = name_val.substring(0, begin1)+ name_val.substring(end);
              var code = name_val.substring(begin1 + len, end);

              return base + code + "?" + n_v;


          } else {

              var n_v = name_val.substring(0, begin1);
              var code = name_val.substring(begin1 + len);

              return base + code + "?" + n_v;
          }
       }
       else if ( begin2==0 )    {

          end=name_val.indexOf("&",begin2+1);
          len = len - 1;

          if ( end > 0 ) {

            var n_v = name_val.substring(end+1);

            var code = name_val.substring(len, end);

            return base + code + "?" + n_v;

          } else {
            var code = name_val.substring(len);
            return base + code;
          }
       } else {
         return "";
       }
    } else {
      return "";
    }
  } else {
    return "";
  }
}


function getAge(fromDate,toDate) {
    var date1=generateDateObj(fromDate);
    var date2=generateDateObj(toDate);
    if(typeof date1!='object')
        return -9999;
    var age= round((date2 - date1) / 24 / 60 / 60 / 1000 / 365.25)+"";
    if(age.indexOf(".")>=0) age=age.substring(0,age.indexOf("."));
    return parseInt(age);
}

function generateDateObj(yyyy_mm_dd) {
    if(yyyy_mm_dd.length<10 || yyyy_mm_dd.substring(4,5)!='-' || yyyy_mm_dd.substring(7,8)!='-')
        return "Invalid Format";
    var yy1 = yyyy_mm_dd.substring(0,4);
    var mm1 = yyyy_mm_dd.substring(5,7);
    var dd1 = yyyy_mm_dd.substring(8,10);
    if (isNaN(yy1)) { return ("Invalid Year"); }
    if (isNaN(dd1)) { return ("Invalid Day"); }
    if (isNaN(mm1) || (mm1 < 1)   || (mm1 > 12)) { return "Invalid Month"; }

    yy1=1*yy1;
    mm1=1*mm1;
    dd1=1*dd1;
    mm1--;
    if (dd1 < 1)
        dd1 = 1;
    else if ((dd1 > 30) && ((mm1 == 3) || (mm1 == 5) || (mm1 == 8) || (mm1 == 10)))
        dd1 = 30;
    else if ((dd1 > 29) && (mm1 == 1) && LeapYear(yy1))
        dd1 = 29;
    else if ((dd1 > 28) && (mm1 == 1))
        dd1 = 28;
    else if (dd1 > 31)
        dd1 = 31;
    return new Date(yy1,mm1,dd1);
}

function isDate(yyyy_mm_dd) {
    if(yyyy_mm_dd.length!=10 || yyyy_mm_dd.substring(4,5)!='-' || yyyy_mm_dd.substring(7,8)!='-')
        return false;
    var yy1 = yyyy_mm_dd.substring(0,4);
    var mm1 = yyyy_mm_dd.substring(5,7);
    var dd1 = yyyy_mm_dd.substring(8,10);
    if (isNaN(yy1)) { return false; }
    if (isNaN(dd1)) { return false; }
    if (isNaN(mm1) || (mm1 < 1)   || (mm1 > 12)) { return false; }

    yy1=1*yy1;
    mm1=1*mm1;
    dd1=1*dd1;
    mm1--;
    if (dd1 < 1)
        dd1 = 1;
    else if ((dd1 > 30) && ((mm1 == 3) || (mm1 == 5) || (mm1 == 8) || (mm1 == 10)))
        return false;
    else if ((dd1 > 29) && (mm1 == 1) && LeapYear(yy1))
        return false;
    else if ((dd1 > 28) && (mm1 == 1))
        return false;
    else if (dd1 > 31)
        return false;
    return true;
}

function round(x) { return Math.round (x * 100) / 100; }

function LeapYear(year) {
    if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) return true;
    else return false;
}



function popupUpdateUniqueEmailNumberWin(url) {
    var sealWin=window.open(url,"",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,left=200,top=200,width=400,height=300');
    sealWin.focus();
}


function hasSameElt(answer) {

    for (var i=0; i<answer.length;i++) {
      for (var j=i+1; j<answer.length; j++ ) {
        if ( answer[i] >= 0 && answer[j] >= 0 && answer[i] == answer[j] ) return true;
      }
    }
    return false;
}

function getChoiceCnt(radiogrp) {

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

            function csvdownloadConfirm(url,url_in_popup,form) {
               var w=700;
               var h=500;
               var winl = (screen.width - w) / 2;
               var wint = (screen.height - h) / 2;
               var sAgent = navigator.userAgent.toLowerCase();
               var sAgent1=navigator.appName.toLowerCase();
               var isNetScape=false;
               if(sAgent.indexOf("netscape")>=0 || sAgent1.indexOf("netscape")>=0)
                isNetScape=true;
             var aaa=0;
               if(!isNetScape) {
                   var rst=showModalDialog("CSVDownloadDisclaimer.html?drdr="+Math.ceil(Math.random()*10000000),"","dialogLeft:"+winl+"px;dialogTop:"+wint+"px;dialogWidth:"+w+"px;dialogHeight:"+h+"px;status:no;help:no;edge:sunken;scroll:yes");
                   if(typeof rst!='undefined' && rst!=null && rst=="1")  {
                    aaa=1;
                    if(url_in_popup==1)
                        popupWinWithSize(url,w,h);
                    else if(url_in_popup==3) {
                        form.action=url;
                        form.method="post";
                        form.submit();
                    }
                    else
                        location.href=url;
                  }
               }
               return aaa;

            }




function check_remove_link(documentObj, remove_links) {
   if(remove_links=="") return true;
    var has_remove_links=false;
    for(var i=0;i<90000000;i++) {
        if(typeof documentObj.all[i] == 'undefined') break;
        if(documentObj.all[i].tagName == 'A' && trim(documentObj.all[i].innerText).length>0 ) {
            var aa=documentObj.all[i].href;
            if(aa.search(remove_links)>=0) {
                has_remove_links=true;
                break;
            }
        }
    }
    return has_remove_links;
}


function check_remove_links_in_multi_email_content(template_has_remove_links, message_has_remove_links)  {
     if(template_has_remove_links.length!=4 || message_has_remove_links.length!=2) return false;
     var html_template_has_remove_links=template_has_remove_links.substring(0,1);
     var html_template_has_insert_here_variable=template_has_remove_links.substring(1,2);
     var text_template_has_remove_links=template_has_remove_links.substring(2,3);
     var text_template_has_insert_here_variable=template_has_remove_links.substring(3,4);

     var html_message_has_remove_links=message_has_remove_links.substring(0,1);
     var text_message_has_remove_links=message_has_remove_links.substring(1,2);

     var html_ok=check_remove_links_in_email_content(html_template_has_remove_links, html_template_has_insert_here_variable,  html_message_has_remove_links );
     var text_ok=check_remove_links_in_email_content(text_template_has_remove_links, text_template_has_insert_here_variable,  text_message_has_remove_links );
     return html_ok && text_ok;
}

function check_remove_links_in_email_content(template_has_remove_links, template_has_insert_here_variable,  message_has_remove_links )  {
    if(template_has_insert_here_variable=="1") {
        if(template_has_remove_links=="1" || message_has_remove_links=="1")
            return true;
        else
            return false;
    }
    else {
        if(template_has_remove_links=="1")
            return true;
        else
            return false;
    }
}

function checkForm_gc(form) {

    if ( typeof form.isrequired_fields != 'undefined' ) {
      form.isrequired_fields.value = "";
    }
    _checkForm(form);
    form.submit();
}




function Get_Cookie(name) {
  var start = document.cookie.indexOf(name+"=");
  var len = start+name.length+1;
  if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
  if ( start == -1 ) return null;
  var end = document.cookie.indexOf(";",len);
  if ( end == -1 ) end = document.cookie.length;
  return unescape(document.cookie.substring(len,end));
}


function Set_Cookie(name,value,age,path,domain,secure) {
  var expires = null;
  if (age) {
    expires = new Date();
    expires.setTime(expires.getTime()+1000*age);
  }

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

function Delete_Cookie(name,path,domain) {
  if ( Get_Cookie(name) ) {
    var expires = new Date(1);
    document.cookie = name + "=" +
      ((path)   ? ";path="   + path   : "") +
      ((domain) ? ";domain=" + domain : "") +
      ";expires=" + expires.toGMTString();
  }
}

function hloff(elmt) {
  elmt.className = HlOFFcLASS;
}

function hlon(elmt) {
  HlOFFcLASS = elmt.className;
  elmt.className = "click";
}

function mailTo(email,subject,body) {
    var url="mailto:"+email+"?subject="+escape(subject)+"&body="+escape(body);
    location.href=url;
}

function mailit(formObj) {
    if(arguments.length==0) {
        formObj=document.forms[0];
    }
    if(formObj!=null) {
        var email="";
        var subject="";
        var body="";
        if(typeof formObj.emailto_email!='undefined')
            email=formObj.emailto_email.value;
        if(typeof formObj.emailto_subject!='undefined')
            subject=formObj.emailto_subject.value;
        if(typeof formObj.emailto_body!='undefined')
            body=formObj.emailto_body.value;
        var d = new Date();
        body=replaceString(body,"__yyyymmdd","_"+(d.getTime()) );
        mailTo(email,subject,body);
    }
}

    function getSearchByHtml(searchBySql) {
        if(searchBySql==null) return"";
        var item_value="";
        for(var i=0;i<searchBySql.length/2;i++) {
            item_value=item_value+(i==0?"":"`")+searchBySql[2*i];
        }
        var item_valueA=item_value.split("`");
        if(item_valueA==null || item_valueA.length%2!=0) return "";
        var str="";
        str=str+"<select name='searchBy' size='1' >\n";
            str=str+"    <option value='0' >- - - search by one field - - -</option>\n";
        for(var i=0;i<item_valueA.length/2;i++) {
            var item=item_valueA[i*2];
            var value=item_valueA[i*2+1];
            str=str+"<option value=\""+value+"\" >"+item+"</option>\n";
        }
        str=str+"</select>\n";
        return str;
    }

function initSearchByValue(searchBy,searchValue) {
 if(searchBy=="" || 0+searchBy<=0) return;
  if(typeof document.forms=='undefined' || document.forms.length==0) return;
  for(var j=0;j<document.forms.length;j++) {
    var form = document.forms[j];
    if(typeof form.searchBy=='undefined' || typeof form.searchValue=='undefined') continue;
    for ( var i = 0; i < form.searchBy.length; i ++ ) {
      if ( form.searchBy.options[i].value == searchBy+"" ) {
        form.searchBy.selectedIndex = i;
        break;
      }
    }
    form.searchValue.value = searchValue;
  }
}

function searchRecord(field,type,searchBySql)   {
    var searchBy=field.form.searchBy.options[field.form.searchBy.selectedIndex].value;
    if(type==1 && searchBy==0) {
        field.form.searchBy.focus();
        alert("Please select one field to search.");
        return;
    }
        var queryStr = location.href;
    var searchValue = trim(field.form.searchValue.value);
        var search_sql = "";
    if ( type==2 ) {
        searchValue = "";
        searchBy = 0;
        queryStr=changeQueryStr(queryStr,"searchBy",searchBy);
        queryStr=changeQueryStr(queryStr,"searchValue",escape(searchValue));
        queryStr=changeQueryStr(queryStr,"search_sql", "");
        location.href=queryStr;
        return true;
    }

    var searchBy=field.form.searchBy.options[field.form.searchBy.selectedIndex].value;
    for(var i=0;searchBySql!=null && i<searchBySql.length/2;i++) {
        var searchBy2=searchBySql[i*2];
        var searchBy2A=searchBy2.split("`");
        if(searchBy2A.length==2) searchBy2=searchBy2A[1];
        if(searchBy2+""!=searchBy+"") continue;
        search_sql=searchBySql[i*2+1];
        search_sql=replaceString(search_sql,"@@searchValue@@",searchValue);
    }
    queryStr=changeQueryStr(queryStr,"searchBy",searchBy);
    queryStr=changeQueryStr(queryStr,"searchValue",escape(searchValue));
    if(search_sql.length>0 && searchBySql!=null) {
        queryStr=changeQueryStr(queryStr,"search_sql", escape(search_sql));
    }
    location.href=queryStr;
    return true;
}


function setSltObjIntValue(sltObj,v) {
    var found=false;
    for(var i=0;i<sltObj.options.length;i++) {
        if( getRidOfZeroAtBeginning(sltObj.options[i].value+"")==getRidOfZeroAtBeginning(v+"")) {
            sltObj.options[i].selected=true;
            found=true;
        }
    }
    return found;
}


function moveUp(YLoad) {
    if( YLoad.selectedIndex != 0 &&
        YLoad.selectedIndex != -1 &&
        YLoad.length > 1) {
        
        var selIdx = YLoad.selectedIndex;
        var selVal = YLoad.options[selIdx].value;
        var selText = YLoad.options[selIdx].text;
    
        var aboveVal = YLoad.options[selIdx-1].value;
        var aboveText = YLoad.options[selIdx-1].text;
    
        // Swap values
        addOpt( YLoad, selVal, selText, selIdx-1, true );
        addOpt( YLoad, aboveVal, aboveText, selIdx );
    }
} // moveUp

function moveDown(YLoad) {
        if( YLoad.selectedIndex != YLoad.length-1 &&
        YLoad.selectedIndex != -1 &&
        YLoad.length > 1) {
        
        var selIdx = YLoad.selectedIndex;
        var selVal = YLoad.options[selIdx].value;
        var selText = YLoad.options[selIdx].text;
    
        var belowVal = YLoad.options[selIdx+1].value;
        var belowText = YLoad.options[selIdx+1].text;
    
        // Swap values
        addOpt( YLoad, selVal, selText, selIdx+1, true );
        addOpt( YLoad, belowVal, belowText, selIdx );
    }
} // moveDown()

function addOpt( list, val, text, idx, selected ) {
if( selected == null ) selected = false;
    if( idx != null ) { // Insert at index
        list.options[idx] = new Option( text, val, false, selected );
    } else { // New add
        list.options[list.length] = new Option( text, val, false, selected );
    }
}

function setSltObj(sltObj,v) {
    for(var i=0;i<sltObj.options.length;i++) {
        if(sltObj.options[i].value==v)
            sltObj.options[i].selected=true;
    }
}


function fileTypeToBeUploadIsImage(form) {
   var eles=form.elements;
   for(var i=0;i<eles.length;i++) {
    var ele=eles[i];
    var tagtype=ele.type;
    if(tagtype==null || tagtype!="file") continue;
    var file_value=ele.value;
    if(file_value=="") continue;
    file_value=file_value.toLowerCase();
    if(!endsWith(file_value,".jpg") &&
       !endsWith(file_value,".gif") &&
       !endsWith(file_value,".png") &&
       !endsWith(file_value,".png")
    ) {
       return false;
    }
   }
   return true;
}

function popupColorPicker(url){
    popupNewWin(url,0,0,350,350,-1);
}

function refresh_security_image() {
    var img=document.images["security_image"];
    var old_url=img.src;
    var sname=old_url;
    var paras="";
    if(old_url.indexOf("?")>0) {
      paras=old_url.substring(old_url.indexOf("?"));
    } 
    if(sname.indexOf(".simg")>=0) sname=sname.substring(0,sname.indexOf(".simg"));
    if(sname.indexOf("/")>=0) sname=sname.substring(sname.lastIndexOf("/")+1);
    var snameA=sname.split("-");
    var third_part="";
    if(snameA.length>=3) {
        third_part="-"+snameA[2];
    }
    
    var url="/"+Math.round(Math.random()*100000000)+"-1"+third_part+".simg"+paras;
    img.src=url;
}


function isHtmlTag(str) {
    return true;
}

function removeTag(s) {
   var k = 0;
   var s1 = "";
   var s3 = "";
   var s5 = "";
   var i;
   while((i = s.indexOf("<", k)) >= 0)  {
       var j = s.indexOf(">", i + 1);
       if(j == -1)
           break;
       var s2 = s.substring(0, i);
       var s4 = s.substring(j + 1);
       var s6 = s.substring(i + 1, j);
       if(isHtmlTag(s6))
       {
           s = s2 + s4;
           k = j - s6.length - 1;
       } else  {
                k = j + 1;
       }
   }
   return s;
}

function trippedTextFromHtml_for_email_message(documentObj) {

    var hasLinkHtmls = new Array();
    var addedURLHtmls = new Array();
    var linksNum = 0;
    var str ="";
    //alert(documentObj.body.documentElement);
    //var html_original_outer=documentObj.body.outerHTML;
    
	var html_original=documentObj.innerHTML;

    if(trim(html_original).indexOf("<HTML")!=0 && html_original.indexOf("<BODY")<0 && html_original.indexOf("</HTML>")<0) {
         html_original="<HTML><HEAD></HEAD><BODY>"+html_original+"</BODY></HTML>";
    }

    if(location.href=="http://www.onlineemailmarketing.com/EmailMessageEdit.jsp?modeFlag=edit&emid=2606&pageid=204") {
        lineupTableText(documentObj);
    }


    var html_original_b = html_original;


    //documentObj.body.innerHTML = replaceString(replaceString(html_original_b,"<%","impossible.start_url.com"),"%>","impossible.end_url.com");

    documentObj.innerHTML = replaceString(replaceString(html_original_b,"<%","impossible.start_url.com"),"%>","impossible.end_url.com");

		//replaceString(replaceString(html_original,"<%","<%@@~@@"),"%>","@@~@@%>");

    for(var i=0;i<90000000;i++) {
        if(typeof documentObj.all[i] == 'undefined') break;
        if(documentObj.all[i].tagName == 'A' && trim(documentObj.all[i].innerText).length>0 ) {

            hasLinkHtmls[linksNum]=documentObj.all[i].innerHTML+"</A>";

            var aa=documentObj.all[i].href;

            if(aa.indexOf("impossible.start_url.comdeac")>=0) aa=aa.substring(aa.indexOf("impossible.start_url.comdeac") );
            if(aa.indexOf("impossible.start_url.comac")>=0) aa=aa.substring(aa.indexOf("impossible.start_url.comac") );


            var ps = "impossible.start_url.comemail_html_anchor_pageimpossible.end_url.com";
            if ( aa.indexOf(ps) == (aa.length - ps.length) ) {
                aa = removeDomain(aa);
            }

            ps = "impossible.start_url.comremove_link_with_topic_optoutsimpossible.end_url.com";
            if ( aa.indexOf(ps) == (aa.length - ps.length) ) {
                aa = removeDomain(aa);
            }


            if ( aa.indexOf(ps) >-1 ) {
                aa = "impossible.start_url.com_baseurlimpossible.end_url.com" + "/" + removeDomain(aa);
                //alert("new aa=" + aa);
            }


            addedURLHtmls[linksNum] = documentObj.all[i].innerText + " (" + aa +") </A>";
            addedURLHtmls[linksNum] = replaceString(addedURLHtmls[linksNum],"%>/) </A>","%>) </A>");
            addedURLHtmls[linksNum] = replaceString(addedURLHtmls[linksNum],"<%","@@@@@@@@@@@@open@@@@@@@@@@@@");
            addedURLHtmls[linksNum] = replaceString(addedURLHtmls[linksNum],"%>","@@@@@@@@@@@@close@@@@@@@@@@@@");
            linksNum = linksNum + 1;
        }
    }


    var originalHTML=documentObj.innerHTML;
    originalHTML=replaceString(originalHTML,"%>/\"","%>\"");
    str = originalHTML +"";
    for(var i=0;i<hasLinkHtmls.length;i++) {
        str=replaceString(str,hasLinkHtmls[i],addedURLHtmls[i],1);
    }



    str = replaceString(str,"<p>","<BR>");
    str = replaceString(str,"</p>","<BR>");

    documentObj.innerHTML=str;
    str=documentObj.innerText
    documentObj.innerHTML=originalHTML;
    str = replaceString(str,"@@@@@@@@@@@@open@@@@@@@@@@@@","<%");
    str = replaceString(str,"@@@@@@@@@@@@close@@@@@@@@@@@@","%>");
    // documentObj.body.innerHTML=html_original;

    //documentObj.write(html_original_outer);
    //documentObj.close();
    documentObj.innerHTML=html_original;

    str = replaceString(replaceString(str,"impossible.start_url.com","<%"),"impossible.end_url.com","%>");
    return str;
}

