/**
 * @requires jQuery 1.4.2 or later
 * rms- global.js 
 * @author denisdeng 
 * emmail dexibe@gmail.com || denisdeng@jobkoo.com
 * $Version: 1.0
 * external library [jquery-1.4.2.min.js]
 * external function [tool.js]
 * function:hightlight(obj);
 * function:tabSwitch();
 */
(function($){
	var ie6 = $.browser.msie&&($.browser.version == "6.0");
	$.RMS = {
		//hightlight table tr
		hightlight:function(obj){
							$(obj).hover(function(){$(this).addClass("sHover");},
										 function(){$(this).removeClass("sHover");}
										)
		},
		//tab switch
		tabSwitch:function(){
			//找出需要tab切换的元素;
			var tabBox = $('.tabBox').filter(function(){
													  		return !$(this).hasClass("noTab");
													  });
			//实现tab切换效果
			$.each(tabBox,function(){
								 		$(' .tabBoxTitle li',$(this)).delegate("a","click",function(e){
																		var target = $(this).attr("href");
																		if(!$(this).data("parent")){
																			$(this).data("parent",$(this).closest(".tabBox"));
																			$(this).data("parentTitle",$(this).closest(".tabBoxTitle"))
																		}
																		$("> .tabBoxCon > .tabCon",$(this).data("parent")).hide();
																		$("li",$(this).data("parentTitle")).removeClass("current");
																		$(this).closest("li").addClass("current");
																		$(target).show();
																		e.preventDefault();
																	  })
								 })
		},
		dateTime:function(o){
			/*
			 * @requires  jquery-ui-1.8.1.custom.min.js
			 			  jquery.datepick.js
						  jquery.datepick.validation.js
						  jquery.datepick-zh-CN.js
			 */
			var lan = $.cookie("LNAGUAGE") == "en" ? "" : "zh-cn";
			if($('.dateTime').size() > 0){
				var trigger = $('<div><img id="calImg" src="/img/calendar.gif" alt="Popup" class="trigger" /></div>');
				trigger.hide().appendTo("body");
				var currentYear = new Date().getFullYear();
				if(o){
					$('.dateTime').attr("readonly",true).datepick($.extend(o,$.datepick.regional[lan]));	
				}else{
					$('.dateTime').attr("readonly",true).datepick($.extend({ 
						showStatus: true,
						showOn: 'both',
						yearRange:'1970:' + currentYear,
						dateFormat: 'yyyy-mm-dd',
						buttonImageOnly: true,
						changeMonth: true,
						changeYear: true,
						showTrigger: '#calImg'
					},$.datepick.regional[lan]));
				}
			}else{
				return ;	
			}
		},
		lanuageSelect:function(options){
			/*
			 * @requires tool.js 
			 					method: $.fn.dynamicList
						 glist.js 
						 		data[1]: glist['g_language']
			 					data[2]: glist['g_language_level']
			 */
			var settings = $.extend({
										context:"#tableLanuageOpt",//语言选择操作的上下文
										lan:'select.lan',//语言下拉列表
										lanG:'select.lanGrade',//语言等级选择下拉列表
										parent:'tr',//最近的父级对象
										initItem:'select#lan_1',//初始的语言下拉列表选项
										aInitLanG:[0]
									}, options);
			//初始语言下拉列表;
			var lan = $(settings.lan,settings.context);
			var lanG = $(settings.lanG,settings.context);
			//用tool.js中的dynamicList的方法初始语言下拉列表;
			lan.dynamicList({
											dataSource:'g_language',
											lang:settings.lang,
											aInit:settings.aInitLan//设置语言初始值
										});
			//用tool.js中的dynamicList的方法初始语言级别下拉列表;
			if($.isArray(settings.aInitLanG)){
				//判断初始值是否为数组;
				lanG.dynamicList({
												dataSource:'g_language_level',
												lang:settings.lang,
												aInit:settings.aInitLanG//设置语言等级初始值
											})
			}else{
			//如果初始值不是数组而是一个对象，则通过lanG的id取得初始值并初始化
				$.each(lanG,function(){
					$(this).dynamicList({
												dataSource:'g_language_level',
												lang:settings.lang,
												aInit:[settings.aInitLanG[$(this).attr("id") || 0]]//设置语言等级初始值
											})				 
				})
			}
			//绑定change事件;
			$(settings.context).delegate(settings.lan,'change',function(){
				var lanGrade = settings.parent !== '' ? $(this).closest(settings.parent).find(settings.lanG) : $(settings.context).find(settings.lanG);
				var selected = $("option:selected",$(this)).attr("value");
				//语言等级有多个时,需循环进行处理;
				$.each(lanGrade,function(){
					var noLimitSelect = $("option:first",$(this));
					if(!$(this).data("noLimit")){
						$(this).data("noLimit",noLimitSelect);
					};
					if(selected == "0"){
						$(this).data("noLimit").prependTo($(this));
						$(this).val("0").attr("disabled","disabled");
					}else{
						$(this).data("noLimit").remove();
						$(this).removeAttr("disabled");
					}					 
				})
			});
			$(settings.initItem,settings.context).removeAttr('disabled').trigger('change');	
		},
		sliderRMS:function(){
			/*
			 * @requires jquery-ui-1.8.1.custom.min.js or later
			 */
			if($(".slider").size() >0){
				$(".slider").each(function(){
										//取得显示slider值的ID;
										var sliderVal = "#" + $(this).attr('id') + "_val";
										var v = $(sliderVal).val() !== "" ? $(sliderVal).val() : 0;
										$(this).slider({
											value:v,
											range:'max',
											min: 0,
											max: 100,
											slide: function(event, ui) {
												$(sliderVal).val(ui.value);
											}
										});
										$(sliderVal).val($(this).slider("value"));
									})
			}else{
				return;	
			}
		},
		showRMSMsg:function(){
			/*
			 * @requires tool.js 
			 					method: $.cookie
						 Popup.js
			 */
			var msg = $.cookie("RMS_ERROR");
			if(msg){
				var msgClone = msg;
				$.cookie("RMS_ERROR",null);
				var RMSmsg = $("<div class='RMS-global-msg'>" + msgClone + "</div>");
				var Msg = $.Message ({
						title:'提示',
						content:RMSmsg,
						msgClass:'dialog dialogFrom',
						btnCancel:true,
						btnSure:false,
						btnCancelTxt:'关闭',
						width:250,
						resetFunc:function(){
							msgClone = null;	
						}
				});
				Msg.show();
			}else{
				return;	
			}
		},
		toggleRMSMenu:function(){
			if(ie6){
				//rms头部菜单
				$(".RMS-admin #menu ul>li:has('ul')").each(function(){
					var subMenu = $('.subMenu',this);
					if(!$(this).data("hasIfram")){
						$("<iframe></iframe>").css({'width':subMenu.outerWidth(),'height':subMenu.outerHeight(),'opacity':0}).appendTo(subMenu);
						$(this).data("hasIfram",true);
					};
					$(this).hover(
						function(){
							$(this).addClass("sHover");
						},
						function(){
							$(this).removeClass("sHover");
						})
				});
				//toolbar 菜单
				$(".toolBar ul>li.hasSon:has('ul')").each(function(){
					var subMenu = $('ul',this);
					if(!$(this).data("hasIframe")){
						var w = subMenu.outerWidth();
						var h = subMenu.outerHeight();
						$("<div class='layer'></div>").css({'width':w,'height':h}).appendTo($(this));
						$("<iframe></iframe>").css({'width':w,'height':h,'opacity':0}).appendTo($(this));
						$(this).data("hasIframe",true);
					};
					$(this).hover(
						function(){
							$(this).addClass("sHover");
						},
						function(){
							$(this).removeClass("sHover");
						})
				});
			}
		},
		toggleMode:function(){
			if($('a.mode').size()>0){
					$('a.mode').bind('click',function(){
										$(this).toggleClass("complex");
									});
			}
		},
		selfCheck:function(){
			if($('.selfCheck').size() > 0){
				var checks = $('.selfCheck');
				$.each(checks,function(){
					var check = $('input[type="checkbox"]',this);
					if(ie6){
						$(this).hover(
							function(){
								$(this).addClass("selfCheckHover");
							},
							function(){
								$(this).removeClass("selfCheckHover");
							})
					};
					$(this).bind('click',function(){
						if(check.attr('checked')){
							check.attr('checked',false);
							$(this).removeClass('selfChecked').addClass('selfCheck');
						}else{
							check.attr('checked','checked');
							$(this).removeClass('selfCheck').addClass('selfChecked');
						}
					});
				})
			}
		},
		pageBar:function(){
			if($('.pageBar').size() > 0){
				$('.pageBar').each(function(){
					var $prev = $('.prev',this);
					var $next = $('.next',this);
					var $pageNum = $('.pageNum',this);
					var $pager = $('.pages',this);
					$pageNum.bind('click',function(e){
							//$('.pageBar .pages').fadeOut(100).data("isOpen",false);
							var pos = $(this).position();
							if(!$pager.data("isOpen")){
								var diff = pos.top + $(this).outerHeight() - $pager.outerHeight()/2;
								var top = diff < 0 ? 0 : diff;
								$pager.css({"position":'absolute',"z-index":50,"left":pos.left,"top":top}).fadeIn(100);
								$pager.data("isOpen",true);
							}else{
								$pager.fadeOut(100);
								$pager.data("isOpen",false);
							}
							e.preventDefault();
					});
					$pager.bind("mouseleave",function(){
						setTimeout(function(){$pager.fadeOut().data("isOpen",false);},100);
					})
					$prev.add($next).bind("click",function(e){
							$('.pageBar .pages').fadeOut(100).data("isOpen",false);
							if($pager.data("isOpen")){
								e.preventDefault();
								$pager.fadeOut(100);
								$pager.data("isOpen",false);
							}
					})
				});
				//鼠标在文档中点击时隐藏显示的菜单。
			}
		},
		clickMenu:function(context){
			if($("a.arrowToogle").size() > 0){
				var context = context || "body";
				var current;
				var timer;
				if(ie6){
					var clickMenuWrap = $("<div class='clickMenuWrap' id='clickMenuWrap'><iframe style='position:absolute;left:0;top:0;'></iframe><div class='layer' style='left:0;top:0;position:absolute;'></div></div>").css("position",'absolute').appendTo("body");
				};
				$("a.arrowToogle").each(function(){
					$(this).bind("click",function(e){
						clearTimeout(timer);
						var menu = $(this).attr("href");
						var iframe = $("iframe",clickMenuWrap);
						var layer = $(".layer",clickMenuWrap);
						if(ie6){
							if(!clickMenuWrap.data(menu)){
								clickMenuWrap.data(menu,menu);
								$(menu).appendTo(clickMenuWrap);
							}
						}else{
							$(menu).appendTo("body");	
						}
						var self = $(this);
						var left = (e.pageX + $(menu).outerWidth()) > $(window).width() ? e.pageX - $(menu).outerWidth() : e.pageX;
						var top = (e.pageY + $(menu).outerHeight() -$(window).scrollTop()) > $(window).height() ?  e.pageY - $(menu).outerHeight() : e.pageY;
						var menuW = $(menu).outerWidth();
						var menuH = $(menu).outerHeight();						
						//判断current是否为空或者是不是同一对象
						if(!current || menu == current){
							if(!ie6){
								if(!$(menu).data("open")){
									layer.add(iframe).css({'width':menuW,'height':menuH});
									$(menu).css({"left":left,'top':top}).data("open",true).show();
									$(this).addClass("open");
								}else{
									$(menu).css({"left":"-9999em"}).data("open",false).hide();
									$(this).removeClass("open");
								};
							}else{
								$("ul",clickMenuWrap).hide();
								if(!$(menu).data("open")){	
									$(menu).css({"left":0,"top":0});
									iframe.add(layer).css({'width':menuW,'height':menuH});
									clickMenuWrap.append($(menu).show()).css({"left":left,'top':top});
									$(menu).data("open",true);
									$(this).addClass("open");						
								}else{
									clickMenuWrap.css("left","-9999em");
									$(menu).data("open",false);
									$(this).removeClass("open");
								};
							};
						}else{
							$("a[href="+current+"]").removeClass("open");
							$(current).css({"left":"-9999em"}).data("open",false);
							if(ie6){								
								$(menu).css({"left":0,"top":0});
								iframe.add(layer).css({'width':menuW,'height':menuH});
								clickMenuWrap.append($(menu).show()).css({"left":left,'top':top}).show();
								$(menu).data("open",true);
							}else{
								$(menu).css({"left":left,'top':top}).data("open",true).show();
							};
							$(this).addClass("open");
						};
						//鼠标进入时显示菜单;
						if(!ie6){
							$(menu).bind("mouseenter",function(){
								clearTimeout(timer);
								timer = setTimeout(function(){
														$(menu).css({"left":left,'top':top}).data("open",true).show();
														$(menu).addClass("open");
													},500); 
							});
							$(menu).bind("mouseleave",function(){
								clearTimeout(timer);
								timer = setTimeout(function(){
														$(menu).fadeOut(function(){
																					$(this).css({"left":"-9999em"});
																				 }).data("open",false);
														self.removeClass("open");
													},500); 
							})
						}else{
							clickMenuWrap.bind("mouseenter",function(){
								clearTimeout(timer);
								timer = setTimeout(function(){
														$(menu).css({"left":0,"top":0}).data("open",true).show();
														clickMenuWrap.show();
														$(menu).addClass("open");
													},500); 
							});
							clickMenuWrap.bind("mouseleave",function(){
								clearTimeout(timer);
								timer = setTimeout(function(){
														clickMenuWrap.css({"left":'-9999em'});
														$(menu).css({"left":"-9999em"}).data("open",false);
														self.removeClass("open");
													},500); 
							})	
						}
						//存储当前对象;
						current = menu;
						e.preventDefault();
					});
				});
				//鼠标在文档中点击时隐藏显示的菜单。
				/*$(document).bind("mousedown",function(e){
						if($(e.target).attr("href") !== current ){
							$("a[href="+current+"]").removeClass("open");
							$(current).css({"left":"-9999em"}).data("open",false).hide();
							if(ie6){
								var menuWrap = $(current).closest('.clickMenuWrap');
								menuWrap.find('.layer').css({"left":"-9999em"});
								menuWrap.find('iframe').css({"left":"-9999em"});	
							}
						}else{
							return;	
						}
				})*/
			}
		},
		requestStamp:function(url){
			var stamp = new Date().getTime();
			return /\?/.test(url) ? url + "&" + stamp : url + "?" + stamp;
		},
		generateUrl:function(url,obj){
			var aKeys = [];
			var lastUrl;
			$.each(obj,function(key,value){
				aKeys.push(key + "=" + value);
			});
			if(url.indexOf("?") > 0){
				var aUrl = url.split('?');
				if(aUrl[1].length > 0){
					lastUrl = url + "&" + aKeys.join("&");	
				}else{
					lastUrl = url + aKeys.join("&");		
				}
			}else{
				lastUrl = url + "?" + aKeys.join("&");
			}
			return lastUrl;
		},
		lanMenu:function(){
			
		}
		//选择负责人bntSelectPrincipal
	}
})(jQuery)

