//扩展jQuery方法
(function($){
	//window resize
	$.fn.wresize=function(callback){
		var self=this;
		if(!self[0] || self[0]!=window)return;
		var pResizeTimer = null;
		return self.bind('resize', function() { 
			if(pResizeTimer) clearTimeout(pResizeTimer); 
			pResizeTimer= setTimeout(function(){
				callback(self[0]);
			},50);
		});
	};
	
	//返回select value text信息
	$.fn.select=function(){
		var arr=[];
		$.each(this.find('option'),function(key,val){
			arr[key]=[];
			$(val).each(function(){
				arr[key]['value']=this.value;
				arr[key]['text']=this.text;
			});
		});
		return arr;
	};
	
	//-------------------------------------------------------
	//get date array
	$.getDateArr=function(){
		var d=new Date();
		return {
			Y:d.getFullYear(),
			m:d.getMonth()+1,	
			d:d.getDate(),
			H:d.getHours(),
			i:d.getMinutes(),
			s:d.getSeconds()
		}
	}
	
	//获取当天日期
	$.getToday=function(){
		var d=$.getDateArr();
		return d.Y+'-'+d.m+'-'+d.d;
	};
	
	$.getDateTime=function(){
		var d=$.getDateArr();
		return d.Y+'-'+d.m+'-'+d.d+' '+d.H+':'+d.i+':'+d.s;
	};
	
	//-------------------------------------------------------
	//mack the all checked ids in a input tag
	/* find one value is in array */
	$.isInArr=function(arr,val){
		if(!arr.length)return false;
		for(var i=0;i<arr.length;i++){
			if(arr[i]==val){
				return true;
				break;
			}
		}
		return false;
	};
	
	/* delete one value in array */
	$.arrRemove=function(arr,val){
		if(!arr.length)return arr;
		for (var i = 0, n = 0; i < arr.length; i++){
			if (arr[i] != val)arr[n++] = arr[i];
		}
		arr.length--;
		return arr;
	};
	
	//删除指写索引的数组项
	$.array_del=function(arr,i){
		if(!arr.length || i<0 || i>arr.length )return arr;
		return arr.slice(0,i).concat(arr.slice(i+1,arr.length));
	};
	
	//多维数组筛选
	$.array_filter=function(arr){
		var newArr=[];
		var args=[];
		var argsLen=arguments.length;
		
		if(argsLen>1 && arr.length>0){
			for(var i=0;i<argsLen;i++){
				if(i>0)eval("var func"+i+"="+arguments[i]+";");
			}
			//------------
			for(var i=0;i<arr.length;i++){
				if(func1(arr[i])==true){
					if(argsLen==2){
						newArr.push(arr[i]);
					}
					if(argsLen==3){
						for(var j=0;j<arr[i].length;j++){
							if(func2(arr[i][j])==true){
								var len=newArr.length;
								newArr[len]=[];
								newArr[len].push(arr[i][j]);
							}
						}
					}
				}
			}
			return newArr;
		}else{
			return arr;
		}
	};
	
	//删除数组重复项
	$.array_unique=function(arr){
		var newArr=[];
		var args=[];
		var argsLen=arguments.length;
		
		if(argsLen>1 && arr.length>0){
			for(var i=0;i<argsLen;i++){
				if(i>0)eval("var func"+i+"="+arguments[i]+";");
			}
			for(var i=0;i<arr.length;i++){
				if(!newArr.length){
					newArr.push(arr[i]);
				}else{
					for(var j=0;j<newArr.length;j++){
						if(func1(arr[i],newArr[j])!=true){
							newArr.push(arr[i]);
							break;
						}else{
							break;
						}
					}
				}
			}
			return newArr;
		}else{
			return arr;
		}
	};
	
	//-------------------------------------------------------
	//获取鼠标的坐标
	$.mouseXY=function(ev){
		var coor={x:0,y:0};
		ev = ev || window.event;
		if(ev.pageX || ev.pageY){
			coor.x=ev.pageX;
			coor.y=ev.pageY;
		}else{
			coor.x=ev.clientX + document.body.scrollLeft - document.body.clientLeft,
			coor.y=ev.clientY + document.body.scrollTop - document.body.clientTop
		};
		coor.x=!isNaN(coor.x)?coor.x:0;
		coor.y=!isNaN(coor.y)?coor.y:0;
		return coor;
	}
	
	//-------------------------------------------------------
	//格式化的数字,可指定保留的小数位数。  
	$.myRound=function(cur_num,len){  
		var temp_num=Math.round(cur_num*Math.pow(10,len));
		var str_num=new String(temp_num);
		var numlen=str_num.length;
		var int_num=str_num.substr(0,numlen-len); 
		var dec_num=str_num.substr(numlen-len,len); 
		return(int_num+"."+dec_num);
	};

	//将数字转换为货币格式
	$.toMoney=function(val){
		var len=arguments[1] || 2;
		val=$.myRound(val,len);
		val=val?val.toString():'';
		return val.replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g,"$1,");
	};
	
	//控制货币字符串小数点长度
	//不够长的补长,超长的只去除最后的"0"
	$.formatCurrencyStr=function(val,len){
		val=val+'';
		if(val=='')return '';
		
		if(isNaN(parseFloat(val)) || parseFloat(val)==0){
			val='0.';
			for(var i=0;i<len;i++){
				val+='0';
			}
			return val;
		}
		
		val=val.replace(/[.]{1}0*$/,''); 
		if(val.indexOf('.')==-1){
			val+='.';
			for(var i=0;i<len;i++){
				val+='0';
			}
		}else{
			var str2 = val.split('.')[1];  
			for(var i=0;i<len-str2.length;i++){
				val+='0';
			}
		}
		
		return val;
	}
	//string-------------------------------------------------------
	$.text2Html=function(htmlText){
		if(htmlText=='' || htmlText==undefined) return '';
		var str='';
		str = htmlText.replace(/\r\n/g, "<br/>");
		str = str.replace(/\"/g, "");
		str = str.replace(/\r/g, "<br/>"); 
		str = str.replace(/\n/g, "<br/>"); 
		str = str.replace(/\t/g, "");
		return str;
	};
	
	//coor-------------------------------------------------------
	//get the jQuery Obj left and top ,width and height
	$.offset=function(o){
		o=o.jquery?o:$(o);
		return {
			left:o.offset().left,
			top:o.offset().top,
			width:o.width(),
			height:o.height()
		}
	};
	
	$.fn.myOffset=function(){
		var self=this;
		return {
			left:self.offset().left,
			top:self.offset().top,
			width:self.width(),
			height:self.height()
		}
	};
	
	//ajax-------------------------------------------------------
	//get js file
	$.getJs=function(url){
		$.ajax({
		  type: "GET",
		  url: url,
		  async:false,
		  dataType: "script"
		});			
	};
	
	//ajax load
	$.ajaxLoad=function(){
		var params=arguments[0] || {};
		params=$.extend({
			url:'',
			data:{},
			async:false,
			error:function(){},
			success:function(){}
		},params);
		
		$.ajax({
		  type: "POST",
		  url: params.url,
		  data:params.data,
		  timeout: 5000,
		  async:params.async,
		  dataType: "html",
			error: function(){
				params.error();
			},
			success: function(reval){
				params.success(reval);
			}
		});			
	};
	
	/*	
	 * make myself $.ajax
	 * 
	 * example:
			var data=$.jsonToPhpArray({
				sePara:{
					actionType:'server_comment_del',
					sortType:sortType,
					id:id
				},
				seData:{
					files:srcObj
				}
			});
			che3(data)
			$.myAjaxJson({
				url:'server/form_edit.php',
				data:data,
				async:false,
				//dataType:'html',
				error: function(reObj){},
				success:function(reObj){
					if(reObj.status)reVal=true;
				}
			});	
	*/	
	$.myAjaxJson=function(){
		var params=arguments[0] || {};
		params=$.extend({
			url:'',
			data:{},
			async:false,
			timeout:5000,
			dataType:'json',
			error:function(reObj){},
			success:function(reObj){}
		},params);
		
		var reVal={};
		$.ajax({
			type: "POST",
			url: params.url,
			data: params.data,
			timeout: params.timeout,
			async:params.async,
			//cache:false,
			dataType:params.dataType,
			error: function(reObj){
				params.error(reObj);
			},
			success: function(reObj){
				params.success(reObj);
				reVal=reObj;
			}
		}); 
		
		return reVal;
	};
	
	//img-------------------------------------------------------
	$.imgScale=function(img,w,h){
		var img2 = new Image();
		img2.src = img.src;
		if(img2.width>w || img2.height>h){
			if(img2.width/img2.height>w/h){
				var ht = w/img2.width*img2.height;
				img.width = w;
				img.height = ht;
			}else{
				var wt = h/img2.height*img2.width;
				img.width = wt;
				img.height = h;
			}
		}
	}
	
	//--------------------------------
	//随机生成字符串
	$.randomChar=function(len){
		var x="0123456789qwertyuioplkjhgfdsazxcvbnm";
		var tmp="";
		for(var i=0;i<len;i++){
			tmp += x.charAt(Math.ceil(Math.random()*100000000)%x.length);
		}
		return tmp;
	}
	
	//tool view form data in php server-----------------------------------
	/*
	example:
		$.view({
			data:seObj,
			//isPhpArray:true,
			error:function(reObj){
				che2('error');
			},
			success:function(reObj){
				che(reObj);
			}
		});
	*/
	$.view=function(){
		var params=arguments[0] || {};
		params=$.extend({
			url:'server/view_format.php',
			isPhpArray:true,
			data:{},
			error:function(reObj){},
			success:function(reObj){}
		},params);
		
		
		var data=params.data;
		
		if(params.isPhpArray){
			data=$.jsonToPhpArray(data);
		}

		$.ajax({
			type: "POST",
			url: params.url,
			data: data,
			timeout: 5000,
			async:false,
			cache:false,
			dataType:'html',
			error: function(reval){
				params.error(reval);
			},
			success: function(reObj){
				params.success(reObj);
			}
		});  
	};
	
	//css-------------------------------------------------------
	//获取background 的 url 值
/*	var css=$('#img_big').css('background');
	che3($.css_background_url(css))
*/
	$.css_background_url=function(css){
		var url=(css)?css:'';
		url=(css)?(css.match(/url\([a-z\/\.0-9_-]+\)/ig)):'';
		url=(url)?((url.length)?(url[0].toString()):''):'';
		url=url.replace(/url\(/ig,'');	
		url=url.replace(/\)/ig,'');	
		
		return url;
	};
	
	//backup-------------------------------------------------------
	//backup();
	$.backup=function(){
		$.ajax({
			type: "POST",
			url:'backup/index.php',
			data: {},
			timeout: 5000,
			error: function(reObj){},
			success: function(reObj){}
		}); 
	};
	
	

})(jQuery);