面向对象设计的SOLID原则

S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。

SRP [The Single Responsibility Principle ] 单一责任原则
OCP [The Open Closed Principle] 开放封闭原则
LSP [The Liskov Substitution Principle] 里氏替换原则
DIP [The Dependency Inversion Principle] 依赖倒置原则
ISP [The Interface Segregation Principle] 接口分离原则
  1. 单一责任原则: 当需要修改某个类的时候原因有且只有一个(THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE)。换句话说就是让一个类只做一种类型责任,当这个类需要承当其他类型的责任的时候,就需要分解这个类。
  2. 开放封闭原则 软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。这个原则是诸多面向对象编程原则中最抽象、最难理解的一个。
  3. 里氏替换原则 当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系(is-a 指的是类的父子继承关系,例如类D是另一个类B的子类(类B是类D的父类))
  4. 依赖倒置原则1. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象 2. 抽象不应该依赖于细节,细节应该依赖于抽象
  5. 接口分离原则 不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总接口总要好。

 

Destoon供应模块增加房产筛选功能

先看看完成后的效果图:

下面一步步来实现这样的效果。
首先我们把这个筛选模块的html结构写出来,如下:

<!--搜索区域开始-->
<div class="center">
<div class="search_area-top"></div>
<div style="POSITION: relative" class="search_area-center">
<div class="search_area-text" id="Tzone">
<h1>区域:</h1>
<ul>
<li class="selected"><a href="javascript:goSort('Tzone',0)">全部</a></li>
<li><a href="javascript:goSort('Tzone',1)">桂林</a></li>
<li><a href="javascript:goSort('Tzone',2)">上海</a> </li>
<li><a href="javascript:goSort('Tzone',3)">南宁</a> </li>
</ul>
</div>

<div class="search_area-text2" id="Tarea">
<h1>面积:</h1>
<ul>
<li class="selected"><a href="javascript:goSort('Tarea',0);">全部</a> </li>
<li><a href="javascript:goSort('Tarea',1);">500平米以下</a>
</li>
<li><a href="javascript:goSort('Tarea',2);">500-1000平米</a>
</li>
<li><a href="javascript:goSort('Tarea',3);">1000-1500平米</a>
</li>
<li><a href="javascript:goSort('Tarea',8);">1500平米以上</a>
</li></ul></div>
<div class="search_area-text2" id="Tprice">
<h1>租金:</h1>
<ul>
<li class="selected"><a href="javascript:goSort('Tprice',0);">全部</a> </li>
<li><a href="javascript:goSort('Tprice',1);">10元/平米以下</a>
</li>
<li><a href="javascript:goSort('Tprice',2);">10-15元/平米</a>
</li>
<li><a href="javascript:goSort('Tprice',3);">15-20元/平米</a>
</li>
<li><a href="javascript:goSort('Tprice',4);">20-25元/平米</a>
</li>
<li><a href="javascript:goSort('Tprice',5);">25元/平米以上</a>
</li></ul></div>
<div class="search_area-text2" id="Tfloor">
<h1>楼层:</h1>
<ul>
<li class="selected"><a href="javascript:goSort('Tfloor',0);">全部</a> </li>
<li><a href="javascript:goSort('Tfloor',1);">一楼</a> </li>
<li><a href="javascript:goSort('Tfloor',2);">二楼以上</a>
</li>
</ul>
</div>
<div class="search_area-text2" id="Tstructure">
<h1>结构:</h1>
<ul>
<li class="selected"><a href="javascript:goSort('Tstructure',0);">全部</a> </li>
<li><a href="javascript:goSort('Tstructure',1);">标准厂房</a>
</li>
<li><a href="javascript:goSort('Tstructure',2);">简易厂房</a>
</li>
<li><a href="javascript:goSort('Tstructure',3);">钢结构</a>
</li>
<li><a href="javascript:goSort('Tstructure',4);">其他</a>
</li>
</ul>
</div>
</div>
<div class="search_area-foot"></div>
</div>
<!--搜索区域结束-->

然后在skin/default/sell.css里,为此模块增加相应的css,如下:

/*For search nav*/
.search_area-top{background:url(image/searcharea_top.jpg) no-repeat; height:16px;}
.search_area-center{ border-left:1px solid #f4c0a7; border-right:1px solid #f4c0a7; background:#FFFFFF; padding-left:22px; line-height:20px;}
.search_area-center2{ border-left:1px solid #f4c0a7; border-right:1px solid #f4c0a7; background:#FFFFFF; padding-left:30px; padding-right:20px;}
.search_area-text{ overflow:hidden; height:100%; padding-top:5px; padding-bottom:5px;}
.search_area-text h1{ color:#6a6a6a; font-weight:bold; float:left; font-size:12px; margin:0px; padding:0px;}
.search_area-text ul{ margin:0; padding:0; list-style:none; float:left; overflow:hidden; height:100%; width:710px;}
.search_area-text li{ list-style:none; color:#6a6a6a; float:left; width:50px; padding-left:8px; padding-right:5px; white-space:nowrap}
.search_area-text li a{ list-style:none; color:#6a6a6a;}
.search_area-text li a:hover{ list-style:none; color:#ed6b2e; font-weight:bold; text-decoration:underline;}
.search_area-text li.selected{color:#ed6b2e; font-weight:bold;}
.search_area-text li.selected a{color:#ed6b2e;}
.search_area-text li.selected a:hover{color:#ed6b2e;}
.search_area-textdown{ overflow:hidden; height:100%; width:705px; padding-top:5px; padding-bottom:3px; background:#fff7f5}
.search_area-textdown ul{ margin:0; padding:0; list-style:none; float:left; overflow:hidden; height:100%;}
.search_area-textdown li{ list-style:none; color:#ed8d61; text-decoration:underline; float:left; padding-left:10px; padding-right:10px;}
.search_area-textdown li a{color:#ed8d61; text-decoration:underline;}
.search_area-textdown li a:hover{color:#ed8d61; text-decoration:underline;}
.search_area-textdown li.selected{color:#ed8d61; font-weight:bold;}

.search_area-text2{ overflow:hidden; height:100%; padding-top:5px; padding-bottom:5px;}
.search_area-text2 h1{ color:#6a6a6a; font-weight:bold; float:left; font-size:12px; margin:0px; padding:0px;}
.search_area-text2 ul{ margin:0; padding:0; list-style:none; float:left; overflow:hidden; height:100%; width:710px;}
.search_area-text2 li{ list-style:none; font-family:Verdana, Arial, Helvetica, sans-serif; color:#6a6a6a; float:left; padding-left:8px; padding-right:5px; white-space:nowrap}
.search_area-text2 li a{ list-style:none; color:#6a6a6a;}
.search_area-text2 li a:hover{ list-style:none; color:#ed6b2e; font-weight:bold; text-decoration:underline;}
.search_area-text2 li.selected a{color:#ed6b2e; font-weight:bold;}

.search_area-foot{background:url(image/searcharea_foot.jpg) no-repeat; height:18px;}

下一步,为此模块增加javascript代码来进行控制,如下:
(这里使用到了jquery,所以需要在template/default/sell/index.htm 页里先引入jquery 1.7版本;<script src=”http://ajax.lug.ustc.edu.cn/ajax/libs/jquery/1.7.2/jquery.min.js”></script>
)
下面添加控制的js代码:

function getQueryString(){
     var result = location.search.match(new RegExp("[?&][^?&]+=[^?&]+","g")); 
     if(result == null){
         return "";
     }
     for(var i = 0; i < result.length; i++){          result[i] = result[i].substring(1);      }      return result; } function goSort(name,value){ 	var string_array = getQueryString(); 	var oldUrl = (document.URL.indexOf("index.php")==-1)?document.URL+"index.php":document.URL; 	var newUrl; 	if(string_array.length>0)//如果已经有筛选条件
	{	var repeatField = false;	
		for(var i=0;i<string_array.length;i++){
			if(!(string_array[i].indexOf(name)==-1)){
				repeatField = true;//如果有重复筛选条件,替换条件值
				newUrl = oldUrl.replace(string_array[i],name+"="+value);
			}	
		}
		
		//如果没有重复的筛选字段
		if(repeatField == false){
			newUrl = oldUrl+"&"+name+"="+value;
		}
		
	}else{//如果还没有筛选条件
		newUrl = oldUrl+"?"+name+"="+value;
	}
	
	//跳转
	window.location = newUrl;
}

function setSelected(name,value){
	var all_li = $("#"+name).find("li");
	//清除所有li标签的selected类
	all_li.each(function(){
		$(this).removeClass("selected");
	});
	//为选中的li增加selected类
	all_li.eq(value).addClass("selected");
}

$(document).ready(function(){
	var string_array = getQueryString();
	for(var i=0;i<string_array.length;i++){
		var tempArr = string_array[i].split("=");
		setSelected(tempArr[0],tempArr[1]);//设置选中的筛选条件
	}
});

进入系统后台,在供应模块的模块设置里增加几个自定义字段,字段对应筛选模块的筛选条件:

因为我们是以get方式来提交筛选条件的,所以需要对sell/index.php做一些调整,把接收到的筛选参数加入到当前变量表中,
这样当module/sell/index.inc.php调用相应的index.htm模板时,可以以变量的方式在页面取到筛选条件的值,修改如下:

 <?php
define('DT_REWRITE', true);
require 'config.inc.php';
require '../common.inc.php';
extract($GET,EXTR_OVERWRITE);//筛选条件参数加入到当前变量列表
require DT_ROOT.'/module/'.$module.'/index.inc.php';
?>

接下来我们要做的就是根据筛选条件,刷新页面这一块的内容就行了:

这一块在template/default/sell/index.htm页面里是以标签的方式来调用内容的:
<!--{tag("moduleid=$moduleid&condition=status=3$dtype&areaid=$cityid&catid=$catid&pagesize=".$MOD[pagesize]."&page=$page&showpage=1&datetype=5&order=".$MOD[order]."&fields=".$MOD[fields]."&template=list-sell")}-->
所以我们只要把筛选条件拼接到condition里,就可以了,当然筛选条件还需要进行一些处理,这里我写死了,改成如下代码:

{php $condition = "status=3";}
{php $Tarea_array = array(1=>'czzmj<500',2=>'czzmj between 500 and 1000',3=>'czzmj between 1000 and 1500',4=>'czzmj>1500');}
{php $Tprice_array = array(1=>'price=10',2=>'price between 10 and 15',3=>'price between 15 and 20',4=>'price between 20 and 25',5=>'price>25');}
{php $Tfloor_array = array(1=>'floor=1',2=>'floor>=2');}
{php $Tstructure_array = array(1=>'标准厂房',2=>'简易厂房',3=>'钢结构');}


{if isset($Tzone)&&($Tzone!=0)}
{php $condition.=" and areaid=$Tzone";}
{/if}
{if isset($Tarea)&&($Tarea!=0)}
{php $condition.=" and $Tarea_array[$Tarea]";}
{/if}
{if isset($Tprice)&&($Tprice!=0)}
{php $condition.=" and $Tprice_array[$Tprice]";}
{/if}
{if isset($Tfloor)&&($Tfloor!=0)}
{php $condition.=" and $Tfloor_array[$Tfloor]";}
{/if}
{if isset($Tstructure)&&($Tstructure!=0)}
{php $condition.=" and structure=$Tstructure";}
{/if}

这样一个粗糙的筛选模块就制作好了。

(asp)jtbc1.0调用模块下最新分类文章列表方法

(asp)jtbc1.0调用模块下最新分类文章列表方法

打开commonincfilesmodule.asp
添加函数
//add

Function get_topcid(ByVal strgenre)
Dim trs, tsqlstr
tsqlstr = "select max(sortid) from jtbc_sys_sort where sort_genre='" & strgenre &"' and sort_hidden=0"
Set trs = conn.Execute(tsqlstr)
get_topcid = trs(0)
Set trs = Nothing
End Function

修改函数
Function itransfer(ByVal itype, ByVal itpl, ByVal ivars)
找到
Case "top"
tsqlstr = "select top " & ttopx & " * from " & tdatabase & " where " & tfpre & "hidden=0"
tsqlorder =" order by " & tidfield & " asc"
下面添加
Case "top_cid"
tclass = get_num(get_topcid(tgenre), 0)
tsqlstr = "select top " & ttopx & " * from " & tdatabase & " where " & tfpre & "hidden=0"
tsqlorder =" order by " & tidfield & " desc"

调用实例

{$=itransfer('top_cid', 'anli_img', 'topx=1;tnum=25;rows=2;genre=anli;')}

wordpress网站搬家方法

 

前提wordpress网站搬家,域名不变

在wordpress网站搬家之前,我们需要停用所有插件,以避免因插件原因导致搬家后,无法打开网站的问题;

搬家前,请先开通新网站主机,配置同原网站主机一致,至少PHP版本,mysql版本要一致;

wordpress网站搬家详细方法如下:

0.登录wordpress网站后台,停用所有wordpress插件;
1.打包原网站主机根目录下所有内容;
2.打包原网站主机mysql数据库;
3.上传打包的网站内容到新网站主机目录下,解压;
4.开通新网站主机mysql数据库,导入打印的原网站主机mysql数据库;
5.修改新网站主机目录下的wp-config.php文件中的数据库配置信息;
6.解析原域名到新网站主机IP;
7.登录wordpress网站后台,启用所有wordpress插件;

说明:如果无法登录wordpress后台,打开域名提示400错误,则说明域名解析未完成,请更换网卡中的dns配置,或等待2-48小时不等时间再次打开.

至此,wordpress网站搬家方法完毕.

使用vertical-align实现input和img对齐

将input和img放同一行,img标签总是比input高出一个头,非常难看。之前试过好多方法,都不行。后来在网站搜到最多的就是给img添加一个align="absmiddle"属性,这个方法似乎的确可行,但是不符合HTML标准。后来无意中发现同时给input和img添加vertical-align:middle就行:

 

input,img{vertical-align:middle;}

 

这样代码就会规规矩矩地水平对齐了。

织梦登录后界面空白变成白板的解决方法

dede安装完成后登录后台出现空白,经过分析代码,发现登录验证的时候用到了这个函数session_register() 原来我的php版本是5.4版本的,经过一系列的搜寻,发现这个函数在PHP5.4版本中已经被弃用了,已经被删除了。 也就是这个函数不再可用了。直接注释掉就可以了,不用进行注册就可以声明session。

另外的解决方法就是在include/userlogin.class.php 中声明一个函数

function session_register()

{

return true;

}

js原生getElementsByClassName兼容IE7以上

客户的需求:

列表前两行后添加最新标签,兼容IE7以上及主流浏览器。

 

js部分
<script>
function getElementsByClassName(className, root, tagName) { //root:父节点,tagName:该节点的标签名。 这两个参数均可有可无
if (root) {
root = typeof root == "string" ? document.getElementById(root) : root;
} else {
root = document.body;
}
tagName = tagName || "*";
if (document.getElementsByClassName) { //如果浏览器支持getElementsByClassName,就直接的用
return root.getElementsByClassName(className);
} else {
var tag = root.getElementsByTagName(tagName); //获取指定元素
var tagAll = []; //用于存储符合条件的元素
for (var i = 0; i < tag.length; i++) { //遍历获得的元素
for (var j = 0, n = tag[i].className.split(' ') ; j < n.length; j++) { //遍历此元素中所有class的值,如果包含指定的类名,就赋值给tagnameAll
if (n[j] == className) {
tagAll.push(tag[i]);
break;
}
}
}
return tagAll;
}
}

function setSN(e){

var ul = document.getElementById(e);
var lis= getElementsByClassName('biaoti',ul,'div');
var lia= ul.getElementsByTagName('a');
for(var i=0,l=lia.length;i<2;i++){
lia[i].className = 'nbt';
}
for(var i=0,l=lis.length;i<2;i++){
var tHTML = lis[i].innerHTML
lis[i].innerHTML = tHTML + '<font>new</font>';

}
}
setSN('tzgg');
setSN('byfw');
</script>

 

代码块

 

<ul id="tzgg">

<li>
<div class="biaoti"><a href="notice/?type=detail&amp;id=7" target="_blank" class="nbt">关于推荐2016年第四季度标兵候选人的通知</a><font>new</font></div>
<div class="riqi">[02-21]</div>
</li><li>
<div class="biaoti"><a href="notice/?type=detail&amp;id=6" target="_blank" class="nbt">紧急通知</a><font>new</font></div>
<div class="riqi">[02-21]</div>
</li><li>
<div class="biaoti"><a href="notice/?type=detail&amp;id=5" target="_blank">关于召开党组扩大会通知</a></div>
<div class="riqi">[02-21]</div>
</li>

</ul>

 

getElementsByClassName的用法 和 js获取class

原文:http://blog.sina.com.cn/s/blog_78106bb10100xyg1.html

 

因为IE浏览器不支持getElementsByClassName,所以你要自己写一个方法得到class

但是火狐浏览器知道getElementsByClassName,可以直接的用

<html>
<head>
   <title></title>
   <script type="text/javascript">
       window.onload = function () {
           var tagName = getClass("div", "a1");

          //因为返回的是包含多个元素的数组,所以要遍历一下
            for (var i = 0; i < tagName.length; i++) { 

               tagName[i].innerHTML = "你好";
           }
          
           var tagName = getClass("div", "a2");
           for (var i = 0; i < tagName.length; i++) {
               tagName[i].innerHTML = "ALL好";
           }
       }

       function getClass(tagname, className) { //tagname指元素,className指class的值

        //判断浏览器是否支持getElementsByClassName,如果支持就直接的用
            if (document.getElementsByClassName) {   

               return getElementsByClassName(className);
           }
           else {    //当浏览器不支持getElementsByClassName的时候用下面的方法
                var tagname = document.getElementsByTagName_r(tagname);  //获取指定元素
                var tagnameAll = [];     //这个数组用于存储所有符合条件的元素
                for (var i = 0; i < tagname.length; i++) {     //遍历获得的元素
                    if (tagname[i].className == className) {     //如果获得的元素中的class的值等于指定的类名,就赋值给tagnameAll
                        tagnameAll[tagnameAll.length] = tagname[i];
                   }
               }
               return tagnameAll;
           }
       }
   </script>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</body>
</html>

我建议不要用上面的方法,用JQuery,可以省去很多的代码

简体繁体转换JS(JavaScript)脚本

在一个政府网站看到简繁转换的js方法挺不错的,现整理出来,方便以后使用。

1、首先把下面这个链接放在提醒用户繁简转换的地方:
<a href="javascript:StranBody()" id="StranLink">简体版</a>

需要注意的是id是不能换的。
2、把这段js外部调用的代码加在网页最底部的</body>前:
<script language="javascript" type="text/javascript" src="繁简字转换js"></script>
3、js文件代码如下:

	var Default_isFT = 0                //默认是否繁体,0-简体,1-繁体
	var StranIt_Delay = 20 //翻译延时毫秒(设这个的目的是让网页先流畅的显现出来)
	var StranLink_Obj=document.getElementById("StranLink");
  //	alert(StranLink_Obj);
  	if (StranLink_Obj) {

		var JF_cn="ft"+self.location.hostname.toString().replace(/./g,"")

        var BodyIsFt=getCookie(JF_cn)

        if(BodyIsFt!="0")
			BodyIsFt=Default_isFT

  	 	 with(StranLink_Obj)
        {
                if(typeof(document.all)!="object")         //非IE浏览器
                {
                    href="javascript:StranBody()"
                }
                else
                {
                        href="#";
                        onclick= new Function("StranBody();return false")
                }
               title=StranText("点击以繁体中文方式浏览",0,0)

               innerHTML=StranText(innerHTML,0,0)

        }
        if(BodyIsFt=="0"){
        	setTimeout("StranBody()",StranIt_Delay)
        }

  	 	}
 function StranText(txt,toFT,chgTxt){

        if(txt==""||txt==null)

			return ""
		if(toFT == null){
			toFT = BodyIsFt;
		}else{
			toFT = toFT;
		}
        // toFT=toFT==null?BodyIsFt:toFT

        if(chgTxt)

			txt=txt.replace((toFT?"简":"繁"),(toFT?"繁":"简"))

        if(toFT){

        	return Traditionalized(txt)

		}else {

			return Simplized(txt)

		}
   } 

function StranBody(fobj) {
	     // alert('StranBody');
        if(typeof(fobj)=="object"){

			var obj=fobj.childNodes

        }else {
                var tmptxt=StranLink_Obj.innerHTML.toString();
                if(tmptxt.indexOf("繁")<0){
                        BodyIsFt=0;
                        StranLink_Obj.innerHTML=StranText(tmptxt,1,1);
                        StranLink_Obj.title=StranText(StranLink_Obj.title,1,1);

                } else{
                        BodyIsFt=1;
                        StranLink_Obj.innerHTML=StranText(tmptxt,0,1);
                        StranLink_Obj.title=StranText(StranLink_Obj.title,0,1);

                }
                setCookie(JF_cn,BodyIsFt,7);
                var obj=document.body.childNodes;
        }
        for(var i=0;i<obj.length;i++){
                var OO=obj.item(i)
                if("||BR|HR|TEXTAREA|".indexOf("|"+OO.tagName+"|")>0||OO==StranLink_Obj)continue;
                if(OO.title!=""&&OO.title!=null)OO.title=StranText(OO.title);
                if(OO.alt!=""&&OO.alt!=null)OO.alt=StranText(OO.alt);
                if(OO.tagName=="INPUT"&&OO.value!=""&&OO.type!="text"&&OO.type!="hidden")OO.value=StranText(OO.value);
                if(OO.nodeType==3){OO.data=StranText(OO.data)} else{ 
                	if(OO.tagName!='object'&& OO.tagName!='OBJECT'&& OO.tagName!='undefined')StranBody(OO);
                	}
        }
  }
  function JTPYStr(){
        return '沈产历系于系连锁与携变为规业饮竞华创国财皑蔼碍爱翱袄奥坝罢摆败颁办绊帮绑镑谤剥饱宝报鲍辈贝钡狈备惫绷笔毕毙闭边编贬变辩辫鳖瘪濒滨宾摈饼拨钵铂驳卜补参蚕残惭惨灿苍舱仓沧厕侧册测层诧搀掺蝉馋谗缠铲产阐颤场尝长偿肠厂畅钞车彻尘陈衬撑称惩诚骋痴迟驰耻齿炽冲虫宠畴踌筹绸丑橱厨锄雏础储触处传疮闯创锤纯绰辞词赐聪葱囱从丛凑窜错达带贷担单郸掸胆惮诞弹当挡党荡档捣岛祷导盗灯邓敌涤递缔点垫电淀钓调迭谍叠钉顶锭订东动栋冻斗犊独读赌镀锻断缎兑队对吨顿钝夺鹅额讹恶饿儿尔饵贰发罚阀珐矾钒烦范贩饭访纺飞废费纷坟奋愤粪丰枫锋风疯冯缝讽凤肤辐抚辅赋复负讣妇缚该钙盖干赶秆赣冈刚钢纲岗皋镐搁鸽阁铬个给龚宫巩贡钩沟构购够蛊顾剐关观馆惯贯广规硅归龟闺轨诡柜贵刽辊滚锅国过骇韩汉阂鹤贺横轰鸿红后壶护沪户哗华画划话怀坏欢环还缓换唤痪焕涣黄谎挥辉毁贿秽会烩汇讳诲绘荤浑伙获货祸击机积饥讥鸡绩缉极辑级挤几蓟剂济计记际继纪夹荚颊贾钾价驾歼监坚笺间艰缄茧检碱硷拣捡简俭减荐槛鉴践贱见键舰剑饯渐溅涧浆蒋桨奖讲酱胶浇骄娇搅铰矫侥脚饺缴绞轿较秸阶节茎惊经颈静镜径痉竞净纠厩旧驹举据锯惧剧鹃绢杰洁结诫届紧锦仅谨进晋烬尽劲荆觉决诀绝钧军骏开凯颗壳课垦恳抠库裤夸块侩宽矿旷况亏岿窥馈溃扩阔蜡腊莱来赖蓝栏拦篮阑兰澜谰揽览懒缆烂滥捞劳涝乐镭垒类泪篱离里鲤礼丽厉励砾历沥隶俩联莲连镰怜涟帘敛脸链恋炼练粮凉两辆谅疗辽镣猎临邻鳞凛赁龄铃凌灵岭领馏刘龙聋咙笼垄拢陇楼娄搂篓芦卢颅庐炉掳卤虏鲁赂禄录陆驴吕铝侣屡缕虑滤绿峦挛孪滦乱抡轮伦仑沦纶论萝罗逻锣箩骡骆络妈玛码蚂马骂吗买麦卖迈脉瞒馒蛮满谩猫锚铆贸么霉没镁门闷们锰梦谜弥觅绵缅庙灭悯闽鸣铭谬谋亩钠纳难挠脑恼闹馁腻撵捻酿鸟聂啮镊镍柠狞宁拧泞钮纽脓浓农疟诺欧鸥殴呕沤盘庞国爱赔喷鹏骗飘频贫苹凭评泼颇扑铺朴谱脐齐骑岂启气弃讫牵扦钎铅迁签谦钱钳潜浅谴堑枪呛墙蔷强抢锹桥乔侨翘窍窃钦亲轻氢倾顷请庆琼穷趋区躯驱龋颧权劝却鹊让饶扰绕热韧认纫荣绒软锐闰润洒萨鳃赛伞丧骚扫涩杀纱筛晒闪陕赡缮伤赏烧绍赊摄慑设绅审婶肾渗声绳胜圣师狮湿诗尸时蚀实识驶势释饰视试寿兽枢输书赎属术树竖数帅双谁税顺说硕烁丝饲耸怂颂讼诵擞苏诉肃虽绥岁孙损笋缩琐锁獭挞抬摊贪瘫滩坛谭谈叹汤烫涛绦腾誊锑题体屉条贴铁厅听烃铜统头图涂团颓蜕脱鸵驮驼椭洼袜弯湾顽万网韦违围为潍维苇伟伪纬谓卫温闻纹稳问瓮挝蜗涡窝呜钨乌诬无芜吴坞雾务误锡牺袭习铣戏细虾辖峡侠狭厦锨鲜纤咸贤衔闲显险现献县馅羡宪线厢镶乡详响项萧销晓啸蝎协挟携胁谐写泻谢锌衅兴汹锈绣虚嘘须许绪续轩悬选癣绚学勋询寻驯训讯逊压鸦鸭哑亚讶阉烟盐严颜阎艳厌砚彦谚验鸯杨扬疡阳痒养样瑶摇尧遥窑谣药爷页业叶医铱颐遗仪彝蚁艺亿忆义诣议谊译异绎荫阴银饮樱婴鹰应缨莹萤营荧蝇颖哟拥佣痈踊咏涌优忧邮铀犹游诱舆鱼渔娱与屿语吁御狱誉预驭鸳渊辕园员圆缘远愿约跃钥岳粤悦阅云郧匀陨运蕴酝晕韵杂灾载攒暂赞赃脏凿枣灶责择则泽贼赠扎札轧铡闸诈斋债毡盏斩辗崭栈战绽张涨帐账胀赵蛰辙锗这贞针侦诊镇阵挣睁狰帧郑证织职执纸挚掷帜质钟终种肿众诌轴皱昼骤猪诸诛烛瞩嘱贮铸筑驻专砖转赚桩庄装妆壮状锥赘坠缀谆浊兹资渍踪综总纵邹诅组钻致钟么为只凶准启板里雳余链泄';
     }
  function FTPYStr(){
        return '瀋產歷係於繫連鎖與攜變為規業飲競華創國財皚藹礙愛翺襖奧壩罷擺敗頒辦絆幫綁鎊謗剝飽寶報鮑輩貝鋇狽備憊繃筆畢斃閉邊編貶變辯辮鼈癟瀕濱賓擯餅撥缽鉑駁蔔補參蠶殘慚慘燦蒼艙倉滄廁側冊測層詫攙摻蟬饞讒纏鏟産闡顫場嘗長償腸廠暢鈔車徹塵陳襯撐稱懲誠騁癡遲馳恥齒熾沖蟲寵疇躊籌綢醜櫥廚鋤雛礎儲觸處傳瘡闖創錘純綽辭詞賜聰蔥囪從叢湊竄錯達帶貸擔單鄲撣膽憚誕彈當擋黨蕩檔搗島禱導盜燈鄧敵滌遞締點墊電澱釣調叠諜疊釘頂錠訂東動棟凍鬥犢獨讀賭鍍鍛斷緞兌隊對噸頓鈍奪鵝額訛惡餓兒爾餌貳發罰閥琺礬釩煩範販飯訪紡飛廢費紛墳奮憤糞豐楓鋒風瘋馮縫諷鳳膚輻撫輔賦複負訃婦縛該鈣蓋幹趕稈贛岡剛鋼綱崗臯鎬擱鴿閣鉻個給龔宮鞏貢鈎溝構購夠蠱顧剮關觀館慣貫廣規矽歸龜閨軌詭櫃貴劊輥滾鍋國過駭韓漢閡鶴賀橫轟鴻紅後壺護滬戶嘩華畫劃話懷壞歡環還緩換喚瘓煥渙黃謊揮輝毀賄穢會燴彙諱誨繪葷渾夥獲貨禍擊機積饑譏雞績緝極輯級擠幾薊劑濟計記際繼紀夾莢頰賈鉀價駕殲監堅箋間艱緘繭檢堿鹼揀撿簡儉減薦檻鑒踐賤見鍵艦劍餞漸濺澗漿蔣槳獎講醬膠澆驕嬌攪鉸矯僥腳餃繳絞轎較稭階節莖驚經頸靜鏡徑痙競淨糾廄舊駒舉據鋸懼劇鵑絹傑潔結誡屆緊錦僅謹進晉燼盡勁荊覺決訣絕鈞軍駿開凱顆殼課墾懇摳庫褲誇塊儈寬礦曠況虧巋窺饋潰擴闊蠟臘萊來賴藍欄攔籃闌蘭瀾讕攬覽懶纜爛濫撈勞澇樂鐳壘類淚籬離裏鯉禮麗厲勵礫曆瀝隸倆聯蓮連鐮憐漣簾斂臉鏈戀煉練糧涼兩輛諒療遼鐐獵臨鄰鱗凜賃齡鈴淩靈嶺領餾劉龍聾嚨籠壟攏隴樓婁摟簍蘆盧顱廬爐擄鹵虜魯賂祿錄陸驢呂鋁侶屢縷慮濾綠巒攣孿灤亂掄輪倫侖淪綸論蘿羅邏鑼籮騾駱絡媽瑪碼螞馬罵嗎買麥賣邁脈瞞饅蠻滿謾貓錨鉚貿麽黴沒鎂門悶們錳夢謎彌覓綿緬廟滅憫閩鳴銘謬謀畝鈉納難撓腦惱鬧餒膩攆撚釀鳥聶齧鑷鎳檸獰甯擰濘鈕紐膿濃農瘧諾歐鷗毆嘔漚盤龐國愛賠噴鵬騙飄頻貧蘋憑評潑頗撲鋪樸譜臍齊騎豈啓氣棄訖牽扡釺鉛遷簽謙錢鉗潛淺譴塹槍嗆牆薔強搶鍬橋喬僑翹竅竊欽親輕氫傾頃請慶瓊窮趨區軀驅齲顴權勸卻鵲讓饒擾繞熱韌認紉榮絨軟銳閏潤灑薩鰓賽傘喪騷掃澀殺紗篩曬閃陝贍繕傷賞燒紹賒攝懾設紳審嬸腎滲聲繩勝聖師獅濕詩屍時蝕實識駛勢釋飾視試壽獸樞輸書贖屬術樹豎數帥雙誰稅順說碩爍絲飼聳慫頌訟誦擻蘇訴肅雖綏歲孫損筍縮瑣鎖獺撻擡攤貪癱灘壇譚談歎湯燙濤縧騰謄銻題體屜條貼鐵廳聽烴銅統頭圖塗團頹蛻脫鴕馱駝橢窪襪彎灣頑萬網韋違圍爲濰維葦偉僞緯謂衛溫聞紋穩問甕撾蝸渦窩嗚鎢烏誣無蕪吳塢霧務誤錫犧襲習銑戲細蝦轄峽俠狹廈鍁鮮纖鹹賢銜閑顯險現獻縣餡羨憲線廂鑲鄉詳響項蕭銷曉嘯蠍協挾攜脅諧寫瀉謝鋅釁興洶鏽繡虛噓須許緒續軒懸選癬絢學勳詢尋馴訓訊遜壓鴉鴨啞亞訝閹煙鹽嚴顔閻豔厭硯彥諺驗鴦楊揚瘍陽癢養樣瑤搖堯遙窯謠藥爺頁業葉醫銥頤遺儀彜蟻藝億憶義詣議誼譯異繹蔭陰銀飲櫻嬰鷹應纓瑩螢營熒蠅穎喲擁傭癰踴詠湧優憂郵鈾猶遊誘輿魚漁娛與嶼語籲禦獄譽預馭鴛淵轅園員圓緣遠願約躍鑰嶽粵悅閱雲鄖勻隕運蘊醞暈韻雜災載攢暫贊贓髒鑿棗竈責擇則澤賊贈紮劄軋鍘閘詐齋債氈盞斬輾嶄棧戰綻張漲帳賬脹趙蟄轍鍺這貞針偵診鎮陣掙睜猙幀鄭證織職執紙摯擲幟質鍾終種腫衆謅軸皺晝驟豬諸誅燭矚囑貯鑄築駐專磚轉賺樁莊裝妝壯狀錐贅墜綴諄濁茲資漬蹤綜總縱鄒詛組鑽緻鐘麼為隻兇準啟闆裡靂餘鍊洩';
       } 
 function Traditionalized(cc){
        var str='',ss=JTPYStr(),tt=FTPYStr();
        for(var i=0;i<cc.length;i++){
                if(cc.charCodeAt(i)>10000&&ss.indexOf(cc.charAt(i))!=-1)str+=tt.charAt(ss.indexOf(cc.charAt(i)));
                  else str+=cc.charAt(i);
            }
        return str;
   }
 function Simplized(cc){
        var str='',ss=JTPYStr(),tt=FTPYStr();
        for(var i=0;i<cc.length;i++)
        {
                if(cc.charCodeAt(i)>10000&&tt.indexOf(cc.charAt(i))!=-1)str+=ss.charAt(tt.indexOf(cc.charAt(i)));
                  else str+=cc.charAt(i);
        }
        return str;
  }

 function setCookie(name, value){                //cookies设置
        var argv = setCookie.arguments;
        var argc = setCookie.arguments.length;
        var expires = (argc > 2) ? argv[2] : null;
        if(expires!=null) {
                var LargeExpDate = new Date ();
                LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*3600*24));
        }
        document.cookie = name + "=" + escape (value)+";path=/"+((expires == null) ? "" : ("; expires=" +LargeExpDate.toGMTString()));
 }    	 	
  function getCookie(Name)  {                       //cookies读取

        var search = Name + "=";
        if(document.cookie.length > 0) {
                offset = document.cookie.indexOf(search);
                if(offset != -1) {
                        offset += search.length;
                        end = document.cookie.indexOf(";", offset);
                        if(end == -1) end = document.cookie.length;
                        return unescape(document.cookie.substring(offset, end));
                 } else return "";
          }
   }