

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

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;
}


















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

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

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 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();
}

/*
function changeQueryStr(queryStr,paraName,value) {
   value=escape(unescape(value));
   queryStr=replaceString(queryStr,"&amp;","&");
   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) where = "";
  if (key == null) return where;

  var leadingAmp = (0 == where.length) ? 2 : 1;
  var startsWithQuestionMark = 0 == where.indexOf("?");
  if (startsWithQuestionMark) where = where.substring(1);

  where = "&" + where;

  val = escape(unescape(val));
  where = replaceString(where, "&amp;", "&");
  
  var keyStr = "&" + key + "=";

  var ind0 = where.indexOf(keyStr);
  if (-1 != ind0) {
    var ind1 = where.indexOf("&", ind0 + 1);
    if (-1 == ind1) ind1 = where.length;
    where = where.substring(0, ind0) + where.substring(ind1);
  }
  where += keyStr + val;

  where = where.substring(leadingAmp);
  if (startsWithQuestionMark) where = "?" + where;

  return 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 fieldIsDate(field) {
	var v=trim(field.value);
    	var errorMsg="";
    	if(arguments[1]!=null)
    	  errorMsg = arguments[1];
	if(!__checkDate(v)) {
		if(errorMsg.length>0) alert(errorMsg);
		field.focus();
		field.select();
		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==',') ) {
            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) {
  if ("undefined" == typeof field || "undefined" == typeof field.options) return false;
  var paraName=field.name;
  if(arguments[1]!=null) paraName=arguments[1];

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

  return true;
}
*/

