document.write('<SCRIPT language=JavaScript src="/js/Util.js"><\/script>');


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

var trivia_delim = "<!-- Trivia begins from HERE -->";
var trivia_div = "trivia0";

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

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

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

  //var xmlHttp = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
  //var xmlHttp = window.ActiveXObject ? new ActiveXObject("MSXML2.DOMDocument") : new XMLHttpRequest();
  //var xmlHttp = window.ActiveXObject ? new ActiveXObject("MsXml2.XmlHttp") : new XMLHttpRequest();
  var xmlHttp = null;
	  

  if ( window.XMLHttpRequest ) {        
        xmlHttp = new XMLHttpRequest();
  }  else if ( window.ActiveXObject ) {
        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");   
        if ( ! xmlHttp ) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");   
        }
  }

  if ( !xmlHttp ) {
	  alert("Your browser does not support AJAX feature");
	  return; 
  }

  //xmlHttp.overrideMimeType("text/xml");
  xmlHttp.open("POST", url, false);
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
  xmlHttp.send(pastdata);
  var response_content = xmlHttp.responseText;
  if(response_content.indexOf(trivia_delim)>=0)
    response_content = response_content.substr(response_content.indexOf(trivia_delim)+trivia_delim.length);
//alert(response_content);
  return response_content;
}

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



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


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

function changeQueryStr(queryStr,paraName,value) {
   value=escape(unescape(value));
   var paraName1="&"+paraName+"=";
   var paraName2=paraName+"=";
   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 fieldIsNDigital(fieldObj,bits)	{
		var errorMsg1="";
		var errorMsg2="";
		if(arguments[2]!=null)
			errorMsg1 = arguments[2];
		if(arguments[3]!=null)
			errorMsg2 = arguments[3];

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

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

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


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


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


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

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

  return true;
}

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

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

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

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

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

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




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

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



function generateDateStrNoHMS(yearObj,monthObj,dayObj)	{
	var year=getSltObjValue(yearObj);
	var month=getSltObjValue(monthObj);
	var day=getSltObjValue(dayObj);
	
	if(month.length<2) month="0"+month;
	if(day.length<2) day="0"+day;
	return year+"-"+month+"-"+day;
}

function generateDateStr(yearObj,monthObj,dayObj,hObj,mObj,sObj)	{
	var year=getSltObjValue(yearObj);
	var month=getSltObjValue(monthObj);
	var day=getSltObjValue(dayObj);
	
	var h=getSltObjValue(hObj);
	var m=getSltObjValue(mObj);
	var s=getSltObjValue(sObj);
	
	if(month.length<2) month="0"+month;
	if(day.length<2) day="0"+day;
	if(h.length<2) h="0"+h;
	if(m.length<2) m="0"+m;
	if(s.length<2) s="0"+s;
	return year+"-"+month+"-"+day+" "+h+":"+m+":"+s;
}

function generateDateWithoutTimeStr(yearObj,monthObj,dayObj)	{
	var year=getSltObjValue(yearObj);
	var month=getSltObjValue(monthObj);
	var day=getSltObjValue(dayObj);
	
	
	if(month.length<2) month="0"+month;
	if(day.length<2) day="0"+day;
	return year+"-"+month+"-"+day;
}


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

function 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--;
		}
	}
	if(listObj2.length>7)
		listObj2.size=7;
	//else
	//	listObj2.size=listObj2.length;
	return true;
}


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

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

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


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

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

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



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


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

	   if ( typeof form.email !='undefined' ) {
	      if ( form.email.type != 'hidden' ) {
              if ( ! checkEmail(form.email) ) {
                 return false;
		      }
		  }
	   }

	   return true;

	} else {
       return false;
	}
}

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

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


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

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

  return newcode;
}