$(function(){
	var ie6=$.browser.msie&&($.browser.version == "6.0");
	if(ie6){
		$.RMS.hightlight(".table>tbody>tr");
	}
	$.RMS.tabSwitch();
	$.RMS.dateTime();
	$.RMS.sliderRMS();
	$.RMS.showRMSMsg();
	$.RMS.toggleRMSMenu();
	$.RMS.pageBar();
	//$.RMS.toggleMode();
	$.RMS.selfCheck();
	$.RMS.clickMenu();
	$('.fakeSelect').fakeSelect();
})

//var LANGUAGE = 'cn';//longerface注释
//定义语言切换函数
if(window.__ == null){
	function __(str, flag, LANGUAGE){
		var lastStr;
		var S = str.toString();
		flag = flag || Message;
		LANGUAGE = LANGUAGE || 'cn';
		if(str =='' || LANGUAGE == 'cn'){
			if(/\%\%(.+)\%\%/i.test(str)){
				str = S.replace(/\%\%/g,'');
			}
			lastStr = str.replace('%%%%','');
		}else{
			if(/\%\%(.+)\%\%/i.test(str)){
				var params = S.match(/(%%[^%]*?%%)/gi);
				var plen = params.length;
				for(var i=0;i<plen;i++){
					str = str.replace(/%%[^%]*?%%/i, "%<--\$"+i+"-->%");
				}
				if($.isArray(flag)){
					$.each(flag,function(i,v){
						if(v.cn == str){
							lastStr = v[LANGUAGE];
							for(var i=0;i<plen;i++){
								lastStr = lastStr.replace(new RegExp("(%<--[$]{1}"+i+"-->%)","i"), params[i].replace(/\%\%/g,''));
							}
						}				
					})
					lastStr = lastStr || S.replace(/\%\%/g,'');
				}else{
					alert("不是数组对象！");	
				}
			}else
			if($.isArray(flag)){
				$.each(flag,function(i,v){
					if(v.cn == str){
						lastStr = v[LANGUAGE];
					}				
				})
				lastStr = lastStr || S;
			}else{
				alert("不是数组对象！");	
			}
		}
		return lastStr;
	}
	window.__ = __;
};
