<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[无爱的天空 - Javascri&#112;t开发]]></title>
  <subtitle type="html"><![CDATA[千夫所指 问心无愧]]></subtitle>
  <id>http://www.51oyf.com/</id>
  <link rel="alternate" type="text/html" href="http://www.51oyf.com/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.51oyf.com/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.8">PJBlog3</generator> 
  <updated>2016-12-05T23:37:00+08:00</updated>

  <entry>
	  <title type="html"><![CDATA[js实现 在前两个文本框中输入数字 在另外一个做加法运算]]></title>
	  <author>
		 <name>netfox</name>
		 <uri>http://www.51oyf.com/</uri>
		 <email>9337719@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.51oyf.com/default.asp?cateID=8" label="Javascri&#112;t开发" /> 
	  <updated>2016-12-05T23:37:00+08:00</updated>
	  <published>2016-12-05T23:37:00+08:00</published>
		  <summary type="html"><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51oyf.com/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp88270">

<script type=&#34;text/javascri&#112;t&#34;>
function calculate(){
    var left = document.getElementById(&#34;left&#34;).value;
    var right = document.getElementById(&#34;right&#34;).value;
    var p = new RegExp(&#34;^(-?\\d+)(\\.\\d+)?$&#34;);
    var isleftnumber = p.test(left);
    var isrightnumber = p.test(right);
  if(isleftnumber&amp;&amp;isrightnumber){
        document.getElementById(&#34;result&#34;).value=parseFloat(left)+parseFloat(right);
    }      
    }
</script>

		<form   action=&#34;&#34; method=&#34;post&#34; name=&#34;frmPM&#34; showOnMouseOver=&#34;false&#34;>
		<table class=&#34;tableStyle&#34;>

			<tr>
			<TD><B>合同金额</B></TD>
			<TD><input name=&#34;htje&#34; id=&#34;left&#34; type=&#34;text&#34;  value=&#34;&#34; style=&#34;width:700px;&#34; onkeyup=&#34;calculate();&#34; class=&#34; validate[required,custom[onlyNumberWide]] float_left&#34;/><span class=&#34;star float_left&#34;>*</span><div class=&#34;validation_info&#34;>请输入数字</div><div class=&#34;clear&#34;></div></TD>
		  </TR>
			<tr>
			<TD><B>补充协议金额</B></TD>
			<TD><input name=&#34;bcxyje&#34; id=&#34;right&#34; type=&#34;text&#34;  value=&#34;0&#34; style=&#34;width:700px;&#34; onkeyup=&#34;calculate();&#34; class=&#34; validate[required,custom[onlyNumberWide]] float_left&#34;/><span class=&#34;star float_left&#34;>*</span><div class=&#34;validation_info&#34;>请输入数字</div><div class=&#34;clear&#34;></div></TD>
		  </TR>
			<tr>
			<TD><B>合同总金额</B></TD>
			<TD><input name=&#34;htzje&#34; id=&#34;result&#34; type=&#34;text&#34;  value=&#34;&#34; style=&#34;width:700px;&#34;/></TD>
		  </TR>



		</table>
		</form>



</TEXTAREA><br/><INPUT onclick="runEx('temp88270')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp88270')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp88270')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.51oyf.com/article/Js/203.html" /> 
	  <id>http://www.51oyf.com/default.asp?id=203</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[去掉magic zoom中版权升级信息]]></title>
	  <author>
		 <name>NetFox</name>
		 <uri>http://www.51oyf.com/</uri>
		 <email>9337719@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.51oyf.com/default.asp?cateID=8" label="Javascri&#112;t开发" /> 
	  <updated>2011-05-29T22:57:47+08:00</updated>
	  <published>2011-05-29T22:57:47+08:00</published>
		  <summary type="html"><![CDATA[Magic Zoom 中的代码是被加密了的，去掉Please upgrade to full version of Magic Zoom Plus™本来是很难的，但是方法还是有的，请看：<br/><br/>不同的版本去掉方法不一样，<br/><br/>将Magic Zoom的JS的最后一行语句：<br/><br/>.split(&#39;|&#39;),0,{})<br/><br/>替换成<br/><br/>.split(&#39;|&#39;),0,{}).replace(&#34;f.innerHTML=str&#34;,&#34;f.innerHTML=&#39;&#39;&#34;)<br/><br/> <br/><br/>如果是plus版本，请将其替换为：<br/><br/>.split(&#39;|&#39;),0,{}).replace(&#34;this.innerHTML=d&#34;,&#34;this.innerHTML=&#39;&#39;&#34;)]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.51oyf.com/article/Js/149.html" /> 
	  <id>http://www.51oyf.com/default.asp?id=149</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Js中getElementsByName与getElementById的区别 ]]></title>
	  <author>
		 <name>NetFox</name>
		 <uri>http://www.51oyf.com/</uri>
		 <email>9337719@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.51oyf.com/default.asp?cateID=8" label="Javascri&#112;t开发" /> 
	  <updated>2011-05-25T23:12:19+08:00</updated>
	  <published>2011-05-25T23:12:19+08:00</published>
		  <summary type="html"><![CDATA[在开发过程中用到js的情况很多.获取某个控件也是经常的事.可是很多朋友都不了解getElementsByName与getElementById的区别.下面说一下:<br/>document.getElementsByName主要是得到多个控件.得到以后是一个数组.<br/>document.getElementById主要是得到一个控件.得到以后是一个单独的控件.<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.51oyf.com/article/Js/148.html" /> 
	  <id>http://www.51oyf.com/default.asp?id=148</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[JS eval(function(p,a,c,k,e,d)解密]]></title>
	  <author>
		 <name>NetFox</name>
		 <uri>http://www.51oyf.com/</uri>
		 <email>9337719@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.51oyf.com/default.asp?cateID=8" label="Javascri&#112;t开发" /> 
	  <updated>2011-05-25T00:59:38+08:00</updated>
	  <published>2011-05-25T00:59:38+08:00</published>
		  <summary type="html"><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51oyf.com/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp50163">
<script> 
a=62; 
function encode() { 
 var code = document.getElementById('code').value; 
 code = code.replace(/[\r\n]+/g, ''); 
 code = code.replace(/'/g, &#34;\\'&#34;); 
 var tmp = code.match(/\b(\w+)\b/g); 
 tmp.sort(); 
 var dict = []; 
 var i, t = ''; 
 for(var i=0; i<tmp.length; i++) { 
   if(tmp[i] != t) dict.push(t = tmp[i]); 
 } 
 var len = dict.length; 
 var ch; 
 for(i=0; i<len; i++) { 
   ch = num(i); 
   code = code.replace(new RegExp('\\b'+dict[i]+'\\b','g'), ch); 
   if(ch == dict[i]) dict[i] = ''; 
 } 
 document.getElementById('code').value = &#34;eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c]);return p}(&#34; 
   + &#34;'&#34;+code+&#34;',&#34;+a+&#34;,&#34;+len+&#34;,'&#34;+ dict.join('|')+&#34;'.split('|'),0,{}))&#34;; 
} 

function num(c) { 
 return(c<a?'':num(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36)); 
} 

function run() { 
 eval(document.getElementById('code').value); 
} 

function decode() { 
 var code = document.getElementById('code').value; 
 code = code.replace(/^eval/, ''); 
 document.getElementById('code').value = eval(code); 
} 
</script> 


<textarea id=code cols=80 rows=20><&#47textarea>
 
<input type=button onclick=encode() value=编码> 
<input type=button onclick=run() value=执行> 
<input type=button onclick=decode() value=解码>
</TEXTAREA><br/><INPUT onclick="runEx('temp50163')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp50163')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp50163')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><br/><br/>解密后去<br/><a href="http://tool.chinaz.com/Tools/JsFormat.aspx" target="_blank" rel="external">http://tool.chinaz.com/Tools/JsFormat.aspx</a><br/><br/><a href="http://www.css88.com/tool/js_beautify/" target="_blank" rel="external">http://www.css88.com/tool/js_beautify/</a><br/>格式化就可以了<br/><br/><a href="http://www.jqueryfuns.com/tools/jsencode" target="_blank" rel="external">http://www.jqueryfuns.com/tools/jsencode</a><br/>EVAL解密很厉害<br/><br/>JS是OlOlll=&#34;(x)&#34;;OllOlO=&#34; String&#34;;形式的 可以用<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51oyf.com/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp28137">
<textarea name=&#34;text1&#34; cols=&#34;80&#34; rows=&#34;20&#34; id=&#34;text1&#34;><&#47textarea> 
<br> 
<input type=&#34;submit&#34; name=&#34;Submit&#34; value=&#34;解密&#34; onClick=&#34;decode2();&#34;> 
<br> 
<textarea name=&#34;text2&#34; cols=&#34;80&#34; rows=&#34;20&#34; id=&#34;text2&#34;><&#47textarea> 
<script language=&#34;javascri&#112;t&#34;> 
O=function(m){return String.fromCharCode(Math.floor(m/10000)/99);} 
function decode2() 
{ 
var v=document.all.text1.value; 
var start1; 
start1 = v.indexOf(&#34;eval(\&#34;\&#34;+&#34;); 
if (start1==&#34;-1&#34;) {return false;} 
v=v.substring(start1+8,v.length-2); 
document.all.text2.value=(eval(v)); 
} 
</script>
</TEXTAREA><br/><INPUT onclick="runEx('temp28137')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp28137')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp28137')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><br/>来解密]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.51oyf.com/article/Js/146.html" /> 
	  <id>http://www.51oyf.com/default.asp?id=146</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[js 操作frameset frame]]></title>
	  <author>
		 <name>NetFox</name>
		 <uri>http://www.51oyf.com/</uri>
		 <email>9337719@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.51oyf.com/default.asp?cateID=8" label="Javascri&#112;t开发" /> 
	  <updated>2011-05-18T23:33:39+08:00</updated>
	  <published>2011-05-18T23:33:39+08:00</published>
		  <summary type="html"><![CDATA[JavaScript框架编程<br/><br/>框架编程概述<br/>一个HTML页面可以有一个或多个子框架，这些子框架以来标记，用来显示一个独立的HTML页面。这里所讲的框架编程包括框架的自我控制以及框架之间的互相访问，例如从一个框架中引用另一个框架中的JavaScript变量、调用其他框架内的函数、控制另一个框架中表单的行为等。 <br/><br/>框架间的互相引用<br/>一个页面中的所有框架以集合的形式作为window对象的属性提供，例如：window.frames就表示该页面内所有框架的集合，这和表单对象、链接对象、图片对象等是类似的，不同的是，这些集合是document的属性。因此，要引用一个子框架，可以使用如下语法：<br/>window.frames[&#34;frameName&#34;];<br/>window.frames.frameName<br/>window.frames[index]<br/>其中，window字样也可以用self代替或省略，假设frameName为页面中第一个框架，则以下的写法是等价的：<br/>self.frames[&#34;frameName&#34;]<br/>self.frames[0]<br/>frames[0]<br/>frameName<br/>每个框架都对应一个HTML页面，所以这个框架也是一个独立的浏览器窗口，它具有窗口的所有性质，所谓对框架的引用也就是对window对象的引用。有了这个window对象，就可以很方便地对其中的页面进行操作，例如使用window.document对象向页面写入数据、使用window.location属性来改变框架内的页面等。<br/>下面分别介绍不同层次框架间的互相引用：<br/>1．父框架到子框架的引用<br/>知道了上述原理，从父框架引用子框架变的非常容易，即：<br/>window.frames[&#34;frameName&#34;];<br/>这样就引用了页面内名为frameName的子框架。如果要引用子框架内的子框架，根据引用的框架实际就是window对象的性质，可以这样实现：<br/>window.frames[&#34;frameName&#34;].frames[&#34;frameName2&#34;];<br/>这样就引用到了二级子框架，以此类推，可以实现多层框架的引用。<br/>2．子框架到父框架的引用<br/>每个window对象都有一个parent属性，表示它的父框架。如果该框架已经是顶层框架，则window.parent还表示该框架本身。<br/>3．兄弟框架间的引用<br/>如果两个框架同为一个框架的子框架，它们称为兄弟框架，可以通过父框架来实现互相引用，例如一个页面包括2个子框架：<br/><br/>在frame1中可以使用如下语句来引用frame2：<br/>self.parent.frames[&#34;frame2&#34;];<br/>4．不同层次框架间的互相引用<br/>框架的层次是针对顶层框架而言的。当层次不同时，只要知道自己所在的层次以及另一个框架所在的层次和名字，利用框架引用的window对象性质，可以很容易地实现互相访问，例如：<br/>self.parent.frames[&#34;childName&#34;].frames[&#34;targetFrameName&#34;];<br/>5．对顶层框架的引用<br/>和parent属性类似，window对象还有一个top属性。它表示对顶层框架的引用，这可以用来判断一个框架自身是否为顶层框架，例如：<br/>//判断本框架是否为顶层框架<br/>if(self==top){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //dosomething<br/>}<br/>改变框架的载入页面<br/>对框架的引用就是对window对象的引用，利用window对象的location属性，可以改变框架的导航，例如：<br/>window.frames[0].location=&#34;1.html&#34;;<br/>这就将页面中第一个框架的页面重定向到1.html，利用这个性质，甚至可以使用一条链接来更新多个框架。<br/><br/>引用其他框架内的JavaScript变量和函数<br/>在介绍引用其他框架内JavaScript变量和函数的技术之前，先来看以下代码：<br/><br/>如果运行了这段代码，会弹出“hello,ajax!”的窗口，这正是执行hello()函数的结果。那为什么hello()变成了window对象的方法呢？因为在一个页面内定义的所有全局变量和全局函数都是作为window对象的成员。例如：<br/>var a=1;<br/>alert(window.a);<br/>就会弹出对话框显示为1。同样的原理，在不同框架之间共享变量和函数，就是要通过window对象来调用。<br/>例如：一个商品浏览页面由两个子框架组成，左侧表示商品分类的链接；当用户单击分类链接时，右侧显示相应的商品列表；用户可以单击商品旁的【购买】链接将商品加入购物车。<br/>在这个例子中，可以利用左侧导航页面来存储用户希望购买的商品，因为当用户单击导航链接时，变化的是另外一个页面，即商品展示页面，而导航页面本身是不变的，因此其中的JavaScript变量不会丢失，可以用来存储全局数据。其实现原理如下：<br/>假设左侧页面为link.html，右侧页面为show.html，页面结构如下：<br/><br/><br/><br/>在show.html中展示的商品旁边可以加入这样一条语句：<br/>加入购物车<br/>其中link表示导航框架，在link.html页面中定义了arrOrders数组来存储商品的id，函数addToOrders()用来响应商品旁边【购买】链接的单击事件，它接收的参数id表示商品的id，例子中是一个id为32068的商品：<br/><br/>这样，在结帐页面或是购物车浏览页面就可以用arrOrders来获取所有准备购买的商品。<br/>框架可以使一个页面划分为功能独立的多个模块，每个模块之间彼此独立，但又可以通过window对象的引用来建立联系，是Web开发中的一个重要机制。<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.51oyf.com/article/Js/145.html" /> 
	  <id>http://www.51oyf.com/default.asp?id=145</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[FlowPlayer播放本地FLV及IIS支持Flv的详细设置方法]]></title>
	  <author>
		 <name>NetFox</name>
		 <uri>http://www.51oyf.com/</uri>
		 <email>9337719@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.51oyf.com/default.asp?cateID=8" label="Javascri&#112;t开发" /> 
	  <updated>2010-01-07T23:13:23+08:00</updated>
	  <published>2010-01-07T23:13:23+08:00</published>
		  <summary type="html"><![CDATA[&nbsp;&nbsp;FlowPlayer是由SWF+JavaScript技术结合的一款Flv网页播放器，支持目前比较新的动画文件播放，内含使用文档，你可以轻松实现在你的网页上增加一个视频播放器,具体配置请参阅官方文档。<br/> 但是在使用过程中，发现不能播放本地FLV，开始以为是路径有问题，原路径为“uploadfile/test.flv”，老是提示“220,stream not found.....”，后改称“<a href="http://127.0.0.1/test/uploadfile/test.flv" target="_blank" rel="external">http://127.0.0.1/test/uploadfile/test.flv</a>”,错误依旧，赶快百度一下，原来要设置IIS支持，具体操作“<br/><br/>IIS--&gt;网站---&gt;属性---&gt;HTTP头---&gt;MIME类型---&gt;新建: <br/>扩展名:.flv <br/>MIME类型:flv-application/octet-stream<br/>问题解决！<br/><br/>IIS6默认是没有支持RMVB这种扩展名的文件格式的，所以IIS中站点属性里的MIME类型中，需要手动添加，网站的属性&gt;HTTP头-&gt;MIME类型-&gt;新建，扩展名、MIME类型按下面填写<br/><br/><img src="http://www.51oyf.com/attachments/month_1005/3201053194826.png" border="0" alt=""/><br/><br/><br/>1、按这个配置，rmvb 文件可以在线播放<br/>扩展名为：rmvb<br/>MIME类型：application/vnd.rn-realmedia (这个类型也适用于 rm 文件)<br/>或者<br/>MIME类型：application/vnd.rn-realmedia-vbr<br/><br/><br/>2、按这个配置，rmvb 文件只能正常下载，不能在线播放<br/>这样IIS就支持所有文件了。<br/>IIS6.0默认情况下支持的文件类型到底有那些呢？<br/>打开C:\WINDOWS\system32\inetsrv下的MetaBase.xml 文件看下就知道了。<br/><br/><img src="http://www.51oyf.com/attachments/month_1005/y20105319498.png" border="0" alt=""/><br/><br/>扩展名为：rvmb<br/>MIME类型为：application/octet-stream<br/>（要是你想让IIS支持所有的任何扩展名的文件都可以下载访问的话，只需将 rmvb 改成 * 即可）<br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.51oyf.com/article/Js/107.html" /> 
	  <id>http://www.51oyf.com/default.asp?id=107</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[类似51job的城市选择器]]></title>
	  <author>
		 <name>NetFox</name>
		 <uri>http://www.51oyf.com/</uri>
		 <email>9337719@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.51oyf.com/default.asp?cateID=8" label="Javascri&#112;t开发" /> 
	  <updated>2009-11-12T20:44:11+08:00</updated>
	  <published>2009-11-12T20:44:11+08:00</published>
		  <summary type="html"><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51oyf.com/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp48963">

<!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD XHTML 1.0 Strict//EN&#34; &#34;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" target="_blank" rel="external">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>&#34;>
<html xmlns=&#34;<a href="http://www.w3.org/1999/xhtml" target="_blank" rel="external">http://www.w3.org/1999/xhtml</a>&#34;><head>
 <meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=UTF-8&#34;>
 <meta http-equiv=&#34;Content-Language&#34; content=&#34;zh-CN&#34;>
 <meta name=&#34;Keywords&#34; content=&#34;&#34;>
 <meta name=&#34;Description&#34; content=&#34;&#34;>
 <style>
 *{padding:0;margin:0;font-size:14px;font-weight:normal;list-style:none;}
 #wrap{width:960px;margin:20px auto 0 auto;}
 a{color:#666;text-decoration:none;}
 h1{font-size:18px;padding:5px;text-decoration:underline;cursor:pointer;position:relative;}
 #tit{height:25px;background-color:#ff9900;position:relative;margin:1px 1px 0 1px;cursor:move;}
#closepop{position:absolute;top:3px;right:20px;cursor:pointer;color:#000;font-weight:bold;}
 h2{clear:both;font-weight:bold;font-size:14px;}
 body{padding:0;height:100%;line-height:150%;}
 #pop{position:absolute;width:600px;border:solid 1px #666;z-index:99;background-color:#fff;}
 
#opt h3{display:blcok;clear:both;padding-left:10px;}
.optcon{margin-left:30px;}
.optcon ul li,#spop ul li,#pop_con ul li{float:left;}
.optcon ul li a,#pop_con ul li a{padding:3px;margin-right:10px;cursor:pointer;}
.optcon ul li a:hover,#pop_con ul li a:hover,#spop ul li a:hover{color:#006699;background-color:#e0eeee;}
.seled,#pop_sele li a{background-color:#e0eeee;color:#990000;}
#spop{width:210px;height:120px;border:solid 1px #666;position:absolute;z-index:99;background-color:#fff;}
#spop ul li a{cursor:pointer;}
#spop ul li{width:70px;overflow:hidden;}
#overlay{width:100%;background-color:#666;position:absolute;top:0;left:0;opacity:0.2;z-index:98;filter:alpha(opacity=20);}
#popbody{padding:10px;}
 </style>
 <script type=&#34;text/javascript&#34; src=&#34;../jquery-1.2.6.pack.js&#34;></script>
<script type=&#34;text/javascript&#34;>
var sel&#101;ct_count =8;//允许选择的最大城市数量。

TC = new Object();
TC.EventMonitor = function(){
    this.listeners = new Object();
}
TC.EventMonitor.prototype.broadcast=function(widgetObj, msg, data){
    var lst = this.listeners[msg];
    if(lst != null){
        for(var o in lst){
            lst[o](widgetObj, data);
        }
    }
}
TC.EventMonitor.prototype.subscribe=function(msg, callback){
    var lst = this.listeners[msg];
    if (lst) {
        lst.push(callback);
    } else {
        this.listeners[msg] = [callback];
    }
}
TC.EventMonitor.prototype.unsubscribe=function(msg, callback){
    var lst = this.listener[msg];
    if (lst != null){
        lst = lst.filter(function(ele, index, arr){return ele!=callback;});
    }
}
var event_monitor = new TC.EventMonitor();
function load_event_monitor(root) {
    var re = /a_(\w+)/;
    var fns = {};
    $(&#34;.j&#34;, root).each(function(i) {
        var m = re.exec(this.className);
        if (m) {
            var f = fns[m[1]];
            if (!f) {
                f = eval(&#34;TC.init_&#34;+m[1]);
                fns[m[1]] = f;
            }
            f &amp;&amp; f(this);
        }
    });
}
$(function() {
    load_event_monitor(document);
});

//工作地点键值匹配数组
var ja=[];
ja['0100']='北京市';
ja['0200']='上海市';
ja['0300']='广东省';ja['0302']='广州市';ja['0303']='惠州市';ja['0304']='汕头市';ja['0305']='珠海市';ja['0306']='佛山市';ja['0307']='中山市';ja['0308']='东莞市';ja['0310']='从化市';ja['0314']='韶关市';ja['0315']='江门市';ja['0316']='增城市';ja['0317']='湛江市';ja['0318']='肇庆市';ja['0319']='清远市';ja['0320']='潮州市';ja['0321']='河源市';ja['0322']='揭阳市';ja['0323']='茂名市';ja['0324']='汕尾市';ja['0325']='顺德市';
ja['0400']='深圳市';
ja['0500']='天津市';
ja['0600']='重庆市';
ja['0700']='江苏省';ja['0702']='南京市';ja['0703']='苏州市';ja['0704']='无锡市';ja['0705']='常州市';ja['0706']='昆山市';ja['0707']='常熟市';ja['0708']='扬州市';ja['0709']='南通市';ja['0710']='镇江市';ja['0711']='徐州市';ja['0712']='连云港市';ja['0713']='盐城市';ja['0714']='张家港市';
ja['0800']='浙江省';ja['0802']='杭州市';ja['0803']='宁波市';ja['0804']='温州市';ja['0805']='绍兴市';ja['0806']='金华市';ja['0807']='嘉兴市';ja['0808']='台州市';ja['0809']='湖州市';ja['0810']='丽水市';ja['0811']='舟山市';ja['0812']='衢州市';
ja['0900']='四川省';ja['0902']='成都市';ja['0903']='绵阳市';ja['0904']='乐山市';ja['0905']='泸州市';ja['0906']='德阳市';ja['0907']='宜宾市';ja['0908']='自贡市';ja['0909']='内江市';ja['0910']='攀枝花市';
ja['1000']='海南省';ja['1002']='海口市';ja['1003']='三亚市';
ja['1100']='福建省';ja['1102']='福州市';ja['1103']='厦门市';ja['1104']='泉州市';ja['1105']='漳州市';ja['1106']='莆田市';ja['1107']='三明市';ja['1108']='南平市';ja['1109']='宁德市';ja['1110']='龙岩市';
ja['1200']='山东省';ja['1202']='济南市';ja['1203']='青岛市';ja['1204']='烟台市';ja['1205']='潍坊市';ja['1206']='威海市';ja['1207']='淄博市';ja['1208']='临沂市';ja['1209']='济宁市';ja['1210']='东营市';ja['1211']='泰安市';ja['1212']='日照市';ja['1213']='德州市';
ja['1300']='江西省';ja['1302']='南昌市';ja['1303']='九江市';
ja['1400']='广西';ja['1402']='南宁市';ja['1403']='桂林市';ja['1404']='柳州市';ja['1405']='北海市';
ja['1500']='安徽省';ja['1502']='合肥市';ja['1503']='芜湖市';ja['1504']='安庆市';ja['1505']='马鞍山市';ja['1506']='蚌埠市';ja['1507']='阜阳市';ja['1508']='铜陵市';ja['1509']='滁州市';ja['1510']='黄山市';ja['1511']='淮南市';ja['1512']='六安市';ja['1513']='巢湖市';ja['1514']='宣城市';ja['1515']='池州市';
ja['1600']='河北省';ja['1602']='石家庄市';ja['1603']='廊坊市';ja['1604']='保定市';ja['1605']='唐山市';ja['1606']='秦皇岛市';
ja['1700']='河南省';ja['1702']='郑州市';ja['1703']='洛阳市';ja['1704']='开封市';
ja['1800']='湖北省';ja['1802']='武汉市';ja['1803']='宜昌市';ja['1804']='黄石市';ja['1805']='襄樊市';ja['1806']='十堰市';ja['1807']='荆州市';ja['1808']='荆门市';ja['1809']='孝感市';ja['1810']='鄂州市';
ja['1900']='湖南省';ja['1902']='长沙市';ja['1903']='株洲市';ja['1904']='湘潭市';ja['1905']='衡阳市';ja['1906']='岳阳市';ja['1907']='常德市';ja['1908']='益阳市';ja['1909']='郴州市';ja['1910']='邵阳市';ja['1911']='怀化市';ja['1912']='娄底市';ja['1913']='永州市';ja['1914']='张家界市';
ja['2000']='陕西省';ja['2002']='西安市';ja['2003']='咸阳市';ja['2004']='宝鸡市';ja['2005']='铜川市';ja['2006']='延安市';
ja['2100']='山西省';ja['2102']='太原市';ja['2103']='运城市';ja['2104']='大同市';ja['2105']='临汾市';
ja['2200']='黑龙江省';ja['2202']='哈尔滨市';ja['2203']='伊春市';ja['2204']='绥化市';ja['2205']='大庆市';ja['2206']='齐齐哈尔市';ja['2207']='牡丹江市';ja['2208']='佳木斯市';
ja['2300']='辽宁省';ja['2302']='沈阳市';ja['2303']='大连市';ja['2304']='鞍山市';ja['2305']='营口市';ja['2306']='抚顺市';ja['2307']='锦州市';ja['2308']='丹东市';ja['2309']='葫芦岛市';ja['2310']='本溪市';ja['2311']='辽阳市';ja['2312']='铁岭市';
ja['2400']='吉林省';ja['2402']='长春市';ja['2403']='吉林市';ja['2404']='辽源市';ja['2405']='通化市';
ja['2500']='云南省';ja['2502']='昆明市';ja['2503']='曲靖市';ja['2504']='玉溪市';ja['2505']='大理市';ja['2506']='丽江市';ja['2507']='蒙自市';ja['2508']='开远市';ja['2509']='个旧市';ja['2510']='红河州';
ja['2600']='贵州省';ja['2602']='贵阳市';ja['2603']='遵义市';
ja['2700']='甘肃省';ja['2702']='兰州市';ja['2703']='金昌市';
ja['2800']='内蒙古';ja['2802']='呼和浩特市';ja['2803']='赤峰市';ja['2804']='包头市';
ja['2900']='宁夏';ja['2902']='银川市';
ja['3000']='西藏';ja['3002']='拉萨市';ja['3003']='日喀则市';
ja['3100']='新疆';ja['3102']='乌鲁木齐市';ja['3103']='克拉玛依市';ja['3104']='喀什地区市';
ja['3200']='青海省';ja['3202']='西宁市';
ja['3300']='香港';
ja['3400']='澳门';
ja['3500']='台湾';
ja['3600']='国外';
//主要城市数据字典
var maincity=[['华北-东北',['0100','0500','2303','2302','2402','2202']],['华东 地区',['0200','0702','0703','0802','0803','1502','1102','1202','1203']],['华南-华中',['0302','0400','0308','1802','1902','1702']],['西北-西南',['2002','0902','0600','2502']]];
//所有省份数据字典
var allprov=[['华北-东北',['1600','2100','2800','2300','2400','2200']],['华东 地区',['0700','0800','1500','1100','1300','1200']],['华南-华中',['0300','1400','1000','1700','1800','1900']],['西北-西南',['2000','2700','3200','2900','3100','0900','2600','2500','3000']],['其它',['3300','3400','3500','3600']]];
//获取滚动条的高度
function getPageScroll(){
	var yScroll;
	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement &amp;&amp; document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}
	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}
//获取页面实际大小
function getPageSize(){ 
    
    var xScroll, yScroll; 
    
    if (window.innerHeight &amp;&amp; window.scrollMaxY) {    
        xScroll = document.body.scrollWidth; 
        yScroll = window.innerHeight + window.scrollMaxY; 
    } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac 
        xScroll = document.body.scrollWidth; 
        yScroll = document.body.scrollHeight; 
    } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari 
        xScroll = document.body.offsetWidth; 
        yScroll = document.body.offsetHeight; 
    } 
    
    var windowWidth, windowHeight; 
    if (self.innerHeight) {    // all except Explorer 
        windowWidth = self.innerWidth; 
        windowHeight = self.innerHeight; 
    } else if (document.documentElement &amp;&amp; document.documentElement.clientHeight) { // Explorer 6 Strict Mode 
        windowWidth = document.documentElement.clientWidth; 
        windowHeight = document.documentElement.clientHeight; 
    } else if (document.body) { // other Explorers 
        windowWidth = document.body.clientWidth; 
        windowHeight = document.body.clientHeight; 
    }    
    
    // for small pages with total height less then height of the viewport 
    if(yScroll < windowHeight){ 
        pageHeight = windowHeight; 
    } else {  
        pageHeight = yScroll; 
    } 
  
    // for small pages with total width less then width of the viewport 
    if(xScroll < windowWidth){    
        pageWidth = windowWidth; 
    } else { 
        pageWidth = xScroll; 
    } 
  
    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight); 
    return arrayPageSize; 
}

TC.init_del_sele=function(o)
{
	$(o).click(function(){
		var id=$(o).attr('id').split('-')[1];
		event_monitor.broadcast(this, &#34;sele_deled&#34;, id);
	});
}
TC.init_sele_city=function(o)
{
	$(o).click(function(){
		var id=$(o).attr('id').split('-')[1];
		if($(o).hasClass(&#34;seled&#34;)){event_monitor.broadcast(this, &#34;sele_deled&#34;, id);return;}
		var sel_arr=$('#sv').val().split(' ');
		if(sel_arr.length == sel&#101;ct_count+1){alert('您只能选择'+sel&#101;ct_count+&#34;个城市。&#34;);return;}
		if($('#se-'+id).length==0)
		{
			$('#pop_sele').html($('#pop_sele').html()+&#34;<li><a class='j a_del_sele' id='se-&#34;+id+&#34;' href='javascript:void(0);'>&#34;+$(o).html()+&#34;</a></li>&#34;);
			load_event_monitor($('#pop_sele'));
			event_monitor.broadcast(this, &#34;sele_add&#34;, id);
			$('#c-'+id).addClass('seled');
			if($('#pc-'+id).length!=0){$('#pc-'+id).addClass('seled');};
		}
	});
}
TC.init_sh_city=function(o)
{
	$(o).click(function(e){
		var obj = $(o).attr('id').split('-')[1];
		var id=obj.substring(0,2);
		var content='<ul>';
		var key;
		for(var i=0;i<20;i++)
		{
			if(i<10) key=id+'0'+i;else key=id+i+'';
			if(ja[key])
			{
				if($('#se-'+key).length==0)
					content+=&#34;<li><a href='javascript:void(0);' id='pc-&#34;+key+&#34;' class='j a_sele_city'>&#34;+ja[key]+&#34;</a></li>&#34;;
				else
					content+=&#34;<li><a href='javascript:void(0);' id='pc-&#34;+key+&#34;' class='j a_sele_city seled'>&#34;+ja[key]+&#34;</a></li>&#34;;
			}
		}
		content+='</ul>';
		var px = e.pageX-15;
		var py = e.pageY-15;
		$(&#34;#spop&#34;).html(content).css('top',py+'px').css('left',px+'px').show();
		load_event_monitor($('#spop'));
	});
}
function getValue(data){var val='';var selvalue = data.split(' ');	for(i=0;i<selvalue.length-1;i++){val+=ja[selvalue[i]+''] + ' ';}return val;};

var isbuild=false;
var ismd=false;
var lmX=0;
var lmY=0;
var leX=0;
var leY=0;
$(function(){
	$(&#34;#sub_form&#34;).click(function(){
	var se = getValue($(&#34;#sv&#34;).val());alert('您选择了：'+se+', id: ' + $(&#34;#sv&#34;).val());  
	});  

	if(!isbuild) {
	var content = '<h2>主要城市</h2>';
		for(var i=0;i<maincity.length;i++)
		{
			content +='<h3>' +maincity[i][0]+&#34;</h3><div class='optcon'><ul>&#34;;
			for(var k=0;k<maincity[i][1].length;k++)
			{
			content+=&#34;<li><a class='j a_sele_city' id='c-&#34;+maincity[i][1][k]+&#34;' href='javascript:void(0);'>&#34;+ja[maincity[i][1][k]]+&#34;</a></li>&#34;;
			}
			content+='</ul></div>';
		}
		
		content +=&#34;<h2>所有省份</h2>&#34;;
		for(var i=0;i<allprov.length;i++)
		{
			content+='<h3>'+allprov[i][0]+&#34;</h3><div class='optcon'><ul>&#34;;
			for(var k=0;k<allprov[i][1].length;k++){content+=&#34;<li><a class='j a_sh_city' id='p-&#34;+allprov[i][1][k]+&#34;' href='javascript:void(0);'>&#34;+ja[allprov[i][1][k]]+&#34;</a></li>&#34;;}
			content+=&#34;</ul></div>&#34;;
		}
		$('#opt').html(content);
		load_event_monitor($('#opt'));
		isbuild = true;
	}

	$(&#34;#sh&#34;).click(function(){ 
		var arrayPageSize = getPageSize();
		var arrayPageScroll = getPageScroll();
		$('#pop').css('top',(arrayPageScroll[1] + ((arrayPageSize[3] - 35 - 400) / 2) + 'px')).css('left',(((arrayPageSize[0] - 20 - 600) / 2) + 'px')).show(); 
		var h=arrayPageSize[1] + 35;
		$('#overlay').css('height',(h+'px')).show();
	}); 

	event_monitor.subscribe(&#34;sele_deled&#34;,function(o,data){
			$('#c-'+data).removeClass('seled');
			if($('#pc-'+data).length!=0){$('#pc-'+data).removeClass('seled');}
			//alert($('#c-'+data).length);
			//$('#c-'+data).each(function(i,obj){obj.removeClass('seled');});  
			$('#sv').val($('#sv').val().replace(data+' ',''));
			$('#mycity').html(getValue($('#sv').val()));
			$('#se-'+data).remove();
	   });
	  event_monitor.subscribe(&#34;sele_add&#34;,function(o,data){
			var cv=$('#sv').val();	
			if(cv.lastIndexOf(data)<0 &amp;&amp; ja[data])
			{
				$('#sv').val($('#sv').val()+data+' ');
				$('#mycity').html(getValue($('#sv').val()));
			}
			if(data.substring(2)=='00'){var key='';for(var i=1;i<20;i++){
				if(i<10) key=data.substring(0,2)+'0'+i;else key=data.substring(0,2)+i;
				event_monitor.broadcast(null, &#34;sele_deled&#34;, key);}
				}
			else{event_monitor.broadcast(null, &#34;sele_deled&#34;, data.substring(0,2)+'00');}
	   });

	  $('#pop').mouseover(function(){$('#spop').hide();});

	  $('#closepop').click(function(){$('#pop').hide();$('#overlay').hide();});

	  $('#tit').mousedown(function(e){
			if(leX==0)
			{
				leX=parseInt($('#pop').css('left').replace('px',''));
				leY=parseInt($('#pop').css('top').replace('px',''));
			}
			lmX = e.pageX;lmY=e.pageY;ismd=true;
			return false;
	  }).mouseup(function(e){ if(ismd){upPosition(e.pageX,e.pageY);ismd=false;} });

	  $(document).mousemove(function(e){if(ismd)
	  {upPosition(e.pageX,e.pageY);return false;}}).mouseup(function(e){ 	if(ismd){upPosition(e.pageX,e.pageY);ismd=false;} 		});
	  
});
 
function upPosition(x,y){ 
leX=parseInt(x-lmX+leX);
leY=parseInt(y-lmY+leY);

$('#pop').css('left',(leX+'px')).css('top',(leY+'px')); 
lmX=x;lmY=y;
}

</script>
 <title>城市联动，类似51job--ajax之家|专注于web前端开发 ajaxa.cn欢迎您！</title>
</head><body>
<div id=&#34;wrap&#34;>
<form id=&#34;form1&#34;>
<p></p>
<span>出处：</span><a href=&#34;<a href="http://darkangle.cnblogs.com/" target="_blank" rel="external">http://darkangle.cnblogs.com/</a>&#34;>Darkangle, QQ: 5364241</a><br />
<span>整理：</span><a href=&#34;<a href="http://www.ajaxa.cn" target="_blank" rel="external">http://www.ajaxa.cn</a>&#34;>ajax之家  ajax<span style=&#34;color:#FF0000;&#34;>a</span>.cn</a><br />
<span>文章：</span><a href=&#34;<a href="http://www.ajaxa.cn" target="_blank" rel="external">http://www.ajaxa.cn</a>/article/162.html&#34;>城市联动，类似51job</a><br />
<h1 id=&#34;sh&#34;>选择城市  </h1>
<strong style=&#34;font-weight: bold;&#34;>已经选定的城市</strong>: <div id=&#34;mycity&#34;>天津市 武汉市 重庆市 保定市 </div>
<div id=&#34;sele_con&#34;>
</div>
<div id=&#34;cmd&#34;>
<div id=&#34;test&#34;></div>
<hr style=&#34;border-style: none solid solid; border-color: -moz-use-text-color rgb(153, 0, 0) rgb(153, 0, 0); border-width: medium 1px 1px;&#34;>
	<input value=&#34;0500 1802 0600 1604 &#34; id=&#34;sv&#34; type=&#34;hidden&#34;>
	<input name=&#34;&#34; class=&#34;&#34; id=&#34;sub_form&#34; value=&#34;确认提交&#34; type=&#34;button&#34;>
</div>
</form>
</div>
<div id=&#34;pop&#34; style=&#34;top: 84px; left: 202px; display: none;&#34;>
	<div id=&#34;tit&#34;><span id=&#34;closepop&#34;>[ 关闭 ]</span></div>
	<div id=&#34;popbody&#34;>
	<span style=&#34;font-size: 16px; color: rgb(153, 0, 0); font-weight: bold;&#34;>已选择城市：</span>
		<div id=&#34;pop_con&#34;>
			<ul id=&#34;pop_sele&#34;><li><a class=&#34;j a_del_sele&#34; id=&#34;se-0500&#34; href=&#34;javascript:void(0);&#34;>天津市</a></li><li><a class=&#34;j a_del_sele&#34; id=&#34;se-1802&#34; href=&#34;javascript:void(0);&#34;>武汉市</a></li><li><a class=&#34;j a_del_sele&#34; id=&#34;se-0600&#34; href=&#34;javascript:void(0);&#34;>重庆市</a></li><li><a class=&#34;j a_del_sele&#34; id=&#34;se-1604&#34; href=&#34;javascript:void(0);&#34;>保定市</a></li></ul> 
			<div id=&#34;opt&#34;><h2>主要城市</h2><h3>华北-东北</h3><div class=&#34;optcon&#34;><ul><li><a class=&#34;j a_sele_city&#34; id=&#34;c-0100&#34; href=&#34;javascript:void(0);&#34;>北京市</a></li><li><a class=&#34;j a_sele_city seled&#34; id=&#34;c-0500&#34; href=&#34;javascript:void(0);&#34;>天津市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-2303&#34; href=&#34;javascript:void(0);&#34;>大连市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-2302&#34; href=&#34;javascript:void(0);&#34;>沈阳市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-2402&#34; href=&#34;javascript:void(0);&#34;>长春市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-2202&#34; href=&#34;javascript:void(0);&#34;>哈尔滨市</a></li></ul></div><h3>华东 地区</h3><div class=&#34;optcon&#34;><ul><li><a class=&#34;j a_sele_city&#34; id=&#34;c-0200&#34; href=&#34;javascript:void(0);&#34;>上海市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-0702&#34; href=&#34;javascript:void(0);&#34;>南京市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-0703&#34; href=&#34;javascript:void(0);&#34;>苏州市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-0802&#34; href=&#34;javascript:void(0);&#34;>杭州市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-0803&#34; href=&#34;javascript:void(0);&#34;>宁波市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-1502&#34; href=&#34;javascript:void(0);&#34;>合肥市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-1102&#34; href=&#34;javascript:void(0);&#34;>福州市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-1202&#34; href=&#34;javascript:void(0);&#34;>济南市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-1203&#34; href=&#34;javascript:void(0);&#34;>青岛市</a></li></ul></div><h3>华南-华中</h3><div class=&#34;optcon&#34;><ul><li><a class=&#34;j a_sele_city&#34; id=&#34;c-0302&#34; href=&#34;javascript:void(0);&#34;>广州市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-0400&#34; href=&#34;javascript:void(0);&#34;>深圳市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-0308&#34; href=&#34;javascript:void(0);&#34;>东莞市</a></li><li><a class=&#34;j a_sele_city seled&#34; id=&#34;c-1802&#34; href=&#34;javascript:void(0);&#34;>武汉市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-1902&#34; href=&#34;javascript:void(0);&#34;>长沙市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-1702&#34; href=&#34;javascript:void(0);&#34;>郑州市</a></li></ul></div><h3>西北-西南</h3><div class=&#34;optcon&#34;><ul><li><a class=&#34;j a_sele_city&#34; id=&#34;c-2002&#34; href=&#34;javascript:void(0);&#34;>西安市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-0902&#34; href=&#34;javascript:void(0);&#34;>成都市</a></li><li><a class=&#34;j a_sele_city seled&#34; id=&#34;c-0600&#34; href=&#34;javascript:void(0);&#34;>重庆市</a></li><li><a class=&#34;j a_sele_city&#34; id=&#34;c-2502&#34; href=&#34;javascript:void(0);&#34;>昆明市</a></li></ul></div><h2>所有省份</h2><h3>华北-东北</h3><div class=&#34;optcon&#34;><ul><li><a class=&#34;j a_sh_city&#34; id=&#34;p-1600&#34; href=&#34;javascript:void(0);&#34;>河北省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-2100&#34; href=&#34;javascript:void(0);&#34;>山西省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-2800&#34; href=&#34;javascript:void(0);&#34;>内蒙古</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-2300&#34; href=&#34;javascript:void(0);&#34;>辽宁省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-2400&#34; href=&#34;javascript:void(0);&#34;>吉林省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-2200&#34; href=&#34;javascript:void(0);&#34;>黑龙江省</a></li></ul></div><h3>华东 地区</h3><div class=&#34;optcon&#34;><ul><li><a class=&#34;j a_sh_city&#34; id=&#34;p-0700&#34; href=&#34;javascript:void(0);&#34;>江苏省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-0800&#34; href=&#34;javascript:void(0);&#34;>浙江省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-1500&#34; href=&#34;javascript:void(0);&#34;>安徽省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-1100&#34; href=&#34;javascript:void(0);&#34;>福建省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-1300&#34; href=&#34;javascript:void(0);&#34;>江西省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-1200&#34; href=&#34;javascript:void(0);&#34;>山东省</a></li></ul></div><h3>华南-华中</h3><div class=&#34;optcon&#34;><ul><li><a class=&#34;j a_sh_city&#34; id=&#34;p-0300&#34; href=&#34;javascript:void(0);&#34;>广东省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-1400&#34; href=&#34;javascript:void(0);&#34;>广西</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-1000&#34; href=&#34;javascript:void(0);&#34;>海南省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-1700&#34; href=&#34;javascript:void(0);&#34;>河南省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-1800&#34; href=&#34;javascript:void(0);&#34;>湖北省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-1900&#34; href=&#34;javascript:void(0);&#34;>湖南省</a></li></ul></div><h3>西北-西南</h3><div class=&#34;optcon&#34;><ul><li><a class=&#34;j a_sh_city&#34; id=&#34;p-2000&#34; href=&#34;javascript:void(0);&#34;>陕西省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-2700&#34; href=&#34;javascript:void(0);&#34;>甘肃省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-3200&#34; href=&#34;javascript:void(0);&#34;>青海省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-2900&#34; href=&#34;javascript:void(0);&#34;>宁夏</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-3100&#34; href=&#34;javascript:void(0);&#34;>新疆</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-0900&#34; href=&#34;javascript:void(0);&#34;>四川省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-2600&#34; href=&#34;javascript:void(0);&#34;>贵州省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-2500&#34; href=&#34;javascript:void(0);&#34;>云南省</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-3000&#34; href=&#34;javascript:void(0);&#34;>西藏</a></li></ul></div><h3>其它</h3><div class=&#34;optcon&#34;><ul><li><a class=&#34;j a_sh_city&#34; id=&#34;p-3300&#34; href=&#34;javascript:void(0);&#34;>香港</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-3400&#34; href=&#34;javascript:void(0);&#34;>澳门</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-3500&#34; href=&#34;javascript:void(0);&#34;>台湾</a></li><li><a class=&#34;j a_sh_city&#34; id=&#34;p-3600&#34; href=&#34;javascript:void(0);&#34;>国外</a></li></ul></div></div>
		</div>
	</div>
</div>
<div id=&#34;spop&#34; style=&#34;top: 393px; left: 259px; display: none;&#34;><ul><li><a href=&#34;javascript:void(0);&#34; id=&#34;pc-1600&#34; class=&#34;j a_sele_city&#34;>河北省</a></li><li><a href=&#34;javascript:void(0);&#34; id=&#34;pc-1602&#34; class=&#34;j a_sele_city&#34;>石家庄市</a></li><li><a href=&#34;javascript:void(0);&#34; id=&#34;pc-1603&#34; class=&#34;j a_sele_city&#34;>廊坊市</a></li><li><a href=&#34;javascript:void(0);&#34; id=&#34;pc-1604&#34; class=&#34;j a_sele_city seled&#34;>保定市</a></li><li><a href=&#34;javascript:void(0);&#34; id=&#34;pc-1605&#34; class=&#34;j a_sele_city&#34;>唐山市</a></li><li><a href=&#34;javascript:void(0);&#34; id=&#34;pc-1606&#34; class=&#34;j a_sele_city&#34;>秦皇岛市</a></li></ul></div>
<div id=&#34;overlay&#34; style=&#34;height: 638px; display: none;&#34;></div>
</body></html>

</TEXTAREA><br/><INPUT onclick="runEx('temp48963')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp48963')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp48963')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.51oyf.com/article/Js/106.html" /> 
	  <id>http://www.51oyf.com/default.asp?id=106</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[JS解压缩和格式化工具]]></title>
	  <author>
		 <name>NetFox</name>
		 <uri>http://www.51oyf.com/</uri>
		 <email>9337719@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.51oyf.com/default.asp?cateID=8" label="Javascri&#112;t开发" /> 
	  <updated>2009-11-09T20:55:02+08:00</updated>
	  <published>2009-11-09T20:55:02+08:00</published>
		  <summary type="html"><![CDATA[解压工具：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51oyf.com/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp19568">
<head> 
<meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; /> 
<script> 
a=62; 
function encode() { 
var code = document.getElementById('code').value; 
code = code.replace(/[\r\n]+/g, ''); 
code = code.replace(/'/g, &#34;\\'&#34;); 
var tmp = code.match(/\b(\w+)\b/g); 
tmp.sort(); 
var dict = []; 
var i, t = ''; 
for(var i=0; i<tmp.length; i++) { 
   if(tmp[i] != t) dict.push(t = tmp[i]); 
} 
var len = dict.length; 
var ch; 
for(i=0; i<len; i++) { 
   ch = num(i); 
   code = code.replace(new RegExp('\\b'+dict[i]+'\\b','g'), ch); 
   if(ch == dict[i]) dict[i] = ''; 
} 
document.getElementById('code').value = &#34;eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c]);return p}(&#34; 
   + &#34;'&#34;+code+&#34;',&#34;+a+&#34;,&#34;+len+&#34;,'&#34;+ dict.join('|')+&#34;'.split('|'),0,{}))&#34;; 
} 

function num(c) { 
return(c<a?'':num(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36)); 
} 

function run() { 
eval(document.getElementById('code').value); 
} 

function decode() { 
var code = document.getElementById('code').value; 
code = code.replace(/^eval/, ''); 
document.getElementById('code').value = eval(code); 
} 
</script> 
</head> 
<body> 

<textarea id=code cols=80 rows=20> 

<&#47textarea> 

<input type=button onclick=encode() value=&#34;编码&#34;/> 
<input type=button onclick=run() value=&#34;运行&#34;/> 
<input type=button onclick=decode() value=&#34;解码&#34;/> 

 
/**注意代码前不要出现空格**/ 
</body> 
</html>

</TEXTAREA><br/><INPUT onclick="runEx('temp19568')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp19568')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp19568')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><br/><br/>格式化工具：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51oyf.com/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp1814">
<head>
<title>infinte JSA 2.0</title>
<meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; />
<style type=&#34;text/css&#34;>
/* Global CSS */
*{margin:0;padding:0;font-size:14px}
html{overflow:hidden;}
body {background-color:buttonface;margin-top:5px;}
li { margin:0px 0px 0px 40px; padding:2px 4px; }
div,p { font-size:15px; line-height:15px; }
/* Class CSS */
.codeRoot { line-height:15px; }
.quote { color:#009000; }
.comments { color: #999; }
.indent { margin-left:8px; border-left:1px solid #ddd;padding-left:7px;}
.regexp { color:#009900;font-weight:bold;}
.keyWord { color:blue; font-weight:bold}
.object { color:red; }
.method_property { color:#990099; }
.operator { color:#004000; }
textarea,sel&#101;ct,#divJSExportContent{
    width:500px;
		height:400px;
		overflow:auto;
}
#divJSInput,#divJSExport,#divJSCopy{
    background:#f5f5f5;
		top:50%;
		left:50%;
		position:absolute;
		width:510px;
		height:600px;
		margin-left:-255px;
		margin-top:-280px;
		border:2px outset;
		padding:0.5em;
		height:auto;
		display:none;
		z-index:9999;
}
h1{
    background:#000066;
		color:#ffffff;
		margin:-0.5em -0.5em 0.5em -0.5em;
		padding:0.5em;
}
#divWaiting{
   top:50%;
	 left:50%;
	 z-index:9999;
	 position:absolute;
	 background:#f1f1f1;
	 border:2px outset;
	 padding:0.5em;
	 width:250px;
	 height:50px;
	 margin-left:-125px;
	 margin-top:-25px;
	 display:none;
}
#divTools{
    border-bottom:1px solid #000;
}
#divMain{
    position:absolute;
		top:20px;
		left:0;
		right:0;
		bottom:0;
		overflow:auto;
		font-family:consolas,&#34;Lucida Console&#34;,monospace;
		font-size:14px;
		line-height:15px;
}
#divJSOutputLineNo{
    position:absolute;
		top:0;
		left:0px;
		width:36px;
    background:#33f;
		color:#fff;
		text-align:right;
		padding-right:10px;
}
#divJSOutput{
    margin-left:46px;
		line-height:15px;
		white-space:pre-wrap;
		*white-space:pre;
		*word-wrap:break-word;
		background:#fff;
		zoom:1;
}
</style>
<script type=&#34;text/javascript&#34;>
function CopyToClipboard(meintext)
{
    if (window.clipboardData) 
    {
        // the IE-manier
        window.clipboardData.setData(&#34;Text&#34;, meintext);
    }
    else if (window.netscape) 
    { 
        // dit is belangrijk maar staat nergens duidelijk vermeld:
        // you have to sign the code to enable this, o&#114; see notes below 
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
          
        // maak een interface naar het clipboard
        var clip = Components.classes['@mozilla.org/widget/clipboard;1']
                        .cr&#101;ateInstance(Components.interfaces.nsIClipboard);
        if (!clip) return;
        //alert(clip);
        // maak een transferable
        var trans = Components.classes['@mozilla.org/widget/transferable;1']
                        .cr&#101;ateInstance(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[&#34;@mozilla.org/supports-string;1&#34;]
                        .cr&#101;ateInstance(Components.interfaces.nsISupportsString);
        var copytext=meintext;
        str.data=copytext;
        trans.setTransferData(&#34;text/unicode&#34;,str,copytext.length*2);
        var clipid=Components.interfaces.nsIClipboard;
        if (!clip) return false;
        clip.setData(trans,null,clipid.kGlobalClipboard);
    }
    else
    {
        return false;
    }

    alert(&#34;Copied!&#34;);
    return false;
}//------------------
// Static Variable
//------------------
var KEYWORDS=&#34;abstract break byte case catch char class const continue default del&#101;te do double else extends false final finally float for function goto if implements import in instanceof int interface long native null package private protected public reset return short static super switch synchronized this throw transient true try var void while with&#34;;
var OBJECTS=&#34;Anchor Applet Area Arguments Array Boolean Button Checkbox Collection Crypto Date Dictionary Document Drive Drives Element Enumerator Event File FileObject FileSystemObject FileUpload Folder Folders Form Frame Function Global Hidden History HTMLElement Image Infinity Input JavaArray JavaClass JavaObject JavaPackage JSObject Layer Link Math MimeType Navigator Number Object Option Packages Password Plugin PrivilegeManager Random RegExp Screen Sel&#101;ct String Submit Text Textarea URL VBArray Window WScript&#34;;
var METHODS_PROPERTIES=&#34;above abs acos action activeElement alert alinkColor all altKey anchor anchors appCodeName applets apply appName appVersion arguments arity asin assign atan atan2 atob  availHeight availLeft availTop availWidth ActiveXObject back background below bgColor big blink blur bold border borderWidths bottom btoa button call callee caller cancelBubble captureEvents ceil charAt charCodeAt charset checked children classes className clear clearInterval clearTimeout click clientInformation  clientX clientY close closed colorDepth compile complete concat confirm constructir contains contextual cookie cos crypto ctrlKey current data defaultCharset defaultChecked defaultSel&#101;cted defaultStatus defaultValue description disableExternalCapture disablePrivilege document domain E Echo  element elements embeds enabledPlugin enableExternalCapture enablePrivilege encoding escape eval event exec exp expando FromPoint fgColor fileName find fixed floor focus fontColor fontSize form forms forward frames fromCharCode fromElement  getAttribute get getClass getDate getDay getFullYear getHours getMember getMilliseconds getMinutes getMonth getSeconds getSel&#101;ction getSlot getTime getTimezoneOffset  getUTCDate getUTCDay getUTCFullYear getUTCHours getUTCMilliseconds getUTCMinutes getUTCMonth getUTCSeconds getWindow getYear global go HandleEvent Height  hash hidden history home host hostName href hspace id ids ignoreCase images index indexOf inner innerHTML innerText innerWidth ins&#101;rtAdjacentHTML ins&#101;rtAdjacentText isFinite isNAN italics java javaEnabled join keyCode Links LN10 LN2 LOG10E LOG2E  lang language lastIndex lastIndexOf lastMatch lastModified lastParen layers layerX layerY left leftContext length link linkColor load location locationBar log lowsrc MAX_VALUE MIN_VALUE  margins match max menubar method mimeTypes min modifiers moveAbove moveBelow moveBy moveTo moveToAbsolute multiline NaN NEGATIVE_INFINITY  name navigate navigator netscape next number offscreenBuffering offset offsetHeight offsetLeft offsetParent offsetTop offsetWidth offsetX offsetY onabort onblur onchange onclick ondblclick ondragdro&#112; onerror onfocus  onHelp onkeydown onkeypress onkeyup onload onmousedown onmousemove onmouseout onmouseover onmouseup onmove onreset onresize onsubmit onunload open opener options outerHeight  outerHTML outerText outerWidth POSITIVE_INFINITY PI  paddings pageX pageXOffset pageY pageYOffset parent parentElement parentLayer parentWindow parse parseFloat parseInt pathname personalbar pixelDepth platform plugins pop  port pow preference previous print prompt protocol prototype push random readyState reason referrer refresh releaseEvents reload removeAttribute removeMember replace resizeBy resizeTo returnValue reverse right rightcontext round SQRT1_2 SQRT2  screenX screenY scroll scrollbars scrollBy scrollIntoView scrollTo search sel&#101;ct sel&#101;cted sel&#101;ctedIndex self setAttribute setDay setFullYear setHotkeys setHours setInterval  setMember setMilliseconds setMinutes setMonth setResizable setSeconds setSlot setTime setTimeout setUTCDate setUTCFullYear setUTCHours setUTCMillseconds setUTCMinutes  setUTCMonth setUTCSeconds setYear setZOptions shift shiftKey siblingAbove siblingBelow signText sin slice smallsort source sourceIndex splice split sqrt src  srcElement srcFilter status statusbar stop strike style sub submit substr substring suffixes sun sup systemLanguage TYPE  tagName tags taint taintEnabled tan target test text title toElement toGMTString toLocaleString toLowerCase toolbar top toString toUpperCase toUTCString type typeOf UTC unescape unshift untaint unwatch userAgent userLanguage  value valueOf visibility vlinkColor vspace watch which width window write writeln x y zIndex&#34;;
var OPS=&#34;! $ % &amp; * + - // / : < = > ? [ ] ^ | ~ is  new sizeof  typeof unchecked&#34;;
var regKW=new RegExp(&#34;(\\W&#34;+KEYWORDS.replace(/ /g,&#34;$)|(\\W&#34;)+&#34;$)&#34;,&#34;g&#34;);
var regObj=new RegExp(&#34;(\\W&#34;+OBJECTS.replace(/ /g,&#34;$)|(\\W&#34;)+&#34;$)&#34;,&#34;g&#34;);
var regMP=new RegExp(&#34;(\\W&#34;+METHODS_PROPERTIES.replace(/ /g,&#34;$)|(\\W&#34;)+&#34;$)&#34;,&#34;g&#34;);
//var regOP=new RegExp(&#34;(\\W&#34;+OPS.replace(/ /g,&#34;$)|(\\W&#34;)+&#34;$)&#34;,&#34;g&#34;);
//------------------
// Global Variables
//------------------
var divJSInput, txtJSInput, divMain, divJSOutputLineNo, divJSOutputPlus, divJSOutput, divWaiting;
var spnProcess, cmdStop, divJSExport, selJSExport, divJSExportContent;
var glbStr='', glbP, glbRe, curRe, glbTimer, glbBusy, glbFuntionNames;
window.onload = function(){
	// init global variables
	divJSInput=document.getElementById(&#34;divJSInput&#34;);
	txtJSInput=document.getElementById(&#34;txtJSInput&#34;);
	divMain=document.getElementById(&#34;divMain&#34;);
	divJSOutputLineNo=document.getElementById(&#34;divJSOutputLineNo&#34;);
	divJSOutput=document.getElementById(&#34;divJSOutput&#34;);
	divWaiting=document.getElementById(&#34;divWaiting&#34;);
	spnProcess=document.getElementById(&#34;spnProcess&#34;);
	cmdStop=document.getElementById(&#34;cmdStop&#34;);
	divJSExport=document.getElementById(&#34;divJSExport&#34;);
	selJSExport=document.getElementById(&#34;selJSExport&#34;);
	divJSExportContent=document.getElementById(&#34;divJSExportContent&#34;);
	
	// init window state
/*	divMain.style.width=document.body.clientWidth-4;
	divMain.style.height=document.body.clientHeight-26;
	divJSOutput.style.width=document.body.clientWidth-49;
*/
	// init global events
	divJSInput.onkeydown=divJSInput_keydown;
	divJSExport.onkeydown=divJSExport_keydown;
	showJSInput();
}
//------------------
// event scripts
//------------------
function divJSInput_keydown(e){
	var e=window.event?window.event:e;
	var srcEle=e.srcElement?e.srcElement:e.target;
	var sel;
	if(e.keyCode==27)hideJSInput();
	if(e.keyCode==13&amp;&amp;e.ctrlKey)execJSInput();
	if(e.keyCode==9&amp;&amp;srcEle==txtJSInput){
		document.sel&#101;ction.cr&#101;ateRange().text=&#34;\t&#34;;return(false); // not support FF	
	}
}
function divJSExport_keydown(e){
	var e=window.event?window.event:e;
	var srcEle=e.srcElement?e.srcElement:e.target;
	var sel;
	if(e.keyCode==27)hideJSExport();
	if(e.keyCode==13&amp;&amp;e.ctrlKey)hideJSExport();
}
//------------------
// functional scripts
//------------------
function showJSInput(){
	if(glbBusy)return;
	hideJSExport();
	hideJSCopy();
	with(divJSInput.style){
		display=&#34;block&#34;;
		//left=(document.body.clientWidth-divJSInput.offsetWidth)/2;
		//top=(document.body.clientHeight-divJSInput.offsetHeight)/2;
	}
	txtJSInput.focus();
	return(false);
}
function showJSExport(){
	if(glbBusy)return;
	hideJSInput();
	hideJSCopy();
	with(divJSExport.style){
		display=&#34;block&#34;;
		//left=(document.body.clientWidth-divJSExport.offsetWidth)/2;
		//top=(document.body.clientHeight-divJSExport.offsetHeight)/2;
	}
	divJSExportContent.style.display=&#34;none&#34;;
	selJSExport.style.display=&#34;block&#34;;
	
	selJSExport.focus();
	return(false);
}
function showJSCopy(){
	if(glbBusy)return;
	hideJSCopy();
	with(divJSCopy.style){
		display=&#34;block&#34;;
		//left=(document.body.clientWidth-divJSCopy.offsetWidth)/2;
		//top=(document.body.clientHeight-divJSCopy.offsetHeight)/2;
	}
	return(false);
}
function hideJSCopy(){
	divJSCopy.style.display = &#34;none&#34;;
}
function hideJSInput(){
	divJSInput.style.display=&#34;none&#34;;
}
function hideJSExport(){
	divJSExport.style.display=&#34;none&#34;;
}
function execJSInput(){
	hideJSInput();
	
	divJSOutput.innerHTML=&#34;&#34;;
	divJSOutputLineNo.innerHTML=&#34;&#34;;
	
	glbStr=txtJSInput.value; // not support FF	
	glbP=0;
	glbFuntionNames=new Array();
	curRe=glbRe=document.cr&#101;ateElement(&#34;div&#34;);
	
	divJSOutput.appendChild(glbRe);
	glbRe.className=&#34;codeRoot&#34;;
	
	while(selJSExport.options.length>0)selJSExport.options[0]=null;
	
	showWait(startRecalcLine);
	core_analysis();
}
function execJSExport(){
	var fns=new Array(), fcs=new Array(), str;
	
	for(var i=0; i<selJSExport.options.length; i++){
		if(selJSExport.options[i].sel&#101;cted){
			fns.push(selJSExport.options[i].value);
			str=selJSExport.options[i].obj.outerHTML;
			try{
				str+=selJSExport.options[i].obj.nextSibling.outerHTML;
				str+=selJSExport.options[i].obj.nextSibling.nextSibling.outerHTML;
			}catch(e){}
			fcs.push(str);
		}
	}
	if(fns.length==0)return;
	
	divJSExportContent.style.display=&#34;block&#34;;
	selJSExport.style.display=&#34;none&#34;;
	
	divJSExportContent.innerHTML=fcs.join(&#34;\r\n<br>\r\n&#34;);
}
function execJSExport_Dep(){
	var fns=new Array(), fcs=new Array(), str, regFNs=new Array(), needDepthTest;
	
	for(var i=0; i<selJSExport.options.length; i++){
		if(selJSExport.options[i].sel&#101;cted){
			fns.push(selJSExport.options[i].value);
			try{
				str=selJSExport.options[i].obj.nextSibling.outerHTML;
			}catch(e){}
			fcs.push(str);
		}
	}
	if(fns.length==0)return;
	
	divJSExportContent.style.display=&#34;none&#34;;
	selJSExport.style.display=&#34;block&#34;;
	
	needDepthTest=false;
	for(var i=0;i<glbFuntionNames.length;i+=1){
		if(!selJSExport.options[i].sel&#101;cted){
			for(j=0;j<fcs.length;j++){
				if(html2txt(fcs[j]).match(glbFuntionNames[i].replace(/\./g,&#34;\\.&#34;))){
					selJSExport.options[i].sel&#101;cted=true;
					needDepthTest=true;
					break;
				}
			}
		}
	}
	if(needDepthTest)execJSExport_Dep();
}
function showWait(onstop){
	glbBusy=true;
	document.body.style.cursor=&#34;wait&#34;;
	
	with(divWaiting.style){
		display=&#34;block&#34;;
	}
	spnProcess.innerHTML=&#34;0.00%  ( 0 / 0 )&#34;;
	divWaiting.onstop=onstop;
	cmdStop.focus();
	return(false);
}
function hideWait(){
	glbBusy=false;
	document.body.style.cursor=&#34;&#34;;
	divWaiting.style.display=&#34;none&#34;;
	try{clearTimeout(glbTimer);}catch(e){}
	try{divWaiting.onstop();}catch(e){}
	return(false);
}
function stopExec(){ hideWait(); }
function startRecalcLine(){
	var re=&#34;&#34;, re2=&#34;&#34;;
	if(glbBusy)return;
	glbBusy=true;
	for(var i=0;i<parseInt(divJSOutput.scrollHeight/15);i++){
		re+=&#34;<p>&#34;+(i+1)+&#34;</p>&#34;;
		re2+=&#34;<p> </p>&#34;;
	}
	
	divJSOutputLineNo.innerHTML=re;
	divJSOutputPlus.innerHTML=re2;
	divJSOutputPlus.buttons=new Array();
	
	glbP=0;

	stopExec();
	glbBusy = false;
	return(false);
}
function core_analysis(){
	var str=&#34; &#34;, c=&#34;&#34;, lastState=&#34;&#34;, seq, intNextQuote, intTemp, intCount, intWordStart;
	glbStr=glbStr.replace(/\r|\n/g,'\r\n');
	glbStr=glbStr.replace(/\r\n\r\n/g,'\r\n');
	spnProcess.innerHTML=parseFloat(glbP/glbStr.length*100).toFixed(2)+&#34;%  ( &#34;+glbP+&#34; / &#34;+glbStr.length+&#34; )&#34;;
	for(var i=glbP;i<glbStr.length;i++){
		c=glbStr.charAt(i);
		str+=htmlEncode(c);
		switch(c){
			case &#34;\r&#34;: case &#34; &#34;: case &#34;\t&#34;:
				if(lastState==&#34;\r\n&#34;){str=&#34; &#34;;break;}
				str=str.substring(0,str.length-htmlEncode(c).length);
				if(lastState==&#34;blank&#34;)break;
				if(c.match(/\W/)&amp;&amp;glbStr.charAt(i-1).match(/\w/)){
					str=str.replace(regKW,clKW).replace(regObj,clObj).replace(regMP,clMP);
				}
				str+=htmlEncode(c);
				lastState=&#34;blank&#34;;
			break;
			case &#34;;&#34;:
				if(str.match(/\Wfor.*?\(/i))break;
				// attention there's no break here
			case &#34;\n&#34;:
				if(lastState==&#34;\r\n&#34;){str=&#34; &#34;;break;}
				outputLn(str);
				str=&#34; &#34;;
				lastState=&#34;\r\n&#34;;
				if(i-glbP>200){
					glbP=i+1;
					glbTimer=setTimeout(core_analysis);
					return;
				}
			break;
			case &#34;\&#34;&#34;:
				intNextQuote=i;
				while(intNextQuote!=-1&amp;&amp;intNextQuote<glbStr.length){
					intNextQuote=glbStr.indexOf(&#34;\&#34;&#34;,intNextQuote+1);
					if(intNextQuote==-1||glbStr.charAt(intNextQuote-1)!=&#34;\\&#34;)break;
					intCount=0; intTemp=intNextQuote;
					while(glbStr.charAt(--intTemp)==&#34;\\&#34;)intCount++;
					if(intCount%2==0)break;
				}
				if(intNextQuote==-1)break;
				str+=&#34;<span class=\&#34;quote\&#34;>&#34;+htmlEncode(glbStr.substring(i+1,intNextQuote))+&#34;<\/span>\&#34;&#34;;
				i=intNextQuote;
				lastState=&#34;&#34;;
			break;
			case &#34;\'&#34;:
				intNextQuote=i;
				while(intNextQuote!=-1&amp;&amp;intNextQuote<glbStr.length){
					intNextQuote=glbStr.indexOf(&#34;\'&#34;,intNextQuote+1);
					if(intNextQuote==-1||glbStr.charAt(intNextQuote-1)!=&#34;\\&#34;)break;
					intCount=0; intTemp=intNextQuote;
					while(glbStr.charAt(--intTemp)==&#34;\\&#34;)intCount++;
					if(intCount%2==0)break;
				}
				if(intNextQuote==-1)break;
				str+=&#34;<span class=\&#34;quote\&#34;>&#34;+htmlEncode(glbStr.substring(i+1,intNextQuote))+&#34;<\/span>\'&#34;;
				i=intNextQuote;
				lastState=&#34;&#34;;
			break;
			case &#34;/&#34;:
//			  alert(str + '\n------\n' + str.match(/(?:(?:[!=(]|return|\[|,|\n)[ \t]*\/$)|^\n?[\t ]*\/$/))
				if(glbStr.charAt(i+1)==&#34;\/&#34;){
					intNextQuote=i;
					intNextQuote=glbStr.indexOf('\r\n',intNextQuote+1);
					if(intNextQuote==-1)intNextQuote=glbStr.length;
					str=str.substring(0,str.length-1);
					str+=&#34;<span class=\&#34;comments\&#34;>\/&#34;+htmlEncode(glbStr.substring(i+1,intNextQuote))+&#34;<\/span>&#34;;
					i=intNextQuote;
				}else if(glbStr.charAt(i+1)==&#34;*&#34;){
					intNextQuote=i;
					intNextQuote=glbStr.indexOf(&#34;*\/&#34;,intNextQuote+1);
					if(intNextQuote==-1)return;
					str=str.substring(0,str.length-1);
					str+=&#34;<span class=\&#34;comments\&#34;>\/&#34;+htmlEncode(glbStr.substring(i+1,intNextQuote))+&#34;*\/<\/span>&#34;;
					i=intNextQuote+1;
				}else if(str.match(/(?:(?:[!=(]|return|\[|,|\n)[ \t]*\/$)|^\n?[\t ]*\/$/)){
					intNextQuote=i;
					while(intNextQuote!=-1&amp;&amp;intNextQuote<glbStr.length){
						intNextQuote=glbStr.indexOf(&#34;\/&#34;,intNextQuote+1);
						if(intNextQuote==-1||glbStr.charAt(intNextQuote-1)!=&#34;\\&#34;)break;
						intCount=0; intTemp=intNextQuote;
						while(glbStr.charAt(--intTemp)==&#34;\\&#34;)intCount++;
						if(intCount%2==0)break;
					}
					if(intNextQuote==-1)break;
					str+=&#34;<span class=\&#34;regexp\&#34;>&#34;+htmlEncode(glbStr.substring(i+1,intNextQuote))+&#34;<\/span>\/&#34;;
					i=intNextQuote;
					lastState=&#34;&#34;;
				}
				lastState=&#34;&#34;;
			break;
			case &#34;{&#34;:
				outputLn(str);
				str=&#34; &#34;;
				seq=document.cr&#101;ateElement(&#34;div&#34;);
				seq.className=&#34;indent&#34;;
				curRe.appendChild(seq);
				curRe=seq;
				lastState=&#34;\r\n&#34;;
				if(i-glbP>200){
					glbP=i+1;
					glbTimer=setTimeout(core_analysis);
					return;
				}
			break;
			case &#34;}&#34;:
				outputLn(str.substring(0,str.length-1));
				str=&#34;} &#34;;
				lastState=&#34;&#34;;
				curRe=curRe.parentNode;
			break;
			default:
				if(c.match(/\w/)&amp;&amp;glbStr.charAt(i-1).match(/\W/)){intWordStart=i;}
				if(c.match(/\W/)&amp;&amp;glbStr.charAt(i-1).match(/\w/)){
					str=str.substring(0,str.length-htmlEncode(c).length);
					str=str.replace(regKW,clKW).replace(regObj,clObj).replace(regMP,clMP)+htmlEncode(c);
				}
				lastState=&#34;&#34;;
			break;
		}
	}
	
	if(i==glbStr.length){
		if(str!=&#34;&#34;){ outputLn(str); str=&#34; &#34;; }
		stopExec();
	};
	var o = document.getElementById('divJSOutput').innerHTML.replace(/<p>/gim,'').replace(/<\/p>/gim,'\r\n').replace(/<\/?span.*?\s*>/gim,'');
	var r = o;
	var cnt=0;
	do{
    o = r;
    r = o.replace(/<DIV class=indent>((?:(?!<\/?DIV>)(?:.|\n))*)<\/DIV>/gi,function(s,a){return a.replace(/\r\n/g,'\r\n\t')});
    cnt=cnt+1;
  }while(o!=r &amp;&amp; cnt<50);
  document.getElementById('JSOT').value = r.replace(/<\/?div.*?\s*>/gim,'').replace(/\r\n\s*\r\n/g,'\r\n').replace(/<.+?\s*>/g,&#34;&#34;).replace(/</g,&#34;<&#34;).replace(/>/g,&#34;>&#34;).replace(/ /g,&#34; &#34;).replace(/&amp;/g,&#34;&amp;&#34;).replace(/\{\s*\}/g,'{ }').replace(/\{\r\n/gi,'{\r\n\t').replace(/\t}\s*$/gim,'}');
	glbBusy = false;
}
function outputLn(theStr){
	var seq, txt, fn;
	if(html2txt(theStr).match(/^[ \t\r\n]*$/))return;
	seq=document.cr&#101;ateElement(&#34;p&#34;);
	seq.innerHTML=theStr;
	curRe.appendChild(seq);
	
	txt=html2txt(theStr);
	if(!txt)return;
	fn=txt.match(/function[ \t\r\n]+([\.\w]+?)[ \t\r\n]*\(.*?\)[ \t\r\n]*\{/);
	if(fn){
		glbFuntionNames.push(fn[1]);
		selJSExport.options[selJSExport.options.length]=new Option(fn[0]+&#34;}&#34;,fn[1]);
		selJSExport.options[selJSExport.options.length-1].obj=seq;
	}
	fn=txt.match(/([\.\w]+?)[ \t\r\n]*=[ \t\r\n]*function\W*\(.*?\)[ \t\r\n]*\{/);
	if(fn){
		glbFuntionNames.push(fn[1]);
		selJSExport.options[selJSExport.options.length]=new Option(fn[0]+&#34;}&#34;,fn[1]);
		selJSExport.options[selJSExport.options.length-1].obj=seq;
	}
}
function clKW(str){ return(str.charAt(0)+&#34;<span class=\&#34;keyWord\&#34;>&#34;+str.substring(1)+&#34;</span>&#34;); }
function clObj(str){ return(str.charAt(0)+&#34;<span class=\&#34;object\&#34;>&#34;+str.substring(1)+&#34;</span>&#34;); }
function clMP(str){ return(str.charAt(0)+&#34;<span class=\&#34;method_property\&#34;>&#34;+str.substring(1)+&#34;</span>&#34;); }
function clOP(str){ return(str.charAt(0)+&#34;<span class=\&#34;operator\&#34;>&#34;+str.substring(1)+&#34;</span>&#34;); }
//------------------
// global scripts
//------------------
function htmlEncode(strS){
	return(strS.replace(/&amp;/g,&#34;&amp;&#34;).replace(/</g,&#34;<&#34;).replace(/>/g,&#34;>&#34;).replace(/\r\n/g,&#34;<br\/>&#34;));
}
function html2txt(strS){
	return(strS.replace(/</g,&#34;<&#34;).replace(/>/g,&#34;>&#34;).replace(/ /g,&#34; &#34;).replace(/<br\/?>/g,&#34;\r\n&#34;).replace(/&amp;/g,&#34;&amp;&#34;).replace(/<.+?>/g,&#34;&#34;));
}
</script>
</head>
<body>
<div id=&#34;divTools&#34;>
<a href=&#34;#&#34; onclick=&#34;showJSInput();return(false);&#34;>输入脚本</a>
<a href=&#34;#&#34; onclick=&#34;showJSExport();return(false);&#34;>依赖分析</a>
<a href=&#34;#&#34; onclick=&#34;showJSCopy();return(false);&#34;>拷贝输出</a>
</div>
<div id=&#34;divMain&#34;>
	<div id=&#34;divJSOutputLineNo&#34;></div>
	<div id=&#34;divJSOutput&#34;></div>
</div>
<div id=&#34;divJSInput&#34;>
	<h1>请输入脚本</h1>
	<span><textarea id=&#34;txtJSInput&#34; style=&#34;width:500px;height:500px;&#34;><&#47textarea></span>
	<div id=&#34;divJSInputBar&#34;>
		<input type=&#34;button&#34; value=&#34;确认&#34; onclick=&#34;execJSInput();&#34; />
		<input type=&#34;button&#34; value=&#34;放弃&#34; onclick=&#34;hideJSInput();&#34; />
	</div>
</div>
<div id=&#34;divJSExport&#34;>
	<h1>分离</h1>
	<span><sel&#101;ct id=&#34;selJSExport&#34; multiple=&#34;multiple&#34; size=&#34;2&#34; ></sel&#101;ct></span>
	<div id=&#34;divJSExportContent&#34;></div>
	<div id=&#34;divJSExportBar&#34;>
		<input type=&#34;button&#34; value=&#34;分析依赖&#34; onclick=&#34;execJSExport_Dep();&#34;/>
		<input type=&#34;button&#34; value=&#34;分离选择集&#34; onclick=&#34;execJSExport();&#34;/>
		<input type=&#34;button&#34; value=&#34;关闭&#34; onclick=&#34;hideJSExport();&#34; />
	</div>
</div>
<div id=&#34;divJSCopy&#34;>
	<h1>copy code</h1>
  <span><textarea id=&#34;JSOT&#34; style=&#34;width:500px;height:500px;&#34;><&#47textarea>
	<input type=&#34;button&#34; value=&#34;Copy to Clipboard&#34; onclick=&#34;CopyToClipboard(document.getElementById('JSOT').value);&#34; />
  <input type=&#34;button&#34; value=&#34;关闭&#34; onclick=&#34;hideJSCopy();&#34; /></span>
</div>

<div id=&#34;divWaiting&#34;>
	正在分析……<span id=&#34;spnProcess&#34;></span><br />
	<span><input type=&#34;button&#34; value=&#34;中止&#34; onclick=&#34;stopExec();&#34; id=&#34;cmdStop&#34;/></span>
</div>
</body>
</html>


</TEXTAREA><br/><INPUT onclick="runEx('temp1814')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp1814')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp1814')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.51oyf.com/article/Js/105.html" /> 
	  <id>http://www.51oyf.com/default.asp?id=105</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[有图片预览功能的上传表单]]></title>
	  <author>
		 <name>NetFox</name>
		 <uri>http://www.51oyf.com/</uri>
		 <email>9337719@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.51oyf.com/default.asp?cateID=8" label="Javascri&#112;t开发" /> 
	  <updated>2009-09-09T20:11:01+08:00</updated>
	  <published>2009-09-09T20:11:01+08:00</published>
		  <summary type="html"><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51oyf.com/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp75402">
<html>
<head>
<meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=gb2312&#34;>
<title>图片上传</title>
<script>
function viewmypic(mypic,imgfile) {
if (imgfile.value){
mypic.src=imgfile.value;
mypic.style.display=&#34;&#34;;
mypic.border=1;
}
}
</script>
</head>
<body>
<center>
<form >
<input name=&#34;imgfile&#34; type=&#34;file&#34; id=&#34;imgfile&#34; size=&#34;40&#34; onchange=&#34;viewmypic(showimg,this.form.imgfile);&#34; />
<br />
</form>
<img name=&#34;showimg&#34; id=&#34;showimg&#34; src=&#34;&#34; style=&#34;display:none;&#34; alt=&#34;预览图片&#34; />
<br />
</div>
<div style=&#34;display:none&#34;>
</div>
</center>
</body>
</html>
</TEXTAREA><br/><INPUT onclick="runEx('temp75402')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp75402')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp75402')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div><br/><br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.51oyf.com/article/Js/100.html" /> 
	  <id>http://www.51oyf.com/default.asp?id=100</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[多选对话框效果（限制选定数量）]]></title>
	  <author>
		 <name>NetFox</name>
		 <uri>http://www.51oyf.com/</uri>
		 <email>9337719@qq.com</email>
	  </author>
	  <category term="" scheme="http://www.51oyf.com/default.asp?cateID=8" label="Javascri&#112;t开发" /> 
	  <updated>2009-04-19T14:15:16+08:00</updated>
	  <published>2009-04-19T14:15:16+08:00</published>
		  <summary type="html"><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.51oyf.com/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp89060">
<html>
<head>
<meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=gb2312&#34; />
<title>无标题文档</title>
<style type=&#34;text/css&#34;>
<!--
body{padding-top:50px;font-size:12px;}
h2{margin:0px;padding:0px;font-size:12px;font-weight:bold;}
.bton{border:1px solid #CCC;background:#DDD;}
.cont{padding:10px;}
#main{width:400px;margin:0px auto;}
#sel&#101;ctItem{background:#FFF;position:absolute;top:0px;left:center;border:1px solid #000;overflow:hidden;margin-top:10px;width:400px;z-index:2;}
#preview{margin:1px;border:1px solid #CCC;}
#result{border:1px solid #CCC;margin-top:10px;}
.tit{line-height:20px;height:20px;margin:1px;padding-left:10px;}
.bgc_ccc{background:#CCC;}
.bgc_eee{background:#eee;}
.c_999{color:#999}
.pointer{cursor:pointer;}
.left{float:left;}
.right{float:right;}
.cls{clear:both;font-size:0px;height:0px;overflow:hidden;}
#bg{background:#CCC;filter:alpha(opacity=70);opacity:0.7;width:100%;;position:absolute;left:0px;top:0px;display:none;z-index:1;}
.hidden{display:none;}
.move{cursor:move;}
-->
</style>
</head>
<body>
<div id=&#34;main&#34;>
<!----------------------------------------------------------------------------------------------->
  <input name=&#34;button&#34; type=&#34;button&#34; class=&#34;bton pointer&#34; value=&#34;请选择&#34; onclick=&#34;clear_len();openBg(1);openSel&#101;ct(1)&#34;/>
<!----------------------------------------------------------------------------------------------->
  <div id=&#34;result&#34;>
		<div class=&#34;tit bgc_eee&#34;>
			<h2>您已选择的城市汇总</h2>
		</div>	
		<div class=&#34;cont&#34; id=&#34;makeSureItem&#34;>
		</div>
  </div>
</div>
<div id=&#34;bg&#34;>
</div>
<div id=&#34;sel&#101;ctItem&#34; class=&#34;hidden&#34;>
		<div class=&#34;tit bgc_ccc move&#34; onmousedown=&#34;drag(event,this)&#34;>
			<h2 class=&#34;left&#34;>请选择城市</h2>
			<span class=&#34;pointer right&#34; onclick=&#34;copyItem('makeSureItem','previewItem');openBg(0);openSel&#101;ct(0);&#34;>[取消]</span>
			<span class=&#34;pointer right&#34; onclick=&#34;makeSure();&#34;>[确定]</span>			
		</div>
		<div class=&#34;cls&#34;></div>
		<div class=&#34;cont&#34;>
			<div id=&#34;sel&#101;ctSub&#34;>
				<sel&#101;ct name=&#34;&#34; onchange=&#34;showSel&#101;ct(this.value)&#34; style=&#34;margin-bottom:10px;&#34;>
					<option value=&#34;0&#34;>第0层</option>
					<option value=&#34;1&#34;>第1层</option>
					<option value=&#34;2&#34;>第2层</option>
					<option value=&#34;3&#34;>第3层</option>
				</sel&#101;ct>
				<div id=&#34;c00&#34;>
					<input type=&#34;checkbox&#34; name=&#34;ck00&#34; onclick=&#34;addPreItem(this)&#34; value=&#34;北京&#34;/>北京
					<input type=&#34;checkbox&#34; name=&#34;ck00&#34; onclick=&#34;addPreItem(this)&#34; value=&#34;福建&#34;/>福建
					<input type=&#34;checkbox&#34; name=&#34;ck00&#34; onclick=&#34;addPreItem(this)&#34; value=&#34;四川&#34;/>四川	
					<input type=&#34;checkbox&#34; name=&#34;ck00&#34; onclick=&#34;addPreItem(this)&#34; value=&#34;江苏&#34;/>江苏
				</div>
				<div id=&#34;c01&#34;>
					<input type=&#34;checkbox&#34; name=&#34;ck01&#34; onclick=&#34;addPreItem(this)&#34; value=&#34;上海&#34;/>上海
					<input type=&#34;checkbox&#34; name=&#34;ck01&#34; onclick=&#34;addPreItem(this)&#34; value=&#34;云南&#34;/>云南
					<input type=&#34;checkbox&#34; name=&#34;ck01&#34; onclick=&#34;addPreItem(this)&#34; value=&#34;贵州&#34;/>贵州
				</div>
				<div id=&#34;c02&#34;>
					<input type=&#34;checkbox&#34; name=&#34;ck01&#34; onclick=&#34;addPreItem(this)&#34; value=&#34;黑龙江&#34;/>黑龙江
					<input type=&#34;checkbox&#34; name=&#34;ck01&#34; onclick=&#34;addPreItem(this)&#34; value=&#34;吉林&#34;/>吉林
					<input type=&#34;checkbox&#34; name=&#34;ck01&#34; onclick=&#34;addPreItem(this)&#34; value=&#34;辽宁&#34;/>辽宁
				</div>
				<div id=&#34;c03&#34;>
					<input type=&#34;checkbox&#34; name=&#34;ck01&#34; onclick=&#34;addPreItem(this)&#34; value=&#34;美国&#34;/>美国
					<input type=&#34;checkbox&#34; name=&#34;ck01&#34; onclick=&#34;addPreItem(this)&#34; value=&#34;阿富汗&#34;/>阿富汗
					<input type=&#34;checkbox&#34; name=&#34;ck01&#34; onclick=&#34;addPreItem(this)&#34; value=&#34;日本&#34;/>日本
				</div>
			</div>
		</div>
		<div id=&#34;preview&#34;>
			<div class=&#34;tit bgc_eee c_999&#34;>
				<h2>您已选择的城市</h2>
			</div>	
			<div class=&#34;cont&#34; id=&#34;previewItem&#34;></div>
		</div>
</div>
<script type=&#34;text/javascript&#34;>
var grow = $(&#34;sel&#101;ctSub&#34;).getElementsByTagName(&#34;option&#34;).length; //组数
var showGrow = 0;//已打开组
var sel&#101;ctCount = 0; //已选数量 
showSel&#101;ct(showGrow);
var items = $(&#34;sel&#101;ctSub&#34;).getElementsByTagName(&#34;input&#34;);
//alert(maxItem);
var lenMax = 2; 
//alert(1);
function $(o){ //获取对象
	if(typeof(o) == &#34;string&#34;)
	return document.getElementById(o);
	return o;
}
function openBg(state){ //遮照打开关闭控制
	if(state == 1)
	{
		$(&#34;bg&#34;).style.display = &#34;block&#34;;
		var h = document.body.offsetHeight > document.documentElement.offsetHeight ? document.body.offsetHeight : document.documentElement.offsetHeight;
	//alert(document.body.offsetHeight);
	//alert(document.documentElement.offsetHeight);
		$(&#34;bg&#34;).style.height = h + &#34;px&#34;;
	}
	else
	{
		$(&#34;bg&#34;).style.display = &#34;none&#34;;
	}	
}
function openSel&#101;ct(state){ //选择城市层关闭打开控制
	if(state == 1)	
	{
		$(&#34;sel&#101;ctItem&#34;).style.display = &#34;block&#34;;
		$(&#34;sel&#101;ctItem&#34;).style.left = ($(&#34;bg&#34;).offsetWidth - $(&#34;sel&#101;ctItem&#34;).offsetWidth)/2 + &#34;px&#34;;
		$(&#34;sel&#101;ctItem&#34;).style.top = document.body.scrollTop + 100 + &#34;px&#34;;		
	}
	else
	{
		$(&#34;sel&#101;ctItem&#34;).style.display = &#34;none&#34;;
	}
}
function showSel&#101;ct(id){
	for(var i = 0 ; i < grow ;i++)
	{
		$(&#34;c0&#34; + i).style.display = &#34;none&#34;;
	}
	$(&#34;c0&#34; + id).style.display = &#34;block&#34;;
	showGrow = id;
}
function open(id,state){ //显示隐藏控制
	if(state == 1)
	$(id).style.display = &#34;block&#34;;
	$(id).style.diaplay = &#34;none&#34;;
}
///////////////////////////////////////////////////////////////////////
onload=clear_len
var len = 0 ;
function clear_len(){
len = 0 ;
for(var i = 0 ; i < items.length ; i++)	items[i].checked = false;
}
function addPreItem(o){
	$(&#34;previewItem&#34;).innerHTML = &#34;&#34;;
	len=(o.checked)?len+1:(len>0)?len-1:0
	if(len > lenMax){
		len=lenMax
		o.checked = false;
		alert(&#34;不能超过&#34; + lenMax +&#34;个选项！&#34;);
	}
	for(var i = 0 ; i < items.length ; i++){
		if(items[i].checked == true){
			var mes = &#34;<input type='checkbox' checked='true' value='&#34;+ items[i].value +&#34;' onclick='copyItem(\&#34;previewItem\&#34;,\&#34;previewItem\&#34;);same(this);if(this.value == false)lenMax--;'>&#34; + items[i].value;
			$(&#34;previewItem&#34;).innerHTML += mes;
			//alert(items[i].value);
		}
	}
}
/////////////////////////////////////////////////////////////////////////
function makeSure(){
	//alert(1);
	//$(&#34;makeSureItem&#34;).innerHTML = $(&#34;previewItem&#34;).innerHTML;
	openBg(0);
	openSel&#101;ct(0);
	copyItem(&#34;previewItem&#34;,&#34;makeSureItem&#34;)	
}
function copyItem(id1,id2){
	var mes = &#34;&#34;;
	var items2 = $(id1).getElementsByTagName(&#34;input&#34;);
	for(var i = 0 ; i < items2.length ; i++)
	{
		if(items2[i].checked == true)
		{
			mes += &#34;<input type='checkbox' checked='true' value='&#34;+ items2[i].value +&#34;' onclick='if(this.checked == false){copyItem(\&#34;&#34; + id2+ &#34;\&#34;,\&#34;&#34;+ id2 +&#34;\&#34;);copyItem(\&#34;&#34;+ id2 +&#34;\&#34;,\&#34;previewItem\&#34;);}else{copyItem(\&#34;&#34; + id2+ &#34;\&#34;,\&#34;&#34;+ id2 +&#34;\&#34;);}same(this);if(this.value == false)lenMax--;'>&#34; + items2[i].value;/////////////+ id2+ id1     --- >  + id2+ id2
		}else{
			mes+=&#34;&#34;;
		}
	}
	$(id2).innerHTML = &#34;&#34;;
	$(id2).innerHTML += mes;	
	
}
/////////////////////////////////////////////////////////////
function same(ck){
	len--
	for(var i = 0 ; i < items.length ; i++)
	{
		if(ck.value == items[i].value)
		{
			items[i].checked = ck.checked;
		}
	}
}
/////////////////////////////////////////////////////////////
/* 鼠标拖动 */
var oDrag = &#34;&#34;;
var ox,oy,nx,ny,dy,dx;
function drag(e,o){
	var e = e ? e : event;
	var mouseD = document.all ? 1 : 0;
	if(e.button == mouseD)
	{
		oDrag = o.parentNode;
		//alert(oDrag.id);
		ox = e.clientX;
		oy = e.clientY;		
	}
}
function dragPro(e){
	if(oDrag != &#34;&#34;)
	{	
		var e = e ? e : event;
		//$(oDrag).style.left = $(oDrag).offsetLeft + &#34;px&#34;;
		//$(oDrag).style.top = $(oDrag).offsetTop + &#34;px&#34;;
		dx = parseInt($(oDrag).style.left);
		dy = parseInt($(oDrag).style.top);
		//dx = $(oDrag).offsetLeft;
		//dy = $(oDrag).offsetTop;
		nx = e.clientX;
		ny = e.clientY;
		$(oDrag).style.left = (dx + ( nx - ox )) + &#34;px&#34;;
		$(oDrag).style.top = (dy + ( ny - oy )) + &#34;px&#34;;
		ox = nx;
		oy = ny;
	}
}
document.onmouseup = function(){oDrag = &#34;&#34;;}
document.onmousemove = function(event){dragPro(event);}
</script>
</body>
</html>
</TEXTAREA><br/><INPUT onclick="runEx('temp89060')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp89060')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp89060')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.51oyf.com/article/Js/93.html" /> 
	  <id>http://www.51oyf.com/default.asp?id=93</id>
  </entry>	
		
</feed>