function checkEmailNoAlert(field)
{

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

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


function checkEmail(field)
{

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

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


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

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


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


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

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


function __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);
		}


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

		if( do_not_add_please || errmsg.toLowerCase().indexOf("please")==0 || errmsg.toLowerCase().indexOf("in question")==0 || errmsg.toLowerCase().indexOf("veuillez")==0 || errmsg.toLowerCase().indexOf("vous")==0 || errmsg.toLowerCase().indexOf("votre")>=0 || errmsg.toLowerCase().indexOf("olivido")>=0 || isErrorCode(errmsg) )
			full_errmsg=true;

		if(tagtype.indexOf('radio')>=0 || tagtype.indexOf('checkbox')>=0) {
			eleType=1;
			if(!full_errmsg && language==1)
				errmsg = "Please Choose one '" + errmsg + "'";
			else if(!full_errmsg && language==2)
				errmsg=errmsg = "Veuillez choisir une '" + errmsg + "'"; 
		}else if(tagtype.indexOf('text')>=0  || tagtype.indexOf('password')>=0) {
			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( same_value_text_name.indexOf("{}")<0 && same_value_text_name.indexOf("[")<0 && hasValue && same_value_text_name.length>0 && typeof eval("form."+same_value_text_name)!='undefined') {
	    				if(elementObj.value!=eval("form."+same_value_text_name).value) {
	    					hasValue=false;
	    					errmsg=same_value_error_message;
	    				}
	    			}
	    		}
    		}
    		else if(eleType==3) {
		    	if(checkMandatoryBaseOn(form,mandatory_base_on))
		    	{
	    			elementObj = e[original_tagname];
	    			if(elementObj.options[elementObj.selectedIndex].value=='' && elementObj.options.length>1 ) {
	    				hasValue = false;
	    			}
	    		}
    		}
    		if(!hasValue) {
    			if(!isErrorCode(errmsg)) {
 				alert(errmsg);
    			}
    			else {
    				popUpErrWin(errmsg);
    			}
	
    			var obj=eval("form."+original_tagname);
    			if(typeof 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("])"));
	}
	else
		str="";
	var pos=str.indexOf(":");
	if(pos>0) {
		fldname_error[0]=trim(str.substring(0,pos));
		fldname_error[1]=str.substring(pos+1);
	}
	return fldname_error;
}

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

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

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

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

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


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

	var len1=0;
	for(var i=baseOnsArray.length-1;i>=0;i--) {
		var me=trim(baseOnsArray[i]);
		if(me.indexOf(":")>=0)
			me=me.substring(0,me.indexOf(":"));
		if(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=="" || value == "required" || value == "obligatoire" || value == "first name"  || value == "last name"  || value == "first name" || value == "prénom"  || value == "nom"  || value == "XXX"  || value == "XXXXXXX" )
			return false;
		else
			return true;
	}
}

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

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

function matchVar(varStr, str) {
  if (varStr == null || str == null || varStr == "") return varStr == str;
  var flag1 = false, flag2 = false;
  var i1 = -1, i2 = -2;
  var tokens = new Array();
  var s1 = null;
  
  while ((i1 = varStr.indexOf("<%", i2)) != -1) {
    s1 = varStr.substring(i2 + 2, i1);
    if (i1 == 0) flag1 = true;
    if (s1.length > 0) tokens[tokens.length] = s1;
    i2 = varStr.indexOf("%>", i1);
  }

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

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


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

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

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

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

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

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

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

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

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

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

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

    return str;
}

