Files
rappaurio-sae501_502/app/node_modules/cejs/_documents/JsDoc/symbols/src/D__USB_cgi-bin_lib_JS_net_form.origin.js.html
2023-09-25 13:27:24 +02:00

1676 lines
362 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style>
.KEYW {color: #933;}
.COMM {color: #bbb; font-style: italic;}
.NUMB {color: #393;}
.STRN {color: #393;}
.REGX {color: #339;}
.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
</style></head><body><pre><span class='line'> 1</span> <span class="TOKN"></span><span class="WHIT">
<span class='line'> 2</span> </span><span class="COMM">/**
<span class='line'> 3</span> * @name CeL form function
<span class='line'> 4</span> * @fileoverview
<span class='line'> 5</span> * 本檔案包含了 form 的 functions。
<span class='line'> 6</span> * @since
<span class='line'> 7</span> */</span><span class="WHIT">
<span class='line'> 8</span>
<span class='line'> 9</span>
<span class='line'> 10</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">CeL</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 11</span>
<span class='line'> 12</span> </span><span class="COMM">/**
<span class='line'> 13</span> * 本 module 之 name(id)&lt;span style="text-decoration:line-through;">不設定時會從呼叫時之 path 取得&lt;/span>。
<span class='line'> 14</span> * @type String
<span class='line'> 15</span> * @constant
<span class='line'> 16</span> * @inner
<span class='line'> 17</span> * @ignore
<span class='line'> 18</span> */</span><span class="WHIT">
<span class='line'> 19</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">module_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'net.form'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 20</span>
<span class='line'> 21</span> </span><span class="COMM">//===================================================</span><span class="WHIT">
<span class='line'> 22</span> </span><span class="COMM">/**
<span class='line'> 23</span> * 若欲 include 整個 module 時,需囊括之 code。
<span class='line'> 24</span> * @type Function
<span class='line'> 25</span> * @param {Function} library_namespace namespace of library
<span class='line'> 26</span> * @param load_arguments 呼叫時之 argument(s)
<span class='line'> 27</span> * @return
<span class='line'> 28</span> * @name CeL.net.form
<span class='line'> 29</span> * @constant
<span class='line'> 30</span> * @inner
<span class='line'> 31</span> * @ignore
<span class='line'> 32</span> */</span><span class="WHIT">
<span class='line'> 33</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">code_for_including</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">library_namespace</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">load_arguments</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 34</span>
<span class='line'> 35</span>
<span class='line'> 36</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_module_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">module_name</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 37</span> </span><span class="COMM">//requires</span><span class="WHIT">
<span class='line'> 38</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">library_namespace.use</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'data'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'net.web'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">module_name</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'> 39</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 40</span> </span><span class="COMM">// module_name 會被重設</span><span class="WHIT">
<span class='line'> 41</span> </span><span class="NAME">module_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_module_name</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 42</span>
<span class='line'> 43</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">XML_node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">library_namespace.net.web.XML_node</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 44</span> </span><span class="NAME">set_attribute</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">library_namespace.net.web.set_attribute</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 45</span> </span><span class="NAME">remove_all_child</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">library_namespace.net.web.remove_all_child</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 46</span> </span><span class="NAME">set_class</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">library_namespace.net.web.set_class</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 47</span> </span><span class="NAME">split_String_to_Object</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">library_namespace.data.split_String_to_Object</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 48</span>
<span class='line'> 49</span>
<span class='line'> 50</span> </span><span class="COMM">/**
<span class='line'> 51</span> * null module constructor
<span class='line'> 52</span> * @class form 的 functions
<span class='line'> 53</span> */</span><span class="WHIT">
<span class='line'> 54</span> </span><span class="NAME">CeL.net.form</span><span class="WHIT">
<span class='line'> 55</span> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 56</span> </span><span class="WHIT"> </span><span class="COMM">// null module constructor</span><span class="WHIT">
<span class='line'> 57</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 58</span>
<span class='line'> 59</span> </span><span class="COMM">/**
<span class='line'> 60</span> * for JSDT: 有 prototype 才會將之當作 Class
<span class='line'> 61</span> */</span><span class="WHIT">
<span class='line'> 62</span> </span><span class="NAME">CeL.net.form</span><span class="WHIT">
<span class='line'> 63</span> </span><span class="PUNC">.</span><span class="NAME">prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 64</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 65</span>
<span class='line'> 66</span>
<span class='line'> 67</span>
<span class='line'> 68</span>
<span class='line'> 69</span>
<span class='line'> 70</span> </span><span class="COMM">/* 延遲執行: 加強版的 setTimeout
<span class='line'> 71</span>
<span class='line'> 72</span> id=delayRun(function[,ms=0])
<span class='line'> 73</span>
<span class='line'> 74</span> id=delayRun([function,[args],this] [,ms=0])
<span class='line'> 75</span>
<span class='line'> 76</span> */</span><span class="WHIT">
<span class='line'> 77</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">delayRun</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">,</span><span class="NAME">ms</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 78</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="PUNC">=</span><span class="NAME">arguments.callee</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 79</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_f.fL</span><span class="PUNC">)</span><span class="NAME">_f.fL</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 80</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">_f.fL.length</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 81</span> </span><span class="WHIT"> </span><span class="NAME">_f.fL.push</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 82</span> </span><span class="WHIT"> </span><span class="NAME">setTimeout</span><span class="PUNC">(</span><span class="STRN">'delayRun.run('</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">');'</span><span class="PUNC">,</span><span class="NAME">ms</span><span class="PUNC">||</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 83</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 84</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'> 85</span> </span><span class="NAME">delayRun.clear</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 86</span> </span><span class="WHIT"> </span><span class="COMM">// clearTimeout(): 為求簡單省略</span><span class="WHIT">
<span class='line'> 87</span> </span><span class="WHIT"> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">this.fL</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 88</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 89</span> </span><span class="NAME">delayRun.run</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 90</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">_t.fL</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 91</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 92</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="NAME">f</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 93</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">f</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="NAME">f</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">apply</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="KEYW">null</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 94</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">eval</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 95</span> </span><span class="WHIT"> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">_t.fL</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 96</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'> 97</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 98</span>
<span class='line'> 99</span>
<span class='line'>100</span>
<span class='line'>101</span> </span><span class="COMM">// 簡易型 createE</span><span class="WHIT">
<span class='line'>102</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">createO</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">classN</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// p.appendChild tag, text t,className classN</span><span class="WHIT">
<span class='line'>103</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_e</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>104</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Object</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>105</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">document.createTextNode</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">+</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>106</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">tag</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>107</span> </span><span class="WHIT"> </span><span class="NAME">_e</span><span class="PUNC">=</span><span class="NAME">tag</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>108</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>109</span> </span><span class="WHIT"> </span><span class="NAME">_e</span><span class="PUNC">=</span><span class="NAME">document.createElement</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>110</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">classN</span><span class="PUNC">)</span><span class="NAME">_e.className</span><span class="PUNC">=</span><span class="NAME">classN</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>111</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="NAME">_e.appendChild</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>112</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="NAME">_e</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>113</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">&&</span><span class="NAME">_e</span><span class="PUNC">)</span><span class="NAME">p.appendChild</span><span class="PUNC">(</span><span class="NAME">_e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>114</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_e</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>115</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>116</span>
<span class='line'>117</span>
<span class='line'>118</span> </span><span class="COMM">/* 2008/9/3 23:31:21
<span class='line'>119</span> get scrollbar height http://jdsharp.us/jQuery/minute/calculate-scrollbar-width.php
<span class='line'>120</span> */</span><span class="WHIT">
<span class='line'>121</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">scrollbarWidth</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>122</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_f</span><span class="PUNC">=</span><span class="NAME">arguments.callee</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>123</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_f.w</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>124</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">w</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">,</span><span class="NAME">document.body</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">,</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">p.style</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>125</span> </span><span class="WHIT"> </span><span class="NAME">s.width</span><span class="PUNC">=</span><span class="NAME">s.height</span><span class="PUNC">=</span><span class="STRN">'80px'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>126</span> </span><span class="WHIT"> </span><span class="COMM">//c.style.width='100%'; // 有時沒這行才出得來</span><span class="WHIT">
<span class='line'>127</span> </span><span class="WHIT"> </span><span class="NAME">s.overflow</span><span class="PUNC">=</span><span class="STRN">'hidden'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>128</span> </span><span class="WHIT"> </span><span class="NAME">w</span><span class="PUNC">=</span><span class="NAME">c.offsetWidth</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>129</span> </span><span class="WHIT"> </span><span class="NAME">s.overflow</span><span class="PUNC">=</span><span class="STRN">'scroll'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>130</span> </span><span class="WHIT"> </span><span class="NAME">_f.w</span><span class="PUNC">=</span><span class="NAME">w</span><span class="PUNC">-</span><span class="NAME">c.offsetWidth</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>131</span> </span><span class="WHIT"> </span><span class="COMM">//sl('scrollbarWidth: '+w+'-'+c.offsetWidth+'='+_f.w);</span><span class="WHIT">
<span class='line'>132</span> </span><span class="WHIT"> </span><span class="NAME">document.body.removeChild</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>133</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>134</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_f.w</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>135</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>136</span>
<span class='line'>137</span>
<span class='line'>138</span> </span><span class="COMM">/* 2008/9/3 23:31:29
<span class='line'>139</span> scroll 到可以看到 object
<span class='line'>140</span>
<span class='line'>141</span> TODO:
<span class='line'>142</span> 考慮可能沒 scrollbar
<span class='line'>143</span> 包括橫向
<span class='line'>144</span> */</span><span class="WHIT">
<span class='line'>145</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">scrollToShow</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// (object, parentNode to scroll)</span><span class="WHIT">
<span class='line'>146</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">p</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">;</span><span class="KEYW">while</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">=</span><span class="NAME">p.parentNode</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="NAME">p.offsetHeight</span><span class="PUNC">==</span><span class="NAME">p.scrollHeight</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>147</span> </span><span class="WHIT"> </span><span class="COMM">//sl('scrollToShow: '+p.scrollTop+', '+p.scrollHeight+', '+p.offsetHeight+', '+o.offsetTop);</span><span class="WHIT">
<span class='line'>148</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>149</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">o.offsetTop</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">&lt;</span><span class="NAME">p.scrollTop</span><span class="PUNC">)</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>150</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">o.offsetTop</span><span class="PUNC">+</span><span class="NAME">o.offsetHeight</span><span class="PUNC">-</span><span class="NAME">p.offsetHeight</span><span class="PUNC">+</span><span class="NAME">scrollbarWidth</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">></span><span class="NAME">p.scrollTop</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>151</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">o.offsetTop</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">&lt;</span><span class="NAME">s</span><span class="PUNC">)</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>152</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">p.scrollTop</span><span class="PUNC">=</span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>153</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>154</span>
<span class='line'>155</span>
<span class='line'>156</span> </span><span class="KEYW">var</span><span class="WHIT">
<span class='line'>157</span> </span><span class="COMM">//ClassT={AccountF:{},AddressF:{}}, // class template set</span><span class="WHIT">
<span class='line'>158</span>
<span class='line'>159</span> </span><span class="COMM">/*
<span class='line'>160</span> JavaScript 地址輸入表單支援 (address input form)
<span class='line'>161</span> 現有台灣可用。
<span class='line'>162</span> AddressF.TW
<span class='line'>163</span> */</span><span class="WHIT">
<span class='line'>164</span> </span><span class="NAME">AddressF</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>165</span> </span><span class="NAME">AccountF</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>166</span>
<span class='line'>167</span>
<span class='line'>168</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>169</span> </span><span class="COMM">/*
<span class='line'>170</span>
<span class='line'>171</span> {
<span class='line'>172</span> title: '',
<span class='line'>173</span> name: '',
<span class='line'>174</span> container: 'id' | obj,
<span class='line'>175</span> list: [] | {} | {group1:{}, group2:[],.. },
<span class='line'>176</span> default: '' | [],
<span class='line'>177</span> type: 'select' | 'radio' | 'checkbox',
<span class='line'>178</span> }
<span class='line'>179</span>
<span class='line'>180</span> return &lt;select>
<span class='line'>181</span>
<span class='line'>182</span>
<span class='line'>183</span> TODO:
<span class='line'>184</span> 複選 &lt;select>
<span class='line'>185</span> &lt;radio>
<span class='line'>186</span> &lt;checkbox>
<span class='line'>187</span> +&lt;label>
<span class='line'>188</span> autocomplete: 假如所有備取 list 都有一樣的 prefix則自動完成。
<span class='line'>189</span> 把後面的用反白自動完成。
<span class='line'>190</span>
<span class='line'>191</span> 在 list 上下安排三角onmouseover 即可自動滾動。
<span class='line'>192</span>
<span class='line'>193</span> color panel
<span class='line'>194</span>
<span class='line'>195</span> http://www.itlearner.com/code/js_ref/choi3.htm
<span class='line'>196</span> selectName.options[i]=new Options("option_value","option_Text", defaultSelected, selected);
<span class='line'>197</span> */</span><span class="WHIT">
<span class='line'>198</span>
<span class='line'>199</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">menuCreater</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// container object, list</span><span class="WHIT">
<span class='line'>200</span>
<span class='line'>201</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>202</span>
<span class='line'>203</span>
<span class='line'>204</span>
<span class='line'>205</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>206</span>
<span class='line'>207</span> </span><span class="COMM">// ===================================================</span><span class="WHIT">
<span class='line'>208</span>
<span class='line'>209</span> </span><span class="COMM">/*
<span class='line'>210</span> 提供有選單的 input
<span class='line'>211</span>
<span class='line'>212</span> _=this
<span class='line'>213</span>
<span class='line'>214</span> TODO:
<span class='line'>215</span> 浮水印 background-image:url();
<span class='line'>216</span>
<span class='line'>217</span>
<span class='line'>218</span> HISTORY:
<span class='line'>219</span> 2008/7/22 0:38:14 create
<span class='line'>220</span> 7/27 22:55:18 verify()
<span class='line'>221</span> 8/7 21:18:47 attach()
<span class='line'>222</span> */</span><span class="WHIT">
<span class='line'>223</span> </span><span class="KEYW">var</span><span class="WHIT">
<span class='line'>224</span> </span><span class="NAME">ChooseI</span><span class="PUNC">=</span><span class="WHIT">
<span class='line'>225</span>
<span class='line'>226</span> </span><span class="PUNC">(</span><span class="COMM">/*ClassT.ChooseI=*/</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">initF</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>227</span>
<span class='line'>228</span> </span><span class="KEYW">var</span><span class="WHIT">
<span class='line'>229</span>
<span class='line'>230</span> </span><span class="COMM">// class private -----------------------------------</span><span class="WHIT">
<span class='line'>231</span>
<span class='line'>232</span>
<span class='line'>233</span> </span><span class="COMM">/* 可紀錄的 set class name不過對大多數人來說更常用的是 instance.setClassName
<span class='line'>234</span>
<span class='line'>235</span> usage:
<span class='line'>236</span> (item[, obj]) set obj to className item, return real className that setted
<span class='line'>237</span> (0,'prefix') set prefix & 重設(全部重跑)
<span class='line'>238</span> */</span><span class="WHIT">
<span class='line'>239</span> </span><span class="NAME">setClassName</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">noRec</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// (0, prefix) or (item, object)</span><span class="WHIT">
<span class='line'>240</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">_.classNameSet</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>241</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_t.settedClass</span><span class="PUNC">)</span><span class="NAME">_t.settedClass</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>242</span>
<span class='line'>243</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">||</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>244</span> </span><span class="WHIT"> </span><span class="COMM">// 設定並回傳 className</span><span class="WHIT">
<span class='line'>245</span> </span><span class="WHIT"> </span><span class="COMM">//sl('setClassName: test '+'class_'+i+': '+('class_'+i in _t?'&lt;em>YES&lt;/em>':'none'));</span><span class="WHIT">
<span class='line'>246</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">?</span><span class="WHIT">
<span class='line'>247</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="STRN">'~'</span><span class="PUNC">?</span><span class="NAME">s.prefix</span><span class="PUNC">+</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="WHIT">
<span class='line'>248</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="WHIT">
<span class='line'>249</span> </span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT">
<span class='line'>250</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>251</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="STRN">'class_'</span><span class="PUNC">+</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>252</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">==</span><span class="STRN">'error'</span><span class="PUNC">||</span><span class="NAME">i</span><span class="PUNC">==</span><span class="STRN">'warning'</span><span class="PUNC">)</span><span class="NAME">s.unshift</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">[</span><span class="STRN">'class_'</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>253</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">s.push</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">[</span><span class="STRN">'class_'</span><span class="PUNC">+</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>254</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">s.join</span><span class="PUNC">(</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>255</span> </span><span class="WHIT"> </span><span class="COMM">//sl('setClassName: set '+o+(s?' to ['+s+']':', &lt;em>There is no ['+i+'] in classNameSet or instance set.&lt;/em>'));</span><span class="WHIT">
<span class='line'>256</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">o.className</span><span class="PUNC">=</span><span class="NAME">s</span><span class="PUNC">,</span><span class="PUNC">!</span><span class="NAME">noRec</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>257</span> </span><span class="WHIT"> </span><span class="NAME">_t.settedClass.push</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>258</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>259</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>260</span>
<span class='line'>261</span> </span><span class="WHIT"> </span><span class="NAME">s.prefix</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>262</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">_t.settedClass</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>263</span> </span><span class="WHIT"> </span><span class="COMM">// 重設(全部重跑)</span><span class="WHIT">
<span class='line'>264</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">o.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>265</span> </span><span class="WHIT"> </span><span class="NAME">_f.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>266</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>267</span>
<span class='line'>268</span> </span><span class="NAME">funcButton</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">,</span><span class="NAME">title</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// add text t, function f to instance _t</span><span class="WHIT">
<span class='line'>269</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'span'</span><span class="PUNC">,</span><span class="NAME">_p.listO</span><span class="PUNC">,</span><span class="STRN">'['</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>270</span> </span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'functionB'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>271</span> </span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'span'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>272</span> </span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'functionT'</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>273</span> </span><span class="WHIT"> </span><span class="NAME">b.title</span><span class="PUNC">=</span><span class="NAME">title</span><span class="PUNC">,</span><span class="NAME">b.onclick</span><span class="PUNC">=</span><span class="NAME">f</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>274</span> </span><span class="WHIT"> </span><span class="NAME">createO</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">,</span><span class="STRN">']'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>275</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>276</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>277</span>
<span class='line'>278</span> </span><span class="COMM">// 簡易型</span><span class="WHIT">
<span class='line'>279</span> </span><span class="NAME">removeAllChild</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>280</span> </span><span class="WHIT"> </span><span class="NAME">o.innerHTML</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>281</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>282</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>283</span>
<span class='line'>284</span> </span><span class="COMM">// show/hide list</span><span class="WHIT">
<span class='line'>285</span> </span><span class="NAME">showList</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">show</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// ():get, 0:hide, 1:show</span><span class="WHIT">
<span class='line'>286</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">_p.listO</span><span class="PUNC">,</span><span class="NAME">s</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>287</span>
<span class='line'>288</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>289</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">o.style</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>290</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">show</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>291</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">getObjLoc</span><span class="PUNC">(</span><span class="NAME">_p.inputO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>292</span> </span><span class="WHIT"> </span><span class="NAME">s.top</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="NAME">c</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="NUMB">2</span><span class="PUNC">+</span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>293</span> </span><span class="WHIT"> </span><span class="NAME">s.left</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>294</span>
<span class='line'>295</span> </span><span class="WHIT"> </span><span class="NAME">s.width</span><span class="PUNC">=</span><span class="NAME">_p.inputO.offsetWidth</span><span class="PUNC">+</span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>296</span> </span><span class="WHIT"> </span><span class="NAME">s.height</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// reset</span><span class="WHIT">
<span class='line'>297</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">s.display</span><span class="PUNC">=</span><span class="STRN">'block'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>298</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_t.maxListHeight</span><span class="PUNC">&&</span><span class="NAME">o.offsetHeight</span><span class="PUNC">></span><span class="NAME">_t.maxListHeight</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>299</span> </span><span class="WHIT"> </span><span class="NAME">s.height</span><span class="PUNC">=</span><span class="NAME">_t.maxListHeight</span><span class="PUNC">+</span><span class="STRN">'px'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>300</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">show</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>301</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">s.display</span><span class="PUNC">=</span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>302</span>
<span class='line'>303</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>304</span> </span><span class="WHIT"> </span><span class="NAME">createO</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">removeAllChild</span><span class="PUNC">(</span><span class="NAME">_p.arrowO</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_.textSet</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">!=</span><span class="STRN">'none'</span><span class="PUNC">?</span><span class="STRN">'hideList'</span><span class="PUNC">:</span><span class="STRN">'showList'</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>305</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">s.display</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>306</span>
<span class='line'>307</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">!=</span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>308</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>309</span>
<span class='line'>310</span>
<span class='line'>311</span> </span><span class="COMM">/* 準備選擇清單的某一項
<span class='line'>312</span> TODO:
<span class='line'>313</span> 自動完成
<span class='line'>314</span> 到最後若可能自動轉到全部
<span class='line'>315</span>
<span class='line'>316</span> */</span><span class="WHIT">
<span class='line'>317</span> </span><span class="NAME">cK</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// control key pressed</span><span class="WHIT">
<span class='line'>318</span> </span><span class="NAME">readyTo</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>319</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">e</span><span class="PUNC">)</span><span class="NAME">e</span><span class="PUNC">=</span><span class="NAME">event</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>320</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">,</span><span class="NAME">gI</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>321</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">&&</span><span class="COMM">/*(can_use_special_attribute?o.getAttribute("sIndex"):o.sIndex)*/</span><span class="NAME">o.sIndex</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>322</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>323</span> </span><span class="WHIT"> </span><span class="COMM">//sl('readyTo: '+e.type+', key: '+(e.keyCode||e.which||e.charCode)+', _p.listA: '+(_p.listA&&_p.listA.length));</span><span class="WHIT">
<span class='line'>324</span>
<span class='line'>325</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_p.listA</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">_p.listA.length</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>326</span>
<span class='line'>327</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">e.type</span><span class="PUNC">==</span><span class="STRN">'mouseover'</span><span class="PUNC">||</span><span class="NAME">e.type</span><span class="PUNC">==</span><span class="STRN">'mouseout'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>328</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_p.readyItem</span><span class="PUNC">)</span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'item'</span><span class="PUNC">,</span><span class="NAME">_p.readyItem</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>329</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">e.type</span><span class="PUNC">==</span><span class="STRN">'mouseover'</span><span class="PUNC">)</span><span class="NAME">c</span><span class="PUNC">=</span><span class="STRN">'item_select'</span><span class="PUNC">,</span><span class="NAME">_p.readyItem</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>330</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="STRN">'item'</span><span class="PUNC">,</span><span class="NAME">_p.readyItem</span><span class="PUNC">===</span><span class="NAME">o</span><span class="PUNC">)</span><span class="NAME">_p.readyItem</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>331</span> </span><span class="WHIT"> </span><span class="COMM">// 需更改 _p.inputO.onkeyup 以防止重新 list!!</span><span class="WHIT">
<span class='line'>332</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">e.keyCode</span><span class="PUNC">||</span><span class="NAME">e.which</span><span class="PUNC">||</span><span class="NAME">e.charCode</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">13</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>333</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_p.readyItem</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>334</span> </span><span class="WHIT"> </span><span class="COMM">//sl('readyTo: 以鍵盤選擇: '+_p.readyItem.innerHTML);</span><span class="WHIT">
<span class='line'>335</span> </span><span class="WHIT"> </span><span class="NAME">cK</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">,</span><span class="NAME">_p.readyItem.onclick</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 用 .click() 無效!</span><span class="WHIT">
<span class='line'>336</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>337</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>338</span> </span><span class="WHIT"> </span><span class="COMM">// key input 用鍵盤控制上下 ←↑→↓: 37~40</span><span class="WHIT">
<span class='line'>339</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">38</span><span class="PUNC">||</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">40</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>340</span> </span><span class="WHIT"> </span><span class="NAME">cK</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>341</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">_p.readyItem</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>342</span> </span><span class="WHIT"> </span><span class="COMM">//sl('readyTo: 以鍵盤移至: '+(o&&(o.getAttribute("sIndex")+','+o.sIndex)));</span><span class="WHIT">
<span class='line'>343</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">)</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">_p.listA</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">40</span><span class="PUNC">?</span><span class="NUMB">0</span><span class="PUNC">:</span><span class="NAME">_p.listA.length</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>344</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>345</span> </span><span class="WHIT"> </span><span class="COMM">//if(!o.getAttribute)throw 1; IE 可用 getAttributeFF 或許在 appendChild 之後屬性重設?,得用 o.sIndex</span><span class="WHIT">
<span class='line'>346</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">gI</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">38</span><span class="PUNC">?</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>347</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">&lt;</span><span class="NUMB">0</span><span class="PUNC">||</span><span class="NAME">c</span><span class="PUNC">>=</span><span class="NAME">_p.listA.length</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>348</span>
<span class='line'>349</span> </span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'item'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>350</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">_p.listA</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>351</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>352</span> </span><span class="WHIT"> </span><span class="NAME">_p.readyItem</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>353</span>
<span class='line'>354</span> </span><span class="WHIT"> </span><span class="NAME">scrollToShow</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">_p.listO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>355</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="STRN">'item_select'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>356</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">35</span><span class="PUNC">||</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">36</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// 35: End, 36: Home</span><span class="WHIT">
<span class='line'>357</span> </span><span class="WHIT"> </span><span class="NAME">cK</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>358</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">_p.readyItem</span><span class="PUNC">)</span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'item'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>359</span> </span><span class="WHIT"> </span><span class="NAME">_p.readyItem</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">_p.listA</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">36</span><span class="PUNC">?</span><span class="NUMB">0</span><span class="PUNC">:</span><span class="NAME">_p.listA.length</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>360</span> </span><span class="WHIT"> </span><span class="NAME">scrollToShow</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">_p.listO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>361</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="STRN">'item_select'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>362</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">33</span><span class="PUNC">||</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">34</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// 33: PageUP, 34: PageDown</span><span class="WHIT">
<span class='line'>363</span> </span><span class="WHIT"> </span><span class="NAME">cK</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>364</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">_p.readyItem</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>365</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>366</span> </span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'item'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>367</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">gI</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>368</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">33</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>369</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">_p.listO.scrollTop</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>370</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">&&</span><span class="NAME">_p.listA</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">offsetTop</span><span class="PUNC">></span><span class="NAME">t</span><span class="PUNC">)</span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>371</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>372</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">_p.listO.scrollTop</span><span class="PUNC">+</span><span class="NAME">_p.listO.offsetHeight</span><span class="PUNC">-</span><span class="NAME">scrollbarWidth</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>373</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">_p.listA.length</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">&&</span><span class="NAME">_p.listA</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">offsetTop</span><span class="PUNC">&lt;</span><span class="NAME">t</span><span class="PUNC">)</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>374</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>375</span> </span><span class="WHIT"> </span><span class="COMM">//sl('readyTo: Page: '+i+', top: '+t+', scroll: '+_p.listO.scrollTop);</span><span class="WHIT">
<span class='line'>376</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">==</span><span class="NAME">gI</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>377</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">33</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>378</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">-</span><span class="PUNC">=</span><span class="NAME">_p.listO.offsetHeight</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>379</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">&lt;</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>380</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">&&</span><span class="NAME">_p.listA</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">offsetTop</span><span class="PUNC">></span><span class="NAME">t</span><span class="PUNC">)</span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>381</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>382</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">_p.listO.offsetHeight</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>383</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">_p.listA.length</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">&&</span><span class="NAME">_p.listA</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">offsetTop</span><span class="PUNC">&lt;</span><span class="NAME">t</span><span class="PUNC">)</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>384</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>385</span> </span><span class="WHIT"> </span><span class="COMM">//sl('readyTo: Page: '+i+', top: '+t+', height: '+_p.listO.offsetHeight);</span><span class="WHIT">
<span class='line'>386</span> </span><span class="WHIT"> </span><span class="NAME">_p.readyItem</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">_p.listA</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>387</span> </span><span class="WHIT"> </span><span class="NAME">scrollToShow</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">_p.listO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>388</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="STRN">'item_select'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>389</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>390</span>
<span class='line'>391</span> </span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>392</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>393</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>394</span>
<span class='line'>395</span> </span><span class="COMM">//can_use_special_attribute,</span><span class="WHIT">
<span class='line'>396</span>
<span class='line'>397</span> </span><span class="COMM">// 顯示清單的工具函數</span><span class="WHIT">
<span class='line'>398</span> </span><span class="NAME">setList</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">force</span><span class="PUNC">,</span><span class="NAME">limit</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>399</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>400</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">limit</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">limit</span><span class="PUNC">=</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">_t.maxList</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="NAME">_.maxList</span><span class="PUNC">:</span><span class="NAME">_t.maxList</span><span class="PUNC">||</span><span class="NAME">Number.MAX_VALUE</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>401</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">f</span><span class="PUNC">)</span><span class="NAME">f</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>402</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">_t.onList</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>403</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>404</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>405</span> </span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'item'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>406</span> </span><span class="WHIT"> </span><span class="NAME">o.title</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>407</span> </span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>408</span> </span><span class="WHIT"> </span><span class="NAME">o.onmouseover</span><span class="PUNC">=</span><span class="NAME">o.onmouseout</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">readyTo.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NAME">e</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>409</span> </span><span class="WHIT"> </span><span class="NAME">o.onclick</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">=</span><span class="NAME">_t.onSelect</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">_t.setValue</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">_t.onInput</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>410</span>
<span class='line'>411</span> </span><span class="WHIT"> </span><span class="COMM">// 這邊本來放在下面 for 的地方</span><span class="WHIT">
<span class='line'>412</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">++</span><span class="PUNC">,</span><span class="NAME">_p.listO.appendChild</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>413</span> </span><span class="WHIT"> </span><span class="COMM">//if(!can_use_special_attribute){o.setAttribute("sIndex",1);can_use_special_attribute=o.getAttribute("sIndex")?1:-1;}</span><span class="WHIT">
<span class='line'>414</span> </span><span class="WHIT"> </span><span class="COMM">//if(can_use_special_attribute==1)o.setAttribute("sIndex",_p.listA.length);else o.sIndex=_p.listA.length;</span><span class="WHIT">
<span class='line'>415</span> </span><span class="WHIT"> </span><span class="NAME">o.sIndex</span><span class="PUNC">=</span><span class="NAME">_p.listA.length</span><span class="PUNC">;</span><span class="COMM">//o.setAttribute("sIndex",o.sIndex=_p.listA.length);</span><span class="WHIT">
<span class='line'>416</span> </span><span class="WHIT"> </span><span class="NAME">_p.listA.push</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>417</span>
<span class='line'>418</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>419</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>420</span>
<span class='line'>421</span> </span><span class="WHIT"> </span><span class="COMM">//_t.showList(0);</span><span class="WHIT">
<span class='line'>422</span>
<span class='line'>423</span> </span><span class="WHIT"> </span><span class="NAME">_p.listO</span><span class="PUNC">=</span><span class="NAME">removeAllChild</span><span class="PUNC">(</span><span class="NAME">_p.listO</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_p.listA</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">_p.readyItem</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>424</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">l</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>425</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">l.length</span><span class="PUNC">&&</span><span class="NAME">c</span><span class="PUNC">&lt;</span><span class="NAME">limit</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>426</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>427</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT">
<span class='line'>428</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>429</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">&lt;</span><span class="NAME">limit</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>430</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>431</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>432</span>
<span class='line'>433</span> </span><span class="WHIT"> </span><span class="COMM">//sl('setList: list '+c+' items, key '+k+'=?'+_t.setValue());</span><span class="WHIT">
<span class='line'>434</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">1</span><span class="PUNC">&&</span><span class="NAME">_t.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="NAME">k</span><span class="PUNC">)</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 僅有一個且與 key 相同</span><span class="WHIT">
<span class='line'>435</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">force</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">c</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 無 list</span><span class="WHIT">
<span class='line'>436</span>
<span class='line'>437</span> </span><span class="WHIT"> </span><span class="COMM">// add function</span><span class="WHIT">
<span class='line'>438</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">!=</span><span class="NAME">_t.allListCount</span><span class="PUNC">)</span><span class="NAME">funcButton</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NAME">_.textSet.allBtn</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">_t.doFunc</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="NAME">_t.focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">_t.setList</span><span class="PUNC">(</span><span class="NAME">_t.setAllList</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">Number.MAX_VALUE</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="STRN">'顯示全部 '</span><span class="PUNC">+</span><span class="NAME">_t.allListCount</span><span class="PUNC">+</span><span class="STRN">' 列表。'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>439</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_t.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">funcButton</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NAME">_.textSet.clearBtn</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">_t.doFunc</span><span class="PUNC">=</span><span class="NUMB">2</span><span class="PUNC">;</span><span class="NAME">_t.focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">_t.onInput</span><span class="PUNC">(</span><span class="NAME">_t.setValue</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="STRN">'清除輸入內容,重新列表。'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>440</span> </span><span class="WHIT"> </span><span class="NAME">funcButton</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NAME">_.textSet.closeBtn</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">_t.doFunc</span><span class="PUNC">=</span><span class="NUMB">3</span><span class="PUNC">;</span><span class="NAME">_t.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="STRN">'close menu \n關閉列表'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>441</span>
<span class='line'>442</span> </span><span class="WHIT"> </span><span class="NAME">showList.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>443</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_t.listCount</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>444</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>445</span>
<span class='line'>446</span> </span><span class="COMM">// return verify 之後的 key(&lt;input>) 值</span><span class="WHIT">
<span class='line'>447</span> </span><span class="NAME">do_verify</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>448</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">_t.verify</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">||</span><span class="NAME">_t.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>449</span> </span><span class="WHIT"> </span><span class="COMM">//sl('do_verify: input status: '+(c==1?'warning':c==2?'error':'OK'));</span><span class="WHIT">
<span class='line'>450</span>
<span class='line'>451</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="NAME">_t.setValue</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 可以設定 key 值!</span><span class="WHIT">
<span class='line'>452</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">1</span><span class="PUNC">?</span><span class="STRN">'warning'</span><span class="PUNC">:</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">2</span><span class="PUNC">?</span><span class="STRN">'error'</span><span class="PUNC">:</span><span class="STRN">'input'</span><span class="PUNC">,</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">inputO</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>453</span>
<span class='line'>454</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>455</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>456</span>
<span class='line'>457</span> </span><span class="COMM">// 簡易設定常用的 onInput 型式</span><span class="WHIT">
<span class='line'>458</span> </span><span class="NAME">searchInList</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// o: 傳入 (list, index, key)</span><span class="WHIT">
<span class='line'>459</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>460</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">f</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">_.searchFunctionSet</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">_.searchFunctionSet</span><span class="PUNC">[</span><span class="NAME">f</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>461</span>
<span class='line'>462</span> </span><span class="WHIT"> </span><span class="COMM">// 因為允許傳入 list所以不能在這邊用 _t.setAllList() 判別函數,而得要寫一個泛用的。</span><span class="WHIT">
<span class='line'>463</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_t.onInput</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">,</span><span class="NAME">L</span><span class="PUNC">,</span><span class="NAME">force</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>464</span> </span><span class="WHIT"> </span><span class="COMM">//sl('searchInList, onInput: search ['+k+'] use '+f);</span><span class="WHIT">
<span class='line'>465</span>
<span class='line'>466</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">L</span><span class="PUNC">)</span><span class="NAME">L</span><span class="PUNC">=</span><span class="NAME">_t.setAllList</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>467</span> </span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">=</span><span class="NAME">do_verify.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">||</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>468</span>
<span class='line'>469</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>470</span>
<span class='line'>471</span> </span><span class="WHIT"> </span><span class="COMM">//sl('searchInList: search '+(L instanceof Array?'array':'object'));</span><span class="WHIT">
<span class='line'>472</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">L</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>473</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="COMM">//new L.constructor();</span><span class="WHIT">
<span class='line'>474</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">L.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>475</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">?</span><span class="NAME">f</span><span class="PUNC">(</span><span class="NAME">L</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="NAME">L</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">&&</span><span class="NAME">f</span><span class="PUNC">(</span><span class="NAME">L</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">l.push</span><span class="PUNC">(</span><span class="NAME">L</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// search value</span><span class="WHIT">
<span class='line'>476</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>477</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>478</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">L</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>479</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">?</span><span class="NAME">f</span><span class="PUNC">(</span><span class="NAME">L</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="NAME">i</span><span class="PUNC">&&</span><span class="NAME">f</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="NAME">L</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">&&</span><span class="NAME">f</span><span class="PUNC">(</span><span class="NAME">L</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">L</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// search key+value</span><span class="WHIT">
<span class='line'>480</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>481</span> </span><span class="WHIT"> </span><span class="NAME">_t.setList</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">force</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>482</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>483</span>
<span class='line'>484</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>485</span>
<span class='line'>486</span>
<span class='line'>487</span> </span><span class="COMM">// 切換 input/inputted span</span><span class="WHIT">
<span class='line'>488</span> </span><span class="NAME">triggerToInput</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">y</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// 切換至 input or not</span><span class="WHIT">
<span class='line'>489</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>490</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">y</span><span class="PUNC">||</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>491</span> </span><span class="WHIT"> </span><span class="COMM">// to input</span><span class="WHIT">
<span class='line'>492</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputtedO.style.display</span><span class="PUNC">=</span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>493</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_t.allListCount</span><span class="PUNC">)</span><span class="NAME">_p.arrowO.style.display</span><span class="PUNC">=</span><span class="STRN">'inline'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>494</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputO.style.display</span><span class="PUNC">=</span><span class="STRN">'inline'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>495</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>496</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>497</span> </span><span class="WHIT"> </span><span class="COMM">// to inputted span</span><span class="WHIT">
<span class='line'>498</span> </span><span class="WHIT"> </span><span class="NAME">_t.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>499</span> </span><span class="WHIT"> </span><span class="NAME">_t.setInputted</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>500</span> </span><span class="WHIT"> </span><span class="NAME">_p.arrowO.style.display</span><span class="PUNC">=</span><span class="NAME">_p.inputO.style.display</span><span class="PUNC">=</span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>501</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputtedO.style.display</span><span class="PUNC">=</span><span class="STRN">'inline'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>502</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>503</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>504</span>
<span class='line'>505</span>
<span class='line'>506</span> </span><span class="COMM">/* 配置元件
<span class='line'>507</span>
<span class='line'>508</span> 本函數會配置/增加:
<span class='line'>509</span> &lt;div> .container
<span class='line'>510</span> &lt;input> .inputO
<span class='line'>511</span> &lt;span> .inputtedO
<span class='line'>512</span> &lt;span> .arrowO
<span class='line'>513</span> &lt;div> .listO
<span class='line'>514</span>
<span class='line'>515</span> arguments:
<span class='line'>516</span> &lt;input> 會被當作 inputO 主元件
<span class='line'>517</span> &lt;select> 會被當作選項
<span class='line'>518</span> others: container
<span class='line'>519</span> */</span><span class="WHIT">
<span class='line'>520</span> </span><span class="NAME">dispose</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>521</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>522</span>
<span class='line'>523</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>524</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>525</span>
<span class='line'>526</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">o.tagName.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="NAME">hr</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">br</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// ** 這邊應該檢查 o 是不是 &lt;hr/> 等不能加 child 的!</span><span class="WHIT">
<span class='line'>527</span>
<span class='line'>528</span> </span><span class="WHIT"> </span><span class="COMM">//sl(('dispose: use &lt;'+o.tagName+'>: '+o.innerHTML).replace(/&lt;/g,'&lt;'));</span><span class="WHIT">
<span class='line'>529</span>
<span class='line'>530</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: 這邊應該有一個更完善的刪除策略</span><span class="WHIT">
<span class='line'>531</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_t.loaded</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>532</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">_p.container</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>533</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">e</span><span class="PUNC">=</span><span class="STRN">'inputO,inputtedO,arrowO,listO'</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">e.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>534</span> </span><span class="WHIT"> </span><span class="COMM">//sl('dispose: removeChild '+e[i]),</span><span class="WHIT">
<span class='line'>535</span> </span><span class="WHIT"> </span><span class="NAME">_p</span><span class="PUNC">[</span><span class="NAME">e</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">parentNode.removeChild</span><span class="PUNC">(</span><span class="NAME">_p</span><span class="PUNC">[</span><span class="NAME">e</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//t.removeChild(_p[e[i]]);</span><span class="WHIT">
<span class='line'>536</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">t.childNodes.length</span><span class="PUNC">)</span><span class="NAME">t.parentNode.removeChild</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>537</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>538</span>
<span class='line'>539</span>
<span class='line'>540</span> </span><span class="WHIT"> </span><span class="COMM">// 依照各種不同的傳入 object 作出應對</span><span class="WHIT">
<span class='line'>541</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">o.tagName.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>542</span>
<span class='line'>543</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">==</span><span class="STRN">'input'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>544</span> </span><span class="WHIT"> </span><span class="NAME">o.parentNode.insertBefore</span><span class="PUNC">(</span><span class="WHIT">
<span class='line'>545</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">_p.container</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'span'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>546</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputO</span><span class="PUNC">=</span><span class="NAME">o</span><span class="WHIT">
<span class='line'>547</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>548</span> </span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'container'</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>549</span>
<span class='line'>550</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o.className</span><span class="PUNC">)</span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'input'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>551</span>
<span class='line'>552</span> </span><span class="WHIT"> </span><span class="NAME">t.appendChild</span><span class="PUNC">(</span><span class="NAME">o.parentNode.removeChild</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>553</span>
<span class='line'>554</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>555</span>
<span class='line'>556</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">==</span><span class="STRN">'select'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>557</span> </span><span class="WHIT"> </span><span class="NAME">o.parentNode.insertBefore</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">_p.container</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'span'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>558</span>
<span class='line'>559</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputO</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'input'</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>560</span> </span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'input'</span><span class="PUNC">,</span><span class="NAME">_p.inputO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>561</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputO.name</span><span class="PUNC">=</span><span class="NAME">o.name</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>562</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o.selectedIndex</span><span class="PUNC">>=</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="NAME">_p.inputO.value</span><span class="PUNC">=</span><span class="NAME">o.options</span><span class="PUNC">[</span><span class="NAME">o.selectedIndex</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>563</span>
<span class='line'>564</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">opt</span><span class="PUNC">=</span><span class="NAME">o.options</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>565</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">opt.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>566</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">opt</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">value</span><span class="PUNC">||</span><span class="NAME">opt</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">innerHTML</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">opt</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">innerHTML</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>567</span>
<span class='line'>568</span> </span><span class="WHIT"> </span><span class="COMM">// list setting</span><span class="WHIT">
<span class='line'>569</span> </span><span class="WHIT"> </span><span class="NAME">_t.setAllList</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>570</span>
<span class='line'>571</span> </span><span class="WHIT"> </span><span class="NAME">o.parentNode.removeChild</span><span class="PUNC">(</span><span class="NAME">removeAllChild</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>572</span>
<span class='line'>573</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>574</span>
<span class='line'>575</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>576</span> </span><span class="WHIT"> </span><span class="NAME">_p.container</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 容器</span><span class="WHIT">
<span class='line'>577</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o.className</span><span class="PUNC">)</span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'container'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>578</span>
<span class='line'>579</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputO</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'input'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>580</span> </span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'input'</span><span class="PUNC">,</span><span class="NAME">_p.inputO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>581</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>582</span>
<span class='line'>583</span>
<span class='line'>584</span> </span><span class="WHIT"> </span><span class="COMM">// 補足其他的設定</span><span class="WHIT">
<span class='line'>585</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputO.setAttribute</span><span class="PUNC">(</span><span class="STRN">"autocomplete"</span><span class="PUNC">,</span><span class="STRN">"off"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>586</span>
<span class='line'>587</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputtedO</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'span'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>588</span> </span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'inputted'</span><span class="PUNC">,</span><span class="NAME">_p.inputtedO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>589</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputtedO.style.display</span><span class="PUNC">=</span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>590</span>
<span class='line'>591</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputtedO.onclick</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>592</span> </span><span class="WHIT"> </span><span class="NAME">_t.clickNow</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>593</span> </span><span class="WHIT"> </span><span class="NAME">_t.triggerToInput</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>594</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputO.focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>595</span> </span><span class="WHIT"> </span><span class="NAME">_t.clickNow</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>596</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>597</span>
<span class='line'>598</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_p.arrowO</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'span'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">_.textSet.showList</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>599</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">title</span><span class="PUNC">=</span><span class="NAME">_.textSet.arrowTitle</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>600</span> </span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'arrow'</span><span class="PUNC">,</span><span class="NAME">_p.arrowO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>601</span>
<span class='line'>602</span> </span><span class="WHIT"> </span><span class="NAME">_p.listO</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'div'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>603</span> </span><span class="WHIT"> </span><span class="NAME">_p.arrowO.onmouseover</span><span class="PUNC">=</span><span class="NAME">_p.listO.onmouseover</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">_t.clickNow</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>604</span> </span><span class="WHIT"> </span><span class="NAME">_p.arrowO.onmouseout</span><span class="PUNC">=</span><span class="NAME">_p.listO.onmouseout</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">_t.clickNow</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>605</span> </span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'list'</span><span class="PUNC">,</span><span class="NAME">_p.listO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>606</span> </span><span class="WHIT"> </span><span class="NAME">_t.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>607</span>
<span class='line'>608</span>
<span class='line'>609</span> </span><span class="WHIT"> </span><span class="COMM">// event setting</span><span class="WHIT">
<span class='line'>610</span> </span><span class="WHIT"> </span><span class="COMM">//_p.inputO.onmouseover=</span><span class="WHIT">
<span class='line'>611</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputO.onkeydown</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">readyTo.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>612</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputO.onmouseup</span><span class="PUNC">=</span><span class="NAME">_p.inputO.onkeyup</span><span class="PUNC">=</span><span class="NAME">_p.inputO.ondragend</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>613</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">e</span><span class="PUNC">)</span><span class="NAME">e</span><span class="PUNC">=</span><span class="NAME">event</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>614</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">e.keyCode</span><span class="PUNC">||</span><span class="NAME">e.which</span><span class="PUNC">||</span><span class="NAME">e.charCode</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>615</span> </span><span class="WHIT"> </span><span class="COMM">//sl('up: '+e.type+', key: '+c+', _p.listA: '+(_p.listA&&_p.listA.length));</span><span class="WHIT">
<span class='line'>616</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">cK</span><span class="PUNC">&&</span><span class="NAME">cK</span><span class="PUNC">==</span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">cK</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>617</span> </span><span class="WHIT"> </span><span class="COMM">// Esc</span><span class="WHIT">
<span class='line'>618</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">==</span><span class="NUMB">27</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">_t.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>619</span> </span><span class="WHIT"> </span><span class="NAME">_t.clickNow</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="NAME">_t.onInput</span><span class="PUNC">(</span><span class="NAME">_t.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>620</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>621</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputO.onmouseout</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">_t.clickNow</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>622</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_p.inputO.addEventListener</span><span class="PUNC">)</span><span class="NAME">_p.inputO.addEventListener</span><span class="PUNC">(</span><span class="STRN">'dragdrop'</span><span class="PUNC">,</span><span class="NAME">_p.inputO.ondragend</span><span class="PUNC">,</span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>623</span> </span><span class="WHIT"> </span><span class="COMM">//if(window.addEventListener)window.addEventListener('click',function(){_t.showList(0);},true);</span><span class="WHIT">
<span class='line'>624</span> </span><span class="WHIT"> </span><span class="COMM">//addListener(0,'click',function(){sl('close..');_t.showList(0);sl('close done.');})</span><span class="WHIT">
<span class='line'>625</span> </span><span class="WHIT"> </span><span class="NAME">_p.inputO.onblur</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>626</span> </span><span class="WHIT"> </span><span class="COMM">//if(_t.verify(_t.setValue())==2){alert('Wrong input!');return false;} // 這在 Firefox 似乎沒啥效果..</span><span class="WHIT">
<span class='line'>627</span> </span><span class="COMM">/* 設定這項在按 _p.arrowO 的時候會出問題,所以建議在其他地方自訂。
<span class='line'>628</span> if(_t.setValue() && (_t.setValue() in _t.setAllList()))
<span class='line'>629</span> _t.triggerToInput(0);
<span class='line'>630</span> */</span><span class="WHIT">
<span class='line'>631</span> </span><span class="WHIT"> </span><span class="COMM">// TODO: 假如以鍵盤離開,應該也 showList(0);</span><span class="WHIT">
<span class='line'>632</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_t.clickNow</span><span class="PUNC">)</span><span class="NAME">_t.clickNow</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">_t.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>633</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>634</span>
<span class='line'>635</span> </span><span class="WHIT"> </span><span class="COMM">// show/hide</span><span class="WHIT">
<span class='line'>636</span> </span><span class="WHIT"> </span><span class="NAME">_p.arrowO.onclick</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>637</span> </span><span class="WHIT"> </span><span class="COMM">//sl('arrowO.onclick start');</span><span class="WHIT">
<span class='line'>638</span> </span><span class="WHIT"> </span><span class="NAME">_t.clickNow</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>639</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_t.showList</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">_t.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>640</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">_t.onInput</span><span class="PUNC">(</span><span class="NAME">_t.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>641</span> </span><span class="WHIT"> </span><span class="NAME">_t.clickNow</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>642</span> </span><span class="WHIT"> </span><span class="COMM">//sl('arrowO.onclick end');</span><span class="WHIT">
<span class='line'>643</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>644</span> </span><span class="WHIT"> </span><span class="COMM">// ondblclick: double click</span><span class="WHIT">
<span class='line'>645</span> </span><span class="WHIT"> </span><span class="COMM">//_p.inputO.ondblclick=function(){_t.onInput(_p.inputO.value,0,1);};</span><span class="WHIT">
<span class='line'>646</span>
<span class='line'>647</span>
<span class='line'>648</span> </span><span class="WHIT"> </span><span class="NAME">_t.loaded</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// isLoaded</span><span class="WHIT">
<span class='line'>649</span>
<span class='line'>650</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>651</span>
<span class='line'>652</span> </span><span class="COMM">// instance constructor ---------------------------</span><span class="WHIT">
<span class='line'>653</span> </span><span class="NAME">instanceL</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>654</span> </span><span class="NAME">initI</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// (HTML object, list: Array or Object)</span><span class="WHIT">
<span class='line'>655</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_p</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>656</span> </span><span class="WHIT"> </span><span class="COMM">// objects setting</span><span class="WHIT">
<span class='line'>657</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>658</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Use object ['+o+']'),</span><span class="WHIT">
<span class='line'>659</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>660</span>
<span class='line'>661</span> </span><span class="WHIT"> </span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// also do initial</span><span class="WHIT">
<span class='line'>662</span> </span><span class="WHIT"> </span><span class="NAME">instanceL.push</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// for destructor</span><span class="WHIT">
<span class='line'>663</span>
<span class='line'>664</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>665</span> </span><span class="WHIT"> </span><span class="NAME">dispose.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>666</span> </span><span class="COMM">/*
<span class='line'>667</span> else{
<span class='line'>668</span> //throw new Error(1,'Can not get document object'+(o?' ['+o+']':'')+'!');
<span class='line'>669</span> return;
<span class='line'>670</span> }
<span class='line'>671</span> */</span><span class="WHIT">
<span class='line'>672</span>
<span class='line'>673</span> </span><span class="WHIT"> </span><span class="COMM">// list setting</span><span class="WHIT">
<span class='line'>674</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">_t.allListCount</span><span class="PUNC">)</span><span class="NAME">_t.setAllList</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>675</span>
<span class='line'>676</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_p.arrowO</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>677</span> </span><span class="WHIT"> </span><span class="NAME">_p.arrowO.style.display</span><span class="PUNC">=</span><span class="NAME">_t.allListCount</span><span class="PUNC">?</span><span class="STRN">'inline'</span><span class="PUNC">:</span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 無 list 的話先不顯示,等有 list 再說。</span><span class="WHIT">
<span class='line'>678</span>
<span class='line'>679</span> </span><span class="WHIT"> </span><span class="COMM">// setup default inputted value</span><span class="WHIT">
<span class='line'>680</span> </span><span class="WHIT"> </span><span class="NAME">_t.dInputted</span><span class="PUNC">=</span><span class="NAME">_t.setValue</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>681</span>
<span class='line'>682</span> </span><span class="WHIT"> </span><span class="COMM">//return _t;</span><span class="WHIT">
<span class='line'>683</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">_</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">initI.apply</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">initF</span><span class="PUNC">&&</span><span class="NAME">initF.apply</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>684</span>
<span class='line'>685</span> </span><span class="COMM">// (instance private handle) 不要 instance private 的把這函數刪掉即可。</span><span class="WHIT">
<span class='line'>686</span> </span><span class="NAME">_p</span><span class="PUNC">=</span><span class="STRN">'_'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\./</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>687</span> </span><span class="COMM">// get private variables (instance[,destroy]), init private variables (instance[,access function list[, instance destructor]])</span><span class="WHIT">
<span class='line'>688</span> </span><span class="NAME">pv</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">V</span><span class="PUNC">,</span><span class="NAME">K</span><span class="PUNC">=</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="STRN">'k'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">arguments.callee.caller</span><span class="PUNC">===</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="STRN">'i'</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="PUNC">(</span><span class="NAME">V</span><span class="PUNC">=</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">[</span><span class="NAME">K</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">V.O</span><span class="PUNC">=</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">V.L</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="PUNC">(</span><span class="NAME">K</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">V</span><span class="PUNC">=</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">[</span><span class="NAME">K</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="NAME">i</span><span class="PUNC">===</span><span class="NAME">V.O</span><span class="PUNC">?</span><span class="NAME">d</span><span class="PUNC">?</span><span class="PUNC">(</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">[</span><span class="NAME">K</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">[</span><span class="NAME">K</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="NAME">V.L</span><span class="PUNC">:</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>689</span>
<span class='line'>690</span> </span><span class="COMM">// (for inherits) 不要 inherit 的把這段刪掉即可。</span><span class="WHIT">
<span class='line'>691</span>
<span class='line'>692</span> </span><span class="PUNC">(</span><span class="NAME">_.clone</span><span class="PUNC">=</span><span class="NAME">arguments.callee</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toString</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'[class_template]'</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>693</span>
<span class='line'>694</span>
<span class='line'>695</span> </span><span class="COMM">// class destructor ---------------------------</span><span class="WHIT">
<span class='line'>696</span> </span><span class="COMM">/*
<span class='line'>697</span> please call at last (e.g., window.unload)
<span class='line'>698</span>
<span class='line'>699</span> usage:
<span class='line'>700</span> classT=classT.destroy();
<span class='line'>701</span> or if you has something more to do:
<span class='line'>702</span> classT.destroy()&&classT=null;
<span class='line'>703</span> */</span><span class="WHIT">
<span class='line'>704</span>
<span class='line'>705</span> </span><span class="NAME">_.destroy</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">instanceL.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="NAME">instanceL</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>706</span>
<span class='line'>707</span> </span><span class="COMM">// (instance private handle, continue)</span><span class="WHIT">
<span class='line'>708</span> </span><span class="NAME">eval</span><span class="PUNC">(</span><span class="STRN">'_p=(function(){var '</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'={a:pv,d:_.destroy,c:0,k:"+pv+'</span><span class="PUNC">+</span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'",i:initI};return function(i,d){var f=arguments.callee.caller;if(f==='</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'.a){if(!d)return i in '</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'?'</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'[i]:('</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'[i='</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'.c++]={},i);'</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'[i]={};}if(f==='</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'.d)'</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'={};}})();'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>709</span> </span><span class="NAME">_p.toString</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="STRN">''</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>710</span>
<span class='line'>711</span>
<span class='line'>712</span> </span><span class="COMM">/*
<span class='line'>713</span> // 測試是否可用自訂之屬性
<span class='line'>714</span> var o=document.createElement('div');
<span class='line'>715</span> o.setAttribute('testA',2);
<span class='line'>716</span> can_use_special_attribute=o.getAttribute('testA');
<span class='line'>717</span> sl('can_use_special_attribute: '+can_use_special_attribute);
<span class='line'>718</span> */</span><span class="WHIT">
<span class='line'>719</span>
<span class='line'>720</span> </span><span class="COMM">// class public interface ---------------------------</span><span class="WHIT">
<span class='line'>721</span>
<span class='line'>722</span>
<span class='line'>723</span> </span><span class="COMM">// 預設清單最大顯示數</span><span class="WHIT">
<span class='line'>724</span> </span><span class="NAME">_.maxList</span><span class="PUNC">=</span><span class="NUMB">10</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>725</span>
<span class='line'>726</span>
<span class='line'>727</span> </span><span class="COMM">// searchInList 常用到的函數</span><span class="WHIT">
<span class='line'>728</span> </span><span class="NAME">_.searchFunctionSet</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>729</span> </span><span class="WHIT"> </span><span class="NAME">allTheSame</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">===</span><span class="NAME">k</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>730</span> </span><span class="WHIT"> </span><span class="NAME">startWith</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">k.length</span><span class="PUNC">)</span><span class="PUNC">===</span><span class="NAME">k</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>731</span> </span><span class="WHIT"> </span><span class="COMM">// 不管大小寫 Whether the case</span><span class="WHIT">
<span class='line'>732</span> </span><span class="WHIT"> </span><span class="NAME">startWithWC</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">k.length</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">===</span><span class="NAME">k.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>733</span> </span><span class="WHIT"> </span><span class="NAME">includeKey</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="NAME">k.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">!==</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>734</span> </span><span class="WHIT"> </span><span class="NAME">includeKeyWC</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">+</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">!==</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>735</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>736</span>
<span class='line'>737</span>
<span class='line'>738</span> </span><span class="COMM">// 預設 className 前有 ~ 的會轉成 prefix</span><span class="WHIT">
<span class='line'>739</span> </span><span class="NAME">_.classNameSet</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>740</span> </span><span class="WHIT"> </span><span class="NAME">prefix</span><span class="PUNC">:</span><span class="STRN">'cI_'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>741</span> </span><span class="WHIT"> </span><span class="NAME">container</span><span class="PUNC">:</span><span class="STRN">'~container'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>742</span> </span><span class="WHIT"> </span><span class="NAME">input</span><span class="PUNC">:</span><span class="STRN">'~input'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>743</span> </span><span class="WHIT"> </span><span class="NAME">inputted</span><span class="PUNC">:</span><span class="STRN">'~inputted'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>744</span> </span><span class="WHIT"> </span><span class="NAME">arrow</span><span class="PUNC">:</span><span class="STRN">'~arrow'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>745</span> </span><span class="WHIT"> </span><span class="NAME">list</span><span class="PUNC">:</span><span class="STRN">'~list'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>746</span> </span><span class="WHIT"> </span><span class="NAME">item</span><span class="PUNC">:</span><span class="STRN">'~item'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>747</span> </span><span class="WHIT"> </span><span class="NAME">item_select</span><span class="PUNC">:</span><span class="STRN">'~item_select'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>748</span> </span><span class="WHIT"> </span><span class="NAME">functionB</span><span class="PUNC">:</span><span class="STRN">'~function'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>749</span> </span><span class="WHIT"> </span><span class="NAME">functionT</span><span class="PUNC">:</span><span class="STRN">'~functionText'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>750</span> </span><span class="WHIT"> </span><span class="NAME">error</span><span class="PUNC">:</span><span class="STRN">'~error'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>751</span> </span><span class="WHIT"> </span><span class="NAME">warning</span><span class="PUNC">:</span><span class="STRN">'~warning'</span><span class="WHIT">
<span class='line'>752</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>753</span>
<span class='line'>754</span>
<span class='line'>755</span> </span><span class="COMM">// 預設顯示文字</span><span class="WHIT">
<span class='line'>756</span> </span><span class="NAME">_.textSet</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>757</span> </span><span class="WHIT"> </span><span class="NAME">showList</span><span class="PUNC">:</span><span class="STRN">'▼'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// 4 way: [▴▸▾◂]</span><span class="WHIT">
<span class='line'>758</span> </span><span class="WHIT"> </span><span class="NAME">hideList</span><span class="PUNC">:</span><span class="STRN">'▲'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>759</span> </span><span class="WHIT"> </span><span class="NAME">arrowTitle</span><span class="PUNC">:</span><span class="STRN">'trigger list \n切換顯示查詢列表'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>760</span>
<span class='line'>761</span> </span><span class="WHIT"> </span><span class="NAME">allBtn</span><span class="PUNC">:</span><span class="STRN">'全部'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>762</span> </span><span class="WHIT"> </span><span class="NAME">clearBtn</span><span class="PUNC">:</span><span class="STRN">'清除'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>763</span> </span><span class="WHIT"> </span><span class="NAME">closeBtn</span><span class="PUNC">:</span><span class="STRN">'關閉'</span><span class="COMM">//'×'</span><span class="WHIT">
<span class='line'>764</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>765</span>
<span class='line'>766</span>
<span class='line'>767</span> </span><span class="NAME">_.prototype</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>768</span> </span><span class="COMM">// 應該盡量把東西放在 classinstance少一點</span><span class="WHIT">
<span class='line'>769</span>
<span class='line'>770</span> </span><span class="COMM">// instance public interface -------------------</span><span class="WHIT">
<span class='line'>771</span>
<span class='line'>772</span>
<span class='line'>773</span> </span><span class="COMM">/* click 事件進行中
<span class='line'>774</span> TODO:
<span class='line'>775</span> 用更好的方法取代
<span class='line'>776</span> */</span><span class="WHIT">
<span class='line'>777</span> </span><span class="NAME">clickNow</span><span class="PUNC">:</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>778</span>
<span class='line'>779</span> </span><span class="COMM">// instance 的 &lt;input>,.. 之 className, override _.classNameSet.input,..</span><span class="WHIT">
<span class='line'>780</span> </span><span class="COMM">//class_input:'~',</span><span class="WHIT">
<span class='line'>781</span> </span><span class="COMM">//class_item:'~',</span><span class="WHIT">
<span class='line'>782</span> </span><span class="COMM">//..</span><span class="WHIT">
<span class='line'>783</span>
<span class='line'>784</span> </span><span class="COMM">//maxList:\d,</span><span class="WHIT">
<span class='line'>785</span>
<span class='line'>786</span> </span><span class="COMM">// 預設清單 height (px)</span><span class="WHIT">
<span class='line'>787</span> </span><span class="NAME">maxListHeight</span><span class="PUNC">:</span><span class="NUMB">200</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>788</span>
<span class='line'>789</span>
<span class='line'>790</span> </span><span class="COMM">// 設定/取得所有可選的 list</span><span class="WHIT">
<span class='line'>791</span> </span><span class="NAME">setAllList</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>792</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">_p.arrowO</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>793</span> </span><span class="WHIT"> </span><span class="NAME">_t.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>794</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>795</span> </span><span class="WHIT"> </span><span class="NAME">_p.list</span><span class="PUNC">=</span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>796</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">l</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">_t.allListCount</span><span class="PUNC">=</span><span class="NAME">l.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 這不準,得用 onList 測試。</span><span class="WHIT">
<span class='line'>797</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="PUNC">{</span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="NAME">c</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="NAME">_t.allListCount</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>798</span> </span><span class="WHIT"> </span><span class="COMM">//sl('setAllList: Get about '+_t.allListCount+' items.');</span><span class="WHIT">
<span class='line'>799</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>800</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">s.style</span><span class="PUNC">,</span><span class="PUNC">!</span><span class="NAME">c</span><span class="PUNC">)</span><span class="NAME">s.display</span><span class="PUNC">=</span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>801</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_t.autoShowArrow</span><span class="PUNC">)</span><span class="NAME">s.display</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>802</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>803</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_p.list</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>804</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>805</span> </span><span class="COMM">// 自動於有 list 時 show arrow無時 hide</span><span class="WHIT">
<span class='line'>806</span> </span><span class="NAME">autoShowArrow</span><span class="PUNC">:</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>807</span>
<span class='line'>808</span> </span><span class="COMM">// 設定要顯現的 list會回傳 list需注意可能被更改</span><span class="WHIT">
<span class='line'>809</span> </span><span class="NAME">setList</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// key</span><span class="WHIT">
<span class='line'>810</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">setList.apply</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>811</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>812</span>
<span class='line'>813</span> </span><span class="NAME">showList</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">show</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>814</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">showList.apply</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>815</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>816</span>
<span class='line'>817</span> </span><span class="COMM">/*
<span class='line'>818</span> showArrow:function(show){
<span class='line'>819</span> var a=pv(this).arrowO.style;
<span class='line'>820</span> if(typeof show!='undefined')a.display=show?'':'none';
<span class='line'>821</span> return a.display;
<span class='line'>822</span> },
<span class='line'>823</span> */</span><span class="WHIT">
<span class='line'>824</span>
<span class='line'>825</span> </span><span class="COMM">// 每次 input 就會被 call 一次。可用 instance.setSearch('includeKey') 簡易設定</span><span class="WHIT">
<span class='line'>826</span> </span><span class="NAME">onInput</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// key</span><span class="WHIT">
<span class='line'>827</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>828</span>
<span class='line'>829</span> </span><span class="COMM">// 設定文字欄位的欄位驗證 return 1: warning, 2: error, string: 將輸入改為回傳值, else OK</span><span class="WHIT">
<span class='line'>830</span> </span><span class="COMM">// 另外可設定 onkeypress(){return true/false;} 來對每一次按鍵作 check。但這不能處理 paste。 http://irw.ncut.edu.tw/peterju/jscript.html#skill</span><span class="WHIT">
<span class='line'>831</span> </span><span class="NAME">verify</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// key</span><span class="WHIT">
<span class='line'>832</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>833</span>
<span class='line'>834</span> </span><span class="COMM">// input: (list, index), return [value, title[, key=title||value]]</span><span class="WHIT">
<span class='line'>835</span> </span><span class="NAME">onList</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>836</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">l</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">?</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>837</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>838</span>
<span class='line'>839</span> </span><span class="COMM">// input: (list, index), return value to set as input key</span><span class="WHIT">
<span class='line'>840</span> </span><span class="NAME">onSelect</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>841</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">?</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>842</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>843</span>
<span class='line'>844</span> </span><span class="COMM">/* searchInList 的減縮版
<span class='line'>845</span> ChooseI.searchInList.call(_instance_,'includeKey');
<span class='line'>846</span> eq
<span class='line'>847</span> _instance_.setSearch('includeKey');
<span class='line'>848</span> */</span><span class="WHIT">
<span class='line'>849</span> </span><span class="NAME">setSearch</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>850</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">searchInList.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>851</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>852</span>
<span class='line'>853</span> </span><span class="NAME">setClassName</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>854</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>855</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="NAME">t.class_input</span><span class="PUNC">=</span><span class="NAME">t.class_error</span><span class="PUNC">=</span><span class="NAME">t.class_warning</span><span class="PUNC">=</span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>856</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">t.class_input</span><span class="PUNC">;</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">t.class_error</span><span class="PUNC">;</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">t.class_warning</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>857</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">setClassName.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="STRN">'input'</span><span class="PUNC">,</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">inputO</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>858</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>859</span>
<span class='line'>860</span>
<span class='line'>861</span> </span><span class="NAME">setProperty</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>862</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">inputO</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>863</span> </span><span class="WHIT"> </span><span class="COMM">//sl('setProperty: '+p+'='+i[p]+'→'+v);</span><span class="WHIT">
<span class='line'>864</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">&&</span><span class="NAME">v</span><span class="PUNC">!=</span><span class="KEYW">null</span><span class="PUNC">)</span><span class="NAME">i</span><span class="PUNC">[</span><span class="NAME">p</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">v</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>865</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">[</span><span class="NAME">p</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>866</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>867</span>
<span class='line'>868</span> </span><span class="COMM">// set/get input value</span><span class="WHIT">
<span class='line'>869</span> </span><span class="NAME">setValue</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>870</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">this.triggerToInput</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>871</span> </span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">=</span><span class="NAME">this.setProperty</span><span class="PUNC">(</span><span class="STRN">'value'</span><span class="PUNC">,</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>872</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">arguments.callee.caller</span><span class="PUNC">!==</span><span class="NAME">do_verify</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>873</span> </span><span class="WHIT"> </span><span class="COMM">//sl('setValue: call do_verify'),</span><span class="WHIT">
<span class='line'>874</span> </span><span class="WHIT"> </span><span class="NAME">do_verify.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>875</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>876</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>877</span>
<span class='line'>878</span> </span><span class="COMM">// set inputted value: 轉換成輸入過的 &lt;span> 時,設定其之值。</span><span class="WHIT">
<span class='line'>879</span> </span><span class="NAME">setInputted</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>880</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">_p.inputO</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>881</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="NAME">v</span><span class="PUNC">=</span><span class="NAME">this.dInputted</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// dInputted: default inputted value, =setValue</span><span class="WHIT">
<span class='line'>882</span> </span><span class="WHIT"> </span><span class="NAME">createO</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">removeAllChild</span><span class="PUNC">(</span><span class="NAME">_p.inputtedO</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">v</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>883</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>884</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>885</span>
<span class='line'>886</span> </span><span class="NAME">setMaxLength</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>887</span> </span><span class="WHIT"> </span><span class="COMM">//sl('setMaxLength: set length '+(l>0?l:null));</span><span class="WHIT">
<span class='line'>888</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.setProperty</span><span class="PUNC">(</span><span class="STRN">'maxLength'</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">></span><span class="NUMB">0</span><span class="PUNC">?</span><span class="NAME">l</span><span class="PUNC">:</span><span class="KEYW">null</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>889</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>890</span>
<span class='line'>891</span> </span><span class="NAME">setName</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>892</span> </span><span class="WHIT"> </span><span class="NAME">this.setProperty</span><span class="PUNC">(</span><span class="STRN">'id'</span><span class="PUNC">,</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>893</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.setProperty</span><span class="PUNC">(</span><span class="STRN">'name'</span><span class="PUNC">,</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>894</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>895</span>
<span class='line'>896</span> </span><span class="NAME">setTitle</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>897</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">inputtedO.title</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>898</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.setProperty</span><span class="PUNC">(</span><span class="STRN">'title'</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">||</span><span class="KEYW">null</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>899</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>900</span>
<span class='line'>901</span> </span><span class="COMM">// 切換 inputted span/input</span><span class="WHIT">
<span class='line'>902</span> </span><span class="NAME">triggerToInput</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>903</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">triggerToInput.apply</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>904</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>905</span>
<span class='line'>906</span>
<span class='line'>907</span> </span><span class="COMM">/*
<span class='line'>908</span> for Unobtrusive JavaScript: 為未啟用JavaScript的情況提供替代方案。
<span class='line'>909</span> 接上 &lt;input> 或 &lt;select>
<span class='line'>910</span> */</span><span class="WHIT">
<span class='line'>911</span> </span><span class="NAME">attach</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// (input or select object)</span><span class="WHIT">
<span class='line'>912</span> </span><span class="WHIT"> </span><span class="COMM">//sl('attach: '+o);</span><span class="WHIT">
<span class='line'>913</span> </span><span class="WHIT"> </span><span class="COMM">//o.replaceNode(_p.inputO);</span><span class="WHIT">
<span class='line'>914</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">dispose.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>915</span> </span><span class="WHIT"> </span><span class="NAME">this.setAllList</span><span class="PUNC">(</span><span class="NAME">this.setAllList</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>916</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>917</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>918</span>
<span class='line'>919</span>
<span class='line'>920</span> </span><span class="COMM">// (focus or blur, 不驅動 onfocus/onblur)</span><span class="WHIT">
<span class='line'>921</span> </span><span class="NAME">focus</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// ,noE</span><span class="WHIT">
<span class='line'>922</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">inputO</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>923</span> </span><span class="COMM">/*
<span class='line'>924</span> sl('focus: '+(f?'focus':'blur')+(noE?' and no event':''));
<span class='line'>925</span> if(f||typeof f=='undefined'){
<span class='line'>926</span> if(noE)noE=i.onfocus,i.onfocus=null;
<span class='line'>927</span> i.focus();
<span class='line'>928</span> //if(noE)i.onfocus=noE;
<span class='line'>929</span> }else{
<span class='line'>930</span> if(noE)noE=i.onblur,i.onblur=null;else this.showList(0);
<span class='line'>931</span> i.blur();
<span class='line'>932</span> //if(noE)i.onblur=noE;
<span class='line'>933</span> }
<span class='line'>934</span> */</span><span class="WHIT">
<span class='line'>935</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">||</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>936</span> </span><span class="WHIT"> </span><span class="NAME">i.focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>937</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
<span class='line'>938</span> </span><span class="WHIT"> </span><span class="NAME">this.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>939</span> </span><span class="WHIT"> </span><span class="NAME">i.blur</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>940</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>941</span>
<span class='line'>942</span>
<span class='line'>943</span> </span><span class="COMM">// instance destructor ---------------------------</span><span class="WHIT">
<span class='line'>944</span> </span><span class="COMM">/*
<span class='line'>945</span> usage:
<span class='line'>946</span> instance=instance.destroy();
<span class='line'>947</span> or if you has something more to do:
<span class='line'>948</span> instance.destroy()&&instance=null;
<span class='line'>949</span> */</span><span class="WHIT">
<span class='line'>950</span> </span><span class="NAME">destroy</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>951</span>
<span class='line'>952</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// _.prototype=</span><span class="WHIT">
<span class='line'>953</span>
<span class='line'>954</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>955</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// (function(){</span><span class="WHIT">
<span class='line'>956</span>
<span class='line'>957</span>
<span class='line'>958</span> </span><span class="COMM">// ===================================================</span><span class="WHIT">
<span class='line'>959</span>
<span class='line'>960</span>
<span class='line'>961</span>
<span class='line'>962</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>963</span>
<span class='line'>964</span> </span><span class="COMM">// ===================================================</span><span class="WHIT">
<span class='line'>965</span> </span><span class="COMM">/*
<span class='line'>966</span> used for address input form
<span class='line'>967</span> 住址輸入
<span class='line'>968</span>
<span class='line'>969</span> TODO:
<span class='line'>970</span> parse address
<span class='line'>971</span>
<span class='line'>972</span>
<span class='line'>973</span> HISTORY:
<span class='line'>974</span> 2008/7/24 20:38:18 create
<span class='line'>975</span> */</span><span class="WHIT">
<span class='line'>976</span>
<span class='line'>977</span> </span><span class="NAME">AddressF.TW</span><span class="PUNC">=</span><span class="WHIT">
<span class='line'>978</span>
<span class='line'>979</span> </span><span class="PUNC">(</span><span class="COMM">/*ClassT.AddressF.TW=*/</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>980</span>
<span class='line'>981</span> </span><span class="KEYW">var</span><span class="WHIT">
<span class='line'>982</span>
<span class='line'>983</span> </span><span class="COMM">// class private -----------------------------------</span><span class="WHIT">
<span class='line'>984</span>
<span class='line'>985</span> </span><span class="COMM">/* 存放 data 的 path
<span class='line'>986</span> path/:
<span class='line'>987</span> zip/ ZIP code data
<span class='line'>988</span>
<span class='line'>989</span> */</span><span class="WHIT">
<span class='line'>990</span> </span><span class="NAME">path</span><span class="PUNC">=</span><span class="STRN">'./'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>991</span>
<span class='line'>992</span> </span><span class="COMM">/*
<span class='line'>993</span>
<span class='line'>994</span> ZIP[city: 縣市][district: 鄉鎮市區]=ZIP code
<span class='line'>995</span>
<span class='line'>996</span> ZIP5[Number(zip3)]={ "zip5,路街":"路街,no_range",.. }
<span class='line'>997</span>
<span class='line'>998</span> ZIP_to_cd[String(zip3)]=[city,district];
<span class='line'>999</span>
<span class='line'>1000</span> ZIP5_to_town[String(zip5)]=[路街,no_range]
<span class='line'>1001</span>
<span class='line'>1002</span> c_d[city]=[district list]
<span class='line'>1003</span>
<span class='line'>1004</span> ENG[city][district]=english
<span class='line'>1005</span>
<span class='line'>1006</span>
<span class='line'>1007</span> cityL, districtL: list for ChooseI
<span class='line'>1008</span> cityL[_city_name_]='_city_name_ (districts number)'
<span class='line'>1009</span> districtL[_district_name_]={city_name_:1}
<span class='line'>1010</span>
<span class='line'>1011</span> */</span><span class="WHIT">
<span class='line'>1012</span> </span><span class="NAME">ZIP</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">ZIP5</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">ZIP_to_cd</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">ZIP5_to_town</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">ENG</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">c_d</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">cityL</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">districtL</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1013</span>
<span class='line'>1014</span> </span><span class="NAME">getZIP5</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">z3</span><span class="PUNC">,</span><span class="NAME">force</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1015</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">Z</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1016</span> </span><span class="WHIT"> </span><span class="NAME">z3</span><span class="PUNC">=</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">z3</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1017</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">z3</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ZIP5</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">ZIP5</span><span class="PUNC">[</span><span class="NAME">z3</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1018</span> </span><span class="WHIT"> </span><span class="NAME">Z</span><span class="PUNC">=</span><span class="NAME">ZIP5</span><span class="PUNC">[</span><span class="NAME">z3</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1019</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">Z</span><span class="PUNC">=</span><span class="NAME">ZIP5</span><span class="PUNC">[</span><span class="NAME">z3</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="PUNC">!</span><span class="NAME">force</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Z</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1020</span>
<span class='line'>1021</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1022</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">getU</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">+</span><span class="STRN">'zip'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">z3</span><span class="PUNC">></span><span class="NUMB">99</span><span class="PUNC">?</span><span class="STRN">''</span><span class="PUNC">:</span><span class="NAME">z3</span><span class="PUNC">></span><span class="NUMB">9</span><span class="PUNC">?</span><span class="STRN">'0'</span><span class="PUNC">:</span><span class="STRN">'00'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">z3</span><span class="PUNC">+</span><span class="STRN">'.csv'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1023</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1024</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getZIP5: &lt;em>Can not get ZIP5 data of ['+(z3>99?'':z3>9?'0':'00')+z3+']&lt;/em>!');</span><span class="WHIT">
<span class='line'>1025</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1026</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1027</span>
<span class='line'>1028</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">parseCSV</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">d.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1029</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="NAME">a.length</span><span class="PUNC">)</span><span class="NAME">Z</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">ZIP5_to_town</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">==</span><span class="STRN">'全'</span><span class="PUNC">?</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">','</span><span class="PUNC">+</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/^[ \s]+/</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//去除前空白</span><span class="WHIT">
<span class='line'>1030</span> </span><span class="WHIT"> </span><span class="COMM">//else sl('Can not parse ZIP5 data of ['+(z3>99?'':z3>9?'0':'00')+z3+']!');</span><span class="WHIT">
<span class='line'>1031</span>
<span class='line'>1032</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getZIP5: ['+(z3>99?'':z3>9?'0':'00')+z3+'] '+d.length+' records.');</span><span class="WHIT">
<span class='line'>1033</span>
<span class='line'>1034</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Z</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1035</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1036</span>
<span class='line'>1037</span>
<span class='line'>1038</span> </span><span class="NAME">addFunc</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1039</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1040</span> </span><span class="WHIT"> </span><span class="NAME">createO</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">_p.container</span><span class="PUNC">,</span><span class="STRN">' ['</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1041</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'span'</span><span class="PUNC">,</span><span class="NAME">_p.container</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">_.classNameSet.clearMark</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1042</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">onclick</span><span class="PUNC">=</span><span class="NAME">arguments.callee.caller</span><span class="PUNC">==</span><span class="NAME">initI</span><span class="PUNC">?</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">f.apply</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">:</span><span class="NAME">f</span><span class="PUNC">;</span><span class="COMM">//function(){f(_p.zipI,_p.cityI,_p.districtI,_p.addressI);};</span><span class="WHIT">
<span class='line'>1043</span> </span><span class="WHIT"> </span><span class="NAME">createO</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">_p.container</span><span class="PUNC">,</span><span class="STRN">']'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1044</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1045</span>
<span class='line'>1046</span>
<span class='line'>1047</span> </span><span class="COMM">// instance constructor ---------------------------</span><span class="WHIT">
<span class='line'>1048</span> </span><span class="NAME">instanceL</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1049</span> </span><span class="NAME">initI</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">prefix</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1050</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">!=</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1051</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1052</span> </span><span class="WHIT"> </span><span class="COMM">//throw new Error(1,'Can not get outter document object!');</span><span class="WHIT">
<span class='line'>1053</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1054</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1055</span>
<span class='line'>1056</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">prefix</span><span class="PUNC">)</span><span class="NAME">prefix</span><span class="PUNC">=</span><span class="STRN">'adr_'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1057</span>
<span class='line'>1058</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1059</span> </span><span class="WHIT"> </span><span class="NAME">instanceL.push</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// for destructor</span><span class="WHIT">
<span class='line'>1060</span> </span><span class="WHIT"> </span><span class="NAME">_p.container</span><span class="PUNC">=</span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 容器</span><span class="WHIT">
<span class='line'>1061</span>
<span class='line'>1062</span> </span><span class="WHIT"> </span><span class="COMM">// initial instance object</span><span class="WHIT">
<span class='line'>1063</span> </span><span class="WHIT"> </span><span class="NAME">_t.nameSet</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1064</span> </span><span class="WHIT"> </span><span class="NAME">zip</span><span class="PUNC">:</span><span class="STRN">'zip'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1065</span> </span><span class="WHIT"> </span><span class="NAME">city</span><span class="PUNC">:</span><span class="STRN">'city'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1066</span> </span><span class="WHIT"> </span><span class="NAME">district</span><span class="PUNC">:</span><span class="STRN">'district'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1067</span> </span><span class="WHIT"> </span><span class="NAME">address</span><span class="PUNC">:</span><span class="STRN">'address'</span><span class="WHIT">
<span class='line'>1068</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1069</span>
<span class='line'>1070</span> </span><span class="WHIT"> </span><span class="COMM">// layout setup</span><span class="WHIT">
<span class='line'>1071</span> </span><span class="WHIT"> </span><span class="NAME">_p.fullAdr</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'input'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 最後送出時用</span><span class="WHIT">
<span class='line'>1072</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">_p.fullAdr</span><span class="PUNC">[</span><span class="STRN">'type'</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="STRN">'hidden'</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">// 低版本 JScript: error</span><span class="WHIT">
<span class='line'>1073</span> </span><span class="WHIT"> </span><span class="NAME">_p.fullAdr.style.display</span><span class="PUNC">=</span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1074</span>
<span class='line'>1075</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">zipOTrg</span><span class="PUNC">,</span><span class="NAME">zipT</span><span class="PUNC">=</span><span class="NAME">createO</span><span class="PUNC">(</span><span class="STRN">'span'</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">,</span><span class="STRN">'郵遞區號'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// TODO: &lt;label></span><span class="WHIT">
<span class='line'>1076</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">_p.zipI</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">ChooseI</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">ZIP_to_cd</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1077</span> </span><span class="WHIT"> </span><span class="NAME">a.setClassName</span><span class="PUNC">(</span><span class="NAME">_.classNameSet.zipI</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1078</span> </span><span class="WHIT"> </span><span class="NAME">a.setTitle</span><span class="PUNC">(</span><span class="STRN">'郵遞區號'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1079</span>
<span class='line'>1080</span> </span><span class="WHIT"> </span><span class="NAME">_p.zipI.dInputted</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1081</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'['</span><span class="PUNC">+</span><span class="NAME">this.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">']'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1082</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1083</span>
<span class='line'>1084</span> </span><span class="WHIT"> </span><span class="NAME">zipOTrg</span><span class="PUNC">=</span><span class="NAME">_p.zipI.triggerToInput</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1085</span> </span><span class="WHIT"> </span><span class="NAME">_p.zipI.triggerToInput</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">y</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1086</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">y</span><span class="PUNC">=</span><span class="NAME">y</span><span class="PUNC">||</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">y</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1087</span> </span><span class="WHIT"> </span><span class="NAME">zipT.style.display</span><span class="PUNC">=</span><span class="STRN">'inline'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1088</span> </span><span class="WHIT"> </span><span class="NAME">zipOTrg.call</span><span class="PUNC">(</span><span class="NAME">_p.zipI</span><span class="PUNC">,</span><span class="NAME">y</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1089</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1090</span> </span><span class="WHIT"> </span><span class="NAME">zipT.style.display</span><span class="PUNC">=</span><span class="STRN">'none'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1091</span> </span><span class="WHIT"> </span><span class="NAME">zipOTrg.call</span><span class="PUNC">(</span><span class="NAME">_p.zipI</span><span class="PUNC">,</span><span class="NAME">y</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1092</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1093</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1094</span>
<span class='line'>1095</span> </span><span class="WHIT"> </span><span class="NAME">createO</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">o</span><span class="PUNC">,</span><span class="STRN">' '</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//地址:</span><span class="WHIT">
<span class='line'>1096</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_p.cityI</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">ChooseI</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">cityL</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">setTitle</span><span class="PUNC">(</span><span class="STRN">'縣市'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1097</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_p.districtI</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">ChooseI</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">,</span><span class="NAME">districtL</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">setTitle</span><span class="PUNC">(</span><span class="STRN">'鄉鎮市區'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1098</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">_p.addressI</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">ChooseI</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1099</span> </span><span class="WHIT"> </span><span class="NAME">a.autoShowArrow</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1100</span> </span><span class="WHIT"> </span><span class="NAME">a.setClassName</span><span class="PUNC">(</span><span class="NAME">_.classNameSet.addressI</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1101</span>
<span class='line'>1102</span> </span><span class="COMM">/*
<span class='line'>1103</span> addFunc.call(_t,'全關閉',function(){
<span class='line'>1104</span> var _p=pv(this);
<span class='line'>1105</span> //sl('全關閉: clear all value.');
<span class='line'>1106</span> _p.zipI.showList(0);
<span class='line'>1107</span> _p.cityI.showList(0);
<span class='line'>1108</span> _p.districtI.showList(0);
<span class='line'>1109</span> _p.addressI.showList(0);
<span class='line'>1110</span> });
<span class='line'>1111</span> */</span><span class="WHIT">
<span class='line'>1112</span> </span><span class="WHIT"> </span><span class="NAME">addFunc.call</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="STRN">'全清除'</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1113</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1114</span> </span><span class="WHIT"> </span><span class="COMM">//sl('全清除: clear all value.');</span><span class="WHIT">
<span class='line'>1115</span> </span><span class="WHIT"> </span><span class="NAME">_p.zipI.setValue</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_p.zipI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_p.zipI.triggerToInput</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1116</span> </span><span class="WHIT"> </span><span class="NAME">_p.cityI.setValue</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_p.cityI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_p.cityI.triggerToInput</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1117</span> </span><span class="WHIT"> </span><span class="NAME">_p.districtI.setValue</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_p.districtI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_p.districtI.triggerToInput</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1118</span> </span><span class="WHIT"> </span><span class="NAME">_p.addressI.setValue</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_p.addressI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_p.addressI.triggerToInput</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1119</span> </span><span class="WHIT"> </span><span class="NAME">_p.addressI.setAllList</span><span class="PUNC">(</span><span class="KEYW">null</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1120</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1121</span>
<span class='line'>1122</span> </span><span class="WHIT"> </span><span class="COMM">// 功能設定</span><span class="WHIT">
<span class='line'>1123</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">zipF</span><span class="PUNC">=</span><span class="NAME">_p.zipI.setSearch</span><span class="PUNC">(</span><span class="STRN">'startWith'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1124</span> </span><span class="WHIT"> </span><span class="NAME">cityF</span><span class="PUNC">=</span><span class="NAME">_p.cityI.setSearch</span><span class="PUNC">(</span><span class="STRN">'includeKey'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1125</span> </span><span class="WHIT"> </span><span class="NAME">districtF</span><span class="PUNC">=</span><span class="NAME">_p.districtI.setSearch</span><span class="PUNC">(</span><span class="STRN">'includeKey'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1126</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1127</span>
<span class='line'>1128</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">_p.zipI</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1129</span> </span><span class="WHIT"> </span><span class="NAME">a.maxList</span><span class="PUNC">=</span><span class="NUMB">20</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1130</span> </span><span class="WHIT"> </span><span class="NAME">a.setMaxLength</span><span class="PUNC">(</span><span class="NUMB">5</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1131</span> </span><span class="WHIT"> </span><span class="NAME">a.onInput</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1132</span> </span><span class="WHIT"> </span><span class="NAME">zipF.apply</span><span class="PUNC">(</span><span class="NAME">_p.zipI</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1133</span> </span><span class="WHIT"> </span><span class="NAME">_p.addressI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1134</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ZIP_to_cd</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1135</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">ZIP_to_cd</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1136</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="NAME">_p.cityI.setValue</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_p.cityI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1137</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="NAME">_p.districtI.setValue</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_p.districtI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1138</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ZIP5_to_town</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">_p.addressI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1139</span> </span><span class="WHIT"> </span><span class="NAME">_p.addressI.setValue</span><span class="PUNC">(</span><span class="NAME">ZIP5_to_town</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_p.addressI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1140</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1141</span> </span><span class="WHIT"> </span><span class="NAME">a.verify</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1142</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">k</span><span class="PUNC">&&</span><span class="NAME">k</span><span class="PUNC">!==</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1143</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">z</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1144</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="REGX">/^\d+$/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1145</span> </span><span class="WHIT"> </span><span class="COMM">//sl('zipI.verify: '+(_t.useZIP5?'Use':'Do not use')+' zip5.');</span><span class="WHIT">
<span class='line'>1146</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">k.length</span><span class="PUNC">>=</span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1147</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">getZIP5</span><span class="PUNC">(</span><span class="NAME">z</span><span class="PUNC">=</span><span class="NAME">k.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">z</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ZIP_to_cd</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">_t.useZIP5</span><span class="PUNC">&&</span><span class="NAME">getZIP5</span><span class="PUNC">(</span><span class="NAME">z</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">k.length</span><span class="PUNC">==</span><span class="NUMB">5</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ZIP5_to_town</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1148</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1149</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1150</span>
<span class='line'>1151</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">_p.cityI</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1152</span> </span><span class="WHIT"> </span><span class="NAME">a.maxList</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// unlimited</span><span class="WHIT">
<span class='line'>1153</span> </span><span class="WHIT"> </span><span class="NAME">a.setMaxLength</span><span class="PUNC">(</span><span class="NUMB">8</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1154</span> </span><span class="WHIT"> </span><span class="NAME">a.onInput</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1155</span> </span><span class="WHIT"> </span><span class="NAME">cityF.apply</span><span class="PUNC">(</span><span class="NAME">_p.cityI</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1156</span> </span><span class="WHIT"> </span><span class="NAME">_p.addressI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1157</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">districtL</span><span class="PUNC">[</span><span class="NAME">_p.districtI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1158</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">c</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1159</span> </span><span class="WHIT"> </span><span class="COMM">// 選了不同的 city</span><span class="WHIT">
<span class='line'>1160</span> </span><span class="WHIT"> </span><span class="NAME">_p.zipI.setValue</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1161</span> </span><span class="WHIT"> </span><span class="NAME">_p.districtI.setValue</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1162</span> </span><span class="WHIT"> </span><span class="NAME">_p.addressI.setAllList</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1163</span> </span><span class="WHIT"> </span><span class="NAME">_p.zipI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_p.districtI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1164</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1165</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">ZIP</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">_p.zipI.setValue</span><span class="PUNC">(</span><span class="NAME">ZIP</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1166</span> </span><span class="WHIT"> </span><span class="NAME">_p.districtI.setAllList</span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">c_d</span><span class="PUNC">?</span><span class="NAME">c_d</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="NAME">districtL</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1167</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1168</span> </span><span class="WHIT"> </span><span class="NAME">a.verify</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1169</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ZIP</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1170</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1171</span>
<span class='line'>1172</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">_p.districtI</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1173</span> </span><span class="WHIT"> </span><span class="NAME">a.maxList</span><span class="PUNC">=</span><span class="NUMB">20</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1174</span> </span><span class="WHIT"> </span><span class="NAME">a.setMaxLength</span><span class="PUNC">(</span><span class="NUMB">20</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1175</span> </span><span class="WHIT"> </span><span class="NAME">a.onList</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1176</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">l</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1177</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1178</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1179</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1180</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1181</span> </span><span class="WHIT"> </span><span class="NAME">a.onInput</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1182</span> </span><span class="WHIT"> </span><span class="NAME">districtF.apply</span><span class="PUNC">(</span><span class="NAME">_p.districtI</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1183</span> </span><span class="WHIT"> </span><span class="NAME">_p.addressI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1184</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">districtL</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">_p.cityI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1185</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1186</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">i</span><span class="PUNC">;</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1187</span> </span><span class="WHIT"> </span><span class="NAME">_p.cityI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1188</span> </span><span class="WHIT"> </span><span class="NAME">_p.cityI.setValue</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1189</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1190</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ZIP</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1191</span> </span><span class="WHIT"> </span><span class="NAME">_p.cityI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1192</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">z</span><span class="PUNC">=</span><span class="NAME">ZIP</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1193</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">z</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1194</span> </span><span class="WHIT"> </span><span class="NAME">z</span><span class="PUNC">=</span><span class="NAME">_p.districtI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">z</span><span class="PUNC">?</span><span class="NAME">ZIP</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">_p.districtI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1195</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">z</span><span class="PUNC">)</span><span class="NAME">_p.zipI.setValue</span><span class="PUNC">(</span><span class="NAME">z</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_p.zipI.showList</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1196</span>
<span class='line'>1197</span> </span><span class="WHIT"> </span><span class="COMM">//sl('ZIP['+c+']['+_p.districtI.setValue()+']=['+z+']');</span><span class="WHIT">
<span class='line'>1198</span> </span><span class="WHIT"> </span><span class="COMM">//if(!z){var i;z=ZIP[c];for(var i in z)sl('* ['+i+']='+z[i]);}</span><span class="WHIT">
<span class='line'>1199</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1200</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1201</span> </span><span class="WHIT"> </span><span class="NAME">a.verify</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1202</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">_p.cityI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1203</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">k</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ZIP</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">ZIP</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">]</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">k</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ZIP</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">c_d</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1204</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1205</span>
<span class='line'>1206</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">_p.addressI</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1207</span> </span><span class="WHIT"> </span><span class="NAME">a.maxList</span><span class="PUNC">=</span><span class="NUMB">40</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1208</span> </span><span class="WHIT"> </span><span class="NAME">a.onList</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1209</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">l</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">?</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">:</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">_p.addressI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1210</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1211</span> </span><span class="WHIT"> </span><span class="NAME">a.onSelect</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1212</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">i.indexOf</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1213</span> </span><span class="WHIT"> </span><span class="NAME">_p.zipI.setValue</span><span class="PUNC">(</span><span class="NAME">i.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1214</span> </span><span class="WHIT"> </span><span class="NAME">_p.zipI.triggerToInput</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1215</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i.slice</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1216</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1217</span> </span><span class="WHIT"> </span><span class="NAME">a.setSearch</span><span class="PUNC">(</span><span class="STRN">'includeKey'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1218</span> </span><span class="WHIT"> </span><span class="NAME">a.setProperty</span><span class="PUNC">(</span><span class="STRN">'onfocus'</span><span class="PUNC">,</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1219</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">_p.cityI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">_p.districtI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1220</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ZIP</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">ZIP</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">]</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ZIP</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1221</span> </span><span class="WHIT"> </span><span class="NAME">_p.zipI.triggerToInput</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1222</span> </span><span class="WHIT"> </span><span class="NAME">_p.cityI.triggerToInput</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1223</span> </span><span class="WHIT"> </span><span class="NAME">_p.districtI.triggerToInput</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1224</span> </span><span class="WHIT"> </span><span class="COMM">//sl('addressI.onfocus: '+(_t.useZIP5?'Use':'Do not use')+' zip5.');</span><span class="WHIT">
<span class='line'>1225</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_p.addressI.doFunc</span><span class="PUNC">)</span><span class="NAME">_p.addressI.doFunc</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1226</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_t.useZIP5</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1227</span> </span><span class="WHIT"> </span><span class="NAME">_p.addressI.setAllList</span><span class="PUNC">(</span><span class="NAME">getZIP5</span><span class="PUNC">(</span><span class="NAME">ZIP</span><span class="PUNC">[</span><span class="NAME">c</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">d</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1228</span> </span><span class="WHIT"> </span><span class="NAME">_p.addressI.onInput</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1229</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1230</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1231</span> </span><span class="WHIT"> </span><span class="NAME">a.verify</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1232</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">k</span><span class="PUNC">||</span><span class="NAME">k.length</span><span class="PUNC">&lt;</span><span class="NUMB">5</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1233</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1234</span>
<span class='line'>1235</span> </span><span class="WHIT"> </span><span class="NAME">_t.setNamePrefix</span><span class="PUNC">(</span><span class="NAME">prefix</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1236</span>
<span class='line'>1237</span> </span><span class="WHIT"> </span><span class="NAME">_t.loaded</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1238</span>
<span class='line'>1239</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">_</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">initI.apply</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1240</span>
<span class='line'>1241</span>
<span class='line'>1242</span> </span><span class="COMM">// (instance private handle) 不要 instance private 的把這函數刪掉即可。</span><span class="WHIT">
<span class='line'>1243</span> </span><span class="NAME">_p</span><span class="PUNC">=</span><span class="STRN">'_'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\./</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1244</span> </span><span class="COMM">// get private variables (instance[,destroy]), init private variables (instance[,access function list[, instance destructor]])</span><span class="WHIT">
<span class='line'>1245</span> </span><span class="NAME">pv</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">V</span><span class="PUNC">,</span><span class="NAME">K</span><span class="PUNC">=</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="STRN">'k'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">arguments.callee.caller</span><span class="PUNC">===</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="STRN">'i'</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="PUNC">(</span><span class="NAME">V</span><span class="PUNC">=</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">[</span><span class="NAME">K</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">V.O</span><span class="PUNC">=</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">V.L</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="PUNC">(</span><span class="NAME">K</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">V</span><span class="PUNC">=</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">[</span><span class="NAME">K</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="NAME">i</span><span class="PUNC">===</span><span class="NAME">V.O</span><span class="PUNC">?</span><span class="NAME">d</span><span class="PUNC">?</span><span class="PUNC">(</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">[</span><span class="NAME">K</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">[</span><span class="NAME">K</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="NAME">V.L</span><span class="PUNC">:</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1246</span>
<span class='line'>1247</span> </span><span class="COMM">// class destructor ---------------------------</span><span class="WHIT">
<span class='line'>1248</span> </span><span class="COMM">/*
<span class='line'>1249</span> please call at last (e.g., window.unload)
<span class='line'>1250</span>
<span class='line'>1251</span> usage:
<span class='line'>1252</span> classT=classT.destroy();
<span class='line'>1253</span> or if you has something more to do:
<span class='line'>1254</span> classT.destroy()&&classT=null;
<span class='line'>1255</span> */</span><span class="WHIT">
<span class='line'>1256</span>
<span class='line'>1257</span> </span><span class="NAME">_.destroy</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">instanceL.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="NAME">instanceL</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">_p</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1258</span>
<span class='line'>1259</span> </span><span class="COMM">// (instance private handle, continue)</span><span class="WHIT">
<span class='line'>1260</span> </span><span class="NAME">eval</span><span class="PUNC">(</span><span class="STRN">'_p=(function(){var '</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'={a:pv,d:_.destroy,c:0,k:"+pv+'</span><span class="PUNC">+</span><span class="NAME">Math.random</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'",i:initI};return function(i,d){var f=arguments.callee.caller;if(f==='</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'.a){if(!d)return i in '</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'?'</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'[i]:('</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'[i='</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'.c++]={},i);'</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'[i]={};}if(f==='</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'.d)'</span><span class="PUNC">+</span><span class="NAME">_p</span><span class="PUNC">+</span><span class="STRN">'={};}})();'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1261</span> </span><span class="NAME">_p.toString</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="STRN">''</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1262</span>
<span class='line'>1263</span>
<span class='line'>1264</span> </span><span class="COMM">// class public interface ---------------------------</span><span class="WHIT">
<span class='line'>1265</span>
<span class='line'>1266</span>
<span class='line'>1267</span> </span><span class="COMM">// 預設 className</span><span class="WHIT">
<span class='line'>1268</span> </span><span class="NAME">_.classNameSet</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1269</span> </span><span class="WHIT"> </span><span class="NAME">clearMark</span><span class="PUNC">:</span><span class="STRN">'adr_clear'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1270</span> </span><span class="WHIT"> </span><span class="NAME">zipI</span><span class="PUNC">:</span><span class="STRN">'adr_zip'</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1271</span> </span><span class="WHIT"> </span><span class="NAME">addressI</span><span class="PUNC">:</span><span class="STRN">'adr_address'</span><span class="WHIT">
<span class='line'>1272</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1273</span>
<span class='line'>1274</span>
<span class='line'>1275</span> </span><span class="COMM">// read 郵局提供之 CSV file。</span><span class="WHIT">
<span class='line'>1276</span> </span><span class="COMM">// 這應該在所有 new 之前先作!</span><span class="WHIT">
<span class='line'>1277</span> </span><span class="NAME">_.readData</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">url</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1278</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">url</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1279</span> </span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">=</span><span class="NAME">url.match</span><span class="PUNC">(</span><span class="REGX">/^(.+\/)?([^\/]+)$/</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1280</span>
<span class='line'>1281</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1282</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1283</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">getU</span><span class="PUNC">(</span><span class="NAME">url</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1284</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1285</span> </span><span class="WHIT"> </span><span class="COMM">//sl('readData: &lt;em>Can not get data: ['+url+']!&lt;/em> '+e.message);</span><span class="WHIT">
<span class='line'>1286</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1287</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1288</span> </span><span class="WHIT"> </span><span class="COMM">//sl('readData: Get data from ['+url+']:&lt;br/>['+a.length+'] '+a.slice(0,200)+'..');</span><span class="WHIT">
<span class='line'>1289</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">=</span><span class="NAME">parseCSV</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="NAME">data.length</span><span class="PUNC">&lt;</span><span class="NUMB">9</span><span class="PUNC">||</span><span class="NAME">data</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">&lt;</span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1290</span> </span><span class="WHIT"> </span><span class="COMM">//sl('readData: Can not read data from ['+url+']!');</span><span class="WHIT">
<span class='line'>1291</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1292</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1293</span>
<span class='line'>1294</span> </span><span class="WHIT"> </span><span class="COMM">// reset</span><span class="WHIT">
<span class='line'>1295</span> </span><span class="WHIT"> </span><span class="NAME">ZIP</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">ZIP5</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">ZIP_to_cd</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">ZIP5_to_town</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">ENG</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">c_d</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">cityL</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">districtL</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1296</span>
<span class='line'>1297</span> </span><span class="WHIT"> </span><span class="COMM">//sl('readData: Get '+data.length+' data from ['+url+']:&lt;br/>['+data[0]+']&lt;br/>['+data[1]+']&lt;br/>['+data[2]+']');</span><span class="WHIT">
<span class='line'>1298</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">data.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1299</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">data</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/^([^縣市島]{1,3}[縣市島])(.{2,5})$/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1300</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1301</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Can not parse: ['+data[i][1]+']');//continue;</span><span class="WHIT">
<span class='line'>1302</span> </span><span class="WHIT"> </span><span class="NAME">cityL</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">data</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1303</span> </span><span class="WHIT"> </span><span class="COMM">//districtL[a]='';</span><span class="WHIT">
<span class='line'>1304</span> </span><span class="WHIT"> </span><span class="NAME">ZIP_to_cd</span><span class="PUNC">[</span><span class="NAME">ZIP</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">data</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">ENG</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">data</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1305</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1306</span> </span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1307</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">b</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">districtL</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">districtL</span><span class="PUNC">[</span><span class="NAME">b</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1308</span> </span><span class="WHIT"> </span><span class="NAME">districtL</span><span class="PUNC">[</span><span class="NAME">b</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// districtL[_district_name_]={_city_name_:1}</span><span class="WHIT">
<span class='line'>1309</span> </span><span class="COMM">/*
<span class='line'>1310</span> if(b in districtL)
<span class='line'>1311</span> sl('readData: duplicate district: '+a+','+b),
<span class='line'>1312</span> districtL[b+','+a]=[b,a];
<span class='line'>1313</span> else
<span class='line'>1314</span> //sl('readData: set district: '+a+','+b),
<span class='line'>1315</span> districtL[b]=[b,a];
<span class='line'>1316</span> */</span><span class="WHIT">
<span class='line'>1317</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">c_d</span><span class="PUNC">)</span><span class="NAME">c_d</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">push</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">c_d</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="NAME">b</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1318</span>
<span class='line'>1319</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ZIP</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">ZIP</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">ENG</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1320</span> </span><span class="WHIT"> </span><span class="NAME">ZIP_to_cd</span><span class="PUNC">[</span><span class="NAME">ZIP</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">b</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">data</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">ENG</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">b</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">data</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1321</span>
<span class='line'>1322</span> </span><span class="WHIT"> </span><span class="COMM">//sl('ZIP['+a+']['+b+']=['+data[i][0]+']');</span><span class="WHIT">
<span class='line'>1323</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1324</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1325</span>
<span class='line'>1326</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">cityL</span><span class="PUNC">,</span><span class="NAME">cityL</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1327</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">c_d</span><span class="PUNC">)</span><span class="NAME">c_d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">sort</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">cityL</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">' ('</span><span class="PUNC">+</span><span class="NAME">c_d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">+</span><span class="STRN">')'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// cityL[_city_name_]='_city_name_ (districts number)'</span><span class="WHIT">
<span class='line'>1328</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">)</span><span class="NAME">cityL</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 將不常用沒district的放後面</span><span class="WHIT">
<span class='line'>1329</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1330</span>
<span class='line'>1331</span> </span><span class="COMM">// class constructor ---------------------------</span><span class="WHIT">
<span class='line'>1332</span>
<span class='line'>1333</span> </span><span class="COMM">/* 預先讀取同目錄下的 county.txt
<span class='line'>1334</span> 這些檔案由臺灣郵政全球資訊網下載專區取得。
<span class='line'>1335</span>
<span class='line'>1336</span> */</span><span class="WHIT">
<span class='line'>1337</span> </span><span class="NAME">_.readData</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">+</span><span class="STRN">'zip/county.txt'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1338</span>
<span class='line'>1339</span>
<span class='line'>1340</span> </span><span class="NAME">_.prototype</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1341</span> </span><span class="COMM">// 應該盡量把東西放在 classinstance少一點…</span><span class="WHIT">
<span class='line'>1342</span>
<span class='line'>1343</span> </span><span class="COMM">// instance public interface -------------------</span><span class="WHIT">
<span class='line'>1344</span>
<span class='line'>1345</span> </span><span class="COMM">// 使用 ZIP5</span><span class="WHIT">
<span class='line'>1346</span> </span><span class="NAME">useZIP5</span><span class="PUNC">:</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1347</span>
<span class='line'>1348</span> </span><span class="COMM">// ** important ** 這邊不能作 object 之 initialization否則因為 object 只會 copy reference因此 new 時東西會一樣。initialization 得在 _() 中作!</span><span class="WHIT">
<span class='line'>1349</span> </span><span class="COMM">//nameSet:{},</span><span class="WHIT">
<span class='line'>1350</span>
<span class='line'>1351</span> </span><span class="NAME">setNamePrefix</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1352</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1353</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1354</span> </span><span class="WHIT"> </span><span class="NAME">_p.fullAdr.name</span><span class="PUNC">=</span><span class="NAME">_p.namePrefix</span><span class="PUNC">=</span><span class="NAME">p</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1355</span> </span><span class="WHIT"> </span><span class="NAME">_p.zipI.setName</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">+</span><span class="NAME">_t.nameSet.zip</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1356</span> </span><span class="WHIT"> </span><span class="NAME">_p.cityI.setName</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">+</span><span class="NAME">_t.nameSet.city</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1357</span> </span><span class="WHIT"> </span><span class="NAME">_p.districtI.setName</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">+</span><span class="NAME">_t.nameSet.district</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1358</span> </span><span class="WHIT"> </span><span class="NAME">_p.addressI.setName</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">+</span><span class="NAME">_t.nameSet.address</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1359</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1360</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_p.namePrefix</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1361</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1362</span>
<span class='line'>1363</span> </span><span class="NAME">setAddress</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">adr</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1364</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1365</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">adr</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1366</span> </span><span class="WHIT"> </span><span class="NAME">_p.zipI.setValue</span><span class="PUNC">(</span><span class="NAME">adr.zip</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_p.cityI.setValue</span><span class="PUNC">(</span><span class="NAME">adr.city</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_p.districtI.setValue</span><span class="PUNC">(</span><span class="NAME">adr.district</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_p.addressI.setValue</span><span class="PUNC">(</span><span class="NAME">adr.address</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1367</span>
<span class='line'>1368</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="NAME">zip</span><span class="PUNC">:</span><span class="NAME">_p.zipI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">city</span><span class="PUNC">:</span><span class="NAME">_p.cityI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">district</span><span class="PUNC">:</span><span class="NAME">_p.districtI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">address</span><span class="PUNC">:</span><span class="NAME">_p.addressI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1369</span> </span><span class="WHIT"> </span><span class="NAME">r.fullAddress</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">r.zip</span><span class="PUNC">?</span><span class="STRN">'['</span><span class="PUNC">+</span><span class="NAME">r.zip</span><span class="PUNC">+</span><span class="STRN">'] '</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">r.city</span><span class="PUNC">+</span><span class="NAME">r.district</span><span class="PUNC">+</span><span class="NAME">r.address</span><span class="PUNC">;</span><span class="COMM">//'台灣'+</span><span class="WHIT">
<span class='line'>1370</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1371</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1372</span>
<span class='line'>1373</span>
<span class='line'>1374</span> </span><span class="COMM">// use instance.submit() to check</span><span class="WHIT">
<span class='line'>1375</span> </span><span class="NAME">submit</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1376</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1377</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_t.loaded</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1378</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">!=</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1379</span> </span><span class="WHIT"> </span><span class="NAME">_p.zipI.setName</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1380</span> </span><span class="WHIT"> </span><span class="NAME">_p.cityI.setName</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1381</span> </span><span class="WHIT"> </span><span class="NAME">_p.districtI.setName</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1382</span> </span><span class="WHIT"> </span><span class="NAME">_p.addressI.setName</span><span class="PUNC">(</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1383</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="NAME">_p.fullAdr.name</span><span class="PUNC">=</span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1384</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1385</span> </span><span class="WHIT"> </span><span class="NAME">_p.fullAdr.value</span><span class="PUNC">=</span><span class="NAME">_t.setAddress</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">fullAddress</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1386</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">_p.zipI.verify</span><span class="PUNC">(</span><span class="NAME">_p.zipI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">_p.cityI.verify</span><span class="PUNC">(</span><span class="NAME">_p.cityI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">_p.districtI.verify</span><span class="PUNC">(</span><span class="NAME">_p.districtI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">_p.addressI.verify</span><span class="PUNC">(</span><span class="NAME">_p.addressI.setValue</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1387</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1388</span>
<span class='line'>1389</span>
<span class='line'>1390</span> </span><span class="COMM">// 增加功能 button</span><span class="WHIT">
<span class='line'>1391</span> </span><span class="NAME">addFunc</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// (text, function)</span><span class="WHIT">
<span class='line'>1392</span> </span><span class="WHIT"> </span><span class="NAME">addFunc.apply</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1393</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1394</span>
<span class='line'>1395</span>
<span class='line'>1396</span> </span><span class="COMM">// (focus on what &lt;input>, focus or blur)</span><span class="WHIT">
<span class='line'>1397</span> </span><span class="NAME">focus</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1398</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">,</span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">alias</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="NAME">a</span><span class="PUNC">:</span><span class="STRN">'addressI'</span><span class="PUNC">,</span><span class="NAME">z</span><span class="PUNC">:</span><span class="STRN">'zipI'</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">:</span><span class="STRN">'districtI'</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">:</span><span class="STRN">'cityI'</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1399</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">alias</span><span class="PUNC">)</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">alias</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">'I'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">_p</span><span class="PUNC">)</span><span class="NAME">i</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="STRN">'I'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1400</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">_p</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1401</span> </span><span class="WHIT"> </span><span class="NAME">_p</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">focus</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1402</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// to all</span><span class="WHIT">
<span class='line'>1403</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">j</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">alias</span><span class="PUNC">)</span><span class="NAME">_p</span><span class="PUNC">[</span><span class="NAME">alias</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">focus</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1404</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1405</span>
<span class='line'>1406</span>
<span class='line'>1407</span> </span><span class="COMM">// instance destructor ---------------------------</span><span class="WHIT">
<span class='line'>1408</span> </span><span class="COMM">/*
<span class='line'>1409</span> usage:
<span class='line'>1410</span> instance=instance.destroy();
<span class='line'>1411</span> or if you has something more to do:
<span class='line'>1412</span> instance.destroy()&&instance=null;
<span class='line'>1413</span> */</span><span class="WHIT">
<span class='line'>1414</span> </span><span class="NAME">destroy</span><span class="PUNC">:</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1415</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1416</span> </span><span class="WHIT"> </span><span class="NAME">_p.zipI.destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1417</span> </span><span class="WHIT"> </span><span class="NAME">_p.cityI.destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1418</span> </span><span class="WHIT"> </span><span class="NAME">_p.districtI.destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1419</span> </span><span class="WHIT"> </span><span class="NAME">_p.addressI.destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1420</span> </span><span class="WHIT"> </span><span class="NAME">pv</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1421</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1422</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// _.prototype=</span><span class="WHIT">
<span class='line'>1423</span>
<span class='line'>1424</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1425</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// (function(){</span><span class="WHIT">
<span class='line'>1426</span>
<span class='line'>1427</span> </span><span class="COMM">// ===================================================</span><span class="WHIT">
<span class='line'>1428</span>
<span class='line'>1429</span>
<span class='line'>1430</span>
<span class='line'>1431</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>1432</span> </span><span class="COMM">// ===================================================</span><span class="WHIT">
<span class='line'>1433</span> </span><span class="COMM">/*
<span class='line'>1434</span> used for account & bank id input form
<span class='line'>1435</span>
<span class='line'>1436</span> TODO:
<span class='line'>1437</span>
<span class='line'>1438</span>
<span class='line'>1439</span> HISTORY:
<span class='line'>1440</span> 2008/7/26 14:46:14 create
<span class='line'>1441</span> */</span><span class="WHIT">
<span class='line'>1442</span>
<span class='line'>1443</span> </span><span class="NAME">AccountF.TW</span><span class="PUNC">=</span><span class="WHIT">
<span class='line'>1444</span>
<span class='line'>1445</span> </span><span class="PUNC">(</span><span class="COMM">/*ClassT.AccountF.TW=*/</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1446</span>
<span class='line'>1447</span> </span><span class="KEYW">var</span><span class="WHIT">
<span class='line'>1448</span>
<span class='line'>1449</span>
<span class='line'>1450</span> </span><span class="COMM">// class private -----------------------------------</span><span class="WHIT">
<span class='line'>1451</span>
<span class='line'>1452</span> </span><span class="COMM">// 存放 data 的 path</span><span class="WHIT">
<span class='line'>1453</span> </span><span class="NAME">path</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1454</span>
<span class='line'>1455</span>
<span class='line'>1456</span> </span><span class="COMM">// 總單位/支單位帳號長度</span><span class="WHIT">
<span class='line'>1457</span> </span><span class="NAME">mainLen</span><span class="PUNC">=</span><span class="NUMB">3</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1458</span> </span><span class="NAME">branchLen</span><span class="PUNC">=</span><span class="NUMB">7</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1459</span>
<span class='line'>1460</span> </span><span class="COMM">/*
<span class='line'>1461</span>
<span class='line'>1462</span> // and, ChooseI 用
<span class='line'>1463</span> bank[Number(id)]={
<span class='line'>1464</span> id:'\d' // 通匯金融代號, 郵局或是銀行代碼
<span class='line'>1465</span> name:'', // 總單位名稱
<span class='line'>1466</span> digital:\d || [\d,..], // 帳號長度之描述
<span class='line'>1467</span> maxD:\d, // max 長度
<span class='line'>1468</span> minD:\d, // min 長度
<span class='line'>1469</span> branch:{ // 分行
<span class='line'>1470</span> 通匯金融代號:支單位名稱,..
<span class='line'>1471</span> }
<span class='line'>1472</span> }
<span class='line'>1473</span>
<span class='line'>1474</span> */</span><span class="WHIT">
<span class='line'>1475</span>
<span class='line'>1476</span> </span><span class="NAME">bank</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1477</span> </span><span class="NAME">bankNow</span><span class="PUNC">,</span><span class="NAME">bankIdNow</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1478</span>
<span class='line'>1479</span> </span><span class="NAME">getBankID</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="NAME">force</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1480</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">bank</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">=</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1481</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1482</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">force</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="STRN">'branch'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o.branch</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1483</span>
<span class='line'>1484</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getBankID: load ['+path+'id'+(id>99?'':id>9?'0':'00')+id+'.csv]');</span><span class="WHIT">
<span class='line'>1485</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1486</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">getU</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">+</span><span class="STRN">'id'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">></span><span class="NUMB">99</span><span class="PUNC">?</span><span class="STRN">''</span><span class="PUNC">:</span><span class="NAME">id</span><span class="PUNC">></span><span class="NUMB">9</span><span class="PUNC">?</span><span class="STRN">'0'</span><span class="PUNC">:</span><span class="STRN">'00'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">id</span><span class="PUNC">+</span><span class="STRN">'.csv'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1487</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1488</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getBankID: &lt;em>Can not get data: ['+url+']!&lt;/em> '+e.message);</span><span class="WHIT">
<span class='line'>1489</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1490</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1491</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">d</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">parseCSV</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">d.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1492</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getBankID: Can not read data from ['+url+']!');</span><span class="WHIT">
<span class='line'>1493</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1494</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1495</span>
<span class='line'>1496</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>1497</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">o.branch</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">d.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1498</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1499</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getBankID: branch ['+d[i][0]+'] '+d[i][1]),</span><span class="WHIT">
<span class='line'>1500</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1501</span>
<span class='line'>1502</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1503</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1504</span>
<span class='line'>1505</span> </span><span class="COMM">// 將帳號長度之描述轉成帳號長度, return max digital</span><span class="WHIT">
<span class='line'>1506</span> </span><span class="NAME">getDigital</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1507</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">=</span><span class="NAME">bank</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">=</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">,</span><span class="NAME">max</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">min</span><span class="PUNC">=</span><span class="NAME">Number.MAX_VALUE</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1508</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">o</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// error</span><span class="WHIT">
<span class='line'>1509</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="STRN">'maxD'</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o.maxD</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 作過了</span><span class="WHIT">
<span class='line'>1510</span>
<span class='line'>1511</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getDigital: get id '+id+', parse ['+o.digital+']');</span><span class="WHIT">
<span class='line'>1512</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">o.digital</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">d.replace</span><span class="PUNC">(</span><span class="REGX">/\n/g</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/\d{1,2}位/g</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1513</span>
<span class='line'>1514</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// 有可能資料錯誤,無法取得。</span><span class="WHIT">
<span class='line'>1515</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">a.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1516</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/\d{1,2}/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1517</span> </span><span class="WHIT"> </span><span class="NAME">d.push</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1518</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">min</span><span class="PUNC">></span><span class="NAME">m</span><span class="PUNC">)</span><span class="NAME">min</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1519</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">max</span><span class="PUNC">&lt;</span><span class="NAME">m</span><span class="PUNC">)</span><span class="NAME">max</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1520</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1521</span>
<span class='line'>1522</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">d.length</span><span class="PUNC">)</span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">max</span><span class="PUNC">=</span><span class="NAME">min</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1523</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">d.length</span><span class="PUNC">==</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">max</span><span class="PUNC">=</span><span class="NAME">min</span><span class="PUNC">=</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1524</span>
<span class='line'>1525</span> </span><span class="WHIT"> </span><span class="COMM">//sl('getDigital: '+o.name+' '+min+'-'+max);</span><span class="WHIT">
<span class='line'>1526</span> </span><span class="WHIT"> </span><span class="NAME">o.maxD</span><span class="PUNC">=</span><span class="NAME">max</span><span class="PUNC">,</span><span class="NAME">o.minD</span><span class="PUNC">=</span><span class="NAME">min</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1527</span>
<span class='line'>1528</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">max</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1529</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1530</span>
<span class='line'>1531</span> </span><span class="COMM">// 模擬 inherits</span><span class="WHIT">
<span class='line'>1532</span> </span><span class="NAME">_</span><span class="PUNC">=</span><span class="NAME">ChooseI.clone</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1533</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1534</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_t.loaded</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1535</span>
<span class='line'>1536</span> </span><span class="WHIT"> </span><span class="NAME">_t.setClassName</span><span class="PUNC">(</span><span class="STRN">'accountF_input'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1537</span> </span><span class="WHIT"> </span><span class="NAME">_t.setSearch</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1538</span> </span><span class="WHIT"> </span><span class="COMM">//if(k)sl('compare function: ['+k+'], ['+(typeof i)+']'+i);</span><span class="WHIT">
<span class='line'>1539</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">?</span><span class="WHIT">
<span class='line'>1540</span> </span><span class="WHIT"> </span><span class="COMM">// bank</span><span class="WHIT">
<span class='line'>1541</span> </span><span class="WHIT"> </span><span class="NAME">i.id.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">k.length</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="NAME">k</span><span class="PUNC">||</span><span class="NAME">i.name.indexOf</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT">
<span class='line'>1542</span> </span><span class="WHIT"> </span><span class="COMM">// bank.branch</span><span class="WHIT">
<span class='line'>1543</span> </span><span class="WHIT"> </span><span class="PUNC">:</span><span class="NAME">i.length</span><span class="PUNC">&lt;</span><span class="NAME">k.length</span><span class="PUNC">?</span><span class="NUMB">0</span><span class="COMM">/*i==k.slice(0,i.length)*/</span><span class="PUNC">:</span><span class="NAME">i.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">k.length</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="NAME">k</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1544</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1545</span> </span><span class="WHIT"> </span><span class="NAME">_t.setInputType</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1546</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">_t.onInput</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1547</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_t.onInput</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1548</span> </span><span class="WHIT"> </span><span class="COMM">//sl('onInput: input ['+k+'] - '+k.slice(0,3))</span><span class="WHIT">
<span class='line'>1549</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">_t.inputAs</span><span class="PUNC">!=</span><span class="NUMB">2</span><span class="PUNC">&&</span><span class="NAME">k</span><span class="PUNC">&&</span><span class="NAME">k.length</span><span class="PUNC">>=</span><span class="NAME">mainLen</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1550</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">=</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">k.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">mainLen</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1551</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">bank</span><span class="PUNC">[</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">getBankID</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="NAME">l</span><span class="PUNC">!==</span><span class="NAME">_t.setAllList</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1552</span> </span><span class="WHIT"> </span><span class="NAME">bankNow</span><span class="PUNC">=</span><span class="NAME">bank</span><span class="PUNC">[</span><span class="NAME">bankIdNow</span><span class="PUNC">=</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">name</span><span class="PUNC">,</span><span class="NAME">_t.setInputType</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_t.setAllList</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1553</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">bank</span><span class="PUNC">!==</span><span class="NAME">_t.setAllList</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">bankNow</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">bankIdNow</span><span class="PUNC">=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">_t.setInputType</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">_t.setAllList</span><span class="PUNC">(</span><span class="NAME">bank</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1554</span> </span><span class="WHIT"> </span><span class="COMM">// 執行主要功能</span><span class="WHIT">
<span class='line'>1555</span> </span><span class="WHIT"> </span><span class="NAME">i.apply</span><span class="PUNC">(</span><span class="NAME">_t</span><span class="PUNC">,</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1556</span> </span><span class="WHIT"> </span><span class="COMM">// 若達到標標準,則 triggerToInput。</span><span class="WHIT">
<span class='line'>1557</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">_t.clickNow</span><span class="PUNC">&&</span><span class="NAME">k</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">_t.inputAs</span><span class="PUNC">==</span><span class="NUMB">2</span><span class="PUNC">&&</span><span class="NAME">k.length</span><span class="PUNC">==</span><span class="NAME">mainLen</span><span class="PUNC">||</span><span class="NAME">_t.inputAs</span><span class="PUNC">==</span><span class="NUMB">3</span><span class="PUNC">&&</span><span class="NAME">k.length</span><span class="PUNC">==</span><span class="NAME">branchLen</span><span class="PUNC">||</span><span class="NAME">k.length</span><span class="PUNC">==</span><span class="NAME">getDigital</span><span class="PUNC">(</span><span class="NAME">bankIdNow</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1558</span> </span><span class="WHIT"> </span><span class="NAME">_t.triggerToInput</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1559</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">_t.focus</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1560</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1561</span> </span><span class="WHIT"> </span><span class="NAME">_t.triggerToInput</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1562</span> </span><span class="WHIT"> </span><span class="NAME">_t.focus</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1563</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>1564</span> </span><span class="NAME">_p</span><span class="PUNC">=</span><span class="NAME">_.prototype</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1565</span>
<span class='line'>1566</span>
<span class='line'>1567</span> </span><span class="COMM">// class public interface ---------------------------</span><span class="WHIT">
<span class='line'>1568</span>
<span class='line'>1569</span>
<span class='line'>1570</span> </span><span class="COMM">// read bank id data</span><span class="WHIT">
<span class='line'>1571</span> </span><span class="COMM">// 這應該在所有 new 之前先作!</span><span class="WHIT">
<span class='line'>1572</span> </span><span class="NAME">_.readData</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">url</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1573</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">url</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1574</span> </span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">=</span><span class="NAME">url.match</span><span class="PUNC">(</span><span class="REGX">/^(.+\/)?([^\/]+)$/</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1575</span>
<span class='line'>1576</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1577</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1578</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">getU</span><span class="PUNC">(</span><span class="NAME">url</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1579</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1580</span> </span><span class="WHIT"> </span><span class="COMM">//sl('readData: &lt;em>Can not get data: ['+url+']!&lt;/em> '+e.message);</span><span class="WHIT">
<span class='line'>1581</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1582</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1583</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">=</span><span class="NAME">parseCSV</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="NAME">data.length</span><span class="PUNC">&lt;</span><span class="NUMB">9</span><span class="PUNC">||</span><span class="NAME">data</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">&lt;</span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1584</span> </span><span class="WHIT"> </span><span class="COMM">//sl('readData: Can not read data from ['+url+']!');</span><span class="WHIT">
<span class='line'>1585</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1586</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1587</span>
<span class='line'>1588</span> </span><span class="WHIT"> </span><span class="COMM">// reset</span><span class="WHIT">
<span class='line'>1589</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1590</span>
<span class='line'>1591</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">data.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1592</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="NAME">data</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1593</span> </span><span class="WHIT"> </span><span class="NAME">bank</span><span class="PUNC">[</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1594</span> </span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">:</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// 通匯金融代號</span><span class="WHIT">
<span class='line'>1595</span> </span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">:</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// 總單位名稱</span><span class="WHIT">
<span class='line'>1596</span> </span><span class="WHIT"> </span><span class="NAME">digital</span><span class="PUNC">:</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="COMM">// 帳號長度之描述</span><span class="WHIT">
<span class='line'>1597</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1598</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>1599</span>
<span class='line'>1600</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1601</span>
<span class='line'>1602</span>
<span class='line'>1603</span> </span><span class="COMM">// class constructor ---------------------------</span><span class="WHIT">
<span class='line'>1604</span>
<span class='line'>1605</span> </span><span class="NAME">_.readData</span><span class="PUNC">(</span><span class="STRN">'bank/id.csv'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1606</span>
<span class='line'>1607</span>
<span class='line'>1608</span> </span><span class="COMM">// 不再使繼承</span><span class="WHIT">
<span class='line'>1609</span> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">_.clone</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1610</span>
<span class='line'>1611</span>
<span class='line'>1612</span> </span><span class="COMM">// instance public interface -------------------</span><span class="WHIT">
<span class='line'>1613</span>
<span class='line'>1614</span> </span><span class="COMM">// 1: all, 2: 到總單位, 3: 到支單位</span><span class="WHIT">
<span class='line'>1615</span> </span><span class="NAME">_p.setInputType</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// (type,id)</span><span class="WHIT">
<span class='line'>1616</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_t</span><span class="PUNC">=</span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1617</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="NAME">_t.inputAs</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">i</span><span class="PUNC">||</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1618</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">_t.inputAs</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1619</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="NAME">_t.setMaxLength</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">==</span><span class="NUMB">2</span><span class="PUNC">?</span><span class="NAME">mainLen</span><span class="PUNC">:</span><span class="NAME">t</span><span class="PUNC">==</span><span class="NUMB">3</span><span class="PUNC">?</span><span class="NAME">branchLen</span><span class="PUNC">:</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NUMB">0</span><span class="PUNC">?</span><span class="NUMB">20</span><span class="PUNC">:</span><span class="NAME">getDigital</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="NAME">mainLen</span><span class="PUNC">+</span><span class="NAME">getDigital</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="NUMB">20</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// mainLen+getDigital(i): 看來似乎必要這麼做</span><span class="WHIT">
<span class='line'>1620</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1621</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1622</span>
<span class='line'>1623</span> </span><span class="COMM">// input: (list, index), return [value, title[, key=title||value]]</span><span class="WHIT">
<span class='line'>1624</span> </span><span class="NAME">_p.onList</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1625</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">bankNow</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">+</span><span class="STRN">' '</span><span class="PUNC">+</span><span class="NAME">bankNow</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1626</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">name</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">id</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1627</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1628</span>
<span class='line'>1629</span> </span><span class="COMM">// input: (list, index), return value to set as input key</span><span class="WHIT">
<span class='line'>1630</span> </span><span class="NAME">_p.onSelect</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1631</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">bankNow</span><span class="PUNC">?</span><span class="NAME">i</span><span class="PUNC">:</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1632</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1633</span>
<span class='line'>1634</span> </span><span class="NAME">_p.verify</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>1635</span> </span><span class="WHIT"> </span><span class="COMM">//sl('verify ['+k+']');</span><span class="WHIT">
<span class='line'>1636</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1637</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">k</span><span class="PUNC">&&</span><span class="NAME">k</span><span class="PUNC">!==</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1638</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="REGX">/^\d+$/</span><span class="PUNC">.</span><span class="NAME">test</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1639</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">k.length</span><span class="PUNC">>=</span><span class="NAME">mainLen</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1640</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">bank</span><span class="PUNC">[</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">k.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">mainLen</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">k.length</span><span class="PUNC">>=</span><span class="NAME">branchLen</span><span class="PUNC">&&</span><span class="NAME">bank</span><span class="PUNC">[</span><span class="NAME">m</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">branch</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">k.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">branchLen</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">bank</span><span class="PUNC">[</span><span class="NAME">m</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">branch</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>1641</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1642</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1643</span>
<span class='line'>1644</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">_</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1645</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// (function(){</span><span class="WHIT">
<span class='line'>1646</span>
<span class='line'>1647</span> </span><span class="COMM">// ===================================================</span><span class="WHIT">
<span class='line'>1648</span>
<span class='line'>1649</span>
<span class='line'>1650</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>1651</span> </span><span class="COMM">// prevent re-use. 防止再造 </span><span class="WHIT">
<span class='line'>1652</span> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">ChooseI.clone</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1653</span>
<span class='line'>1654</span>
<span class='line'>1655</span>
<span class='line'>1656</span>
<span class='line'>1657</span>
<span class='line'>1658</span>
<span class='line'>1659</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
<span class='line'>1660</span> </span><span class="WHIT"> </span><span class="NAME">CeL.net.form</span><span class="WHIT">
<span class='line'>1661</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1662</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1663</span>
<span class='line'>1664</span> </span><span class="COMM">//===================================================</span><span class="WHIT">
<span class='line'>1665</span>
<span class='line'>1666</span> </span><span class="NAME">CeL.setup_module</span><span class="PUNC">(</span><span class="NAME">module_name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">code_for_including</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1667</span>
<span class='line'>1668</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>1669</span> </span></pre></body></html>