function c_setBGColor( id, bgcolor)
{
  if (id=='') return;
  
  var divElement=id;
  if(!document.getElementById|document.all)
  {
    return
  }
  else
  {
    if(document.getElementById)
    {
      divCtrl = eval("document.getElementById('" + divElement + "')")
   
    }
    else
    {
      divCtrl = eval("document.all." + divElement)

    }
  }

  window.focus();
 
  
      if(typeof(divCtrl) != 'undefined')
      { 
    
        divCtrl.style.background = bgcolor;
     
      }
  
}




function c_changeColor(obj){
  obj.style.background=obj.value;
  obj.style.color=obj.value;
}

function c_submitMyForm(formobj,value1) {
  formobj.next_page_url.value=value1;
  if (_checkForm(formobj)) {
   formobj.submit();
   }
}

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

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


function c_isCookieON()
{
 var cookieBackup = document.cookie
 document.cookie = "cookie=yep"
 var cookieOk = document.cookie.indexOf("cookie=yep") > -1
 document.cookie = cookieBackup
 if (cookieOk) {
  return true;
 }
 else
 {
  return false;
 }
}



function c_setCookie(Name,Value,Expiry,Path,Domain,Secure) {
   //Bunch of arguments

if (Expiry != null) {
   //if you want to save the cookie

var datenow = new Date();
   //get a date

datenow.setTime(datenow.getTime() + Math.round(3600000*Expiry));
   //mutiply the number to make it represent days

Expiry = datenow.toGMTString();
   //convert to GMT time

}
   //ends that. And now...

Expiry = (Expiry != null) ? '; expires='+Expiry : '';
   //has an expiration?

Path = (Path != null)?'; path='+Path:'';
   //has a path?

Domain = (Domain != null) ? '; domain='+Domain : '';
   //has a domain?

Secure = (Secure != null) ? '; secure' : '';
   //Secure?

document.cookie = Name + '=' + escape(Value) + Expiry + Path + Domain +
Secure;
   //Make the cookie!

}

function c_getCookie(Name) {
   //Your name goes here! :-)

var cookies = document.cookie;
   //Copy your cookies

if (cookies.indexOf(Name + '=') == -1) return null;
   //Woops, no cookie!

var start = cookies.indexOf(Name + '=') + (Name.length + 1);
   //Jump to start of cookie

var finish = cookies.substring(start,cookies.length);
   //Get a count from the cookies

finish = (finish.indexOf(';') == -1) ? cookies.length : start +
finish.indexOf(';');
   //Find end of cookie

return unescape(cookies.substring(start,finish));
   //Here's your cookie! ( Sorry, no chocolate chips. :-)

}





function c_getCheckboxValue2(field)
{


  if (typeof field.length=='undefined') {
    if (field.checked) return field.value;
    else return null;
  }

  var val = '';
  for (var i=0; i<field.length; i++) {
    if (field[i].checked) {
      val +=","+field[i].value ;
    }
  }

  if (val == "") return null;
  
  return val.substring(1);
}

function c_getValue(field) {

 var tt;
 if (typeof field.length=='undefined') {
    tt=field.type;
  }else {
    tt=field[0].type;
  }
  if (tt=='radio' ) {
 
   return c_getRadioValue(field);
  }else if (tt=='checkbox' ) {
  
 return c_getCheckboxValue2(field);
  }else if (tt=='select-one' ) {
 
   return c_getDropDownValue(field);
  }else return field.value;
  
  
}
function c_setValue(field,vv) {
 var tt;
  if (typeof field.length=='undefined') {
    tt=field.type;
  }else {
    tt=field[0].type;
  }
  if (tt=='radio' ) {
    c_setRadioValue(field,vv);
  }else if (tt=='checkbox' ) {
  
  c_setCheckboxValue(field,vv);
  }else if (tt=='select-one' ) {
    c_setDropDownValue(field,vv);
  }else  field.value=vv;
  
  
}

