﻿//加入收藏
function addCookie()
{
 if (document.all)
    {
       window.external.addFavorite('http://www.e00fen.com','E百分学习网');
    }
    else if (window.sidebar)
    {
       window.sidebar.addPanel('E百分学习网', 'http://www.e00fen.com', "");
 }
}
//设为首页
function setHomepage()
{
 if (document.all)
    {
        document.body.style.behavior='url(#default#homepage)';
  document.body.setHomePage('http://www.e00fen.com');
 
    }
    else if (window.sidebar)
    {
    if(window.netscape)
    {
         try
   {  
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");  
         }  
         catch (e)  
         {  
    alert( "该操作被浏览器拒绝，如果想启用该功能，请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true" );  
         }
    } 
    var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);
    prefs.setCharPref('browser.startup.homepage','http://www.e00fen.com');
 }
}
//文档操作记录文档内容动作
 function getcontext(source,textbox)
 {
	document.all(textbox).value = document.all(source).outerHTML;
	//if(""==document.all(textbox).value)
	//{
	//	alert("文档内容不允许为空!");
	//	return false;
	//}
 }
//计算字符串所占字节数(英文字符占一个,中文占两个)
function getBitLength(varField) { 
    var i = 0;    
    var j = 0; 
    for (i = 0; i< varField.length; i++)
    {     
		if (varField.charCodeAt(i) > 127 || varField.charCodeAt(i) == 94) { 
			j=j+2;   
        } 
		else { 
			j=j+1 
		}    
    }  //结束FOR循环
    return (j); 
}
//=====================.net客户段验证===========================
function fob(n, d)
{
   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=fob(n,d.layers[i].document); 
   return x;
}

