﻿// JScript File

//common functions
function AJAX(url, callback){
	var req = AJAX_init();
	req.onreadystatechange = AJAX_processRequest;
	function AJAX_init() {
		if (window.XMLHttpRequest) {
			return new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			return new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	function AJAX_processRequest() {
		if (req.readyState == 4) {
			if (req.status == 200) {
				if (callback)
					callback(req.responseText);
			}
		}
	}
	this.doGet = function() {
		req.open("GET", url, true);
		req.send(null);
	}
	this.doPost = function(body) {
		req.open("POST", url, true);
		req.setRequestHeader("Content-Type",
				"application/x-www-form-urlencoded");
		req.setRequestHeader("ISAJAX","yes");
		req.send(body);
	}
}


function insertAudio(a,bg){
   
    if (a.indexOf('.mp3')>0)
    {
        if(bg == null) bg = '#FFFFFF';
        document.write( '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="13" height="13" align="absmiddle">' +
        '<param name="allowScriptAccess" value="sameDomain" />' +
        '<param name="movie" value="../../res/player/player.swf" />' +
        '<param name="loop" value="false" />' +
        '<param name="menu" value="false" />' +
        '<param name="quality" value="high" />' +
        '<param name="bgcolor" value="'+bg+'" />' +
        '<param name="FlashVars" value="f=../../res/' + a + '">' +
        '<embed src="../../res/player/player.swf" loop="false" menu="false" quality="high" bgcolor="'+bg+'" width="15" height="15" align="absmiddle" allowScriptAccess="sameDomain" FlashVars="f=../../res/' + a + '" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />' +
        '</object>');
    }
    else if (a.indexOf('.swf')>0)
    {
        document.write( '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="13" height="13" align="absmiddle">' +
        '<param name="allowScriptAccess" value="sameDomain" />' +
        '<param name="movie" value="../../res/'+a+'" />' +
        '<param name="loop" value="false" />' +
        '<param name="menu" value="false" />' +
        '<param name="quality" value="high" />' +
        '<param name="bgcolor" value="#FFFFFF" />' +
        '<embed src=""../../res/'+a+'"  loop="false" menu="false" quality="high" bgcolor="#FFFFFF" width="15" height="15" align="absmiddle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />' +
        '</object>');
    }
};

function getObj(id) {
 
	if (document.getElementById) return document.getElementById(id);
	else if (document.all) return document.all[id];	
	else if (document.layers) return document.layers[id];
	else {return document.all[id];}
}
function sf(){if(document.f)document.f.q.focus();}

function setHomepage()
{
    if (document.all)
    {
        document.body.style.behavior='url(#default#homepage)';
        document.body.setHomePage('http://www.chenguo.net');
        
    }
    else if (window.sidebar)
    {
        if (window.netscape)
        {
            try
            {
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            }
            catch(e)
            {
                alert("Firefox暂无此功能，请您手工设置。");
            }
            
            
        }
        var prefs=Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
        prefs.setCharPref('browser.startup.homepage','http://www.chenguo.net');
    }
}

function addFavorite()
{
    if (document.all)
    {
        window.external.addFavorite('http://www.chenguo.net','中韩词典');
    }
    else if (window.sidebar)
    {
        window.sidebar.addpanel('中韩词典','http://www.chenguo.net',"");
    }
}

function audio(c){
	if(c!=""){
		c='<a href="javascript:return false;" onClick="ssplay(\''+c+'\');return false;" onMouseOver="ssplay(\''+c+'\')" onMouseOut="ssstop()"><img src="/imgs/audio.gif" border="0"></a>';
	}
	return c;
}
function getFlashMovieObject(movieName)
{
	if (window.document[movieName])
	{
		return window.document[movieName];
	}
	if (navigator.appName.indexOf("Microsoft Internet")==-1)
	{
		if (document.embeds && document.embeds[movieName])
			return document.embeds[movieName];
	}
	else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
	{
		return document.getElementById(movieName);
	}
}
function ssplay(c){
	var recite = getFlashMovieObject("recite");
	if(recite){
		recite.SetVariable("audio",c);
		recite.GotoFrame(1);
	}
}
function ssstop(){
	var recite = getFlashMovieObject("recite");
	if(recite){
		recite.GotoFrame(3);
	}
}
var engine=0;
function setengine(g){
	var obj=getObj('dic');
	engine=g;
	if (obj)
	    obj.value=engine;
	
}

void function seldic(dic)
{
	var obj=document.getElementById('dic'+dic);
	if (obj)
		obj.checked='"checked"';
		
}

function Trim(s){var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);return (m == null)?"":m[1];}
function InitRequest()
{
    var C_req = null;
    try
    {
        C_req = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
        try
        {
            C_req = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(oc)
        {
            C_req = null;
        }
    }
    if (!C_req && typeof XMLHttpRequest != "undefined")
    {
        try
        {
            C_req = new XMLHttpRequest();
        }catch(fa){
            alert("对不起!您的浏览器不支持该功能,请使用Internet Explorer 6.0或FireFox浏览器!");
            C_req = null;
            }
        }
        return C_req;
}
function PostRequests(url, data)
{
    var AjaxRequestObj = InitRequest();
    if (AjaxRequestObj != null)
    {
        AjaxRequestObj.onreadystatechange = function (){
                            if (AjaxRequestObj.readyState == 4 && AjaxRequestObj.responseText)
                            {
                                //alert(AjaxRequestObj.responseText);
                                ProcessAjaxData(AjaxRequestObj.responseText);
                             }
                          };
        AjaxRequestObj.open("POST", url, true);
        AjaxRequestObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        AjaxRequestObj.send(data);
     }
}

function ProcessAjaxData(data){eval(data);}
function StrCode(str){if(encodeURIComponent) return encodeURIComponent(str); if(escape) return escape(str); return encodeURIComponentNew(s);}

var t_DiglogX,t_DiglogY,t_DiglogW,t_DiglogH,t_dictStatus;


function DialogLoc()
{
    var dde = document.documentElement;
    if (window.innerWidth)
    {
        var ww = window.innerWidth;
        var wh = window.innerHeight;
        var bgX = window.pageXOffset;
        var bgY = window.pageYOffset;
    }
    else
    {
        var ww = dde.offsetWidth;
        var wh = dde.offsetHeight;
        var bgX = dde.scrollLeft;
        var bgY = dde.scrollTop;
    }
    t_DiglogX = (bgX + ((ww - t_DiglogW)/2));
    t_DiglogY = (bgY + ((wh - t_DiglogH)/2));
}


function DialogShow(showdata,ow,oh,w,h)
{
    var objDialog = getObj("DialogMove");
    if (!objDialog) {
        objDialog = document.createElement("div");
        objDialog.id = "DialogMove";
        document.body.appendChild(objDialog);
    }
    t_DiglogW = ow;
    t_DiglogH = oh;
    DialogLoc();
    var oS = objDialog.style;
    oS.display = "block";
    oS.top = t_DiglogY + "px";
    oS.left = t_DiglogX + "px";
    oS.margin = "0px";
    oS.padding = "0px";
    oS.width = w + "px";
    oS.height = "auto";
    oS.position = "absolute";
    oS.zIndex = "5";
    oS.background = "#FFF";
    oS.border = "solid #000 3px";
    objDialog.innerHTML = showdata;
}
function DialogHide(){var objDialog = getObj("DialogMove");if (objDialog) objDialog.style.display = "none";}
function ReportOK(Type,ID)
{
    var objReportName=getObj("ReportName");
    var objReportEmail=getObj("ReportEmail");
    var objReportComments=getObj("ReportComments");
    var objDialogValidator=getObj("DialogValidator");
    alert(objReportName.value);
    if(objReportName!=null&&objReportEmail!=null&&objReportComments!=null&&objDialogValidator!=null)
    {
        if((Trim(objReportName.value).length<1) || (Trim(objReportName.value).length>50))
        {
            objDialogValidator.innerHTML="<span class=\"Error\">姓名长度应在1-50字之间!</span>";
            objReportName.focus();
            return false;
         }
         if(Trim(objReportEmail.value).length<1||Trim(objReportEmail.value).length>100)
         {
            objDialogValidator.innerHTML="<span class=\"Error\">邮件地址长度应在1-100字之间!</span>";
            objReportEmail.focus();
            return false;
         }
         else
         {
            var rx=new RegExp(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/);
            var matches=rx.exec(Trim(objReportEmail.value));
            if(matches==null||Trim(objReportEmail.value)!=matches[0])
            {
                objDialogValidator.innerHTML="<span class=\"Error\">邮件地址格式错误,请重新输入!</span>";
                objReportEmail.focus();
                return false;
             }
         }
         if(Trim(objReportComments.value).length<1||Trim(objReportComments.value).length>1000)
         {
            objDialogValidator.innerHTML="<span class=\"Error\">内容长度应在1-1000字之间!</span>";
            objReportComments.focus();
            return false;
         }
         var PostData="do="+Type+"&reportid="+ID+"&name="+StrCode(Trim(objReportName.value))+"&mail="+StrCode(Trim(objReportEmail.value))+"&comments="+StrCode(Trim(objReportComments.value))+"&url="+StrCode(location.href)+"&browser="+StrCode(navigator.userAgent);PostRequests(window.location.protocol+"//"+window.location.host+"/dic/js/ajax_report.aspx",PostData);DialogShow("<div id=\"DialogLoading\">正在提交,请稍候...</div>",80,24,124,24);
      }
      return false;
}

function Report(Type,ID)
{
    var PostData="do="+Type+"&reportid="+ID;
    PostRequests(window.location.protocol+"//"+window.location.host+"/dic/js/ajax_report.aspx",PostData);
    DialogShow("<div id=\"DialogLoading\">正在读取,请稍候...</div>",110,10,124,20);
}
(function(){var window=this,undefined;Object.extend=function(destination,source){for(var property in source){destination[property]=source[property]}return destination};var ex={css:function(key,value){if(typeof key=="object"){Object.extend(this.style,key);return}if(value===undefined){return this[key]}this.style[key]=value},on:function(evt,func){func=func||function(){};func.elem=this;if(window.attachEvent){this.attachEvent("on"+evt,func)}else{this.addEventListener(evt,func,false)}},pos:function(){var curleft=curtop=0;obj=this;do{curleft+=obj.offsetLeft;curtop+=obj.offsetTop}while(obj=obj.offsetParent);return[curleft,curtop]}};var dict=window.$z=function(id){id=id||document;var obj=null;if(id.nodeType){obj=id}else{if(document.getElementById){obj=document.getElementById(id)}else{if(document.layers){obj=document.layers[id]}}if(obj&&obj.attributes.id.value!=id){obj=null;if(document.all){for(var i=1,j=document.all[id].length;i<j;i++){if(document.all[id][i].attributes.id.value==id){obj=document.all[id][i];break}}}}}if(obj!=null){Object.extend(obj,ex)}return obj};Object.extend($z,{on:function(evt,func){func=func||function(){};if(window.attachEvent){window.attachEvent("on"+evt,func)}else{window.addEventListener(evt,func,false)}},stop:function(e){if(typeof e!="object"){return}if(e.stopPropagation){e.stopPropagation()}else{e.cancelBubble=true}},top:function(){return document.body.scrollTop||document.documentElement.scrollTop},left:function(){return document.body.scrollLeft||document.documentElement.scrollLeft},width:function(){return self.innerWidth||document.documentElement.clientWidth},height:function(){return self.innerHeight||document.documentElement.clientHeight},theight:function(){var d=document,b=d.body,e=d.documentElement;return Math.max(Math.max(b.scrollHeight,e.scrollHeight),Math.max(b.clientHeight,e.clientHeight))},twidth:function(){var d=document,b=d.body,e=d.documentElement;return Math.max(Math.max(b.scrollWidth,e.scrollWidth),Math.max(b.clientWidth,e.clientWidth))},getCookie:function(key){var tmp=document.cookie.match((new RegExp(key+"=.*?($|;)","g")));if(!tmp||!tmp[0]){return null}else{return unescape(tmp[0].substring(key.length+1,tmp[0].length).replace(";",""))||null}},setCookie:function(key,value,ttl,path,domain,secure){var cookie=[key+"="+escape(value),"path="+((!path||path=="")?"/":path),"domain="+((!domain||domain=="")?window.location.hostname:domain)];if(ttl){cookie.push("expires="+this.getGMT(ttl))}if(secure){cookie.push("secure")}return document.cookie=cookie.join(";")},unsetCookie:function(key,path,domain){path=(!path||typeof path!="string")?"":path;domain=(!domain||typeof domain!="string")?"":domain;if(this.getCookie(key)){this.setCookie(key,"","Thu, 01-Jan-70 00:00:01 GMT",path,domain)}},getGMT:function(ttl){if(parseInt(ttl)=="NaN"){return""}else{now=new Date();now.setTime(now.getTime()+(parseInt(ttl)*60*1000));return now.toGMTString()}},getClass:function(cls,node,tag){var c=[];node=node||document;var p=new RegExp("(^|\\s)"+cls+"(\\s|$)");var els=(!tag&&node.all)||node.getElementsByTagName(tag||"*");var elsLen=els.length;for(var i=0,j=0;i<els.length;i++){if(p.test(els[i].className)){c[j]=$z(els[i]);j++}}return c},emptyFunction:function(){},loadJS:function(id,url){id=id||"_loadjs_undefined_id";var oScript=$z(id);var head=document.getElementsByTagName("head").item(0);if(oScript){head.removeChild(oScript)}oScript=document.createElement("script");oScript.setAttribute("src",url);oScript.setAttribute("id",id);oScript.setAttribute("type","text/javascript");oScript.setAttribute("language","javascript");head.appendChild(oScript);return oScript},jsonEncode:function(obj){var t=typeof(obj);if(t!="object"||obj===null){if(t=="string"){obj='"'+obj+'"'}return String(obj)}else{var n,v,json=[],arr=(obj&&obj.constructor==Array);for(n in obj){v=obj[n];t=typeof(v);if(t=="string"){v='"'+v+'"'}else{if(t=="object"&&v!==null){v=JSON.stringify(v)}}json.push((arr?"":'"'+n+'":')+String(v))}return(arr?"[":"{")+String(json)+(arr?"]":"}")}},jsonDecode:function(str){if(str===""){str='""'}eval("var p="+str+";");return p},_getRequest:function(){var http_request,response,i;var activex_ids=["MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];if(window.XMLHttpRequest){http_request=new XMLHttpRequest();if(http_request.overrideMimeType){http_request.overrideMimeType("text/xml")}}else{if(window.ActiveXObject){for(i=0;i<activex_ids.length;i++){try{http_request=new ActiveXObject(activex_ids[i])}catch(e){}}}}if(!http_request){return false}return http_request},get:function(url,func,isjson){return this._send(url,func,"GET",isjson)},post:function(url,func,args,isjson){return this._send(url,func,"POST",isjson,args)},_send:function(u,f,m,j,a){var x=this._getRequest();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4){if(j==null){f(x.responseText)}else{f($z.jsonDecode(x.responseText))}}};if(m=="POST"){x.setRequestHeader("Content-type","application/x-www-form-urlencoded")}x.setRequestHeader("ISAJAX","yes");var b;if(typeof(a)=="object"){var aa=[];for(var i in a){if(typeof(a[i])=="object"){aa=aa.concat(encodeURIComponent(i)+"="+encodeURIComponent($z.jsonEncode(a[i])))}aa=aa.concat(encodeURIComponent(i)+"="+encodeURIComponent(a[i]))}b=aa.join("&")}else{b=a}x.send(b);return x}})})();function showmenu(g,f){var e=$z(g),a=$z(g+"_menu");if(!a.init){var c=e.pos();if(f==null||typeof f!="function"){f=$z.emptyFunction}var d=function(){if(a.t){clearTimeout(a.t)}a.t=setTimeout(function(){a.css("display","none");f()},300)};var b=function(){if(a.t){clearTimeout(a.t)}};e.on("mouseout",d);a.on("mouseout",d);e.on("mouseover",b);a.on("mouseover",b);a.css({left:c[0]+"px",top:c[1]+e.offsetHeight+"px"});a.init=1}a.css("display","block")}function closemenu(b){if(b.substr(b.length-4,4)!="menu"){b+="_menu"}var a=$z(b);if(a.init){clearTimeout(a.t);a.css("display","none")}}function get_usercfg(a){var d=$z.getCookie("DictCN_cfg");if(d==null){return null}var b=d.toString().match(new RegExp(a+"(\\d+)","i"));if(b==null){return 0}return parseInt(b[1])}function set_usercfg(a,d){var f=$z.getCookie("DictCN_cfg");var e="";if(f==null){e=a+d}else{if(p=f.toString().match(new RegExp(a+"(\\d+)","i"))){e=f.replace(p[0],a+d)}else{e=f+a+d}}var b=$z.getCookie("Chenguo_time");b=b?parseInt(b):0;$z.setCookie("Chenguo_cfg",e,b,"/","chenguo.net")};
report.reporter=false;

function report($wtid,$wuid,$title,$extend){
	if(!$title){
		$title = '改进词条';
	}
	if(!report.reporter){
		var $block = '<DIV id="reportbox" style="background-color:#FFF;left:-1000px;top:-1000px;disply:none;position:absolute;border:1px solid #7E98D6;width:240px;">'+
		'<div style="border: medium none ; margin: 0px; padding: 0px; width: 240px; height: 20px;background-color:#C8DAF3; display: inline;"><table cellspacing="0" cellpadding="0" border="0" width="100%"><tbody><tr><td height="20" align="left" width="60%" name="_dict_title" id="_dict_title" style="border: medium none ; margin: 0px; padding: 0pt 3px; background-color: rgb(200, 218, 243); color: rgb(26, 145, 0); font-size: 14px; line-height: 20px; font-weight: normal; font-family: Verdana,Geneva,Arial,Helvetica,sans-serif;">'+
		$title+' - Dict.CN</td><td valign="middle" height="20" align="right" style="border: medium none ; margin: 0px; padding: 0pt 3px; background-color: rgb(200, 218, 243); line-height: 20px; font-weight: normal; font-family: Verdana,Geneva,Arial,Helvetica,sans-serif;"><a style="border: medium none ; margin: 0px; padding: 0px; font-weight: normal; font-family: Verdana,Geneva,Arial,Helvetica,sans-serif;" target="_self" title="关闭" href="javascript:void(0);" onclick="report().hide();"><img border="0" align="absmiddle" style="border: medium none ; margin: 0px; padding: 0px; display: inline;" src="http://dict.cn/img/close.gif"/></a></td></tr></tbody></table></div>'+
		'<h4 style="text-align:center;">'+$title+'</h4>'+
		'<div style="margin:5px 0;text-align:center;" id="rpt_inner">'+
		'<textarea id="rpt_comment" style="width:200px;height:80px;overflow-y:auto;">发表意见</textarea><br />'+
		'<div style="color:#666;text-align:left;margin:8px 15px;">我的大名<input size=15 id="rpt_name" /></div>'+
		'<button onclick="report().send();">提交</button>&nbsp;&nbsp;&nbsp;&nbsp;<button onclick="report().hide();">取消</button>'+
		'</div>'+
		'<div style="display:none;margin:5px 0;text-align:center;font-size:14px;" id="rpt_result"><br /><b>提交成功</b><br />谢谢您给的意见!<br />我们会仔细阅读!<br />&nbsp;</div>'+
		'<iframe id="rpt_channel" style="visibility:hidden;width:1px;height:1px"></iframe>'+
		'</DIV>';
		var el=document.createElement('div');
		el.innerHTML = $block;
		document.body.insertBefore(el,document.body.firstChild);
		report.reporter = (function(){
			var ex = '';
			if(typeof $extend == 'string'){
				ex = $extend+'\t___\t';
			}
			var id=$wtid;
			var wuid=$wuid;
			var p,c,n,ch,ni,an,su;
			var tg=0,f=0;
			var sending=false;
			return {
				't1':false,
				't2':false,
				'show':function(obj){
					if(!f){
						su=getObj('rpt_result');
						an=obj;
						p=getObj('reportbox');
						ch=getObj('rpt_channel');
						c=getObj('rpt_comment');
						n=getObj('rpt_name');
						ni=getObj('rpt_inner');
						var pos=findPos(obj);
						p.style.top=pos[1]+20+'px';
						p.style.left=pos[0]+40+'px';
						if(window.attachEvent){
							p.attachEvent('onclick',function(){var e=window.event?window.event:arguments[0];e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation();return false;});
							window.attachEvent('onresize',this.resize);
							document.getElementsByTagName("BODY")[0].attachEvent('onclick',this.hide);
						}else{
							p.addEventListener('click',function(){var e=window.event?window.event:arguments[0];e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation();return false;},false);
							window.addEventListener('resize',this.resize,false);
							document.getElementsByTagName("BODY")[0].addEventListener('click',this.hide,false);
						}
						f=1;
					}
					p.style.display = 'block';
				},
				'hide':function(){
					if(this.t2)clearTimeout(this.t2);
					p.style.display='none';
					c.blur();
					tg = 0;
				},
				'tgl':function(o){
					if(this.t1){
						clearTimeout(this.t1);
						ni.style.display = 'block';
						su.style.display = "none";
					}
					tg = !tg;
					if(tg)this.show(o);
					else this.hide();
					return false;
				},
				'send':function(){
					var str = 'c='+encodeURIComponent(ex+c.value)+'&n='+encodeURIComponent(n.value)+'&id='+id+'&wuid='+wuid;
					this.sending = true;
					ch.src = 'http://edit.dict.cn/editreport.php?'+str;
					var _this=this;
					this.t2 = setTimeout(function(){if(sending){sending=false;_this.hide();}},2000);
				},
				'off':function(){
					ni.style.display = 'none';
					su.style.display = "block";
					var _this = this;
					sending=false;
					this.t1 = setTimeout(function(){
					_this.hide();
					ni.style.display = 'block';
					su.style.display = "none";
					},3000);
				},
				'resize':function(){
					var pos=findPos(an);
					p.style.top=pos[1]+20+'px';
					p.style.left=pos[0]+40+'px';
				}
			};
		})();
	}
	return report.reporter;
}