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 validateForm() { 
  var a=validateForm.arguments,oo=true,v='',s='',err=false,r,o,at,o1,t,i,j,ma,rx,cd,cm,cy,dte,at;
  for (i=1; i<a.length;i=i+4){
    if (a[i+1].charAt(0)=='#'){r=true; a[i+1]=a[i+1].substring(1);}else{r=false}
    	o=MM_findObj(a[i].replace(/\[\d+\]/ig,""));
    	o1=MM_findObj(a[i+1].replace(/\[\d+\]/ig,""));
    	v=o.value;
	t=a[i+2];
    // textuarl Input comes here
    if (o.type=='text'||o.type=='password' || o.type=='hidden' ||o.type=='file' || o.type=='textarea'){
      if (r&&v.length==0){err=true}
      if (v.length>0)
      	if (t==1)
		{ 	//fromto
        	ma=a[i+1].split('_');if(isNaN(v)||v<ma[0]/1||v > ma[1]/1){err=true}
      	} else if (t==2)
		{
		// 
        	rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(v))err=true;
      	} else if (t==3)
		{ // date
        	ma=a[i+1].split("#");at=v.match(ma[0]);
        	if(at)	
			{
          		cd=(at[ma[1]])?at[ma[1]]:1;cm=at[ma[2]]-1;cy=at[ma[3]];
          		dte=new Date(cy,cm,cd);
          		if(dte.getFullYear()!=cy||dte.getDate()!=cd||dte.getMonth()!=cm){err=true};
        	}else{err=true}
    
		} else if (t==4)
      	{ // time
        	ma=a[i+1].split("#");at=v.match(ma[0]);if(!at){err=true}
      	} else if (t==5)
      	{ // check this 2
            if(o1.length)o1=o1[a[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!o1.checked){err=true}
      	} else if (t==6)
      	{ // the same
            if(v!=MM_findObj(a[i+1]).value){err=true}
      	}
    } else
    // Radio Button or check box 
    if (!o.type&&o.length>0&&o[0].type=='radio'){
          at = a[i].match(/(.*)\[(\d+)\].*/i);
          o2=(o.length>1)?o[at[2]]:o;
      if (t==1&&o2&&o2.checked&&o1&&o1.value.length/1==0){err=true}
      if (t==2){
        oo=false;
        for(j=0;j<o.length;j++){oo=oo||o[j].checked}
        if(!oo){s+='* ' +a[i+3]+'\n'}
      }
    } else if (o.type=='checkbox'){
      if((t==1&&o.checked==false)||(t==2&&o.checked&&o1&&o1.value.length/1==0)){err=true}
    } else if (o.type=='select-one'||o.type=='select-multiple'){
      if(t==1&&o.selectedIndex/1==0){err=true}
    }
    // else if (o.type=='textarea'){
    //  if(v.length<a[i+1]){err=true}
    // }
    if (err){s+='* '+a[i+3]+'\n'; err=false}
  }
  if (s!=''){alert('請填妥下面資料:\t\t\t\t\t\n\n'+s)}
  document.MM_returnValue = (s=='');
}

    function isFilled(obj, fieldname) {
        if (obj.value =="") {
            alert("Attention: The "+fieldname+" is not filled in.\n" +
                "Please complete form to continue");
            obj.focus();
            return false;
        } else {
            return true;
        }
    }

    function isSame(obj1, obj2, fieldname) {
        if (obj1.value != obj2.value) {
            alert("Attention: The "+fieldname+" is not correct.\n" +
                "Please complete form to continue");
            obj1.focus();
            return false;
        } else {
            return true;
        }
    }

    function isEmail(obj, fieldname) {
	var x = obj.value;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x)){
		return true;
	}else{
		alert("Attention:\nThe "+fieldname+" field does not seem to be filled properly.\n" + "Please re-enter to continue.");
		obj.focus();
		return false;
	}
	

    }

    function isValidDate(objdd, objmm, ojbyyyy, fieldname) {
        if (check_date(objdd.value, objmm.value, ojbyyyy.value)
        ) {
            return true;
        } else {
            alert("Attention:\nThe "+fieldname+" field should be valid date.\n" +
                        "Please re-enter to continue.");
            return false;
        }
    }


    function check_date(iday, imonth, iyear){
    var rflag = true;
    var checkstr = "0123456789";
    var DateTemp = "";
    var seperator = ".";
    var day;
    var month;
    var year;
    var leap = 0;
    var err = 0;
    var i;
    err = 0;

    /* Always change date to 8 digits - string*/
    /* if year is entered as 2-digit / always assume 20xx */
    if (iyear.length == 2) {
       year = '20' + iyear;
    } else {
       year = iyear;
    }
    if (year == 0) {
       err = 20;
    }
    /* Validation of month*/
    month = imonth;
    if ((month < 1) || (month > 12)) {
       err = 21;
    }
    /* Validation of day*/
    day = iday;
    if (day < 1) {
      err = 22;
    }
    /* Validation leap-year / february / day */
    if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
       leap = 1;
    }
    if ((month == 2) && (leap == 1) && (day > 29)) {
       err = 23;
    }
    if ((month == 2) && (leap != 1) && (day > 28)) {
       err = 24;
    }
    /* Validation of other months */
    if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
       err = 25;
    }
    if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
       err = 26;
    }
    /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
    if (err == 0) {
      rflag = true;
    }
    /* Error-message if err != 0 */
    else {
      rflag = false;
    }
    return rflag;
}

    function isSelected(obj, fieldname) {
        listValue = obj.options[obj.selectedIndex].value;
        if (listValue == '') {
            alert("Attention: The "+fieldname+" is not selected.\n" +
                "Please complete form to continue");
            obj.focus();
            return false;
        } else
            return true;
    }

    function isChecked(obj1, fieldname) {
        if (obj1.checked) {
        } else {
            alert("Attention: The "+fieldname+" is not filled in.\n" +
                "Please complete form to continue");
            obj1.focus();
            return false;
        }
        return true;
    }



function checkBusinessOpportunityForm(form) {
  if (
    (isSelected(form.Title, "Title")) &&
    (isFilled(form.FirstName, "First Name")) &&
    (isFilled(form.LastName, "Last Name")) &&
    (isFilled(form.CompanyName, "Company Name")) &&
    (isFilled(form.CompanyAddress, "Company Address")) &&
    (isFilled(form.Country, "Country")) &&
    (isFilled(form.CompanyNature, "Company Nature")) &&
    //(isFilled(form.CompanyNatureOther, "Company Nature Other")) &&
    (isFilled(form.CompanySize, "Company Size")) &&
    (isFilled(form.AnnualSales, "Annual Sales")) &&
    (isFilled(form.CityRegion, "City Region")) &&
    (isFilled(form.Tel, "Tel")) &&
    (isFilled(form.Fax, "Fax")) &&
    (isFilled(form.Email, "Email")) &&
    (isFilled(form.WhyInterest, "Why Interest"))
  ) {
    return true;
  } else {
    return false;
  }
}

function checkContactUsForm(form) {
  if (
    (isSelected(form.Title, "Title")) &&
    (isFilled(form.FirstName, "First Name")) &&
    (isFilled(form.LastName, "Last Name")) &&
    (isFilled(form.Email, "Email")) &&
    (isFilled(form.Message, "Message"))
  ) {
    return true;
  } else {
    return false;
  }
}