function cb()
{
   var a=cb.arguments;
   var name=fob(a[0]);
   e=document.forms(0).elements;
   if (name.checked==true)
   {
      for (i=0;i<e.length;i++)
      {
         e[i].checked=true;
      }
   }
   else
   {
      for (i=0;i<e.length;i++)
      {
         e[i].checked=false;
      }
   }
}
//alert("JS开始");
function vdf() 
{
   var i,j,name,value,message,length,type,a=vdf.arguments,cb_name;
//alert(a.length);
   for (i=0; i<(a.length-2); i+=3) 
   {
       if (a[i].indexOf('#')!=-1)
       {
       alert(a[i].substr(0,a[i].indexOf('#')));
           name=fob(a[i].substr(0,a[i].indexOf('#')));
           cb_name=fob(a[i].substr((a[i].indexOf('#')+1),a[i].length));
       }
       else
       {
          name=fob(a[i]); // 控件名称
       }
       message=a[i+1]; // 提示信息
       type=a[i+2]; // 类型
       if (type!="r_time")
       {
		   try
		   {
          value=name.value.replace(/ +/g, ""); // 控件值
		   }
		   catch(err)
		   {
			   window.status = "错误:找不到目标验证对象!请检查模板设计是否正确...";
		   }
       }
       else
       {
          value=name.value;
       }
       if (name) 
       {
       //alert(type);   //输出验证类型
       // ===============判断复选框是否选中================ //
          if (type=="r_cb")
          {      
             e=document.forms(0).elements;
             var flag=false;
             for (i=0;i<e.length;i++)
             { 
                if (e[i]!=cb_name)
                {
                   if (e[i].checked==true)
                   {
                       flag=true;
                       break;
                   }
                }
                if (i==e.length-1)
                {
                    break;
                }
             }
             if (flag==false)
             {
                alert(message+"!\n"); //为空时出现的提示
                return false;
             }
          }
          
          // ===============判断下拉框是否选择================ //
          if (type=="r_sl")
          {
            if (name.selected==false)
            {
                 alert(message+"!\n"); //为空时出现的提示
                 return false;
            }
          }
          
          // ===============不能为空的判断================ //
          if (type=="r") 
          {
             if (value=="") // 判断是否为空
             {
                 alert(message+"!\n"); //为空时出现的提示
                 name.focus();
                 name.select();
                 return false;
             }
          }
          
          // ===============不能为空的判断,但不获得焦点================ //
          if (type=="o_r") 
          {
             if (value=="") // 判断是否为空
             {
                 alert(message+"!\n"); //为空时出现的提示
                 return false;
             }
          }
         // ===============只能输入中文================ //
         if (type=="r_china")
         {
             if (value.search(/^[\u4e00-\u9fa5]+$/)==-1) 
             {
                  alert(message+"!\n"); // 判断不能为空
                  name.focus();
                  name.select();
                  return false;
             }
         }
         
         // ===============只能输入数字或者字母================ //
         if (type=="r_num_char")
         {
             if (value=="")
             {
                  alert(message+"!\n"); //为空时出现的提示
                 name.focus();
                 name.select();
                 return false;
             }
             if (value.search(/^[0-9a-zA-Z]+$/)==-1) 
             {
                  alert(message+"!\n"); //为空时出现的提示
                 name.focus();
                 name.select();
                 return false;
             }
          }
          
          // ===============可以为空，不为空时，填数字================ //
         if (type=="num")
         {
             if (value.search(/^[0-9]+$/)==-1 && value!="") 
             {
                  alert(message+"!\n"); // 判断不能为空
                  name.focus();
                  name.select();
                  return false;
             }
         }
         
         // ===============只能输入数字================ //
         if (type=="r_num")
         {
             if (value=="")
             {
                  alert(message+"!\n");
                  name.focus();
                 name.select();
                  return false;
             }
             if (value.search(/^[0-9]+[.0-9|0-9]+$/)==-1) 
             {
                  alert(message+"!\n"); // 判断不能为空
                  name.focus();
                 name.select();
                  return false;
             }
          }
          
          // ===============只能输入小于等于n的数字================ //
          if (type.indexOf("r_num<")!=-1)
          {
              if (value=="") // 为空做的提示
              {
                  alert(message+"!\n");
                  name.focus();
                  name.select();
                  return false;
              }
              if (value.search(/^[0-9]+[.]?[0-9]*$/)==-1)  // 不是数字做的提示
              {
                  alert(message+"!\n");
                  name.focus();
                  name.select();
                  return false;
              }
              length=type.substring((type.indexOf('<')+1),type.length); // 获得rn<后面的数
              try
              {
				length = parseFloat(length);
              }
              catch(ex){}
			
              try
              {
				value = parseFloat(value);
              }catch(ex){}
              if (value>length)  // 限制数字长度做的限制
              {
                 alert(message+"!\n");
                 name.focus();
                 name.select();
                 return false;
              }
          }
          
          // ===============只能输入大于等于n的数字================ //
          if (type.indexOf("r_num>")!=-1)
          {
              if (value=="") // 为空做的提示
              {
                  alert(message+"!\n");
                  name.focus();
                  name.select();
                  return false;
              }
              if (value.search(/^[0-9]+[.]?[0-9]+$/)==-1)  // 不是数字做的提示
              {
                  alert(message+"!\n");
                  name.focus();
                  name.select();
                  return false;
              }
	         length=type.substring((type.indexOf('>')+1),type.length); // 获得rn>后面的数 
              try
              {
				length = parseFloat(length);
              }
              catch(ex){}
              try
              {
				value = parseFloat(value);
              }catch(ex){}
              if (value<length)  // 限制数字长度做的限制
              {
                 alert(message+"!\n");
                 name.focus();
                 name.select();
                 return false;
              }
          }
          //================只能输入小于n个字节长度的字符=============================
          if(type.indexOf("r_str<")!=-1)
          {
	         length=type.substring((type.indexOf('<')+1),type.length); // 获得rn>后面的数 
              if (length<getBitLength(value))  // 限制数字长度做的限制
              {
                 alert(message+"!\n");
                 name.focus();
                 name.select();
                 return false;
              }
          }
          //================只能输入小于n个字节长度的字符=============================
          if(type.indexOf("r_str>")!=-1)
          {
	         length=type.substring((type.indexOf('<')+1),type.length); // 获得rn>后面的数 
              if (length>getBitLength(value))  // 限制数字长度做的限制
              {
                 alert(message+"!\n");
                 name.focus();
                 name.select();
                 return false;
              }
          }
          // ===============必须输入a-b位之间的数字================ //		  
	      if (type.indexOf("r_num#<>")!=-1)
	      {
              length=type.substr((type.indexOf('>')+1),type.length);
              length=length.substr(0,length.lastIndexOf("-"));
	          length1=type.substring((type.indexOf('-')+1),type.length) // 获得rn<后面的数
	          
              if (value=="") // 为空做的提示
	          {
		         alert(message+"!\n");
		         name.focus();
				 name.select();
				 return false;
			  }
			  if (value.search(/^[0-9]+$/)==-1) // 不是数字做的提示
			  {
				 alert(message+"!\n");
				 name.focus();
				 name.select();
				 return false;
			  }
			  
			  if (value.length<length || value.length>length1)  // 限制数字长度做的限制
			  {
				 alert(message+"!\n");
				 name.focus();
				 name.select();
				 return false;
			  }
		  }
		  
		  // ===============判断email,不一定输入================ //	
	      if (type.indexOf("email")!=-1)
	      {
	         if (name.value!="")
	         {
	             if (value.search(/^[_\.a-z0-9]+@[a-z0-9]+[\.][a-z0-9]{2,}$/i)==-1)
		         {
		             alert(message+"!\n");
     	    	     name.focus();
		             name.select();
		             return false;
		         }
	          }
	       }

	       // ===============判断email,一定输入================ //
			if (type.indexOf("r_email")!=-1)
			{
				if (name.value=="")
				{
				alert(message+"!\n");
				name.focus();
				name.select();
				return false;
				}
				if (value.search(/^[_\.a-z0-9]+@[a-z0-9]+[\.][a-z0-9]{2,}$/i)==-1)
				{
				alert(message+"!\n");
     	    			name.focus();
				name.select();
				return false;
				}
			}
	  
	   // ===============判断日期,比如2000-12-20================ //
          if (type=="r_date")
          {
              flag=true; 
              getdate=value;         
              if (getdate.search(/^[0-9]{4}-(0[1-9]|[1-9]|1[0-2])-((0[1-9]|[1-9])|1[0-9]|2[0-9]|3[0-1])$/)==-1) // 判断输入格式时候正确
              {
                   flag=false;
               }
               else
               {
                    var year=getdate.substr(0,getdate.indexOf('-'))  // 获得年
                    // 下面操作获得月份
					var transition_month=getdate.substr(0,getdate.lastIndexOf('-')); 
					var month=transition_month.substr(transition_month.lastIndexOf('-')+1,transition_month.length);
					if (month.indexOf('0')==0)
					{
					month=month.substr(1,month.length);
					}
					// 下面操作获得日期
					var day=getdate.substr(getdate.lastIndexOf('-')+1,getdate.length);
					if (day.indexOf('0')==0)
					{
					day=day.substr(1,day.length);
					}
					//alert(month);
					//alert(day)
					//return false;
                    if ((month==4 || month==6 || month==9 || month==11) && (day>30)) // 4,6,9,11月份日期不能超过30
                    {
                    flag=false; 
                     }
					if (month==2)  // 判断2月份
					{
						if (LeapYear(year))
						{
							if (day>29 || day<1){ flag=false; }
						}
						else
						{
							if (day>28 || day<1){flag=false; }
						}
					}
					else
					{
					flag=true;
					}
			   }
          if (flag==false)
          {
              alert(message+"!\n"); //为空时出现的提示
              name.focus();
              name.select();
              return false;
          }
        }
        
        
        // ===============判断日期,比如2000-12-20================ //
          if (type=="r_time")
          {
              flag=true; 
              getdate=value;
              if (getdate.search(/^[0-9]{4}-(0[1-9]|[1-9]|1[0-2])-((0[1-9]|[1-9])|1[0-9]|2[0-9]|3[0-1]) ((0[1-9]|[1-9])|1[0-9]|2[0-4]):((0[1-9]|[1-9])|[1-5][0-9]):((0[1-9]|[1-9])|[1-5][0-9])$/)==-1) // 判断输入格式时候正确
              {
                   flag=false;
               }
               else
               {
                    var year=getdate.substr(0,getdate.indexOf('-'))  // 获得年
                    // 下面操作获得月份
					var transition_month=getdate.substr(0,getdate.lastIndexOf('-')); 
					var month=transition_month.substr(transition_month.lastIndexOf('-')+1,transition_month.length);
					if (month.indexOf('0')==0)
					{
					month=month.substr(1,month.length);
					}
					// 下面操作获得日期
					var day=getdate.substr(getdate.lastIndexOf('-')+1,getdate.length);
					if (day.indexOf('0')==0)
					{
					day=day.substr(1,day.length);
					}
                    if ((month==4 || month==6 || month==9 || month==11) && (day>30)) // 4,6,9,11月份日期不能超过30
                    { 
                        flag=false; 
                     }
					if (month==2)  // 判断2月份
					{
						if (LeapYear(year))
						{
							if (day>29 || day<1){ flag=false; }
						}
						else
						{
							if (day>28 || day<1){flag=false; }
						}
					}
					else
					{
					flag=true;
					}
			   }
          if (flag==false)
          {
              alert(message+"!\n"); //为空时出现的提示
              name.focus();
              name.select();
              return false;
          }
        }
        //判断是否闰年
//参数		intYear 代表年份的值
//return	true: 是闰年	false: 不是闰年
function LeapYear(intYear) {
	if (intYear % 100 == 0) 
	{
		if (intYear % 400 == 0) { return true; }
	}
	else {
		if ((intYear % 4) == 0) { return true; }
	}
	return false;
}

      // ===============判断电话，可以为空================ //
	  if (type.indexOf("tel")!=-1)
	  {
	     if (name.value!="")
	     {
                 if (value.search(/^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{8}$/)==-1 && value.search(/^(\([0-9]{4}\)|[0-9]{4}-)[0-9]{7}$/)==-1)
		 {
		    alert(message+"!\n");
     	    	    name.focus();
		    name.select();
		    return false;
		  }
	     }
	  }
	  
	  // ===============判断电话，不能为空================ //
	  if (type.indexOf("r_tel")!=-1)
	  {
	     if (name.value=="")
	     {
		    alert(message+"!\n");
		    name.focus();
		    name.select();
		    return false;
	     }
	     if (value.search(/^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{8}$/)==-1 && value.search(/^(\([0-9]{4}\)|[0-9]{4}-)[0-9]{7}$/)==-1)
	     {
	        alert(message+"!\n");
     	    name.focus();
		    name.select();
		    return false;
	     }
	  }
	  
	  // ===============判断手机，可以为空================ //
	  if (type.indexOf("mod")!=-1)
	  {
	     if (name.value!="")
	     {
                if (value.search(/^[0-9]{11}$/)==-1)
		{
		   alert(message+"!\n");
     	    	   name.focus();
		   name.select();
		   return false;
		}
	     }
	   }
	   
	   // ===============判断手机，不能为空================ //
	   if (type.indexOf("r_mod")!=-1)
	   {
	      if (name.value=="")
	      {
		  alert(message+"!\n");
		  name.focus();
		  name.select();
		  return false;
	       }
	      if (value.search(/^[0-9]{11}$/)==-1)
	      {
		 alert(message+"!\n");
     	    	 name.focus();
		 name.select();
		 return false;
	       }
	   }
	   
	   // ===============判断街道================ //
	   if (type.indexOf("city")!=-1)
	   {
	      if (name.value!="")
	      {
            	 if (value.search(/^.{1,}(市|镇|乡).{1,}(路|街|道).{1,}号.{0,}$/)==-1)
		 {
		     alert(message+"!\n");
     	    	     name.focus();
		     name.select();
		     return false;
		  }
	       }
	   }
	   
	   // ===============判断街道，不能为空================ //
	   if (type.indexOf("r_city")!=-1)
	   {

	       if (name.value=="")
	       {
		  alert(message+"!\n");
		  name.focus();
		  name.select();
		  return false;
	       }

	       if (value.search(/^.{1,}(市|镇|乡).{1,}(路|街|道).{1,}号.{0,}$/)==-1)
	       {
		  alert(message+"!\n");
     	    	  name.focus();
		  name.select();
		  return false;
	       }
	   }
        }
    }
    return true;
}