function filterChanged(field, paraName) {
	selectChanged(field, paraName);
}

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

  var queryStr = location.search; if(queryStr.length>0)  queryStr=queryStr.substring(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;
    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 gotoPage()
{
  var jspStr = null, queryStr = null, pageNum = null;

  if (arguments.length == 1) {
    jspStr = location.pathname;
    queryStr = location.search.substring(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;
    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 setNumEachPage() {
  var jspStr = null, queryStr = null, field = null;

  if (arguments.length == 1) {
    jspStr = location.pathname;
    queryStr = location.search.substring(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 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 getSltObjValue(sltObj) {
  return sltObj.options[sltObj.selectedIndex].value;
}

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 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 setYearMonthDayOLD(yearObj,monthObj,dayObj)  {
  if(typeof yearObj == 'undefined' || typeof monthObj == 'undefined' || typeof dayObj == 'undefined' )
    return;
  var year=parseInt(yearObj.options[yearObj.selectedIndex].value);
  var month=monthObj.options[monthObj.selectedIndex].value;
  var day=dayObj.options[dayObj.selectedIndex].value;

  if(month.length<2) month="0"+month;
  if(day.length<2) day="0"+day;

  var dayObjLen=dayObj.length;
  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;

  var i=dayObjLen-maxDay;
  if(i>0) {
    while(i>0) {
       dayObj.options[dayObj.length-1]=null;
       i--;
    }
  }
  else if(i<0){
    while(i<0) {
       dayObj.options[dayObj.length]=new Option((dayObj.length+1)+"",dayObj.length+1,0,0);
       i++;
    }
  }
  if(day>maxDay) {
    dayObj.options[dayObj.length-1].selected=true;
  }
}

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) continue;

    var v=listObj1.options[i].value;
    var n=listObj1.options[i].text;

    if (!moveable(v, arguments[2])) {
      //alert("You cannot withdraw \"" + n + "\" from Associated Merchandise Category.");
      continue;
    }

    var len2=listObj2.length;

    listObj2.options[len2]=new Option(n,v,0,0);
    listObj2.options[len2].selected=true;
    listObj1.options[i]=null;
    i--;
  }

/*
  var nsize=7;
  if (arguments[2] != null) {
    nsize=arguments[2];
  }
  listObj2.size=nsize;
*/
  return true;
}

function moveable(val, nonMoveableList) {
  if (nonMoveableList == null) return true;
  for (var i=0; i<nonMoveableList.length; i++) {
    if (val == nonMoveableList[i]) return false;
  }
  return true;
}


function _checkForm()
{
    var form=arguments[0];
    if(typeof form.ew_control_html!='undefined' && typeof form.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;
		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(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.substring(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;

    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 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) {
        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,"NVHelp","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0");
    winobj.focus();
   }
}

function popUpConfirmWin() {
   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 errcode=arguments[0];
   var defaultproblem="";
   var defaultsolution="";
   if (arguments[1] != null)
    defaultproblem=arguments[1];
   if (arguments[2] != null)
    defaultsolution=arguments[1];
   if(isNetScape) {
    var winleft=100;var wintop=100;var winwidth=550;var winheight=250;
    var url="confirmWin.jsp?ns=1&errcode="+errcode+"&drdr="+Math.ceil(Math.random()*10000000);
    return showModalDialog(url,"","dialogLeft:"+winleft+"px;dialogTop:"+wintop+"px;dialogWidth:"+winwidth+"px;dialogHeight:"+winheight+"px;status:no;help:no;edge:sunken;scroll:no");
   }
   else {
    var winleft=100;var wintop=100;var winwidth=550;var winheight=250;
    var url="confirmWin.jsp?errcode="+errcode+"&drdr="+Math.ceil(Math.random()*10000000);
    return showModalDialog(url,"","dialogLeft:"+winleft+"px;dialogTop:"+wintop+"px;dialogWidth:"+winwidth+"px;dialogHeight:"+winheight+"px;status:no;help:no;edge:sunken;scroll:no");
   }
}


function popUpErrWin() {
   var errcode=arguments[0];
   var winleft=100;var wintop=100;var winwidth=250;var winheight=200;
   var url="errormsg.jsp?errcode="+errcode+"&drdr="+Math.ceil(Math.random()*10000000)+"&adjustWin=1";
   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(errcode.indexOf("-NODialog")>0) {
  isNetScape=true;
    errcode=errcode.substring(0,errcode.indexOf("-NODialog"));
   }
 
   if(errcode.indexOf("E")==0 && errcode.length>=8 && errcode.substring(4,5)=="-") {
   	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();
   	}
   }
   else
   	alert(errcode);
}

function popUpStack() {
   var stackid=arguments[0];
   var is_blank_stack=0;
   if(arguments.length==2) {
    is_blank_stack=arguments[1];
   }
   if(is_blank_stack==1) return;
   var winleft=50;var wintop=20;var winwidth=450;var winheight=450;
   var url="gotoPage.jsp?pg="+escape("FEStackPopup.jsp?stackid="+stackid+"&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(1==2 && !isNetScape) {
        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,"","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0");
    winobj.focus();
   }
}


function popupStepupChart(url) {
  var winleft=50;
  var wintop=40;
  var winwidth=600;
  var winheight=400;
    if(arguments.length==5) {
    winleft=arguments[1];
    wintop=arguments[2];
    winwidth=arguments[3];
    winheight=arguments[4];
    }
  var 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 popupNewWin(url) {
  var winleft=50;
  var wintop=40;
  var winwidth=600;
  var winheight=400;
  var trackClick=1;
  var hasscroll="1";
  var menubar=0;
  var toolbar=0;
    if(arguments.length>=5) {
    winleft=arguments[1];
    wintop=arguments[2];
    winwidth=arguments[3];
    winheight=arguments[4];
    }
    if(arguments.length>=6) {
    trackClick=arguments[5];
    }
    if(arguments.length>=7) {
    hasscroll=arguments[6];
    }
    if(arguments.length>=8) {
    menubar=arguments[7];
    }
    if(arguments.length>=9) {
    toolbar=arguments[8];
    }

  var popupStep=null;
  if(trackClick==0)
    popupStep=window.open(url,"",'toolbar='+toolbar+',location=0,directories=0,status=0,menubar='+menubar+',scrollbars='+hasscroll+',resizable=1,left='+winleft+',top='+wintop+',width='+winwidth+',height='+winheight+'');
  else
    popupStep=window.open("gotoPage.jsp?pg="+escape(url),"",'toolbar='+toolbar+',location=0,directories=0,status=0,menubar='+menubar+',scrollbars='+hasscroll+',resizable=1,left='+winleft+',top='+wintop+',width='+winwidth+',height='+winheight+'');
  popupStep.focus();
}


function selectedcountry(form) {
  form.whichButtonClick.value="selected_country";
  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 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 __checkDate(v) { // yyyy-mm-dd
	if(v==null) return true;
	v=trim(v);
	if(v=="") return true;
	if(v!="" && v.search("[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]")<0) {
		return false;
	}
	var yyyy=v.substring(0,4);
	var mm=v.substring(5,7);
	var dd=v.substring(8,10);
	var myDate=new Date(mm+"/"+dd+"/"+yyyy);
	var yyyy2=myDate.getYear();
	var mm2=myDate.getMonth()+1;
	var dd2=myDate.getDate();
	if(mm2<10) mm2="0"+mm2;
	if(dd2<10) dd2="0"+dd2;
	if(yyyy2>1000) yyyy2=(yyyy2+"").substring(2);

	if(mm==mm2 && dd==dd2 && yyyy.substring(2)==yyyy2+"")
		return true;
	else
		return false;
}


function startsWith(str, str0)
{
  return 0 == str.indexOf(str0);
}

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

function getParameter(key) {
  var search = location.search;
  if (search == null || search.length == 0) return null;

  search = search.substring(1);
  search = search.split("&");
  for (var i=0; i<search.length; i++) {
    if (startsWith(search[i], key + "=")) {
      return unescape(search[i].split("=")[1]);
    }
  }

  return null;
}


function setSltSelected(sltObj) {
	if(typeof sltObj=='undefined' || sltObj.type.indexOf("select")<0) return;
	var value=null;
	if(arguments[2]==null) {
		var para=sltObj.name;
		if(arguments[1]!=null) para=arguments[1];
		value=getParameter(para);
	}
	else
		value=arguments[2];
	if(value==null) return;
	var v1="";
	var v2="";
	for(var i=0;i<sltObj.options.length;i++) {
		v1=sltObj.options[i].value;
		v2=value;
		if(v1==v2 || (!isNaN(v1) && !isNaN(v2) && v1*1==v2*1) ) {
			sltObj.options[i].selected=true;
		}
	}
}

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 popupWinWithSize(url,width,height) {
 var leftPos = (screen.availWidth-width) / 2
 var topPos = (screen.availHeight-height) / 2 
 var attr='toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,left='+leftPos+',top='+topPos+',width='+width+',height='+height;
 if(arguments[3]!=null) attr='left='+leftPos+',top='+topPos+',width='+width+',height='+height+','+arguments[3];
 var sealWin=window.open(url,"",attr);
 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();
}

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 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 enHex16(aDigit)
{
    return("0123456789ABCDEF".substring(aDigit, aDigit+1))
}

function toHex255(n)
{
    return enHex16((0xf0 & n) >>  4) + enHex16((0x0f & n) >>  0);
}

function string2Hex(str) {
	var str2="";
	for(var i=0;i<str.length;i++) {
		str2=str2+toHex255(str.charCodeAt(i));
	}
	return str2;
}
