$(function(){
	window.fantaco = {};
	
	fantaco.Request = {
		/**
		*返回当前地址
		* @author ministry
		* @return String
		*/
		Url : function (){
			return window.location.href;
		},
		/**
		*经过js处理的地址（页面未刷新）
		* @author ministry
		* @return String
		*/
		CurrentUrl : '',
		/**
		*返回当前站点的域名（如地址为http://olml.com/10/shop_admin/admin/role?id=3，则返回olml.com/10）
		* @author ministry
		* @return String
		*/
		Domain : function(){
			var url = this.Url().replace("http://"+document.domain+"/","").split("/");
			var patrn=/^\d+$/;
			if (!patrn.exec(url[0])){
				domain = document.domain;
			}else{
				domain = document.domain+"/"+url[0];
			}
			return domain;
		},
		/**
		*返回当前页名称（如地址为http://olml.com/admin/admin/role?id=3，则返回role）
		* @author ministry
		* @return String
		*/
		PageName : function(){
			var url = this.Url().split("?")[0].split("/");
			return url[url.length-1];
		},
		/**
		*返回当前页所有参数（如地址为http://olml.com/admin/admin/role?id=3，则返回?id=3）
		* @author ministry
		* @return String
		*/
		PageParam : function(){
			var url = this.Url().split("?");
			if(url.length > 1){
				return '?'+url[1];
			}else{
				return '';
			}
		},
		/**
		*返回当前页菜单路径（如地址为http://olml.com/admin/admin/role?id=3，则返回/admin/admin/role）
		* @author ministry
		* @return String
		*/
		Pageurl : function(){
			return unescape(this.Url()).split(document.domain)[1].split('#')[0].split('?')[0];
		},
		/**
		*返回当前页目录路径（如地址为http://olml.com/admin/admin/role?id=3，则返回http://olml.com/admin/admin）
		* @author ministry
		* @return String
		*/
		FolderPath : function(){
			var pos = this.Url().split('?')[0].lastIndexOf('/');
			return this.Url().slice(0,pos);
		},
		/**
		*返回指定参数的值
		* @author ministry
		* @param String item 参数名称
		* @return String
		*/
		GetParam : function(item){
			var svalue = location.search.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)","i"));
			return svalue ? svalue[1] : svalue;
		},
		/**
		*从当前地址移除参数
		* @author ministry
		* @param String param 参数名称 Sting value 参数值
		*/
		Delelte : function (param, value){
			var url = this.CurrentUrl ? this.CurrentUrl : this.Url();
			var re = eval("/[\?\&]"+param+"=/g");
			var pos = url.search(re);
			if(pos != '-1'){
				var posEnd = url.slice(pos+1).indexOf('&');
				if(posEnd != -1){
					url = url.slice(0, pos+1)+url.slice(pos+posEnd+2);
				}else{
					var otherPos = url.indexOf('#');
					url = url.slice(0, pos)+(otherPos == '-1' ? '' : url.slice(otherPos));
				}
			}
			this.CurrentUrl = url;
		},
		/**
		*为当前地址加入（修改）参数
		* @author ministry
		* @param String param 参数名称 Sting value 参数值
		*/
		FilterUrl : function (param, value){
			this.Delelte(param, value);
			var url = this.CurrentUrl.split('#');
			var str = param+'='+value;
			if(url[0].indexOf('?')!='-1'){
				url[0] += '&'+str;
			}else{
				url[0] += '?'+str;
			}
			this.CurrentUrl = url[0]+(url.length>1 ? '#'+url[1] : '');
		},
		/**
		*获取时间区间，并将结果显示在相应的input标签上
		* @author ministry
		* @param Sting param 时间区间参数名称 input_object obj1 起始时间 input_object obj1 起始时间
		*/
		GetFilterDate : function(param, obj1, obj2){
			var param = this.GetParam(param);
			if(param){
				var created = param.split('%7C');
				obj1.val(created[0]);
				obj2.val(created[1]);
			}
		},
		/**
		*地址编码
		* @author ministry
		* @param Sting str url地址
		* @return Sting
		*/
		UrlEncode : function (str){ 
			var ret = "";
			var strSpecial = "!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
			var tt= "";
			for(var i=0;i<str.length;i++) {
				var chr = str.charAt(i);
				var c = str2asc(chr);
				tt += chr+":"+c+"n";
				if(parseInt("0x"+c) > 0x7f) {
					ret += "%"+c.slice(0,2)+"%"+c.slice(-2);
				}else {
					if(chr == " ") ret += "+";
					else if(strSpecial.indexOf(chr)!=-1) ret += "%"+c.toString(16);
					else ret += chr;
				}
			}
			return ret;
		},
		/**
		*地址解码
		* @author ministry
		* @param Sting str 经过编码的url地址
		* @return Sting
		*/
		UrlDecode : function (str){ 
			var ret = "";
			for(var i=0;i<str.length;i++){ 
				var chr = str.charAt(i); 
				if(chr == "+"){ 
					ret += " "; 
				}else if(chr == "%"){ 
					var asc = str.substring(i+1,i+3); 
					if(parseInt("0x"+asc) > 0x7f){ 
						ret += asc2str(parseInt("0x"+asc+str.substring(i+4,i+6))); 
						i += 5; 
					}else{ 
						ret += asc2str(parseInt("0x"+asc)); 
						i += 2; 
					} 
				}else{ 
					ret += chr; 
				} 
			} 
			return ret; 
		}
	};
	/**
	*页面跳转
	* @author ministry
	* @param String url 地址完整路径
	* @return null
	*/
	fantaco.TurnPage = function (url){
		if(url.indexOf('/') == 0) url = fantaco.Request.Domain() + url;
		var patrn=/^http\:\/\//;
		if (!patrn.exec(url)) url = 'http://'+url;
		window.location.href = url;
	};
	/**
	*弹出新页面
	* @author ministry
	* @param String url 地址完整路径
	* @return null
	*/
	fantaco.TurnBlankPage = function (url){
		if(url.indexOf('/') == 0) url = fantaco.Request.Domain() + url;
		var patrn=/^http\:\/\//;
		if (!patrn.exec(url)) url = 'http://'+url;
		window.open(url);
	};
	/**
	*页面刷新
	* @author ministry
	* @return null
	*/
	fantaco.Refresh	= function (){
		history.go(0);
	};
	/**
	*过滤地址栏参数并跳转页面
	* @author ministry
	* @param String param 参数名称 Sting value 参数值 String local 跳转地址（如果为空则默认指向当前页）
	* @return null
	*/
	fantaco.CheckAndTurn = function (param, value, local){
        var req = fantaco.Request;
		if (local){
			req.CurrentUrl = local;
		}
		req.FilterUrl(param, value);
		fantaco.TurnPage(req.CurrentUrl);
	};
	/**
	*过滤地址栏价格区间并跳转页面
	* @author ministry
	* @param input_object minPrice 最低价 input_object maxPrice 最高价 String location 跳转地址（如果为空则默认指向当前页）
	* @return null
	*/
	fantaco.CheckPrice = function(minPrice, maxPrice, location){
        var req = fantaco.Request;
		if (location){
			req.CurrentUrl = location;
		}
		if(minPrice.value){
			if(minPrice.value.search("^-?\\d+$")!=0){
				minPrice.focus();
				req.CurrentUrl = '';
				return false;
			}else{
				req.FilterUrl(minPrice.name, minPrice.value);
			}
		}else{
			minPrice.focus();
			req.CurrentUrl = '';
			return false;
		}
		if(maxPrice.value){
			if(maxPrice.value.search("^-?\\d+$")!=0){
				maxPrice.focus();
				req.CurrentUrl = '';
				return false;
			}else{
				req.FilterUrl(maxPrice.name, maxPrice.value);
				fantaco.TurnPage(req.CurrentUrl);
			}
		}else{
			maxPrice.focus();
			req.CurrentUrl = '';
			return false;
		}
	};
	/**
	*后台菜单
	* @author ministry
	* @return object
	*/
	fantaco.AdminMenu = {
		/**突出显示当前选中菜单*/
		HighLight : function (){
			var curSecondLevel = $('#left_menu').find('a[href='+fantaco.Request.Pageurl()+']').parent('li:eq(0)');
			if(curSecondLevel.length == 0){
				var relatePage = $('.a1').find('a:eq(0)').attr('href');
				if(relatePage && relatePage != 'undefined'){
					if(relatePage.indexOf('/') == -1){
						relatePage = fantaco.Request.Pageurl().replace(fantaco.Request.PageName(),relatePage);
					}
					curSecondLevel = $('#left_menu').find('a[href='+relatePage+']').parent('li:eq(0)');
				}else{
					return false;
				}
			}
			var curFirstLevel = curSecondLevel.parents('li:eq(0)');
			if(curSecondLevel.find('ul')){
				curSecondLevel.addClass('second_level_active');
				curSecondLevel.parent('ul:eq(0)').css('display','block');
				curFirstLevel.addClass('first_level_active');
			}
		},
		/**切换菜单*/
		changeMenu : function(obj){
			var menu = obj.nextAll('ul:eq(0)');
			if(menu.css('display') == 'none') {
				flag = 1;
			} else flag = 0;
			
			$('#left_menu li.first_level_active').removeClass('first_level_active');
			obj.parents('ul:eq(0)').find('ul:visible').hide();
			if(flag == 1){
				menu.parents('li:eq(0)').addClass('first_level_active');
				menu.show();
			}else{
				menu.hide();
			}
		}
	};
	
	fantaco.tag = {};
	
	fantaco.page = {};
	
	fantaco.func = {
		in_array : function (array,value){   
		  var i;   
		  for (i=0; i < array.length; i++){  
			 if (array[i] === value){  
				 return true;   
			 }  
		  }  
		  return false;  
		} 
	};
	
	fantaco.onlyNum = function(){
		if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)||(event.keyCode==8)))
		event.returnValue=false;
	};
	
	fantaco.TabChange = function(objs){
		objs.each();
	};

});