function c_setInnerHTML( id, value)
{
  var divElement=id;
  if(!document.getElementById|document.all)
  {
    return
  }
  else
  {
    if(document.getElementById)
    {
      divCtrl = eval("document.getElementById('" + divElement + "')")
   
    }
    else
    {
      divCtrl = eval("document.all." + divElement)

    }
  }

  window.focus();
 
  
      if(typeof(divCtrl) != 'undefined')
      { 
        divCtrl.innerHTML=value;
      
      }
  
}




function c_hideShow( id, hideit)
{
  var divElement=id;
  if(!document.getElementById|document.all)
  {
    return
  }
  else
  {
    if(document.getElementById)
    {
      divCtrl = eval("document.getElementById('" + divElement + "')")
   
    }
    else
    {
      divCtrl = eval("document.all." + divElement)

    }
  }

  window.focus();
 
  
      if(typeof(divCtrl) != 'undefined')
      { 
       if (hideit) {
        divCtrl.style.display = "none";
       }else {
        divCtrl.style.display = "";
        }
      }
  
}


function ch_hideShowExpandable( attribCheckbox)
{
  var divElement='div_'+attribCheckbox;
  if(!document.getElementById|document.all)
  {
    return
  }
  else
  {
    if(document.getElementById)
    {
      divCtrl = eval("document.getElementById('" + divElement + "')")
      checkboxCtrl = eval("document.register." + attribCheckbox);
    }
    else
    {
      divCtrl = eval("document.all." + divElement)
      checkboxCtrl = eval("document.all." + attribCheckbox)
    }
  }

  window.focus();
  if(typeof(checkboxCtrl) != 'undefined')
  {
    if(checkboxCtrl.checked)
    {
      if(typeof(divCtrl) != 'undefined')
        divCtrl.style.display = "";
    }
    else
    {
      if(typeof(divCtrl) != 'undefined')
        divCtrl.style.display = "none";
    }
  }
}

// only works with IE 4+ And NS6
// expand or collapse the attribute's level div
function ch_showExpandable(which, n)
{
  if(!document.getElementById|document.all)
  {
    return;
  }
  else
  {
    if(document.getElementById)
      oWhich = eval("document.getElementById('" + which + "')");
    else
      oWhich = eval("document.all." + which);
  }

  window.focus();
  if(oWhich)
  {
    if(n == 1)
      oWhich.style.display="";
    else
      oWhich.style.display="none";
  }
}

// reset all settings.  If the current form contains slider, it will call the server again.
function ch_resetAll(ch_resetConfirmMsg)
{
  if(!confirm(ch_resetConfirmMsg))
    return;

  var hasSlider = eval("document.register.hasSlider");
  if(typeof(hasSlider) == 'undefined')
  {
    document.register.reset();
    var allElements = document.register.elements;
    if(allElements != null)
    {
      for(i = 0; i < allElements.length; i++)
      {
        var name = allElements[i].name;
        if(allElements[i].type == "checkbox")
        {
          if(name.substr(0, 3) == "ch_")
          {
           
            ch_hideShowExpandable( name);
          }
        }
      }
    }
  }
  else
  {
    document.register.action.value='reset';
    document.register.submit();
  }
}


function ch_checkHide(name) {
   if(name.substr(0, 3) == "ch_")
          {
           
            ch_hideShowExpandable( name);
          }
    
}





function c_getDropDownFirstValue(field) {
 for(var i=0;i<field.length;i++) {
         if (field.options[i].selected) {
  
           return field.options[i].value;
          
            }
      }
  return null;
}









