//Jquery常用扩展库
jQuery.extend({
	regex : {
		'require'  : /.*/, //匹配任意字符，除了空和断行符
		'email'    : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,  //电子邮件
//		'phone'    : /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/, //固定电话
		'phone'	   : /^(\d{3,4}|\d{3,4}-)?(\d{7,8})?$/,//固定电话 
		'mobile'   : /^((\(\d{2,3}\))|(\d{3}\-))?(13|15|18|14)\d{9}$/,  //手机号码
		'url'      : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,  //url地址
		'currency' : /^\d+(\.\d+)?$/,  //货币
	    'number'   : /\d+$/,           //纯数字
	    'zip'      : /^[1-9]\d{5}$/,
	    'qq' 	   : /^[1-9]\d{4,12}$/,       //QQ号码
	    'fetion' 	   : /^[1-9]\d{8,11}$/,       //飞信号码
	    'integer'  : /^[-\+]?\d+$/,           //整数
	    'double'   : /^[-\+]?\d+(\.\d+)?$/,   //双整型
	    'english'  : /^[A-Za-z]+$/,           //纯英文字符
		'string'   : /^[A-Za-z_]+[0-9_a-zA-Z]*$/,    //以英文开头的英文和数字组成的字符串
		'ip' 	   : /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/, //ip地址
		'card'     : /^(\d{14}|\d{17})(\d|[xX])$/,   //匹配身份证
		'birth'    : /^\d{4}.{1}\d{1,2}.{1}\d{1,2}/,  //匹配生日
		'method'   : /^[A-Za-z_]+[0-9_a-zA-Z]*(\:|：).+$/
	},
	
	//匹配数据的合法性
	match : function(value,name,flags){
		var pattern = this.regex[name]?this.regex[name]:'require';
		var reg = new RegExp(pattern,flags);
		return reg.test(value);
	},
	//生成一个在min到max之间的随机数
	rand : function(min,max){
		 var Range = max - min;
	     var Rand = Math.random();
	     return(min + Math.round(Rand * Range));
	},
	//设置cookie
	setcookie : function(name,value,expire){
		expire = expire>0 ? expire : 0;
	    var exp  = new Date();    //new Date("December 31, 9998");
	    exp.setTime(exp.getTime() + expire*24*60*60*1000);
	    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
	},
	
	//获取cookie值
	getcookie : function(name){
		var arr,reg=new RegExp("(^|)"+name+"=([^;]*)(;|$)");  
	    if(arr=document.cookie.match(reg))
	    	return unescape(arr[2]);
	    else
	    	return null;  
	},
	
	//删除cookie
	delcookie : function(name){
		var exp = new Date();
	    exp.setTime(exp.getTime() - 1);
	    var cval=getCookie(name);
	    if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
	},
	
	//将字符串转换成整数
	int : function(value){
		return parseInt(value);
	},
	
	//将字符串转换成浮点数
	float : function(value){
		return parseFloat(value);
	},
	
	//表单元素中的值是否为空，为空返回true
	isnull : function(input){
		return $.trim($(input).val())=='';
	},
	
	//判断两个表单元素的值是否一致
	eq : function(input1,input2){
		var value1 = $.trim($(input1).val());
		var value2 = $.trim($(input2).val());
		return value1 == value2;
	},
	
	//判断当前滚动条是否已经滚动到底部
	scrollBottom : function(){
		var winHeight = $(window).height();  //当前窗口可见高度
		var docHeight = $(document).height();//当前文档高度，包括可见和不可见部分
		if(docHeight>winHeight){//若文档高度大于可见高度，则存在滚动条
			var top = document.body.scrollTop?document.body.scrollTop:document.documentElement.scrollTop; //当前滚动条距顶部距离
			if(top>=docHeight-winHeight)//说明已经滚动到底部了
				return true;
		}
		return false;
	},
	
	/**
	 * 全选或反选复选框
	 */
	checkbox : function(o,container,v){
		if($(o).attr('checked')==true || v)
			$(container+' input[type=checkbox]').attr('checked',true);
		else if($(o).attr('checked')==false || !v)
			$(container+' input[type=checkbox]').attr('checked',false);
	},
	
	/**
	 * 过滤获取文件名
	 */
	getFileName : function(path){
		path = path.split("/");
		var l = path.length;
		if(l>1) return path[l-1];
		else return path[0];
	},
	
	/**
	 * 过滤获取文件后缀名
	 */
	getFileExt : function(file){
		file = file.split(".");
		var l = file.length;
		if(l>1) return '.'+file[l-1];
		else return -1;
	},
	
	getFileExtCls : function(ext){
		var uploadifyExts = ['ac3','ai','aiff','ani','asf','au','avi','bat','bin','bmp','bup','cab','cal','cat','cur','dat','dcr','der','dic','dll','doc','docx','dvd','dwg','dwt','font','gif','hlp','hst','html','ico','ifo','inf','ini','java','jif','jpg','log','m4a','mmf','mmm','mov','mp2','mp2v','mp3','mp4','mpeg','msp','pdf','png','ppt','pptx','psd','ra','rar','reg','rtf','theme','tiff','tlb','ttf','txt','vod','wav','wam','wmv','wpl','wri','xls','xlsx','xml','xsl','zip'];
		ext = ext.toLowerCase().substr(1);
		if(jQuery.inArray(ext,uploadifyExts)!='-1')
			return ext+".png";
		else
			return "default.gif";
	},
	
	parseJson :  function(data){
		return eval('('+data+')');
	}
});
//新增JQuery插件
jQuery.fn.extend({
	check : function(name){
		return jQuery.match(jQuery.trim($(this).val()),name);
	},
	//搜索并替换字符
	rpcWith : function(input,find,replace,force){
		if(jQuery(this).children('option').length){
			if(jQuery.trim(jQuery(this).val())){
				var r = jQuery.trim(jQuery(this).children('option:selected').html());
				r = r ? r : jQuery.trim(jQuery(this).val())
			}
		}else{
			var r = jQuery.trim(jQuery(this).val());
		}
		if(r){
			if(find){
				replace = replace ? replace : '';
				r = r.replace(find,replace);
			}
			var v = jQuery.trim(jQuery(input).val());
			jQuery(input).val(force?r:(v?v:r));
		}
	},
	//触发某个事件进行提示
	delConfirm : function(msg){
		msg = msg ? msg : '您确实要删除该数据吗？';
		var i = confirm(msg);
		if(i){
			var url = $(this).attr("href") ? $(this).attr("href") : ($(this).attr("rel") ? $(this).attr("rel") : $(this).attr("alt"));
			window.location.href = url;
		}
		return false;
	},
	
	/**
	 * 计算指定表单域可输入的剩余字符个数；若有填充域，则将计算得到的剩余字符个数填充到指定的域
	 * @param maxLength 指定最大可输入字符个数
	 * @param container 指定填充域
	 * 
	 * @return 返回计算后剩余的字符个数
	 */
	remain : function(maxLength,container){
		var value = jQuery.trim(jQuery(this).val());
		var len = value.length;
		if(len > 0){
			if(len > maxLength){
				var remainLength = 0;
				jQuery(this).val(value.substring(0,maxLength));
			}else
				var remainLength = maxLength - len;
		}else
			var remainLength = maxLength;
		if(container){
			jQuery(container).html(remainLength);
		}
		return remainLength;
	},
	
	removeUpload : function(varname,tbimg,muilt){
		var $p = $(this).parent();
		if(!muilt){
			if($p.siblings().length<=0){
				var html = tbimg ? "<input type='hidden' name='"+tbimg+"'>" : "";
				$p.parent().html("<input type='hidden' name='"+varname+"'>"+html);
			}
		}
		$p.remove();
	}
});
