// JavaScript Document
/*
 * Lanscend Form Validate Plug-in
 * Start @ 2011-10-8
 * By Xu
 * Codename lsValidate
 * Version 1.0
 * 提交检测的页面 id 即显示信息的div的id不能有相同的，否则无法正常显示提示信息，
 * checkform表单验证也无法进行，没有提示信息
 * */

function checktype(teststr,validateType,id){
			validateRuleCN="";
			validateRuleEN="";
			validateResult=false;
			switch(validateType){
				case 'pure-char':
					//纯字母
					var regPatt=new RegExp(/^[a-zA-Z]+$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="只允许使用字母，不限制大小写";
					validateRuleEN="Only letters, capitalization not limited.";
				break;
				case 'pure-number':
					//纯数字
					var regPatt=new RegExp(/^\d+$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="只允许使用数字";
					validateRuleEN="Only numbers";
				break;
				case 'per-number':
					//纯数字
					var regPatt=new RegExp(/^-?\d+$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="只允许使用数字或负数";
					validateRuleEN="Only numbers";
				break;
				case 'email':
					//电子邮件
					var regPatt=new RegExp(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="name@domain.com样式的电子邮件格式";
					validateRuleEN="Only email address like name@domain.com, underscores and period can be included in name and domain.";
				break;
				case 'cn-id':
					//中国身份证号，只限18位
					var regPatt=new RegExp(/^([1-9]{2}\d{15})(\d|[x,X])$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="仅限18位新身份证号";
					validateRuleEN="ID No. is limited to 18-digit new ones.";
				break;
				case 'cn-tel-zone':
					//中国固定电话号码，带区号
					var regPatt=new RegExp(/^\(?\s*0\d{2,3}\s*[)-]?\s*\d{7,9}\s*-?\s*\d{0,4}$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="区号需要使用圆括号或者使用减号连接";
					validateRuleEN="Area code need be parenthesized or connnected to phone numbers with conjuction.";
				break;
				case 'cn-tel-no-zone':
					//中国固定电话号码，不带区号
					var regPatt=new RegExp(/^\d{7,9}-?\d{0,4}$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="不需指定区号，7-9位数字及分机号码";
					validateRuleEN="7-9 digit number only or include extension number at most.";
				break;
				case 'cn-cell':
					//中国手机号，支持前导0，+86，086
					var regPatt=new RegExp(/^(0|\+86|086)?\d{11}$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="11位数字手机号，以及前导0、+86或者086";
					validateRuleEN="11 digit cell phone number and leading 0, country code +86 or 086.";
				break;
				case 'date':
					//日期
					var regPatt=new RegExp(/^(?:(?:1[6-9]|[2-9][0-9])[0-9]{2}([-\/.]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:(?:1[6-9]|[2-9][0-9])(?:0[48]|[2468][048]|[13579][26])|(?:16|[2468][048]|[3579][26])00)([-\/.]?)0?2\2(?:29))$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="使用年-月-日、年/月/日格式";
					validateRuleEN="Styles like Y-m-d, Y/m/d, Y.m.d can be accepted.";
					
				break;
				case 'time':
					//时间
					var regPatt=new RegExp(/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="使用冒号分割，不接受秒数";
					validateRuleEN="Use colon divide, not include seconds.";
				break;
				case 'credit':
					//信用卡号，支持MasterCard、Visa、American Express、Discover
					var regPatt=new RegExp(/^(5[1-5]\d{14})|(4\d{12}(\d{3})?)|(3[47]\d{13})|(6011\d{14})$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="仅限MasterCard、Visa、American Express、Discover信用卡";
					validateRuleEN="Only accept MasterCard, Visa, American Express, Discover cards.";
				break;
				case 'url':
					//网址，含一级域名与二级域名
					var regPatt=new RegExp(/^(http:\/\/|HTTP:\/\/)?(www|\w+)\.\w+(\.\w{2,})+(\/[\w-\.]+)*/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="正常的URL地址，可包含http部分";
					validateRuleEN="Normal URL is accepted.";
				break;
				case 'msn':
					//MSN
					var regPatt=new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="abcsd@live.cn样式的MSN";
					validateRuleEN="abcsd@live.cn style of MSN.";
				break;
				case 'qq':
					//QQ号
					var regPatt=new RegExp(/^[1-9][0-9]{4,}$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="QQ号编号从10000开始";
					validateRuleEN="QQ started from 10000.";
				break;
				case 'username':
					//普通用户名，字母开头，2字符以上
					var regPatt=new RegExp(/^[a-zA-Z]\w{1,}$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="字母开头，2字符以上";
					validateRuleEN="Letter lead, 2 characters at least.";
				break;
				case 'simpassword':
					//简单密码，字母与数字组成，2字符以上
					var regPatt=new RegExp(/^\w{2,}$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="字母与数字组成，2字符以上";
					validateRuleEN="Form by letters and numbers, 2 characters at least.";
				break;
				case 'cn-name':
					//中文姓名，2中文字符以上
					var regPatt=new RegExp(/^[\u4e00-\u9fa5]{2,4}$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="中文文字，两个汉字以上，四个汉字以下";
					validateRuleEN="2 chinese character at least, 4 at most.";
				break;
				case 'cnchar':
					//2中文字符以上
					var regPatt=new RegExp(/^[\u4e00-\u9fa5]{2,}$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="中文文字，两个汉字以上";
					validateRuleEN="2 chinese character at least, 4 at most.";
				break;
				case 'en-name':
					//英文姓名，2单词以上
					var regPatt=new RegExp(/^(\b[A-Z][a-zA-Z]*\b\s?){2,}$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="英文，2单词以上，每单词首字母大写";
					validateRuleEN="2 English word at least, capitalize the first letter of each word.";
				break;
				case 'NO':
					//验证编号（只包含数字或字母）
					var regPatt=new RegExp(/^[0-9a-zA-Z]{2,}$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="只能包含字母或数字";
				break;
				case 'clientGrade':
					//验证编号（只包含数字或字母）
					var regPatt=new RegExp(/^[a-zA-Z]{1,}?[1-9]$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="只能包含字母和数字";
				break;
				case 'price':
					//验证价格
					var regPatt=new RegExp(/(^\d+$)|(^\d+\.\d+$)/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="只能是整数或小数";

				break;
				case 'money':
					//验证价格
					var regPatt=new RegExp(/^-?[1-9]+(\.\d+)?$|^-?0(\.\d+)?$|^-?[1-9]+[0-9]*(\.\d+)?$/);
					validateResult=regPatt.test(teststr);
					validateRuleCN="只能是整数,小数,负数或0";
				break;
				case 'common':
					//普通字符串  不为空就可以
					if(teststr==''||teststr===null){
						validateResult=false;
						validateRuleCN="一般字符";
						}else{
							validateResult=true;
						}
					
					
				break;
				case 'custom':
					//自定义形式，见参数
					var regPatt=new RegExp(defaults.custom);
					validateResult=regPatt.test(teststr);
					validateRuleCN=defaults.validateRuleCN;
					validateRuleEN=defaults.validateRuleEN;
				break;
				
				default:
					validateResult=true;
					validateRuleCN="";
					validateRuleEN="";
				break;
			}
			//返回结果
			var thisResult=validateRuleCN;
//			if(! validateResult){alert(thisResult);}
			if(! validateResult){document.getElementById(id).innerHTML=thisResult;}else{
				//alert(id);
			 document.getElementById(id).innerHTML=" ";
			}

			return validateResult;

 }
/*
* 检查全部form变量值是否正确，给出提示
* 检查全部form变量必填的是否填写
* 参数：form 表单；needstr 必填项组合串，用—分割
* 表单值：id ls_fillDate_date 前缀_变量名_验证类型；msgdivid 表单提示div 的id ls_thisWeek  前缀_变量名
* modiID 没有定义则是添加模式，否则是修改模式，修改模式需要有那个ID以区分
* zhao 2012-7-15
*
<input type="text" name="name" id="ls_name_common" size="16" maxlength="40" value="<?=($_POST['name']==''?'':$_POST['name'])?>"  onBlur="checktype(this.value,'common','ls_name');" > *</div>
<div id="ls_name" style="float:left;width:200px; color:#C60; height:20px;" > </div></td>
onClick="this.form.action='?id=<?=$id?>&ls=modi'; if(checkform(this.form,'name_title',<?=$ls_rows['ID']?>))this.form.submit()"
*/

function checkform(form,needstr,modiID)  //this.form,'code_name_specification' 
{
   var returnvar=true;
  for (var i=0;i<form.elements.length;i++)
  {
    var e = form.elements[i];
	
	var esplit=e.id.split("_") ;
	var msgdivid;  //显示提示的div id
	if(typeof(modiID) == "undefined")
	{
		msgdivid=esplit[0]+'_'+esplit[1];  //显示提示的div id
	}
	else
	{
		msgdivid=esplit[0]+'_m_'+modiID+"_"+esplit[1];  //显示提示的div id
	}
	var validateType=esplit[2];        //检查的类型
	
	if(esplit[0]=='ls') //
	//alert(esplit[1]);
		{var nspvalue=e.value.replace(/^\s+|\s+$/g,""); //去掉空格
		var needcheck=needstr.indexOf(esplit[1]);  //需要验证值是否在需要验证串里
		if((needcheck<0&&nspvalue!="")||needcheck>=0) //不需要验证的变量 而且 不是空 + 需要验证
		{
		 	//alert(e.value+validateType+msgdivid);
    		if (checktype(e.value,validateType,msgdivid))
   		 	{
			 
   	 		}
			else
			{
				returnvar=false;
			}
			//alert(e.value+'--'+validateType)
		}
	}
	//alert(returnvar);
  }

  return returnvar;
}
 
 //加法函数，用来得到精确的加法结果

//说明：javascript的加法结果会有误差，在浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。

//调用：FloatAdd(arg1,arg2,arg3,arg4)

//返回值：arg1加上arg2加上arg3加上arg4的精确结果

function FloatAdd(arg1,arg2,arg3,arg4){   
var r1,r2,r3,r4,m    
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}    
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
try{r3=arg1.toString().split(".")[1].length}catch(e){r3=0}    
try{r4=arg2.toString().split(".")[1].length}catch(e){r4=0} 
    m=Math.pow(10,Math.max(r1,r2,r3,r4))   
	return (arg1*m+arg2*m+arg3*m+arg4*m)/m  
}  
<!-- 合计-->
        function equal(e){
			    a1=document.getElementById('amount1').value;
				//alert(a1);
				b1=document.getElementById('mony1').value;
                a2=document.getElementById('amount2').value;
				b2=document.getElementById('mony2').value;
				a3=document.getElementById('amount3').value;
				b3=document.getElementById('mony3').value;
				a4=document.getElementById('amount4').value;
				b4=document.getElementById('mony4').value;
                switch(e){
                        case "+":total1 = FloatAdd(a1,a2,a3,a4);
						         total2 = FloatAdd(b1,b2,b3,b4);
						break;
                       
                }
				//alert(total1);
				document.getElementById('sum1').innerHTML=total1;
                document.getElementById('sum2').innerHTML=total2;
        }

<!-- 合计-->


 
 

 function huizong(value,id){  
  var regPatt=new RegExp(/^-?\d+$/);
validateResult=regPatt.test(value);
  if(!validateResult){
	
	   document.getElementById(id).value="";
	  }
    }
    function huizong1(value,id){
   var regPatt=new RegExp(/^-?[1-9]+(\.\d+)?$|^-?0(\.\d+)?$|^-?[1-9]+[0-9]*(\.\d+)?$/);
validateResult=regPatt.test(value);
  if(!validateResult){
	
	   document.getElementById(id).value="";
	  }
    }
function pagesize($fillname,value){
	
window.open($fillname+"?pagesize="+value,"right");  
}
function pagesize1($fillname,value){
window.open($fillname+"?pagesize="+value,"content");  
}
function pagesize2($fillname,value,obj){
window.open($fillname+"?pagesize="+value+obj,"right");  
}

//添加品牌======================================================================
function changeIt(){
document.formmodishow.clientBrand.value += document.formmodishow.selectclient.options[document.formmodishow.selectclient.selectedIndex].value+",";
}//添加品牌======================================================================
//维护人
function changeIt1(){
document.formmodishow.maintainer.value += document.formmodishow.selectclient1.options[document.formmodishow.selectclient1.selectedIndex].value+" ";
}



function showtable(tableid){
      var table = document.getElementById(tableid);
      //document.getElementById('requestquote').value = 1;
      if(table.style.display == 'none'){
        table.style.display = 'block';
        //document.getElementById("moreinfo").value = 1;
        document.getElementById('ico').src = "../img/ico+.gif";
      }else{
        table.style.display = 'none';
       // document.getElementById("moreinfo").value = 0;
        document.getElementById('ico').src = "../img/ico-.gif";
      }
 }
 
function write2(){
	 	
	 	var tel2 = document.getElementsByName('tel')[0].value;
		var fax2 = document.getElementsByName('fax')[0].value;
		var email2 = document.getElementsByName('email')[0].value;
		var website2 = document.getElementsByName('website')[0].value;
		var skype2 = document.getElementsByName('skype')[0].value;
		
		var content_tel2 = document.getElementsByName('content_tel')[0];
		content_tel2.value = "tel:"+tel2+"\r\nfax:"+fax2+"\r\nemail:"+email2+"\r\nweb:"+website2+"\r\nskype:"+skype2;
		
 }