function insertObj(sltObj,pos,text,value) {
	var slt_len=sltObj.length;
	if(pos>=slt_len)
		sltObj.options[sltObj.length]=new Option(text,value,0,0);
	else {
		for(var i=slt_len;i>=pos;i--) {
			if(i>pos) {
				var slted=sltObj.options[i-1].selected;
				sltObj.options[i]=new Option(sltObj.options[i-1].text,sltObj.options[i-1].value,0,0);
				sltObj.options[i].selected=slted;
			}
			else if(i==pos) {
				sltObj.options[i]=new Option(text,value,0,0);
			}
		}
	}
}
function generate24TimeStr(hObj,mObj)	{
	
	
	var hi=parseInt(getSltObjValue(hObj));
	var m=getSltObjValue(mObj);
	var h= ""+(hi);
	var s="00";

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

function c_resetPage(queryStr)	{

  return changeQueryStr(queryStr,"page","1");
}
function c_filterChanged(url,queryStr)	{
     
        var field= arguments[2];
       
	
	queryStr=changeQueryStr(queryStr,field.name,field.options[field.selectedIndex].value);
	queryStr=changeQueryStr(queryStr,"page","1");

	
	
	for (var i=3;i<13;i=i+2 ){
		if (arguments[i]!= null && arguments[i+1]!= null ){  //reset name/value
	 		queryStr=changeQueryStr(queryStr,arguments[i],arguments[i+1] );
		}
	}
	
         
	
	location.href=url+'?'+queryStr;
	return true;
}

function c_getDropDownValue(field) {

  return field.options[field.selectedIndex].value;
}

function c_setDropDownValue(field,value) {
          
           for (var j=0;j<field.length;j++) {
           
             
             if (   field.options[j].value==value ) {
                  field.selectedIndex=j;
                  return;
              }
                
         }
    
  }
  
  function c_setRadioValue(field,value)
  {
    
  
  
  if (field.length ==undefined) {
      if (field.value==value)
      field.checked=true;
      else field.checked=false;
      return;
    }
    for (var i=0; i<field.length; i++) {
      if (field[i].value==value) field[i].checked=true;
      else field[i].checked=false;
     
    }
  
    return ;
  }
  
  function c_setCheckboxValue(field,value)
  {
  
  
    if (field.length ==undefined) {
         if (field.value==value)
             field.checked=true;
         else field.checked=false;
         return;
    }
  
    var val = ","+value+",";
    
    for (var i=0; i<field.length; i++) {
      if (val.indexOf(","+field[i].value + ",")>=0) 
        field[i].checked=true;
      else 
        field[i].checked=false;
       
     
    }
  
    return;
    
}




function c_getRadioValue(field)
{
  


if (field.length ==undefined) {
    return field.value;
  }
  for (var i=0; i<field.length; i++) {
    if (field[i].checked) {
          return field[i].value;
    }
  }

  return null;
}

function c_getCheckboxValue(field)
{


  if (field.length ==undefined) {
    if (field.checked) return field.value;
    else return null;
  }

  var val = ",";
  for (var i=0; i<field.length; i++) {
    if (field[i].checked) {
      val += field[i].value + ",";
    }
  }

  if (val == ",") return null;
  else return val;
}
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 mini_popup(id,typeid) {
 var height=450;
 var width=500;
 if (typeid==1) {
 height=200;
 width=400;
 }
 var sealWin=window.open("/MiniPopup.jsp?mpid="+id,"",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,left=100,top=20,width='+width+',height='+height);
 sealWin.focus();
}


function b_popup(id) {
 var height=605;
 var width=565;
 var left=10;
 var top=10;

 var sealWin=window.open("/Brokers.jsp?bid="+id,"",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,left='+left+',top='+top+',width='+width+',height='+height);
 sealWin.focus();
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  if( !(theURL.indexOf("images/")==0 && (theURL.indexOf("jpg")>0 || theURL.indexOf("gif")>0 ) ) )
  	window.open(theURL,winName,features);
}
function popupWinPDF(url) {
 var sealWin=window.open(url,"",'toolbar=1,location=0,directories=1,status=1,menubar=1,scrollbars=1,resizable=1,left=100,top=20,width=750,height=600');
 sealWin.focus();
}
function popupFeedback(url,width,height) {
popupWinWithSize(url,width,height);
}
function popupWinWithSize(url,width,height) {
 var sealWin=window.open(url,"",'toolbar=1,location=0,directories=1,status=1,menubar=1,scrollbars=1,resizable=1,left=100,top=20,width='+width+',height='+height);
 sealWin.focus();
}
function popupWinWithoutTrack(url) {
 var sealWin=window.open(url,"",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,left=100,top=20,width=650,height=500');
 sealWin.focus();
}





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

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+"=";
   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 queryStr;
}



/*

function changeQueryStr(where, key, val) {
	if (where == null) return where;
	if (key == null) return where;
  	var where0=where;
  	if(where.indexOf("?")>=0) {
  		where0=where.substring(0,where.indexOf("?")+1);
  		where=where.substring(where.indexOf("?")+1);
  	}
  	else {
  		where0=where0+"?";
  		where="";
  	}
  	if (key == null) return where0+ where;
	
	val = escape(unescape(val));
  	where = where.replace(/&amp;/g, "&");
  	where = where.replace(/%26/g, "&");
  	var pvs=where.split("&");
  	var new_where="";
  	var found=false;
  	
  	for(var i=0;i<pvs.length;i++) {
  		var pv=pvs[i];
  		if(pv.indexOf("=")>0) {
  			p=pv.substring(0,pv.indexOf("="));
  			v=pv.substring(pv.indexOf("=")+1);
  			if(p==key) {
  				v=val;
  				found=true;
  				pv=p+"="+v;
  			}
  		}
  		new_where=new_where+"&"+pv;
  	}
  	if(!found) new_where=new_where+"&"+key+"="+val;
  	
  	if(new_where.indexOf("&")==0) new_where=new_where.substring(1);
	return where0+new_where;
}

*/




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;

  var queryStr = changeQueryStr(location.search,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;
    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;
    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 setYearMonthDay(yearObj, monthObj, dayObj) {
  if(typeof yearObj == 'undefined' || typeof monthObj == 'undefined' || typeof dayObj == 'undefined' )
		return;
  var year=getSltObjValue(yearObj);
  var month=getSltObjValue(monthObj);
  var day=getSltObjValue(dayObj);
  var month_len=monthObj.options.length;

  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 {
  	// alert(dayObj.length+" "+maxDay);
  	for (var i=dayObj.length; i<maxDay; i++) {
  	   dayObj.options[i] = new Option(i+1, i+1);
  	}
  	dayObj.length = maxDay;
  }
}

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--;
		}
	}
	var listlen=7;
	if (arguments[2] != null){
	   listlen=arguments[2];
	   
	}
	if(listObj2.length>listlen)
		listObj2.size=listlen;
		
		if(listObj1.length>listlen)
		listObj1.size=listlen;	
		
		
		
		
	//else
	//	listObj2.size=listObj2.length;
	return ;
}


function _checkForm()
{



    var form=arguments[0];
 
    
    if(typeof form.ew_control_html!='undefined' && typeof updateValue!='undefined' ) {
       
    updateValue();
}

    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);
    }
    
    return __checkFields(form,isrequiredFields,isrequiredFieldsDisp);
}


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 __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 isrequiredFieldsObj=form.isrequired_fields;
    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;
    	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) 
    		all_elements_in_formValue=all_elements_in_formValue+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);
		}
		if(errmsg.toLowerCase().indexOf("please")==0 || errmsg.toLowerCase().indexOf("veuillez")==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) {
			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(!checkMandatoryBaseOn(form,mandatory_base_on))
		    		hasValue = true;
		    	else {
	    			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(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 obj.type=='undefined')
    				obj[0].focus();
    			else
    				obj.focus();
    			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) {
						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=form.birthdate_month.options[form.birthdate_month.selectedIndex].value;
    	if( (m+"").length<2) m="0"+m;
    	var 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("])"));
	}
	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(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) {
		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)
			return false;
		else
			return true;
	} 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, str))
			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(documentObj.body.innerHTML,"<p>","<BR>");
    documentObj.body.innerHTML = replaceString(documentObj.body.innerHTML,"</p>","<BR>");
    
    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>";
    		addedURLHtmls[linksNum] = documentObj.all[i].innerText + " (" + documentObj.all[i].href +") </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);
    }
    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;
    return str;
}



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 && !isErrorCode(errcode) ) {
   	alert(errcode);
   	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(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
		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 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();
}