function CFtrippedTextFromHtml(documentObj) {

    var hasLinkHtmls = new Array();
    var addedURLHtmls = new Array();
    var linksNum = 0;
    var str ="";

    var html_original = documentObj.innerHTML;

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

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

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

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

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

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

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

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

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

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


function hasSameElt(answer) {

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

function getChoiceCnt(radiogrp) {

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

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




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


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

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

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

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

function checkForm_gc(form) {

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




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


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

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


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

function all_topics(obj) {
 	var formObj=obj.form;
	if(obj.type=='radio' || obj.type=='checkbox') {
		if(obj.checked && obj.value=="1") {
			setAllTopics(formObj);
 		}
 		
 	}
}

function setAllTopics(formObj) {
 		if(typeof formObj.cpid_topcis_dstids!='undefined')  {
 				var cpid_topcis_dstids=","+trim(formObj.cpid_topcis_dstids.value)+",";
 				cpid_topcis_dstids=replaceString(cpid_topcis_dstids,",",",element_");
				var e = formObj.elements;
 				var elementObj=null;
    				for(var i=0;e!=null && typeof e!='undefined' && i<e.length;i++) {
    					elementObj = e[i];
    					if(typeof elementObj=='undefined') continue;
    					if(cpid_topcis_dstids.indexOf(elementObj.name)>=0) {
    						if(elementObj.type=="checkbox") {	
    							elementObj.checked=true;
    						}
    					}
    				}
 		}
}




















function ar_doSubmitRating(arid, arpid, ardid, hpid, pageid) {

    var data = new Array();


    addData(data, "arids", arid);
    addData(data, "arpids", arpid);
    addData(data, "ardids", ardid);
    addData(data, "hpids", hpid);
    addData(data, "pageids", pageid);

    var http_response = trim(getStrFromHttp("ArticalRatingSubmit.jsp", data));

    //alert(http_response);

	var pos = http_response.indexOf("@@@@@@@~~~~@@@@@@");
	if ( pos > -1 ) {
		var rated_number = http_response.substring(0, pos);
		var avg_rating = http_response.substring(pos + "@@@@@@@~~~~@@@@@@".length, http_response.length);
		//alert("rated_number=" + rated_number );

	    ar_parseRatingAvg(avg_rating);

	    ar_parseRatedNumber(rated_number);

	}


}


function ar_parseRatingAvg(s) {
	var html = s.toLowerCase();
	var pos = -1;
	var pos2 = -1;
	var pos3 = -1;


	pos = html.indexOf("<div ");
	if ( pos > -1 ) {


		pos2 = html.indexOf(">", pos + 1);
		if ( pos2 > -1 ) {


			pos3 = html.indexOf("</div>", pos2 + 1);
			if ( pos3 > -1 ) {


				var pure = s.substring(pos2 + 1, pos3);
				//alert(pure);
				var div = s.substring(pos + "<div ".length, pos2);
				//alert(div);
				var id = ar_parseDIVID(div);
				//alert("id=" + id);
				if ( id.length > 0 ) {


					var e = document.getElementById(id);
					if ( e != null ) {
						
						e.innerHTML = pure;

					} else {
						alert("bad element");
					}
				} else {
					alert("missing id");
				}
			}
		}
	}	
}



function ar_parseRatedNumber(s) {
	var html = s.toLowerCase();
	var pos = -1;
	var pos2 = -1;
	var pos3 = -1;

	pos = html.indexOf("<div ");
	if ( pos > -1 ) {
		pos2 = html.indexOf(">", pos + 1);
		if ( pos2 > -1 ) {
			pos3 = html.indexOf("</div>", pos2 + 1);
			if ( pos3 > -1 ) {
				var pure = s.substring(pos2 + 1, pos3);
				//alert(pure);
				var div = s.substring(pos + "<div ".length, pos2);
				//alert(div);
				var id = ar_parseDIVID(div);
				//alert("id=" + id);
				if ( id.length > 0 ) {
					var e = document.getElementById(id);
					if ( e != null ) {
						e.innerHTML = pure;
					}
				}
			}
		}
	}	
}


function ar_parseDIVID(div) {
	var html = div.toLowerCase();

	var pos = -1;
	var pos2 = -1;
	var pos3 = -1;

	pos = html.indexOf("id");
	if ( pos > -1 ) {
		pos2 = html.indexOf("=", pos + 1);
		if ( pos2 > -1 ) {
			pos3 = html.indexOf(" ", pos2 + 1);
			var id_name = "";
			if ( pos3 > -1 ) {
				id_name = div.substring(pos2 + 1, pos3);
			} else {
				id_name = div.substring(pos2 + 1);
			}

			id_name = trim(id_name);
			id_name = removeQuote(id_name);
			return id_name;
		}
	}	
     return "";
}

function removeQuote(name) {
	if ( name.length >=3 ) {
		if ( name.substring(0, 1)=='"' && name.substring(name.length-1, name.length) == '"' ) {
			name = name.substring(1, name.length-1);
		}

		if ( name.substring(0, 1)=="'" && name.substring(name.length-1, name.length) == "'" ) {
			name = name.substring(1, name.length-1);
		}

	}  
	return name;
}


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