﻿// JavaScript Document
// 上海蓝速E-Service项目公用JS库
// 1.04.02.0001
(function (){
	window.eService = window.$e = new eService();
	function eService(){
        this.Urls = {
				SaleServAjaxHandler:    "/HumanResource/Recruitment/ProvinceCityAjaxHandler.ashx"
			,	NotificationAjaxHandler:    "/FamilySchool/Teacher/NotificationAjaxHandler.ashx"
			,	ReviewsAjaxHandler:    "/FamilySchool/Teacher/ReviewsAjaxHandler.ashx"
			,	SaleServAjaxHandler:    "/HumanResource/Recruitment/ProvinceCityAjaxHandler.ashx"
			,	ArticleHitHandler:		"/Article/Hit.html"
	    }
	}
	eService.prototype.PrintPage = function(obj){
		//打印页面
		window.print();
	}
	eService.prototype.GetBrowser = function (){
	    //获得浏览器类型
	    if(navigator.userAgent.indexOf("MSIE")>0)return 1; 
		if(navigator.userAgent.indexOf("Firefox")>0)return 2; 
		return 0; 
	}
	eService.prototype.AddToFavorite = function (url,title){
	    //添加到收藏夹
		switch(this.GetBrowser()){
		   case 1:
			window.external.addFavorite(url,title);
		   break;
		   case 2:
			window.sidebar.addPanel(title, url, "");
		   break;
		   case 0:
			alert("加入收藏失败，您使用的浏览器不支持这个功能");
		   break;
		}
	}
	eService.prototype.SetForHomePage = function (sender){
	    //设为首页
		try{
			sender.style.behavior="url(#default#homepage)";
			sender.setHomePage('http://www.zhongnanjianshe.cn/');
		}catch(ex){
			//TODO Nothing
			//alert(ex)
		}
		return false;
	}

	eService.prototype.SetCookie = function (sName, sValue, timeKeep)
    {
        //设置COOKIES值
        //timeKeep单位：小时
	    var now=new Date();
	    var expireTime= new Date(now.valueOf()+timeKeep*60000*60);
	    document.cookie = sName + "=" + escape(sValue) + "; path=/; expires=" + expireTime.toGMTString() + ";";
    }
    eService.prototype.GetCookie = function (sName)
    {
        //获取指定名称的COOKIE项的值
	    var aCookie = document.cookie.split("; ");
	    for (var i=0; i < aCookie.length; i++)
	    {
		    var aCrumb = aCookie[i].split("=");
		    if (sName == aCrumb[0]) 
			    return unescape(aCrumb[1]);
	    }
	    return null;
    }
    eService.prototype.GetCurrentDateTime = function ()
    {
        //获取当前时间
        var date = new Date();
        var current=new String("");
        current += date.getFullYear()+"-";
        current += date.getMonth() + 1+"-";
        current += date.getDate()+" ";
        current += date.getHours()+":";
        current += date.getMinutes()+":";
        current += date.getSeconds();
        return current;
    }
     eService.prototype.GoTo = function (url)
     {
        //将页面跳转到指定的地址
        if(url)
        {
			var _popWin = window.open(url);
			if(_popWin==null){
            	location.href = url;
			}
        }
     }
	
	eService.prototype.BindProvinceCity = function (province,city){
        //创建经销商服务商查询的表单
        var _this = this;
        $(document).ready(
            function (){
                 //创建省份
                 $.getJSON(_this.Urls.SaleServAjaxHandler,{ac:"GetProvince"},function(json){
                    for(var i=0;i<json.length;i++)
                    {
						var option = new Option(json[i].Name,json[i].Name);
						if(option.value==province){
							option.selected = true;
						}
                        $("select[name='province']").get(0).options.add(option);
                    }
					if(province)
					{
						$("select[name='province']").trigger("change");
					}
                 });

                 //绑定事件
                 $("select[name='province']").bind("change",function (){
                    $("select[name='city']").get(0).length = 1;
                    $.getJSON(_this.Urls.SaleServAjaxHandler,{ac:"GetCity",province: $("select[name='province']").get(0).value},function(json){
                       for(var i=0;i<json.length;i++)
                       {
						var option = new Option(json[i].Name,json[i].Name);
						if(option.value==city){
							option.selected = true;
						}
                           $("select[name='city']").get(0).options.add(option);
                       }
                    });
                 })
            }
        ); 
    }
	 
	 eService.prototype.CreateNotificationForm = function (notificationautoid){
        var _this = this;
        $(document).ready(function (){
            //绑定事件
            $("select[name='selperiod']").bind("change",function (evt,data){
                $("select[name='selclasses']").get(0).length = 1;
                $("select[name='sel_scr']").get(0).length = 0;
                $("select[name='sel_dst']").get(0).length = 0;
                $.getJSON(_this.Urls.NotificationAjaxHandler,{ac:"GetClasses",Period: this.value},function(json){
                   for(var i=0;i<json.length;i++)
                   {
					   	var opt = new Option(json[i].Serial + '班',json[i].AutoId);
					   	if(data!=null)
					   	{
							if(opt.value==data.Serial)
							{
								opt.selected = true;	
							}
						}
                       $("select[name='selclasses']").get(0).options.add(opt);
                   }
				   $("select[name='selclasses']").trigger("change",[data]);
                });
            })
            $("select[name='selclasses']").bind("change",function (evt,data){
                $("select[name='sel_scr']").get(0).length = 0;
                $("select[name='sel_dst']").get(0).length = 0;
				if(data!=null)
				{
					var datatype;
					if(data.Type==null && data.Type=="")
					{
						datatype="";
					}else{
						datatype=data.Type;
					}
					$("input[name='type1']").each(function (idx){
						if(this.value==datatype){
							this.checked=true;
						}
					});
				}
				var classes = this.value;
				var type;
				$("input[name='type1']").each(function (idx){
					if(this.checked){
						type = this.value;
					}
				});
                $.getJSON(_this.Urls.NotificationAjaxHandler,{ac:"GetPeople",Classes: classes,Type: type},function(json){
					var stone="1";
					var userid;
					if(data!=null){
						if(data.UserId!=null && data.UserId!=""){
							userid =data.UserId.split(".");
						}
					}
                    for(var i=0;i<json.length;i++)
                    {
					   var opt = new Option(json[i].Name + "(" + json[i].Type + ")",json[i].StudentId);
					   	if(data!=null && data.UserId!=null && data.UserId!="")
					   	{
							stone="1";
							for(var j=0;j<userid.length-1;j++){
								if(opt.value==userid[j])
								{
									stone = "2";
								}
							}
						}
						if(stone=="1"){
                        	$("select[name='sel_scr']").get(0).options.add(opt);
						}else{
                        	$("select[name='sel_dst']").get(0).options.add(opt);
						}
                    }
                });
            })
			
			$.getJSON(_this.Urls.NotificationAjaxHandler,{ac:"Getnatificationinfo",AutoId: notificationautoid},function(json){
				if(json!=null && notificationautoid!=null && notificationautoid!=""){
					$("select[name='selperiod']").val(json.Period);
					$("select[name='selperiod']").trigger("change",[json]);
					$("input[name='texttitle']").val(json.Title);
					$("textarea[name='textvalue']").val(json.Value);
				}
			});
			
			//AjaxForm
            var options = { 
				  target:        '#loginResult',   // target element(s) to be updated with server response 
				  //beforeSubmit:  showRequest,  // pre-submit callback 
				  success:function (response,status){
					  $("span.error").html("");
					  if(response.Status == "OK"){
						  alert("提交成功")
						  window.location.href='/FamilySchool/Teacher/Notification.aspx';
					  }else if(response.Status == "FAIL"){
						  alert("提交失败")
					  }else{
						  for(var key in response)
						  {
							  $("#"+key+"Error").html(response[key]);
						  }
					  }
				  },
				  url:_this.Urls.NotificationAjaxHandler,
				  dataType:   "json"
			}; 
            // bind form using 'ajaxForm' 
            $('#form1').ajaxForm(options);
        });
    }
	 
	 eService.prototype.CreateReviewsForm = function (){
        var _this = this;
        $(document).ready(function (){
            //绑定事件
            $("select[name='selperiod']").bind("change",function (){
                $("select[name='selclasses']").get(0).length = 0;
                $("select[name='sel_scr']").get(0).length = 0;
                $.getJSON(_this.Urls.ReviewsAjaxHandler,{ac:"GetClasses",Period: this.value},function(json){
                   for(var i=0;i<json.length;i++)
                   {
					   	var opt = new Option(json[i].Serial + '班',json[i].AutoId);
                       $("select[name='selclasses']").get(0).options.add(opt);
                   }
				   $("select[name='selclasses']").trigger("change");
                });
            })
            $("select[name='selclasses']").bind("change",function (){
                $("select[name='sel_scr']").get(0).length = 0;
				var classes = this.value;
				var type;
				$("input[name='type1']").each(function (idx){
					if(this.checked){
						type = this.value;
					}
				});
                $.getJSON(_this.Urls.ReviewsAjaxHandler,{ac:"GetPeople",Classes: classes,Type: type},function(json){
                    for(var i=0;i<json.length;i++)
                    {
						var opt = new Option(json[i].Name + "(" + json[i].Type + ")",json[i].StudentId);
						$("select[name='sel_scr']").get(0).options.add(opt);
                    }
                });
            })
			$("select[name='selperiod']").trigger("change");
			//AjaxForm
            var options = { 
				  target:        '#loginResult',   // target element(s) to be updated with server response 
				  //beforeSubmit:  showRequest,  // pre-submit callback 
				  success:function (response,status){
					  $("span.error").html("");
					  if(response.Status == "OK"){
						  alert("提交成功")
						  window.location.href='/FamilySchool/Teacher/ReviewsList.aspx';
					  }else if(response.Status == "FAIL"){
						  alert("提交失败")
					  }else{
						  for(var key in response)
						  {
							  $("#"+key+"Error").html(response[key]);
						  }
					  }
				  },
				  url:_this.Urls.ReviewsAjaxHandler,
				  dataType:   "json"
			}; 
            // bind form using 'ajaxForm' 
            $('#form2').ajaxForm(options);
        });
    }
	
	eService.prototype.ShowPopupDiv = function (expr)//expr jQuery查询表达式
    {
		//显示一个层
		if($(expr).get(0)==null)
		{
			var name = expr.substr(expr.indexOf(".")+1);
			$("body").append("<div id=\""+name+"\" class=\""+name+"\" style=\"display:none;\"></div>");
			var flash = "Sites";
			switch(name.toLowerCase())
			{
				case "zhongnan_realestate":
					flash = "Estate";
					break;
				case "zhongnan_global":
					flash = "Global";
					break;
				case "zhongnan_china":
					flash = "Nationwide";
					break;
				default:
					flash = "Sites";
					break;
			}
			var _fso = new FlashObject("/flash/map/"+flash+".swf","fso_"+name,"800","600","9","","High");
			_fso.addParam("menu","false");
			_fso.addParam('wmode','transparent');
			_fso.write(name);
		}
		$.blockUI({message:$(expr),fadeIn:0,fadeOut:0,overlayCSS:{opacity:0.8},css:{left:"50%",top:"50%",width:800,height:600,backgroundColor:null,border:"none",marginLeft:"-400px",marginTop:"-300px"}});
	}
	eService.prototype.HidePopupDiv = function ()
    {
    	$.unblockUI();
	}
	eService.prototype.ArticleHit = function (expr,id){//更新文件点击数，并在匹配的expr选择符中显示最新的点击数
		var _this = this;
		$(document).ready(function (){
			$(expr).load(_this.Urls.ArticleHitHandler,{"id":id},null);
		});
	}
	eService.prototype.SetFontSize = function(target,font_size){
		//设置指定指定区域的字体大小，并自动设置行间距
		var _box = document.getElementById(target);
		if(_box)
		{
			_box.style.fontSize = font_size+"px";
			_box.style.lineHeight = (font_size * 1.5)+"px";
		}
	}
	eService.prototype.CopyContent = function(target){
		var meintext = $("#"+target).text();
		if(CopyToClipboard(meintext)!=false)
		{
			alert("复制完成");
		}
	}
	function CopyToClipboard(meintext){
		if (window.clipboardData) 
		{
			// the IE-manier
			window.clipboardData.setData("Text", meintext);
//		}else if(navigator.userAgent.indexOf("Opera")!=-1){
//			window.location = meintext;	
		}
		else if (window.netscape) 
		{ 
			// dit is belangrijk maar staat nergens duidelijk vermeld:
			// you have to sign the code to enable this, or see notes below 
			try{
				netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
			}catch(e){
				alert("您的firefox安全限制您进行剪贴板操作，请打开'about:config'将signed.applets.codebase_principal_support'设置为true'之后重试。");
				return false	
			}
			  
			// maak een interface naar het clipboard
			var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
			if (!clip) return;
			//alert(clip);
			// maak een transferable
			var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
			if (!trans) return;
			   
			// specificeer wat voor soort data we op willen halen; text in dit geval
			trans.addDataFlavor('text/unicode');
			   
			// om de data uit de transferable te halen hebben we 2 nieuwe objecten 
			// nodig om het in op te slaan
			var str = new Object();
			var len = new Object();
			var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
			var copytext=meintext;
			str.data=copytext;
			trans.setTransferData("text/unicode",str,copytext.length*2);
			var clipid=Components.interfaces.nsIClipboard;
			if (!clip) return false;
			clip.setData(trans,null,clipid.kGlobalClipboard);
		}
		else
		{
			return false;
		}
	
//		alert("复制完成");
//		return false;

	}
	
	eService.prototype.ShowToolTips = function (sender,alt){
		var offset = $("img[usemap=#"+$(sender).parent().attr("id")+"]").offset();
		offset.width = 0;
		offset.height = 0;
		var rect = $(sender).attr("coords").split(",");
		if(rect.length!=4)
		{
			return;
		}
		offset.left += parseInt(rect[0]);
		offset.top  += parseInt(rect[1]);
		offset.width += parseInt(rect[2])-parseInt(rect[0]);
		offset.height += parseInt(rect[3])-parseInt(rect[1]);
//		offset.left += $(document).scrollLeft();
//		offset.top  += $(document).scrollTop();		

		////呈现报纸上面的区域盒子
		if($("#ShowToolTipsBox").get(0)==null){//创建盒子
			$("body").append("<div style=\"border:solid 2px #F00;display:none;position:absolute;\" id=\"ShowToolTipsBox\"></div>");
		}
		
		$("#ShowToolTipsBox").width(offset.width+"px");
		$("#ShowToolTipsBox").height(offset.height+"px");
		$("#ShowToolTipsBox").css({left:offset.left+"px",top:offset.top+"px"});
		$("#ShowToolTipsBox").show();
		
		if($("#ShowToolTips").get(0)==null){//创建盒子
			$("body").append("<div style=\"border:solid 2px #0CF;background-color:#DFF9FF;display:none;position:absolute;padding:2em;font-size:18px;font-weight:bold;\" id=\"ShowToolTips\"></div>");
		}
		
		var evt = this.ShowToolTips.caller.arguments.length==1?this.ShowToolTips.caller.arguments[0]:event;
		if(evt.pageX || evt.pageY)
		{ 
			$("#ShowToolTips").css({left: evt.pageX+'px',top:evt.pageY+'px'});
		} 
		else
		{ 
			$("#ShowToolTips").css({left: (evt.clientX + document.body.scrollLeft - document.body.clientLeft)+'px',top:(evt.clientY + document.body.scrollTop  - document.body.clientTop)+'px'});
		}
		$("#ShowToolTips").html(alt);
		$("#ShowToolTips").show();

		sender.onmouseout = function (evt){
			$("#ShowToolTipsBox").hide();
			$("#ShowToolTips").hide();
		};		
	}
	eService.prototype.Zoom = function (target,mode){
		var fs =parseInt($("#"+target).css("fontSize"));
		if(mode.toLowerCase()=="out"){
			if(fs>12)
			{
				$("#"+target).css("fontSize",fs-2);
			}
		}else{
			if(fs<24)
			{
				$("#"+target).css("fontSize",fs+2);
			}
					
		}
	}
	eService.prototype.HtmlEnCode = function (s){
	    s = s.toString();
	    s = s.replace("&","&amp;");
	    s = s.replace("<","&lt;");
	    s = s.replace(">","&gt;");
		return s;
	}
	eService.prototype.GetRndString = function (l){
		if(l==null || typeof(l)!="number" || l<=0)
		{
			l = 16;
		}
	    var RndString = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghijkmnpqrstuvwxyz";
        var s="";
        for(var i=0;i<l;i++)
		{
            s += RndString.substr(Math.floor(Math.random() * RndString.length) ,1);
		}
        return s;
	}
	 
})();



