Changeset 20267

Show
Ignore:
Timestamp:
09/30/08 13:42:39 (9 months ago)
Author:
thorikawa
Message:

名前空間の見直し(基本的に全てのJavaScript変数をfiremobilesimulator.*以下に配置するようにした)
端末編集画面で編集した際に、その端末が選択状態になってしまうバグを修正
配列.map関数で動いていなかった部分を修正

Location:
platform/firefox/FireMobileSimulator/trunk
Files:
2 added
1 removed
27 modified
2 moved

Legend:

Unmodified
Added
Removed
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/about.xul

    r19736 r20267  
    2828<vbox> 
    2929  <label value="FireMobileSimulator" style="font-weight: bold; font-size: x-large;"/> 
    30   <label value="&version; 0.1.4"/> 
     30  <label value="&version; 0.1.5pre"/> 
    3131  <separator class="thin"/> 
    3232  <label value="&createdBy;" style="font-weight: bold;"/> 
     
    3434  <separator class="thin"/> 
    3535  <label value="&homepage;" style="font-weight: bold;"/> 
    36   <label onclick="openURL(this.value)" class="text-link" value="https://addons.mozilla.org/firefox/addon/8519"/> 
     36  <label onclick="firemobilesimulator.common.util.openURL(this.value)" class="text-link" value="https://addons.mozilla.org/firefox/addon/8519"/> 
    3737  <separator class="thin"/> 
    3838</vbox> 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/common/carrier.js

    r19736 r20267  
    1 /* ***** BEGIN LICENSE BLOCK Version: GPL 3.0 *****  
    2  * FireMobileFimulator is a Firefox add-on that simulate web browsers of  
    3  * japanese mobile phones. 
    4  * Copyright (C) 2008  Takahiro Horikawa <horikawa.takahiro@gmail.com> 
    5  * 
    6  * This program is free software: you can redistribute it and/or modify 
    7  * it under the terms of the GNU General Public License as published by 
    8  * the Free Software Foundation, either version 3 of the License, or 
    9  * (at your option) any later version. 
    10  * 
    11  * This program is distributed in the hope that it will be useful, 
    12  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    14  * GNU General Public License for more details. 
    15  * 
    16  * You should have received a copy of the GNU General Public License 
    17  * along with this program.  If not, see <http://www.gnu.org/licenses/>. 
    18  * ***** END LICENSE BLOCK ***** */ 
     1/******************************************************************************* 
     2 * ***** BEGIN LICENSE BLOCK Version: GPL 3.0 FireMobileFimulator is a Firefox 
     3 * add-on that simulate web browsers of japanese mobile phones. Copyright (C) 
     4 * 2008 Takahiro Horikawa <horikawa.takahiro@gmail.com> 
     5 *  
     6 * This program is free software: you can redistribute it and/or modify it under 
     7 * the terms of the GNU General Public License as published by the Free Software 
     8 * Foundation, either version 3 of the License, or (at your option) any later 
     9 * version. 
     10 *  
     11 * This program is distributed in the hope that it will be useful, but WITHOUT 
     12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
     13 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 
     14 * details. 
     15 *  
     16 * You should have received a copy of the GNU General Public License along with 
     17 * this program. If not, see <http://www.gnu.org/licenses/>. ***** END LICENSE 
     18 * BLOCK ***** 
     19 */ 
    1920 
    2021// キャリア別の端末の設定 
     22var firemobilesimulator; 
     23if (!firemobilesimulator) 
     24        firemobilesimulator = {}; 
     25if (!firemobilesimulator.common) 
     26        firemobilesimulator.common = {}; 
     27if (!firemobilesimulator.common.carrier) 
     28        firemobilesimulator.common.carrier = {}; 
    2129 
    22 const DOCOMO = "DC"; 
    23 const AU = "AU"; 
    24 const SOFTBANK = "SB"; 
     30/** 
     31 * 各キャリアを示す定数 
     32 * @type String 
     33 */ 
     34firemobilesimulator.common.carrier.DOCOMO = "DC"; 
     35firemobilesimulator.common.carrier.AU = "AU"; 
     36firemobilesimulator.common.carrier.SOFTBANK = "SB"; 
    2537 
    26 var carrierArray = [DOCOMO, AU, SOFTBANK]; 
     38/** 
     39 * 各キャリアを示す定数配列  
     40 */ 
     41firemobilesimulator.common.carrier.carrierArray = [firemobilesimulator.common.carrier.DOCOMO, firemobilesimulator.common.carrier.AU, firemobilesimulator.common.carrier.SOFTBANK]; 
    2742 
    28 var carrierName = { 
     43/** 
     44 * 各キャリアの正式名称を示すマップ  
     45 */ 
     46firemobilesimulator.common.carrier.carrierName = { 
    2947        DC : "DoCoMo", 
    30         AU : "Au", 
     48        AU : "au", 
    3149        SB : "SoftBank" 
    3250}; 
    3351 
    34 var deviceBasicAttribute = ["device", "useragent", "carrier"]; 
     52/** 
     53 * キャリア共通の属性  
     54 */ 
     55firemobilesimulator.common.carrier.deviceBasicAttribute = ["device", "useragent", "carrier"]; 
    3556 
    36 var deviceAttribute = { 
     57/** 
     58 * キャリア固有の属性 
     59 */ 
     60firemobilesimulator.common.carrier.deviceAttribute = { 
    3761        DC : [], 
    3862        AU : ["x-up-devcap-multimedia", "x-up-devcap-cc", "x-up-devcap-iscolor", 
     
    4468}; 
    4569 
    46 function setDevice(carrier, id) { 
    47  
    48         dump("setDevice:"+carrier+",id:"+id+"\n"); 
    49         var msimButton = document.getElementById("msim-button"); 
    50  
    51         if (!carrier || !id) { 
    52                 dump("[msim]Error : the attribute which you have selected is insufficient.\n"); 
    53                 return; 
    54         } 
    55  
    56         var pref_prefix = "msim.devicelist." + carrier + "." + id; 
    57         pref.setUnicharPref("msim.current.carrier", pref 
    58                                         .copyUnicharPref(pref_prefix + ".carrier")); 
    59         pref.setUnicharPref("msim.current.device", pref.copyUnicharPref(pref_prefix 
    60                                         + ".device")); 
    61  
    62         var useragent = pref.copyUnicharPref(pref_prefix + ".useragent"); 
    63         if (SOFTBANK == carrier) { 
    64                 useragent = getSoftBankUserAgent(useragent, pref 
    65                                                 .copyUnicharPref("msim.config.SB.serial")); 
    66         } 
    67  
    68         pref.setUnicharPref("general.useragent.override", useragent); 
    69         pref.setUnicharPref("msim.current.useragent", useragent); 
    70         pref.setUnicharPref("msim.current.id", id); 
    71  
    72         msim.updateIcon(); 
    73 }; 
    74  
    75 function getSoftBankUserAgent(useragent, serial) { 
    76         var notifySerial = pref.getBoolPref("msim.config.SB.notifyserial"); 
     70firemobilesimulator.common.carrier.getSoftBankUserAgent = function(useragent, serial) { 
     71        var notifySerial = parent.firemobilesimulator.common.pref.getBoolPref("msim.config.SB.notifyserial"); 
    7772        if (true == notifySerial) { 
    7873                useragent = useragent.replace("[/Serial]", "/" + serial); 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/common/ecl.js

    r19719 r20267  
    1717 * along with this program.  If not, see <http://www.gnu.org/licenses/>. 
    1818 * ***** END LICENSE BLOCK ***** */ 
    19  
    20 EscapeSJIS=function(str){ 
     19var firemobilesimulator; 
     20if(!firemobilesimulator) firemobilesimulator = {}; 
     21if(!firemobilesimulator.common) firemobilesimulator.common = {}; 
     22if(!firemobilesimulator.common.ecl) firemobilesimulator.common.ecl = {}; 
     23 
     24firemobilesimulator.common.ecl.EscapeSJIS=function(str){ 
    2125        return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){ 
    2226                var c=s.charCodeAt(0),m; 
    23                 return c<128?(c<16?"%0":"%")+c.toString(16).toUpperCase():65376<c&&c<65440?"%"+(c-65216).toString(16).toUpperCase():(c=JCT11280.indexOf(s))<0?"%81E":"%"+((m=((c<8272?c:(c=JCT11280.lastIndexOf(s)))-(c%=188))/188)<31?m+129:m+193).toString(16).toUpperCase()+(64<(c+=c<63?64:65)&&c<91||95==c||96<c&&c<123?String.fromCharCode(c):"%"+c.toString(16).toUpperCase()) 
    24         }) 
    25 }; 
    26  
    27 UnescapeSJIS=function(str){ 
     27                return c<128?(c<16?"%0":"%")+c.toString(16).toUpperCase():65376<c&&c<65440?"%"+(c-65216).toString(16).toUpperCase():(c=firemobilesimulator.common.ecl.JCT11280.indexOf(s))<0?"%81E":"%"+((m=((c<8272?c:(c=firemobilesimulator.common.ecl.JCT11280.lastIndexOf(s)))-(c%=188))/188)<31?m+129:m+193).toString(16).toUpperCase()+(64<(c+=c<63?64:65)&&c<91||95==c||96<c&&c<123?String.fromCharCode(c):"%"+c.toString(16).toUpperCase()) 
     28        }) 
     29}; 
     30 
     31firemobilesimulator.common.ecl.UnescapeSJIS=function(str){ 
    2832        return str.replace(/%(8[1-9A-F]|[9E][0-9A-F]|F[0-9A-C])(%[4-689A-F][0-9A-F]|%7[0-9A-E]|[@-~])|%([0-7][0-9A-F]|A[1-9A-F]|[B-D][0-9A-F])/ig,function(s){ 
    2933                var c=parseInt(s.substring(1,3),16),l=s.length; 
    30                 return 3==l?String.fromCharCode(c<160?c:c+65216):JCT11280.charAt((c<160?c-129:c-193)*188+(4==l?s.charCodeAt(3)-64:(c=parseInt(s.substring(4),16))<127?c-64:c-65)) 
    31         }) 
    32 }; 
    33  
    34 EscapeEUCJP=function(str){ 
    35         return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){ 
    36                 var c=s.charCodeAt(0); 
    37                 return (c<128?(c<16?"%0":"%")+c.toString(16):65376<c&&c<65440?"%8E%"+(c-65216).toString(16):(c=JCT8836.indexOf(s))<0?"%A1%A6":"%"+((c-(c%=94))/94+161).toString(16)+"%"+(c+161).toString(16)).toUpperCase() 
    38         }) 
    39 }; 
    40  
    41 UnescapeEUCJP=function(str){ 
     34                return 3==l?String.fromCharCode(c<160?c:c+65216):firemobilesimulator.common.ecl.JCT11280.charAt((c<160?c-129:c-193)*188+(4==l?s.charCodeAt(3)-64:(c=parseInt(s.substring(4),16))<127?c-64:c-65)) 
     35        }) 
     36}; 
     37 
     38firemobilesimulator.common.ecl.EscapeEUCJP=function(str){ 
     39        return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){ 
     40                var c=s.charCodeAt(0); 
     41                return (c<128?(c<16?"%0":"%")+c.toString(16):65376<c&&c<65440?"%8E%"+(c-65216).toString(16):(c=firemobilesimulator.common.ecl.JCT8836.indexOf(s))<0?"%A1%A6":"%"+((c-(c%=94))/94+161).toString(16)+"%"+(c+161).toString(16)).toUpperCase() 
     42        }) 
     43}; 
     44 
     45firemobilesimulator.common.ecl.UnescapeEUCJP=function(str){ 
    4246        return str.replace(/(%A[1-9A-F]|%[B-E][0-9A-F]|%F[0-9A-E]){2}|%8E%(A[1-9A-F]|[B-D][0-9A-F])|%[0-7][0-9A-F]/ig,function(s){ 
    4347                var c=parseInt(s.substring(1),16); 
    44                 return c<161?String.fromCharCode(c<128?c:parseInt(s.substring(4),16)+65216):JCT8836.charAt((c-161)*94+parseInt(s.substring(4),16)-161) 
    45         }) 
    46 }; 
    47  
    48 EscapeJIS7=function(str){ 
     48                return c<161?String.fromCharCode(c<128?c:parseInt(s.substring(4),16)+65216):firemobilesimulator.common.ecl.JCT8836.charAt((c-161)*94+parseInt(s.substring(4),16)-161) 
     49        }) 
     50}; 
     51 
     52firemobilesimulator.common.ecl.EscapeJIS7=function(str){ 
    4953        var u=String.fromCharCode,ri=u(92,120,48,48,45,92,120,55,70),rj=u(65377,45,65439,93,43), 
    5054        H=function(c){ 
     
    6165                var c,i=0,t="%1B%28I";while(c=s.charCodeAt(i++))t+=H(c-65344);return t 
    6266        }).replace(RegExp("[^"+ri+rj,"g"),function(s){ 
    63                 var a,c,i=0,t="%1B%24B";while(a=s.charAt(i++))t+=(c=JCT8836.indexOf(a))<0?"%21%26":H((c-(c%=94))/94+33)+H(c+33);return t 
     67                var a,c,i=0,t="%1B%24B";while(a=s.charAt(i++))t+=(c=firemobilesimulator.common.ecl.JCT8836.indexOf(a))<0?"%21%26":H((c-(c%=94))/94+33)+H(c+33);return t 
    6468        }).slice(8,-1) 
    6569}; 
    6670 
    67 UnescapeJIS7=function(str){ 
     71firemobilesimulator.common.ecl.UnescapeJIS7=function(str){ 
    6872        var i=0,p,q,s="",u=String.fromCharCode, 
    6973        P=("%28B"+str.replace(/%49/g,"I").replace(/%1B%24%4[02]|%1B%24@/ig,"%1B%24B")).split(/%1B/i), 
     
    7680        K=function(s){ 
    7781                var l=s.length; 
    78                 return JCT8836.charAt(4<l?(parseInt(s.substring(1),16)-33)*94+parseInt(s.substring(4),16)-33:2<l?(37==(l=s.charCodeAt(0))?(parseInt(s.substring(1,3),16)-33)*94+s.charCodeAt(3):(l-33)*94+parseInt(s.substring(2),16))-33:(s.charCodeAt(0)-33)*94+s.charCodeAt(1)-33) 
     82                return firemobilesimulator.common.ecl.JCT8836.charAt(4<l?(parseInt(s.substring(1),16)-33)*94+parseInt(s.substring(4),16)-33:2<l?(37==(l=s.charCodeAt(0))?(parseInt(s.substring(1,3),16)-33)*94+s.charCodeAt(3):(l-33)*94+parseInt(s.substring(2),16))-33:(s.charCodeAt(0)-33)*94+s.charCodeAt(1)-33) 
    7983        }, 
    8084        rI=new RegExp,rJ=new RegExp,rK=new RegExp; 
     
    8589}; 
    8690 
    87 EscapeJIS8=function(str){ 
     91firemobilesimulator.common.ecl.EscapeJIS8=function(str){ 
    8892        var u=String.fromCharCode,r=u(92,120,48,48,45,92,120,55,70,65377,45,65439,93,43), 
    8993        H=function(c){ 
     
    98102                return "%1B%28B"+s.replace(rI,I) 
    99103        }).replace(RegExp("[^"+r,"g"),function(s){ 
    100                 var a,c,i=0,t="%1B%24B";while(a=s.charAt(i++))t+=(c=JCT8836.indexOf(a))<0?"%21%26":H((c-(c%=94))/94+33)+H(c+33);return t 
     104                var a,c,i=0,t="%1B%24B";while(a=s.charAt(i++))t+=(c=firemobilesimulator.common.ecl.JCT8836.indexOf(a))<0?"%21%26":H((c-(c%=94))/94+33)+H(c+33);return t 
    101105        }).slice(8,-1) 
    102106}; 
    103107 
    104 UnescapeJIS8=function(str){ 
     108firemobilesimulator.common.ecl.UnescapeJIS8=function(str){ 
    105109        var i=0,p,s="", 
    106110        P=("%28B"+str.replace(/%1B%24%4[02]|%1B%24@/ig,"%1B%24B")).split(/%1B/i), 
     
    111115        K=function(s){ 
    112116                var l=s.length; 
    113                 return JCT8836.charAt(4<l?(parseInt(s.substring(1),16)-33)*94+parseInt(s.substring(4),16)-33:2<l?(37==(l=s.charCodeAt(0))?(parseInt(s.substring(1,3),16)-33)*94+s.charCodeAt(3):(l-33)*94+parseInt(s.substring(2),16))-33:(s.charCodeAt(0)-33)*94+s.charCodeAt(1)-33) 
     117                return firemobilesimulator.common.ecl.JCT8836.charAt(4<l?(parseInt(s.substring(1),16)-33)*94+parseInt(s.substring(4),16)-33:2<l?(37==(l=s.charCodeAt(0))?(parseInt(s.substring(1,3),16)-33)*94+s.charCodeAt(3):(l-33)*94+parseInt(s.substring(2),16))-33:(s.charCodeAt(0)-33)*94+s.charCodeAt(1)-33) 
    114118        }, 
    115119        rI=new RegExp,rK=new RegExp; 
     
    120124}; 
    121125 
    122 EscapeUnicode=function(str){ 
     126firemobilesimulator.common.ecl.EscapeUnicode=function(str){ 
    123127        return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){ 
    124128                var c=s.charCodeAt(0); 
     
    127131}; 
    128132 
    129 UnescapeUnicode=function(str){ 
     133firemobilesimulator.common.ecl.UnescapeUnicode=function(str){ 
    130134        return str.replace(/%u[0-9A-F]{4}|%[0-9A-F]{2}/ig,function(s){ 
    131135                return String.fromCharCode("0x"+s.substring(s.length/3)) 
     
    133137}; 
    134138 
    135 EscapeUTF7=function(str){ 
     139firemobilesimulator.common.ecl.EscapeUTF7=function(str){ 
    136140        var B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), 
    137141        E=function(s){ 
     
    147151}; 
    148152 
    149 UnescapeUTF7=function(str){ 
     153firemobilesimulator.common.ecl.UnescapeUTF7=function(str){ 
    150154        var i=0,B={}; 
    151155        while(i<64)B["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(i)]=i++; 
     
    162166}; 
    163167 
    164 EscapeUTF8=function(str){ 
     168firemobilesimulator.common.ecl.EscapeUTF8=function(str){ 
    165169        return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){ 
    166170                var c=s.charCodeAt(0); 
     
    169173}; 
    170174 
    171 UnescapeUTF8=function(str){ 
     175firemobilesimulator.common.ecl.UnescapeUTF8=function(str){ 
    172176        return str.replace(/%(E(0%[AB]|[1-CEF]%[89AB]|D%[89])[0-9A-F]|C[2-9A-F]|D[0-9A-F])%[89AB][0-9A-F]|%[0-7][0-9A-F]/ig,function(s){ 
    173177                var c=parseInt(s.substring(1),16); 
     
    176180}; 
    177181 
    178 EscapeUTF16LE=function(str){ 
     182firemobilesimulator.common.ecl.EscapeUTF16LE=function(str){ 
    179183        var H=function(c){ 
    180184                return 41<c&&c<58&&44!=c||64<c&&c<91||95==c||96<c&&c<123?String.fromCharCode(c):(c<16?"%0":"%")+c.toString(16).toUpperCase() 
     
    185189}; 
    186190 
    187 UnescapeUTF16LE=function(str){ 
     191firemobilesimulator.common.ecl.UnescapeUTF16LE=function(str){ 
    188192        var u=String.fromCharCode,b=u(92,120,48,48,45,92,120,70,70); 
    189193        return str.replace(/^%FF%FE/i,"").replace(RegExp("%[0-9A-F]{2}%[0-9A-F]{2}|%[0-9A-F]{2}["+b+"]|["+b+"]%[0-9A-F]{2}|["+b+"]{2}","ig"),function(s){ 
     
    193197}; 
    194198 
    195 GetEscapeCodeType=function(str){ 
     199firemobilesimulator.common.ecl.GetEscapeCodeType=function(str){ 
    196200        if(/%u[0-9A-F]{4}/i.test(str))return "Unicode"; 
    197201        if(/%([0-9A-DF][0-9A-F]%[8A]0%|E0%80|[0-7][0-9A-F]|C[01])%[8A]0|%00|%[7F]F/i.test(str))return "UTF16LE"; 
     
    218222}; 
    219223 
    220 JCT11280=Function('var a="zKV33~jZ4zN=~ji36XazM93y!{~k2y!o~k0ZlW6zN?3Wz3W?{EKzK[33[`y|;-~j^YOTz$!~kNy|L1$353~jV3zKk3~k-4P4zK_2+~jY4y!xYHR~jlz$_~jk4z$e3X5He<0y!wy|X3[:~l|VU[F3VZ056Hy!nz/m1XD61+1XY1E1=1y|bzKiz!H034zKj~mEz#c5ZA3-3X$1~mBz$$3~lyz#,4YN5~mEz#{ZKZ3V%7Y}!J3X-YEX_J(3~mAz =V;kE0/y|F3y!}~m>z/U~mI~j_2+~mA~jp2;~m@~k32;~m>V}2u~mEX#2x~mBy+x2242(~mBy,;2242(~may->2&XkG2;~mIy-_2&NXd2;~mGz,{4<6:.:B*B:XC4>6:.>B*BBXSA+A:X]E&E<~r#z+625z s2+zN=`HXI@YMXIAXZYUM8X4K/:Q!Z&33 3YWX[~mB`{zKt4z (zV/z 3zRw2%Wd39]S11z$PAXH5Xb;ZQWU1ZgWP%3~o@{Dgl#gd}T){Uo{y5_d{e@}C(} WU9|cB{w}bzvV|)[} H|zT}d||0~{]Q|(l{|x{iv{dw}(5}[Z|kuZ }cq{{y|ij}.I{idbof%cu^d}Rj^y|-M{ESYGYfYsZslS`?ZdYO__gLYRZ&fvb4oKfhSf^d<Yeasc1f&a=hnYG{QY{D`Bsa|u,}Dl|_Q{C%xK|Aq}C>|c#ryW=}eY{L+`)][YF_Ub^h4}[X|?r|u_ex}TL@YR]j{SrXgo*|Gv|rK}B#mu{R1}hs|dP{C7|^Qt3|@P{YVV |8&}#D}ef{e/{Rl|>Hni}R1{Z#{D[}CQlQ||E}[s{SG_+i8eplY[=[|ec[$YXn#`hcm}YR|{Ci(_[ql|?8p3]-}^t{wy}4la&pc|3e{Rp{LqiJ],] `kc(]@chYnrM`O^,ZLYhZB]ywyfGY~aex!_Qww{a!|)*lHrM{N+n&YYj~Z b c#e_[hZSon|rOt`}hBXa^i{lh|<0||r{KJ{kni)|x,|0auY{D!^Sce{w;|@S|cA}Xn{C1h${E]Z-XgZ*XPbp]^_qbH^e[`YM|a||+=]!Lc}]vdBc=j-YSZD]YmyYLYKZ9Z>Xcczc2{Yh}9Fc#Z.l{}(D{G{{mRhC|L3b#|xK[Bepj#ut`H[,{E9Yr}1b{[e]{ZFk7[ZYbZ0XL]}Ye[(`d}c!|*y`Dg=b;gR]Hm=hJho}R-[n}9;{N![7k_{UbmN]rf#pTe[x8}!Qcs_rs[m`|>N}^V})7{^r|/E}),}HH{OYe2{Skx)e<_.cj.cjoMhc^d}0uYZd!^J_@g,[[[?{i@][|3S}Yl3|!1|eZ|5IYw|1D}e7|Cv{OHbnx-`wvb[6[4} =g+k:{C:}ed{S]|2M]-}WZ|/q{LF|dYu^}Gs^c{Z=}h>|/i|{W]:|ip{N:|zt|S<{DH[p_tvD{N<[8Axo{X4a.^o^X>Yfa59`#ZBYgY~_t^9`jZHZn`>G[oajZ;X,i)Z.^~YJe ZiZF^{][[#Zt^|]Fjx]&_5dddW]P0C[-]}]d|y {C_jUql] |OpaA[Z{lp|rz}:Mu#]_Yf6{Ep?f5`$[6^D][^u[$[6^.Z8]]ePc2U/=]K^_+^M{q*|9tYuZ,s(dS{i=|bNbB{uG}0jZOa:[-]dYtu3]:]<{DJ_SZIqr_`l=Yt`gkTnXb3d@kiq0a`Z{|!B|}e}Ww{Sp,^Z|0>_Z}36|]A|-t}lt{R6pi|v8hPu#{C>YOZHYmg/Z4nicK[}hF_Bg|YRZ7c|crkzYZY}_iXcZ.|)U|L5{R~qi^Uga@Y[xb}&qdbd6h5|Btw[}c<{Ds53[Y7]?Z<|e0{L[ZK]mXKZ#Z2^tavf0`PE[OSOaP`4gi`qjdYMgys/?[nc,}EEb,eL]g[n{E_b/vcvgb.{kcwi`~v%|0:|iK{Jh_vf5lb}KL|(oi=LrzhhY_^@`zgf[~g)[J_0fk_V{T)}I_{D&_/d9W/|MU[)f$xW}?$xr4<{Lb{y4}&u{XJ|cm{Iu{jQ}CMkD{CX|7A}G~{kt)nB|d5|<-}WJ}@||d@|Iy}Ts|iL|/^|no|0;}L6{Pm]7}$zf:|r2}?C_k{R(}-w|`G{Gy[g]bVje=_0|PT{^Y^yjtT[[[l!Ye_`ZN]@[n_)j3nEgMa]YtYpZy].d-Y_cjb~Y~[nc~sCi3|zg}B0}do{O^{|$`_|D{}U&|0+{J3|8*]iayx{a{xJ_9|,c{Ee]QXlYb]$[%YMc*]w[aafe]aVYi[fZEii[xq2YQZHg]Y~h#|Y:thre^@^|_F^CbTbG_1^qf7{L-`VFx Zr|@EZ;gkZ@slgko`[e}T:{Cu^pddZ_`yav^Ea+[#ZBbSbO`elQfLui}.F|txYcbQ`XehcGe~fc^RlV{D_0ZAej[l&jShxG[ipB_=u:eU}3e8[=j|{D(}dO{Do[BYUZ0/]AYE]ALYhZcYlYP/^-^{Yt_1_-;YT`P4BZG=IOZ&]H[e]YYd[9^F[1YdZxZ?Z{Z<]Ba2[5Yb[0Z4l?]d_;_)a?YGEYiYv`_XmZs4ZjY^Zb]6gqGaX^9Y}dXZr[g|]Y}K aFZp^k^F]M`^{O1Ys]ZCgCv4|E>}8eb7}l`{L5[Z_faQ|c2}Fj}hw^#|Ng|B||w2|Sh{v+[G}aB|MY}A{|8o}X~{E8paZ:]i^Njq]new)`-Z>haounWhN}c#{DfZ|fK]KqGZ=:u|fqoqcv}2ssm}.r{]{nIfV{JW)[K|,Z{Uxc|]l_KdCb%]cfobya3`p}G^|LZiSC]U|(X|kBlVg[kNo({O:g:|-N|qT}9?{MBiL}Sq{`P|3a|u.{Uaq:{_o|^S}jX{Fob0`;|#y_@[V[K|cw[<_ }KU|0F}d3|et{Q7{LuZttsmf^kYZ`Af`}$x}U`|Ww}d]| >}K,r&|XI|*e{C/a-bmr1fId4[;b>tQ_:]hk{b-pMge]gfpo.|(w[jgV{EC1Z,YhaY^q,_G[c_g[J0YX]`[h^hYK^_Yib,` {i6vf@YM^hdOKZZn(jgZ>bzSDc^Z%[[o9[2=/YHZ(_/Gu_`*|8z{DUZxYt^vuvZjhi^lc&gUd4|<UiA`z]$b/Z?l}YI^jaHxe|;F}l${sQ}5g}hA|e4}?o{ih}Uz{C)jPe4]H^J[Eg[|AMZMlc}:,{iz}#*|gc{Iq|/:|zK{l&}#u|myd{{M&v~nV};L|(g|I]ogddb0xsd7^V})$uQ{HzazsgxtsO^l}F>ZB]r|{7{j@cU^{{CbiYoHlng]f+nQ[bkTn/}<-d9q {KXadZYo+n|l[|lc}V2{[a{S4Zam~Za^`{HH{xx_SvF|ak=c^[v^7_rYT`ld@]:_ub%[$[m](Shu}G2{E.ZU_L_R{tz`vj(f?^}hswz}GdZ}{S:h`aD|?W|`dgG|if{a8|J1{N,}-Ao3{H#{mfsP|[ bzn+}_Q{MT{u4kHcj_q`eZj[8o0jy{p7}C|[}l){MuYY{|Ff!Ykn3{rT|m,^R|,R}$~Ykgx{P!]>iXh6[l[/}Jgcg{JYZ.^qYfYIZl[gZ#Xj[Pc7YyZD^+Yt;4;`e8YyZVbQ7YzZxXja.7SYl[s]2^/Ha$[6ZGYrb%XiYdf2]H]kZkZ*ZQ[ZYS^HZXcCc%Z|[(bVZ]]:OJQ_DZCg<[,]%Zaa [g{C00HY[c%[ChyZ,Z_`PbXa+eh`^&jPi0a[ggvhlekL]w{Yp^v}[e{~;k%a&k^|nR_z_Qng}[E}*Wq:{k^{FJZpXRhmh3^p>de^=_7`|ZbaAZtdhZ?n4ZL]u`9ZNc3g%[6b=e.ZVfC[ZZ^^^hD{E(9c(kyZ=bb|Sq{k`|vmr>izlH[u|e`}49}Y%}FT{[z{Rk}Bz{TCc/lMiAqkf(m$hDc;qooi[}^o:c^|Qm}a_{mrZ(pA`,}<2sY| adf_%|}`}Y5U;}/4|D>|$X{jw{C<|F.hK|*A{MRZ8Zsm?imZm_?brYWZrYx`yVZc3a@f?aK^ojEd {bN}/3ZH]/$YZhm^&j 9|(S|b]mF}UI{q&aM]LcrZ5^.|[j`T_V_Gak}9J[ ZCZD|^h{N9{~&[6Zd{}B}2O|cv]K}3s}Uy|l,fihW{EG`j_QOp~Z$F^zexS`dcISfhZBXP|.vn|_HYQ|)9|cr]<`&Z6]m_(ZhPcSg>`Z]5`~1`0Xcb4k1{O!bz|CN_T{LR|a/gFcD|j<{Z._[f)mPc:1`WtIaT1cgYkZOaVZOYFrEe[}T$}Ch}mk{K-^@]fH{Hdi`c*Z&|Kt{if[C{Q;{xYB`dYIX:ZB[}]*[{{p9|4GYRh2ao{DS|V+[zd$`F[ZXKadb*A] Ys]Maif~a/Z2bmclb8{Jro_rz|x9cHojbZ{GzZx_)]:{wAayeDlx}<=`g{H1{l#}9i|)=|lP{Qq}.({La|!Y{i2EZfp=c*}Cc{EDvVB|;g}2t{W4av^Bn=]ri,|y?|3+}T*ckZ*{Ffr5e%|sB{lx^0]eZb]9[SgAjS_D|uHZx]dive[c.YPkcq/}db{EQh&hQ|eg}G!ljil|BO]X{Qr_GkGl~YiYWu=c3eb}29v3|D|}4i||.{Mv})V{SP1{FX}CZW6{cm|vO{pS|e#}A~|1i}81|Mw}es|5[}3w{C`h9aL]o{}p[G`>i%a1Z@`Ln2bD[$_h`}ZOjhdTrH{[j_:k~kv[Sdu]CtL}41{I |[[{]Zp$]XjxjHt_eThoa#h>sSt8|gK|TVi[Y{t=}Bs|b7Zpr%{gt|Yo{CS[/{iteva|cf^hgn}($_c^wmb^Wm+|55jrbF|{9^ q6{C&c+ZKdJkq_xOYqZYSYXYl`8]-cxZAq/b%b*_Vsa[/Ybjac/OaGZ4fza|a)gY{P?| I|Y |,pi1n7}9bm9ad|=d{aV|2@[(}B`d&|Uz}B}{`q|/H|!JkM{FU|CB|.{}Az}#P|lk}K{|2rk7{^8^?`/|k>|Ka{Sq}Gz}io{DxZh[yK_#}9<{TRdgc]`~Z>JYmYJ]|`!ZKZ]gUcx|^E[rZCd`f9oQ[NcD_$ZlZ;Zr}mX|=!|$6ZPZYtIo%fj}CpcN|B,{VDw~gb}@hZg`Q{LcmA[(bo`<|@$|o1|Ss}9Z_}tC|G`{F/|9nd}i=}V-{L8aaeST]daRbujh^xlpq8|}zs4bj[S`J|]?G{P#{rD{]I`OlH{Hm]VYuSYUbRc*6[j`8]pZ[bt_/^Jc*[<Z?YE|Xb|?_Z^Vcas]h{t9|Uwd)_(=0^6Zb{Nc} E[qZAeX[a]P^|_J>e8`W^j_Y}R{{Jp__]Ee#e:iWb9q_wKbujrbR}CY`,{mJ}gz{Q^{t~N|? gSga`V_||:#mi}3t|/I`X{N*|ct|2g{km}gi|{={jC}F;|E}{ZZjYf*frmu}8Tdroi{T[|+~}HG{cJ}DM{Lp{Ctd&}$hi3|FZ| m}Kr|38}^c|m_|Tr{Qv|36}?Up>|;S{DV{k_as}BK{P}}9p|t`jR{sAm4{D=b4pWa[}Xi{EjwEkI}3S|E?u=X0{jf} S|NM|JC{qo^3cm]-|JUx/{Cj{s>{Crt[UXuv|D~|j|d{YXZR}Aq}0r}(_{pJfi_z}0b|-vi)Z mFe,{f4|q`b{}^Z{HM{rbeHZ|^x_o|XM|L%|uFXm}@C_{{Hhp%a7|0p[Xp+^K}9U{bP}: tT}B|}+$|b2|[^|~h{FAby[`{}xgygrt~h1[li`c4vz|,7p~b(|mviN}^pg[{N/|g3|^0c,gE|f%|7N{q[|tc|TKA{LU}I@|AZp(}G-sz{F |qZ{}F|f-}RGn6{Z]_5})B}UJ{FFb2]4ZI@v=k,]t_Dg5Bj]Z-]L]vrpdvdGlk|gF}G]|IW}Y0[G| /bo|Te^,_B}#n^^{QHYI[?hxg{[`]D^IYRYTb&kJ[cri[g_9]Ud~^_]<p@_e_XdNm-^/|5)|h_{J;{kacVopf!q;asqd}n)|.m|bf{QW|U)}b+{tL|w``N|to{t ZO|T]jF}CB|0Q{e5Zw|k |We}5:{HO{tPwf_uajjBfX}-V_C_{{r~gg|Ude;s+}KNXH}! `K}eW{Upwbk%ogaW}9EYN}YY|&v|SL{C3[5s.]Y]I]u{M6{pYZ`^,`ZbCYR[1mNg>rsk0Ym[jrE]RYiZTr*YJ{Ge|%-lf|y(`=[t}E6{k!|3)}Zk} ][G{E~cF{u3U.rJ|a9p#o#ZE|?|{sYc#vv{E=|LC}cu{N8`/`3`9rt[4|He{cq|iSYxY`}V |(Q|t4{C?]k_Vlvk)BZ^r<{CL}#h}R+[<|i=}X|{KAo]|W<`K{NW|Zx}#;|fe{IMr<|K~tJ_x}AyLZ?{GvbLnRgN}X&{H7|x~}Jm{]-| GpNu0}.ok>|c4{PYisrDZ|fwh9|hfo@{H~XSbO]Odv]%`N]b1Y]]|eIZ}_-ZA]aj,>eFn+j[aQ_+]h[J_m_g]%_wf.`%k1e#Z?{CvYu_B^|gk`Xfh^M3`afGZ-Z|[m{L}|k3cp[it ^>YUi~d>{T*}YJ{Q5{Jxa$hg|%4`}|LAgvb }G}{P=|<;Ux{_skR{cV|-*|s-{Mp|XP|$G|_J}c6cM{_=_D|*9^$ec{V;|4S{qO|w_|.7}d0|/D}e}|0G{Dq]Kdp{}dfDi>}B%{Gd|nl}lf{C-{y}|ANZr}#={T~|-(}c&{pI|ft{lsVP}){|@u}!W|bcmB{d?|iW|:dxj{PSkO|Hl]Li:}VYk@|2={fnWt{M3`cZ6|)}|Xj}BYa?vo{e4|L7|B7{L7|1W|lvYO}W8nJ|$Vih|{T{d*_1|:-n2dblk``fT{Ky|-%}m!|Xy|-a{Pz}[l{kFjz|iH}9N{WE{x,|jz}R {P|{D)c=nX|Kq|si}Ge{sh|[X{RF{t`|jsr*fYf,rK|/9}$}}Nf{y!1|<Std}4Wez{W${Fd_/^O[ooqaw_z[L`Nbv[;l7V[ii3_PeM}.h^viqYjZ*j1}+3{bt{DR[;UG}3Og,rS{JO{qw{d<_zbAh<R[1_r`iZTbv^^a}c{iEgQZ<exZFg.^Rb+`Uj{a+{z<[~r!]`[[|rZYR|?F|qppp]L|-d|}K}YZUM|=Y|ktm*}F]{D;g{uI|7kg^}%?Z%ca{N[_<q4xC]i|PqZC]n}.bDrnh0Wq{tr|OMn6tM|!6|T`{O`|>!]ji+]_bTeU}Tq|ds}n|{Gm{z,f)}&s{DPYJ`%{CGd5v4tvb*hUh~bf]z`jajiFqAii]bfy^U{Or|m+{I)cS|.9k:e3`^|xN}@Dnlis`B|Qo{`W|>||kA}Y}{ERYuYx`%[exd`]|OyiHtb}HofUYbFo![5|+]gD{NIZR|Go}.T{rh^4]S|C9_}xO^i`vfQ}C)bK{TL}cQ|79iu}9a];sj{P.o!f[Y]pM``Jda^Wc9ZarteBZClxtM{LW}l9|a.mU}KX}4@{I+f1}37|8u}9c|v${xGlz}jP{Dd1}e:}31}%3X$|22i<v+r@~mf{sN{C67G97855F4YL5}8f{DT|xy{sO{DXB334@55J1)4.G9A#JDYtXTYM4, YQD9;XbXm9SX]IB^4UN=Xn<5(;(F3YW@XkH-X_VM[DYM:5XP!T&Y`6|,^{IS-*D.H>:LXjYQ0I3XhAF:9:(==.F*3F1189K/7163D,:@|e2{LS36D4hq{Lw/84443@4.933:0307::6D7}&l{Mx657;89;,K5678H&93D(H<&<>0B90X^I;}Ag1{P%3A+>><975}[S{PZE453?4|T2{Q+5187;>447:81{C=hL6{Me^:=7ii{R=.=F<81;48?|h8}Uh{SE|,VxL{ST,7?9Y_5Xk3A#:$%YSYdXeKXOD8+TXh7(@>(YdXYHXl9J6X_5IXaL0N?3YK7Xh!1?XgYz9YEXhXaYPXhC3X`-YLY_XfVf[EGXZ5L8BXL9YHX]SYTXjLXdJ: YcXbQXg1PX]Yx4|Jr{Ys4.8YU+XIY`0N,<H%-H;:0@,74/:8546I=9177154870UC]d<C3HXl7ALYzXFXWP<<?E!88E5@03YYXJ?YJ@6YxX-YdXhYG|9o{`iXjY_>YVXe>AYFX[/(I@0841?):-B=14337:8=|14{c&93788|di{cW-0>0<097/A;N{FqYpugAFT%X/Yo3Yn,#=XlCYHYNX[Xk3YN:YRT4?)-YH%A5XlYF3C1=NWyY}>:74-C673<69545v {iT85YED=64=.F4..9878/D4378?48B3:7:7/1VX[f4{D,{l<5E75{dAbRB-8-@+;DBF/$ZfW8S<4YhXA.(5@*11YV8./S95C/0R-A4AXQYI7?68167B95HA1*<M3?1/@;/=54XbYP36}lc{qzSS38:19?,/39193574/66878Yw1X-87E6=;964X`T734:>86>1/=0;(I-1::7ALYGXhF+Xk[@W%TYbX7)KXdYEXi,H-XhYMRXfYK?XgXj.9HX_SX]YL1XmYJ>Y}WwIXiI-3-GXcYyXUYJ$X`Vs[7;XnYEZ;XF! 3;%8;PXX(N3Y[)Xi1YE&/ :;74YQ6X`33C;-(>Xm0(TYF/!YGXg8 9L5P01YPXO-5%C|qd{{/K/E6,=0144:361:955;6443@?B7*7:F89&F35YaX-CYf,XiFYRXE_e{}sF 0*7XRYPYfXa5YXXY8Xf8Y~XmA[9VjYj*#YMXIYOXk,HHX40YxYMXU8OXe;YFXLYuPXP?EB[QV0CXfY{:9XV[FWE0D6X^YVP*$4%OXiYQ(|xp|%c3{}V`1>Y`XH00:8/M6XhQ1:;3414|TE|&o@1*=81G8<3}6<|(f6>>>5-5:8;093B^3U*+*^*UT30XgYU&7*O1953)5@E78--F7YF*B&0:%P68W9Zn5974J9::3}Vk|-,C)=)1AJ4+<3YGXfY[XQXmT1M-XcYTYZXCYZXEYXXMYN,17>XIG*SaS|/eYJXbI?XdNZ+WRYP<F:R PXf;0Xg`$|1GX9YdXjLYxWX!ZIXGYaXNYm6X9YMX?9EXmZ&XZ#XQ>YeXRXfAY[4 ;0X!Zz0XdN$XhYL XIY^XGNXUYS/1YFXhYk.TXn4DXjB{jg|4DEX]:XcZMW=A.+QYL<LKXc[vV$+&PX*Z3XMYIXUQ:ZvW< YSXFZ,XBYeXMM)?Xa XiZ4/EXcP3%}&-|6~:1(-+YT$@XIYRBC<}&,|7aJ6}bp|8)K1|Xg|8C}[T|8Q.89;-964I38361<=/;883651467<7:>?1:.}le|:Z=39;1Y^)?:J=?XfLXbXi=Q0YVYOXaXiLXmJXO5?.SFXiCYW}-;|=u&D-X`N0X^,YzYRXO(QX_YW9`I|>hZ:N&X)DQXP@YH#XmNXi$YWX^=!G6YbYdX>XjY|XlX^XdYkX>YnXUXPYF)FXT[EVTMYmYJXmYSXmNXi#GXmT3X8HOX[ZiXN]IU2>8YdX1YbX<YfWuZ8XSXcZU%0;1XnXkZ_WTG,XZYX5YSX Yp 05G?XcYW(IXg6K/XlYP4XnI @XnO1W4Zp-9C@%QDYX+OYeX9>--YSXkD.YR%Q/Yo YUX].Xi<HYEZ2WdCE6YMXa7F)=,D>-@9/8@5=?7164;35387?N<618=6>7D+C50<6B03J0{Hj|N9$D,9I-,.KB3}m |NzE0::/81YqXjMXl7YG; [.W=Z0X4XQY]:MXiR,XgM?9$9>:?E;YE77VS[Y564760391?14941:0=:8B:;/1DXjFA-564=0B3XlH1+D85:0Q!B#:-6&N/:9<-R3/7Xn<*3J4.H:+334B.=>30H.;3833/76464665755:/83H6633:=;.>5645}&E|Y)?1/YG-,93&N3AE@5 <L1-G/8A0D858/30>8<549=@B8] V0[uVQYlXeD(P#ID&7T&7;Xi0;7T-$YE)E=1:E1GR):--0YI7=E<}n9|aT6783A>D7&4YG7=391W;Zx<5+>F#J39}o/|cc;6=A050EQXg8A1-}D-|d^5548083563695D?-.YOXd37I$@LYLWeYlX<Yd+YR A$;3-4YQ-9XmA0!9/XLY_YT(=5XdDI>YJ5XP1ZAW{9>X_6R(XhYO65&J%DA)C-!B:97#A9;@?F;&;(9=11/=657/H,<8}bz|j^5446>.L+&Y^8Xb6?(CYOXb*YF(8X`FYR(XPYVXmPQ%&DD(XmZXW??YOXZXfCYJ79,O)XnYF7K0!QXmXi4IYFRXS,6<%-:YO(+:-3Q!1E1:W,Zo}Am|n~;3580534*?3Zc4=9334361693:30C<6/717:<1/;>59&:4}6!|rS36=1?75<8}[B|s809983579I.A.>84758=108564741H*9E{L{|u%YQ<%6XfH.YUXe4YL@,>N}Tv|ve*G0X)Z;/)3@A74(4P&A1X:YVH97;,754*A66:1 D739E3553545558E4?-?K17/770843XAYf838A7K%N!YW4.$T19Z`WJ*0XdYJXTYOXNZ 1XaN1A+I&Xi.Xk3Z3GB&5%WhZ1+5#Y[X<4YMXhQYoQXVXbYQ8XSYUX4YXBXWDMG0WxZA[8V+Z8X;D],Va$%YeX?FXfX[XeYf<X:Z[WsYz8X_Y]%XmQ(!7BXIZFX]&YE3F$(1XgYgYE& +[+W!<YMYFXc;+PXCYI9YrWxGXY9DY[!GXiI7::)OC;*$.>N*HA@{C|}&k=:<TB83X`3YL+G4XiK]i}(fYK<=5$.FYE%4*5*H*6XkCYL=*6Xi6!Yi1KXR4YHXbC8Xj,B9ZbWx/XbYON#5B}Ue}+QKXnF1&YV5XmYQ0!*3IXBYb71?1B75XmF;0B976;H/RXU:YZX;BG-NXj;XjI>A#D3B636N;,*%<D:0;YRXY973H5)-4FXOYf0:0;/7759774;7;:/855:543L43<?6=E,.A4:C=L)%4YV!1(YE/4YF+ F3%;S;&JC:%/?YEXJ4GXf/YS-EXEYW,9;E}X$}547EXiK=51-?71C%?57;5>463553Zg90;6447?<>4:9.7538XgN{|!}9K/E&3-:D+YE1)YE/3;37/:05}n<}:UX8Yj4Yt864@JYK..G=.(A Q3%6K>3(P3#AYE$-6H/456*C=.XHY[#S.<780191;057C)=6HXj?955B:K1 E>-B/9,;5.!L?:0>/.@//:;7833YZ56<4:YE=/:7Z_WGC%3I6>XkC*&NA16X=Yz2$X:Y^&J48<99k8}CyB-61<18K946YO4{|N}E)YIB9K0L>4=46<1K0+R;6-=1883:478;4,S+3YJX`GJXh.Yp+Xm6MXcYpX(>7Yo,/:X=Z;Xi0YTYHXjYmXiXj;*;I-8S6N#XgY}.3XfYGO3C/$XjL$*NYX,1 6;YH&<XkK9C#I74.>}Hd`A748X[T450[n75<4439:18A107>|ET}Rf<1;14876/Yb983E<5.YNXd4149>,S=/4E/<306443G/06}0&}UkYSXFYF=44=-5095=88;63844,9E6644{PL}WA8:>)7+>763>>0/B3A545CCnT}Xm|dv}Xq1L/YNXk/H8;;.R63351YY747@15YE4J8;46;.38.>4A369.=-83,;Ye3?:3@YE.4-+N353;/;@(X[YYD>@/05-I*@.:551741Yf5>6A443<3535;.58/86=D4753442$635D1>0359NQ @73:3:>><Xn?;43C14 ?Y|X611YG1&<+,4<*,YLXl<1/AIXjF*N89A4Z576K1XbJ5YF.ZOWN.YGXO/YQ01:4G38Xl1;KI0YFXB=R<7;D/,/4>;$I,YGXm94@O35Yz66695385.>:6A#5}W7n^4336:4157597434433<3|XA}m`>=D>:4A.337370?-6Q96{`E|4A}C`|Qs{Mk|J+~r>|o,wHv>Vw}!c{H!|Gb|*Ca5}J||,U{t+{CN[!M65YXOY_*B,Y[Z9XaX[QYJYLXPYuZ%XcZ8LY[SYPYKZM<LMYG9OYqSQYM~[e{UJXmQYyZM_)>YjN1~[f3{aXFY|Yk:48YdH^NZ0|T){jVFYTZNFY^YTYN~[h{nPYMYn3I]`EYUYsYIZEYJ7Yw)YnXPQYH+Z.ZAZY]^Z1Y`YSZFZyGYHXLYG 8Yd#4~[i|+)YH9D?Y^F~Y7|-eYxZ^WHYdYfZQ~[j|3>~[k|3oYmYqY^XYYO=Z*4[]Z/OYLXhZ1YLZIXgYIHYEYK,<Y`YEXIGZI[3YOYcB4SZ!YHZ*&Y{Xi3~[l|JSY`Zz?Z,~[m|O=Yi>??XnYWXmYS617YVYIHZ(Z4[~L4/=~[n|Yu{P)|];YOHHZ}~[o33|a>~[r|aE]DH~[s|e$Zz~[t|kZFY~XhYXZB[`Y}~[u|{SZ&OYkYQYuZ2Zf8D~[v}% ~[w3},Q[X]+YGYeYPIS~[y}4aZ!YN^!6PZ*~[z}?E~[{3}CnZ=~[}}EdDZz/9A3(3S<,YR8.D=*XgYPYcXN3Z5 4)~[~}JW=$Yu.XX~] }KDX`PXdZ4XfYpTJLY[F5]X~[2Yp}U+DZJ::<446[m@~]#3}]1~]%}^LZwZQ5Z`/OT<Yh^ -~]&}jx[ ~m<z!%2+~ly4VY-~o>}p62yz!%2+Xf2+~ly4VY-zQ`z (=] 2z~o2",C={" ":0,"!":1},c=34,i=2,p,s="",u=String.fromCharCode,t=u(12539);while(++c<127)C[u(c)]=c^39&&c^92?i++:0;i=0;while(0<=(c=C[a.charAt(i++)]))if(16==c)if((c=C[a.charAt(i++)])<87){if(86==c)c=1879;while(c--)s+=u(++p)}else s+=s.substr(8272,360);else if(c<86)s+=u(p+=c<51?c-16:(c-55)*92+C[a.charAt(i++)]);else if((c=((c-86)*92+C[a.charAt(i++)])*92+C[a.charAt(i++)])<49152)s+=u(p=c<40960?c:c|57344);else{c&=511;while(c--)s+=t;p=12539}return s')(); 
    221  
    222 JCT8836=JCT11280.substring(0,8836); 
    223  
     224firemobilesimulator.common.ecl.JCT11280=Function('var a="zKV33~jZ4zN=~ji36XazM93y!{~k2y!o~k0ZlW6zN?3Wz3W?{EKzK[33[`y|;-~j^YOTz$!~kNy|L1$353~jV3zKk3~k-4P4zK_2+~jY4y!xYHR~jlz$_~jk4z$e3X5He<0y!wy|X3[:~l|VU[F3VZ056Hy!nz/m1XD61+1XY1E1=1y|bzKiz!H034zKj~mEz#c5ZA3-3X$1~mBz$$3~lyz#,4YN5~mEz#{ZKZ3V%7Y}!J3X-YEX_J(3~mAz =V;kE0/y|F3y!}~m>z/U~mI~j_2+~mA~jp2;~m@~k32;~m>V}2u~mEX#2x~mBy+x2242(~mBy,;2242(~may->2&XkG2;~mIy-_2&NXd2;~mGz,{4<6:.:B*B:XC4>6:.>B*BBXSA+A:X]E&E<~r#z+625z s2+zN=`HXI@YMXIAXZYUM8X4K/:Q!Z&33 3YWX[~mB`{zKt4z (zV/z 3zRw2%Wd39]S11z$PAXH5Xb;ZQWU1ZgWP%3~o@{Dgl#gd}T){Uo{y5_d{e@}C(} WU9|cB{w}bzvV|)[} H|zT}d||0~{]Q|(l{|x{iv{dw}(5}[Z|kuZ }cq{{y|ij}.I{idbof%cu^d}Rj^y|-M{ESYGYfYsZslS`?ZdYO__gLYRZ&fvb4oKfhSf^d<Yeasc1f&a=hnYG{QY{D`Bsa|u,}Dl|_Q{C%xK|Aq}C>|c#ryW=}eY{L+`)][YF_Ub^h4}[X|?r|u_ex}TL@YR]j{SrXgo*|Gv|rK}B#mu{R1}hs|dP{C7|^Qt3|@P{YVV |8&}#D}ef{e/{Rl|>Hni}R1{Z#{D[}CQlQ||E}[s{SG_+i8eplY[=[|ec[$YXn#`hcm}YR|{Ci(_[ql|?8p3]-}^t{wy}4la&pc|3e{Rp{LqiJ],] `kc(]@chYnrM`O^,ZLYhZB]ywyfGY~aex!_Qww{a!|)*lHrM{N+n&YYj~Z b c#e_[hZSon|rOt`}hBXa^i{lh|<0||r{KJ{kni)|x,|0auY{D!^Sce{w;|@S|cA}Xn{C1h${E]Z-XgZ*XPbp]^_qbH^e[`YM|a||+=]!Lc}]vdBc=j-YSZD]YmyYLYKZ9Z>Xcczc2{Yh}9Fc#Z.l{}(D{G{{mRhC|L3b#|xK[Bepj#ut`H[,{E9Yr}1b{[e]{ZFk7[ZYbZ0XL]}Ye[(`d}c!|*y`Dg=b;gR]Hm=hJho}R-[n}9;{N![7k_{UbmN]rf#pTe[x8}!Qcs_rs[m`|>N}^V})7{^r|/E}),}HH{OYe2{Skx)e<_.cj.cjoMhc^d}0uYZd!^J_@g,[[[?{i@][|3S}Yl3|!1|eZ|5IYw|1D}e7|Cv{OHbnx-`wvb[6[4} =g+k:{C:}ed{S]|2M]-}WZ|/q{LF|dYu^}Gs^c{Z=}h>|/i|{W]:|ip{N:|zt|S<{DH[p_tvD{N<[8Axo{X4a.^o^X>Yfa59`#ZBYgY~_t^9`jZHZn`>G[oajZ;X,i)Z.^~YJe ZiZF^{][[#Zt^|]Fjx]&_5dddW]P0C[-]}]d|y {C_jUql] |OpaA[Z{lp|rz}:Mu#]_Yf6{Ep?f5`$[6^D][^u[$[6^.Z8]]ePc2U/=]K^_+^M{q*|9tYuZ,s(dS{i=|bNbB{uG}0jZOa:[-]dYtu3]:]<{DJ_SZIqr_`l=Yt`gkTnXb3d@kiq0a`Z{|!B|}e}Ww{Sp,^Z|0>_Z}36|]A|-t}lt{R6pi|v8hPu#{C>YOZHYmg/Z4nicK[}hF_Bg|YRZ7c|crkzYZY}_iXcZ.|)U|L5{R~qi^Uga@Y[xb}&qdbd6h5|Btw[}c<{Ds53[Y7]?Z<|e0{L[ZK]mXKZ#Z2^tavf0`PE[OSOaP`4gi`qjdYMgys/?[nc,}EEb,eL]g[n{E_b/vcvgb.{kcwi`~v%|0:|iK{Jh_vf5lb}KL|(oi=LrzhhY_^@`zgf[~g)[J_0fk_V{T)}I_{D&_/d9W/|MU[)f$xW}?$xr4<{Lb{y4}&u{XJ|cm{Iu{jQ}CMkD{CX|7A}G~{kt)nB|d5|<-}WJ}@||d@|Iy}Ts|iL|/^|no|0;}L6{Pm]7}$zf:|r2}?C_k{R(}-w|`G{Gy[g]bVje=_0|PT{^Y^yjtT[[[l!Ye_`ZN]@[n_)j3nEgMa]YtYpZy].d-Y_cjb~Y~[nc~sCi3|zg}B0}do{O^{|$`_|D{}U&|0+{J3|8*]iayx{a{xJ_9|,c{Ee]QXlYb]$[%YMc*]w[aafe]aVYi[fZEii[xq2YQZHg]Y~h#|Y:thre^@^|_F^CbTbG_1^qf7{L-`VFx Zr|@EZ;gkZ@slgko`[e}T:{Cu^pddZ_`yav^Ea+[#ZBbSbO`elQfLui}.F|txYcbQ`XehcGe~fc^RlV{D_0ZAej[l&jShxG[ipB_=u:eU}3e8[=j|{D(}dO{Do[BYUZ0/]AYE]ALYhZcYlYP/^-^{Yt_1_-;YT`P4BZG=IOZ&]H[e]YYd[9^F[1YdZxZ?Z{Z<]Ba2[5Yb[0Z4l?]d_;_)a?YGEYiYv`_XmZs4ZjY^Zb]6gqGaX^9Y}dXZr[g|]Y}K aFZp^k^F]M`^{O1Ys]ZCgCv4|E>}8eb7}l`{L5[Z_faQ|c2}Fj}hw^#|Ng|B||w2|Sh{v+[G}aB|MY}A{|8o}X~{E8paZ:]i^Njq]new)`-Z>haounWhN}c#{DfZ|fK]KqGZ=:u|fqoqcv}2ssm}.r{]{nIfV{JW)[K|,Z{Uxc|]l_KdCb%]cfobya3`p}G^|LZiSC]U|(X|kBlVg[kNo({O:g:|-N|qT}9?{MBiL}Sq{`P|3a|u.{Uaq:{_o|^S}jX{Fob0`;|#y_@[V[K|cw[<_ }KU|0F}d3|et{Q7{LuZttsmf^kYZ`Af`}$x}U`|Ww}d]| >}K,r&|XI|*e{C/a-bmr1fId4[;b>tQ_:]hk{b-pMge]gfpo.|(w[jgV{EC1Z,YhaY^q,_G[c_g[J0YX]`[h^hYK^_Yib,` {i6vf@YM^hdOKZZn(jgZ>bzSDc^Z%[[o9[2=/YHZ(_/Gu_`*|8z{DUZxYt^vuvZjhi^lc&gUd4|<UiA`z]$b/Z?l}YI^jaHxe|;F}l${sQ}5g}hA|e4}?o{ih}Uz{C)jPe4]H^J[Eg[|AMZMlc}:,{iz}#*|gc{Iq|/:|zK{l&}#u|myd{{M&v~nV};L|(g|I]ogddb0xsd7^V})$uQ{HzazsgxtsO^l}F>ZB]r|{7{j@cU^{{CbiYoHlng]f+nQ[bkTn/}<-d9q {KXadZYo+n|l[|lc}V2{[a{S4Zam~Za^`{HH{xx_SvF|ak=c^[v^7_rYT`ld@]:_ub%[$[m](Shu}G2{E.ZU_L_R{tz`vj(f?^}hswz}GdZ}{S:h`aD|?W|`dgG|if{a8|J1{N,}-Ao3{H#{mfsP|[ bzn+}_Q{MT{u4kHcj_q`eZj[8o0jy{p7}C|[}l){MuYY{|Ff!Ykn3{rT|m,^R|,R}$~Ykgx{P!]>iXh6[l[/}Jgcg{JYZ.^qYfYIZl[gZ#Xj[Pc7YyZD^+Yt;4;`e8YyZVbQ7YzZxXja.7SYl[s]2^/Ha$[6ZGYrb%XiYdf2]H]kZkZ*ZQ[ZYS^HZXcCc%Z|[(bVZ]]:OJQ_DZCg<[,]%Zaa [g{C00HY[c%[ChyZ,Z_`PbXa+eh`^&jPi0a[ggvhlekL]w{Yp^v}[e{~;k%a&k^|nR_z_Qng}[E}*Wq:{k^{FJZpXRhmh3^p>de^=_7`|ZbaAZtdhZ?n4ZL]u`9ZNc3g%[6b=e.ZVfC[ZZ^^^hD{E(9c(kyZ=bb|Sq{k`|vmr>izlH[u|e`}49}Y%}FT{[z{Rk}Bz{TCc/lMiAqkf(m$hDc;qooi[}^o:c^|Qm}a_{mrZ(pA`,}<2sY| adf_%|}`}Y5U;}/4|D>|$X{jw{C<|F.hK|*A{MRZ8Zsm?imZm_?brYWZrYx`yVZc3a@f?aK^ojEd {bN}/3ZH]/$YZhm^&j 9|(S|b]mF}UI{q&aM]LcrZ5^.|[j`T_V_Gak}9J[ ZCZD|^h{N9{~&[6Zd{}B}2O|cv]K}3s}Uy|l,fihW{EG`j_QOp~Z$F^zexS`dcISfhZBXP|.vn|_HYQ|)9|cr]<`&Z6]m_(ZhPcSg>`Z]5`~1`0Xcb4k1{O!bz|CN_T{LR|a/gFcD|j<{Z._[f)mPc:1`WtIaT1cgYkZOaVZOYFrEe[}T$}Ch}mk{K-^@]fH{Hdi`c*Z&|Kt{if[C{Q;{xYB`dYIX:ZB[}]*[{{p9|4GYRh2ao{DS|V+[zd$`F[ZXKadb*A] Ys]Maif~a/Z2bmclb8{Jro_rz|x9cHojbZ{GzZx_)]:{wAayeDlx}<=`g{H1{l#}9i|)=|lP{Qq}.({La|!Y{i2EZfp=c*}Cc{EDvVB|;g}2t{W4av^Bn=]ri,|y?|3+}T*ckZ*{Ffr5e%|sB{lx^0]eZb]9[SgAjS_D|uHZx]dive[c.YPkcq/}db{EQh&hQ|eg}G!ljil|BO]X{Qr_GkGl~YiYWu=c3eb}29v3|D|}4i||.{Mv})V{SP1{FX}CZW6{cm|vO{pS|e#}A~|1i}81|Mw}es|5[}3w{C`h9aL]o{}p[G`>i%a1Z@`Ln2bD[$_h`}ZOjhdTrH{[j_:k~kv[Sdu]CtL}41{I |[[{]Zp$]XjxjHt_eThoa#h>sSt8|gK|TVi[Y{t=}Bs|b7Zpr%{gt|Yo{CS[/{iteva|cf^hgn}($_c^wmb^Wm+|55jrbF|{9^ q6{C&c+ZKdJkq_xOYqZYSYXYl`8]-cxZAq/b%b*_Vsa[/Ybjac/OaGZ4fza|a)gY{P?| I|Y |,pi1n7}9bm9ad|=d{aV|2@[(}B`d&|Uz}B}{`q|/H|!JkM{FU|CB|.{}Az}#P|lk}K{|2rk7{^8^?`/|k>|Ka{Sq}Gz}io{DxZh[yK_#}9<{TRdgc]`~Z>JYmYJ]|`!ZKZ]gUcx|^E[rZCd`f9oQ[NcD_$ZlZ;Zr}mX|=!|$6ZPZYtIo%fj}CpcN|B,{VDw~gb}@hZg`Q{LcmA[(bo`<|@$|o1|Ss}9Z_}tC|G`{F/|9nd}i=}V-{L8aaeST]daRbujh^xlpq8|}zs4bj[S`J|]?G{P#{rD{]I`OlH{Hm]VYuSYUbRc*6[j`8]pZ[bt_/^Jc*[<Z?YE|Xb|?_Z^Vcas]h{t9|Uwd)_(=0^6Zb{Nc} E[qZAeX[a]P^|_J>e8`W^j_Y}R{{Jp__]Ee#e:iWb9q_wKbujrbR}CY`,{mJ}gz{Q^{t~N|? gSga`V_||:#mi}3t|/I`X{N*|ct|2g{km}gi|{={jC}F;|E}{ZZjYf*frmu}8Tdroi{T[|+~}HG{cJ}DM{Lp{Ctd&}$hi3|FZ| m}Kr|38}^c|m_|Tr{Qv|36}?Up>|;S{DV{k_as}BK{P}}9p|t`jR{sAm4{D=b4pWa[}Xi{EjwEkI}3S|E?u=X0{jf} S|NM|JC{qo^3cm]-|JUx/{Cj{s>{Crt[UXuv|D~|j|d{YXZR}Aq}0r}(_{pJfi_z}0b|-vi)Z mFe,{f4|q`b{}^Z{HM{rbeHZ|^x_o|XM|L%|uFXm}@C_{{Hhp%a7|0p[Xp+^K}9U{bP}: tT}B|}+$|b2|[^|~h{FAby[`{}xgygrt~h1[li`c4vz|,7p~b(|mviN}^pg[{N/|g3|^0c,gE|f%|7N{q[|tc|TKA{LU}I@|AZp(}G-sz{F |qZ{}F|f-}RGn6{Z]_5})B}UJ{FFb2]4ZI@v=k,]t_Dg5Bj]Z-]L]vrpdvdGlk|gF}G]|IW}Y0[G| /bo|Te^,_B}#n^^{QHYI[?hxg{[`]D^IYRYTb&kJ[cri[g_9]Ud~^_]<p@_e_XdNm-^/|5)|h_{J;{kacVopf!q;asqd}n)|.m|bf{QW|U)}b+{tL|w``N|to{t ZO|T]jF}CB|0Q{e5Zw|k |We}5:{HO{tPwf_uajjBfX}-V_C_{{r~gg|Ude;s+}KNXH}! `K}eW{Upwbk%ogaW}9EYN}YY|&v|SL{C3[5s.]Y]I]u{M6{pYZ`^,`ZbCYR[1mNg>rsk0Ym[jrE]RYiZTr*YJ{Ge|%-lf|y(`=[t}E6{k!|3)}Zk} ][G{E~cF{u3U.rJ|a9p#o#ZE|?|{sYc#vv{E=|LC}cu{N8`/`3`9rt[4|He{cq|iSYxY`}V |(Q|t4{C?]k_Vlvk)BZ^r<{CL}#h}R+[<|i=}X|{KAo]|W<`K{NW|Zx}#;|fe{IMr<|K~tJ_x}AyLZ?{GvbLnRgN}X&{H7|x~}Jm{]-| GpNu0}.ok>|c4{PYisrDZ|fwh9|hfo@{H~XSbO]Odv]%`N]b1Y]]|eIZ}_-ZA]aj,>eFn+j[aQ_+]h[J_m_g]%_wf.`%k1e#Z?{CvYu_B^|gk`Xfh^M3`afGZ-Z|[m{L}|k3cp[it ^>YUi~d>{T*}YJ{Q5{Jxa$hg|%4`}|LAgvb }G}{P=|<;Ux{_skR{cV|-*|s-{Mp|XP|$G|_J}c6cM{_=_D|*9^$ec{V;|4S{qO|w_|.7}d0|/D}e}|0G{Dq]Kdp{}dfDi>}B%{Gd|nl}lf{C-{y}|ANZr}#={T~|-(}c&{pI|ft{lsVP}){|@u}!W|bcmB{d?|iW|:dxj{PSkO|Hl]Li:}VYk@|2={fnWt{M3`cZ6|)}|Xj}BYa?vo{e4|L7|B7{L7|1W|lvYO}W8nJ|$Vih|{T{d*_1|:-n2dblk``fT{Ky|-%}m!|Xy|-a{Pz}[l{kFjz|iH}9N{WE{x,|jz}R {P|{D)c=nX|Kq|si}Ge{sh|[X{RF{t`|jsr*fYf,rK|/9}$}}Nf{y!1|<Std}4Wez{W${Fd_/^O[ooqaw_z[L`Nbv[;l7V[ii3_PeM}.h^viqYjZ*j1}+3{bt{DR[;UG}3Og,rS{JO{qw{d<_zbAh<R[1_r`iZTbv^^a}c{iEgQZ<exZFg.^Rb+`Uj{a+{z<[~r!]`[[|rZYR|?F|qppp]L|-d|}K}YZUM|=Y|ktm*}F]{D;g{uI|7kg^}%?Z%ca{N[_<q4xC]i|PqZC]n}.bDrnh0Wq{tr|OMn6tM|!6|T`{O`|>!]ji+]_bTeU}Tq|ds}n|{Gm{z,f)}&s{DPYJ`%{CGd5v4tvb*hUh~bf]z`jajiFqAii]bfy^U{Or|m+{I)cS|.9k:e3`^|xN}@Dnlis`B|Qo{`W|>||kA}Y}{ERYuYx`%[exd`]|OyiHtb}HofUYbFo![5|+]gD{NIZR|Go}.T{rh^4]S|C9_}xO^i`vfQ}C)bK{TL}cQ|79iu}9a];sj{P.o!f[Y]pM``Jda^Wc9ZarteBZClxtM{LW}l9|a.mU}KX}4@{I+f1}37|8u}9c|v${xGlz}jP{Dd1}e:}31}%3X$|22i<v+r@~mf{sN{C67G97855F4YL5}8f{DT|xy{sO{DXB334@55J1)4.G9A#JDYtXTYM4, YQD9;XbXm9SX]IB^4UN=Xn<5(;(F3YW@XkH-X_VM[DYM:5XP!T&Y`6|,^{IS-*D.H>:LXjYQ0I3XhAF:9:(==.F*3F1189K/7163D,:@|e2{LS36D4hq{Lw/84443@4.933:0307::6D7}&l{Mx657;89;,K5678H&93D(H<&<>0B90X^I;}Ag1{P%3A+>><975}[S{PZE453?4|T2{Q+5187;>447:81{C=hL6{Me^:=7ii{R=.=F<81;48?|h8}Uh{SE|,VxL{ST,7?9Y_5Xk3A#:$%YSYdXeKXOD8+TXh7(@>(YdXYHXl9J6X_5IXaL0N?3YK7Xh!1?XgYz9YEXhXaYPXhC3X`-YLY_XfVf[EGXZ5L8BXL9YHX]SYTXjLXdJ: YcXbQXg1PX]Yx4|Jr{Ys4.8YU+XIY`0N,<H%-H;:0@,74/:8546I=9177154870UC]d<C3HXl7ALYzXFXWP<<?E!88E5@03YYXJ?YJ@6YxX-YdXhYG|9o{`iXjY_>YVXe>AYFX[/(I@0841?):-B=14337:8=|14{c&93788|di{cW-0>0<097/A;N{FqYpugAFT%X/Yo3Yn,#=XlCYHYNX[Xk3YN:YRT4?)-YH%A5XlYF3C1=NWyY}>:74-C673<69545v {iT85YED=64=.F4..9878/D4378?48B3:7:7/1VX[f4{D,{l<5E75{dAbRB-8-@+;DBF/$ZfW8S<4YhXA.(5@*11YV8./S95C/0R-A4AXQYI7?68167B95HA1*<M3?1/@;/=54XbYP36}lc{qzSS38:19?,/39193574/66878Yw1X-87E6=;964X`T734:>86>1/=0;(I-1::7ALYGXhF+Xk[@W%TYbX7)KXdYEXi,H-XhYMRXfYK?XgXj.9HX_SX]YL1XmYJ>Y}WwIXiI-3-GXcYyXUYJ$X`Vs[7;XnYEZ;XF! 3;%8;PXX(N3Y[)Xi1YE&/ :;74YQ6X`33C;-(>Xm0(TYF/!YGXg8 9L5P01YPXO-5%C|qd{{/K/E6,=0144:361:955;6443@?B7*7:F89&F35YaX-CYf,XiFYRXE_e{}sF 0*7XRYPYfXa5YXXY8Xf8Y~XmA[9VjYj*#YMXIYOXk,HHX40YxYMXU8OXe;YFXLYuPXP?EB[QV0CXfY{:9XV[FWE0D6X^YVP*$4%OXiYQ(|xp|%c3{}V`1>Y`XH00:8/M6XhQ1:;3414|TE|&o@1*=81G8<3}6<|(f6>>>5-5:8;093B^3U*+*^*UT30XgYU&7*O1953)5@E78--F7YF*B&0:%P68W9Zn5974J9::3}Vk|-,C)=)1AJ4+<3YGXfY[XQXmT1M-XcYTYZXCYZXEYXXMYN,17>XIG*SaS|/eYJXbI?XdNZ+WRYP<F:R PXf;0Xg`$|1GX9YdXjLYxWX!ZIXGYaXNYm6X9YMX?9EXmZ&XZ#XQ>YeXRXfAY[4 ;0X!Zz0XdN$XhYL XIY^XGNXUYS/1YFXhYk.TXn4DXjB{jg|4DEX]:XcZMW=A.+QYL<LKXc[vV$+&PX*Z3XMYIXUQ:ZvW< YSXFZ,XBYeXMM)?Xa XiZ4/EXcP3%}&-|6~:1(-+YT$@XIYRBC<}&,|7aJ6}bp|8)K1|Xg|8C}[T|8Q.89;-964I38361<=/;883651467<7:>?1:.}le|:Z=39;1Y^)?:J=?XfLXbXi=Q0YVYOXaXiLXmJXO5?.SFXiCYW}-;|=u&D-X`N0X^,YzYRXO(QX_YW9`I|>hZ:N&X)DQXP@YH#XmNXi$YWX^=!G6YbYdX>XjY|XlX^XdYkX>YnXUXPYF)FXT[EVTMYmYJXmYSXmNXi#GXmT3X8HOX[ZiXN]IU2>8YdX1YbX<YfWuZ8XSXcZU%0;1XnXkZ_WTG,XZYX5YSX Yp 05G?XcYW(IXg6K/XlYP4XnI @XnO1W4Zp-9C@%QDYX+OYeX9>--YSXkD.YR%Q/Yo YUX].Xi<HYEZ2WdCE6YMXa7F)=,D>-@9/8@5=?7164;35387?N<618=6>7D+C50<6B03J0{Hj|N9$D,9I-,.KB3}m |NzE0::/81YqXjMXl7YG; [.W=Z0X4XQY]:MXiR,XgM?9$9>:?E;YE77VS[Y564760391?14941:0=:8B:;/1DXjFA-564=0B3XlH1+D85:0Q!B#:-6&N/:9<-R3/7Xn<*3J4.H:+334B.=>30H.;3833/76464665755:/83H6633:=;.>5645}&E|Y)?1/YG-,93&N3AE@5 <L1-G/8A0D858/30>8<549=@B8] V0[uVQYlXeD(P#ID&7T&7;Xi0;7T-$YE)E=1:E1GR):--0YI7=E<}n9|aT6783A>D7&4YG7=391W;Zx<5+>F#J39}o/|cc;6=A050EQXg8A1-}D-|d^5548083563695D?-.YOXd37I$@LYLWeYlX<Yd+YR A$;3-4YQ-9XmA0!9/XLY_YT(=5XdDI>YJ5XP1ZAW{9>X_6R(XhYO65&J%DA)C-!B:97#A9;@?F;&;(9=11/=657/H,<8}bz|j^5446>.L+&Y^8Xb6?(CYOXb*YF(8X`FYR(XPYVXmPQ%&DD(XmZXW??YOXZXfCYJ79,O)XnYF7K0!QXmXi4IYFRXS,6<%-:YO(+:-3Q!1E1:W,Zo}Am|n~;3580534*?3Zc4=9334361693:30C<6/717:<1/;>59&:4}6!|rS36=1?75<8}[B|s809983579I.A.>84758=108564741H*9E{L{|u%YQ<%6XfH.YUXe4YL@,>N}Tv|ve*G0X)Z;/)3@A74(4P&A1X:YVH97;,754*A66:1 D739E3553545558E4?-?K17/770843XAYf838A7K%N!YW4.$T19Z`WJ*0XdYJXTYOXNZ 1XaN1A+I&Xi.Xk3Z3GB&5%WhZ1+5#Y[X<4YMXhQYoQXVXbYQ8XSYUX4YXBXWDMG0WxZA[8V+Z8X;D],Va$%YeX?FXfX[XeYf<X:Z[WsYz8X_Y]%XmQ(!7BXIZFX]&YE3F$(1XgYgYE& +[+W!<YMYFXc;+PXCYI9YrWxGXY9DY[!GXiI7::)OC;*$.>N*HA@{C|}&k=:<TB83X`3YL+G4XiK]i}(fYK<=5$.FYE%4*5*H*6XkCYL=*6Xi6!Yi1KXR4YHXbC8Xj,B9ZbWx/XbYON#5B}Ue}+QKXnF1&YV5XmYQ0!*3IXBYb71?1B75XmF;0B976;H/RXU:YZX;BG-NXj;XjI>A#D3B636N;,*%<D:0;YRXY973H5)-4FXOYf0:0;/7759774;7;:/855:543L43<?6=E,.A4:C=L)%4YV!1(YE/4YF+ F3%;S;&JC:%/?YEXJ4GXf/YS-EXEYW,9;E}X$}547EXiK=51-?71C%?57;5>463553Zg90;6447?<>4:9.7538XgN{|!}9K/E&3-:D+YE1)YE/3;37/:05}n<}:UX8Yj4Yt864@JYK..G=.(A Q3%6K>3(P3#AYE$-6H/456*C=.XHY[#S.<780191;057C)=6HXj?955B:K1 E>-B/9,;5.!L?:0>/.@//:;7833YZ56<4:YE=/:7Z_WGC%3I6>XkC*&NA16X=Yz2$X:Y^&J48<99k8}CyB-61<18K946YO4{|N}E)YIB9K0L>4=46<1K0+R;6-=1883:478;4,S+3YJX`GJXh.Yp+Xm6MXcYpX(>7Yo,/:X=Z;Xi0YTYHXjYmXiXj;*;I-8S6N#XgY}.3XfYGO3C/$XjL$*NYX,1 6;YH&<XkK9C#I74.>}Hd`A748X[T450[n75<4439:18A107>|ET}Rf<1;14876/Yb983E<5.YNXd4149>,S=/4E/<306443G/06}0&}UkYSXFYF=44=-5095=88;63844,9E6644{PL}WA8:>)7+>763>>0/B3A545CCnT}Xm|dv}Xq1L/YNXk/H8;;.R63351YY747@15YE4J8;46;.38.>4A369.=-83,;Ye3?:3@YE.4-+N353;/;@(X[YYD>@/05-I*@.:551741Yf5>6A443<3535;.58/86=D4753442$635D1>0359NQ @73:3:>><Xn?;43C14 ?Y|X611YG1&<+,4<*,YLXl<1/AIXjF*N89A4Z576K1XbJ5YF.ZOWN.YGXO/YQ01:4G38Xl1;KI0YFXB=R<7;D/,/4>;$I,YGXm94@O35Yz66695385.>:6A#5}W7n^4336:4157597434433<3|XA}m`>=D>:4A.337370?-6Q96{`E|4A}C`|Qs{Mk|J+~r>|o,wHv>Vw}!c{H!|Gb|*Ca5}J||,U{t+{CN[!M65YXOY_*B,Y[Z9XaX[QYJYLXPYuZ%XcZ8LY[SYPYKZM<LMYG9OYqSQYM~[e{UJXmQYyZM_)>YjN1~[f3{aXFY|Yk:48YdH^NZ0|T){jVFYTZNFY^YTYN~[h{nPYMYn3I]`EYUYsYIZEYJ7Yw)YnXPQYH+Z.ZAZY]^Z1Y`YSZFZyGYHXLYG 8Yd#4~[i|+)YH9D?Y^F~Y7|-eYxZ^WHYdYfZQ~[j|3>~[k|3oYmYqY^XYYO=Z*4[]Z/OYLXhZ1YLZIXgYIHYEYK,<Y`YEXIGZI[3YOYcB4SZ!YHZ*&Y{Xi3~[l|JSY`Zz?Z,~[m|O=Yi>??XnYWXmYS617YVYIHZ(Z4[~L4/=~[n|Yu{P)|];YOHHZ}~[o33|a>~[r|aE]DH~[s|e$Zz~[t|kZFY~XhYXZB[`Y}~[u|{SZ&OYkYQYuZ2Zf8D~[v}% ~[w3},Q[X]+YGYeYPIS~[y}4aZ!YN^!6PZ*~[z}?E~[{3}CnZ=~[}}EdDZz/9A3(3S<,YR8.D=*XgYPYcXN3Z5 4)~[~}JW=$Yu.XX~] }KDX`PXdZ4XfYpTJLY[F5]X~[2Yp}U+DZJ::<446[m@~]#3}]1~]%}^LZwZQ5Z`/OT<Yh^ -~]&}jx[ ~m<z!%2+~ly4VY-~o>}p62yz!%2+Xf2+~ly4VY-zQ`z (=] 2z~o2",C={" ":0,"!":1},c=34,i=2,p,s="",u=String.fromCharCode,t=u(12539);while(++c<127)C[u(c)]=c^39&&c^92?i++:0;i=0;while(0<=(c=C[a.charAt(i++)]))if(16==c)if((c=C[a.charAt(i++)])<87){if(86==c)c=1879;while(c--)s+=u(++p)}else s+=s.substr(8272,360);else if(c<86)s+=u(p+=c<51?c-16:(c-55)*92+C[a.charAt(i++)]);else if((c=((c-86)*92+C[a.charAt(i++)])*92+C[a.charAt(i++)])<49152)s+=u(p=c<40960?c:c|57344);else{c&=511;while(c--)s+=t;p=12539}return s')(); 
     225 
     226firemobilesimulator.common.ecl.JCT8836=firemobilesimulator.common.ecl.JCT11280.substring(0,8836); 
     227 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/common/pref.js

    r19719 r20267  
    1 /* ***** BEGIN LICENSE BLOCK Version: GPL 3.0 *****  
    2  * FireMobileFimulator is a Firefox add-on that simulate web browsers of  
    3  * japanese mobile phones. 
    4  * Copyright (C) 2008  Takahiro Horikawa <horikawa.takahiro@gmail.com> 
    5  * 
    6  * This program is free software: you can redistribute it and/or modify 
    7  * it under the terms of the GNU General Public License as published by 
    8  * the Free Software Foundation, either version 3 of the License, or 
    9  * (at your option) any later version. 
    10  * 
    11  * This program is distributed in the hope that it will be useful, 
    12  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    14  * GNU General Public License for more details. 
    15  * 
    16  * You should have received a copy of the GNU General Public License 
    17  * along with this program.  If not, see <http://www.gnu.org/licenses/>. 
    18  * ***** END LICENSE BLOCK ***** */ 
     1/******************************************************************************* 
     2 * ***** BEGIN LICENSE BLOCK Version: GPL 3.0 FireMobileFimulator is a Firefox 
     3 * add-on that simulate web browsers of japanese mobile phones. Copyright (C) 
     4 * 2008 Takahiro Horikawa <horikawa.takahiro@gmail.com> 
     5 *  
     6 * This program is free software: you can redistribute it and/or modify it under 
     7 * the terms of the GNU General Public License as published by the Free Software 
     8 * Foundation, either version 3 of the License, or (at your option) any later 
     9 * version. 
     10 *  
     11 * This program is distributed in the hope that it will be useful, but WITHOUT 
     12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
     13 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 
     14 * details. 
     15 *  
     16 * You should have received a copy of the GNU General Public License along with 
     17 * this program. If not, see <http://www.gnu.org/licenses/>. ***** END LICENSE 
     18 * BLOCK ***** 
     19 */ 
    1920 
    20 var jsLoader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader); 
    21 jsLoader.loadSubScript("chrome://global/content/nsUserSettings.js"); 
     21var firemobilesimulator; 
     22if(!firemobilesimulator) firemobilesimulator = {}; 
     23if(!firemobilesimulator.common) firemobilesimulator.common = {}; 
    2224 
    23 var pref = { 
     25firemobilesimulator.common.jsLoader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader); 
     26firemobilesimulator.common.jsLoader.loadSubScript("chrome://global/content/nsUserSettings.js"); 
     27 
     28firemobilesimulator.common.pref = { 
    2429        __proto__ : nsPreferences, 
    2530 
    26         get mPrefService2() 
     31        getPrefService2 : function() 
    2732        { 
    2833                return Components.classes["@mozilla.org/preferences-service;1"]. 
     
    3237        deletePref : function(preference) 
    3338        { 
    34                 if(this.mPrefService2.prefHasUserValue(preference)) 
     39                if(this.getPrefService2().prefHasUserValue(preference)) 
    3540                { 
    36                         this.mPrefService2.clearUserPref(preference); 
     41                        this.getPrefService2().clearUserPref(preference); 
    3742                } 
    3843        } 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/common/util.js

    r19736 r20267  
    1818 * ***** END LICENSE BLOCK ***** */ 
    1919 
     20var firemobilesimulator; 
     21if(!firemobilesimulator) firemobilesimulator = {}; 
     22if(!firemobilesimulator.common) firemobilesimulator.common = {}; 
     23if(!firemobilesimulator.common.util) firemobilesimulator.common.util = {}; 
     24 
    2025// Opens the URL in a new tab 
    21 function openURL(url) { 
     26firemobilesimulator.common.util.openURL = function(url) { 
    2227        var parentWindow = null; 
    2328 
     
    3843} 
    3944 
    40 // page load eventからcontent documentを返す 
    41 function getPageLoadEventContentDocument(event) { 
    42         try { 
    43                 var eventTarget = event.target; 
    44                 var originalTarget = event.originalTarget; 
    45  
    46                 if (eventTarget 
    47                                 && originalTarget 
    48                                 && (originalTarget.nodeName == "#document" || eventTarget == getBrowser())) { 
    49                         var contentDocument = eventTarget.contentDocument; 
    50  
    51                         if (!contentDocument && originalTarget.defaultView 
    52                                         && originalTarget.defaultView.parent) { 
    53                                 contentDocument = originalTarget.defaultView.parent.document; 
    54                         } 
    55  
    56                         if (contentDocument 
    57                                         && contentDocument.documentURI == originalTarget.documentURI) { 
    58                                 return contentDocument; 
    59                         } 
    60                 } 
    61         } catch (exception) { 
    62                 dump("[msim]Error can't get content document:" + exception + "\n"); 
    63         } 
    64  
    65         return null; 
    66 } 
    67  
    6845/** 
    6946 *  
     
    7249 * @return {} 
    7350 */ 
    74 function getParamsFromPath(path, func){ 
     51firemobilesimulator.common.util.getParamsFromPath = function(path, func){ 
    7552        var params = {}; 
    7653        var qindex = path.indexOf("?"); 
    7754        if (qindex >= 0) { 
    78                 params = getParamsFromQuery(path.substring(qindex+1), func); 
     55                params = firemobilesimulator.common.util.getParamsFromQuery(path.substring(qindex+1), func); 
    7956        } 
    8057        return params; 
     
    8764 * @return {} 
    8865 */ 
    89 function getParamsFromQuery(q, func){ 
     66firemobilesimulator.common.util.getParamsFromQuery = function(q, func){ 
    9067        if (!func || !func instanceof Function) func = decodeURI; 
    9168        //dump("##getParamsFromQuery start\n"); 
     
    11693 * @param {} lon 
    11794 */ 
    118 function Point(lat,lon){ 
     95firemobilesimulator.common.util.Point = function(lat,lon){ 
    11996        this.lat=lat; 
    12097        this.lon=lon; 
    12198}; 
    122 Point.prototype = { 
     99 
     100firemobilesimulator.common.util.Point.prototype = { 
    123101        lat : null, 
    124102        lon : null, 
     
    131109        toDms : function (){ 
    132110                if (this.unit == this.UNIT_DEGREE) { 
    133                         this.lat = degree2dms(this.lat); 
    134                         this.lon = degree2dms(this.lon); 
     111                        this.lat = firemobilesimulator.common.util.degree2dms(this.lat); 
     112                        this.lon = firemobilesimulator.common.util.degree2dms(this.lon); 
    135113                        this.unit = this.UNIT_DMS; 
    136114                } 
     
    138116        toDegree : function(){ 
    139117                if (this.unit == this.UNIT_DMS) { 
    140                         this.lat = dms2degree(this.lat); 
    141                         this.lon = dms2degree(this.lon); 
     118                        this.lat = firemobilesimulator.common.util.dms2degree(this.lat); 
     119                        this.lon = firemobilesimulator.common.util.dms2degree(this.lon); 
    142120                        this.unit = this.UNIT_DEGREE; 
    143121                } 
     
    163141 * @return {} 
    164142 */ 
    165 function dms2degree(dms){ 
     143firemobilesimulator.common.util.dms2degree = function(dms){ 
    166144        if (!/[-+]?(\d+)\.(\d+)\.(\d+\.\d+)/.test(dms)) { 
    167145                return null; 
     
    179157 * @return {} 
    180158 */ 
    181 function degree2dms(degree){ 
     159firemobilesimulator.common.util.degree2dms = function(degree){ 
    182160        var n = 1000; 
    183161        var u = Math.floor(degree*3600*n + 0.5); 
     
    203181} 
    204182 
    205 function getYYYYMMDDHHmm(){ 
     183firemobilesimulator.common.util.getYYYYMMDDHHmm = function(){ 
    206184        var now = new Date(); 
    207185        var y = (now.getFullYear()).toString(); 
     
    213191} 
    214192 
    215 function getHiddenTag(params){ 
     193firemobilesimulator.common.util.getHiddenTag = function(params){ 
    216194        var r = ""; 
    217195        for (var i in params) { 
    218196                if (i.toUpperCase() == "UID" && params[i].toUpperCase() == "NULLGWDOCOMO") { 
    219                         params[i] = pref.copyUnicharPref("msim.config.DC.uid"); 
     197                        params[i] = firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.uid"); 
    220198                } 
    221199                r += '<input type="hidden" name="'+i+'" value="'+params[i]+'" />\n'; 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/firefoxOverlay.xul

    r19736 r20267  
    2323<overlay id="msim-overlay" 
    2424         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
    25         <script type="application/x-javascript" src="common/preferences.js"></script> 
     25        <script type="application/x-javascript" src="core.js"></script> 
     26        <script type="application/x-javascript" src="common/pref.js"></script> 
    2627        <script type="application/x-javascript" src="common/carrier.js"></script> 
    2728        <script type="application/x-javascript" src="common/util.js"></script> 
    2829        <script type="application/x-javascript" src="overlay.js"></script> 
     30        <script type="application/x-javascript" src="core.js"></script> 
     31        <script type="application/x-javascript" src="mpc/common.js"></script> 
     32        <script type="application/x-javascript" src="mpc/docomo.js"></script> 
     33        <script type="application/x-javascript" src="mpc/ezweb.js"></script> 
     34        <script type="application/x-javascript" src="mpc/softbank.js"></script> 
    2935        <script type="application/x-javascript" src="mpc.js"></script> 
    30         <script type="application/x-javascript" src="carrier/common.js"></script> 
    31         <script type="application/x-javascript" src="carrier/foma.js"></script> 
    32         <script type="application/x-javascript" src="carrier/softbank.js"></script> 
    33         <script type="application/x-javascript" src="carrier/ezweb.js"></script> 
    3436 
    3537        <stringbundleset id="stringbundleset"> 
     
    3941        <menupopup id="menu_ToolsPopup"> 
    4042                <menu id="msim-menu" class="menu-iconic" accesskey="&msim.menu.accesskey;" insertafter="devToolsSeparator" label="&msim.label;"> 
    41                         <menupopup id="msim-popup-menu" onpopupshowing="msim.displayDeviceSwitcherMenu(this, 'menu');"> 
    42                                 <menuitem id="msim-default-menu" accesskey="&msim.menu.default.accesskey;" label="&msim.menu.default.label;" type="radio" oncommand="msim.msim_resetDevice(event);" name="devicelist"/> 
     43                        <menupopup id="msim-popup-menu" onpopupshowing="firemobilesimulator.overlay.displayDeviceSwitcherMenu(this, 'menu');"> 
     44                                <menuitem id="msim-default-menu" accesskey="&msim.menu.default.accesskey;" label="&msim.menu.default.label;" type="radio" oncommand="firemobilesimulator.core.resetDevice(event);" name="devicelist"/> 
    4345                                <menuseparator id="msim-separator1-menu"/> 
    4446                                <menuseparator id="msim-separator2-menu"/> 
    45                                 <menuitem id="msim-options-menu" accesskey="&msim.menu.options.accesskey;" label="&msim.menu.options.label;" oncommand="msim.msim_openOptions();"/> 
    46                                 <menuitem id="msim-about-menu" accesskey="&msim.menu.about.accesskey;" label="&msim.menu.about.label;" oncommand="msim.msim_openAbout();"/> 
     47                                <menuitem id="msim-options-menu" accesskey="&msim.menu.options.accesskey;" label="&msim.menu.options.label;" oncommand="firemobilesimulator.overlay.openOptions();"/> 
     48                                <menuitem id="msim-about-menu" accesskey="&msim.menu.about.accesskey;" label="&msim.menu.about.label;" oncommand="firemobilesimulator.overlay.openAbout();"/> 
    4749                        </menupopup> 
    4850                </menu> 
     
    5052 
    5153        <toolbarpalette id="BrowserToolbarPalette"> 
    52                 <toolbarbutton id="msim-button" label="&msim.label;" tooltiptext="&msim.label;" type="menu" onmouseover="msim.msim_openToolbarButton(this);"> 
    53                         <menupopup id="msim-popup-toolbar" onpopupshowing="msim.displayDeviceSwitcherMenu(this, 'toolbar');"> 
    54                                 <menuitem id="msim-default-toolbar" accesskey="&msim.menu.default.accesskey;" label="&msim.menu.default.label;" type="radio" oncommand="msim.msim_resetDevice(event);" name="devicelist"/> 
     54                <toolbarbutton id="msim-button" label="&msim.label;" tooltiptext="&msim.label;" type="menu" onmouseover="firemobilesimulator.overlay.openToolbarButton(this);"> 
     55                        <menupopup id="msim-popup-toolbar" onpopupshowing="firemobilesimulator.overlay.displayDeviceSwitcherMenu(this, 'toolbar');"> 
     56                                <menuitem id="msim-default-toolbar" accesskey="&msim.menu.default.accesskey;" label="&msim.menu.default.label;" type="radio" oncommand="firemobilesimulator.core.resetDevice(event);" name="devicelist"/> 
    5557                                <menuseparator id="msim-separator1-toolbar"/> 
    5658                                <menuseparator id="msim-separator2-toolbar"/> 
    57                                 <menuitem id="msim-options-toolbar" accesskey="&msim.menu.options.accesskey;" label="&msim.menu.options.label;" oncommand="msim.msim_openOptions();"/> 
    58                                 <menuitem id="msim-about-toolbar" accesskey="&msim.menu.about.accesskey;" label="&msim.menu.about.label;" oncommand="msim.msim_openAbout();"/> 
     59                                <menuitem id="msim-options-toolbar" accesskey="&msim.menu.options.accesskey;" label="&msim.menu.options.label;" oncommand="firemobilesimulator.overlay.openOptions();"/> 
     60                                <menuitem id="msim-about-toolbar" accesskey="&msim.menu.about.accesskey;" label="&msim.menu.about.label;" oncommand="firemobilesimulator.overlay.openAbout();"/> 
    5961                        </menupopup> 
    6062                </toolbarbutton> 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/html/au_gps.html

    r19579 r20267  
    11<html> 
    22<head> 
    3 <script type="text/javascript" src="chrome://msim/content/common/preferences.js"></script> 
     3<script type="text/javascript" src="chrome://msim/content/common/pref.js"></script> 
    44<script type="text/javascript" src="chrome://msim/content/common/util.js"></script> 
    55<script type="text/javascript" src="chrome://msim/content/html/au_gps.js"></script> 
     
    77        window.onload= 
    88        function init(){ 
    9                 var params = getParamsFromPath(location.href); 
    10                 auLocationInit(params); 
     9                var params = firemobilesimulator.common.util.getParamsFromPath(location.href); 
     10                firemobilesimulator.auLocationInit(params); 
    1111        }; 
    1212</script> 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/html/au_gps.js

    r19719 r20267  
    1818 * ***** END LICENSE BLOCK ***** */ 
    1919 
    20 function auLocationInit(params) { 
     20var firemobilesimulator; 
     21if(!firemobilesimulator) firemobilesimulator = {}; 
     22 
     23firemobilesimulator.auLocationInit = function(params) { 
    2124        var href = location.href; 
    22         var lat = encodeURIComponent(pref.copyUnicharPref("msim.config.AU.gps.lat")); 
    23         var lon = encodeURIComponent(pref.copyUnicharPref("msim.config.AU.gps.lon")); 
     25        var lat = encodeURIComponent(firemobilesimulator.common.pref.copyUnicharPref("msim.config.AU.gps.lat")); 
     26        var lon = encodeURIComponent(firemobilesimulator.common.pref.copyUnicharPref("msim.config.AU.gps.lon")); 
    2427 
    2528        if(href.indexOf("device:location") == 0){ 
     
    3134                var datum = params["datum"]; // 測地系 
    3235                var unit  = params["unit"]; // 緯度経度表記方法 
    33                 var alt   = pref.copyUnicharPref("msim.config.AU.gps.alt") || 50; //海抜高度 
    34                 var time  = getYYYYMMDDHHmm(); 
    35                 var smaj  = pref.copyUnicharPref("msim.config.AU.gps.smaj") || 100; //長軸成分誤差 
    36                 var smin  = pref.copyUnicharPref("msim.config.AU.gps.smin") || 100; //短軸成分誤差 
    37                 var vert  = pref.copyUnicharPref("msim.config.AU.gps.vert") || 100; //高度誤差 
    38                 var majaa = pref.copyUnicharPref("msim.config.AU.gps.majaa") || 60; //長軸短軸傾き値 
     36                var alt   = firemobilesimulator.common.pref.copyUnicharPref("msim.config.AU.gps.alt") || 50; //海抜高度 
     37                var time  = firemobilesimulator.common.util.getYYYYMMDDHHmm(); 
     38                var smaj  = firemobilesimulator.common.pref.copyUnicharPref("msim.config.AU.gps.smaj") || 100; //長軸成分誤差 
     39                var smin  = firemobilesimulator.common.pref.copyUnicharPref("msim.config.AU.gps.smin") || 100; //短軸成分誤差 
     40                var vert  = firemobilesimulator.common.pref.copyUnicharPref("msim.config.AU.gps.vert") || 100; //高度誤差 
     41                var majaa = firemobilesimulator.common.pref.copyUnicharPref("msim.config.AU.gps.majaa") || 60; //長軸短軸傾き値 
    3942                var fm = 1; //測位結果の精度 
    4043 
    41                 var point = new Point(lat, lon); 
     44                var point = new firemobilesimulator.common.util.Point(lat, lon); 
    4245                if(datum == 1){ 
    4346                        // 東京測地系 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/html/dc_openiarea.html

    r19579 r20267  
    11<html> 
    22<head> 
    3 <script type="text/javascript" src="chrome://msim/content/common/preferences.js"></script> 
     3<script type="text/javascript" src="chrome://msim/content/common/pref.js"></script> 
    44<script type="text/javascript" src="chrome://msim/content/common/util.js"></script> 
    55<script type="text/javascript" src="dc_openiarea.js"></script> 
     
    77        window.onload= 
    88        function init(){ 
    9                 var params = getParamsFromPath(location.href); 
    10                 openiareaInit(params); 
     9                var params = firemobilesimulator.common.util.getParamsFromPath(location.href); 
     10                firemobilesimulator.openiareaInit(params); 
    1111        }; 
    1212</script> 
    1313</head> 
    1414<body> 
    15 <div id="openiarea_body"></div> 
     15<div id="firemobilesimulator-openiarea-body"></div> 
    1616<div>※情報を送信しない場合はバックボタンで戻ってください。</div> 
    1717<div><a href="#">ご利用にあたって</a></div> 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/html/dc_openiarea.js

    r19719 r20267  
    1818 * ***** END LICENSE BLOCK ***** */ 
    1919 
    20 function openiareaInit(params){ 
     20var firemobilesimulator; 
     21if(!firemobilesimulator) firemobilesimulator = {}; 
     22 
     23firemobilesimulator.openiareaInit = function(params){ 
    2124        var nl = unescape(params["nl"]); 
    2225        var posinfo = params["posinfo"]; 
     
    2427        var arg2 = params["arg2"]; 
    2528        dump("##"+arg1+":"+arg2+"\n"); 
    26         var arg1params = arg1 ? getParamsFromQuery(unescape(arg1)) : null; 
    27         var arg2params = arg2 ? getParamsFromQuery(unescape(arg2)) : null; 
     29        var arg1params = arg1 ? firemobilesimulator.common.util.getParamsFromQuery(unescape(arg1)) : null; 
     30        var arg2params = arg2 ? firemobilesimulator.common.util.getParamsFromQuery(unescape(arg2)) : null; 
    2831 
    29         var openiareaBody = document.getElementById("openiarea_body"); 
    30         var areaname = pref.copyUnicharPref("msim.config.DC.gps.areaname"); 
    31         var areacode = pref.copyUnicharPref("msim.config.DC.gps.areacode"); 
    32         var lat = pref.copyUnicharPref("msim.config.DC.gps.lat"); 
    33         var lon = pref.copyUnicharPref("msim.config.DC.gps.lon"); 
     32        var openiareaBody = document.getElementById("firemobilesimulator-openiarea-body"); 
     33        var areaname = firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.areaname"); 
     34        var areacode = firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.areacode"); 
     35        var lat = firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.lat"); 
     36        var lon = firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.lon"); 
    3437 
    3538        if(!posinfo){ 
     
    4144<form method="POST" action='+nl+'>\ 
    4245<input type="hidden" name="AREACODE" value="'+areacode+'">'; 
    43 body += getHiddenTag(arg1params); 
    44 body += getHiddenTag(arg2params); 
     46body += firemobilesimulator.common.util.getHiddenTag(arg1params); 
     47body += firemobilesimulator.common.util.getHiddenTag(arg2params); 
    4548body += '\ 
    4649<div align="center"><input type="submit" name="ACTN" value="OK"></div>\ 
     
    6568<input type="hidden" name="GEO" value="wgs84">\ 
    6669<input type="hidden" name="XACC" value="1">'; 
    67 body += getHiddenTag(arg1params); 
    68 body += getHiddenTag(arg2params); 
     70body += firemobilesimulator.common.util.getHiddenTag(arg1params); 
     71body += firemobilesimulator.common.util.getHiddenTag(arg2params); 
    6972body += '\ 
    7073<input type="hidden" name="POSINFO" value="'+posinfo+'">\ 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/mpc.js

    r19719 r20267  
    1 /* ***** BEGIN LICENSE BLOCK Version: GPL 3.0 *****  
    2  * FireMobileFimulator is a Firefox add-on that simulate web browsers of  
    3  * japanese mobile phones. 
    4  * Copyright (C) 2008 ryster <ryster@php-develop.org> 
    5  * 
    6  * This program is free software: you can redistribute it and/or modify 
    7  * it under the terms of the GNU General Public License as published by 
    8  * the Free Software Foundation, either version 3 of the License, or 
    9  * (at your option) any later version. 
    10  * 
    11  * This program is distributed in the hope that it will be useful, 
    12  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    14  * GNU General Public License for more details. 
    15  * 
    16  * You should have received a copy of the GNU General Public License 
    17  * along with this program.  If not, see <http://www.gnu.org/licenses/>. 
    18  * ***** END LICENSE BLOCK ***** 
     1/******************************************************************************* 
     2 * ***** BEGIN LICENSE BLOCK Version: GPL 3.0 FireMobileFimulator is a Firefox 
     3 * add-on that simulate web browsers of japanese mobile phones. Copyright (C) 
     4 * 2008 ryster <ryster@php-develop.org> 
     5 *  
     6 * This program is free software: you can redistribute it and/or modify it under 
     7 * the terms of the GNU General Public License as published by the Free Software 
     8 * Foundation, either version 3 of the License, or (at your option) any later 
     9 * version. 
     10 *  
     11 * This program is distributed in the hope that it will be useful, but WITHOUT 
     12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
     13 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 
     14 * details. 
     15 *  
     16 * You should have received a copy of the GNU General Public License along with 
     17 * this program. If not, see <http://www.gnu.org/licenses/>. ***** END LICENSE 
     18 * BLOCK ***** 
    1919 */ 
    2020 
    21 var MobilePictogramConverter = { 
    22         /** 
    23         * �^�C�v�ɍ��킹�āA��p�̃N���X�I�u�W�F�N�g�𐶐� 
    24         * @param string  str     �ϊ��O������ 
    25         * @param string  carrier str�̊G�����L�����A (MPC_FROM_FOMA, MPC_FROM_EZWEB, MPC_FROM_SOFTBANK) 
    26         * @return mixed 
    27         */ 
    28         factory : function (carrier) { 
    29                 var classname = eval('MPC_'+carrier); 
    30                 var mpc = new classname; 
    31                 return mpc; 
    32         } 
     21var firemobilesimulator; 
     22if (!firemobilesimulator) 
     23        firemobilesimulator = {}; 
     24if (!firemobilesimulator.mpc) 
     25        firemobilesimulator.mpc = {}; 
     26         
     27firemobilesimulator.mpc.factoryMap = {}; 
     28firemobilesimulator.mpc.factoryMap[firemobilesimulator.common.carrier.DOCOMO] = firemobilesimulator.mpc.docomo; 
     29firemobilesimulator.mpc.factoryMap[firemobilesimulator.common.carrier.AU] = firemobilesimulator.mpc.ezweb; 
     30firemobilesimulator.mpc.factoryMap[firemobilesimulator.common.carrier.SOFTBANK] = firemobilesimulator.mpc.softbank; 
     31 
     32firemobilesimulator.mpc.factory = function(carrier) { 
     33        return new firemobilesimulator.mpc.factoryMap[carrier]; 
    3334}; 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/mpc/common.js

    r19736 r20267  
    1818 * ***** END LICENSE BLOCK ***** */ 
    1919 
    20 var MPC_SJIS = "SJIS"; 
    21 var MPC_UTF8 = "UTF-8"; 
    22 var MPC_EUCJP = "EUC_JP"; 
     20var firemobilesimulator; 
     21if(!firemobilesimulator) firemobilesimulator = {}; 
     22if(!firemobilesimulator.mpc) firemobilesimulator.mpc = {}; 
     23if(!firemobilesimulator.mpc.common) firemobilesimulator.mpc.common = {}; 
    2324 
    24 var HexStrings = function(hexstrings, charset) { 
     25firemobilesimulator.mpc.common.MPC_SJIS = "SJIS"; 
     26firemobilesimulator.mpc.common.MPC_UTF8 = "UTF-8"; 
     27firemobilesimulator.mpc.common.MPC_EUCJP = "EUC_JP"; 
     28 
     29firemobilesimulator.mpc.common.HexStrings = function(hexstrings, charset) { 
    2530        this.hexstrings = hexstrings || ""; 
    26         this.charset = charset || MPC_SJIS; 
     31        this.charset = charset || firemobilesimulator.mpc.common.MPC_SJIS; 
    2732        this.i = 0; 
    2833}; 
    2934 
    30 HexStrings.prototype = { 
     35firemobilesimulator.mpc.common.HexStrings.prototype = { 
    3136        hexstring : "", 
    3237        charset : "", 
     
    3843        getNextCharacterDecs : function() { 
    3944                var ds = parseInt(this.hexstrings[this.i], 16); 
    40                 if (ds >= 0x00 && ds <= 0x7F || this.charset == MPC_SJIS && ds >= 0xA0 
     45                if (ds >= 0x00 && ds <= 0x7F || this.charset == firemobilesimulator.mpc.common.MPC_SJIS && ds >= 0xA0 
    4146                                && ds <= 0xDF) { 
    4247                        // 1バイト文字 
    4348                        this.i += 1; 
    4449                        return [ds]; 
    45                 } else if (this.charset == MPC_SJIS) { 
     50                } else if (this.charset == firemobilesimulator.mpc.common.MPC_SJIS) { 
    4651                        // 2バイト文字 
    4752                        var ds2 = parseInt(this.hexstrings[this.i + 1], 16); 
    4853                        this.i += 2; 
    4954                        return [ds, ds2]; 
    50                 } else if (this.charset == MPC_UTF8) { 
     55                } else if (this.charset == firemobilesimulator.mpc.common.MPC_UTF8) { 
    5156                        // 3バイト(UTF-8) 
    5257                        if (ds >= 0xE0 && ds <= 0xEF) { 
     
    6368}; 
    6469 
    65 function unpack(str) { 
     70firemobilesimulator.mpc.common.unpack = function(str) { 
    6671        // dump("unpack start:"+str+"\n"); 
    6772        var last = str.length; 
     
    7479} 
    7580 
    76 function sdecs2udec(chs) { 
     81firemobilesimulator.mpc.common.sdecs2udec = function(chs) { 
    7782        var hex = ""; 
    7883        for (var i = 0; i < chs.length; i++) { 
     
    8085                hex += "%" + temp.slice(-2); 
    8186        } 
    82         var unicode = EscapeUnicode(UnescapeSJIS(hex)); 
     87        var unicode = firemobilesimulator.common.ecl.EscapeUnicode(firemobilesimulator.common.ecl.UnescapeSJIS(hex)); 
    8388        if (/^%(?:u[0-9A-F]{4}|[0-9A-F]{2})$/.test(unicode)) { 
    8489                //dump("return" + parseInt(unicode.substring(2, 6), 16) + "\n"); 
     
    8994} 
    9095 
    91 function u8decs2udec(chs) { 
     96firemobilesimulator.mpc.common.u8decs2udec = function(chs) { 
    9297        var hex = ""; 
    9398        for (var i = 0; i < chs.length; i++) { 
     
    95100                hex += "%" + temp.slice(-2); 
    96101        } 
    97         var unicode = EscapeUnicode(UnescapeUTF8(hex)); 
     102        var unicode = firemobilesimulator.common.ecl.EscapeUnicode(firemobilesimulator.common.ecl.UnescapeUTF8(hex)); 
    98103        if (/^%(?:u[0-9A-F]{4}|[0-9A-F]{2})$/.test(unicode)) { 
    99104                //dump("return" + parseInt(unicode.substring(2, 6), 16) + "\n"); 
     
    104109} 
    105110 
    106 function utf82unicode(bits) { 
     111firemobilesimulator.mpc.common.utf82unicode = function(bits) { 
    107112        var rbits = new Array(2); 
    108113        if (bits.length == 3) { 
     
    118123} 
    119124 
    120 function unicode2utf8(bits) { 
     125firemobilesimulator.mpc.common.unicode2utf8 = function(bits){ 
    121126        var rbits = new Array(3); 
    122127        if (bits.length == 2) { 
     
    130135} 
    131136 
    132 function bits2dec(bits) { 
     137firemobilesimulator.mpc.common.bits2dec = function(bits) { 
    133138        var r = 0; 
    134139        for (var i=0; i<bits.length; i++) { 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/mpc/docomo.js

    r19736 r20267  
    1818 * ***** END LICENSE BLOCK ***** */ 
    1919 
    20 var MPC_DC = function(charset) { 
    21         this.charset = charset || MPC_SJIS; 
     20var firemobilesimulator; 
     21if(!firemobilesimulator) firemobilesimulator = {}; 
     22if(!firemobilesimulator.mpc) firemobilesimulator.mpc = {}; 
     23 
     24firemobilesimulator.mpc.docomo = function(charset) { 
     25        this.charset = charset || firemobilesimulator.mpc.common.MPC_SJIS; 
    2226}; 
    23 MPC_DC.prototype = { 
     27firemobilesimulator.mpc.docomo.prototype = { 
    2428        /** 
    2529         * i-mode絵文字画像格納パス 
     
    3842        convert : function(str) { 
    3943                dump("[mpc]DoCoMo convert start.charset = "+this.charset+"\n"); 
    40                 // Firefoxから数値参照が直接渡ってこないので、とりあえずコメントアウト 
    41                 // var re1 = /&#x([a-f0-9]{4});/ig; 
    42                 // var re2 = /&#([0-9]{5});/g; 
    43                 // var _this = this; 
    44                 // Unicodeの16進数値文字参照をimgタグ形式に変換 
    45                 // str = str.replace(re1, function(whole, s1) { var udec = 
    46                 // parseInt(s1,16); return _this.isPictogramDec(udec) ? 
    47                 // _this.i_options_encode(udec) : s1 ; }); 
    48                 // SJISの10進数値文字参照をimgタグ形式に変換 
    49                 // str = str.replace(re2, function(whole, s1) { var udec = sdec2udec(s1); 
    50                 // return _this.isPictogramDec(udec) ? _this.i_options_encode(udec) : s1 
    51                 // ; }); 
    5244 
    5345                // 10進数値文字参照をバイナリに変換(絵文字以外も対象としてよし) 
     
    7668                //TODO: Auから呼び出される場合は違う判定にすべきかどうか? 
    7769                //TODO: 基本絵文字のみに限定する 
    78                 if (this.charset == MPC_SJIS) { 
     70                if (this.charset == firemobilesimulator.mpc.common.MPC_SJIS) { 
    7971                        dump("[mpc]DoCoMo SJIS10match start\n"); 
    8072                        var regNumericReferenceDec = /&#([0-9]{5});/g; 
     
    9587                // バイナリをimgタグ形式に変換 
    9688                dump("[mpc]DoCoMo binary match start\n"); 
    97                 var hexstrings = new HexStrings(unpack(str), this.charset); 
     89                var hexstrings = new firemobilesimulator.mpc.common.HexStrings(firemobilesimulator.mpc.common.unpack(str), this.charset); 
    9890                var r = ""; 
    9991                while (hexstrings.hasNextCharacter()) { 
    10092                        var decs = hexstrings.getNextCharacterDecs(); 
    101                         if (this.charset == MPC_SJIS) { 
     93                        if (this.charset == firemobilesimulator.mpc.common.MPC_SJIS) { 
    10294                                // SJISバイナリの絵文字を変換 
    10395                                if (this.isPictogramSJISDecs(decs)) { 
    104                                         r += this.i_options_encode(sdecs2udec(decs)); 
     96                                        r += this.i_options_encode(firemobilesimulator.mpc.common.sdecs2udec(decs)); 
    10597                                } else { 
    10698                                        for (var i = 0; i < decs.length; i++) { 
     
    108100                                        } 
    109101                                } 
    110                         } else if (this.charset == MPC_UTF8) { 
     102                        } else if (this.charset == firemobilesimulator.mpc.common.MPC_UTF8) { 
    111103                                // UTF-8バイナリの絵文字を変換 
    112104                                if (this.isPictogramUTF8Decs(decs)) { 
    113                                         r += this.i_options_encode(u8decs2udec(decs)); 
     105                                        r += this.i_options_encode(firemobilesimulator.mpc.common.u8decs2udec(decs)); 
    114106                                } else { 
    115107                                        for (var i = 0; i < decs.length; i++) { 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/mpc/ezweb.js

    r19736 r20267  
    1818 * ***** END LICENSE BLOCK ***** */ 
    1919 
    20 var MPC_AU = function(charset) { 
    21         this.charset = charset || MPC_SJIS; 
     20var firemobilesimulator; 
     21if(!firemobilesimulator) firemobilesimulator = {}; 
     22if(!firemobilesimulator.mpc) firemobilesimulator.mpc = {}; 
     23 
     24firemobilesimulator.mpc.ezweb = function(charset) { 
     25        this.charset = charset || firemobilesimulator.mpc.common.MPC_SJIS; 
    2226}; 
    23 MPC_AU.prototype = { 
     27firemobilesimulator.mpc.ezweb.prototype = { 
    2428        /** 
    2529         * EZweb絵文字画像格納パス 
     
    837841                                dump("au SJIS 16 match\n"); 
    838842                                return _this 
    839                                                 .e_options_encode(_this.getIconMapSJIS()[bits2dec(decs)]); 
     843                                                .e_options_encode(_this.getIconMapSJIS()[firemobilesimulator.mpc.common.bits2dec(decs)]); 
    840844                        } else if (_this.isPictogramUnicodeDecs(decs)) { 
    841845                                // decsはUnicode 
    842846                                dump("au Unicode 16 match\n"); 
    843847                                return _this 
    844                                                 .e_options_encode(_this.getIconMapUnicode()[bits2dec(decs)]); 
     848                                                .e_options_encode(_this.getIconMapUnicode()[firemobilesimulator.mpc.common.bits2dec(decs)]); 
    845849                        } else { 
    846850                                dump("au 16 no match\n") 
     
    867871                                dump("au SJIS 10 match\n"); 
    868872                                return _this 
    869                                                 .e_options_encode(_this.getIconMapSJIS()[bits2dec(decs)]); 
     873                                                .e_options_encode(_this.getIconMapSJIS()[firemobilesimulator.mpc.common.bits2dec(decs)]); 
    870874                        } else if (_this.isPictogramUnicodeDecs(decs)) { 
    871875                                // decsはUnicode 
    872876                                dump("au Unicode 10 match\n"); 
    873877                                return _this 
    874                                                 .e_options_encode(_this.getIconMapUnicode()[bits2dec(decs)]); 
     878                                                .e_options_encode(_this.getIconMapUnicode()[firemobilesimulator.mpc.common.bits2dec(decs)]); 
    875879                        } else { 
    876880                                dump("au 10 no match\n"); 
     
    882886                // var hexstrings = unpack_e(str); 
    883887                var r = ""; 
    884                 var hexstrings = new HexStrings(unpack(str), this.charset); 
     888                var hexstrings = new firemobilesimulator.mpc.common.HexStrings(firemobilesimulator.mpc.common.unpack(str), this.charset); 
    885889 
    886890                dump("[mpc]Au binary match start\n"); 
     
    888892                        var decs = hexstrings.getNextCharacterDecs(); 
    889893                        // 絵文字変換処理 
    890                         if (this.charset == MPC_SJIS) { 
     894                        if (this.charset == firemobilesimulator.mpc.common.MPC_SJIS) { 
    891895                                // SJISバイナリの絵文字を変換 
    892896                                if (this.isPictogramSJISDecs(decs)) { 
    893897                                        r += this 
    894                                                         .e_options_encode(_this.getIconMapSJIS()[bits2dec(decs)]); 
     898                                                        .e_options_encode(_this.getIconMapSJIS()[firemobilesimulator.mpc.common.bits2dec(decs)]); 
    895899                                } else { 
    896900                                        for (var i = 0; i < decs.length; i++) { 
     
    898902                                        } 
    899903                                } 
    900                         } else if (this.charset == MPC_UTF8) { 
     904                        } else if (this.charset == firemobilesimulator.mpc.common.MPC_UTF8) { 
    901905                                // 裏KDDIのUTF-8バイナリの絵文字を変換 
    902906                                if (this.isPictogramUTF8Decs(decs)) { 
    903907                                        r += this 
    904                                                         .e_options_encode(_this.getIconMapSJIS()[bits2dec(_this 
    905                                                                         .e_unofficialUnicode2SJIS(utf82unicode(decs)))]); 
     908                                                        .e_options_encode(_this.getIconMapSJIS()[firemobilesimulator.mpc.common.bits2dec(_this 
     909                                                                        .e_unofficialUnicode2SJIS(firemobilesimulator.mpc.common.utf82unicode(decs)))]); 
    906910                                } else { 
    907911                                        for (var i = 0; i < decs.length; i++) { 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/mpc/softbank.js

    r19736 r20267  
    1818 * ***** END LICENSE BLOCK ***** */ 
    1919 
    20 var MPC_SB = function(){}; 
    21 MPC_SB.prototype = 
     20var firemobilesimulator; 
     21if(!firemobilesimulator) firemobilesimulator = {}; 
     22if(!firemobilesimulator.mpc) firemobilesimulator.mpc = {}; 
     23 
     24firemobilesimulator.mpc.softbank = function(){}; 
     25firemobilesimulator.mpc.softbank.prototype = 
    2226{ 
    2327        /** 
     
    4044                var _this = this; 
    4145                var f = function(whole, s1){ 
    42                         var hexstrings = unpack(s1); 
     46                        var hexstrings = firemobilesimulator.mpc.common.unpack(s1); 
    4347                        var emoji = ""; 
    4448                        for (var i=1; i<hexstrings.length; i++) { 
     
    7781                // バイナリをimgタグ形式に変換 
    7882                dump("[mpc]SoftBank binary match start\n"); 
    79                 var hexstrings = new HexStrings(unpack(str), this.charset); 
     83                var hexstrings = new firemobilesimulator.mpc.common.HexStrings(firemobilesimulator.mpc.common.unpack(str), this.charset); 
    8084                var r = ""; 
    8185                while (hexstrings.hasNextCharacter()) { 
    8286                        var decs = hexstrings.getNextCharacterDecs(); 
    83                         if (this.charset == MPC_SJIS) { 
     87                        if (this.charset == firemobilesimulator.mpc.common.MPC_SJIS) { 
    8488                                // SJISバイナリの絵文字を変換 [unofficial] 
    8589                                var web = 0; 
    8690                                if (decs.length==2) { 
    87                                         web = this.s2web(bits2dec(decs)); 
     91                                        web = this.s2web(firemobilesimulator.mpc.common.bits2dec(decs)); 
    8892                                } 
    8993                                if (web) { 
     
    9498                                        } 
    9599                                } 
    96                         } else if (this.charset == MPC_UTF8) { 
     100                        } else if (this.charset == firemobilesimulator.mpc.common.MPC_UTF8) { 
    97101                                // UTF-8バイナリの絵文字を変換 [unofficial] 
    98102                                var web = 0; 
    99103                                if (decs.length==3) { 
    100                                         web = this.u2web(bits2dec(utf82unicode(decs))); 
     104                                        web = this.u2web(firemobilesimulator.mpc.common.bits2dec(firemobilesimulator.mpc.common.utf82unicode(decs))); 
    101105                                } 
    102106                                if (web) { 
     
    190194        } 
    191195}; 
    192  
    193 function unpack(str){ 
    194         var last = str.length; 
    195         var ret = Array(last); 
    196         for (var i = 0; i < last; i++) { 
    197                 ret[i] = str.charCodeAt(i).toString(16); 
    198         } 
    199         return ret; 
    200 } 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/options/dialogs/device.js

    r19736 r20267  
    1 var msim_windowType = null; 
    2 var carrier = null; 
    3 var id = null; 
    4 var retVals; 
    5 var stringBundle; 
    6 // Clears the user agent 
    7  
    8 function msim_clearDevice() { 
    9 } 
     1var firemobilesimulator; 
     2if (!firemobilesimulator) 
     3        firemobilesimulator = {}; 
     4if (!firemobilesimulator.options) 
     5        firemobilesimulator.options = {}; 
     6if (!firemobilesimulator.options.dialogs) 
     7        firemobilesimulator.options.dialogs = {}; 
     8if (!firemobilesimulator.options.dialogs.device) 
     9        firemobilesimulator.options.dialogs.device = {}; 
     10 
     11firemobilesimulator.options.dialogs.device.carrier = null; 
     12firemobilesimulator.options.dialogs.device.id = null; 
    1013 
    1114// Initializes the user agent dialog box 
    12 function msim_initializeDevice() { 
     15firemobilesimulator.options.dialogs.device.initializeDevice = function() { 
    1316        dump("[msim]initializeDevice()\n"); 
    14         stringBundle = document.getElementById("msim-string-bundle"); 
    15  
    16         msim_windowType = window.arguments[0]; 
     17        firemobilesimulator.options.dialogs.device.stringBundle = document 
     18                        .getElementById("msim-string-bundle"); 
     19        firemobilesimulator.options.dialogs.device.windowType = window.arguments[0]; 
     20        firemobilesimulator.options.dialogs.device.retVals = window.arguments[3]; 
    1721 
    1822        // If the window type is add 
    19         if (msim_windowType == "add") { 
    20                 document.title = stringBundle.getString("msim_addDeviceTitle"); 
     23        if (firemobilesimulator.options.dialogs.device.windowType == "add") { 
     24                document.title = firemobilesimulator.options.dialogs.device.stringBundle 
     25                                .getString("msim_addDeviceTitle"); 
    2126                var carrierList = document.createElement("menulist"); 
    2227                var carrierListPopup = document.createElement("menupopup") 
    2328                carrierList.setAttribute("id", "msim.options.device.carrierlist"); 
    2429 
    25                 [""].concat(carrierArray).forEach(function (carrierTemp) { 
    26                         var menuItem = document.createElement("menuitem"); 
    27                         menuItem.setAttribute("label", carrierName[carrierTemp] 
    28                                                         || stringBundle.getString("msim_selectCarrier")); 
    29                         menuItem.setAttribute("id", carrierTemp); 
    30                         menuItem.setAttribute("oncommand", 'carrierSelected(this)'); 
    31                         carrierListPopup.appendChild(menuItem); 
    32                 }); 
     30                [""].concat(firemobilesimulator.common.carrier.carrierArray) 
     31                                .forEach(function(carrierTemp) { 
     32                                        var menuItem = document.createElement("menuitem"); 
     33                                        menuItem.setAttribute( 
     34                                                                        "label", 
     35                                                                        firemobilesimulator.common.carrier.carrierName[carrierTemp] 
     36                                                                                        || firemobilesimulator.options.dialogs.device.stringBundle 
     37                                                                                                        .getString("msim_selectCarrier")); 
     38                                        menuItem.setAttribute("id", carrierTemp); 
     39                                        menuItem.setAttribute("oncommand", 
     40                                                                        'firemobilesimulator.options.dialogs.device.carrierSelected(this)'); 
     41                                        carrierListPopup.appendChild(menuItem); 
     42                                }); 
    3343                carrierList.appendChild(carrierListPopup); 
    3444                var r = document.getElementById("msim.options.device.carrier.row"); 
    35                 r.replaceChild(carrierList, r.lastChild); 
     45                r.appendChild(carrierList); 
     46                //r.replaceChild(carrierList, r.lastChild); 
     47                //r.replaceChild(carrierList, r); 
    3648 
    3749                document.getElementById("msim.options.device.device").disabled = false; 
    3850 
    39         } else if (msim_windowType == "edit") { 
    40                 dump("edit\n"); 
    41                 document.title = stringBundle.getString("msim_editDeviceTitle"); 
    42                 carrier = window.arguments[1]; 
    43                 id = window.arguments[2]; 
    44                 dump(carrier + "\n"); 
    45                 dump(id + "\n"); 
    46                 document.getElementById("msim.options.device.device").value = pref 
    47                                 .copyUnicharPref("msim.devicelist." + carrier + "." + id 
     51        } else if (firemobilesimulator.options.dialogs.device.windowType == "edit") { 
     52                dump("[msim]edit device.\n"); 
     53                document.title = firemobilesimulator.options.dialogs.device.stringBundle 
     54                                .getString("msim_editDeviceTitle"); 
     55                firemobilesimulator.options.dialogs.device.carrier = window.arguments[1]; 
     56                firemobilesimulator.options.dialogs.device.id = window.arguments[2]; 
     57                dump(firemobilesimulator.options.dialogs.device.carrier + "\n"); 
     58                dump(firemobilesimulator.options.dialogs.device.id + "\n"); 
     59                document.getElementById("msim.options.device.device").value = firemobilesimulator.common.pref 
     60                                .copyUnicharPref("msim.devicelist." 
     61                                                + firemobilesimulator.options.dialogs.device.carrier 
     62                                                + "." + firemobilesimulator.options.dialogs.device.id 
    4863                                                + ".device"); 
    49                 document.getElementById("msim.options.device.carrier").value = carrierName[carrier]; 
    50                 document.getElementById("msim.options.device.useragent").value = pref 
    51                                 .copyUnicharPref("msim.devicelist." + carrier + "." + id 
     64                //<textbox id="msim.options.device.carrier" size="50" disabled="true"/> 
     65                var carrierTextBox = document.createElement("textbox"); 
     66                var r = document.getElementById("msim.options.device.carrier.row"); 
     67                r.appendChild(carrierTextBox); 
     68                carrierTextBox.setAttribute("id","msim.options.device.carrier"); 
     69                carrierTextBox.size = 50; 
     70                dump("###"+firemobilesimulator.common.carrier.carrierName[firemobilesimulator.options.dialogs.device.carrier]+"\n"); 
     71                carrierTextBox.value = firemobilesimulator.common.carrier.carrierName[firemobilesimulator.options.dialogs.device.carrier]; 
     72                carrierTextBox.disabled = true; 
     73 
     74                document.getElementById("msim.options.device.useragent").value = firemobilesimulator.common.pref 
     75                                .copyUnicharPref("msim.devicelist." 
     76                                                + firemobilesimulator.options.dialogs.device.carrier 
     77                                                + "." + firemobilesimulator.options.dialogs.device.id 
    5278                                                + ".useragent"); 
    5379 
    54                 appendDeviceAttributeRows(document 
    55                                                 .getElementById("msim.options.device.rows"), carrier, 
    56                                 id); 
    57  
    58         } 
    59  
    60         retVals = window.arguments[3]; 
    61 } 
    62  
    63 function carrierSelected(obj) { 
    64         if (carrier) { 
    65                 removeDeviceAttributeRows(document 
    66                                 .getElementById("msim.options.device.rows")); 
    67         } 
    68         carrier = obj.id; 
    69         if (carrier) { 
     80                firemobilesimulator.options.dialogs.device.appendDeviceAttributeRows( 
     81                                document.getElementById("msim.options.device.rows"), 
     82                                firemobilesimulator.options.dialogs.device.carrier, 
     83                                firemobilesimulator.options.dialogs.device.id); 
     84 
     85        } 
     86 
     87} 
     88 
     89firemobilesimulator.options.dialogs.device.carrierSelected = function(obj) { 
     90        if (firemobilesimulator.options.dialogs.device.carrier) { 
     91                firemobilesimulator.options.dialogs.device 
     92                                .removeDeviceAttributeRows(document 
     93                                                .getElementById("msim.options.device.rows")); 
     94        } 
     95        firemobilesimulator.options.dialogs.device.carrier = obj.id; 
     96        if (firemobilesimulator.options.dialogs.device.carrier) { 
    7097                // carrier = 
    7198                // document.getElementById("msim.options.device.carrierlist").selectedItem.getAttribute("id"); 
    72                 appendDeviceAttributeRows(document 
    73                                                 .getElementById("msim.options.device.rows"), carrier, 
    74                                 null); 
     99                firemobilesimulator.options.dialogs.device.appendDeviceAttributeRows( 
     100                                document.getElementById("msim.options.device.rows"), 
     101                                firemobilesimulator.options.dialogs.device.carrier, null); 
    75102        } 
    76103        window.sizeToContent(); 
    77104} 
    78105 
    79 function appendDeviceAttributeRows(parentNode, carrier, id) { 
    80         dump("append:" + parentNode + ":" + carrier + ":" + id + "\n"); 
    81         deviceAttribute[carrier].forEach(function (a) { 
    82                 var elementId = "msim.options.device." + a; 
    83                 var r = document.createElement("row"); 
    84                 var l = document.createElement("label"); 
    85                 var t = document.createElement("textbox"); 
    86                 r.setAttribute("align", "center"); 
    87                 l.setAttribute("control", elementId); 
    88                 l.setAttribute("value", stringBundle.getString(elementId)); 
    89                 t.setAttribute("id", elementId); 
    90                 t.setAttribute("size", 50); 
    91                 if (id 
    92                                 && pref.copyUnicharPref("msim.devicelist." + carrier + "." + id 
    93                                                 + "." + a)) { 
    94                         t.setAttribute("value", pref.copyUnicharPref("msim.devicelist." 
    95                                                         + carrier + "." + id + "." + a)); 
    96                 } 
    97                 r.appendChild(l); 
    98                 r.appendChild(t); 
    99                 parentNode.appendChild(r); 
    100         }); 
    101 } 
    102  
    103 function removeDeviceAttributeRows(parentNode) { 
     106firemobilesimulator.options.dialogs.device.appendDeviceAttributeRows = function( 
     107                parentNode, carrier, id) { 
     108        dump("[msim]append:" + parentNode + ":" + carrier + ":" + id + "\n"); 
     109        firemobilesimulator.common.carrier.deviceAttribute[carrier] 
     110                        .forEach(function(a) { 
     111                                var elementId = "msim.options.device." + a; 
     112                                var r = document.createElement("row"); 
     113                                var l = document.createElement("label"); 
     114                                var t = document.createElement("textbox"); 
     115                                r.setAttribute("align", "center"); 
     116                                l.setAttribute("control", elementId); 
     117                                l.setAttribute("value", 
     118                                                firemobilesimulator.options.dialogs.device.stringBundle 
     119                                                                .getString(elementId)); 
     120                                t.setAttribute("id", elementId); 
     121                                t.setAttribute("size", 50); 
     122                                if (id 
     123                                                && firemobilesimulator.common.pref 
     124                                                                .copyUnicharPref("msim.devicelist." + carrier 
     125                                                                                + "." + id + "." + a)) { 
     126                                        t.setAttribute("value", firemobilesimulator.common.pref 
     127                                                                        .copyUnicharPref("msim.devicelist." 
     128                                                                                        + carrier + "." + id + "." + a)); 
     129                                } 
     130                                r.appendChild(l); 
     131                                r.appendChild(t); 
     132                                parentNode.appendChild(r); 
     133                        }); 
     134} 
     135 
     136firemobilesimulator.options.dialogs.device.removeDeviceAttributeRows = function( 
     137                parentNode) { 
    104138        dump("remove:" + parentNode + "\n"); 
    105139        while (parentNode.lastChild.getAttribute("id") != "msim.options.device.useragent.row") { 
     
    108142        } 
    109143} 
    110 // Retrieves the default user agent 
    111 function msim_retrieveDefault() { 
    112 } 
    113144 
    114145// Saves a device 
    115 function msim_saveDevice() { 
     146firemobilesimulator.options.dialogs.device.saveDevice = function() { 
    116147        // If the window type is add or edit 
    117         if (msim_windowType == "add" || msim_windowType == "edit") { 
     148        if (firemobilesimulator.options.dialogs.device.windowType == "add" || firemobilesimulator.options.dialogs.device.windowType == "edit") { 
    118149                var saveId; 
    119150 
    120                 if (msim_windowType == "add") { 
     151                if (firemobilesimulator.options.dialogs.device.windowType == "add") { 
    121152                        // carrier = 
    122153                        // document.getElementById("msim.options.device.carrierlist").selectedItem.getAttribute("id"); 
    123                         saveId = pref.getIntPref("msim.devicelist." + carrier + ".count") 
     154                        saveId = firemobilesimulator.common.pref 
     155                                        .getIntPref("msim.devicelist." 
     156                                                        + firemobilesimulator.options.dialogs.device.carrier 
     157                                                        + ".count") 
    124158                                        + 1; 
    125                         pref.setIntPref("msim.devicelist." + carrier + ".count", saveId); 
    126                         pref.setUnicharPref("msim.devicelist." + carrier + "." + saveId 
    127                                                         + ".carrier", carrier); 
     159                        firemobilesimulator.common.pref 
     160                                        .setIntPref( 
     161                                                        "msim.devicelist." 
     162                                                                        + firemobilesimulator.options.dialogs.device.carrier 
     163                                                                        + ".count", saveId); 
     164                        firemobilesimulator.common.pref 
     165                                        .setUnicharPref( 
     166                                                        "msim.devicelist." 
     167                                                                        + firemobilesimulator.options.dialogs.device.carrier 
     168                                                                        + "." + saveId + ".carrier", 
     169                                                        firemobilesimulator.options.dialogs.device.carrier); 
    128170                } else { 
    129                         saveId = id; 
     171                        saveId = firemobilesimulator.options.dialogs.device.id; 
    130172                } 
    131173 
    132                 dump("save-carrier:" + carrier + "\n"); 
     174                dump("save-carrier:" 
     175                                + firemobilesimulator.options.dialogs.device.carrier + "\n"); 
    133176                dump("save-id:" + saveId + "\n"); 
    134177 
     
    138181 
    139182                // 入力チェック 
    140                 if (!deviceName || !carrier || !userAgent) { 
     183                if (!deviceName || !firemobilesimulator.options.dialogs.device.carrier 
     184                                || !userAgent) { 
    141185                        dump("[msim]Warning : Required field is null.\n"); 
    142                         alert(stringBundle 
     186                        alert(firemobilesimulator.options.dialogs.device.stringBundle 
    143187                                        .getString("msim_editDeviceRequirementValidation")); 
    144188                        return false; 
    145189                } 
    146                 pref.setUnicharPref("msim.devicelist." + carrier + "." + saveId 
    147                                                 + ".device", deviceName); 
    148                 pref.setUnicharPref("msim.devicelist." + carrier + "." + saveId 
    149                                                 + ".useragent", userAgent); 
    150  
    151                 retVals.deviceName = deviceName; 
    152                 retVals.id = saveId; 
    153                 retVals.carrier = carrier; 
    154                 retVals.userAgent = userAgent; 
    155  
    156                 deviceAttribute[carrier].forEach(function (a) { 
    157                         var elementId = "msim.options.device." + a; 
    158                         dump("getvalue:" + elementId + ":" 
    159                                         + document.getElementById(elementId).value + "\n"); 
    160                         pref 
    161                                         .setUnicharPref("msim.devicelist." + carrier + "." + saveId 
    162                                                                         + "." + a, document 
    163                                                                         .getElementById(elementId).value); 
    164                 }); 
     190                firemobilesimulator.common.pref.setUnicharPref("msim.devicelist." 
     191                                                + firemobilesimulator.options.dialogs.device.carrier 
     192                                                + "." + saveId + ".device", deviceName); 
     193                firemobilesimulator.common.pref.setUnicharPref("msim.devicelist." 
     194                                                + firemobilesimulator.options.dialogs.device.carrier 
     195                                                + "." + saveId + ".useragent", userAgent); 
     196 
     197                firemobilesimulator.options.dialogs.device.retVals.deviceName = deviceName; 
     198                firemobilesimulator.options.dialogs.device.retVals.id = saveId; 
     199                firemobilesimulator.options.dialogs.device.retVals.carrier = firemobilesimulator.options.dialogs.device.carrier; 
     200                firemobilesimulator.options.dialogs.device.retVals.userAgent = userAgent; 
     201 
     202                firemobilesimulator.common.carrier.deviceAttribute[firemobilesimulator.options.dialogs.device.carrier] 
     203                                .forEach(function(a) { 
     204                                        var elementId = "msim.options.device." + a; 
     205                                        dump("getvalue:" + elementId + ":" 
     206                                                        + document.getElementById(elementId).value + "\n"); 
     207                                        firemobilesimulator.common.pref 
     208                                                        .setUnicharPref( 
     209                                                                        "msim.devicelist." 
     210                                                                                        + firemobilesimulator.options.dialogs.device.carrier 
     211                                                                                        + "." + saveId + "." + a, document 
     212                                                                                        .getElementById(elementId).value); 
     213                                }); 
    165214        } 
    166215        return true; 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/options/dialogs/device.xul

    r19579 r20267  
    66<dialog buttons="accept, cancel" 
    77                id="msim-user-agent-dialog" 
    8                 ondialogaccept="return msim_saveDevice()" 
     8                ondialogaccept="firemobilesimulator.options.dialogs.device.saveDevice()" 
    99                ondialogcancel="javascript:false;" 
    10                 onload="msim_initializeDevice()" 
     10                onload="firemobilesimulator.options.dialogs.device.initializeDevice()" 
    1111                xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
    1212 
    13         <script type="application/x-javascript" src="chrome://msim/content/common/preferences.js"/> 
     13        <script type="application/x-javascript" src="chrome://msim/content/core.js"/> 
     14        <script type="application/x-javascript" src="chrome://msim/content/common/pref.js"/> 
    1415        <script type="application/x-javascript" src="chrome://msim/content/common/carrier.js"/> 
    1516        <script type="application/x-javascript" src="chrome://msim/content/options/options.js"/> 
     
    3132                        <row id="msim.options.device.carrier.row" align="center"> 
    3233                                <label control="msim.options.device.carrier" value="&msim.options.device.carrier;"/> 
    33                                 <textbox id="msim.options.device.carrier" size="50" disabled="true"/> 
     34                                <!--<textbox id="msim.options.device.carrier" size="50" disabled="true"/>--> 
    3435                        </row> 
    3536                        <row id="msim.options.device.useragent.row" align="center"> 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/options/options.js

    r19736 r20267  
    1 var msim_optionsDataBoolean = new Array(); 
    2 var msim_optionsDataInteger = new Array(); 
    3 var msim_optionsDataString  = new Array(); 
     1var firemobilesimulator; 
     2if(!firemobilesimulator) firemobilesimulator = {}; 
     3if(!firemobilesimulator.options) firemobilesimulator.options = {}; 
     4 
     5firemobilesimulator.options.optionsDataBoolean = new Array(); 
     6firemobilesimulator.options.optionsDataInteger = new Array(); 
     7firemobilesimulator.options.optionsDataString  = new Array(); 
    48 
    59//Adds a device 
    6 function msim_addDevice(){ 
     10firemobilesimulator.options.addDevice = function(){ 
    711        var retVals = {}; 
    812        if(window.openDialog("chrome://msim/content/options/dialogs/device.xul", "msim-device-dialog", "centerscreen,chrome,modal,resizable", "add", null, null, retVals)){ 
     
    2226 
    2327//Handles changing the options page 
    24 function msim_changePage(pageList){ 
    25         msim_storeOptions(); 
     28firemobilesimulator.options.changePage = function(pageList){ 
     29        firemobilesimulator.options.storeOptions(); 
    2630        document.getElementById("msim-options-iframe").setAttribute("src", pageList.selectedItem.getAttribute("value")); 
    2731} 
    2832 
    2933//Deletes a device 
    30 function msim_deleteDevice(){ 
     34firemobilesimulator.options.deleteDevice = function(){ 
    3135        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    3236        var deviceBox    = pageDocument.getElementById("msim-listbox"); 
    3337        var selectedItem = deviceBox.selectedItem; 
    34         if(selectedItem && confirm(document.getElementById("msim-string-bundle").getString("msim_deleteConfirmation"))){ 
     38        if(selectedItem && confirm(document.getElementById("msim-string-bundle").getString("firemobilesimulator.options.deleteConfirmation"))){ 
    3539                var carrier = selectedItem.getAttribute("carrier"); 
    3640                var deletedId = parseInt(selectedItem.getAttribute("id")); 
    3741                var prefPrefix = "msim.devicelist." + carrier + "." + deletedId + "." 
    3842                deviceBasicAttribute.concat(deviceAttribute[carrier]).forEach(function(attribute){ 
    39                         pref.deletePref(prefPrefix+attribute); 
     43                        firemobilesimulator.common.pref.deletePref(prefPrefix+attribute); 
    4044                }); 
    4145 
    4246                //既に使われている端末だったら設定をリセット 
    43                 if(pref.copyUnicharPref("msim.current.id") == deletedId && pref.copyUnicharPref("msim.current.carrier") == carrier){ 
    44                         dump("[msim]Debug : This device is used. Reset your settings.\n"); 
    45                         pref.deletePref("msim.current.carrier"); 
    46                         pref.deletePref("msim.current.device"); 
    47                         pref.deletePref("general.useragent.override"); 
    48                         pref.deletePref("msim.current.useragent"); 
    49                         pref.deletePref("msim.current.id"); 
     47                if(firemobilesimulator.common.pref.copyUnicharPref("msim.current.id") == deletedId && firemobilesimulator.common.pref.copyUnicharPref("msim.current.carrier") == carrier){ 
     48                        firemobilesimulator.options.core.resetDevice(); 
    5049                } 
    5150 
    5251                //各端末のidを再計算 
    53                 var count = pref.getIntPref("msim.devicelist." + carrier + ".count"); 
     52                var count = firemobilesimulator.common.pref.getIntPref("msim.devicelist." + carrier + ".count"); 
    5453                dump(deletedId+":"+count+"\n"); 
    5554                dump((deletedId+1)+":"+count+"\n"); 
     
    5958                        var ePrefPrefix = "msim.devicelist." + carrier + "." + (i-1) + "."; 
    6059                        deviceBasicAttribute.contcat(deviceAttribute[carrier]).forEach(function(attribute){ 
    61                                 pref.setUnicharPref(ePrefPrefix+attribute, pref.copyUnicharPref(sPrefPrefix+attribute)); 
     60                                firemobilesimulator.common.pref.setUnicharPref(ePrefPrefix+attribute, firemobilesimulator.common.pref.copyUnicharPref(sPrefPrefix+attribute)); 
    6261                        }); 
    6362                } 
    64                 pref.setIntPref("msim.devicelist." + carrier + ".count", count-1); 
     63                firemobilesimulator.common.pref.setIntPref("msim.devicelist." + carrier + ".count", count-1); 
    6564 
    6665                deviceBox.removeChild(selectedItem); 
     
    6968 
    7069//Edits a device 
    71 function msim_editDevice(){ 
     70firemobilesimulator.options.editDevice = function(){ 
    7271        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    7372        var deviceBox    = pageDocument.getElementById("msim-listbox"); 
     
    7877                var id = selectedItem.getAttribute("id"); 
    7978                if(window.openDialog("chrome://msim/content/options/dialogs/device.xul", "msim-device-dialog", "centerscreen,chrome,modal,resizable", "edit", carrier, id, retVals)){ 
    80                         setDevice(carrier, id); 
     79                        //setDevice(carrier, id); 
     80                        if(retVals.id && retVals.carrier){ 
     81                                if(firemobilesimulator.common.pref.copyUnicharPref("msim.current.id") == retVals.id && firemobilesimulator.common.pref.copyUnicharPref("msim.current.carrier") == retVals.carrier){ 
     82                                        firemobilesimulator.core.setDevice(retVals.carrier, retVals.id); 
     83                                } 
     84                        } 
    8185                } 
    8286        }else{ 
     
    8690 
    8791// Initializes the options dialog box 
    88 function msim_initializeOptions(){ 
     92firemobilesimulator.options.initializeOptions = function(){ 
    8993        var selectedPage = document.getElementById("msim-page-list").selectedItem.getAttribute("value"); 
    9094 
    9195        // If this is the general page 
    9296        if(selectedPage.indexOf("general") != -1){ 
    93                 msim_initializeGeneral(); 
     97                firemobilesimulator.options.initializeGeneral(); 
    9498        }else if(selectedPage.indexOf("devices") != -1){ 
    95                 msim_initializeDevices(); 
     99                firemobilesimulator.options.initializeDevices(); 
    96100        }else if(selectedPage.indexOf("gps") != -1){ 
    97                 msim_initializeGps(); 
     101                firemobilesimulator.options.initializeGps(); 
    98102        }else if(selectedPage.indexOf("pictogram") != -1){ 
    99                 msim_initializePictogram(); 
     103                firemobilesimulator.options.initializePictogram(); 
    100104        } 
    101105} 
    102106 
    103107// Initializes the general page 
    104 function msim_initializeGeneral() 
     108firemobilesimulator.options.initializeGeneral = function() 
    105109{ 
    106110        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    107         pageDocument.getElementById("msim-textbox-docomo-uid").setAttribute("value",pref.copyUnicharPref("msim.config.DC.uid")); 
    108         pageDocument.getElementById("msim-textbox-docomo-ser").setAttribute("value",pref.copyUnicharPref("msim.config.DC.ser")); 
    109         pageDocument.getElementById("msim-textbox-docomo-icc").setAttribute("value",pref.copyUnicharPref("msim.config.DC.icc")); 
    110         pageDocument.getElementById("msim-textbox-docomo-guid").setAttribute("value",pref.copyUnicharPref("msim.config.DC.guid")); 
    111         pageDocument.getElementById("msim-textbox-au-uid").setAttribute("value",pref.copyUnicharPref("msim.config.AU.uid")); 
    112         pageDocument.getElementById("msim-textbox-softbank-uid").setAttribute("value",pref.copyUnicharPref("msim.config.SB.uid")); 
    113         pageDocument.getElementById("msim-textbox-softbank-serial").setAttribute("value",pref.copyUnicharPref("msim.config.SB.serial")); 
     111        pageDocument.getElementById("msim-textbox-docomo-uid").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.uid")); 
     112        pageDocument.getElementById("msim-textbox-docomo-ser").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.ser")); 
     113        pageDocument.getElementById("msim-textbox-docomo-icc").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.icc")); 
     114        pageDocument.getElementById("msim-textbox-docomo-guid").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.guid")); 
     115        pageDocument.getElementById("msim-textbox-au-uid").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.AU.uid")); 
     116        pageDocument.getElementById("msim-textbox-softbank-uid").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.SB.uid")); 
     117        pageDocument.getElementById("msim-textbox-softbank-serial").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.SB.serial")); 
    114118} 
    115119 
    116120// Initializes the devices page 
    117 function msim_initializeDevices(){ 
    118         dump("msim_initializeDevices\n"); 
     121firemobilesimulator.options.initializeDevices = function(){ 
     122        dump("firemobilesimulator.options.initializeDevices\n"); 
    119123        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    120124        var deviceBox    = pageDocument.getElementById("msim-listbox"); 
     
    126130        } 
    127131 
    128         carrierArray.forEach(function(carrier){ 
    129  
    130                 deviceCount = pref.getIntPref("msim.devicelist." + carrier + ".count"); 
     132        firemobilesimulator.common.carrier.carrierArray.forEach(function(carrier){ 
     133 
     134                deviceCount = firemobilesimulator.common.pref.getIntPref("msim.devicelist." + carrier + ".count"); 
    131135                for(var i = 1; i <= deviceCount; i++){ 
    132                         var device = pref.copyUnicharPref("msim.devicelist." + carrier + "." + i + ".device"); 
    133                         var useragent = pref.copyUnicharPref("msim.devicelist." + carrier + "." + i + ".useragent"); 
     136                        var device = firemobilesimulator.common.pref.copyUnicharPref("msim.devicelist." + carrier + "." + i + ".device"); 
     137                        var useragent = firemobilesimulator.common.pref.copyUnicharPref("msim.devicelist." + carrier + "." + i + ".useragent"); 
    134138                        if(device){ 
    135139                                var listItem = deviceBox.appendItem(carrier + ":" + device, useragent); 
     
    140144        }); 
    141145 
    142         msim_deviceSelected(); 
     146        firemobilesimulator.options.deviceSelected(); 
    143147} 
    144148 
    145149// Saves the user's options 
    146 function msim_saveOptions(){ 
     150firemobilesimulator.options.saveOptions = function(){ 
    147151        var option      = null; 
    148152        var optionValue = null; 
    149153 
    150154        // Make sure current page is stored 
    151         msim_storeOptions(); 
     155        firemobilesimulator.options.storeOptions(); 
    152156 
    153157        // Loop through the boolean options 
    154         for(option in msim_optionsDataBoolean){ 
    155                 pref.setBoolPref(option, msim_optionsDataBoolean[option]); 
     158        for(option in firemobilesimulator.options.optionsDataBoolean){ 
     159                firemobilesimulator.common.pref.setBoolPref(option, firemobilesimulator.options.optionsDataBoolean[option]); 
    156160        } 
    157161 
    158162        // Loop through the integer options 
    159         for(option in msim_optionsDataInteger){ 
    160                 pref.setIntPref(option, msim_optionsDataInteger[option]); 
     163        for(option in firemobilesimulator.options.optionsDataInteger){ 
     164                firemobilesimulator.common.pref.setIntPref(option, firemobilesimulator.options.optionsDataInteger[option]); 
    161165        } 
    162166 
    163167        // Loop through the string options 
    164         for(option in msim_optionsDataString){ 
    165                 pref.setUnicharPref(option, msim_optionsDataString[option]); 
     168        for(option in firemobilesimulator.options.optionsDataString){ 
     169                firemobilesimulator.common.pref.setUnicharPref(option, firemobilesimulator.options.optionsDataString[option]); 
    166170        } 
    167171} 
    168172 
    169173// Stores the user's options to be saved later 
    170 function msim_storeOptions(){ 
     174firemobilesimulator.options.storeOptions = function(){ 
    171175        var iFrame       = document.getElementById("msim-options-iframe"); 
    172176        var iFrameSrc    = iFrame.getAttribute("src"); 
     
    176180        if(iFrameSrc.indexOf("general") != -1){ 
    177181                dump("[msim]store generals.\n"); 
    178                 msim_optionsDataString["msim.config.DC.uid"]    = pageDocument.getElementById("msim-textbox-docomo-uid").value; 
    179                 msim_optionsDataString["msim.config.DC.ser"]    = pageDocument.getElementById("msim-textbox-docomo-ser").value; 
    180                 msim_optionsDataString["msim.config.DC.icc"]    = pageDocument.getElementById("msim-textbox-docomo-icc").value; 
    181                 msim_optionsDataString["msim.config.DC.guid"]   = pageDocument.getElementById("msim-textbox-docomo-guid").value; 
    182                 msim_optionsDataString["msim.config.AU.uid"]    = pageDocument.getElementById("msim-textbox-au-uid").value; 
    183                 msim_optionsDataString["msim.config.SB.uid"]    = pageDocument.getElementById("msim-textbox-softbank-uid").value; 
    184                 msim_optionsDataString["msim.config.SB.serial"] = pageDocument.getElementById("msim-textbox-softbank-serial").value; 
    185                 var carrier = pref.copyUnicharPref("msim.current.carrier"); 
    186                 if(carrier == SOFTBANK){ 
     182                firemobilesimulator.options.optionsDataString["msim.config.DC.uid"]    = pageDocument.getElementById("msim-textbox-docomo-uid").value; 
     183                firemobilesimulator.options.optionsDataString["msim.config.DC.ser"]    = pageDocument.getElementById("msim-textbox-docomo-ser").value; 
     184                firemobilesimulator.options.optionsDataString["msim.config.DC.icc"]    = pageDocument.getElementById("msim-textbox-docomo-icc").value; 
     185                firemobilesimulator.options.optionsDataString["msim.config.DC.guid"]   = pageDocument.getElementById("msim-textbox-docomo-guid").value; 
     186                firemobilesimulator.options.optionsDataString["msim.config.AU.uid"]    = pageDocument.getElementById("msim-textbox-au-uid").value; 
     187                firemobilesimulator.options.optionsDataString["msim.config.SB.uid"]    = pageDocument.getElementById("msim-textbox-softbank-uid").value; 
     188                firemobilesimulator.options.optionsDataString["msim.config.SB.serial"] = pageDocument.getElementById("msim-textbox-softbank-serial").value; 
     189                var carrier = firemobilesimulator.common.pref.copyUnicharPref("msim.current.carrier"); 
     190                if(carrier == firemobilesimulator.common.carrier.SOFTBANK){ 
    187191                        dump("[msim]Debug : Current Carrier is SoftBank. Replace User-Agent.\n"); 
    188                         var id = pref.copyUnicharPref("msim.current.id"); 
    189                         var useragent = pref.copyUnicharPref("msim.devicelist."+carrier+"."+id+".useragent"); 
    190                         var newUserAgent = getSoftBankUserAgent(useragent, msim_optionsDataString["msim.config.SB.serial"]); 
    191                         msim_optionsDataString["general.useragent.override"] = newUserAgent; 
    192                         msim_optionsDataString["msim.current.useragent"] = newUserAgent; 
     192                        var id = firemobilesimulator.common.pref.copyUnicharPref("msim.current.id"); 
     193                        var useragent = firemobilesimulator.common.pref.copyUnicharPref("msim.devicelist."+carrier+"."+id+".useragent"); 
     194                        var newUserAgent = firemobilesimulator.common.carrier.getSoftBankUserAgent(useragent, firemobilesimulator.options.optionsDataString["msim.config.SB.serial"]); 
     195                        firemobilesimulator.options.optionsDataString["general.useragent.override"] = newUserAgent; 
     196                        firemobilesimulator.options.optionsDataString["msim.current.useragent"] = newUserAgent; 
    193197                } 
    194198        }else if(iFrameSrc.indexOf("devices") != -1){ 
     
    196200        }else if(iFrameSrc.indexOf("gps") != -1){ 
    197201                dump("[msim]store gps.\n"); 
    198                 msim_optionsDataString["msim.config.DC.gps.areacode"]    = pageDocument.getElementById("msim-textbox-docomo-gps-areacode").value; 
    199                 msim_optionsDataString["msim.config.DC.gps.areaname"]    = pageDocument.getElementById("msim-textbox-docomo-gps-areaname").value; 
    200                 msim_optionsDataString["msim.config.DC.gps.lat"]    = pageDocument.getElementById("msim-textbox-docomo-gps-lat").value; 
    201                 msim_optionsDataString["msim.config.DC.gps.lon"]    = pageDocument.getElementById("msim-textbox-docomo-gps-lon").value; 
    202                 msim_optionsDataString["msim.config.DC.gps.alt"]    = pageDocument.getElementById("msim-textbox-docomo-gps-alt").value; 
    203                 msim_optionsDataString["msim.config.AU.gps.lat"]    = pageDocument.getElementById("msim-textbox-au-gps-lat").value; 
    204                 msim_optionsDataString["msim.config.AU.gps.lon"]    = pageDocument.getElementById("msim-textbox-au-gps-lon").value; 
     202                firemobilesimulator.options.optionsDataString["msim.config.DC.gps.areacode"]    = pageDocument.getElementById("msim-textbox-docomo-gps-areacode").value; 
     203                firemobilesimulator.options.optionsDataString["msim.config.DC.gps.areaname"]    = pageDocument.getElementById("msim-textbox-docomo-gps-areaname").value; 
     204                firemobilesimulator.options.optionsDataString["msim.config.DC.gps.lat"]    = pageDocument.getElementById("msim-textbox-docomo-gps-lat").value; 
     205                firemobilesimulator.options.optionsDataString["msim.config.DC.gps.lon"]    = pageDocument.getElementById("msim-textbox-docomo-gps-lon").value; 
     206                firemobilesimulator.options.optionsDataString["msim.config.DC.gps.alt"]    = pageDocument.getElementById("msim-textbox-docomo-gps-alt").value; 
     207                firemobilesimulator.options.optionsDataString["msim.config.AU.gps.lat"]    = pageDocument.getElementById("msim-textbox-au-gps-lat").value; 
     208                firemobilesimulator.options.optionsDataString["msim.config.AU.gps.lon"]    = pageDocument.getElementById("msim-textbox-au-gps-lon").value; 
    205209        }else if(iFrameSrc.indexOf("pictogram") != -1){ 
    206210                dump("[msim]store pictogram.\n"); 
    207                 msim_optionsDataBoolean["msim.config.DC.pictogram.enabled"]    = pageDocument.getElementById("msim-textbox-docomo-pictogram-enabled").checked; 
    208                 msim_optionsDataBoolean["msim.config.AU.pictogram.enabled"]    = pageDocument.getElementById("msim-textbox-au-pictogram-enabled").checked; 
    209                 msim_optionsDataBoolean["msim.config.SB.pictogram.enabled"]    = pageDocument.getElementById("msim-textbox-softbank-pictogram-enabled").checked; 
     211                firemobilesimulator.options.optionsDataBoolean["msim.config.DC.pictogram.enabled"]    = pageDocument.getElementById("msim-textbox-docomo-pictogram-enabled").checked; 
     212                firemobilesimulator.options.optionsDataBoolean["msim.config.AU.pictogram.enabled"]    = pageDocument.getElementById("msim-textbox-au-pictogram-enabled").checked; 
     213                firemobilesimulator.options.optionsDataBoolean["msim.config.SB.pictogram.enabled"]    = pageDocument.getElementById("msim-textbox-softbank-pictogram-enabled").checked; 
    210214        } 
    211215} 
    212216 
    213217// Called whenever the device box is selected 
    214 function msim_deviceSelected(){ 
     218firemobilesimulator.options.deviceSelected = function(){ 
    215219        dump("something selected\n"); 
    216220        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
     
    225229} 
    226230 
    227 function clearAllDeviceSettings(){ 
     231firemobilesimulator.options.clearAllDeviceSettings = function(){ 
    228232        if(confirm(document.getElementById("msim-string-bundle").getString("msim_clearAllConfirmation"))){ 
    229                 carrierArray.forEach(function(carrier){ 
     233                firemobilesimulator.common.carrier.carrierArray.forEach(function(carrier){ 
    230234                        dump("target carrier is "+carrier+"\n"); 
    231                         pref.deletePref("msim.devicelist." + carrier + ".count"); 
    232                         var count = pref.getIntPref("msim.devicelist." + carrier + ".count"); 
     235                        firemobilesimulator.common.pref.deletePref("msim.devicelist." + carrier + ".count"); 
     236                        var count = firemobilesimulator.common.pref.getIntPref("msim.devicelist." + carrier + ".count"); 
    233237                        for(var i=1; i<=count; i++){ 
    234238                                var prefPrefix = "msim.devicelist." + carrier + "." + i + "."; 
    235239 
    236                                 dump("target prefix is "+prefPrefix+"\n"); 
     240                                dump("target firemobilesimulator.common.pref.x is "+prefPrefix+"\n"); 
    237241                                deviceBasicAttribute.concat(deviceAttribute[carrier]).forEach(function(attribute){ 
    238                                         pref.deletePref(prefPrefix+attribute); 
     242                                        firemobilesimulator.common.pref.deletePref(prefPrefix+attribute); 
    239243                                }); 
    240244                        } 
    241245                }); 
    242246 
    243                 pref.deletePref("msim.current.carrier"); 
    244                 pref.deletePref("msim.current.device"); 
    245                 pref.deletePref("general.useragent.override"); 
    246                 pref.deletePref("msim.current.useragent"); 
    247                 pref.deletePref("msim.current.id"); 
     247                firemobilesimulator.common.pref.deletePref("msim.current.carrier"); 
     248                firemobilesimulator.common.pref.deletePref("msim.current.device"); 
     249                firemobilesimulator.common.pref.deletePref("general.useragent.override"); 
     250                firemobilesimulator.common.pref.deletePref("msim.current.useragent"); 
     251                firemobilesimulator.common.pref.deletePref("msim.current.id"); 
    248252 
    249253                //TODO:ツールバー上のiconをupdate 
     
    251255        } 
    252256 
    253         msim_initializeDevices(); 
     257        firemobilesimulator.options.initializeDevices(); 
    254258} 
    255259 
    256260// Initializes the general page 
    257 function msim_initializeGps(){ 
    258         var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    259         pageDocument.getElementById("msim-textbox-docomo-gps-areacode").setAttribute("value",pref.copyUnicharPref("msim.config.DC.gps.areacode")); 
    260         pageDocument.getElementById("msim-textbox-docomo-gps-areaname").setAttribute("value",pref.copyUnicharPref("msim.config.DC.gps.areaname")); 
    261         pageDocument.getElementById("msim-textbox-docomo-gps-lat").setAttribute("value",pref.copyUnicharPref("msim.config.DC.gps.lat")); 
    262         pageDocument.getElementById("msim-textbox-docomo-gps-lon").setAttribute("value",pref.copyUnicharPref("msim.config.DC.gps.lon")); 
    263         pageDocument.getElementById("msim-textbox-docomo-gps-alt").setAttribute("value",pref.copyUnicharPref("msim.config.DC.gps.alt")); 
    264         pageDocument.getElementById("msim-textbox-au-gps-lat").setAttribute("value",pref.copyUnicharPref("msim.config.AU.gps.lat")); 
    265         pageDocument.getElementById("msim-textbox-au-gps-lon").setAttribute("value",pref.copyUnicharPref("msim.config.AU.gps.lon")); 
    266 } 
    267  
    268 function msim_initializePictogram(){ 
     261firemobilesimulator.options.initializeGps = function(){ 
     262        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
     263        pageDocument.getElementById("msim-textbox-docomo-gps-areacode").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.areacode")); 
     264        pageDocument.getElementById("msim-textbox-docomo-gps-areaname").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.areaname")); 
     265        pageDocument.getElementById("msim-textbox-docomo-gps-lat").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.lat")); 
     266        pageDocument.getElementById("msim-textbox-docomo-gps-lon").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.lon")); 
     267        pageDocument.getElementById("msim-textbox-docomo-gps-alt").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.DC.gps.alt")); 
     268        pageDocument.getElementById("msim-textbox-au-gps-lat").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.AU.gps.lat")); 
     269        pageDocument.getElementById("msim-textbox-au-gps-lon").setAttribute("value",firemobilesimulator.common.pref.copyUnicharPref("msim.config.AU.gps.lon")); 
     270} 
     271 
     272firemobilesimulator.options.initializePictogram = function(){ 
    269273        dump("[msim]initializePictogram.\n"); 
    270274        var pageDocument = document.getElementById("msim-options-iframe").contentDocument; 
    271         pageDocument.getElementById("msim-textbox-docomo-pictogram-enabled").checked = pref.getBoolPref("msim.config.DC.pictogram.enabled"); 
    272         pageDocument.getElementById("msim-textbox-au-pictogram-enabled").checked = pref.getBoolPref("msim.config.AU.pictogram.enabled"); 
    273         pageDocument.getElementById("msim-textbox-softbank-pictogram-enabled").checked = pref.getBoolPref("msim.config.SB.pictogram.enabled"); 
    274 } 
     275        pageDocument.getElementById("msim-textbox-docomo-pictogram-enabled").checked = firemobilesimulator.common.pref.getBoolPref("msim.config.DC.pictogram.enabled"); 
     276        pageDocument.getElementById("msim-textbox-au-pictogram-enabled").checked = firemobilesimulator.common.pref.getBoolPref("msim.config.AU.pictogram.enabled"); 
     277        pageDocument.getElementById("msim-textbox-softbank-pictogram-enabled").checked = firemobilesimulator.common.pref.getBoolPref("msim.config.SB.pictogram.enabled"); 
     278} 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/options/options.xul

    r19579 r20267  
    66<dialog buttons="accept, cancel" 
    77                id="msim-options-dialog" 
    8                 ondialogaccept="msim_saveOptions()" 
     8                ondialogaccept="firemobilesimulator.options.saveOptions()" 
    99                title="&msim.options.title;" 
    1010                xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
    1111 
    12         <script type="application/x-javascript" src="chrome://msim/content/common/preferences.js"/> 
    13         <script type="application/x-javascript" src="chrome://msim/content/common/carrier.js"/> 
    14         <script type="application/x-javascript" src="chrome://msim/content/options/options.js"/> 
    15         <script type="application/x-javascript" src="chrome://msim/content/msim.js"/> 
     12        <script type="application/x-javascript" src="chrome://msim/content/core.js"/> 
     13        <script type="application/x-javascript" src="chrome://msim/content/common/pref.js" /> 
     14        <script type="application/x-javascript" src="chrome://msim/content/common/carrier.js" /> 
     15        <script type="application/x-javascript" src="chrome://msim/content/options/options.js" /> 
    1616 
    1717        <stringbundleset id="stringbundleset"> 
    18                 <stringbundle id="msim-string-bundle" src="chrome://msim/locale/msim.properties"/> 
     18                <stringbundle id="msim-string-bundle" src="chrome://msim/locale/msim.properties" /> 
    1919        </stringbundleset> 
    2020 
    2121        <hbox flex="1"> 
    22                 <listbox id="msim-page-list" onselect="msim_changePage(this)"> 
    23                         <listitem label="&msim.options.general.label;" selected="true" value="chrome://msim/content/options/pages/general.xul" accesskey="g"/> 
    24                         <listitem label="&msim.options.devices.label;" value="chrome://msim/content/options/pages/devices.xul" accesskey="d"/> 
    25                         <listitem label="&msim.options.gps.label;" value="chrome://msim/content/options/pages/gps.xul" accesskey="d"/> 
    26                         <listitem label="&msim.options.pictogram.label;" value="chrome://msim/content/options/pages/pictogram.xul" accesskey="p"/> 
     22                <listbox id="msim-page-list" onselect="firemobilesimulator.options.changePage(this)"> 
     23                        <listitem label="&msim.options.general.label;" selected="true" value="chrome://msim/content/options/pages/general.xul" accesskey="g" /> 
     24                        <listitem label="&msim.options.devices.label;" value="chrome://msim/content/options/pages/devices.xul" accesskey="d" /> 
     25                        <listitem label="&msim.options.gps.label;" value="chrome://msim/content/options/pages/gps.xul" accesskey="d" /> 
     26                        <listitem label="&msim.options.pictogram.label;" value="chrome://msim/content/options/pages/pictogram.xul" accesskey="p" /> 
    2727                </listbox> 
    2828                <vbox flex="1"> 
    29                         <iframe flex="1" id="msim-options-iframe" src="chrome://msim/content/options/pages/general.xul"/> 
     29                        <iframe flex="1" id="msim-options-iframe" src="chrome://msim/content/options/pages/general.xul" /> 
    3030                </vbox> 
    3131        </hbox> 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/options/pages/devices.xul

    r19579 r20267  
    44<!DOCTYPE page SYSTEM "chrome://msim/locale/msim.dtd"> 
    55 
    6 <page onload="parent.msim_initializeOptions()" 
     6<page onload="parent.firemobilesimulator.options.initializeOptions()" 
    77        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
    88 
     
    1616                        <rows> 
    1717                                <row align="top"> 
    18                                         <listbox flex="1" id="msim-listbox" rows="5" onselect="parent.msim_deviceSelected()"> 
     18                                        <listbox flex="1" id="msim-listbox" rows="5" onselect="parent.firemobilesimulator.options.deviceSelected()"> 
    1919                                                <listhead> 
    2020                                                        <listheader label="&msim.options.devices.label;"/> 
     
    2424                                <row align="top"> 
    2525                                        <hbox> 
    26                                                 <button label="&msim.options.add;" oncommand="parent.msim_addDevice()" accesskey="n"/> 
    27                                                 <button id="msim-edit" label="&msim.options.edit;" oncommand="parent.msim_editDevice()" accesskey="e"/> 
    28                                                 <button id="msim-delete" label="&msim.options.delete;" oncommand="parent.msim_deleteDevice()" accesskey="d"/> 
    29                                                 <button id="msim-clearall" label="&msim.options.clearall;" oncommand="parent.clearAllDeviceSettings()" accesskey="c"/> 
     26                                                <button label="&msim.options.add;" oncommand="parent.firemobilesimulator.options.addDevice()" accesskey="n"/> 
     27                                                <button id="msim-edit" label="&msim.options.edit;" oncommand="parent.firemobilesimulator.options.editDevice()" accesskey="e"/> 
     28                                                <button id="msim-delete" label="&msim.options.delete;" oncommand="parent.firemobilesimulator.options.deleteDevice()" accesskey="d"/> 
     29                                                <button id="msim-clearall" label="&msim.options.clearall;" oncommand="parent.firemobilesimulator.options.clearAllDeviceSettings()" accesskey="c"/> 
    3030                                        </hbox> 
    3131                                </row> 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/options/pages/general.xul

    r19579 r20267  
    44<!DOCTYPE page SYSTEM "chrome://msim/locale/msim.dtd"> 
    55 
    6 <page onload="parent.msim_initializeOptions()" 
     6<page onload="parent.firemobilesimulator.options.initializeOptions()" 
    77        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
    88 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/options/pages/gps.xul

    r19579 r20267  
    44<!DOCTYPE page SYSTEM "chrome://msim/locale/msim.dtd"> 
    55 
    6 <page onload="parent.msim_initializeOptions()" 
     6<page onload="parent.firemobilesimulator.options.initializeOptions()" 
    77        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
    88 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/options/pages/pictogram.xul

    r19579 r20267  
    44<!DOCTYPE page SYSTEM "chrome://msim/locale/msim.dtd"> 
    55 
    6 <page onload="parent.msim_initializeOptions()" 
     6<page onload="parent.firemobilesimulator.options.initializeOptions()" 
    77        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
    88 
  • platform/firefox/FireMobileSimulator/trunk/src/chrome/content/overlay.js

    r19736 r20267  
    1818 * ***** END LICENSE BLOCK ***** */ 
    1919 
    20 var msim = { 
    21         onInitialize : function() { 
    22                 // initialization code 
    23                 dump("[msim]onInitialize\n"); 
    24  
    25                 this.strings = document.getElementById("msim-strings"); 
    26                 // initialize UserAgent 
    27                 var windowContent = window.getBrowser(); 
    28                 if (windowContent) { 
    29                         dump("set load2\n"); 
    30                         try { 
    31  
    32                                 window.removeEventListener('load', msim_onInitialize, false); 
    33                         } catch (exception) { 
    34                                 dump("[msim]removeEventListner error:" + exception + "\n"); 
    35                         } 
    36                         windowContent.addEventListener('load', msim.msim_BrowserOnLoad, 
    37                                         true); 
    38                 } 
    39  
    40                 var initialized = pref.getBoolPref("msim.config.initialized"); 
    41                 if (!initialized) { 
    42                         // 何か初期化処理をしたい場合はここに記載 
    43                         // pref.setBoolPref("msim.config.initialized", true); 
    44                 } 
    45                 this.updateIcon(); 
    46         }, 
    47  
    48         onUnload : function() { 
    49                 dump("[msim]onUnload\n"); 
    50                 var windowCount = 0; 
    51                 var windowEnumeration = Components.classes["@mozilla.org/appshell/window-mediator;1"] 
    52                                 .getService(Components.interfaces.nsIWindowMediator) 
    53                                 .getEnumerator("navigator:browser"); 
    54  
     20var firemobilesimulator; 
     21if(!firemobilesimulator) firemobilesimulator = {}; 
     22if(!firemobilesimulator.overlay) firemobilesimulator.overlay = {}; 
     23 
     24firemobilesimulator.overlay.onInitialize = function() { 
     25        // initialization code 
     26        dump("[msim]onInitialize\n");