(function() { $.extend($.fn, { mask: function(msg, maskDivClass) { this.unmask(); var op = { opacity: 0.8, z: 10000, bgcolor: '#000' }; var original = $(document.body); var position = { top: 60, left: 0 }; var bodyWH = YX.Utils.GetBodyWidthHeight(); var maskWidth = bodyWH.width; var maskHeight = bodyWH.height - 60; var maskDiv = $('
 
'); maskDiv.appendTo(original); maskDiv.css({ position: 'absolute', top: position.top, left: position.left, 'z-index': op.z, width: maskWidth, height: maskHeight, 'background-color': op.bgcolor, opacity: op.opacity }); if (maskDivClass) { maskDiv.addClass(maskDivClass) } if (msg) { var msgDiv = $('
' + msg + '
'); msgDiv.appendTo(maskDiv); var widthspace = (maskDiv.width() - msgDiv.width()); var heightspace = (maskDiv.height() - msgDiv.height()); msgDiv.css({ cursor: 'wait', top: (bodyWH.height / 2 - 60), left: (widthspace / 2 - 2) }) } return maskDiv }, unmask: function() { $("div.maskdivgen").remove() } }) })(); var YX = { cookieTime: 30, //cookiePath: "/yixuan_cloud", //serverPath: "yixuan_cloud/", cookiePath: "/", serverPath: "/", pageDataPath: "", prevVisitDomain: "", mp3Path: "mp3/", swfPath: "swf/", errorPath: "mp3/error.mp3", logPath: "log/error_log.txt", voicesPath: "", socketPath: "", translatePath: "", proxyUrl: "", helpPath: "help/", systemRuler: 'false', systemRulerColor: "red", color: ['other_other', '#ffff00_#000000', '#ffff00_#0000ff'], linkColor: ['other', '#ffffff', '#ffffff'], continueReadedTextLinkColor: ['other_other', '#ffff00_#ffffff', '#ffff00_#ffffff'], systemColor: 'other_other', systemZoom: 1, volumeInterval: 20, systemVolume: 100, volumeMin: 20, volumeMax: 100, speedInterval: 1, speedMin: -1, speedMax: 1, systemSpeed: 0, systemHistory: [], systemHistoryIndex: [], systemHistoryCount: 10, systemHistoryVisitPage: false, systemPause: 'false', systemRead: 'pointer', systemPointerReadTime: 800, systemContinueReadTime: 1000, systemSelectReadTime: 500, systemIsRead: "true", imgInvalidWidth: 50, imgInvalidHeight: 50, systemInputLabelContentLength: 6, configText: new Array(), systemScreen: "true", systemTextTagName: "yx_text_show_area", systemTooltipColor: '#ffffff', systemTooltipBackColor: '#000000', systemTipWordsLength: 17, systemSplitLength: 5, systemSplitMaxLength: 20, systemSplitWords: 1, systemSplitMaxStringLength: 51, systemReadStyle: '0', systemScreenClose: "true", systemScreenShowStyle: 'zh', systemScreenBgColor: "#fcfcfc", systemScreenFontColor: "#000000", systemScreenMaxWordsLength: 16, systemScreenTenRowsFontSize: 30, systemScreenNineRowsFontSize: 30, systemScreenEightRowsFontSize: 30, systemScreenSevenRowsFontSize: 30, systemScreenSixRowsFontSize: 32, systemScreenFiveRowsFontSize: 35, systemScreenFourRowsFontSize: 40, systemScreenThreeRowsFontSize: 48, systemScreenSecondRowsFontSize: 65, systemScreenOneRowsFontSize: 115, systemScreenPinYinSelfFontSize: 18, systemScreenPinYinWordFontSize: 24, systemScreenEnglishFontSize: 28, continueStartNodeId: "#yx_frame_content", tagNames: { "A": true, "IMG": true, "BUTTON": true, "INPUT": true, "LABEL": true, "AREA": true, "OBJECT": true, "EMBED": true, "SELECT": true, "TEXTAREA": true }, colorTagNames: { "BODY": true, "A": true, "LABEL": true, "BUTTON": true, "INPUT": true, "TR": true, "TH": true, "TD": true, "LI": true, "P": true, "H1": true, "H2": true, "H3": true, "UL": true, "TABLE": true, "DIV": true, "SPAN": true, "SELECT": true, "TEXTAREA": true }, HttpPath: function(path) { return YX.GetDomain() + this.serverPath + path }, ChangeScreenFontSize: function() { var bodyWH = YX.Utils.GetBodyWidthHeight(); if (bodyWH.width < 1030) { YX.systemScreenPinYinSelfFontSize = 14; YX.systemScreenPinYinWordFontSize = 22 } else if (bodyWH.width < 1290) { YX.systemScreenPinYinSelfFontSize = 18; YX.systemScreenPinYinWordFontSize = 24 } else if (bodyWH.width < 1450) { YX.systemScreenPinYinSelfFontSize = 22; YX.systemScreenPinYinWordFontSize = 28 } else { YX.systemScreenPinYinSelfFontSize = 26; YX.systemScreenPinYinWordFontSize = 32 } }, Entrance: function() { YX.content.Init(); this.InitConfig(); YX.Replace.Init(); this.ChangeScreenFontSize(); var urls = document.location.href.split("?url="); var url = urls.length == 2 ? urls[1] : $("meta:eq(0)").attr("yxsrc"); //if (YX.proxyUrl && url.indexOf(YX.proxyUrl) != 0) url = YX.proxyUrl + YX.Utils.UTFUrlEncode(url); YX.content.CreatePage(null, null, url); YX.sound.InitPageRead(); YX.tools.InitTools() }, GetDomain: function() { return document.location.href.split(YX.serverPath)[0] }, simpleDomainValue: "", GetSimpleDomain: function() { if (this.simpleDomainValue) return this.simpleDomainValue; var hoststr = document.location.host; this.simpleDomainValue = hoststr.split(":")[0]; return this.simpleDomainValue }, GetCookieDomain: function() { return this.GetSimpleDomain() }, InitConfig: function () { YX.voicesPath = $("#yx_voicespath").get(0).href; YX.socketPath = $("#yx_socketpath").get(0).href; YX.translatePath = $("#yx_translatepath").get(0).href; YX.proxyUrl = $("#yx_proxyurl").get(0).href; YX.pageDataPath = $("#yx_pagedatapath").get(0).href; YX.pageAllowPath = $("#yx_pageallowpath").get(0).href; if (parent && parent.YX && parent.YX.voice && parent.YX.voice.isInstall) { var voicedomain = YX.socketPath.split("/")[2]; YX.socketPath = YX.socketPath.replace(voicedomain, parent.YX.voice.localDomain); YX.voicesPath = YX.voicesPath.replace(voicedomain, parent.YX.voice.localDomain) } } }; $(function () { //YX.cookie.SetCookie('color-n', YX.color[0]) //YX.cookie.SetCookie('screenShowStyle', 'py-n') YX.Entrance() }); function errorHide() { return true } onerror = errorHide; YX.systemSplitDot = [",", "!", "?", ";", ",", "。", "?", "!", ";", "\n"]; YX.configText['yx_help'] = "系统帮助"; YX.configText['yx_close'] = "退出系统"; YX.configText['yx_back'] = "后退到上一页"; YX.configText['yx_refresh'] = "刷新页面"; YX.configText['yx_ruler'] = "十字光标"; YX.configText['yx_color2'] = "蓝色主题"; YX.configText['yx_color1'] = "黑色主题"; YX.configText['yx_color0'] = "原始配色"; YX.configText['yx_zoomSub'] = "页面缩小"; YX.configText['yx_zoomAdd'] = "页面放大"; YX.configText['yx_playSpeech'] = "语音开关"; YX.configText['yx_volumeSub'] = "声音降低"; YX.configText['yx_volumeAdd'] = "声音加大"; YX.configText['yx_speedSub'] = "语速减慢"; YX.configText['yx_speedAdd'] = "语速增快"; YX.configText['yx_pointerRead'] = "指读开关"; YX.configText['yx_continueRead'] = "连读开关"; YX.configText['yx_displayScreen'] = "大字幕显示开关"; YX.configText['yx_backEnable'] = "无后退页面"; YX.configText['yx_pause'] = "暂停连读开关"; YX.configText['yx_play'] = "继续连读开关"; YX.configText['yx_en'] = "转换为英文"; YX.configText['yx_zh'] = "转换为简体"; YX.configText['yx_py'] = "注释拼音"; YX.configText['yx_tw'] = "转换为繁体"; YX.configText['yx_zhed'] = "已转为简体"; YX.configText['yx_ened'] = "已转为英文"; YX.configText['yx_twed'] = "已转为繁体"; YX.configText['yx_pinyined'] = "已注释拼音"; YX.configText['a'] = "链接"; YX.configText['link'] = "链接"; YX.configText['currentValue'] = "当前内容为"; YX.configText['currentItem'] = "当前选中项为"; YX.configText['current'] = "当前"; YX.configText['emptyContent'] = "空"; YX.configText['file'] = "文件上传选择按钮"; YX.configText['password'] = "密码输入框"; YX.configText["reset"] = "重新设置按钮"; YX.configText['object'] = "媒体"; YX.configText['embed'] = "媒体"; YX.configText['abbr'] = "首字母缩写"; YX.configText['acronym'] = "首字母缩写"; YX.configText['area'] = "热点链接"; YX.configText['imageButton'] = "图片按钮"; YX.configText['button'] = "按钮"; YX.configText['dir'] = "目录列表"; YX.configText['submit'] = "提交按钮"; YX.configText['h1'] = "1号标题"; YX.configText['h2'] = "2号标题"; YX.configText['h3'] = "3号标题"; YX.configText['h4'] = "4号标题"; YX.configText['h5'] = "5号标题"; YX.configText['h6'] = "6号标题"; YX.configText['hr'] = "横线"; YX.configText['img'] = "图片"; YX.configText['label'] = "标签"; YX.configText['li'] = "列表项目"; YX.configText['marquee'] = "滚动文本"; YX.configText['ol'] = "有序列表"; YX.configText['option'] = "列表框选项"; YX.configText['p'] = "段落"; YX.configText['select'] = "列表框"; YX.configText['strong'] = "粗体"; YX.configText['table'] = "表格"; YX.configText['tbody'] = "表格主体"; YX.configText['td'] = "单元格"; YX.configText['radio'] = "单选按钮"; YX.configText['checkbox'] = "复选按钮"; YX.configText['checked'] = "已选中"; YX.configText['unchecked'] = "未选中"; YX.configText['text'] = "文本输入框"; YX.configText['textarea'] = "多文本输入框内容为:"; YX.configText['tfoot'] = "表尾"; YX.configText['ul'] = "无序列表"; YX.configText['items'] = "条目"; YX.configText['list'] = "列表"; YX.configText['speed'] = "语速"; YX.configText['volume'] = "音量"; YX.configText['pause'] = "连读已开"; YX.configText['play'] = "连读已停"; YX.configText['stopSpeech'] = "语音已关"; YX.configText['continueRead'] = "连读已开"; YX.configText['pointerRead'] = "指读已开"; YX.configText['selectRead'] = "选读已开"; YX.configText['welcome'] = '您已进入在线语音版本,这是您初次使用,如需帮助请单击右侧帮助按钮'; YX.configText['zoom'] = "页面"; YX.configText['zoomSub'] = "缩小页面"; YX.configText['zoomAdd'] = "放大页面"; YX.configText['loading'] = "正在加载"; YX.configText['pageTitle'] = "已打开"; YX.configText['error'] = "此页面暂时不能播放声音"; YX.configText['noTitle'] = "无标题"; YX.configText['page'] = "页面"; YX.configText['backedPage'] = "正在后退页面"; YX.configText['loading'] = "正在加载……"; YX.configText['refreshingPage'] = "正在刷新当前页面"; YX.configText['playedHelp'] = "已打开帮助页面"; YX.configText['closedHelp'] = "已关闭帮助页面"; YX.configText['playedRuler'] = "已开启标尺功能"; YX.configText['closedRuler'] = "已关闭标尺功能"; YX.configText['changPageColor2'] = "已设置为蓝色主题"; YX.configText['changPageColor1'] = "已设置为黑色主题"; YX.configText['changPageColor0'] = "已设置为原始配色"; YX.configText['zoomAdd100'] = "页面放大为百分之一百"; YX.configText['zoomAdd110'] = "页面放大为百分之一百一十"; YX.configText['zoomAdd120'] = "页面放大为百分之一百二十"; YX.configText['zoomAdd130'] = "页面放大为百分之一百三十"; YX.configText['zoomAdd140'] = "页面放大为百分之一百四十"; YX.configText['zoomAdd150'] = "页面已经放至最大"; YX.configText['zoomSub100'] = "页面已经缩至最小"; YX.configText['zoomSub110'] = "页面缩小为百分之一百一十"; YX.configText['zoomSub120'] = "页面缩小为百分之一百二十"; YX.configText['zoomSub130'] = "页面缩小为百分之一百三十"; YX.configText['zoomSub140'] = "页面缩小为百分之一百四十"; YX.configText['zoomSub150'] = "页面缩小为百分之一百五十"; YX.configText['volumeAdd1'] = "音量增加为一"; YX.configText['volumeAdd2'] = "音量增加为二"; YX.configText['volumeAdd3'] = "音量增加为三"; YX.configText['volumeAdd4'] = "音量增加为四"; YX.configText['volumeAdd5'] = "音量已增至最大"; YX.configText['volumeSub1'] = "音量已减至最小"; YX.configText['volumeSub2'] = "音量减少为二"; YX.configText['volumeSub3'] = "音量减少为三"; YX.configText['volumeSub4'] = "音量减少为四"; YX.configText['volumeSub5'] = "音量减少为五"; YX.configText['speedAdd1'] = "语速增加为一"; YX.configText['speedAdd2'] = "语速增加为二"; YX.configText['speedAdd3'] = "语速增至最快"; YX.configText['speedSub1'] = "语速已减至最慢"; YX.configText['speedSub2'] = "语速减少为二"; YX.configText['speedSub3'] = "语速减少为三"; YX.configText['playedScreen'] = "已关闭大字幕"; YX.configText['closedScreen'] = "已打开大字幕"; YX.configText['playedSpeech'] = "已开启语音朗读功能"; YX.configText['closedSpeech'] = "已关闭语音朗读功能"; YX.configText['pointerReadModule'] = "您选择的朗读为指读模式"; YX.configText['continueReadModule'] = "您选择的朗读为连读模式"; YX.configText['selectReadModule'] = "您选择的朗读为选读模式"; YX.configText['chineseRead'] = "普通话"; YX.configText['taiwanRead'] = "粤语"; YX.configText['englishRead'] = "英语"; YX.configText['continueReadTimeTip'] = "秒后该位置开始连读"; YX.configText['noSelfLink'] = "该页面不属于本站点,不能通过它进行无障碍操作,如须打开请双击"; YX.configText['pinyin'] = { "圩": "wéi", "1": "yī", "2": "èr", "3": "sān", "4": "sì", "5": "wǔ", "6": "liù", "7": "qī", "8": "bā", "9": "jiǔ", "0": "líng", "啊": "ā", "阿": "ā", "埃": "āi", "挨": "āi", "哎": "āi", "唉": "āi", "哀": "āi", "皑": "ái", "癌": "ái", "蔼": "ǎi", "矮": "ǎi", "艾": "ài", "碍": "ài", "爱": "ài", "隘": "ài", "鞍": "ān", "氨": "ān", "安": "ān", "俺": "ǎn", "按": "àn", "暗": "àn", "岸": "àn", "胺": "àn", "案": "àn", "肮": "āng", "昂": "áng", "盎": "àng", "凹": "āo", "敖": "áo", "熬": "áo", "翱": "áo", "袄": "ǎo", "傲": "ào", "奥": "ào", "懊": "ào", "澳": "ào", "芭": "bā", "捌": "bā", "扒": "bā", "叭": "bā", "吧": "bā", "笆": "bā", "八": "bā", "疤": "bā", "巴": "bā", "拔": "bá", "跋": "bá", "靶": "bǎ", "把": "bǎ", "耙": "pá", "坝": "bà", "霸": "bà", "罢": "bà", "爸": "bà", "白": "bái", "柏": "bǎi", "百": "bǎi", "摆": "bǎi", "佰": "bǎi", "败": "bài", "拜": "bài", "稗": "bài", "斑": "bān", "班": "bān", "搬": "bān", "扳": "bān", "般": "bān", "颁": "bān", "板": "bǎn", "版": "bǎn", "扮": "bàn", "拌": "bàn", "伴": "bàn", "瓣": "bàn", "半": "bàn", "办": "bàn", "绊": "bàn", "邦": "bāng", "帮": "bāng", "梆": "bāng", "榜": "bǎng", "膀": "bǎng", "绑": "bǎng", "棒": "bàng", "磅": "páng", "蚌": "bàng", "镑": "bàng", "傍": "bàng", "谤": "bàng", "苞": "bāo", "胞": "bāo", "包": "bāo", "褒": "bāo", "剥": "bāo", "薄": "báo", "雹": "báo", "保": "bǎo", "堡": "bǎo", "饱": "bǎo", "宝": "bǎo", "抱": "bào", "报": "bào", "暴": "bào", "豹": "bào", "鲍": "bào", "爆": "bào", "杯": "bēi", "碑": "bēi", "悲": "bēi", "卑": "bēi", "北": "běi", "辈": "bèi", "背": "bèi", "贝": "bèi", "钡": "bèi", "倍": "bèi", "狈": "bèi", "备": "bèi", "惫": "bèi", "焙": "bèi", "被": "bèi", "奔": "bēn", "苯": "běn", "本": "běn", "笨": "bèn", "崩": "bēng", "绷": "bēng", "甭": "béng", "泵": "bèng", "蹦": "bèng", "迸": "bèng", "逼": "bī", "鼻": "bí", "比": "bǐ", "鄙": "bǐ", "笔": "bǐ", "彼": "bǐ", "碧": "bì", "蓖": "bì", "蔽": "bì", "毕": "bì", "毙": "bì", "毖": "bì", "币": "bì", "庇": "bì", "痹": "bì", "闭": "bì", "敝": "bì", "弊": "bì", "必": "bì", "辟": "pì", "壁": "bì", "臂": "bì", "避": "bì", "陛": "bì", "鞭": "biān", "边": "biān", "编": "biān", "贬": "biǎn", "扁": "biǎn", "便": "biàn", "变": "biàn", "卞": "biàn", "辨": "biàn", "辩": "biàn", "辫": "biàn", "遍": "biàn", "标": "biāo", "彪": "biāo", "膘": "biāo", "表": "biǎo", "鳖": "biē", "憋": "biē", "别": "bié", "瘪": "biě", "彬": "bīn", "斌": "bīn", "濒": "bīn", "滨": "bīn", "宾": "bīn", "摈": "bìn", "兵": "bīng", "冰": "bīng", "柄": "bǐng", "丙": "bǐng", "秉": "bǐng", "饼": "bǐng", "炳": "bǐng", "病": "bìng", "并": "bìng", "玻": "bō", "菠": "bō", "播": "bō", "拨": "bō", "钵": "bō", "波": "bō", "博": "bó", "勃": "bó", "搏": "bó", "铂": "bó", "箔": "bó", "伯": "bó", "帛": "bó", "舶": "bó", "脖": "bó", "膊": "bó", "渤": "bó", "泊": "bó", "驳": "bó", "捕": "bǔ", "卜": "bo", "哺": "bǔ", "补": "bǔ", "埠": "bù", "不": "bù", "布": "bù", "步": "bù", "簿": "bù", "部": "bù", "怖": "bù", "擦": "cā", "猜": "cāi", "裁": "cái", "材": "cái", "才": "cái", "财": "cái", "睬": "cǎi", "踩": "cǎi", "采": "cǎi", "彩": "cǎi", "菜": "cài", "蔡": "cài", "餐": "cān", "参": "cān", "蚕": "cán", "残": "cán", "惭": "cán", "惨": "cǎn", "灿": "càn", "苍": "cāng", "舱": "cāng", "仓": "cāng", "沧": "cāng", "藏": "cáng", "操": "cāo", "糙": "cāo", "槽": "cáo", "曹": "cáo", "草": "cǎo", "厕": "cè", "策": "cè", "侧": "cè", "册": "cè", "测": "cè", "层": "céng", "蹭": "cèng", "插": "chā", "叉": "chā", "茬": "chá", "茶": "chá", "查": "chá", "碴": "chá", "搽": "chá", "察": "chá", "岔": "chà", "差": "chà", "诧": "chà", "拆": "chāi", "柴": "chái", "豺": "chái", "搀": "chān", "掺": "chān", "蝉": "chán", "馋": "chán", "谗": "chán", "缠": "chán", "铲": "chǎn", "产": "chǎn", "阐": "chǎn", "颤": "chàn", "昌": "chāng", "猖": "chāng", "场": "chǎng", "尝": "cháng", "常": "cháng", "长": "cháng", "偿": "cháng", "肠": "cháng", "厂": "chǎng", "敞": "chǎng", "畅": "chàng", "唱": "chàng", "倡": "chàng", "超": "chāo", "抄": "chāo", "钞": "chāo", "朝": "cháo", "嘲": "cháo", "潮": "cháo", "巢": "cháo", "吵": "chǎo", "炒": "chǎo", "车": "chē", "扯": "chě", "撤": "chè", "掣": "chè", "彻": "chè", "澈": "chè", "郴": "chēn", "臣": "chén", "辰": "chén", "尘": "chén", "晨": "chén", "忱": "chén", "沉": "chén", "陈": "chén", "趁": "chèn", "衬": "chèn", "撑": "chēng", "称": "chēng", "城": "chéng", "橙": "chéng", "成": "chéng", "呈": "chéng", "乘": "chéng", "程": "chéng", "惩": "chéng", "澄": "chéng", "诚": "chéng", "承": "chéng", "逞": "chěng", "骋": "chěng", "秤": "chèng", "吃": "chī", "痴": "chī", "持": "chí", "匙": "chí", "池": "shi", "迟": "chí", "弛": "chí", "驰": "chí", "耻": "chǐ", "齿": "chǐ", "侈": "chǐ", "尺": "chǐ", "赤": "chì", "翅": "chì", "斥": "chì", "炽": "chì", "充": "chōng", "冲": "chōng", "虫": "chóng", "崇": "chóng", "宠": "chǒng", "抽": "chōu", "酬": "chóu", "畴": "chóu", "踌": "chóu", "稠": "chóu", "愁": "chóu", "筹": "chóu", "仇": "chóu", "绸": "chóu", "瞅": "chǒu", "丑": "chǒu", "臭": "chòu", "初": "chū", "出": "chū", "橱": "chú", "厨": "chú", "躇": "chú", "锄": "chú", "雏": "chú", "滁": "chú", "除": "chú", "楚": "chǔ", "础": "chǔ", "储": "chǔ", "矗": "chù", "搐": "chù", "触": "chù", "处": "chǔ", "揣": "chuāi", "川": "chuān", "穿": "chuān", "椽": "chuán", "传": "chuán", "船": "chuán", "喘": "chuǎn", "串": "chuàn", "疮": "chuāng", "窗": "chuāng", "幢": "zhuàng", "床": "chuáng", "闯": "chuǎng", "创": "chuàng", "吹": "chuí", "炊": "chuī", "捶": "chuī", "锤": "chuí", "垂": "chuí", "春": "chūn", "椿": "chūn", "醇": "chún", "唇": "chún", "淳": "chún", "纯": "chún", "蠢": "chǔn", "戳": "chuō", "绰": "chuō", "疵": "cī", "茨": "cí", "磁": "cí", "雌": "cí", "辞": "cí", "慈": "cí", "瓷": "cí", "词": "cí", "此": "cǐ", "刺": "cì", "赐": "cì", "次": "cì", "聪": "cōng", "葱": "cōng", "囱": "cōng", "匆": "cōng", "从": "cóng", "丛": "cóng", "凑": "còu", "粗": "cū", "醋": "cù", "簇": "cù", "促": "cù", "蹿": "cuān", "篡": "cuàn", "窜": "cuàn", "摧": "cuī", "崔": "cuī", "催": "cuī", "脆": "cuì", "瘁": "cuì", "粹": "cuì", "淬": "cuì", "翠": "cuì", "村": "cūn", "存": "cún", "寸": "cùn", "磋": "cuō", "撮": "cuō", "搓": "cuō", "措": "cuò", "挫": "cuò", "错": "cuò", "搭": "dā", "达": "dá", "答": "dá", "瘩": "dá", "打": "dǎ", "大": "dà", "呆": "dāi", "歹": "dǎi", "傣": "dǎi", "戴": "dài", "带": "dài", "殆": "dài", "代": "dài", "贷": "dài", "袋": "dài", "待": "dài", "逮": "dǎi", "怠": "dài", "耽": "dān", "担": "dān", "丹": "dān", "单": "dān", "郸": "dān", "掸": "dǎn", "胆": "dǎn", "旦": "dàn", "氮": "dàn", "但": "dàn", "惮": "dàn", "淡": "dàn", "诞": "dàn", "弹": "dàn", "蛋": "dàn", "当": "dāng", "挡": "dǎng", "党": "dǎng", "荡": "dàng", "档": "dàng", "刀": "dāo", "捣": "dǎo", "蹈": "dǎo", "倒": "dǎo", "岛": "dǎo", "祷": "dǎo", "导": "dǎo", "到": "dào", "稻": "dào", "悼": "dào", "道": "dào", "盗": "dào", "德": "dé", "得": "dé", "的": "de", "蹬": "dēng", "灯": "dēng", "登": "dēng", "等": "děng", "瞪": "dèng", "凳": "dèng", "邓": "dèng", "堤": "dī", "低": "dī", "滴": "dī", "迪": "dī", "敌": "dí", "笛": "dí", "狄": "dí", "涤": "dí", "翟": "dí", "嫡": "dí", "抵": "dǐ", "底": "dǐ", "地": "dì", "蒂": "dì", "第": "dì", "帝": "dì", "弟": "dì", "递": "dì", "缔": "dì", "颠": "diān", "掂": "diān", "滇": "diān", "碘": "diǎn", "点": "diǎn", "典": "diǎn", "靛": "diàn", "垫": "diàn", "电": "diàn", "佃": "diàn", "甸": "diàn", "店": "diàn", "惦": "diàn", "奠": "diàn", "淀": "diàn", "殿": "diàn", "碉": "diāo", "叼": "diāo", "雕": "diāo", "凋": "diāo", "刁": "diāo", "掉": "diào", "吊": "diào", "钓": "diào", "调": "diào", "跌": "diē", "爹": "diē", "碟": "dié", "蝶": "dié", "迭": "dié", "谍": "dié", "叠": "dié", "丁": "dīng", "盯": "dīng", "叮": "dīng", "钉": "dìng", "顶": "dǐng", "鼎": "dǐng", "锭": "dìng", "定": "dìng", "订": "dìng", "丢": "diu1", "东": "dōng", "冬": "dōng", "董": "dǒng", "懂": "dǒng", "动": "dòng", "栋": "dòng", "侗": "dòng", "恫": "dòng", "冻": "dòng", "洞": "dòng", "兜": "dōu", "抖": "dǒu", "斗": "dòu", "陡": "dǒu", "豆": "dòu", "逗": "dòu", "痘": "dòu", "都": "dōu", "督": "dū", "毒": "dú", "犊": "dú", "独": "dú", "读": "dú", "堵": "dǔ", "睹": "dǔ", "赌": "dǔ", "杜": "dù", "镀": "dù", "肚": "dù", "度": "dù", "渡": "dù", "妒": "dù", "端": "duān", "短": "duǎn", "锻": "duàn", "段": "duàn", "断": "duàn", "缎": "duàn", "堆": "duī", "兑": "duì", "队": "duì", "对": "duì", "墩": "dūn", "吨": "dūn", "蹲": "dūn", "敦": "dūn", "顿": "dùn", "囤": "dùn", "钝": "dùn", "盾": "dùn", "遁": "dùn", "掇": "duō", "哆": "duō", "多": "duō", "夺": "duó", "垛": "duǒ", "躲": "duǒ", "朵": "duǒ", "跺": "duò", "舵": "duò", "剁": "duò", "惰": "duò", "堕": "duò", "蛾": "é", "峨": "é", "鹅": "é", "俄": "é", "额": "é", "讹": "é", "娥": "é", "恶": "è", "厄": "è", "扼": "è", "遏": "è", "鄂": "è", "饿": "è", "恩": "ēn", "而": "ér", "儿": "ér", "耳": "ěr", "尔": "ěr", "饵": "ěr", "洱": "ěr", "二": "èr", "贰": "èr", "发": "fā", "罚": "fá", "筏": "fá", "伐": "fá", "乏": "fá", "阀": "fá", "法": "fǎ", "珐": "fà", "藩": "fān", "帆": "fān", "番": "fān", "翻": "fān", "樊": "fán", "矾": "fán", "钒": "fán", "繁": "fán", "凡": "fán", "烦": "fán", "反": "fǎn", "返": "fǎn", "范": "fàn", "贩": "fàn", "犯": "fàn", "饭": "fàn", "泛": "fàn", "坊": "fāng", "芳": "fāng", "方": "fāng", "肪": "fáng", "房": "fáng", "防": "fáng", "妨": "fáng", "仿": "fǎng", "访": "fǎng", "纺": "fǎng", "放": "fàng", "菲": "fēi", "非": "fēi", "啡": "fēi", "飞": "fēi", "肥": "féi", "匪": "fěi", "诽": "fěi", "吠": "fèi", "肺": "fèi", "废": "fèi", "沸": "fèi", "费": "fèi", "芬": "fēn", "酚": "fēn", "吩": "fēn", "氛": "fēn", "分": "fēn", "纷": "fēn", "坟": "fén", "焚": "fén", "汾": "fén", "粉": "fěn", "奋": "fèn", "份": "fèn", "忿": "fèn", "愤": "fèn", "粪": "fèn", "丰": "fēng", "封": "fēng", "枫": "fēng", "蜂": "fēng", "峰": "fēng", "锋": "fēng", "风": "fēng", "疯": "fēng", "烽": "fēng", "逢": "féng", "冯": "féng", "缝": "féng", "讽": "fěng", "奉": "fèng", "凤": "fèng", "佛": "fó", "否": "fǒu", "夫": "fū", "敷": "fū", "肤": "fū", "孵": "fū", "扶": "fú", "拂": "fú", "辐": "fú", "幅": "fú", "氟": "fú", "符": "fú", "伏": "fú", "俘": "fú", "服": "fú", "浮": "fú", "涪": "fú", "福": "fú", "袱": "fú", "弗": "fú", "甫": "fǔ", "抚": "fǔ", "辅": "fǔ", "俯": "fǔ", "釜": "fǔ", "斧": "fǔ", "脯": "pú", "腑": "fǔ", "府": "fǔ", "腐": "fǔ", "赴": "fù", "副": "fù", "覆": "fù", "赋": "fù", "复": "fù", "傅": "fù", "付": "fù", "阜": "fù", "父": "fù", "腹": "fù", "负": "fù", "富": "fù", "讣": "fù", "附": "fù", "妇": "fù", "缚": "fù", "咐": "fù", "噶": "gá", "嘎": "gā", "该": "gāi", "改": "gǎi", "概": "gài", "钙": "gài", "盖": "gài", "溉": "gài", "干": "gàn", "甘": "gān", "杆": "gǎn", "柑": "gān", "竿": "gān", "肝": "gān", "赶": "gǎn", "感": "gǎn", "秆": "gǎn", "敢": "gǎn", "赣": "gàn", "冈": "gāng", "刚": "gāng", "钢": "gāng", "缸": "gāng", "肛": "gāng", "纲": "gāng", "岗": "gǎng", "港": "gǎng", "杠": "gàng", "篙": "gāo", "皋": "gāo", "高": "gāo", "膏": "gāo", "羔": "gāo", "糕": "gāo", "搞": "gǎo", "镐": "gǎo", "稿": "gǎo", "告": "gào", "哥": "gē", "歌": "gē", "搁": "gē", "戈": "gē", "鸽": "gē", "胳": "gē", "疙": "gē", "割": "gē", "革": "gé", "葛": "gě", "格": "gé", "蛤": "há", "阁": "gé", "隔": "gé", "铬": "gè", "个": "gè", "各": "gè", "给": "gěi", "根": "gēn", "跟": "gēn", "耕": "gēng", "更": "gèng", "庚": "gēng", "羹": "gēng", "埂": "gěng", "耿": "gěng", "梗": "gěng", "工": "gōng", "攻": "gōng", "功": "gōng", "恭": "gōng", "龚": "gōng", "供": "gòng", "躬": "gōng", "公": "gōng", "宫": "gōng", "弓": "gōng", "巩": "gǒng", "汞": "gǒng", "拱": "gǒng", "贡": "gòng", "共": "gòng", "钩": "gōu", "勾": "gōu", "沟": "gōu", "苟": "gǒu", "狗": "gǒu", "垢": "gòu", "构": "gòu", "购": "gòu", "够": "gòu", "辜": "gū", "菇": "gū", "咕": "gū", "箍": "gū", "估": "gū", "沽": "gū", "孤": "gū", "姑": "gū", "鼓": "gǔ", "古": "gǔ", "蛊": "gǔ", "骨": "gǔ", "谷": "gǔ", "股": "gǔ", "故": "gù", "顾": "gù", "固": "gù", "雇": "gù", "刮": "guā", "瓜": "guā", "剐": "guǎ", "寡": "guǎ", "挂": "guà", "褂": "guà", "乖": "guāi", "拐": "guǎi", "怪": "guài", "棺": "guān", "关": "guān", "官": "guān", "冠": "guàn", "观": "guān", "管": "guǎn", "馆": "guǎn", "罐": "guàn", "惯": "guàn", "灌": "guàn", "贯": "guàn", "光": "guāng", "广": "guǎng", "逛": "guàng", "瑰": "guī", "规": "guī", "圭": "guī", "硅": "guī", "归": "guī", "龟": "guī", "闺": "guī", "轨": "guǐ", "鬼": "guǐ", "诡": "guǐ", "癸": "guǐ", "桂": "guì", "柜": "guì", "跪": "guì", "贵": "guì", "刽": "guì", "辊": "gǔn", "滚": "gǔn", "棍": "gùn", "锅": "guō", "郭": "guō", "国": "guó", "果": "guǒ", "裹": "guǒ", "过": "guò", "哈": "hā", "骸": "hái", "孩": "hái", "海": "hǎi", "氦": "hài", "亥": "hài", "害": "hài", "骇": "hài", "酣": "hān", "憨": "hān", "邯": "hán", "韩": "hán", "含": "hán", "涵": "hán", "寒": "hán", "函": "hán", "喊": "hǎn", "罕": "hǎn", "翰": "hàn", "撼": "hàn", "扞": "hàn", "旱": "hàn", "憾": "hàn", "悍": "hàn", "焊": "hàn", "汗": "hàn", "汉": "hàn", "夯": "hāng", "杭": "háng", "航": "háng", "壕": "háo", "嚎": "háo", "豪": "háo", "毫": "háo", "郝": "hǎo", "好": "hǎo", "耗": "hào", "号": "hào", "浩": "hào", "呵": "hē", "喝": "hē", "荷": "hé", "菏": "hé", "核": "hé", "禾": "hé", "和": "hé", "何": "hé", "合": "hé", "盒": "hé", "貉": "hè", "阂": "hé", "河": "hé", "涸": "hé", "赫": "hè", "褐": "hè", "鹤": "hè", "贺": "hè", "嘿": "hēi", "黑": "hēi", "痕": "hén", "很": "hěn", "狠": "hěn", "恨": "hèn", "哼": "hēng", "亨": "hēng", "横": "héng", "衡": "héng", "恒": "héng", "轰": "hōng", "哄": "hǒng", "烘": "hōng", "虹": "hóng", "鸿": "hóng", "洪": "hóng", "宏": "hóng", "弘": "hóng", "红": "hóng", "喉": "hóu", "侯": "hòu", "猴": "hóu", "吼": "hǒu", "厚": "hòu", "候": "hòu", "后": "hòu", "呼": "hū", "乎": "hū", "忽": "hū", "瑚": "hú", "壶": "hú", "葫": "hú", "胡": "hú", "蝴": "hú", "狐": "hú", "糊": "hú", "湖": "hú", "弧": "hú", "虎": "hǔ", "唬": "hǔ", "护": "hù", "互": "hù", "沪": "hù", "户": "hù", "花": "huā", "哗": "huá", "华": "huá", "猾": "huá", "滑": "huá", "画": "huà", "划": "huá", "化": "huà", "话": "huà", "槐": "huái", "徊": "huái", "怀": "huái", "淮": "huái", "坏": "huài", "欢": "huān", "环": "huán", "桓": "huán", "还": "hái", "缓": "huǎn", "换": "huàn", "患": "huàn", "唤": "huàn", "痪": "huàn", "豢": "huàn", "焕": "huàn", "涣": "huàn", "宦": "huàn", "幻": "huàn", "荒": "huāng", "慌": "huāng", "黄": "huáng", "磺": "huáng", "蝗": "huáng", "簧": "huáng", "皇": "huáng", "凰": "huáng", "惶": "huáng", "煌": "huáng", "晃": "huàng", "幌": "huǎng", "恍": "huǎng", "谎": "huǎng", "灰": "huī", "挥": "huī", "辉": "huī", "徽": "huī", "恢": "huī", "蛔": "huí", "回": "huí", "毁": "huǐ", "悔": "huǐ", "慧": "huì", "卉": "huì", "惠": "huì", "晦": "huì", "贿": "huì", "秽": "huì", "会": "huì", "烩": "huì", "汇": "huì", "讳": "huì", "诲": "huì", "绘": "huì", "荤": "hūn", "昏": "hūn", "婚": "hūn", "魂": "hún", "浑": "hún", "混": "hùn", "豁": "huō", "活": "huó", "伙": "huǒ", "火": "huǒ", "获": "huò", "或": "huò", "惑": "huò", "霍": "huò", "货": "huò", "祸": "huò", "击": "jī", "圾": "jī", "基": "jī", "机": "jī", "畸": "jī", "稽": "jī", "积": "jī", "箕": "jī", "肌": "jī", "饥": "jī", "迹": "jì", "激": "jī", "讥": "jī", "鸡": "jī", "姬": "jī", "绩": "jì", "缉": "jī", "吉": "jí", "极": "jí", "棘": "jí", "辑": "jí", "籍": "jí", "集": "jí", "及": "jí", "急": "jí", "疾": "jí", "汲": "jí", "即": "jí", "嫉": "jí", "级": "jí", "挤": "jǐ", "几": "jǐ", "脊": "jǐ", "己": "jǐ", "蓟": "jì", "技": "jì", "冀": "jì", "季": "jì", "伎": "jì", "祭": "jì", "剂": "jì", "悸": "jì", "济": "jì", "寄": "jì", "寂": "jì", "计": "jì", "记": "jì", "既": "jì", "忌": "jì", "际": "jì", "妓": "jì", "继": "jì", "纪": "jì", "嘉": "jiā", "枷": "jiā", "夹": "jiā", "佳": "jiā", "家": "jiā", "加": "jiā", "荚": "jiá", "颊": "jiá", "贾": "jiǎ", "甲": "jiǎ", "钾": "jiǎ", "假": "jiǎ", "稼": "jià", "价": "jià", "架": "jià", "驾": "jià", "嫁": "jià", "歼": "jiān", "监": "jiān", "坚": "jiān", "尖": "jiān", "笺": "jiān", "间": "jiān", "煎": "jiān", "兼": "jiān", "肩": "jiān", "艰": "jiān", "奸": "jiān", "缄": "jiān", "茧": "jiǎn", "检": "jiǎn", "柬": "jiǎn", "碱": "jiǎn", "硷": "jiǎn", "拣": "jiǎn", "捡": "jiǎn", "简": "jiǎn", "俭": "jiǎn", "剪": "jiǎn", "减": "jiǎn", "荐": "jiàn", "槛": "kǎn", "鉴": "jiàn", "践": "jiàn", "贱": "jiàn", "见": "jiàn", "键": "jiàn", "箭": "jiàn", "件": "jiàn", "健": "jiàn", "舰": "jiàn", "剑": "jiàn", "饯": "jiàn", "渐": "jiàn", "溅": "jiàn", "涧": "jiàn", "建": "jiàn", "僵": "jiāng", "姜": "jiāng", "将": "jiāng", "浆": "jiāng", "江": "jiāng", "疆": "jiāng", "蒋": "jiǎng", "桨": "jiǎng", "奖": "jiǎng", "讲": "jiǎng", "匠": "jiàng", "酱": "jiàng", "降": "jiàng", "蕉": "jiāo", "椒": "jiāo", "礁": "jiāo", "焦": "jiāo", "胶": "jiāo", "交": "jiāo", "郊": "jiāo", "浇": "jiāo", "骄": "jiāo", "娇": "jiāo", "嚼": "jiáo", "搅": "jiǎo", "铰": "jiǎo", "矫": "jiǎo", "侥": "yáo", "脚": "jiǎo", "狡": "jiǎo", "角": "jiǎo", "饺": "jiǎo", "缴": "jiǎo", "绞": "jiǎo", "剿": "jiǎo", "教": "jiào", "酵": "jiào", "轿": "jiào", "较": "jiào", "叫": "jiào", "窖": "jiào", "揭": "jiē", "接": "jiē", "皆": "jiē", "秸": "jiē", "街": "jiē", "阶": "jiē", "截": "jié", "劫": "jié", "节": "jié", "桔": "jú", "杰": "jié", "捷": "jié", "睫": "jié", "竭": "jié", "洁": "jié", "结": "jié", "解": "jiě", "姐": "jiě", "戒": "jiè", "藉": "jiè", "芥": "jiè", "界": "jiè", "借": "jiè", "介": "jiè", "疥": "jiè", "诫": "jiè", "届": "jiè", "巾": "jīn", "筋": "jīn", "斤": "jīn", "金": "jīn", "今": "jīn", "津": "jīn", "襟": "jīn", "紧": "jǐn", "锦": "jǐn", "仅": "jǐn", "谨": "jǐn", "进": "jìn", "靳": "jìn", "晋": "jìn", "禁": "jìn", "近": "jìn", "烬": "jìn", "浸": "jìn", "尽": "jìn", "劲": "jìn", "荆": "jīng", "兢": "jīng", "茎": "jīng", "睛": "jīng", "晶": "jīng", "鲸": "jīng", "京": "jīng", "惊": "jīng", "精": "jīng", "粳": "jīng", "经": "jīng", "井": "jǐng", "警": "jǐng", "景": "jǐng", "颈": "jǐng", "静": "jìng", "境": "jìng", "敬": "jìng", "镜": "jìng", "径": "jìng", "痉": "jìng", "靖": "jìng", "竟": "jìng", "竞": "jìng", "净": "jìng", "炯": "jiǒng", "窘": "jiǒng", "揪": "jiū", "究": "jiū", "纠": "jiū", "玖": "jiǔ", "韭": "jiǔ", "久": "jiǔ", "灸": "jiǔ", "九": "jiǔ", "酒": "jiǔ", "厩": "jiù", "救": "jiù", "旧": "jiù", "臼": "jiù", "舅": "jiù", "咎": "jiù", "就": "jiù", "疚": "jiù", "鞠": "jū", "拘": "jū", "狙": "jū", "疽": "jū", "居": "jū", "驹": "jū", "菊": "jú", "局": "jú", "咀": "jǔ", "矩": "jǔ", "举": "jǔ", "沮": "jǔ", "聚": "jù", "拒": "jù", "据": "jù", "巨": "jù", "具": "jù", "距": "jù", "踞": "jù", "锯": "jù", "俱": "jù", "句": "jù", "惧": "jù", "炬": "jù", "剧": "jù", "捐": "juān", "鹃": "juān", "娟": "juān", "倦": "juàn", "眷": "juàn", "卷": "juàn", "绢": "juàn", "撅": "juē", "攫": "jué", "抉": "jué", "掘": "jué", "倔": "juè", "爵": "jué", "觉": "jué", "决": "jué", "诀": "jué", "绝": "jué", "均": "jūn", "菌": "jūn", "钧": "jūn", "军": "jūn", "君": "jūn", "峻": "jùn", "俊": "jùn", "竣": "jùn", "浚": "xùn", "郡": "jùn", "骏": "jùn", "喀": "kā", "咖": "kā", "卡": "kǎ", "咯": "gē", "开": "kāi", "揩": "kāi", "楷": "kǎi", "凯": "kǎi", "慨": "kǎi", "刊": "kān", "堪": "kān", "勘": "kān", "坎": "kǎn", "砍": "kǎn", "看": "kàn", "康": "kāng", "慷": "kāng", "糠": "kāng", "扛": "káng", "抗": "kàng", "亢": "kàng", "炕": "kàng", "考": "kǎo", "拷": "kǎo", "烤": "kǎo", "靠": "kào", "坷": "kě", "苛": "kē", "柯": "kē", "棵": "kē", "磕": "kē", "颗": "kē", "科": "kē", "壳": "ké", "咳": "ké", "可": "kě", "渴": "kě", "克": "kè", "刻": "kè", "客": "kè", "课": "kè", "肯": "kěn", "啃": "kěn", "垦": "kěn", "恳": "kěn", "坑": "kēng", "吭": "kēng", "空": "kōng", "恐": "kǒng", "孔": "kǒng", "控": "kòng", "抠": "kōu", "口": "kǒu", "扣": "kòu", "寇": "kòu", "枯": "kū", "哭": "kū", "窟": "kū", "苦": "kǔ", "酷": "kù", "库": "kù", "裤": "kù", "夸": "kuā", "垮": "kuǎ", "挎": "kuà", "跨": "kuà", "胯": "kuà", "块": "kuài", "筷": "kuài", "侩": "kuài", "快": "kuài", "宽": "kuān", "款": "kuǎn", "匡": "kuāng", "筐": "kuāng", "狂": "kuáng", "框": "kuàng", "矿": "kuàng", "眶": "kuàng", "旷": "kuàng", "况": "kuàng", "亏": "kuī", "盔": "kuī", "岿": "kuī", "窥": "kuī", "葵": "kuí", "奎": "kuí", "魁": "kuí", "傀": "guī", "馈": "kuì", "愧": "kuì", "溃": "kuì", "坤": "kūn", "昆": "kūn", "捆": "kǔn", "困": "kùn", "括": "kuò", "扩": "kuò", "廓": "kuò", "阔": "kuò", "垃": "lā", "拉": "lā", "喇": "lǎ", "蜡": "là", "腊": "là", "辣": "là", "啦": "lā", "莱": "lái", "来": "lái", "赖": "lài", "蓝": "lán", "婪": "lán", "栏": "lán", "拦": "lán", "篮": "lán", "阑": "lán", "兰": "lán", "澜": "lán", "谰": "lán", "揽": "lǎn", "览": "lǎn", "懒": "lǎn", "缆": "lǎn", "烂": "làn", "滥": "làn", "琅": "láng", "榔": "láng", "狼": "láng", "廊": "láng", "郎": "láng", "朗": "lǎng", "浪": "làng", "捞": "lāo", "劳": "láo", "牢": "láo", "老": "lǎo", "佬": "lǎo", "姥": "lǎo", "酪": "lào", "烙": "lào", "涝": "lào", "勒": "lè", "乐": "lè", "雷": "léi", "镭": "léi", "蕾": "lěi", "磊": "lěi", "累": "lèi", "儡": "lěi", "垒": "lěi", "擂": "lèi", "肋": "lèi", "类": "lèi", "泪": "lèi", "棱": "léng", "楞": "léng", "冷": "lěng", "厘": "lí", "梨": "lí", "犁": "lí", "黎": "lí", "篱": "lí", "狸": "lí", "离": "lí", "漓": "lí", "理": "lǐ", "李": "lǐ", "里": "lǐ", "鲤": "lǐ", "礼": "lǐ", "莉": "lì", "荔": "lì", "吏": "lì", "栗": "lì", "丽": "lì", "厉": "lì", "励": "lì", "砾": "lì", "历": "lì", "利": "lì", "傈": "lì", "例": "lì", "俐": "lì", "痢": "lì", "立": "lì", "粒": "lì", "沥": "lì", "隶": "lì", "力": "lì", "璃": "lí", "哩": "lǐ", "俩": "liǎng", "联": "lián", "莲": "lián", "连": "lián", "镰": "lián", "廉": "lián", "怜": "lián", "涟": "lián", "帘": "lián", "敛": "liǎn", "脸": "liǎn", "链": "liàn", "恋": "liàn", "炼": "liàn", "练": "liàn", "粮": "liáng", "凉": "liáng", "梁": "liáng", "粱": "liáng", "良": "liáng", "两": "liǎng", "辆": "liàng", "量": "liàng", "晾": "liàng", "亮": "liàng", "谅": "liàng", "撩": "liáo", "聊": "liáo", "僚": "liáo", "疗": "liáo", "燎": "liáo", "寥": "liáo", "辽": "liáo", "潦": "liáo", "了": "le", "撂": "liào", "镣": "liào", "廖": "liào", "料": "liào", "列": "liè", "裂": "liè", "烈": "liè", "劣": "liè", "猎": "liè", "琳": "lín", "林": "lín", "磷": "lín", "霖": "lín", "临": "lín", "邻": "lín", "鳞": "lín", "淋": "lín", "凛": "lǐn", "赁": "lìn", "吝": "lìn", "拎": "līn", "玲": "líng", "菱": "líng", "零": "líng", "龄": "líng", "铃": "líng", "伶": "líng", "羚": "líng", "凌": "líng", "灵": "líng", "陵": "líng", "岭": "lǐng", "领": "lǐng", "另": "lìng", "令": "lìng", "溜": "liū", "琉": "liú", "榴": "liú", "硫": "liú", "馏": "liú", "留": "liú", "刘": "liú", "瘤": "liú", "流": "liú", "柳": "liǔ", "六": "liù", "龙": "lóng", "聋": "lóng", "咙": "lóng", "笼": "lóng", "窿": "lóng", "隆": "lóng", "垄": "lǒng", "拢": "lǒng", "陇": "lǒng", "楼": "lóu", "娄": "lóu", "搂": "lǒu", "篓": "lǒu", "漏": "lòu", "陋": "lòu", "芦": "lú", "卢": "lú", "颅": "lú", "庐": "lú", "炉": "lú", "掳": "lǔ", "卤": "lǔ", "虏": "lǔ", "鲁": "lǔ", "麓": "lù", "碌": "lù", "露": "lù", "路": "lù", "赂": "lù", "鹿": "lù", "潞": "lù", "禄": "lù", "录": "lù", "陆": "lù", "戮": "lù", "驴": "lǘ", "吕": "lǚ", "铝": "lǚ", "侣": "lǚ", "旅": "lǚ", "履": "lǚ", "屡": "lǚ", "缕": "lǚ", "虑": "lǜ", "氯": "lǜ", "律": "lǜ", "率": "lǜ", "滤": "lǜ", "绿": "lǜ", "峦": "luán", "挛": "luán", "孪": "luán", "滦": "luán", "卵": "luǎn", "乱": "luàn", "掠": "lüě", "略": "lüè", "抡": "lún", "轮": "lún", "伦": "lún", "仑": "lún", "沦": "lún", "纶": "lún", "论": "lùn", "萝": "luó", "螺": "luó", "罗": "luó", "逻": "luó", "锣": "luó", "箩": "luó", "骡": "luó", "裸": "luǒ", "落": "luò", "洛": "luò", "骆": "luò", "络": "luò", "妈": "mā", "麻": "má", "玛": "mǎ", "码": "mǎ", "蚂": "mǎ", "马": "mǎ", "骂": "mà", "嘛": "ma", "吗": "ma", "埋": "mái", "买": "mǎi", "麦": "mài", "卖": "mài", "迈": "mài", "脉": "mài", "瞒": "mán", "馒": "mán", "蛮": "mán", "满": "mǎn", "蔓": "màn", "曼": "màn", "慢": "màn", "漫": "màn", "谩": "màn", "芒": "máng", "茫": "máng", "盲": "máng", "氓": "máng", "忙": "máng", "莽": "mǎng", "猫": "māo", "茅": "máo", "锚": "máo", "毛": "máo", "矛": "máo", "铆": "mǎo", "卯": "mǎo", "茂": "mào", "冒": "mào", "帽": "mào", "貌": "mào", "贸": "mào", "么": "me", "玫": "méi", "枚": "méi", "梅": "méi", "酶": "méi", "霉": "méi", "煤": "méi", "没": "méi", "眉": "méi", "媒": "méi", "镁": "měi", "每": "měi", "美": "měi", "昧": "mèi", "寐": "mèi", "妹": "mèi", "媚": "mèi", "门": "mén", "闷": "mèn", "们": "mén", "萌": "méng", "蒙": "méng", "檬": "méng", "盟": "méng", "锰": "měng", "猛": "měng", "梦": "mèng", "孟": "mèng", "眯": "mī", "醚": "mí", "靡": "mí", "糜": "mí", "迷": "mí", "谜": "mí", "弥": "mí", "米": "mǐ", "秘": "mì", "觅": "mì", "泌": "mì", "蜜": "mì", "密": "mì", "幂": "mì", "棉": "mián", "眠": "mián", "绵": "mián", "冕": "miǎn", "免": "miǎn", "勉": "miǎn", "娩": "miǎn", "缅": "miǎn", "面": "miàn", "苗": "miáo", "描": "miáo", "瞄": "miáo", "藐": "miǎo", "秒": "miǎo", "渺": "miǎo", "庙": "miào", "妙": "miào", "蔑": "miè", "灭": "miè", "民": "mín", "抿": "mǐn", "皿": "mǐn", "敏": "mǐn", "悯": "mǐn", "闽": "mǐn", "明": "míng", "螟": "míng", "鸣": "míng", "铭": "míng", "名": "míng", "命": "mìng", "谬": "miù", "摸": "mō", "摹": "mó", "蘑": "mó", "模": "mó", "膜": "mó", "磨": "mó", "摩": "mó", "魔": "mó", "抹": "mò", "末": "mò", "莫": "mò", "墨": "mò", "默": "mò", "沫": "mò", "漠": "mò", "寞": "mò", "陌": "mò", "谋": "móu", "牟": "móu", "某": "mǒu", "拇": "mǔ", "牡": "mǔ", "亩": "mǔ", "姆": "mǔ", "母": "mǔ", "墓": "mù", "暮": "mù", "幕": "mù", "募": "mù", "慕": "mù", "木": "mù", "目": "mù", "睦": "mù", "牧": "mù", "穆": "mù", "拿": "ná", "哪": "nǎ", "呐": "nà", "钠": "nà", "那": "nà", "娜": "nà", "纳": "nà", "氖": "nǎi", "乃": "nǎi", "奶": "nǎi", "耐": "nai", "奈": "nai", "南": "nán", "男": "nán", "难": "nán", "囊": "náng", "挠": "náo", "脑": "nǎo", "恼": "nǎo", "闹": "nào", "淖": "nào", "呢": "ne", "馁": "něi", "内": "nèi", "嫩": "nèn", "能": "néng", "妮": "nī", "霓": "ní", "倪": "ní", "泥": "ní", "尼": "ní", "拟": "nǐ", "你": "nǐ", "匿": "nì", "腻": "nì", "逆": "nì", "溺": "nì", "蔫": "niān", "拈": "niān", "年": "nián", "碾": "niǎn", "撵": "niǎn", "捻": "niǎn", "念": "niàn", "娘": "niáng", "酿": "niàng", "鸟": "niǎo", "尿": "niào", "捏": "niē", "聂": "niè", "孽": "niè", "啮": "niè", "镊": "niè", "镍": "niè", "涅": "niè", "您": "nín", "柠": "níng", "狞": "níng", "凝": "níng", "宁": "níng", "拧": "nǐng", "泞": "nìng", "牛": "niú", "扭": "niǔ", "钮": "niǔ", "纽": "niǔ", "脓": "nóng", "浓": "nóng", "农": "nóng", "弄": "nòng", "奴": "nú", "努": "nǔ", "怒": "nù", "女": "nǚ", "暖": "nuǎn", "虐": "nüè", "疟": "nüè", "挪": "nuó", "懦": "nuò", "糯": "nuò", "诺": "nuò", "哦": "ò", "欧": "ōu", "鸥": "ōu", "殴": "ōu", "藕": "ǒu", "呕": "ǒu", "偶": "ǒu", "沤": "ōu", "啪": "pā", "趴": "pā", "爬": "pá", "帕": "pà", "怕": "pà", "琶": "pá", "拍": "pāi", "排": "pái", "牌": "pái", "徘": "pái", "湃": "pai", "派": "pai", "攀": "pān", "潘": "pān", "盘": "pán", "磐": "pán", "盼": "pàn", "畔": "pàn", "判": "pàn", "叛": "pàn", "乓": "pāng", "庞": "páng", "旁": "páng", "耪": "pǎng", "胖": "pàng", "抛": "pāo", "咆": "páo", "刨": "páo", "炮": "pào", "袍": "páo", "跑": "pǎo", "泡": "pào", "呸": "pēi", "胚": "pēi", "培": "péi", "裴": "péi", "赔": "péi", "陪": "péi", "配": "pèi", "佩": "pèi", "沛": "pèi", "喷": "pēn", "盆": "pén", "砰": "pēng", "抨": "pēng", "烹": "pēng", "澎": "péng", "彭": "péng", "蓬": "péng", "棚": "péng", "硼": "péng", "篷": "péng", "膨": "péng", "朋": "péng", "鹏": "péng", "捧": "pěng", "碰": "pèng", "坯": "pī", "砒": "pī", "霹": "pī", "批": "pī", "披": "pī", "劈": "pī", "琵": "pí", "毗": "pí", "啤": "pí", "脾": "pí", "疲": "pí", "皮": "pí", "匹": "pǐ", "痞": "pǐ", "僻": "pì", "屁": "pì", "譬": "pì", "篇": "piān", "偏": "piān", "片": "piàn", "骗": "piàn", "飘": "piāo", "漂": "piāo", "瓢": "piáo", "票": "piào", "撇": "piě", "瞥": "piē", "拼": "pīn", "频": "pín", "贫": "pín", "品": "pǐn", "聘": "pìn", "乒": "pīng", "坪": "píng", "苹": "píng", "萍": "píng", "平": "píng", "凭": "píng", "瓶": "píng", "评": "píng", "屏": "píng", "坡": "pō", "泼": "pō", "颇": "pō", "婆": "pó", "破": "pò", "魄": "pò", "迫": "pò", "粕": "pò", "剖": "pōu", "扑": "pū", "铺": "pù", "仆": "pú", "莆": "pú", "葡": "pú", "菩": "pú", "蒲": "pú", "埔": "pǔ", "朴": "pǔ", "圃": "pǔ", "普": "pǔ", "浦": "pǔ", "谱": "pǔ", "曝": "pù", "瀑": "bào", "期": "qī", "欺": "qī", "栖": "qī", "戚": "qī", "妻": "qī", "七": "qī", "凄": "qī", "漆": "qī", "柒": "qī", "沏": "qī", "其": "qí", "棋": "qí", "奇": "qí", "歧": "qí", "畦": "qí", "崎": "qí", "脐": "qí", "齐": "qí", "旗": "qí", "祈": "qí", "祁": "qí", "骑": "qí", "起": "qǐ", "岂": "qǐ", "乞": "qǐ", "企": "qǐ", "启": "qǐ", "契": "qì", "砌": "qì", "器": "qì", "气": "qì", "迄": "qì", "弃": "qì", "汽": "qì", "泣": "qì", "讫": "qì", "掐": "qiā", "恰": "qià", "洽": "qià", "牵": "qiān", "扦": "qiān", "钎": "qiān", "铅": "qiān", "千": "qiān", "迁": "qiān", "签": "qiān", "仟": "qiān", "谦": "qiān", "乾": "qián", "黔": "qián", "钱": "qián", "钳": "qián", "前": "qián", "潜": "qián", "遣": "qiǎn", "浅": "qiǎn", "谴": "qiǎn", "堑": "qiàn", "嵌": "qiàn", "欠": "qiàn", "歉": "qiàn", "枪": "qiāng", "呛": "qiàng", "腔": "qiāng", "羌": "qiāng", "墙": "qiáng", "蔷": "qiáng", "强": "qiáng", "抢": "qiǎng", "橇": "qiāo", "锹": "qiāo", "敲": "qiāo", "悄": "qiāo", "桥": "qiáo", "瞧": "qiáo", "乔": "qiáo", "侨": "qiáo", "巧": "qiǎo", "鞘": "qiào", "撬": "qiào", "翘": "qiào", "峭": "qiào", "俏": "qiào", "窍": "qiào", "切": "qiē", "茄": "qié", "且": "qiě", "怯": "qiè", "窃": "qiè", "钦": "qīn", "侵": "qīn", "亲": "qīn", "秦": "qín", "琴": "qín", "勤": "qín", "芹": "qín", "擒": "qín", "禽": "qín", "寝": "qǐn", "沁": "qìn", "青": "qīng", "轻": "qīng", "氢": "qīng", "倾": "qīng", "卿": "qīng", "清": "qīng", "擎": "qíng", "晴": "qíng", "氰": "qíng", "情": "qíng", "顷": "qǐng", "请": "qǐng", "庆": "qìng", "琼": "qióng", "穷": "qióng", "秋": "qiū", "丘": "qiū", "邱": "qiū", "球": "qiú", "求": "qiú", "囚": "qiú", "酋": "qiú", "泅": "qiú", "趋": "qū", "区": "qū", "蛆": "qū", "曲": "qǔ", "躯": "qū", "屈": "qū", "驱": "qū", "渠": "qú", "取": "qǔ", "娶": "qǔ", "龋": "qǔ", "趣": "qù", "去": "qù", "圈": "quān", "颧": "quán", "权": "quán", "醛": "quán", "泉": "quán", "全": "quán", "痊": "quán", "拳": "quán", "犬": "quǎn", "券": "quàn", "劝": "quàn", "缺": "quē", "炔": "quē", "瘸": "qué", "却": "què", "鹊": "què", "榷": "què", "确": "què", "雀": "què", "裙": "qún", "群": "qún", "然": "rán", "燃": "rán", "冉": "rǎn", "染": "rǎn", "瓤": "ráng", "壤": "rǎng", "攘": "rǎng", "嚷": "rǎng", "让": "ràng", "饶": "ráo", "扰": "rǎo", "绕": "rào", "惹": "rě", "热": "rè", "壬": "rén", "仁": "rén", "人": "rén", "忍": "rěn", "韧": "rèn", "任": "rèn", "认": "rèn", "刃": "rèn", "妊": "rèn", "纫": "rèn", "扔": "rēng", "仍": "réng", "日": "rì", "戎": "róng", "茸": "róng", "蓉": "róng", "荣": "róng", "融": "róng", "熔": "róng", "溶": "róng", "容": "róng", "绒": "róng", "冗": "rǒng", "揉": "róu", "柔": "róu", "肉": "ròu", "茹": "rú", "蠕": "rú", "儒": "rú", "孺": "rú", "如": "rú", "辱": "rǔ", "乳": "rǔ", "汝": "rǔ", "入": "rù", "褥": "rù", "软": "ruǎn", "阮": "ruǎn", "蕊": "ruǐ", "瑞": "ruì", "锐": "ruì", "闰": "rùn", "润": "rùn", "若": "ruò", "弱": "ruò", "撒": "sā", "洒": "sǎ", "萨": "sà", "腮": "sāi", "鳃": "sāi", "塞": "sāi", "赛": "sài", "三": "sān", "叁": "sān", "伞": "sǎn", "散": "sàn", "桑": "sāng", "嗓": "sǎng", "丧": "sàng", "搔": "sāo", "骚": "sāo", "扫": "sǎo", "嫂": "sǎo", "瑟": "sè", "色": "sè", "涩": "sè", "森": "sēn", "僧": "sēng", "莎": "shā", "砂": "shā", "杀": "shā", "刹": "shā", "沙": "shā", "纱": "shā", "傻": "shǎ", "啥": "shá", "煞": "shà", "筛": "shāi", "晒": "shai", "珊": "shān", "苫": "shān", "杉": "shān", "山": "shān", "删": "shān", "煽": "shān", "衫": "shān", "闪": "shǎn", "陕": "shǎn", "擅": "shàn", "赡": "shàn", "膳": "shàn", "善": "shàn", "汕": "shàn", "扇": "shàn", "缮": "shàn", "墒": "shāng", "伤": "shāng", "商": "shāng", "赏": "shǎng", "晌": "shǎng", "上": "shàng", "尚": "shàng", "裳": "shang", "梢": "shāo", "捎": "shāo", "稍": "shāo", "烧": "shāo", "芍": "sháo", "勺": "sháo", "韶": "sháo", "少": "shǎo", "哨": "shào", "邵": "shào", "绍": "shào", "奢": "shē", "赊": "shē", "蛇": "shé", "舌": "shé", "舍": "shě", "赦": "shè", "摄": "shè", "射": "shè", "慑": "shè", "涉": "shè", "社": "shè", "设": "shè", "砷": "shēn", "申": "shēn", "呻": "shēn", "伸": "shēn", "身": "shēn", "深": "shēn", "娠": "shēn", "绅": "shēn", "神": "shén", "沈": "shěn", "审": "shěn", "婶": "shěn", "甚": "shèn", "肾": "shèn", "慎": "shèn", "渗": "shèn", "声": "shēng", "生": "shēng", "甥": "shēng", "牲": "shēng", "升": "shēng", "绳": "shéng", "省": "shěng", "盛": "shèng", "剩": "shèng", "胜": "shèng", "圣": "shèng", "师": "shī", "失": "shī", "狮": "shī", "施": "shī", "湿": "shī", "诗": "shī", "尸": "shī", "虱": "shī", "十": "shí", "石": "shí", "拾": "shí", "时": "shí", "什": "shí", "食": "shí", "蚀": "shí", "实": "shí", "识": "shí", "史": "shǐ", "矢": "shǐ", "使": "shǐ", "屎": "shǐ", "驶": "shǐ", "始": "shǐ", "式": "shì", "示": "shì", "士": "shì", "世": "shì", "柿": "shì", "事": "shì", "拭": "shì", "誓": "shì", "逝": "shì", "势": "shì", "是": "shì", "嗜": "shì", "噬": "shì", "适": "shì", "仕": "shì", "侍": "shì", "释": "shì", "饰": "shì", "氏": "shì", "市": "shì", "恃": "shì", "室": "shì", "视": "shì", "试": "shì", "收": "shōu", "手": "shǒu", "首": "shǒu", "守": "shǒu", "寿": "shòu", "授": "shòu", "售": "shòu", "受": "shòu", "瘦": "shòu", "兽": "shòu", "蔬": "shū", "枢": "shū", "梳": "shū", "殊": "shū", "抒": "shū", "输": "shū", "叔": "shū", "舒": "shū", "淑": "shū", "疏": "shū", "书": "shū", "赎": "shú", "孰": "shú", "熟": "shú", "薯": "shǔ", "暑": "shǔ", "曙": "shǔ", "署": "shǔ", "蜀": "shǔ", "黍": "shǔ", "鼠": "shǔ", "属": "shǔ", "术": "shù", "述": "shù", "树": "shù", "束": "shù", "戍": "shù", "竖": "shù", "墅": "shù", "庶": "shù", "数": "shù", "漱": "shù", "恕": "shù", "刷": "shuā", "耍": "shuǎ", "摔": "shuāi", "衰": "shuāi", "甩": "shuǎi", "帅": "shuài", "栓": "shuān", "拴": "shuān", "霜": "shuāng", "双": "shuāng", "爽": "shuǎng", "谁": "shuí", "水": "shuǐ", "睡": "shuì", "税": "shuì", "吮": "shǔn", "瞬": "shùn", "顺": "shùn", "舜": "shùn", "说": "shuō", "硕": "shuò", "朔": "shuò", "烁": "shuò", "斯": "sī", "撕": "sī", "嘶": "sī", "思": "sī", "私": "sī", "司": "sī", "丝": "sī", "死": "sǐ", "肆": "sì", "寺": "sì", "嗣": "sì", "四": "sì", "伺": "sì", "似": "sì", "饲": "sì", "巳": "sì", "松": "sōng", "耸": "sǒng", "怂": "sǒng", "颂": "sòng", "送": "sòng", "宋": "sòng", "讼": "sòng", "诵": "sòng", "搜": "sōu", "艘": "sōu", "擞": "sǒu", "嗽": "sòu", "苏": "sū", "酥": "sū", "俗": "sú", "素": "sù", "速": "sù", "粟": "sù", "僳": "sù", "塑": "sù", "溯": "sù", "宿": "xiǔ", "诉": "sù", "肃": "sù", "酸": "suān", "蒜": "suàn", "算": "suàn", "虽": "suī", "隋": "suí", "随": "suí", "绥": "suí", "髓": "suǐ", "碎": "suì", "岁": "suì", "穗": "suì", "遂": "suí", "隧": "suì", "祟": "suì", "孙": "sūn", "损": "sǔn", "笋": "sǔn", "蓑": "suō", "梭": "suō", "唆": "suō", "缩": "suō", "琐": "suǒ", "索": "suǒ", "锁": "suǒ", "所": "suǒ", "塌": "tā", "他": "tā", "它": "tā", "她": "tā", "塔": "tǎ", "獭": "tǎ", "挞": "tà", "蹋": "tà", "踏": "tà", "胎": "tāi", "苔": "tái", "抬": "tái", "台": "tái", "泰": "tai", "酞": "tai", "太": "tai", "态": "tai", "汰": "tai", "坍": "tān", "摊": "tān", "贪": "tān", "瘫": "tān", "滩": "tān", "坛": "tán", "檀": "tán", "痰": "tán", "潭": "tán", "谭": "tán", "谈": "tán", "坦": "tǎn", "毯": "tǎn", "袒": "tǎn", "碳": "tàn", "探": "tàn", "叹": "tàn", "炭": "tàn", "汤": "tāng", "塘": "táng", "搪": "táng", "堂": "táng", "棠": "táng", "膛": "táng", "唐": "táng", "糖": "táng", "倘": "tǎng", "躺": "tǎng", "淌": "tǎng", "趟": "tàng", "烫": "tàng", "掏": "tāo", "涛": "tāo", "滔": "tāo", "绦": "tāo", "萄": "táo", "桃": "táo", "逃": "táo", "淘": "táo", "陶": "táo", "讨": "tǎo", "套": "tào", "特": "tè", "藤": "téng", "腾": "téng", "疼": "téng", "誊": "téng", "梯": "tī", "剔": "tī", "踢": "tī", "锑": "tī", "提": "tí", "题": "tí", "蹄": "tí", "啼": "tí", "体": "tǐ", "替": "tì", "嚏": "tì", "惕": "tì", "涕": "tì", "剃": "tì", "屉": "tì", "天": "tiān", "添": "tiān", "填": "tián", "田": "tián", "甜": "tián", "恬": "tián", "舔": "tiǎn", "腆": "tiǎn", "挑": "tiāo", "条": "tiáo", "迢": "tiáo", "眺": "tiào", "跳": "tiào", "贴": "tiē", "铁": "tiě", "帖": "tiē", "厅": "tīng", "听": "tīng", "烃": "tīng", "汀": "tīng", "廷": "tíng", "停": "tíng", "亭": "tíng", "庭": "tíng", "挺": "tǐng", "艇": "tǐng", "通": "tōng", "桐": "tóng", "酮": "tóng", "瞳": "tóng", "同": "tóng", "铜": "tóng", "彤": "tóng", "童": "tóng", "桶": "tǒng", "捅": "tǒng", "筒": "tǒng", "统": "tǒng", "痛": "tòng", "偷": "tōu", "投": "tóu", "头": "tóu", "透": "tòu", "凸": "tū", "秃": "tū", "突": "tū", "图": "tú", "徒": "tú", "途": "tú", "涂": "tú", "屠": "tú", "土": "tǔ", "吐": "tǔ", "兔": "tù", "湍": "tuān", "团": "tuán", "推": "tuī", "颓": "tuí", "腿": "tuǐ", "蜕": "tuì", "褪": "tuì", "退": "tuì", "吞": "tūn", "屯": "tún", "臀": "tún", "拖": "tuō", "托": "tuō", "脱": "tuō", "鸵": "tuó", "陀": "tuó", "驮": "tuó", "驼": "tuó", "椭": "tuǒ", "妥": "tuǒ", "拓": "tuò", "唾": "tuò", "挖": "wā", "哇": "wa", "蛙": "wā", "洼": "wā", "娃": "wá", "瓦": "wǎ", "袜": "wà", "歪": "wāi", "外": "wai", "豌": "wān", "弯": "wān", "湾": "wān", "玩": "wán", "顽": "wán", "丸": "wán", "烷": "wán", "完": "wán", "碗": "wǎn", "挽": "wǎn", "晚": "wǎn", "皖": "wǎn", "惋": "wǎn", "宛": "wǎn", "婉": "wǎn", "万": "wàn", "腕": "wàn", "汪": "wāng", "王": "wáng", "亡": "wáng", "枉": "wǎng", "网": "wǎng", "往": "wǎng", "旺": "wàng", "望": "wàng", "忘": "wàng", "妄": "wàng", "威": "wēi", "巍": "wēi", "微": "wēi", "危": "wēi", "韦": "wéi", "违": "wéi", "桅": "wéi", "围": "wéi", "唯": "wéi", "惟": "wéi", "为": "wéi", "潍": "wéi", "维": "wéi", "苇": "wěi", "萎": "wěi", "委": "wěi", "伟": "wěi", "伪": "wěi", "尾": "wěi", "纬": "wěi", "未": "wèi", "蔚": "wèi", "味": "wèi", "畏": "wèi", "胃": "wèi", "喂": "wèi", "魏": "wèi", "位": "wèi", "渭": "wèi", "谓": "wèi", "尉": "wèi", "慰": "wèi", "卫": "wèi", "瘟": "wēn", "温": "wēn", "蚊": "wén", "文": "wén", "闻": "wén", "纹": "wén", "吻": "wěn", "稳": "wěn", "紊": "wěn", "问": "wèn", "嗡": "wēng", "翁": "wēng", "瓮": "wèng", "挝": "wō", "蜗": "wō", "涡": "wō", "窝": "wō", "我": "wǒ", "斡": "wò", "卧": "wò", "握": "wò", "沃": "wò", "巫": "wū", "呜": "wū", "钨": "wū", "乌": "wū", "污": "wū", "诬": "wū", "屋": "wū", "无": "wú", "芜": "wú", "梧": "wú", "吾": "wú", "吴": "wú", "毋": "wú", "武": "wǔ", "五": "wǔ", "捂": "wǔ", "午": "wǔ", "舞": "wǔ", "伍": "wǔ", "侮": "wǔ", "坞": "wù", "戊": "wù", "雾": "wù", "晤": "wù", "物": "wù", "勿": "wù", "务": "wù", "悟": "wù", "误": "wù", "昔": "xī", "熙": "xī", "析": "xī", "西": "xī", "硒": "xī", "矽": "xī", "晰": "xī", "嘻": "xī", "吸": "xī", "锡": "xī", "牺": "xī", "稀": "xī", "息": "xī", "希": "xī", "悉": "xī", "膝": "xī", "夕": "xī", "惜": "xī", "熄": "xī", "烯": "xī", "溪": "xī", "汐": "xī", "犀": "xī", "檄": "xí", "袭": "xí", "席": "xí", "习": "xí", "媳": "xí", "喜": "xǐ", "铣": "xǐ", "洗": "xǐ", "系": "xì", "隙": "xì", "戏": "xì", "细": "xì", "瞎": "xiā", "虾": "xiā", "匣": "xiá", "霞": "xiá", "辖": "xiá", "暇": "xiá", "峡": "xiá", "侠": "xiá", "狭": "xiá", "下": "xià", "厦": "shà", "夏": "xià", "吓": "xià", "掀": "xiān", "锨": "xiān", "先": "xiān", "仙": "xiān", "鲜": "xiān", "纤": "xiān", "咸": "xián", "贤": "xián", "衔": "xián", "舷": "xián", "闲": "xián", "涎": "xián", "弦": "xián", "嫌": "xián", "显": "xiǎn", "险": "xiǎn", "现": "xiàn", "献": "xiàn", "县": "xiàn", "腺": "xiàn", "馅": "xiàn", "羡": "xiàn", "宪": "xiàn", "陷": "xiàn", "限": "xiàn", "线": "xiàn", "相": "xiāng", "厢": "xiāng", "镶": "xiāng", "香": "xiāng", "箱": "xiāng", "襄": "xiāng", "湘": "xiāng", "乡": "xiāng", "翔": "xiáng", "祥": "xiáng", "详": "xiáng", "想": "xiǎng", "响": "xiǎng", "享": "xiǎng", "项": "xiàng", "巷": "xiàng", "橡": "xiàng", "像": "xiàng", "向": "xiàng", "象": "xiàng", "萧": "xiāo", "硝": "xiāo", "霄": "xiāo", "削": "xuē", "哮": "xiāo", "嚣": "xiāo", "销": "xiāo", "消": "xiāo", "宵": "xiāo", "淆": "xiáo", "晓": "xiǎo", "小": "xiǎo", "孝": "xiào", "校": "xiào", "肖": "xiāo", "啸": "xiào", "笑": "xiào", "效": "xiào", "楔": "xiē", "些": "xiē", "歇": "xiē", "蝎": "xiē", "鞋": "xié", "协": "xié", "挟": "xiā", "携": "xié", "邪": "xié", "斜": "xié", "胁": "xié", "谐": "xié", "写": "xiě", "械": "xiè", "卸": "xiè", "蟹": "xiè", "懈": "xiè", "泄": "xiè", "泻": "xiè", "谢": "xiè", "屑": "xiè", "薪": "xīn", "芯": "xīn", "锌": "xīn", "欣": "xīn", "辛": "xīn", "新": "xīn", "忻": "xīn", "心": "xīn", "信": "xìn", "衅": "xìn", "星": "xīng", "腥": "xīng", "猩": "xīng", "惺": "xīng", "兴": "xīng", "刑": "xíng", "型": "xíng", "形": "xíng", "邢": "xíng", "行": "xíng", "醒": "xǐng", "幸": "xìng", "杏": "xìng", "性": "xìng", "姓": "xìng", "兄": "xiōng", "凶": "xiōng", "胸": "xiōng", "匈": "xiōng", "汹": "xiōng", "雄": "xióng", "熊": "xióng", "休": "xiū", "修": "xiū", "羞": "xiū", "朽": "xiǔ", "嗅": "xiù", "锈": "xiù", "秀": "xiù", "袖": "xiù", "绣": "xiù", "墟": "xū", "戌": "xū", "需": "xū", "虚": "xū", "嘘": "xū", "须": "xū", "徐": "xú", "许": "xǔ", "蓄": "xù", "酗": "xù", "叙": "xù", "旭": "xù", "序": "xù", "畜": "chù", "恤": "xù", "絮": "xù", "婿": "xù", "绪": "xù", "续": "xù", "轩": "xuān", "喧": "xuān", "宣": "xuān", "悬": "xuán", "旋": "xuán", "玄": "xuán", "选": "xuǎn", "癣": "xuǎn", "眩": "xuàn", "绚": "xuàn", "靴": "xuē", "薛": "xuē", "学": "xué", "穴": "xué", "雪": "xuě", "血": "xuè", "勋": "xūn", "熏": "xūn", "循": "xún", "旬": "xún", "询": "xún", "寻": "xún", "驯": "xùn", "巡": "xún", "殉": "xùn", "汛": "xùn", "训": "xùn", "讯": "xùn", "逊": "xùn", "迅": "xùn", "压": "yā", "押": "yā", "鸦": "yā", "鸭": "yā", "呀": "ya", "丫": "yā", "芽": "yá", "牙": "yá", "蚜": "yá", "崖": "yá", "衙": "yá", "涯": "yá", "雅": "yǎ", "哑": "yǎ", "亚": "yà", "讶": "yà", "焉": "yān", "咽": "yān", "阉": "yān", "烟": "yān", "淹": "yān", "盐": "yán", "严": "yán", "研": "yán", "蜒": "yán", "岩": "yán", "延": "yán", "言": "yán", "颜": "yán", "阎": "yán", "炎": "yán", "沿": "yán", "奄": "yǎn", "掩": "yǎn", "眼": "yǎn", "衍": "yǎn", "演": "yǎn", "艳": "yàn", "堰": "yàn", "燕": "yàn", "厌": "yàn", "砚": "yàn", "雁": "yàn", "唁": "yàn", "彦": "yàn", "焰": "yàn", "宴": "yàn", "谚": "yàn", "验": "yàn", "殃": "yāng", "央": "yāng", "鸯": "yāng", "秧": "yāng", "杨": "yáng", "扬": "yáng", "佯": "yáng", "疡": "yáng", "羊": "yáng", "洋": "yáng", "阳": "yáng", "氧": "yǎng", "仰": "yǎng", "痒": "yǎng", "养": "yǎng", "样": "yàng", "漾": "yàng", "邀": "yāo", "腰": "yāo", "妖": "yāo", "瑶": "yáo", "摇": "yáo", "尧": "yáo", "遥": "yáo", "窑": "yáo", "谣": "yáo", "姚": "yáo", "咬": "yǎo", "舀": "yǎo", "药": "yào", "要": "yào", "耀": "yào", "椰": "yē", "噎": "yē", "耶": "yē", "爷": "yé", "野": "yě", "冶": "yě", "也": "yě", "页": "yè", "掖": "yè", "业": "yè", "叶": "yè", "曳": "yè", "腋": "yè", "夜": "yè", "液": "yè", "一": "yī", "壹": "yī", "医": "yī", "揖": "yī", "铱": "yī", "依": "yī", "伊": "yī", "衣": "yī", "颐": "yí", "夷": "yí", "遗": "yí", "移": "yí", "仪": "yí", "胰": "yí", "疑": "yí", "沂": "yí", "宜": "yí", "姨": "yí", "彝": "yí", "椅": "yǐ", "蚁": "yǐ", "倚": "yǐ", "已": "yǐ", "乙": "yǐ", "矣": "yǐ", "以": "yǐ", "艺": "yì", "抑": "yì", "易": "yì", "邑": "yì", "屹": "yì", "亿": "yì", "役": "yì", "臆": "yì", "逸": "yì", "肄": "yì", "疫": "yì", "亦": "yì", "裔": "yì", "意": "yì", "毅": "yì", "忆": "yì", "义": "yì", "益": "yì", "溢": "yì", "诣": "yì", "议": "yì", "谊": "yì", "译": "yì", "异": "yì", "翼": "yì", "翌": "yì", "绎": "yì", "茵": "yīn", "荫": "yīn", "因": "yīn", "殷": "yīn", "音": "yīn", "阴": "yīn", "姻": "yīn", "吟": "yín", "银": "yín", "淫": "yín", "寅": "yín", "饮": "yǐn", "尹": "yǐn", "引": "yǐn", "隐": "yǐn", "印": "yìn", "英": "yīng", "樱": "yīng", "婴": "yīng", "鹰": "yīng", "应": "yīng", "缨": "yīng", "莹": "yíng", "萤": "yíng", "营": "yíng", "荧": "yíng", "蝇": "yíng", "迎": "yíng", "赢": "yíng", "盈": "yíng", "影": "yǐng", "颖": "yǐng", "硬": "yìng", "映": "yìng", "哟": "yō", "拥": "yōng", "佣": "yòng", "臃": "yōng", "痈": "yōng", "庸": "yōng", "雍": "yōng", "踊": "yǒng", "蛹": "yǒng", "咏": "yǒng", "泳": "yǒng", "涌": "yǒng", "永": "yǒng", "恿": "yǒng", "勇": "yǒng", "用": "yòng", "幽": "yōu", "优": "yōu", "悠": "yōu", "忧": "yōu", "尤": "yóu", "由": "yóu", "邮": "yóu", "铀": "yóu", "犹": "yóu", "油": "yóu", "游": "yóu", "酉": "yǒu", "有": "yǒu", "友": "yǒu", "右": "yòu", "佑": "yòu", "釉": "yòu", "诱": "yòu", "又": "yòu", "幼": "yòu", "迂": "yū", "淤": "yū", "于": "yú", "盂": "yú", "榆": "yú", "虞": "yú", "愚": "yú", "舆": "yú", "余": "yú", "俞": "yú", "逾": "yú", "鱼": "yú", "愉": "yú", "渝": "yú", "渔": "yú", "隅": "yú", "予": "yǔ", "娱": "yú", "雨": "yǔ", "与": "yǔ", "屿": "yǔ", "禹": "yǔ", "宇": "yǔ", "语": "yǔ", "羽": "yǔ", "玉": "yù", "域": "yù", "芋": "yù", "郁": "yù", "吁": "yù", "遇": "yù", "喻": "yù", "峪": "yù", "御": "yù", "愈": "yù", "欲": "yù", "狱": "yù", "育": "yù", "誉": "yù", "浴": "yù", "寓": "yù", "裕": "yù", "预": "yù", "豫": "yù", "驭": "yù", "鸳": "yuān", "渊": "yuān", "冤": "yuān", "元": "yuán", "垣": "yuán", "袁": "yuán", "原": "yuán", "援": "yuán", "辕": "yuán", "园": "yuán", "员": "yuán", "圆": "yuán", "猿": "yuán", "源": "yuán", "缘": "yuán", "远": "yuǎn", "苑": "yuàn", "愿": "yuàn", "怨": "yuàn", "院": "yuàn", "曰": "yuē", "约": "yuē", "越": "yuè", "跃": "yuè", "钥": "yào", "岳": "yuè", "粤": "yuè", "月": "yuè", "悦": "yuè", "阅": "yuè", "耘": "yún", "云": "yún", "郧": "yún", "匀": "yún", "陨": "yǔn", "允": "yǔn", "运": "yùn", "蕴": "yùn", "酝": "yùn", "晕": "yūn", "韵": "yùn", "孕": "yùn", "匝": "zā", "砸": "zá", "杂": "zá", "栽": "zāi", "哉": "zāi", "灾": "zāi", "宰": "zǎi", "载": "zǎi", "再": "zài", "在": "zài", "咱": "zán", "攒": "zǎn", "暂": "zàn", "赞": "zàn", "赃": "zāng", "脏": "zāng", "葬": "zàng", "遭": "zāo", "糟": "zāo", "凿": "záo", "藻": "zǎo", "枣": "zǎo", "早": "zǎo", "澡": "zǎo", "蚤": "zǎo", "躁": "zào", "噪": "zào", "造": "zào", "皂": "zào", "灶": "zào", "燥": "zào", "责": "zé", "择": "zé", "则": "zé", "泽": "zé", "贼": "zéi", "怎": "zěn", "增": "zēng", "憎": "zēng", "曾": "céng", "赠": "zèng", "扎": "zhā", "喳": "zhā", "渣": "zhā", "札": "zhá", "轧": "zhá", "铡": "zhá", "闸": "zhá", "眨": "zhǎ", "栅": "shān", "榨": "zhà", "咋": "zǎ", "乍": "zhà", "炸": "zhà", "诈": "zhà", "摘": "zhāi", "斋": "zhāi", "宅": "zhái", "窄": "zhǎi", "债": "zhai", "寨": "zhai", "瞻": "zhān", "毡": "zhān", "詹": "zhān", "粘": "zhān", "沾": "zhān", "盏": "zhǎn", "斩": "zhǎn", "辗": "niǎn", "崭": "zhǎn", "展": "zhǎn", "蘸": "zhàn", "栈": "zhàn", "占": "zhàn", "战": "zhàn", "站": "zhàn", "湛": "zhàn", "绽": "zhàn", "樟": "zhāng", "章": "zhāng", "彰": "zhāng", "漳": "zhāng", "张": "zhāng", "掌": "zhǎng", "涨": "zhǎng", "杖": "zhàng", "丈": "zhàng", "帐": "zhàng", "账": "zhàng", "仗": "zhàng", "胀": "zhàng", "瘴": "zhàng", "障": "zhàng", "招": "zhāo", "昭": "zhāo", "找": "zhǎo", "沼": "zhǎo", "赵": "zhào", "照": "zhào", "罩": "zhào", "兆": "zhào", "肇": "zhào", "召": "zhào", "遮": "zhē", "折": "shé", "哲": "zhé", "蛰": "zhé", "辙": "zhé", "者": "zhě", "锗": "zhě", "蔗": "zhè", "这": "zhè", "浙": "zhè", "珍": "zhēn", "斟": "zhēn", "真": "zhēn", "甄": "zhēn", "砧": "zhēn", "臻": "zhēn", "贞": "zhēn", "针": "zhēn", "侦": "zhēn", "枕": "zhěn", "疹": "zhěn", "诊": "zhěn", "震": "zhèn", "振": "zhèn", "镇": "zhèn", "阵": "zhèn", "蒸": "zhēng", "挣": "zhèng", "睁": "zhēng", "征": "zhēng", "狰": "zhēng", "争": "zhēng", "怔": "zhēng", "整": "zhěng", "拯": "zhěng", "正": "zhèng", "政": "zhèng", "帧": "zhēn", "症": "zhèng", "郑": "zhèng", "证": "zhèng", "芝": "zhī", "枝": "zhī", "支": "zhī", "吱": "zī", "蜘": "zhī", "知": "zhī", "肢": "zhī", "脂": "zhī", "汁": "zhī", "之": "zhī", "织": "zhī", "职": "zhí", "直": "zhí", "植": "zhí", "殖": "zhí", "执": "zhí", "值": "zhí", "侄": "zhí", "址": "zhǐ", "指": "zhǐ", "止": "zhǐ", "趾": "zhǐ", "只": "zhī", "旨": "zhǐ", "纸": "zhǐ", "志": "zhì", "挚": "zhì", "掷": "zhì", "至": "zhì", "致": "zhì", "置": "zhì", "帜": "zhì", "峙": "zhì", "制": "zhì", "智": "zhì", "秩": "zhì", "稚": "zhì", "质": "zhì", "炙": "zhì", "痔": "zhì", "滞": "zhì", "治": "zhì", "窒": "zhì", "中": "zhōng", "盅": "zhōng", "忠": "zhōng", "钟": "zhōng", "衷": "zhōng", "终": "zhōng", "种": "zhǒng", "肿": "zhǒng", "重": "zhòng", "仲": "zhòng", "众": "zhòng", "舟": "zhōu", "周": "zhōu", "州": "zhōu", "洲": "zhōu", "诌": "zhōu", "粥": "zhōu", "轴": "zhóu", "肘": "zhǒu", "帚": "zhǒu", "咒": "zhòu", "皱": "zhòu", "宙": "zhòu", "昼": "zhòu", "骤": "zhòu", "珠": "zhū", "株": "zhū", "蛛": "zhū", "朱": "zhū", "猪": "zhū", "诸": "zhū", "诛": "zhū", "逐": "zhú", "竹": "zhú", "烛": "zhú", "煮": "zhǔ", "拄": "zhǔ", "瞩": "zhǔ", "嘱": "zhǔ", "主": "zhǔ", "着": "zhù", "柱": "zhù", "助": "zhù", "蛀": "zhù", "贮": "zhù", "铸": "zhù", "筑": "zhù", "住": "zhù", "注": "zhù", "祝": "zhù", "驻": "zhù", "抓": "zhuā", "爪": "zhǎo", "拽": "zhuài", "专": "zhuān", "砖": "zhuān", "转": "zhuǎn", "撰": "zhuàn", "赚": "zuàn", "篆": "zhuàn", "桩": "zhuāng", "庄": "zhuāng", "装": "zhuāng", "妆": "zhuāng", "撞": "zhuàng", "壮": "zhuàng", "状": "zhuàng", "椎": "zhuī", "锥": "zhuī", "追": "zhuī", "赘": "zhuì", "坠": "zhuì", "缀": "zhuì", "谆": "zhūn", "准": "zhǔn", "捉": "zhuō", "拙": "zhuō", "卓": "zhuó", "桌": "zhuō", "琢": "zhuó", "茁": "zhuó", "酌": "zhuó", "啄": "zhuó", "着": "zhe", "灼": "zhuó", "浊": "zhuó", "兹": "zī", "咨": "zī", "资": "zī", "姿": "zī", "滋": "zī", "淄": "zī", "孜": "zī", "紫": "zǐ", "仔": "zǎi", "籽": "zǐ", "滓": "zǐ", "子": "zǐ", "自": "zì", "渍": "zì", "字": "zì", "鬃": "zōng", "棕": "zōng", "踪": "zōng", "宗": "zōng", "综": "zōng", "总": "zǒng", "纵": "zòng", "邹": "zōu", "走": "zǒu", "奏": "zòu", "揍": "zòu", "租": "zū", "足": "zú", "卒": "zú", "族": "zú", "祖": "zǔ", "诅": "zǔ", "阻": "zǔ", "组": "zǔ", "钻": "zuàn", "纂": "zuǎn", "嘴": "zuǐ", "醉": "zuì", "最": "zuì", "罪": "zuì", "尊": "zūn", "遵": "zūn", "昨": "zuó", "左": "zuǒ", "佐": "zuǒ", "柞": "zhà", "做": "zuò", "作": "zuò", "坐": "zuò", "座": "zuò" }; YX.configText['chineseWord'] = '锕皑蔼碍爱嗳嫒瑷暧霭谙铵鹌肮袄奥媪骜鳌坝罢钯摆败呗颁办绊钣帮绑镑谤剥饱宝报鲍鸨龅辈贝钡狈备惫鹎贲锛绷笔毕毙币闭荜哔滗铋筚跸边编贬变辩辫苄缏笾标骠飑飙镖镳鳔鳖别瘪濒滨宾摈傧缤槟殡膑镔髌鬓饼禀拨钵铂驳饽钹鹁补钸财参蚕残惭惨灿骖黪苍舱仓沧厕侧册测恻层诧锸侪钗搀掺蝉馋谗缠铲产阐颤冁谄谶蒇忏婵骣觇禅镡场尝长偿肠厂畅伥苌怅阊鲳钞车彻砗尘陈衬伧谌榇碜龀撑称惩诚骋枨柽铖铛痴迟驰耻齿炽饬鸱冲冲虫宠铳畴踌筹绸俦帱雠橱厨锄雏础储触处刍绌蹰传钏疮闯创怆锤缍纯鹑绰辍龊辞词赐鹚聪葱囱从丛苁骢枞凑辏蹿窜撺错锉鹾达哒鞑带贷骀绐担单郸掸胆惮诞弹殚赕瘅箪当挡党荡档谠砀裆捣岛祷导盗焘灯邓镫敌涤递缔籴诋谛绨觌镝颠点垫电巅钿癫钓调铫鲷谍叠鲽钉顶锭订铤丢铥东动栋冻岽鸫窦犊独读赌镀渎椟牍笃黩锻断缎簖兑队对怼镦吨顿钝炖趸夺堕铎鹅额讹恶饿谔垩阏轭锇锷鹗颚颛鳄诶儿尔饵贰迩铒鸸鲕发罚阀珐矾钒烦贩饭访纺钫鲂飞诽废费绯镄鲱纷坟奋愤粪偾丰枫锋风疯冯缝讽凤沣肤辐抚辅赋复负讣妇缚凫驸绂绋赙麸鲋鳆钆该钙盖赅杆赶秆赣尴擀绀冈刚钢纲岗戆镐睾诰缟锆搁鸽阁铬个纥镉颍给亘赓绠鲠龚宫巩贡钩沟苟构购够诟缑觏蛊顾诂毂钴锢鸪鹄鹘剐挂鸹掴关观馆惯贯诖掼鹳鳏广犷规归龟闺轨诡贵刽匦刿妫桧鲑鳜辊滚衮绲鲧锅国过埚呙帼椁蝈铪骇韩汉阚绗颉号灏颢阂鹤贺诃阖蛎横轰鸿红黉讧荭闳鲎壶护沪户浒鹕哗华画划话骅桦铧怀坏欢环还缓换唤痪焕涣奂缳锾鲩黄谎鳇挥辉毁贿秽会烩汇讳诲绘诙荟哕浍缋珲晖荤浑诨馄阍获货祸钬镬击机积饥迹讥鸡绩缉极辑级挤几蓟剂济计记际继纪讦诘荠叽哜骥玑觊齑矶羁虿跻霁鲚鲫夹荚颊贾钾价驾郏浃铗镓蛲歼监坚笺间艰缄茧检碱硷拣捡简俭减荐槛鉴践贱见键舰剑饯渐溅涧谏缣戋戬睑鹣笕鲣鞯将浆蒋桨奖讲酱绛缰胶浇骄娇搅铰矫侥脚饺缴绞轿较挢峤鹪鲛阶节洁结诫届疖颌鲒紧锦仅谨进晋烬尽劲荆茎卺荩馑缙赆觐鲸惊经颈静镜径痉竞净刭泾迳弪胫靓纠厩旧阄鸠鹫驹举据锯惧剧讵屦榉飓钜锔窭龃鹃绢锩镌隽觉决绝谲珏钧军骏皲开凯剀垲忾恺铠锴龛闶钪铐颗壳课骒缂轲钶锞颔垦恳龈铿抠库裤喾块侩郐哙脍宽狯髋矿旷况诓诳邝圹纩贶亏岿窥馈溃匮蒉愦聩篑阃锟鲲扩阔蛴蜡腊莱来赖崃徕涞濑赉睐铼癞籁蓝栏拦篮阑兰澜谰揽览懒缆烂滥岚榄斓镧褴琅阆锒捞劳涝唠崂铑铹痨乐鳓镭垒类泪诔缧篱狸离鲤礼丽厉励砾历沥隶俪郦坜苈莅蓠呖逦骊缡枥栎轹砺锂鹂疠粝跞雳鲡鳢俩联莲连镰怜涟帘敛脸链恋炼练蔹奁潋琏殓裢裣鲢粮凉两辆谅魉疗辽镣缭钌鹩猎临邻鳞凛赁蔺廪檩辚躏龄铃灵岭领绫棂蛏鲮馏刘浏骝绺镏鹨龙聋咙笼垄拢陇茏泷珑栊胧砻楼娄搂篓偻蒌喽嵝镂瘘耧蝼髅芦卢颅庐炉掳卤虏鲁赂禄录陆垆撸噜闾泸渌栌橹轳辂辘氇胪鸬鹭舻鲈峦挛孪滦乱脔娈栾鸾銮抡轮伦仑沦纶论囵萝罗逻锣箩骡骆络荦猡泺椤脶镙驴吕铝侣屡缕虑滤绿榈褛锊呒妈玛码蚂马骂吗唛嬷杩买麦卖迈脉劢瞒馒蛮满谩缦镘颡鳗猫锚铆贸麽没镁门闷们扪焖懑钔锰梦眯谜弥觅幂芈谧猕祢绵缅渑腼黾庙缈缪灭悯闽闵缗鸣铭谬谟蓦馍殁镆谋亩钼呐钠纳难挠脑恼闹铙讷馁内拟腻铌鲵撵辇鲶酿鸟茑袅聂啮镊镍陧蘖嗫颟蹑柠狞宁拧泞苎咛聍钮纽脓浓农侬哝驽钕诺傩疟欧鸥殴呕沤讴怄瓯盘蹒庞抛疱赔辔喷鹏纰罴铍骗谝骈飘缥频贫嫔苹凭评泼颇钋扑铺朴谱镤镨栖脐齐骑岂启气弃讫蕲骐绮桤碛颀颃鳍牵钎铅迁签谦钱钳潜浅谴堑佥荨悭骞缱椠钤枪呛墙蔷强抢嫱樯戗炝锖锵镪羟跄锹桥乔侨翘窍诮谯荞缲硗跷窃惬锲箧钦亲寝锓轻氢倾顷请庆揿鲭琼穷茕蛱巯赇虮鳅趋区躯驱龋诎岖阒觑鸲颧权劝诠绻辁铨却鹊确阕阙悫让饶扰绕荛娆桡热韧认纫饪轫荣绒嵘蝾缛铷颦软锐蚬闰润洒萨飒鳃赛伞毵糁丧骚扫缫涩啬铯穑杀刹纱铩鲨筛晒酾删闪陕赡缮讪姗骟钐鳝墒伤赏垧殇觞烧绍赊摄慑设厍滠畲绅审婶肾渗诜谂渖声绳胜师狮湿诗时蚀实识驶势适释饰视试谥埘莳弑轼贳铈鲥寿兽绶枢输书赎属术树竖数摅纾帅闩双谁税顺说硕烁铄丝饲厮驷缌锶鸶耸怂颂讼诵擞薮馊飕锼苏诉肃谡稣虽随绥岁谇孙损笋荪狲缩琐锁唢睃獭挞闼铊鳎台态钛鲐摊贪瘫滩坛谭谈叹昙钽锬顸汤烫傥饧铴镗涛绦讨韬铽腾誊锑题体屉缇鹈阗条粜龆鲦贴铁厅听烃铜统恸头钭秃图钍团抟颓蜕饨脱鸵驮驼椭箨鼍袜娲腽弯湾顽万纨绾网辋韦违围为潍维苇伟伪纬谓卫诿帏闱沩涠玮韪炜鲔温闻纹稳问阌瓮挝蜗涡窝卧莴龌呜钨乌诬无芜吴坞雾务误邬庑怃妩骛鹉鹜锡牺袭习铣戏细饩阋玺觋虾辖峡侠狭厦吓硖鲜纤贤衔闲显险现献县馅羡宪线苋莶藓岘猃娴鹇痫蚝籼跹厢镶乡详响项芗饷骧缃飨萧嚣销晓啸哓潇骁绡枭箫协挟携胁谐写泻谢亵撷绁缬锌衅兴陉荥凶汹锈绣馐鸺虚嘘须许叙绪续诩顼轩悬选癣绚谖铉镟学谑泶鳕勋询寻驯训讯逊埙浔鲟压鸦鸭哑亚讶垭娅桠氩阉烟盐严岩颜阎艳厌砚彦谚验厣赝俨兖谳恹闫酽魇餍鼹鸯杨扬疡阳痒养样炀瑶摇尧遥窑谣药轺鹞鳐爷页业叶靥谒邺晔烨医铱颐遗仪蚁艺亿忆义诣议谊译异绎诒呓峄饴怿驿缢轶贻钇镒镱瘗舣荫阴银饮隐铟瘾樱婴鹰应缨莹萤营荧蝇赢颖茔莺萦蓥撄嘤滢潆璎鹦瘿颏罂哟拥佣痈踊咏镛优忧邮铀犹诱莸铕鱿舆鱼渔娱与屿语狱誉预驭伛俣谀谕蓣嵛饫阈妪纡觎欤钰鹆鹬龉鸳渊辕园员圆缘远橼鸢鼋约跃钥粤悦阅钺郧匀陨运蕴酝晕韵郓芸恽愠纭韫殒氲杂灾载攒暂赞瓒趱錾赃脏驵凿枣责择则泽赜啧帻箦贼谮赠综缯轧铡闸栅诈斋债毡盏斩辗崭栈战绽谵张涨帐账胀赵诏钊蛰辙锗这谪辄鹧贞针侦诊镇阵浈缜桢轸赈祯鸩挣睁狰争帧症郑证诤峥钲铮筝织职执纸挚掷帜质滞骘栉栀轵轾贽鸷蛳絷踬踯觯钟终种肿众锺诌轴皱昼骤纣绉猪诸诛烛瞩嘱贮铸驻伫槠铢专砖转赚啭馔颞桩庄装妆壮状锥赘坠缀骓缒谆准着浊诼镯兹资渍谘缁辎赀眦锱龇鲻踪总纵偬邹诹驺鲰诅组镞钻缵躜鳟翱并卜沉丑淀迭斗范干皋硅柜后伙秸杰诀夸里凌么霉捻凄扦圣尸抬涂洼喂污锨咸蝎彝涌游吁御愿岳云灶扎札筑于志注凋讠谫郄勐凼坂垅垴埯埝苘荬荮莜莼菰藁揸吒吣咔咝咴噘噼嚯幞岙嵴彷徼犸狍馀馇馓馕愣憷懔丬溆滟溷漤潴澹甯纟绔绱珉枧桊桉槔橥轱轷赍肷胨飚煳煅熘愍淼砜磙眍钚钷铘铞锃锍锎锏锘锝锪锫锿镅镎镢镥镩镲稆鹋鹛鹱疬疴痖癯裥襁耢颥螨麴鲅鲆鲇鲞鲴鲺鲼鳊鳋鳘鳙鞒鞴齄'; YX.configText['taiwanWord'] = '锕皑蔼碍爱嗳嫒瑷暧霭谙铵鹌肮袄奥媪骜鳌坝罢钯摆败呗颁办绊钣帮绑镑谤剥饱宝报鲍鸨龅辈贝钡狈备惫鹎贲锛绷笔毕毙币闭荜哔滗铋筚跸边编贬变辩辫苄缏笾标骠飑飙镖镳鳔鳖别瘪濒滨宾摈傧缤槟殡膑镔髌鬓饼禀拨钵铂驳饽钹鹁补钸财参蚕残惭惨灿骖黪苍舱仓沧厕侧册测恻层诧锸侪钗搀掺蝉馋谗缠铲产阐颤冁谄谶蒇忏婵骣觇禅镡场尝长偿肠厂畅伥苌怅阊鲳钞车彻砗尘陈衬伧谌榇碜龀撑称惩诚骋枨柽铖铛痴迟驰耻齿炽饬鸱冲冲虫宠铳畴踌筹绸俦帱雠橱厨锄雏础储触处刍绌蹰传钏疮闯创怆锤缍纯鹑绰辍龊辞词赐鹚聪葱囱从丛苁骢枞凑辏蹿窜撺错锉鹾达哒鞑带贷骀绐担单郸掸胆惮诞弹殚赕瘅箪当挡党荡档谠砀裆捣岛祷导盗焘灯邓镫敌涤递缔籴诋谛绨觌镝颠点垫电巅钿癫钓调铫鲷谍叠鲽钉顶锭订铤丢铥东动栋冻岽鸫窦犊独读赌镀渎椟牍笃黩锻断缎簖兑队对怼镦吨顿钝炖趸夺堕铎鹅额讹恶饿谔垩阏轭锇锷鹗颚颛鳄诶儿尔饵贰迩铒鸸鲕发罚阀珐矾钒烦贩饭访纺钫鲂飞诽废费绯镄鲱纷坟奋愤粪偾丰枫锋风疯冯缝讽凤沣肤辐抚辅赋复负讣妇缚凫驸绂绋赙麸鲋鳆钆该钙盖赅杆赶秆赣尴擀绀冈刚钢纲岗戆镐睾诰缟锆搁鸽阁铬个纥镉颍给亘赓绠鲠龚宫巩贡钩沟苟构购够诟缑觏蛊顾诂毂钴锢鸪鹄鹘剐挂鸹掴关观馆惯贯诖掼鹳鳏广犷规归龟闺轨诡贵刽匦刿妫桧鲑鳜辊滚衮绲鲧锅国过埚呙帼椁蝈铪骇韩汉阚绗颉号灏颢阂鹤贺诃阖蛎横轰鸿红黉讧荭闳鲎壶护沪户浒鹕哗华画划话骅桦铧怀坏欢环还缓换唤痪焕涣奂缳锾鲩黄谎鳇挥辉毁贿秽会烩汇讳诲绘诙荟哕浍缋珲晖荤浑诨馄阍获货祸钬镬击机积饥迹讥鸡绩缉极辑级挤几蓟剂济计记际继纪讦诘荠叽哜骥玑觊齑矶羁虿跻霁鲚鲫夹荚颊贾钾价驾郏浃铗镓蛲歼监坚笺间艰缄茧检碱硷拣捡简俭减荐槛鉴践贱见键舰剑饯渐溅涧谏缣戋戬睑鹣笕鲣鞯将浆蒋桨奖讲酱绦缰胶浇骄娇搅铰矫侥脚饺缴绞轿较挢峤鹪鲛阶节洁结诫届疖颌鲒紧锦仅谨进晋烬尽劲荆茎卺荩馑缙赆觐鲸惊经颈静镜径痉竞净刭泾迳弪胫靓纠厩旧阄鸠鹫驹举据锯惧剧讵屦榉飓钜锔窭龃鹃绢锩镌隽觉决绝谲珏钧军骏皲开凯剀垲忾恺铠锴龛闶钪铐颗壳课骒缂轲钶锞颔垦恳龈铿抠库裤喾块侩郐哙脍宽狯髋矿旷况诓诳邝圹纩贶亏岿窥馈溃匮蒉愦聩篑阃锟鲲扩阔蛴蜡腊莱来赖崃徕涞濑赉睐铼癞籁蓝栏拦篮阑兰澜谰揽览懒缆烂滥岚榄斓镧褴琅阆锒捞劳涝唠崂铑铹痨乐鳓镭垒类泪诔缧篱狸离鲤礼丽厉励砾历沥隶俪郦坜苈莅蓠呖逦骊缡枥栎轹砺锂鹂疠粝跞雳鲡鳢俩联莲连镰怜涟帘敛脸链恋炼练蔹奁潋琏殓裢裣鲢粮凉两辆谅魉疗辽镣缭钌鹩猎临邻鳞凛赁蔺廪檩辚躏龄铃灵岭领绫棂蛏鲮馏刘浏骝绺镏鹨龙聋咙笼垄拢陇茏泷珑栊胧砻楼娄搂篓偻蒌喽嵝镂瘘耧蝼髅芦卢颅庐炉掳卤虏鲁赂禄录陆垆撸噜闾泸渌栌橹轳辂辘氇胪鸬鹭舻鲈峦挛孪滦乱脔娈栾鸾銮抡轮伦仑沦纶论囵萝罗逻锣箩骡骆络荦猡泺椤脶镙驴吕铝侣屡缕虑滤绿榈褛锊呒妈玛码蚂马骂吗唛嬷杩买麦卖迈脉劢瞒馒蛮满谩缦镘颡鳗猫锚铆贸麽没镁门闷们扪焖懑钔锰梦眯谜弥觅幂芈谧猕祢绵缅渑腼黾庙缈缪灭悯闽闵缗鸣铭谬谟蓦馍殁镆谋亩钼呐钠纳难挠脑恼闹铙讷馁内拟腻铌鲵撵辇鲶酿鸟茑袅聂啮镊镍陧蘖嗫颟蹑柠狞宁拧泞苎咛聍钮纽脓浓农侬哝驽钕诺傩疟欧鸥殴呕沤讴怄瓯盘蹒庞抛疱赔辔喷鹏纰罴铍骗谝骈飘缥频贫嫔苹凭评泼颇钋扑铺朴谱镤镨栖脐齐骑岂启气弃讫蕲骐绮桤碛颀颃鳍牵钎铅迁签谦钱钳潜浅谴堑佥荨悭骞缱椠钤枪呛墙蔷强抢嫱樯戗炝锖锵镪羟跄锹桥乔侨翘窍诮谯荞缲硗跷窃惬锲箧钦亲寝锓轻氢倾顷请庆揿鲭琼穷茕蛱巯赇虮鳅趋区躯驱龋诎岖阒觑鸲颧权劝诠绻辁铨却鹊确阕阙悫让饶扰绕荛娆桡热韧认纫饪轫荣绒嵘蝾缛铷颦软锐蚬闰润洒萨飒鳃赛伞毵糁丧骚扫缫涩啬铯穑杀刹纱铩鲨筛晒酾删闪陕赡缮讪姗骟钐鳝墒伤赏垧殇觞烧绍赊摄慑设厍滠畲绅审婶肾渗诜谂渖声绳胜师狮湿诗时蚀实识驶势适释饰视试谥埘莳弑轼贳铈鲥寿兽绶枢输书赎属术树竖数摅纾帅闩双谁税顺说硕烁铄丝饲厮驷缌锶鸶耸怂颂讼诵擞薮馊飕锼苏诉肃谡稣虽随绥岁谇孙损笋荪狲缩琐锁唢睃獭挞闼铊鳎台态钛鲐摊贪瘫滩坛谭谈叹昙钽锬顸汤烫傥饧铴镗涛绦讨韬铽腾誊锑题体屉缇鹈阗条粜龆鲦贴铁厅听烃铜统恸头钭秃图钍团抟颓蜕饨脱鸵驮驼椭箨鼍袜娲腽弯湾顽万纨绾网辋韦违围为潍维苇伟伪纬谓卫诿帏闱沩涠玮韪炜鲔温闻纹稳问阌瓮挝蜗涡窝卧莴龌呜钨乌诬无芜吴坞雾务误邬庑怃妩骛鹉鹜锡牺袭习铣戏细饩阋玺觋虾辖峡侠狭厦吓硖鲜纤贤衔闲显险现献县馅羡宪线苋莶藓岘猃娴鹇痫蚝籼跹厢镶乡详响项芗饷骧缃飨萧嚣销晓啸哓潇骁绡枭箫协挟携胁谐写泻谢亵撷绁缬锌衅兴陉荥凶汹锈绣馐鸺虚嘘须许叙绪续诩顼轩悬选癣绚谖铉镟学谑泶鳕勋询寻驯训讯逊埙浔鲟压鸦鸭哑亚讶垭娅桠氩阉烟盐严岩颜阎艳厌砚彦谚验厣赝俨兖谳恹闫酽魇餍鼹鸯杨扬疡阳痒养样炀瑶摇尧遥窑谣药轺鹞鳐爷页业叶靥谒邺晔烨医铱颐遗仪蚁艺亿忆义诣议谊译异绎诒呓峄饴怿驿缢轶贻钇镒镱瘗舣荫阴银饮隐铟瘾樱婴鹰应缨莹萤营荧蝇赢颖茔莺萦蓥撄嘤滢潆璎鹦瘿颏罂哟拥佣痈踊咏镛优忧邮铀犹诱莸铕鱿舆鱼渔娱与屿语狱誉预驭伛俣谀谕蓣嵛饫阈妪纡觎欤钰鹆鹬龉鸳渊辕园员圆缘远橼鸢鼋约跃钥粤悦阅钺郧匀陨运蕴酝晕韵郓芸恽愠纭韫殒氲杂灾载攒暂赞瓒趱錾赃脏驵凿枣责择则泽赜啧帻箦贼谮赠综缯轧铡闸栅诈斋债毡盏斩辗崭栈战绽谵张涨帐账胀赵诏钊蛰辙锗这谪辄鹧贞针侦诊镇阵浈缜桢轸赈祯鸩挣睁狰争帧症郑证诤峥钲铮筝织职执纸挚掷帜质滞骘栉栀轵轾贽鸷蛳絷踬踯觯钟终种肿众锺诌轴皱昼骤纣绉猪诸诛烛瞩嘱贮铸驻伫槠铢专砖转赚啭馔颞桩庄装妆壮状锥赘坠缀骓缒谆准着浊诼镯兹资渍谘缁辎赀眦锱龇鲻踪总纵偬邹诹驺鲰诅组镞钻缵躜鳟翺并卜沈丑淀叠斗范干臯矽柜後夥稭杰诀夸里淩麽霉捻凄扡圣屍擡涂洼喂污鍁咸蠍彜涌游吁御愿岳云竈紮劄筑於志注雕訁譾郤猛氹阪垄堖垵垫檾蕒葤蓧蒓菇槁摣咤唚哢噝噅撅劈谑襆嶴脊仿侥獁麅余餷饊饢楞怵檩爿漵灩混滥瀦淡宁糸絝緔瑉梘棬案橰櫫軲軤賫膁腖飈糊煆溜湣渺碸滚瞘鈈鉕鋣銱鋥鋶鐦鐧鍩鍀鍃錇鎄鎇鎿鐝鑥鑹鑔穭鶓鶥鸌癧屙瘂臒襇襁耮顬蟎麯鮁鮃鮎鯗鯝鯴鱝鯿鰠鰵鱅鞽韝齇'; YX.Nodes = { _breakUpSound: false, _breakUpSoundDelimiter: " || ", nodeTypeBreaker: (this._breakUpSound ? this._breakUpSoundDelimiter: ""), recursion_limit: 20000, _iframeNodes: [], leafNode: function(node) { if (!node || !node.nodeType || node.nodeType == 3) { return true } else { return this.leafElement(node) } }, internalNode: function(node) { var parent = node.parentNode; if (parent) { if (parent.nodeName == "OPTION" || parent.nodeName == "SELECT") { return true } } return false }, hasAttribute: function(node, attrib) { if (node.hasAttribute) { return node.hasAttribute(attrib) } if (node.attributes && !(attrib in node.attributes)) { return false } var attrVal = node.getAttribute(attrib); if (attrVal != null && attrVal != "") { return true } return false }, leafElement: function(elem) { switch (elem.tagName) { case 'A': if ($(elem).children().length < 2) return true; if ($(elem).children("font,strong,em").length > 1) return true; return false; case 'AREA': case 'OBJECT': case 'EMBED': case 'BUTTON': case 'TEXTAREA': case 'IMG': case 'NOSCRIPT': case 'SELECT': return this.isVisible(elem); case 'HEAD': case 'SCRIPT': case 'STYLE': return true; case 'IFRAME': } return ! elem.hasChildNodes() }, isInvisible: function(node) { if (node == null || typeof node == 'undefined' || node.nodeType != 1 || node.nodeName == "BODY") { return false } var disp = this.getNodeStyle(node, 'display', 'display'); var vis = this.getNodeStyle(node, 'visibility', 'visibility'); if (disp == 'none' || vis == 'hidden' || node.offsetWidth <= 0 || !node.parentNode) return true; return false }, isVisible: function(obj) { if (obj.nodeName == "BODY" || obj.nodeName == "HTML") return true; if (!obj) return false; else if (!obj.parentNode) return false; else if (obj.style) { if (obj.style.display == 'none') return false; else if (obj.style.visibility == 'hidden') return false } if (window.getComputedStyle) { var style = window.getComputedStyle(obj, ""); if (style.display == 'none') return false; if (style.visibility == 'hidden') return false } var style = obj.currentStyle; if (style) { if (style['display'] == 'none') return false; if (style['visibility'] == 'hidden') return false } return YX.Nodes.isVisible(obj.parentNode) }, isFocusable: function(node) { if (!node || node == null) return false; if (node.nodeType == 1) { if (node.tagName == "INPUT") { var input_type = node.getAttribute('type'); if (!input_type || input_type != 'hidden') { return true } } else if ((node.tagName == "A" && YX.Nodes.hasAttribute(node, 'href')) || node.tagName == "SELECT" || node.tagName == "TEXTAREA") { return true } var tabindex = node.getAttribute('tabindex'); if (tabindex) { return true } } return false }, handleNode: function(node, goingDown) { if (!goingDown || !node) { return null } var return_val = ""; switch (node.nodeType) { case 1: if (this.isInvisible(node)) { return_val = "" } else { return_val = this.handleElement(node) } break; case 2: return_val = ""; break; case 3: var ret_val = node.data; if (ret_val.length > 0 && ret_val.match(/[^\s,\.\?!:\-]/)) { ret_val = ret_val.replace(/&#\d+;/, ""); return_val = ret_val } else { return_val = "" } break; case 8: case 9: case 10: default: return_val = "" } return return_val }, handleChildNodes: function(node) { var result = ""; for (var i = 0, ncl = node.childNodes.length; i < ncl; i++) { result += this.handleNode(node.childNodes[i], true) + " "; if (!this.leafNode(node.childNodes[i])) result += this.handleChildNodes(node.childNodes[i]) } return result }, handleAreaNode: function(elem) { if (elem.getAttribute('alt')) return elem.getAttribute('alt'); else if (elem.getAttribute('title')) return elem.getAttribute('title'); else return "" }, handleImageNode: function(elem) { if (elem.getAttribute('alt')) { return elem.getAttribute('alt') } else if (elem.getAttribute('title')) { return elem.getAttribute('title') } else { return "" } }, handleListNode: function(elem) { var result = ""; var parent = elem.parentNode; while (parent && parent.tagName != "BODY") { if (parent.tagName == "OL") { var elems = parent.getElementsByTagName("LI"); for (var i = 0, el = elems.length; i < el; i++) { if (elems[i] == elem) { result += (i + 1) + ". "; break } } break } parent = parent.parentNode } return result }, GetInputLabelText: function(node) { var cNode = $(node).parent(); if (cNode) { var text = YX.Utils.RemoveSpecialCharacters(cNode.text()); if (text && text.length < 6) return cNode.text(); cNode = cNode.parent().children().length >= 2 ? cNode.prev() : cNode.parent().prev() } else { return "" } if (cNode) { var text = YX.Utils.RemoveSpecialCharacters(cNode.text()); if (text) { return text.length > YX.systemInputLabelContentLength ? "": text } else { return "" } } else { return "" } }, handleInputNode: function(elem) { var result = ""; switch (elem.getAttribute('type')) { case 'button': result += elem.value + YX.configText['button']; break; case 'checkbox': result += this.GetInputLabelText(elem) + YX.configText["checkbox"] + "," + YX.configText['current'] + ((elem.checked == true) ? YX.configText["checked"] : YX.configText["unchecked"]); break; case 'file': result += YX.configText["file"]; break; case 'hidden': break; case 'image': result += elem.value + YX.configText["imageButton"]; break; case 'password': result += YX.configText["password"]; break; case 'radio': result += this.GetInputLabelText(elem) + YX.configText["radio"] + "," + YX.configText['current'] + ((elem.checked == true) ? YX.configText["checked"] : YX.configText["unchecked"]); break; case 'reset': result += elem.value + YX.configText["reset"]; break; case 'submit': result += elem.value + YX.configText["submit"]; break; case 'text': default: var value = ""; try { value = elem.value ? elem.value: YX.configText['emptyContent'] } catch(err) {}; result = this.GetInputLabelText(elem) + YX.configText["text"] + "," + YX.configText['currentValue'] + value } return result }, handleElement: function(elem) { var result = ""; switch (elem.tagName) { case 'A': var textc = this.handleChildNodes(elem); if (textc) textc = textc.replace(/…$/, "").replace(/\.\.\.$/, ""); var titlec = elem.getAttribute('title'); if (this.hasAttribute(elem, 'title') && titlec.length >= textc.length - 2) { result += YX.configText["a"] + " " + this.nodeTypeBreaker + titlec } else { result += YX.configText["a"] + " " + this.nodeTypeBreaker + textc } break; case 'AREA': result += YX.configText["area"] + " " + this.nodeTypeBreaker + this.handleAreaNode(elem); break; case 'BUTTON': result += this.handleChildNodes(elem) + " " + YX.configText["button"]; break; case 'OBJECT': result = elem.getAttribute('title') ? elem.getAttribute('title') : ""; result = YX.configText["object"] + " " + result; break; case 'EMBED': result = elem.getAttribute('title') ? elem.getAttribute('title') : ""; result = YX.configText["embed"] + " " + result; break; case 'H1': result += YX.configText["h1"]; break; case 'H2': result += YX.configText["h2"]; break; case 'H3': result += YX.configText["h3"]; break; case 'H4': result += YX.configText["h4"]; break; case 'H5': result += YX.configText["h5"]; break; case 'H6': result += YX.configText["h6"]; break; case 'IMG': var image_text = this.handleImageNode(elem); if (image_text && image_text.length > 0) { result += YX.configText["img"] + " " + this.nodeTypeBreaker + image_text } else { result += YX.configText["img"] } break; case 'INPUT': result += this.handleInputNode(elem); break; case 'LI': result += this.handleListNode(elem); break; case 'SELECT': result += YX.configText["select"] + "," + YX.configText['currentItem'] + elem.options[elem.selectedIndex].text; break; case 'TABLE': var rows = elem.rows.length; var cols = this.getLargestRowLength(elem.rows); if (rows > 2 && cols > 2) { result += YX.configText["table"] + " " + this.getTableNum(elem) + " " + this.getTableName(elem) + " " + YX.configText["start"] + " " + rows + " " + YX.configText["tr"] + " " + cols + " " + YX.configText["col"] + " " } break; case 'TEXTAREA': var value = ""; try { value = elem.value ? elem.value: YX.configText['emptyContent'] } catch(err) {}; result += YX.configText['textarea'] + "," + YX.configText['currentValue'] + value; break; case 'UL': case 'OL': var numitems = this.getNumberOfListElements(elem); if (numitems > 0) { result += YX.configText['list'] + " " + numitems + " " + YX.configText['items'] } } if (elem.getAttribute('title') && !result) { result = result + " " + elem.getAttribute('title') } return result }, getLabelName: function(elem) { if (this.hasAttribute(elem, 'my_label')) return elem.getAttribute('my_label'); else if (this.hasAttribute(elem, 'name')) return elem.getAttribute('name'); return "" }, getNumberOfListElements: function(elem) { var num = 0; if (typeof elem == 'undefined' || typeof elem.childNodes == 'undefined') { return 0 } for (var i = 0, ecl = elem.childNodes.length; i < ecl; i++) { if (elem.childNodes[i].nodeName == "LI") { num++ } } return num }, getTableName: function(elem) { var ret = ""; if (elem.caption) { ret = this.handleChildNodes(elem.caption) } else if (elem.summary) { ret = elem.summary } return ret }, getTableNum: function(elem) { if (elem != null) { var tables = elem.ownerDocument.getElementsByTagName('TABLE'); for (var i = 0, tl = tables.length; i < tl; i++) { if (tables[i] == elem) return i } } return - 1 }, getLargestRowLength: function(rows) { var longest = 0; for (var i = 0, rl = rows.length; i < rl; i++) if (rows[i].cells.length > longest) longest = rows[i].cells.length; return longest }, treeTraverseRecursion: function(node, visitor, isleaf) { this._treeTraverseRecursion(node, visitor, isleaf, 0) }, _treeTraverseRecursion: function(node, visitor, isleaf, depth) { if (depth > this.recursion_limit) { return } var nodesToVisit = new Array(); if ((typeof isleaf != 'function') || !isleaf(node)) { if (node.firstChild) { nodesToVisit.push(node.firstChild) } } if (node && node.nextSibling) { nodesToVisit.push(node.nextSibling) } if (node && (node.tagName == "FRAME" || node.nodeName == 'IFRAME') && YX.Utils.IsSelfLocation(node.src)) { try { if (node.contentDocument) { nodesToVisit.push(node.contentDocument.body) } else if (node.contentWindow) { nodesToVisit.push(node.contentWindow.document.body) } else if (node.document) { nodesToVisit.push(node.document.body) } } catch(e) {} } if (depth != this.recursion_limit && node) { try { visitor(node) } catch(e) {} } for (var i = 0; i < nodesToVisit.length; i++) { YX.Nodes._treeTraverseRecursion(nodesToVisit[i], visitor, isleaf, depth + 1) } }, depthFirstVisitor: function(node, visitor, isleaf) { visitor(node); var children = node.childNodes; for (var i = 0; i < children.length; i++) { var child = children[i]; if (!isleaf(child)) { this.depthFirstVisitor(child, visitor, isleaf) } } }, getNodeStyle: function(node, scriptStyleProp, cssStyleProp) { if (typeof node != 'undefined' && node.nodeType != 1) { node = node.parentNode } if (node.currentStyle) { return node.currentStyle[scriptStyleProp] } else if (window.getComputedStyle) { var compStyle = window.getComputedStyle(node, ""); return compStyle.getPropertyValue(cssStyleProp) } else { return "" } }, getTextContent: function(node) { if (node != null) { if (node.textContent) { return node.textContent } else if (node.innerText) { return node.innerText } } return "" }, getTitle: function() { var titleT = ""; try { titleT = $(YX.continueStartNodeId).contents().get(0).title; titleT = titleT.replace(/<[^>]*>/ig, "") } catch(e) {}; if (!titleT) titleT = YX.configText['noTitle']; return titleT }, GetNodeText: function(node) { var text = YX.Nodes.handleNode(node, true); if (!text) text = node.innerText == undefined ? node.textContent: node.innerText; text = YX.Utils.RemoveSpecialCharacters(text); if (!text) text = YX.Nodes.GetImgLinkText(node); return text }, GetImgLinkText: function(node) { if (node.tagName == "A" && $(">img", node).length == 1) { var tempImgNode = $(">img", node).get(0); text = $(tempImgNode).attr("alt"); if (!text) text = $(tempImgNode).attr("title"); text = YX.configText['link'] + YX.configText['img'] + text; return text } return "" }, IsTextInputNode: function(tagName, type) { if (tagName) tagName = tagName.toLowerCase(); if (type) type = type.toLowerCase(); if ((tagName == "input" && YX.Utils.InArray(type, ["text", "password"])) || tagName == "textarea") return true; return false }, GetFilePath: function(node) { if (node.tagName == "IMG" || (node.tagName == "INPUT" && $(node).attr("type") == "image")) { if (node.tagName == "IMG" && $(node).attr("yxoriginal")) return this.GetAbsoluteFilePath($(node).attr("yxoriginal")); return node.src } if (node.tagName == "AREA") { var iurl = $(node).attr("href"); if (iurl && YX.proxyUrl && iurl.indexOf(YX.proxyUrl) == 0) { iurl = iurl.split(YX.proxyUrl)[1]; iurl = YX.Utils.UTFUrlDecode(iurl) } return this.GetAbsoluteFilePath(iurl) } if (node.tagName == "APPLET") return $(node).attr("code"); if (node.tagName == "OBJECT" || node.tagName == "EMBED") { var html = ""; if (node.tagName == "OBJECT") { html = $(node).html() } else { html = $(node.parentNode).html() } if (html.indexOf("]*?>/i, function(a, b) { result = b }); return this.GetAbsoluteFilePath(result) } } return "" }, GetAbsoluteFilePath: function(url) { var a = $(YX.continueStartNodeId).contents().get(0).createElement("img"); a.src = url; url = a.src; a = null; return url }, ChangeImageMediaTitle: function(node) { if (typeof(yixuan_wcag) != "object" || !yixuan_wcag) return; var nodes = $(">object,>embed", node).filter(function() { return this.parentNode.tagName != "OBJECT" }); if (nodes.length > 0) node = nodes.get(0); if (node.tagName == "A" && $(">img", node).length == 1 && $(node).children().length == 1) node = $(">img", node).get(0); var path = YX.Nodes.GetFilePath(node); if (path) { var title = yixuan_wcag[path]; if (title && title.indexOf("http:") != -1 && title.indexOf(",") != -1) { var tarray = title.split("|"); var rtitle = ""; for (var i = 0; i < tarray.length; i++) { rtitle += (i + 1) + "," + tarray[i].split(",")[0] + ";" } title = rtitle } if (title) $(node).attr("title", title) } } }; var hexcase = 0; var b64pad = ""; var chrsz = 8; function hex_md5(s) { return binl2hex(core_md5(str2binl(s), s.length * chrsz)) } function b64_md5(s) { return binl2b64(core_md5(str2binl(s), s.length * chrsz)) } function str_md5(s) { return binl2str(core_md5(str2binl(s), s.length * chrsz)) } function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)) } function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)) } function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)) } function md5_vm_test() { return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72" } function core_md5(x, len) { x[len >> 5] |= 0x80 << ((len) % 32); x[(((len + 64) >>> 9) << 4) + 14] = len; var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; for (var i = 0; i < x.length; i += 16) { var olda = a; var oldb = b; var oldc = c; var oldd = d; a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936); d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586); c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819); b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330); a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897); d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426); c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341); b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983); a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416); d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417); c = md5_ff(c, d, a, b, x[i + 10], 17, -42063); b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162); a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682); d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101); c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290); b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329); a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510); d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632); c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713); b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302); a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691); d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083); c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335); b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848); a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438); d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690); c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961); b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501); a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467); d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784); c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473); b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734); a = md5_hh(a, b, c, d, x[i + 5], 4, -378558); d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463); c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562); b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556); a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060); d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353); c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632); b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640); a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174); d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222); c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979); b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189); a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487); d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835); c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520); b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651); a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844); d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415); c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905); b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055); a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571); d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606); c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523); b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799); a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359); d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744); c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380); b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649); a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070); d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379); c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259); b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551); a = safe_add(a, olda); b = safe_add(b, oldb); c = safe_add(c, oldc); d = safe_add(d, oldd) } return Array(a, b, c, d) } function md5_cmn(q, a, b, x, s, t) { return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b) } function md5_ff(a, b, c, d, x, s, t) { return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t) } function md5_gg(a, b, c, d, x, s, t) { return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t) } function md5_hh(a, b, c, d, x, s, t) { return md5_cmn(b ^ c ^ d, a, b, x, s, t) } function md5_ii(a, b, c, d, x, s, t) { return md5_cmn(c ^ (b | (~d)), a, b, x, s, t) } function core_hmac_md5(key, data) { var bkey = str2binl(key); if (bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz); var ipad = Array(16), opad = Array(16); for (var i = 0; i < 16; i++) { ipad[i] = bkey[i] ^ 0x36363636; opad[i] = bkey[i] ^ 0x5C5C5C5C } var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz); return core_md5(opad.concat(hash), 512 + 128) } function safe_add(x, y) { var lsw = (x & 0xFFFF) + (y & 0xFFFF); var msw = (x >> 16) + (y >> 16) + (lsw >> 16); return (msw << 16) | (lsw & 0xFFFF) } function bit_rol(num, cnt) { return (num << cnt) | (num >>> (32 - cnt)) } function str2binl(str) { var bin = Array(); var mask = (1 << chrsz) - 1; for (var i = 0; i < str.length * chrsz; i += chrsz) bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (i % 32); return bin } function binl2str(bin) { var str = ""; var mask = (1 << chrsz) - 1; for (var i = 0; i < bin.length * 32; i += chrsz) str += String.fromCharCode((bin[i >> 5] >>> (i % 32)) & mask); return str } function binl2hex(binarray) { var hex_tab = hexcase ? "0123456789ABCDEF": "0123456789abcdef"; var str = ""; for (var i = 0; i < binarray.length * 4; i++) { str += hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8 + 4)) & 0xF) + hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8)) & 0xF) } return str } function binl2b64(binarray) { var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var str = ""; for (var i = 0; i < binarray.length * 4; i += 3) { var triplet = (((binarray[i >> 2] >> 8 * (i % 4)) & 0xFF) << 16) | (((binarray[i + 1 >> 2] >> 8 * ((i + 1) % 4)) & 0xFF) << 8) | ((binarray[i + 2 >> 2] >> 8 * ((i + 2) % 4)) & 0xFF); for (var j = 0; j < 4; j++) { if (i * 8 + j * 6 > binarray.length * 32) str += b64pad; else str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F) } } return str } YX.Utils = { trim: function(str) { return (str == null) ? null: $.trim(str) }, countSubRE: function(str, substr) { return str.length - str.replace(new RegExp(substr, 'i'), '').length }, countWords: function(str) { return (this.trim(str).split(/\s+/).length) }, getRecordingTextarea: function() { var doc = getNavigationDocument(); var rta = doc.getElementById('recording'); return rta }, getTime: function() { var d = new Date(); return d.valueOf() }, recordLine: function(line) { if (recordActions) { var rta = this.getRecordingTextarea(); rta.value += this.getTime() + " " + line + "\n" } }, callForEachDoc: function(win, func) { for (var i = 0; i < win.frames.length; i++) { func(win.frames[i].document) } }, postURL: function(url, params, cb) { var prefetch_req = null; if (window.XMLHttpRequest) { prefetch_req = new XMLHttpRequest() } else if (window.ActiveXObject) { prefetch_req = new ActiveXObject("Microsoft.XMLHTTP") } prefetch_req.onreadystatechange = cb; prefetch_req.open("POST", url, true); prefetch_req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); prefetch_req.setRequestHeader("Content-length", params.length); prefetch_req.setRequestHeader("Connection", "close"); prefetch_req.send(params) }, _delayPostQueue: null, delayProxyPost: function(args) { if (YX.Utils._delayPostQueue == null) { YX.Utils._delayPostQueue = new Array() } var queue = YX.Utils._delayPostQueue; queue.push(args) }, postDelayPostInfo: function() { if (top.web_proxy_url) { var dp = this.getDelayPostInfo(16000); var url = top.web_proxy_url.replace(/\$url\$/, ""); if (("" + dp).length > 0) { this.postURL(url, dp) } } }, getDelayPostInfo: function(maxlength) { maxlength -= ("&sid=" + top.sessionid).length; var queue = YX.Utils._delayPostQueue; var postInfo = ""; if (queue == null || queue.length < 1) { return "" } for (var i = 0; postInfo.length < maxlength && queue.length > 0; i++) { if (postInfo.length > 0) { postInfo += "&" } postInfo += YX.delayPostPrefix + i + "=" + escape(queue.shift()) } return postInfo }, addDelayPost: function(url) { var len = ("" + url).length; var dp = this.getDelayPostInfo(2048 - len); if ((dp + "").length > 0) { url = url.replace(/\$dp\$/, dp) } return url }, getXPath: function(node) { if (!node || !node.ownerDocument) { return "(none)" } var xpath = ""; var namespace = node.ownerDocument.documentElement.namespaceURI; var prefix = namespace ? "x:": ""; var node2 = node; var doc = node.ownerDocument; var node_id = null; if (node.getAttribute) { node_id = node.getAttribute('id') } for (var i = 0; node2 && node2 != doc; i++) { if (!node2.tagName || !node2.parentNode) { return "" } var tag = node2.tagName.toLowerCase(); var id = node2.id; var className = node2.className; var segment = prefix + tag; if (tag.length > 0) { var cl = node2.getAttribute('class'); if (id && id != "" && false) { xpath = "//" + segment + '[@id="' + id + '"]' + xpath; break } else { var par_childs = node2.parentNode.childNodes; var node_num = 1; for (var j = 0, pcl = par_childs.length; j < pcl; j++) { var child_tag = par_childs[j].tagName; if (!child_tag) { continue } child_tag = par_childs[j].tagName.toLowerCase(); if (par_childs[j] == node2) { break } if (child_tag == tag) { node_num++ } } segment += '[' + node_num + ']' } } else if (tag == "tr") { var rowCount = node2.parentNode.rows.length; if (rowCount > 1 && rowCount < 5) { segment += '[' + (node2.rowIndex + 1) + ']' } } else if (tag == "td") { var cellCount = node2.parentNode.cells.length; if (cellCount > 1 && cellCount < 5) { segment += '[' + (node2.cellIndex + 1) + ']' } } xpath = "/" + segment + xpath; node2 = node2.parentNode } if (node_id) { xpath += '#' + node_id } return xpath }, isIE: function() { return (navigator.appName == "Microsoft Internet Explorer") }, simpleHash: function(str) { if (str == null) { return 'nullhash' } var type = String(typeof str); if (type == 'undefined') { return 'undefinedhash' } if (type != 'string') { str = String(str) } if (str.length <= 0) { return 'emptystring' } var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_$"; var val = ""; var chr; var enc1, enc2, enc3; for (var i = 0, str_len = str.length; i < str_len; i++) { chr = str.charCodeAt(i); if ((chr >= 48 && chr <= 57) || (chr >= 65 && chr <= 90) || (chr >= 97 && chr <= 122)) { val += str.charAt(i) } else { enc1 = chr >> 10; enc2 = (chr & 1023) >> 4; enc3 = chr & 15; val += '$' + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) } } if (val.length > 64) { val = '_' + hex_md5(str) } return val }, findPos: function(obj) { var curleft = curtop = 0; if (obj != null && obj.offsetParent) { curleft = obj.offsetLeft; curtop = obj.offsetTop; while (obj = obj.offsetParent) { curleft += obj.offsetLeft; curtop += obj.offsetTop } } else { return null } return [curleft, curtop] }, contentWidthHeight: function(win) { if (self.innerWidth != undefined) { return [win.innerWidth, win.innerHeight] } else { var docelem = win.document.body; return [docelem.clientWidth, docelem.clientHeight] } }, getScrollOffset: function(win) { if (win.scrollY != undefined) { return [win.scrollX, win.scrollY] } else if (win.document.documentElement.scrollTop) { var delem = win.document.documentElement; return [delem.scrollLeft, delem.scrollTop] } else { return [0, 0] } }, setListener: function(target, evt, func) { if (window.attachEvent) target.attachEvent('on' + evt, func); else if (window.addEventListener) target.addEventListener(evt, func, false) }, log: function(str) { if (! (/debug=true/.test(document.location))) { YX.Utils.log = function() {} } else { YX.Utils.log = function(str) { if (typeof console != 'undefined' && typeof console.log != 'undefined') { console.log(str) } }; YX.Utils.log(str) } }, getSelection: function(doc) { YX.Utils.log('getSelection'); if (doc.getSelection) { YX.Utils.log('doc.getSelection'); return "" + doc.getSelection() } else if (doc.selection) { YX.Utils.log('doc.selection'); return "" + doc.selection.createRange().text } else { YX.Utils.log('nothing'); return "" } }, getTarget: function(e) { var target = null; if (e.target) target = e.target; else if (e.srcElement) target = e.srcElement; else return null; if (target.nodeType == 3) target = target.parentNode; return target }, RemoveSpacesBetweenChar: function(str) { if (!this.LTrim(str)) { return false } else { str = str.replace(/([\u4e00-\u9fa5])\s+(?=[\u4e00-\u9fa5])/g, "$1"); return str } }, LTrim: function(str) { if (str) { return true } else { return false } return str.replace(/^\s*/g, "") }, SplitStringOld: function(str, len) { if (typeof str != 'string') return []; var boundarySplitterRegExp = /[\.!\?:;\s]*(\s+\(|\s+\-\s+|[\.!\?:;\)]\s+|[;:,\.!\?:\u3002\uff01\uff1f\uff1a\uff0c])+[\.!\?:;\s]*/; var phrases = (str + "").split(boundarySplitterRegExp); var numWords = 0; for (var i = 0; i < phrases.length; i++) { numWords = YX.Utils.countWords(phrases[i]); if (phrases[i].length < len || numWords < len) { if (i == phrases.length - 1) { phrases[i - 1] = phrases[i - 1] + phrases[i]; var k = 0; while (k < phrases.length - 1) { if (phrases[i - 1 - k].length < len) { k++; phrases[i - 1 - k] = phrases[i - 1 - k] + phrases[i - k]; phrases[i - k] = "" } else { break } } } else { phrases[i + 1] = phrases[i] + phrases[i + 1] } phrases[i] = "" } } return phrases }, PrepareText: function(text) { text = String(text); if (text && text.length > 1) { text = text.toLowerCase(); if (text == ".") { text = "dot" } text = text.replace(/(^\s*[\.\?!,\-:]*\s*)|(\s*[\.\?!,:]+\s*$)/g, "") } return text }, IsExist: function(sStr, fStr) { if (!sStr || !fStr) return false; var pos = sStr.indexOf(fStr); if ( - 1 !== pos) { return pos } else { return false } }, GetCurrentTime: function() { var now = new Date(); var year = now.getFullYear(); var month = now.getMonth() + 1; var day = now.getDate(); var hour = now.getHours(); var minute = now.getMinutes(); var second = now.getSeconds(); return year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second }, StrReplace: function(sStr, sPosition, fCharacter, fStr) { var ePosition = sStr.indexOf(fCharacter, sPosition); if ( - 1 == ePosition) ePosition = sStr.length - 1; var sLen = ePosition - sPosition + 1; var pStr = sStr.slice(0, sPosition - 1); var cStr = sStr.slice(ePosition + 1); if (fStr) { sStr = pStr + fStr + cStr } else { sStr = pStr + cStr } return sStr }, GetShortStr: function(sStr, sLen) { if (sStr.length > sLen) { var tempStr = sStr.slice(0, sLen); tempStr = tempStr + "..."; return tempStr } else { return sStr } }, Scaling: function(width, height, limitWidth, limitHeight, rate) { if (width <= 0 || width <= 0) return { width: limitWidth, height: limitHeight }; var w = 0; var h = 0; if (width * rate <= limitWidth) { w = width * rate; h = w / width * height; if (h > limitHeight) { h = limitHeight; w = limitHeight / height * width } return { width: w, height: h } } else { w = limitWidth; h = limitWidth / width * height; if (h > limitHeight) { h = limitHeight; w = limitHeight / height * width } return { width: w, height: h } } return { width: w, height: h } }, InArray: function(stringToSearch, arrayToSearch) { for (s = 0; s < arrayToSearch.length; s++) { thisEntry = arrayToSearch[s].toString(); if (thisEntry == stringToSearch) return true } return false }, SplitString: function(str) { if (typeof str != 'string') return []; var phrases = YX.Utils.StrPhrase(str); var rePhrases = new Array(); if (phrases.length < 2) return phrases; var numWords = 0; var k = 0; rePhrases[k] = ""; for (var i = 0, j = phrases.length; i < j; i++) { numWords = YX.Utils.countWords(phrases[i]); if (phrases[i].length < YX.systemSplitLength || numWords < YX.systemSplitWords) { if ((rePhrases[k].length + phrases[i].length) <= YX.systemSplitMaxLength) { rePhrases[k] += phrases[i] } else if (phrases[i].length == 1) { rePhrases[k] += phrases[i] } else { k = k + 1; rePhrases[k] = ""; rePhrases[k] += phrases[i] } } else { if ((rePhrases[k].length + phrases[i].length) <= YX.systemSplitMaxLength) { rePhrases[k] += phrases[i] } else { k = k + 1; rePhrases[k] = ""; rePhrases[k] += phrases[i] } } } phrases.length = 0; if (rePhrases[0] == '') rePhrases = rePhrases.slice(1); return rePhrases }, StrPhrase: function(strStr) { var phrases = new Array(); var tempI = 0; var startS = 0; var endS = 0; var tempString = ""; if (strStr == "") return []; for (var i = 0, l = strStr.length; i < l; i++) { for (var j = 0, k = YX.systemSplitDot.length; j < k; j++) { if (strStr.charAt(i) == YX.systemSplitDot[j]) { endS = i; tempString = strStr.slice(startS, endS); if (tempString.length >= YX.systemSplitMaxStringLength) { while (tempString.length >= YX.systemSplitMaxStringLength) { phrases[tempI] = tempString.slice(0, YX.systemSplitMaxStringLength); tempI += 1; tempString = tempString.slice(YX.systemSplitMaxStringLength) } if (tempString != "") { phrases[tempI] = tempString; tempI += 1 } } else { phrases[tempI] = strStr.slice(startS, endS); tempI += 1 } startS = endS + 1; phrases[tempI] = strStr.charAt(i); tempI += 1; break } } } if (startS < strStr.length) { phrases[tempI] = strStr.slice(startS) } return phrases }, GetBodyWidthHeight: function() { var width = 0; var height = 0; if ($.browser.msie) { width = document.compatMode == "CSS1Compat" ? document.documentElement.clientWidth: document.body.clientWidth; height = document.compatMode == "CSS1Compat" ? document.documentElement.clientHeight: document.body.clientHeight } else { width = self.innerWidth; height = self.innerHeight } return { 'width': width, 'height': height } }, GetIframeBodyWidthHeight: function(iframename) { var width = 0; var height = 0; if ($.browser.msie) { width = window.frames[iframename].document.compatMode == "CSS1Compat" ? window.frames[iframename].document.documentElement.clientWidth: window.frames[iframename].document.body.clientWidth; height = window.frames[iframename].document.compatMode == "CSS1Compat" ? window.frames[iframename].document.documentElement.clientHeight: window.frames[iframename].document.body.clientHeight } else { width = window.frames[iframename].self.innerWidth; height = window.frames[iframename].self.innerHeight } return { 'width': width, 'height': height } }, RepalceSourceString: function(str, subStr, tagStr) { if (str == "") return ""; var rStr = ""; var paraseFun = str.split(subStr); for (var i = 0, j = paraseFun.length; i < j; i++) { if (i == j - 1 && paraseFun[j - 1] == "") { rStr += paraseFun[i] } else { if (i == j - 1 && paraseFun[j - 1] != "") { rStr += paraseFun[i] } else { rStr += paraseFun[i]; rStr += tagStr } } } return rStr }, PopEvent: function(event) { var event = event ? event: window.event; event.stopPropagation() }, GetOS: function() { var OsObject = ""; if (navigator.userAgent.indexOf("MSIE") > 0) { return "IE" } if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) { return "FF" } if (isSafari = navigator.userAgent.indexOf("Safari") > 0) { return "SF" } if (isCamino = navigator.userAgent.indexOf("Camino") > 0) { return "CN" } if (isMozilla = navigator.userAgent.indexOf("Gecko/") > 0) { return "GK" } }, StringWidthPinyin: function(str) { if (str == "") return ""; str = this.DeleteSpace(str); var count = YX.Utils.CountWordsLength(str); var resultStr = ""; var resultStrPinyin = ""; var endResult = ""; var charTmp = ""; var systemTipWordsLength = YX.systemTipWordsLength; var trCount = parseInt(str.length / systemTipWordsLength); trCount = (str.length % systemTipWordsLength == 0 ? trCount - 1 : trCount); for (var j = 0; j <= trCount; j++) { for (var i = systemTipWordsLength * j; i < systemTipWordsLength * (j + 1); i++) { charTmp = str.charAt(i); resultStr += "" + charTmp + ""; resultStrPinyin += "" + this.CharToPinyin(charTmp) + "" } endResult += "" + resultStrPinyin + " " + resultStr + " "; resultStr = ""; resultStrPinyin = "" } endResult = "" + endResult + "
"; return endResult }, CharToPinyin: function(char_temp) { if (char_temp == '') return ''; if (YX.configText['pinyin'][char_temp] == undefined) return ""; return " " + YX.configText['pinyin'][char_temp] + " " }, DeleteSpace: function(str) { if (str == "") return ""; str = $("#changeParticularString").html(str).html(); str = str.split(" ").join(" "); str = String($("#changeParticularString").html(str).text()); var newStr = ""; for (var i = 0; i < str.length; i++) { var charTmp = str.charAt(i); if (charTmp != " " && charTmp != "\r" && charTmp != "\n") newStr += charTmp } return newStr }, CountWordsLength: function(str) { if (str == "") return 0; str = str.toLowerCase(); var e = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', ',', '.', '?', ':', ';', '[', ']', '{', '}', '"', "'", '<', '>', "\\", '/', ' ']; var count = 0; for (var i = 0; i < str.length; i++) { if (YX.Utils.InArray(str.charAt(i), e)) { count++ } else { count = count + 2 } } return count }, IsSelfLocation: function(locationHref) { if (locationHref == "" || locationHref == "#") return true; var posHTTP = YX.Utils.IsExist(locationHref, "http://"); if (posHTTP === false || YX.Utils.IsExist(locationHref, YX.GetSimpleDomain()) !== false) return true; return false }, RemoveSpecialCharacters: function(str) { var i = 0; var chr = ""; var newStr = ""; if (!str) return ""; str = YX.Utils.trim(str); str = str.split(" ").join(""); if (str.length < 3) str = str.replace(/[~!@#\$\%\^&\*\(\)\-\_\+\=\[\]\{\}\<\>\.]/ig, ""); for (i = 0; i < str.length; i++) { chr = str.charAt(i); if (chr == " " || chr == " " || (chr == " " && i < str.length - 1 && str.charAt(i + 1) == " ") || chr == '\r' || chr == '\n' || chr == "$" || chr == "#" || chr == "|" || chr == "\\" || chr == "&") { chr = "" } else { newStr += chr } } return newStr }, UTFUrlEncode: function(str) { if (!str) return ""; return escape(str) }, UTFUrlDecode: function(str) { if (!str) return ""; return unescape(str) } }; (function (window, _undefined) { "use strict"; var soundManager = null; function SoundManager(smURL, smID) { this.setupOptions = { 'url': (smURL || null), 'flashVersion': 8, 'debugMode': true, 'debugFlash': false, 'useConsole': true, 'consoleOnly': true, 'waitForWindowLoad': false, 'bgColor': '#ffffff', 'useHighPerformance': false, 'flashPollingInterval': null, 'html5PollingInterval': null, 'flashLoadTimeout': 1000, 'wmode': null, 'allowScriptAccess': 'always', 'useFlashBlock': false, 'useHTML5Audio': true, 'html5Test': /^(probably|maybe)$/i, 'preferFlash': false, 'noSWFCache': false, 'idPrefix': 'sound' }; this.defaultOptions = { 'autoLoad': false, 'autoPlay': false, 'from': null, 'loops': 1, 'onid3': null, 'onload': null, 'whileloading': null, 'onplay': null, 'onpause': null, 'onresume': null, 'whileplaying': null, 'onposition': null, 'onstop': null, 'onfailure': null, 'onfinish': null, 'multiShot': true, 'multiShotEvents': false, 'position': null, 'pan': 0, 'stream': true, 'to': null, 'type': null, 'usePolicyFile': false, 'volume': 100 }; this.flash9Options = { 'isMovieStar': null, 'usePeakData': false, 'useWaveformData': false, 'useEQData': false, 'onbufferchange': null, 'ondataerror': null }; this.movieStarOptions = { 'bufferTime': 3, 'serverURL': null, 'onconnect': null, 'duration': null }; this.audioFormats = { 'mp3': { 'type': ['audio/mpeg; codecs="mp3"', 'audio/mpeg', 'audio/mp3', 'audio/MPA', 'audio/mpa-robust'], 'required': true }, 'mp4': { 'related': ['aac', 'm4a', 'm4b'], 'type': ['audio/mp4; codecs="mp4a.40.2"', 'audio/aac', 'audio/x-m4a', 'audio/MP4A-LATM', 'audio/mpeg4-generic'], 'required': false }, 'ogg': { 'type': ['audio/ogg; codecs=vorbis'], 'required': false }, 'opus': { 'type': ['audio/ogg; codecs=opus', 'audio/opus'], 'required': false }, 'wav': { 'type': ['audio/wav; codecs="1"', 'audio/wav', 'audio/wave', 'audio/x-wav'], 'required': false } }; this.movieID = 'sm2-container'; this.id = (smID || 'sm2movie'); this.debugID = 'soundmanager-debug'; this.debugURLParam = /([#?&])debug=1/i; this.versionNumber = 'V2.97a.20131201'; this.version = null; this.movieURL = null; this.altURL = null; this.swfLoaded = false; this.enabled = false; this.oMC = null; this.sounds = {}; this.soundIDs = []; this.muted = false; this.didFlashBlock = false; this.filePattern = null; this.filePatterns = { 'flash8': /\.mp3(\?.*)?$/i, 'flash9': /\.mp3(\?.*)?$/i }; this.features = { 'buffering': false, 'peakData': false, 'waveformData': false, 'eqData': false, 'movieStar': false }; this.sandbox = { }; this.html5 = { 'usingFlash': null }; this.flash = {}; this.html5Only = false; this.ignoreFlash = false; var SMSound, sm2 = this, globalHTML5Audio = null, flash = null, sm = 'soundManager', smc = sm + ': ', h5 = 'HTML5::', id, ua = navigator.userAgent, wl = window.location.href.toString(), doc = document, doNothing, setProperties, init, fV, on_queue = [], debugOpen = true, debugTS, didAppend = false, appendSuccess = false, didInit = false, disabled = false, windowLoaded = false, _wDS, wdCount = 0, initComplete, mixin, assign, extraOptions, addOnEvent, processOnEvents, initUserOnload, delayWaitForEI, waitForEI, rebootIntoHTML5, setVersionInfo, handleFocus, strings, initMovie, preInit, domContentLoaded, winOnLoad, didDCLoaded, getDocument, createMovie, catchError, setPolling, initDebug, debugLevels = ['log', 'info', 'warn', 'error'], defaultFlashVersion = 8, disableObject, failSafely, normalizeMovieURL, oRemoved = null, oRemovedHTML = null, str, flashBlockHandler, getSWFCSS, swfCSS, toggleDebug, loopFix, policyFix, complain, idCheck, waitingForEI = false, initPending = false, startTimer, stopTimer, timerExecute, h5TimerCount = 0, h5IntervalTimer = null, parseURL, messages = [], canIgnoreFlash, needsFlash = null, featureCheck, html5OK, html5CanPlay, html5Ext, html5Unload, domContentLoadedIE, testHTML5, event, slice = Array.prototype.slice, useGlobalHTML5Audio = false, lastGlobalHTML5URL, hasFlash, detectFlash, badSafariFix, html5_events, showSupport, flushMessages, wrapCallback, idCounter = 0, is_iDevice = ua.match(/(ipad|iphone|ipod)/i), isAndroid = ua.match(/android/i), isIE = ua.match(/msie/i), isWebkit = ua.match(/webkit/i), isSafari = (ua.match(/safari/i) && !ua.match(/chrome/i)), isOpera = (ua.match(/opera/i)), mobileHTML5 = (ua.match(/(mobile|pre\/|xoom)/i) || is_iDevice || isAndroid), isBadSafari = (!wl.match(/usehtml5audio/i) && !wl.match(/sm2\-ignorebadua/i) && isSafari && !ua.match(/silk/i) && ua.match(/OS X 10_6_([3-7])/i)), hasConsole = (window.console !== _undefined && console.log !== _undefined), isFocused = (doc.hasFocus !== _undefined ? doc.hasFocus() : null), tryInitOnFocus = (isSafari && (doc.hasFocus === _undefined || !doc.hasFocus())), okToDisable = !tryInitOnFocus, flashMIME = /(mp3|mp4|mpa|m4a|m4b)/i, msecScale = 1000, emptyURL = 'about:blank', emptyWAV = 'data:audio/wave;base64,/UklGRiYAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQIAAAD//w==', overHTTP = (doc.location ? doc.location.protocol.match(/http/i) : null), http = (!overHTTP ? 'http:/' + '/' : ''), netStreamMimeTypes = /^\s*audio\/(?:x-)?(?:mpeg4|aac|flv|mov|mp4||m4v|m4a|m4b|mp4v|3gp|3g2)\s*(?:$|;)/i, netStreamTypes = ['mpeg4', 'aac', 'flv', 'mov', 'mp4', 'm4v', 'f4v', 'm4a', 'm4b', 'mp4v', '3gp', '3g2'], netStreamPattern = new RegExp('\\.(' + netStreamTypes.join('|') + ')(\\?.*)?$', 'i'); this.mimePattern = /^\s*audio\/(?:x-)?(?:mp(?:eg|3))\s*(?:$|;)/i; this.useAltURL = !overHTTP; swfCSS = { 'swfBox': 'sm2-object-box', 'swfDefault': 'movieContainer', 'swfError': 'swf_error', 'swfTimedout': 'swf_timedout', 'swfLoaded': 'swf_loaded', 'swfUnblocked': 'swf_unblocked', 'sm2Debug': 'sm2_debug', 'highPerf': 'high_performance', 'flashDebug': 'flash_debug' }; this.hasHTML5 = (function () { try { return (Audio !== _undefined && (isOpera && opera !== _undefined && opera.version() < 10 ? new Audio(null) : new Audio()).canPlayType !== _undefined); } catch (e) { return false; } }()); this.setup = function (options) { var noURL = (!sm2.url); if (options !== _undefined && didInit && needsFlash && sm2.ok() && (options.flashVersion !== _undefined || options.url !== _undefined || options.html5Test !== _undefined)) { } assign(options); if (options) { if (noURL && didDCLoaded && options.url !== _undefined) { sm2.beginDelayedInit(); } if (!didDCLoaded && options.url !== _undefined && doc.readyState === 'complete') { setTimeout(domContentLoaded, 1); } } return sm2; }; this.ok = function () { return (needsFlash ? (didInit && !disabled) : (sm2.useHTML5Audio && sm2.hasHTML5)); }; this.supported = this.ok; this.getMovie = function (smID) { return id(smID) || doc[smID] || window[smID]; }; this.createSound = function (oOptions, _url) { var cs, cs_string, options, oSound = null; if (!didInit || !sm2.ok()) { return false; } if (_url !== _undefined) { oOptions = { 'id': oOptions, 'url': _url }; } options = mixin(oOptions); options.url = parseURL(options.url); if (options.id === undefined) { options.id = sm2.setupOptions.idPrefix + (idCounter++); } if (idCheck(options.id, true)) { return sm2.sounds[options.id]; } function make() { options = loopFix(options); sm2.sounds[options.id] = new SMSound(options); sm2.soundIDs.push(options.id); return sm2.sounds[options.id]; } if (html5OK(options)) { oSound = make(); oSound._setup_html5(options); } else { if (sm2.html5Only) { return make(); } if (sm2.html5.usingFlash && options.url && options.url.match(/data\:/i)) { return make(); } if (fV > 8) { if (options.isMovieStar === null) { options.isMovieStar = !!(options.serverURL || (options.type ? options.type.match(netStreamMimeTypes) : false) || (options.url && options.url.match(netStreamPattern))); } } options = policyFix(options, cs); oSound = make(); if (fV === 8) { flash._createSound(options.id, options.loops || 1, options.usePolicyFile); } else { flash._createSound(options.id, options.url, options.usePeakData, options.useWaveformData, options.useEQData, options.isMovieStar, (options.isMovieStar ? options.bufferTime : false), options.loops || 1, options.serverURL, options.duration || null, options.autoPlay, true, options.autoLoad, options.usePolicyFile); if (!options.serverURL) { oSound.connected = true; if (options.onconnect) { options.onconnect.apply(oSound); } } } if (!options.serverURL && (options.autoLoad || options.autoPlay)) { oSound.load(options); } } if (!options.serverURL && options.autoPlay) { oSound.play(); } return oSound; }; this.destroySound = function (sID, _bFromSound) { if (!idCheck(sID)) { return false; } var oS = sm2.sounds[sID], i; oS._iO = {}; oS.stop(); oS.unload(); for (i = 0; i < sm2.soundIDs.length; i++) { if (sm2.soundIDs[i] === sID) { sm2.soundIDs.splice(i, 1); break; } } if (!_bFromSound) { oS.destruct(true); } oS = null; delete sm2.sounds[sID]; return true; }; this.load = function (sID, oOptions) { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].load(oOptions); }; this.unload = function (sID) { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].unload(); }; this.onPosition = function (sID, nPosition, oMethod, oScope) { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].onposition(nPosition, oMethod, oScope); }; this.onposition = this.onPosition; this.clearOnPosition = function (sID, nPosition, oMethod) { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].clearOnPosition(nPosition, oMethod); }; this.play = function (sID, oOptions) { var result = null, overloaded = (oOptions && !(oOptions instanceof Object)); if (!didInit || !sm2.ok()) { return false; } if (!idCheck(sID, overloaded)) { if (!overloaded) { return false; } if (overloaded) { oOptions = { url: oOptions }; } if (oOptions && oOptions.url) { oOptions.id = sID; result = sm2.createSound(oOptions).play(); } } else if (overloaded) { oOptions = { url: oOptions }; } if (result === null) { result = sm2.sounds[sID].play(oOptions); } return result; }; this.start = this.play; this.setPosition = function (sID, nMsecOffset) { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].setPosition(nMsecOffset); }; this.stop = function (sID) { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].stop(); }; this.stopAll = function () { var oSound; for (oSound in sm2.sounds) { if (sm2.sounds.hasOwnProperty(oSound)) { sm2.sounds[oSound].stop(); } } }; this.pause = function (sID) { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].pause(); }; this.pauseAll = function () { var i; for (i = sm2.soundIDs.length - 1; i >= 0; i--) { sm2.sounds[sm2.soundIDs[i]].pause(); } }; this.resume = function (sID) { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].resume(); }; this.resumeAll = function () { var i; for (i = sm2.soundIDs.length - 1; i >= 0; i--) { sm2.sounds[sm2.soundIDs[i]].resume(); } }; this.togglePause = function (sID) { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].togglePause(); }; this.setPan = function (sID, nPan) { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].setPan(nPan); }; this.setVolume = function (sID, nVol) { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].setVolume(nVol); }; this.mute = function (sID) { var i = 0; if (sID instanceof String) { sID = null; } if (!sID) { for (i = sm2.soundIDs.length - 1; i >= 0; i--) { sm2.sounds[sm2.soundIDs[i]].mute(); } sm2.muted = true; } else { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].mute(); } return true; }; this.muteAll = function () { sm2.mute(); }; this.unmute = function (sID) { var i; if (sID instanceof String) { sID = null; } if (!sID) { for (i = sm2.soundIDs.length - 1; i >= 0; i--) { sm2.sounds[sm2.soundIDs[i]].unmute(); } sm2.muted = false; } else { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].unmute(); } return true; }; this.unmuteAll = function () { sm2.unmute(); }; this.toggleMute = function (sID) { if (!idCheck(sID)) { return false; } return sm2.sounds[sID].toggleMute(); }; this.getMemoryUse = function () { var ram = 0; if (flash && fV !== 8) { ram = parseInt(flash._getMemoryUse(), 10); } return ram; }; this.disable = function (bNoDisable) { var i; if (bNoDisable === _undefined) { bNoDisable = false; } if (disabled) { return false; } disabled = true; for (i = sm2.soundIDs.length - 1; i >= 0; i--) { disableObject(sm2.sounds[sm2.soundIDs[i]]); } initComplete(bNoDisable); event.remove(window, 'load', initUserOnload); return true; }; this.canPlayMIME = function (sMIME) { var result; if (sm2.hasHTML5) { result = html5CanPlay({ type: sMIME }); } if (!result && needsFlash) { result = (sMIME && sm2.ok() ? !!((fV > 8 ? sMIME.match(netStreamMimeTypes) : null) || sMIME.match(sm2.mimePattern)) : null); } return result; }; this.canPlayURL = function (sURL) { var result; if (sm2.hasHTML5) { result = html5CanPlay({ url: sURL }); } if (!result && needsFlash) { result = (sURL && sm2.ok() ? !!(sURL.match(sm2.filePattern)) : null); } return result; }; this.canPlayLink = function (oLink) { if (oLink.type !== _undefined && oLink.type) { if (sm2.canPlayMIME(oLink.type)) { return true; } } return sm2.canPlayURL(oLink.href); }; this.getSoundById = function (sID, _suppressDebug) { if (!sID) { return null; } var result = sm2.sounds[sID]; return result; }; this.onready = function (oMethod, oScope) { var sType = 'onready', result = false; if (typeof oMethod === 'function') { if (!oScope) { oScope = window; } addOnEvent(sType, oMethod, oScope); processOnEvents(); result = true; } else { throw str('needFunction', sType); } return result; }; this.ontimeout = function (oMethod, oScope) { var sType = 'ontimeout', result = false; if (typeof oMethod === 'function') { if (!oScope) { oScope = window; } addOnEvent(sType, oMethod, oScope); processOnEvents({ type: sType }); result = true; } else { throw str('needFunction', sType); } return result; }; this._writeDebug = function (sText, sTypeOrObject) { return true; }; this._wD = this._writeDebug; this._debug = function () { }; this.reboot = function (resetEvents, excludeInit) { var i, j, k; for (i = sm2.soundIDs.length - 1; i >= 0; i--) { sm2.sounds[sm2.soundIDs[i]].destruct(); } if (flash) { try { if (isIE) { oRemovedHTML = flash.innerHTML; } oRemoved = flash.parentNode.removeChild(flash); } catch (e) { } } oRemovedHTML = oRemoved = needsFlash = flash = null; sm2.enabled = didDCLoaded = didInit = waitingForEI = initPending = didAppend = appendSuccess = disabled = useGlobalHTML5Audio = sm2.swfLoaded = false; sm2.soundIDs = []; sm2.sounds = {}; idCounter = 0; if (!resetEvents) { for (i in on_queue) { if (on_queue.hasOwnProperty(i)) { for (j = 0, k = on_queue[i].length; j < k; j++) { on_queue[i][j].fired = false; } } } } else { on_queue = []; } sm2.html5 = { 'usingFlash': null }; sm2.flash = {}; sm2.html5Only = false; sm2.ignoreFlash = false; window.setTimeout(function () { preInit(); if (!excludeInit) { sm2.beginDelayedInit(); } }, 20); return sm2; }; this.reset = function () { return sm2.reboot(true, true); }; this.getMoviePercent = function () { return (flash && 'PercentLoaded' in flash ? flash.PercentLoaded() : null); }; this.beginDelayedInit = function () { windowLoaded = true; domContentLoaded(); setTimeout(function () { if (initPending) { return false; } createMovie(); initMovie(); initPending = true; return true; }, 20); delayWaitForEI(); }; this.destruct = function () { sm2.disable(true); }; SMSound = function (oOptions) { var s = this, resetProperties, add_html5_events, remove_html5_events, stop_html5_timer, start_html5_timer, attachOnPosition, onplay_called = false, onPositionItems = [], onPositionFired = 0, detachOnPosition, applyFromTo, lastURL = null, lastHTML5State, urlOmitted; lastHTML5State = { duration: null, time: null }; this.id = oOptions.id; this.sID = this.id; this.url = oOptions.url; this.options = mixin(oOptions); this.instanceOptions = this.options; this._iO = this.instanceOptions; this.pan = this.options.pan; this.volume = this.options.volume; this.isHTML5 = false; this._a = null; urlOmitted = (this.url ? false : true); this.id3 = {}; this._debug = function () { }; this.load = function (oOptions) { var oSound = null, instanceOptions; if (oOptions !== _undefined) { s._iO = mixin(oOptions, s.options); } else { oOptions = s.options; s._iO = oOptions; if (lastURL && lastURL !== s.url) { s._iO.url = s.url; s.url = null; } } if (!s._iO.url) { s._iO.url = s.url; } s._iO.url = parseURL(s._iO.url); s.instanceOptions = s._iO; instanceOptions = s._iO; if (!instanceOptions.url && !s.url) { return s; } if (instanceOptions.url === s.url && s.readyState !== 0 && s.readyState !== 2) { if (s.readyState === 3 && instanceOptions.onload) { wrapCallback(s, function () { instanceOptions.onload.apply(s, [(!!s.duration)]); }); } return s; } s.loaded = false; s.readyState = 1; s.playState = 0; s.id3 = {}; if (html5OK(instanceOptions)) { oSound = s._setup_html5(instanceOptions); if (!oSound._called_load) { s._html5_canplay = false; if (s.url !== instanceOptions.url) { s._a.src = instanceOptions.url; s.setPosition(0); } s._a.autobuffer = 'auto'; s._a.preload = 'auto'; s._a._called_load = true; } else { } } else { if (sm2.html5Only) { return s; } if (s._iO.url && s._iO.url.match(/data\:/i)) { return s; } try { s.isHTML5 = false; s._iO = policyFix(loopFix(instanceOptions)); instanceOptions = s._iO; if (fV === 8) { flash._load(s.id, instanceOptions.url, instanceOptions.stream, instanceOptions.autoPlay, instanceOptions.usePolicyFile); } else { flash._load(s.id, instanceOptions.url, !!(instanceOptions.stream), !!(instanceOptions.autoPlay), instanceOptions.loops || 1, !!(instanceOptions.autoLoad), instanceOptions.usePolicyFile); } } catch (e) { catchError({ type: 'SMSOUND_LOAD_JS_EXCEPTION', fatal: true }); } } s.url = instanceOptions.url; return s; }; this.unload = function () { if (s.readyState !== 0) { if (!s.isHTML5) { if (fV === 8) { flash._unload(s.id, emptyURL); } else { flash._unload(s.id); } } else { stop_html5_timer(); if (s._a) { s._a.pause(); lastURL = html5Unload(s._a); } } resetProperties(); } return s; }; this.destruct = function (_bFromSM) { if (!s.isHTML5) { s._iO.onfailure = null; flash._destroySound(s.id); } else { stop_html5_timer(); if (s._a) { s._a.pause(); html5Unload(s._a); if (!useGlobalHTML5Audio) { remove_html5_events(); } s._a._s = null; s._a = null; } } if (!_bFromSM) { sm2.destroySound(s.id, true); } }; this.play = function (oOptions, _updatePlayState) { var fN, allowMulti, a, onready, audioClone, onended, oncanplay, startOK = true, exit = null; _updatePlayState = (_updatePlayState === _undefined ? true : _updatePlayState); if (!oOptions) { oOptions = {}; } if (s.url) { s._iO.url = s.url; } s._iO = mixin(s._iO, s.options); s._iO = mixin(oOptions, s._iO); s._iO.url = parseURL(s._iO.url); s.instanceOptions = s._iO; if (!s.isHTML5 && s._iO.serverURL && !s.connected) { if (!s.getAutoPlay()) { s.setAutoPlay(true); } return s; } if (html5OK(s._iO)) { s._setup_html5(s._iO); start_html5_timer(); } if (s.playState === 1 && !s.paused) { allowMulti = s._iO.multiShot; if (!allowMulti) { if (s.isHTML5) { s.setPosition(s._iO.position); } exit = s; } else { } } if (exit !== null) { return exit; } if (oOptions.url && oOptions.url !== s.url) { if (!s.readyState && !s.isHTML5 && fV === 8 && urlOmitted) { urlOmitted = false; } else { s.load(s._iO); } } if (!s.loaded) { if (s.readyState === 0) { if (!s.isHTML5 && !sm2.html5Only) { s._iO.autoPlay = true; s.load(s._iO); } else if (s.isHTML5) { s.load(s._iO); } else { exit = s; } s.instanceOptions = s._iO; } else if (s.readyState === 2) { exit = s; } else { } } else { } if (exit !== null) { return exit; } if (!s.isHTML5 && fV === 9 && s.position > 0 && s.position === s.duration) { oOptions.position = 0; } if (s.paused && s.position >= 0 && (!s._iO.serverURL || s.position > 0)) { s.resume(); } else { s._iO = mixin(oOptions, s._iO); if (s._iO.from !== null && s._iO.to !== null && s.instanceCount === 0 && s.playState === 0 && !s._iO.serverURL) { onready = function () { s._iO = mixin(oOptions, s._iO); s.play(s._iO); }; if (s.isHTML5 && !s._html5_canplay) { s.load({ _oncanplay: onready }); exit = false; } else if (!s.isHTML5 && !s.loaded && (!s.readyState || s.readyState !== 2)) { s.load({ onload: onready }); exit = false; } if (exit !== null) { return exit; } s._iO = applyFromTo(); } if (!s.instanceCount || s._iO.multiShotEvents || (s.isHTML5 && s._iO.multiShot && !useGlobalHTML5Audio) || (!s.isHTML5 && fV > 8 && !s.getAutoPlay())) { s.instanceCount++; } if (s._iO.onposition && s.playState === 0) { attachOnPosition(s); } s.playState = 1; s.paused = false; s.position = (s._iO.position !== _undefined && !isNaN(s._iO.position) ? s._iO.position : 0); if (!s.isHTML5) { s._iO = policyFix(loopFix(s._iO)); } if (s._iO.onplay && _updatePlayState) { s._iO.onplay.apply(s); onplay_called = true; } s.setVolume(s._iO.volume, true); s.setPan(s._iO.pan, true); if (!s.isHTML5) { startOK = flash._start(s.id, s._iO.loops || 1, (fV === 9 ? s.position : s.position / msecScale), s._iO.multiShot || false); if (fV === 9 && !startOK) { if (s._iO.onplayerror) { s._iO.onplayerror.apply(s); } } } else { if (s.instanceCount < 2) { start_html5_timer(); a = s._setup_html5(); s.setPosition(s._iO.position); a.play(); } else { audioClone = new Audio(s._iO.url); onended = function () { event.remove(audioClone, 'ended', onended); s._onfinish(s); html5Unload(audioClone); audioClone = null; }; oncanplay = function () { event.remove(audioClone, 'canplay', oncanplay); try { audioClone.currentTime = s._iO.position / msecScale; } catch (err) { } audioClone.play(); }; event.add(audioClone, 'ended', onended); if (s._iO.volume !== undefined) { audioClone.volume = Math.max(0, Math.min(1, s._iO.volume / 100)); } if (s.muted) { audioClone.muted = true; } if (s._iO.position) { event.add(audioClone, 'canplay', oncanplay); } else { audioClone.play(); } } } } return s; }; this.start = this.play; this.stop = function (bAll) { var instanceOptions = s._iO, originalPosition; if (s.playState === 1) { s._onbufferchange(0); s._resetOnPosition(0); s.paused = false; if (!s.isHTML5) { s.playState = 0; } detachOnPosition(); if (instanceOptions.to) { s.clearOnPosition(instanceOptions.to); } if (!s.isHTML5) { flash._stop(s.id, bAll); if (instanceOptions.serverURL) { s.unload(); } } else { if (s._a) { originalPosition = s.position; s.setPosition(0); s.position = originalPosition; s._a.pause(); s.playState = 0; s._onTimer(); stop_html5_timer(); } } s.instanceCount = 0; s._iO = {}; if (instanceOptions.onstop) { instanceOptions.onstop.apply(s); } } return s; }; this.setAutoPlay = function (autoPlay) { s._iO.autoPlay = autoPlay; if (!s.isHTML5) { flash._setAutoPlay(s.id, autoPlay); if (autoPlay) { if (!s.instanceCount && s.readyState === 1) { s.instanceCount++; } } } }; this.getAutoPlay = function () { return s._iO.autoPlay; }; this.setPosition = function (nMsecOffset) { if (nMsecOffset === _undefined) { nMsecOffset = 0; } var position, position1K, offset = (s.isHTML5 ? Math.max(nMsecOffset, 0) : Math.min(s.duration || s._iO.duration, Math.max(nMsecOffset, 0))); s.position = offset; position1K = s.position / msecScale; s._resetOnPosition(s.position); s._iO.position = offset; if (!s.isHTML5) { position = (fV === 9 ? s.position : position1K); if (s.readyState && s.readyState !== 2) { flash._setPosition(s.id, position, (s.paused || !s.playState), s._iO.multiShot); } } else if (s._a) { if (s._html5_canplay) { if (s._a.currentTime !== position1K) { try { s._a.currentTime = position1K; if (s.playState === 0 || s.paused) { s._a.pause(); } } catch (e) { } } } else if (position1K) { return s; } if (s.paused) { s._onTimer(true); } } return s; }; this.pause = function (_bCallFlash) { if (s.paused || (s.playState === 0 && s.readyState !== 1)) { return s; } s.paused = true; if (!s.isHTML5) { if (_bCallFlash || _bCallFlash === _undefined) { flash._pause(s.id, s._iO.multiShot); } } else { s._setup_html5().pause(); stop_html5_timer(); } if (s._iO.onpause) { s._iO.onpause.apply(s); } return s; }; this.resume = function () { var instanceOptions = s._iO; if (!s.paused) { return s; } s.paused = false; s.playState = 1; if (!s.isHTML5) { if (instanceOptions.isMovieStar && !instanceOptions.serverURL) { s.setPosition(s.position); } flash._pause(s.id, instanceOptions.multiShot); } else { s._setup_html5().play(); start_html5_timer(); } if (!onplay_called && instanceOptions.onplay) { instanceOptions.onplay.apply(s); onplay_called = true; } else if (instanceOptions.onresume) { instanceOptions.onresume.apply(s); } return s; }; this.togglePause = function () { if (s.playState === 0) { s.play({ position: (fV === 9 && !s.isHTML5 ? s.position : s.position / msecScale) }); return s; } if (s.paused) { s.resume(); } else { s.pause(); } return s; }; this.setPan = function (nPan, bInstanceOnly) { if (nPan === _undefined) { nPan = 0; } if (bInstanceOnly === _undefined) { bInstanceOnly = false; } if (!s.isHTML5) { flash._setPan(s.id, nPan); } s._iO.pan = nPan; if (!bInstanceOnly) { s.pan = nPan; s.options.pan = nPan; } return s; }; this.setVolume = function (nVol, _bInstanceOnly) { if (nVol === _undefined) { nVol = 100; } if (_bInstanceOnly === _undefined) { _bInstanceOnly = false; } if (!s.isHTML5) { flash._setVolume(s.id, (sm2.muted && !s.muted) || s.muted ? 0 : nVol); } else if (s._a) { if (sm2.muted && !s.muted) { s.muted = true; s._a.muted = true; } s._a.volume = Math.max(0, Math.min(1, nVol / 100)); } s._iO.volume = nVol; if (!_bInstanceOnly) { s.volume = nVol; s.options.volume = nVol; } return s; }; this.mute = function () { s.muted = true; if (!s.isHTML5) { flash._setVolume(s.id, 0); } else if (s._a) { s._a.muted = true; } return s; }; this.unmute = function () { s.muted = false; var hasIO = (s._iO.volume !== _undefined); if (!s.isHTML5) { flash._setVolume(s.id, hasIO ? s._iO.volume : s.options.volume); } else if (s._a) { s._a.muted = false; } return s; }; this.toggleMute = function () { return (s.muted ? s.unmute() : s.mute()); }; this.onPosition = function (nPosition, oMethod, oScope) { onPositionItems.push({ position: parseInt(nPosition, 10), method: oMethod, scope: (oScope !== _undefined ? oScope : s), fired: false }); return s; }; this.onposition = this.onPosition; this.clearOnPosition = function (nPosition, oMethod) { var i; nPosition = parseInt(nPosition, 10); if (isNaN(nPosition)) { return false; } for (i = 0; i < onPositionItems.length; i++) { if (nPosition === onPositionItems[i].position) { if (!oMethod || (oMethod === onPositionItems[i].method)) { if (onPositionItems[i].fired) { onPositionFired--; } onPositionItems.splice(i, 1); } } } }; this._processOnPosition = function () { var i, item, j = onPositionItems.length; if (!j || !s.playState || onPositionFired >= j) { return false; } for (i = j - 1; i >= 0; i--) { item = onPositionItems[i]; if (!item.fired && s.position >= item.position) { item.fired = true; onPositionFired++; item.method.apply(item.scope, [item.position]); j = onPositionItems.length; } } return true; }; this._resetOnPosition = function (nPosition) { var i, item, j = onPositionItems.length; if (!j) { return false; } for (i = j - 1; i >= 0; i--) { item = onPositionItems[i]; if (item.fired && nPosition <= item.position) { item.fired = false; onPositionFired--; } } return true; }; applyFromTo = function () { var instanceOptions = s._iO, f = instanceOptions.from, t = instanceOptions.to, start, end; end = function () { s.clearOnPosition(t, end); s.stop(); }; start = function () { if (t !== null && !isNaN(t)) { s.onPosition(t, end); } }; if (f !== null && !isNaN(f)) { instanceOptions.position = f; instanceOptions.multiShot = false; start(); } return instanceOptions; }; attachOnPosition = function () { var item, op = s._iO.onposition; if (op) { for (item in op) { if (op.hasOwnProperty(item)) { s.onPosition(parseInt(item, 10), op[item]); } } } }; detachOnPosition = function () { var item, op = s._iO.onposition; if (op) { for (item in op) { if (op.hasOwnProperty(item)) { s.clearOnPosition(parseInt(item, 10)); } } } }; start_html5_timer = function () { if (s.isHTML5) { startTimer(s); } }; stop_html5_timer = function () { if (s.isHTML5) { stopTimer(s); } }; resetProperties = function (retainPosition) { if (!retainPosition) { onPositionItems = []; onPositionFired = 0; } onplay_called = false; s._hasTimer = null; s._a = null; s._html5_canplay = false; s.bytesLoaded = null; s.bytesTotal = null; s.duration = (s._iO && s._iO.duration ? s._iO.duration : null); s.durationEstimate = null; s.buffered = []; s.eqData = []; s.eqData.left = []; s.eqData.right = []; s.failures = 0; s.isBuffering = false; s.instanceOptions = {}; s.instanceCount = 0; s.loaded = false; s.metadata = {}; s.readyState = 0; s.muted = false; s.paused = false; s.peakData = { left: 0, right: 0 }; s.waveformData = { left: [], right: [] }; s.playState = 0; s.position = null; s.id3 = {}; }; resetProperties(); this._onTimer = function (bForce) { var duration, isNew = false, time, x = {}; if (s._hasTimer || bForce) { if (s._a && (bForce || ((s.playState > 0 || s.readyState === 1) && !s.paused))) { duration = s._get_html5_duration(); if (duration !== lastHTML5State.duration) { lastHTML5State.duration = duration; s.duration = duration; isNew = true; } s.durationEstimate = s.duration; time = (s._a.currentTime * msecScale || 0); if (time !== lastHTML5State.time) { lastHTML5State.time = time; isNew = true; } if (isNew || bForce) { s._whileplaying(time, x, x, x, x); } } return isNew; } }; this._get_html5_duration = function () { var instanceOptions = s._iO, d = (s._a && s._a.duration ? s._a.duration * msecScale : (instanceOptions && instanceOptions.duration ? instanceOptions.duration : null)), result = (d && !isNaN(d) && d !== Infinity ? d : null); return result; }; this._apply_loop = function (a, nLoops) { a.loop = (nLoops > 1 ? 'loop' : ''); }; this._setup_html5 = function (oOptions) { var instanceOptions = mixin(s._iO, oOptions), a = useGlobalHTML5Audio ? globalHTML5Audio : s._a, dURL = decodeURI(instanceOptions.url), sameURL; if (useGlobalHTML5Audio) { if (dURL === decodeURI(lastGlobalHTML5URL)) { sameURL = true; } } else if (dURL === decodeURI(lastURL)) { sameURL = true; } if (a) { if (a._s) { if (useGlobalHTML5Audio) { if (a._s && a._s.playState && !sameURL) { a._s.stop(); } } else if (!useGlobalHTML5Audio && dURL === decodeURI(lastURL)) { s._apply_loop(a, instanceOptions.loops); return a; } } if (!sameURL) { if (lastURL) { resetProperties(false); } a.src = instanceOptions.url; s.url = instanceOptions.url; lastURL = instanceOptions.url; lastGlobalHTML5URL = instanceOptions.url; a._called_load = false; } } else { if (instanceOptions.autoLoad || instanceOptions.autoPlay) { s._a = new Audio(instanceOptions.url); s._a.load(); } else { s._a = (isOpera && opera.version() < 10 ? new Audio(null) : new Audio()); } a = s._a; a._called_load = false; if (useGlobalHTML5Audio) { globalHTML5Audio = a; } } s.isHTML5 = true; s._a = a; a._s = s; add_html5_events(); s._apply_loop(a, instanceOptions.loops); if (instanceOptions.autoLoad || instanceOptions.autoPlay) { s.load(); } else { a.autobuffer = false; a.preload = 'auto'; } return a; }; add_html5_events = function () { if (s._a._added_events) { return false; } var f; function add(oEvt, oFn, bCapture) { return s._a ? s._a.addEventListener(oEvt, oFn, bCapture || false) : null; } s._a._added_events = true; for (f in html5_events) { if (html5_events.hasOwnProperty(f)) { add(f, html5_events[f]); } } return true; }; remove_html5_events = function () { var f; function remove(oEvt, oFn, bCapture) { return (s._a ? s._a.removeEventListener(oEvt, oFn, bCapture || false) : null); } s._a._added_events = false; for (f in html5_events) { if (html5_events.hasOwnProperty(f)) { remove(f, html5_events[f]); } } }; this._onload = function (nSuccess) { var fN, loadOK = !!nSuccess || (!s.isHTML5 && fV === 8 && s.duration); s.loaded = loadOK; s.readyState = loadOK ? 3 : 2; s._onbufferchange(0); if (s._iO.onload) { wrapCallback(s, function () { s._iO.onload.apply(s, [loadOK]); }); } return true; }; this._onbufferchange = function (nIsBuffering) { if (s.playState === 0) { return false; } if ((nIsBuffering && s.isBuffering) || (!nIsBuffering && !s.isBuffering)) { return false; } s.isBuffering = (nIsBuffering === 1); if (s._iO.onbufferchange) { s._iO.onbufferchange.apply(s); } return true; }; this._onsuspend = function () { if (s._iO.onsuspend) { s._iO.onsuspend.apply(s); } return true; }; this._onfailure = function (msg, level, code) { s.failures++; if (s._iO.onfailure && s.failures === 1) { s._iO.onfailure(s, msg, level, code); } else { } }; this._onfinish = function () { var io_onfinish = s._iO.onfinish; s._onbufferchange(0); s._resetOnPosition(0); if (s.instanceCount) { s.instanceCount--; if (!s.instanceCount) { detachOnPosition(); s.playState = 0; s.paused = false; s.instanceCount = 0; s.instanceOptions = {}; s._iO = {}; stop_html5_timer(); if (s.isHTML5) { s.position = 0; } } if (!s.instanceCount || s._iO.multiShotEvents) { if (io_onfinish) { wrapCallback(s, function () { io_onfinish.apply(s); }); } } } }; this._whileloading = function (nBytesLoaded, nBytesTotal, nDuration, nBufferLength) { var instanceOptions = s._iO; s.bytesLoaded = nBytesLoaded; s.bytesTotal = nBytesTotal; s.duration = Math.floor(nDuration); s.bufferLength = nBufferLength; if (!s.isHTML5 && !instanceOptions.isMovieStar) { if (instanceOptions.duration) { s.durationEstimate = (s.duration > instanceOptions.duration) ? s.duration : instanceOptions.duration; } else { s.durationEstimate = parseInt((s.bytesTotal / s.bytesLoaded) * s.duration, 10); } } else { s.durationEstimate = s.duration; } if (!s.isHTML5) { s.buffered = [{ 'start': 0, 'end': s.duration }]; } if ((s.readyState !== 3 || s.isHTML5) && instanceOptions.whileloading) { instanceOptions.whileloading.apply(s); } }; this._whileplaying = function (nPosition, oPeakData, oWaveformDataLeft, oWaveformDataRight, oEQData) { var instanceOptions = s._iO, eqLeft; if (isNaN(nPosition) || nPosition === null) { return false; } s.position = Math.max(0, nPosition); s._processOnPosition(); if (!s.isHTML5 && fV > 8) { if (instanceOptions.usePeakData && oPeakData !== _undefined && oPeakData) { s.peakData = { left: oPeakData.leftPeak, right: oPeakData.rightPeak }; } if (instanceOptions.useWaveformData && oWaveformDataLeft !== _undefined && oWaveformDataLeft) { s.waveformData = { left: oWaveformDataLeft.split(','), right: oWaveformDataRight.split(',') }; } if (instanceOptions.useEQData) { if (oEQData !== _undefined && oEQData && oEQData.leftEQ) { eqLeft = oEQData.leftEQ.split(','); s.eqData = eqLeft; s.eqData.left = eqLeft; if (oEQData.rightEQ !== _undefined && oEQData.rightEQ) { s.eqData.right = oEQData.rightEQ.split(','); } } } } if (s.playState === 1) { if (!s.isHTML5 && fV === 8 && !s.position && s.isBuffering) { s._onbufferchange(0); } if (instanceOptions.whileplaying) { instanceOptions.whileplaying.apply(s); } } return true; }; this._oncaptiondata = function (oData) { s.captiondata = oData; if (s._iO.oncaptiondata) { s._iO.oncaptiondata.apply(s, [oData]); } }; this._onmetadata = function (oMDProps, oMDData) { var oData = {}, i, j; for (i = 0, j = oMDProps.length; i < j; i++) { oData[oMDProps[i]] = oMDData[i]; } s.metadata = oData; if (s._iO.onmetadata) { s._iO.onmetadata.apply(s); } }; this._onid3 = function (oID3Props, oID3Data) { var oData = [], i, j; for (i = 0, j = oID3Props.length; i < j; i++) { oData[oID3Props[i]] = oID3Data[i]; } s.id3 = mixin(s.id3, oData); if (s._iO.onid3) { s._iO.onid3.apply(s); } }; this._onconnect = function (bSuccess) { bSuccess = (bSuccess === 1); s.connected = bSuccess; if (bSuccess) { s.failures = 0; if (idCheck(s.id)) { if (s.getAutoPlay()) { s.play(_undefined, s.getAutoPlay()); } else if (s._iO.autoLoad) { s.load(); } } if (s._iO.onconnect) { s._iO.onconnect.apply(s, [bSuccess]); } } }; this._ondataerror = function (sError) { if (s.playState > 0) { if (s._iO.ondataerror) { s._iO.ondataerror.apply(s); } } }; }; getDocument = function () { return (doc.body || doc.getElementsByTagName('div')[0]); }; id = function (sID) { return doc.getElementById(sID); }; mixin = function (oMain, oAdd) { var o1 = (oMain || {}), o2, o; o2 = (oAdd === _undefined ? sm2.defaultOptions : oAdd); for (o in o2) { if (o2.hasOwnProperty(o) && o1[o] === _undefined) { if (typeof o2[o] !== 'object' || o2[o] === null) { o1[o] = o2[o]; } else { o1[o] = mixin(o1[o], o2[o]); } } } return o1; }; wrapCallback = function (oSound, callback) { if (!oSound.isHTML5 && fV === 8) { window.setTimeout(callback, 0); } else { callback(); } }; extraOptions = { 'onready': 1, 'ontimeout': 1, 'defaultOptions': 1, 'flash9Options': 1, 'movieStarOptions': 1 }; assign = function (o, oParent) { var i, result = true, hasParent = (oParent !== _undefined), setupOptions = sm2.setupOptions, bonusOptions = extraOptions; for (i in o) { if (o.hasOwnProperty(i)) { if (typeof o[i] !== 'object' || o[i] === null || o[i] instanceof Array || o[i] instanceof RegExp) { if (hasParent && bonusOptions[oParent] !== _undefined) { sm2[oParent][i] = o[i]; } else if (setupOptions[i] !== _undefined) { sm2.setupOptions[i] = o[i]; sm2[i] = o[i]; } else if (bonusOptions[i] === _undefined) { result = false; } else { if (sm2[i] instanceof Function) { sm2[i].apply(sm2, (o[i] instanceof Array ? o[i] : [o[i]])); } else { sm2[i] = o[i]; } } } else { if (bonusOptions[i] === _undefined) { result = false; } else { return assign(o[i], i); } } } } return result; }; function preferFlashCheck(kind) { return (sm2.preferFlash && hasFlash && !sm2.ignoreFlash && (sm2.flash[kind] !== _undefined && sm2.flash[kind])); } event = (function () { var old = (window.attachEvent), evt = { add: (old ? 'attachEvent' : 'addEventListener'), remove: (old ? 'detachEvent' : 'removeEventListener') }; function getArgs(oArgs) { var args = slice.call(oArgs), len = args.length; if (old) { args[1] = 'on' + args[1]; if (len > 3) { args.pop(); } } else if (len === 3) { args.push(false); } return args; } function apply(args, sType) { var element = args.shift(), method = [evt[sType]]; if (old) { element[method](args[0], args[1]); } else { element[method].apply(element, args); } } function add() { apply(getArgs(arguments), 'add'); } function remove() { apply(getArgs(arguments), 'remove'); } return { 'add': add, 'remove': remove }; }()); function html5_event(oFn) { return function (e) { var s = this._s, result; if (!s || !s._a) { result = null; } else { result = oFn.call(this, e); } return result; }; } html5_events = { abort: html5_event(function () { }), canplay: html5_event(function () { var s = this._s, position1K; if (s._html5_canplay) { return true; } s._html5_canplay = true; s._onbufferchange(0); position1K = (s._iO.position !== _undefined && !isNaN(s._iO.position) ? s._iO.position / msecScale : null); if (s.position && this.currentTime !== position1K) { try { this.currentTime = position1K; } catch (ee) { } } if (s._iO._oncanplay) { s._iO._oncanplay(); } }), canplaythrough: html5_event(function () { var s = this._s; if (!s.loaded) { s._onbufferchange(0); s._whileloading(s.bytesLoaded, s.bytesTotal, s._get_html5_duration()); s._onload(true); } }), ended: html5_event(function () { var s = this._s; s._onfinish(); }), error: html5_event(function () { this._s._onload(false); }), loadeddata: html5_event(function () { var s = this._s; if (!s._loaded && !isSafari) { s.duration = s._get_html5_duration(); } }), loadedmetadata: html5_event(function () { }), loadstart: html5_event(function () { this._s._onbufferchange(1); }), play: html5_event(function () { this._s._onbufferchange(0); }), playing: html5_event(function () { this._s._onbufferchange(0); }), progress: html5_event(function (e) { var s = this._s, i, j, progStr, buffered = 0, isProgress = (e.type === 'progress'), ranges = e.target.buffered, loaded = (e.loaded || 0), total = (e.total || 1); s.buffered = []; if (ranges && ranges.length) { for (i = 0, j = ranges.length; i < j; i++) { s.buffered.push({ 'start': ranges.start(i) * msecScale, 'end': ranges.end(i) * msecScale }); } buffered = (ranges.end(0) - ranges.start(0)) * msecScale; loaded = Math.min(1, buffered / (e.target.duration * msecScale)); } if (!isNaN(loaded)) { s._onbufferchange(0); s._whileloading(loaded, total, s._get_html5_duration()); if (loaded && total && loaded === total) { html5_events.canplaythrough.call(this, e); } } }), ratechange: html5_event(function () { }), suspend: html5_event(function (e) { var s = this._s; html5_events.progress.call(this, e); s._onsuspend(); }), stalled: html5_event(function () { }), timeupdate: html5_event(function () { this._s._onTimer(); }), waiting: html5_event(function () { var s = this._s; s._onbufferchange(1); }) }; html5OK = function (iO) { var result; if (!iO || (!iO.type && !iO.url && !iO.serverURL)) { result = false; } else if (iO.serverURL || (iO.type && preferFlashCheck(iO.type))) { result = false; } else { result = ((iO.type ? html5CanPlay({ type: iO.type }) : html5CanPlay({ url: iO.url }) || sm2.html5Only || iO.url.match(/data\:/i))); } return result; }; html5Unload = function (oAudio) { var url; if (oAudio) { url = (isSafari ? emptyURL : (sm2.html5.canPlayType('audio/wav') ? emptyWAV : emptyURL)); oAudio.src = url; if (oAudio._called_unload !== undefined) { oAudio._called_load = false; } } if (useGlobalHTML5Audio) { lastGlobalHTML5URL = null; } return url; }; html5CanPlay = function (o) { if (!sm2.useHTML5Audio || !sm2.hasHTML5) { return false; } var url = (o.url || null), mime = (o.type || null), aF = sm2.audioFormats, result, offset, fileExt, item; if (mime && sm2.html5[mime] !== _undefined) { return (sm2.html5[mime] && !preferFlashCheck(mime)); } if (!html5Ext) { html5Ext = []; for (item in aF) { if (aF.hasOwnProperty(item)) { html5Ext.push(item); if (aF[item].related) { html5Ext = html5Ext.concat(aF[item].related); } } } html5Ext = new RegExp('\\.(' + html5Ext.join('|') + ')(\\?.*)?$', 'i'); } fileExt = (url ? url.toLowerCase().match(html5Ext) : null); if (!fileExt || !fileExt.length) { if (!mime) { result = false; } else { offset = mime.indexOf(';'); fileExt = (offset !== -1 ? mime.substr(0, offset) : mime).substr(6); } } else { fileExt = fileExt[1]; } if (fileExt && sm2.html5[fileExt] !== _undefined) { result = (sm2.html5[fileExt] && !preferFlashCheck(fileExt)); } else { mime = 'audio/' + fileExt; result = sm2.html5.canPlayType({ type: mime }); sm2.html5[fileExt] = result; result = (result && sm2.html5[mime] && !preferFlashCheck(mime)); } return result; }; testHTML5 = function () { if (!sm2.useHTML5Audio || !sm2.hasHTML5) { sm2.html5.usingFlash = true; needsFlash = true; return false; } var a = (Audio !== _undefined ? (isOpera && opera.version() < 10 ? new Audio(null) : new Audio()) : null), item, lookup, support = {}, aF, i; function cp(m) { var canPlay, j, result = false, isOK = false; if (!a || typeof a.canPlayType !== 'function') { return result; } if (m instanceof Array) { for (i = 0, j = m.length; i < j; i++) { if (sm2.html5[m[i]] || a.canPlayType(m[i]).match(sm2.html5Test)) { isOK = true; sm2.html5[m[i]] = true; sm2.flash[m[i]] = !!(m[i].match(flashMIME)); } } result = isOK; } else { canPlay = (a && typeof a.canPlayType === 'function' ? a.canPlayType(m) : false); result = !!(canPlay && (canPlay.match(sm2.html5Test))); } return result; } aF = sm2.audioFormats; for (item in aF) { if (aF.hasOwnProperty(item)) { lookup = 'audio/' + item; support[item] = cp(aF[item].type); support[lookup] = support[item]; if (item.match(flashMIME)) { sm2.flash[item] = true; sm2.flash[lookup] = true; } else { sm2.flash[item] = false; sm2.flash[lookup] = false; } if (aF[item] && aF[item].related) { for (i = aF[item].related.length - 1; i >= 0; i--) { support['audio/' + aF[item].related[i]] = support[item]; sm2.html5[aF[item].related[i]] = support[item]; sm2.flash[aF[item].related[i]] = support[item]; } } } } support.canPlayType = (a ? cp : null); sm2.html5 = mixin(sm2.html5, support); sm2.html5.usingFlash = featureCheck(); needsFlash = sm2.html5.usingFlash; return true; }; strings = { }; str = function () { }; loopFix = function (sOpt) { if (fV === 8 && sOpt.loops > 1 && sOpt.stream) { sOpt.stream = false; } return sOpt; }; policyFix = function (sOpt, sPre) { if (sOpt && !sOpt.usePolicyFile && (sOpt.onid3 || sOpt.usePeakData || sOpt.useWaveformData || sOpt.useEQData)) { sOpt.usePolicyFile = true; } return sOpt; }; complain = function (sMsg) { }; doNothing = function () { return false; }; disableObject = function (o) { var oProp; for (oProp in o) { if (o.hasOwnProperty(oProp) && typeof o[oProp] === 'function') { o[oProp] = doNothing; } } oProp = null; }; failSafely = function (bNoDisable) { if (bNoDisable === _undefined) { bNoDisable = false; } if (disabled || bNoDisable) { sm2.disable(bNoDisable); } }; normalizeMovieURL = function (smURL) { var urlParams = null, url; if (smURL) { if (smURL.match(/\.swf(\?.*)?$/i)) { urlParams = smURL.substr(smURL.toLowerCase().lastIndexOf('.swf?') + 4); if (urlParams) { return smURL; } } else if (smURL.lastIndexOf('/') !== smURL.length - 1) { smURL += '/'; } } url = (smURL && smURL.lastIndexOf('/') !== -1 ? smURL.substr(0, smURL.lastIndexOf('/') + 1) : './') + sm2.movieURL; if (sm2.noSWFCache) { url += ('?ts=' + new Date().getTime()); } return url; }; setVersionInfo = function () { fV = parseInt(sm2.flashVersion, 10); if (fV !== 8 && fV !== 9) { sm2.flashVersion = fV = defaultFlashVersion; } var isDebug = (sm2.debugMode || sm2.debugFlash ? '_debug.swf' : '.swf'); if (sm2.useHTML5Audio && !sm2.html5Only && sm2.audioFormats.mp4.required && fV < 9) { sm2.flashVersion = fV = 9; } sm2.version = sm2.versionNumber + (sm2.html5Only ? ' (HTML5-only mode)' : (fV === 9 ? ' (AS3/Flash 9)' : ' (AS2/Flash 8)')); if (fV > 8) { sm2.defaultOptions = mixin(sm2.defaultOptions, sm2.flash9Options); sm2.features.buffering = true; sm2.defaultOptions = mixin(sm2.defaultOptions, sm2.movieStarOptions); sm2.filePatterns.flash9 = new RegExp('\\.(mp3|' + netStreamTypes.join('|') + ')(\\?.*)?$', 'i'); sm2.features.movieStar = true; } else { sm2.features.movieStar = false; } sm2.filePattern = sm2.filePatterns[(fV !== 8 ? 'flash9' : 'flash8')]; sm2.movieURL = (fV === 8 ? 'soundmanager2.swf' : 'soundmanager2_flash9.swf').replace('.swf', isDebug); sm2.features.peakData = sm2.features.waveformData = sm2.features.eqData = (fV > 8); }; setPolling = function (bPolling, bHighPerformance) { if (!flash) { return false; } flash._setPolling(bPolling, bHighPerformance); }; initDebug = function () { }; idCheck = this.getSoundById; getSWFCSS = function () { var css = []; if (sm2.debugMode) { css.push(swfCSS.sm2Debug); } if (sm2.debugFlash) { css.push(swfCSS.flashDebug); } if (sm2.useHighPerformance) { css.push(swfCSS.highPerf); } return css.join(' '); }; flashBlockHandler = function () { var name = str('fbHandler'), p = sm2.getMoviePercent(), css = swfCSS, error = { type: 'FLASHBLOCK' }; if (sm2.html5Only) { return false; } if (!sm2.ok()) { if (needsFlash) { sm2.oMC.className = getSWFCSS() + ' ' + css.swfDefault + ' ' + (p === null ? css.swfTimedout : css.swfError); } sm2.didFlashBlock = true; processOnEvents({ type: 'ontimeout', ignoreInit: true, error: error }); catchError(error); } else { if (sm2.oMC) { sm2.oMC.className = [getSWFCSS(), css.swfDefault, css.swfLoaded + (sm2.didFlashBlock ? ' ' + css.swfUnblocked : '')].join(' '); } } }; addOnEvent = function (sType, oMethod, oScope) { if (on_queue[sType] === _undefined) { on_queue[sType] = []; } on_queue[sType].push({ 'method': oMethod, 'scope': (oScope || null), 'fired': false }); }; processOnEvents = function (oOptions) { if (!oOptions) { oOptions = { type: (sm2.ok() ? 'onready' : 'ontimeout') }; } if (!didInit && oOptions && !oOptions.ignoreInit) { return false; } if (oOptions.type === 'ontimeout' && (sm2.ok() || (disabled && !oOptions.ignoreInit))) { return false; } var status = { success: (oOptions && oOptions.ignoreInit ? sm2.ok() : !disabled) }, srcQueue = (oOptions && oOptions.type ? on_queue[oOptions.type] || [] : []), queue = [], i, j, args = [status], canRetry = (needsFlash && !sm2.ok()); if (oOptions.error) { args[0].error = oOptions.error; } for (i = 0, j = srcQueue.length; i < j; i++) { if (srcQueue[i].fired !== true) { queue.push(srcQueue[i]); } } if (queue.length) { for (i = 0, j = queue.length; i < j; i++) { if (queue[i].scope) { queue[i].method.apply(queue[i].scope, args); } else { queue[i].method.apply(this, args); } if (!canRetry) { queue[i].fired = true; } } } return true; }; initUserOnload = function () { window.setTimeout(function () { if (sm2.useFlashBlock) { flashBlockHandler(); } processOnEvents(); if (typeof sm2.onload === 'function') { sm2.onload.apply(window); } if (sm2.waitForWindowLoad) { event.add(window, 'load', initUserOnload); } }, 1); }; detectFlash = function () { if (hasFlash !== _undefined) { return hasFlash; } var hasPlugin = false, n = navigator, nP = n.plugins, obj, type, types, AX = window.ActiveXObject; if (nP && nP.length) { type = 'application/x-shockwave-flash'; types = n.mimeTypes; if (types && types[type] && types[type].enabledPlugin && types[type].enabledPlugin.description) { hasPlugin = true; } } else if (AX !== _undefined && !ua.match(/MSAppHost/i)) { try { obj = new AX('ShockwaveFlash.ShockwaveFlash'); } catch (e) { obj = null; } hasPlugin = (!!obj); obj = null; } hasFlash = hasPlugin; return hasPlugin; }; featureCheck = function () { var flashNeeded, item, formats = sm2.audioFormats, isSpecial = (is_iDevice && !!(ua.match(/os (1|2|3_0|3_1)/i))); if (isSpecial) { sm2.hasHTML5 = false; sm2.html5Only = true; if (sm2.oMC) { sm2.oMC.style.display = 'none'; } } else { if (sm2.useHTML5Audio) { if (!sm2.html5 || !sm2.html5.canPlayType) { sm2.hasHTML5 = false; } } } if (sm2.useHTML5Audio && sm2.hasHTML5) { canIgnoreFlash = true; for (item in formats) { if (formats.hasOwnProperty(item)) { if (formats[item].required) { if (!sm2.html5.canPlayType(formats[item].type)) { canIgnoreFlash = false; flashNeeded = true; } else if (sm2.preferFlash && (sm2.flash[item] || sm2.flash[formats[item].type])) { flashNeeded = true; } } } } } if (sm2.ignoreFlash) { flashNeeded = false; canIgnoreFlash = true; } sm2.html5Only = (sm2.hasHTML5 && sm2.useHTML5Audio && !flashNeeded); return (!sm2.html5Only); }; parseURL = function (url) { var i, j, urlResult = 0, result; if (url instanceof Array) { for (i = 0, j = url.length; i < j; i++) { if (url[i] instanceof Object) { if (sm2.canPlayMIME(url[i].type)) { urlResult = i; break; } } else if (sm2.canPlayURL(url[i])) { urlResult = i; break; } } if (url[urlResult].url) { url[urlResult] = url[urlResult].url; } result = url[urlResult]; } else { result = url; } return result; }; startTimer = function (oSound) { if (!oSound._hasTimer) { oSound._hasTimer = true; if (!mobileHTML5 && sm2.html5PollingInterval) { if (h5IntervalTimer === null && h5TimerCount === 0) { h5IntervalTimer = setInterval(timerExecute, sm2.html5PollingInterval); } h5TimerCount++; } } }; stopTimer = function (oSound) { if (oSound._hasTimer) { oSound._hasTimer = false; if (!mobileHTML5 && sm2.html5PollingInterval) { h5TimerCount--; } } }; timerExecute = function () { var i; if (h5IntervalTimer !== null && !h5TimerCount) { clearInterval(h5IntervalTimer); h5IntervalTimer = null; return false; } for (i = sm2.soundIDs.length - 1; i >= 0; i--) { if (sm2.sounds[sm2.soundIDs[i]].isHTML5 && sm2.sounds[sm2.soundIDs[i]]._hasTimer) { sm2.sounds[sm2.soundIDs[i]]._onTimer(); } } }; catchError = function (options) { options = (options !== _undefined ? options : {}); if (typeof sm2.onerror === 'function') { sm2.onerror.apply(window, [{ type: (options.type !== _undefined ? options.type : null) }]); } if (options.fatal !== _undefined && options.fatal) { sm2.disable(); } }; badSafariFix = function () { if (!isBadSafari || !detectFlash()) { return false; } var aF = sm2.audioFormats, i, item; for (item in aF) { if (aF.hasOwnProperty(item)) { if (item === 'mp3' || item === 'mp4') { sm2.html5[item] = false; if (aF[item] && aF[item].related) { for (i = aF[item].related.length - 1; i >= 0; i--) { sm2.html5[aF[item].related[i]] = false; } } } } } }; this._setSandboxType = function (sandboxType) { }; this._externalInterfaceOK = function (swfVersion) { if (sm2.swfLoaded) { return false; } var e; sm2.swfLoaded = true; tryInitOnFocus = false; if (isBadSafari) { badSafariFix(); } setTimeout(init, isIE ? 100 : 1); }; createMovie = function (smID, smURL) { if (didAppend && appendSuccess) { return false; } function initMsg() { } if (sm2.html5Only) { setVersionInfo(); initMsg(); sm2.oMC = id(sm2.movieID); init(); didAppend = true; appendSuccess = true; return false; } var remoteURL = (smURL || sm2.url), localURL = (sm2.altURL || remoteURL), swfTitle = 'JS/Flash audio component (SoundManager 2)', oTarget = getDocument(), extraClass = getSWFCSS(), isRTL = null, html = doc.getElementsByTagName('html')[0], oEmbed, oMovie, tmp, movieHTML, oEl, s, x, sClass; isRTL = (html && html.dir && html.dir.match(/rtl/i)); smID = (smID === _undefined ? sm2.id : smID); function param(name, value) { return ''; } setVersionInfo(); sm2.url = normalizeMovieURL(overHTTP ? remoteURL : localURL); smURL = sm2.url; sm2.wmode = (!sm2.wmode && sm2.useHighPerformance ? 'transparent' : sm2.wmode); if (sm2.wmode !== null && (ua.match(/msie 8/i) || (!isIE && !sm2.useHighPerformance)) && navigator.platform.match(/win32|win64/i)) { messages.push(strings.spcWmode); sm2.wmode = null; } oEmbed = { 'name': smID, 'id': smID, 'src': smURL, 'quality': 'high', 'allowScriptAccess': sm2.allowScriptAccess, 'bgcolor': sm2.bgColor, 'pluginspage': http + 'www.macromedia.com/go/getflashplayer', 'title': swfTitle, 'type': 'application/x-shockwave-flash', 'wmode': sm2.wmode, 'hasPriority': 'true' }; if (sm2.debugFlash) { oEmbed.FlashVars = 'debug=1'; } if (!sm2.wmode) { delete oEmbed.wmode; } if (isIE) { oMovie = doc.createElement('div'); movieHTML = [ '', param('movie', smURL), param('AllowScriptAccess', sm2.allowScriptAccess), param('quality', oEmbed.quality), (sm2.wmode ? param('wmode', sm2.wmode) : ''), param('bgcolor', sm2.bgColor), param('hasPriority', 'true'), (sm2.debugFlash ? param('FlashVars', oEmbed.FlashVars) : ''), '' ].join(''); } else { oMovie = doc.createElement('embed'); for (tmp in oEmbed) { if (oEmbed.hasOwnProperty(tmp)) { oMovie.setAttribute(tmp, oEmbed[tmp]); } } } initDebug(); extraClass = getSWFCSS(); oTarget = getDocument(); if (oTarget) { sm2.oMC = (id(sm2.movieID) || doc.createElement('div')); if (!sm2.oMC.id) { sm2.oMC.id = sm2.movieID; sm2.oMC.className = swfCSS.swfDefault + ' ' + extraClass; s = null; oEl = null; if (!sm2.useFlashBlock) { if (sm2.useHighPerformance) { s = { 'position': 'fixed', 'width': '8px', 'height': '8px', 'bottom': '0px', 'left': '0px', 'overflow': 'hidden' }; } else { s = { 'position': 'absolute', 'width': '6px', 'height': '6px', 'top': '-9999px', 'left': '-9999px' }; if (isRTL) { s.left = Math.abs(parseInt(s.left, 10)) + 'px'; } } } if (isWebkit) { sm2.oMC.style.zIndex = 10000; } if (!sm2.debugFlash) { for (x in s) { if (s.hasOwnProperty(x)) { sm2.oMC.style[x] = s[x]; } } } try { if (!isIE) { sm2.oMC.appendChild(oMovie); } oTarget.appendChild(sm2.oMC); if (isIE) { oEl = sm2.oMC.appendChild(doc.createElement('div')); oEl.className = swfCSS.swfBox; oEl.innerHTML = movieHTML; } appendSuccess = true; } catch (e) { throw new Error(str('domError') + ' \n' + e.toString()); } } else { sClass = sm2.oMC.className; sm2.oMC.className = (sClass ? sClass + ' ' : swfCSS.swfDefault) + (extraClass ? ' ' + extraClass : ''); sm2.oMC.appendChild(oMovie); if (isIE) { oEl = sm2.oMC.appendChild(doc.createElement('div')); oEl.className = swfCSS.swfBox; oEl.innerHTML = movieHTML; } appendSuccess = true; } } didAppend = true; initMsg(); return true; }; initMovie = function () { if (sm2.html5Only) { createMovie(); return false; } if (flash) { return false; } if (!sm2.url) { return false; } flash = sm2.getMovie(sm2.id); if (!flash) { if (!oRemoved) { createMovie(sm2.id, sm2.url); } else { if (!isIE) { sm2.oMC.appendChild(oRemoved); } else { sm2.oMC.innerHTML = oRemovedHTML; } oRemoved = null; didAppend = true; } flash = sm2.getMovie(sm2.id); } if (typeof sm2.oninitmovie === 'function') { setTimeout(sm2.oninitmovie, 1); } return true; }; delayWaitForEI = function () { setTimeout(waitForEI, 1000); }; rebootIntoHTML5 = function () { window.setTimeout(function () { sm2.setup({ preferFlash: false }).reboot(); sm2.didFlashBlock = true; sm2.beginDelayedInit(); }, 1); }; waitForEI = function () { var p, loadIncomplete = false; if (!sm2.url) { return false; } if (waitingForEI) { return false; } waitingForEI = true; event.remove(window, 'load', delayWaitForEI); if (hasFlash && tryInitOnFocus && !isFocused) { return false; } if (!didInit) { p = sm2.getMoviePercent(); if (p > 0 && p < 100) { loadIncomplete = true; } } setTimeout(function () { p = sm2.getMoviePercent(); if (loadIncomplete) { waitingForEI = false; window.setTimeout(delayWaitForEI, 1); return false; } if (!didInit && okToDisable) { if (p === null) { if (sm2.useFlashBlock || sm2.flashLoadTimeout === 0) { if (sm2.useFlashBlock) { flashBlockHandler(); } } else { if (!sm2.useFlashBlock && canIgnoreFlash) { rebootIntoHTML5(); } else { processOnEvents({ type: 'ontimeout', ignoreInit: true, error: { type: 'INIT_FLASHBLOCK' } }); } } } else { if (sm2.flashLoadTimeout === 0) { } else { if (!sm2.useFlashBlock && canIgnoreFlash) { rebootIntoHTML5(); } else { failSafely(true); } } } } }, sm2.flashLoadTimeout); }; handleFocus = function () { function cleanup() { event.remove(window, 'focus', handleFocus); } if (isFocused || !tryInitOnFocus) { cleanup(); return true; } okToDisable = true; isFocused = true; waitingForEI = false; delayWaitForEI(); cleanup(); return true; }; flushMessages = function () { }; showSupport = function () { }; initComplete = function (bNoDisable) { if (didInit) { return false; } if (sm2.html5Only) { didInit = true; initUserOnload(); return true; } var wasTimeout = (sm2.useFlashBlock && sm2.flashLoadTimeout && !sm2.getMoviePercent()), result = true, error; if (!wasTimeout) { didInit = true; } error = { type: (!hasFlash && needsFlash ? 'NO_FLASH' : 'INIT_TIMEOUT') }; if (disabled || bNoDisable) { if (sm2.useFlashBlock && sm2.oMC) { sm2.oMC.className = getSWFCSS() + ' ' + (sm2.getMoviePercent() === null ? swfCSS.swfTimedout : swfCSS.swfError); } processOnEvents({ type: 'ontimeout', error: error, ignoreInit: true }); catchError(error); result = false; } else { } if (!disabled) { if (sm2.waitForWindowLoad && !windowLoaded) { event.add(window, 'load', initUserOnload); } else { initUserOnload(); } } return result; }; setProperties = function () { var i, o = sm2.setupOptions; for (i in o) { if (o.hasOwnProperty(i)) { if (sm2[i] === _undefined) { sm2[i] = o[i]; } else if (sm2[i] !== o[i]) { sm2.setupOptions[i] = sm2[i]; } } } }; init = function () { if (didInit) { return false; } function cleanup() { event.remove(window, 'load', sm2.beginDelayedInit); } if (sm2.html5Only) { if (!didInit) { cleanup(); sm2.enabled = true; initComplete(); } return true; } initMovie(); try { flash._externalInterfaceTest(false); setPolling(true, (sm2.flashPollingInterval || (sm2.useHighPerformance ? 10 : 50))); if (!sm2.debugMode) { flash._disableDebug(); } sm2.enabled = true; if (!sm2.html5Only) { event.add(window, 'unload', doNothing); } } catch (e) { catchError({ type: 'JS_TO_FLASH_EXCEPTION', fatal: true }); failSafely(true); initComplete(); return false; } initComplete(); cleanup(); return true; }; domContentLoaded = function () { if (didDCLoaded) { return false; } didDCLoaded = true; setProperties(); initDebug(); if (!hasFlash && sm2.hasHTML5) { sm2.setup({ 'useHTML5Audio': true, 'preferFlash': false }); } testHTML5(); if (!hasFlash && needsFlash) { messages.push(strings.needFlash); sm2.setup({ 'flashLoadTimeout': 1 }); } if (doc.removeEventListener) { doc.removeEventListener('DOMContentLoaded', domContentLoaded, false); } initMovie(); return true; }; domContentLoadedIE = function () { if (doc.readyState === 'complete') { domContentLoaded(); doc.detachEvent('onreadystatechange', domContentLoadedIE); } return true; }; winOnLoad = function () { windowLoaded = true; event.remove(window, 'load', winOnLoad); }; preInit = function () { if (mobileHTML5) { sm2.setupOptions.useHTML5Audio = true; sm2.setupOptions.preferFlash = false; if (is_iDevice || (isAndroid && !ua.match(/android\s2\.3/i))) { if (is_iDevice) { sm2.ignoreFlash = true; } useGlobalHTML5Audio = true; } } }; preInit(); detectFlash(); event.add(window, 'focus', handleFocus); event.add(window, 'load', delayWaitForEI); event.add(window, 'load', winOnLoad); if (doc.addEventListener) { doc.addEventListener('DOMContentLoaded', domContentLoaded, false); } else if (doc.attachEvent) { doc.attachEvent('onreadystatechange', domContentLoadedIE); } else { catchError({ type: 'NO_DOM2_EVENTS', fatal: true }); } } // SM2_DEFER details: http://www.schillmania.com/projects/soundmanager2/doc/getstarted/#lazy-loading if (window.SM2_DEFER === undefined || !SM2_DEFER) { soundManager = new SoundManager(); } window.SoundManager = SoundManager; window.soundManager = soundManager; }(window)); YX.convert = { Traditionalized: function(cc) { var str = ''; for (var i = 0; i < cc.length; i++) { var pos = YX.configText['chineseWord'].indexOf(cc.charAt(i)); if (pos != -1) str += YX.configText['taiwanWord'].charAt(pos); else str += cc.charAt(i) } return str }, Simplized: function(cc) { if (!cc) return ""; var str = ''; for (var i = 0; i < cc.length; i++) { var pos = YX.configText['taiwanWord'].indexOf(cc.charAt(i)); if (pos != -1) str += YX.configText['chineseWord'].charAt(pos); else str += cc.charAt(i) } return str }, Convert: function(nOption, text) { if (nOption == 0) return YX.convert.Simplized(text); else return YX.convert.Traditionalized(text) } }; YX.json = { GetAllSoundPathAndPlay: function(text, self, finishfunc) { text = YX.Utils.RemoveSpecialCharacters(text); if (text == '') return false; var selfText = text; text = encodeURIComponent(text); var readStyle = YX.systemReadStyle; if (readStyle == "0") { text += "$" + YX.systemSpeed + "$" + YX.systemVolume + "$0#0" } else if (readStyle == "1") { text = YX.convert.Convert(1, text) + "$" + YX.systemSpeed + "$" + YX.systemVolume + "$0#" + readStyle } else if (readStyle == "2") { YX.sound.GetEnglish(text, self, finishfunc); return } if (self) { var speechPath = YX.HttpPath(YX.mp3Path) + selfText; YX.sound.PlaySound(text, speechPath, true, false, finishfunc) } else { YX.json.GetSoundPathAndPlay(text, finishfunc) } }, GetSoundPathAndPlay: function (text, finishfunc) { var speechPath = ""; $.ajax({ async: false, url: YX.socketPath, type: "GET", dataType: 'jsonp', jsonp: 'yxjsoncallback', data: { text: text }, timeout: 2000, success: function(result) { if (result && result.success && result.msg != "") { speechPath = result.msg; speechPath = speechPath.split("$")[0]; speechPath = speechPath.split("\\").pop(); speechPath = YX.voicesPath + speechPath } else { speechPath = YX.HttpPath(YX.errorPath) } //YX.sound.PlaySound(text, speechPath, true, false, finishfunc) if (YX.Utils.isIE()) { document.getElementById("embed").innerHTML = ""; } else { YX.sound.PlaySound(text, speechPath, true, false, finishfunc) } }, complete: function(XMLHttpRequest, textStatus) {} }) }, GetEnglishAndPlay: function(text, self, finishfunc) { if (text == "") return; var resultText = ""; $.ajax({ async: false, url: YX.translatePath, type: "GET", dataType: 'jsonp', jsonp: 'yxjsoncallback', data: { text: text }, timeout: 2000, success: function(result) { if (result && result.responseStatus == 200 && result.responseData.translatedText != "") { resultText = result.responseData.translatedText; resultText = $("#changeParticularString").html(resultText).text() } else { resultText = "Translate error,please try again!" } YX.tools.InitBarEventObj.DisplayScreenClickFunc.ChangeScreenFontSize(YX.systemScreenEnglishFontSize); var resultTextSend = resultText + "$" + YX.systemSpeed + "$" + YX.systemVolume + "$0#2"; $("#yx_showscreen_marquee").html(resultText); YX.json.GetSoundPathAndPlay(resultTextSend, finishfunc) }, complete: function(XMLHttpRequest, textStatus) {} }) }, GetEnglishText: function(html) { $.ajax({ async: false, url: YX.translatePath, type: "GET", dataType: 'jsonp', jsonp: 'yxjsoncallback', data: { text: html }, timeout: 2000, success: function(result) { if (result && result.responseStatus == 200) { var resultText = result.responseData.translatedText } else { var resultText = "Translate error,please try again!" } YX.tools.InitBarEventObj.DisplayScreenClickFunc.ChangeScreenFontSize(YX.systemScreenEnglishFontSize); $("#yx_showscreen_marquee").html(resultText) }, complete: function(XMLHttpRequest, textStatus) {} }) } }; YX.sound = { soundQueue: [], splitText: true, TextToSpeechAndPlay: function (text, self, finishfunc) { YX.json.GetAllSoundPathAndPlay(text, self, finishfunc) }, GetEnglish: function(text, self, finishfunc) { YX.json.GetEnglishAndPlay(text, self, finishfunc) }, AddSound: function(sound) { YX.sound.soundQueue.push(sound) }, PlaySound: function(text, url, playdone, autoload, finishfunc) { if (finishfunc != "CRCSD") YX.mouse.ClearAllSound(); YX.sound.PrefetchFlash(text, url, playdone, autoload, finishfunc) }, GetSoundID: function(text) { return YX.Utils.simpleHash(text) }, PrefetchFlash: function(string, url, playdone, autoload, finishfunc) { var pageContentContinueRead = false; if (finishfunc == "CRCSD") { pageContentContinueRead = true; finishfunc = function() {} } string += new Date().getTime(); string = YX.sound.GetSoundID(string); var sound = soundManager.getSoundById(string); if (!sound || sound.readyState == 2) { sound = soundManager.createSound({ id: string, url: url, autoLoad: autoload, stream: playdone, autoPlay: false, onload: function() {}, onplay: function() {}, onstop: function() {}, whileplaying: function() {}, onfinish: function() { finishfunc(); this.destruct() }, volume: YX.systemVolume }); if (pageContentContinueRead) { YX.sound.AddSound(sound) } else { if (sound) sound.play() } } else if (sound.readyState == 0 || sound.readyState == 1) { if (pageContentContinueRead) { YX.sound.AddSound(sound) } else { sound.autoPlay = playdone } } else if (sound.readyState == 3) { if (pageContentContinueRead) { YX.sound.AddSound(sound) } else { if (sound) sound.play() } } return sound }, PlayToolSound: function (text, func) { var self = true; var systemReadStyle = YX.cookie.GetCookie('readStyle'); if (systemReadStyle == "2" || systemReadStyle == "1") { text = func; self = false } if (!func || typeof func != "function") { if (YX.systemRead == 'continue') { func = function() { YX.mouse.ContinueReadNode.ReStartSetting(); var tintv = setTimeout(function() { YX.mouse.ContinueReadNode.Start(); clearTimeout(tintv) }, 50) } } else if (YX.systemRead == 'select') { func = function() { YX.mouse.RecursiveRead() } } else { func = function() {} } } var systemIsRead = YX.cookie.GetCookie('isRead'); if (systemIsRead == "true") { YX.mouse.ClearAllSound(); YX.sound.TextToSpeechAndPlay(text, self, func) } }, PlayToolIsSelfSound: function (text, func, isSelf) { if (!func || typeof func != "function") { if (YX.systemRead == 'continue') { func = function() { YX.mouse.ContinueReadNode.ReStartSetting(); var tintv = setTimeout(function() { YX.mouse.ContinueReadNode.Start(); clearTimeout(tintv) }, 50) } } else if (YX.systemRead == 'select') { func = function() { YX.mouse.RecursiveRead() } } else { func = function() {} } } var systemIsRead = YX.cookie.GetCookie('isRead'); if (systemIsRead == "true") { YX.mouse.ClearAllSound(); YX.sound.TextToSpeechAndPlay(text, isSelf, func) } }, PlayReadySound: function(string) { soundManager.onready(function(oStatus) { if (oStatus.success) { YX.sound.TextToSpeechAndPlay(string, false, null) } else { alert('sound not ready!') } }) }, StopAllSounds: function() { soundManager.stopAll() }, StopSound: function(sound) { if (sound) sound.stop() }, PauseSounds: function(sound) { if (sound) sound.pause() }, PauseAllSounds: function() { soundManager.pauseAll() }, ResumeAllSounds: function() { soundManager.resumeAll() }, ResetSounds: function() { YX.sound.StopAllSounds(); YX.sound.soundQueue = [] }, ChangeSoundVolume: function(val) { if (val > 100 || val < 0) val = 100; soundManager.defaultOptions.volume = val }, InitSoundManger: function() { soundManager.url = YX.HttpPath(YX.swfPath); soundManager.debugMode = false; soundManager.defaultOptions = { 'autoLoad': true, 'stream': true, 'autoPlay': false, 'onid3': null, 'onload': null, 'whileloading': null, 'onplay': null, 'whileplaying': null, 'onstop': null, 'onfinish': null, 'onbeforefinish': null, 'onbeforefinishtime': 1, 'onbeforefinishcomplete': null, 'onjustbeforefinish': null, 'onjustbeforefinishtime': 0, 'multiShot': true, 'pan': 0, 'volume': 100 }; soundManager.onerror = function() {}; soundManager.onload = function() {}; soundManager.onready(function(oStatus) { if (oStatus.success) {} else {} }) }, InitPageRead: function() { this.InitSoundManger() } }; YX.Utils.Base64 = { _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", encode64: function(input) { if (input == null) return null; var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; do { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64 } else if (isNaN(chr3)) { enc4 = 64 } output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4) } while ( i < input . length ); return output }, decode64: function(input) { if (input == null) return null; var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); var fcc = String.fromCharCode; do { enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + fcc(chr1); if (enc3 != 64) { output = output + fcc(chr2) } if (enc4 != 64) { output = output + fcc(chr3) } } while ( i < input . length ); return output } }; YX.cookie = { GetCookieVal: function(offset) { var endstr = document.cookie.indexOf(";", offset); if (endstr == -1) endstr = document.cookie.length; return unescape(document.cookie.substring(offset, endstr)) }, GetCookie: function(name) { var arg = name + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; var j = 0; while (i < clen) { j = i + alen; if (document.cookie.substring(i, j) == arg) return this.GetCookieVal(j); i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break } return null }, DeleteCookie: function(name) { var exp = new Date(); exp.setTime(77771564221); document.cookie = name + "=a; path=" + YX.cookie.GetCookiePath() + ";expires=" + exp.toGMTString() }, DeleteAllCookie: function() { var cookieNames = ['ruler', 'zoom', 'volume', 'speed', 'color', 'magnifier', 'read', 'isRead', 'screen', 'pause', 'screenShowStyle', 'screenClose']; for (var i = 0; i < cookieNames.length; i++) { this.DeleteCookie(cookieNames[i]) } }, GetCookiePath: function() { var domainSimple = YX.GetDomain().split("http://"); if (domainSimple.length > 1) { domainSimple = domainSimple[1] } else { domainSimple = domainSimple[0] } domainSimple = domainSimple.split("/"); if (domainSimple.length < 2) return YX.cookiePath; if (domainSimple.length == 2 && !domainSimple[1]) return YX.cookiePath; domainSimple[0] = ""; if (!domainSimple[domainSimple.length - 1]) domainSimple.pop(); domainSimple = domainSimple.join("/"); return domainSimple + YX.cookiePath }, SetCookie: function(name, value) { var argv = YX.cookie.SetCookie.arguments; var argc = YX.cookie.SetCookie.arguments.length; var exp = (argc > 2) ? argv[2] : YX.cookieTime; var path = (argc > 3) ? argv[3] : YX.cookie.GetCookiePath(); var domain = (argc > 4) ? argv[4] : YX.GetCookieDomain(); var secure = (argc > 5) ? argv[5] : false; var expires = new Date(); YX.cookie.DeleteCookie(name); expires.setTime(expires.getTime() + (exp * 24 * 60 * 60 * 1000)); document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString() + ((domain == null) ? "": ("; domain=" + domain)) + ((path == null) ? "": ("; path=" + path)) + ((secure == true) ? "; secure": "") }, InitAllCookie: function() { if (!YX.cookie.GetCookie('firstVisit')) YX.cookie.SetCookie('firstVisit', 'true'); if (!YX.cookie.GetCookie('ruler')) YX.cookie.SetCookie('ruler', YX.systemRuler); if (!YX.cookie.GetCookie('zoom')) YX.cookie.SetCookie('zoom', YX.systemZoom); if (!YX.cookie.GetCookie('volume')) YX.cookie.SetCookie('volume', YX.systemVolume + ""); if (!YX.cookie.GetCookie('speed')) YX.cookie.SetCookie('speed', YX.systemSpeed + ""); if (!YX.cookie.GetCookie('color')) YX.cookie.SetCookie('color', YX.systemColor); if (!YX.cookie.GetCookie('read')) YX.cookie.SetCookie('read', YX.systemRead); if (!YX.cookie.GetCookie('isRead')) YX.cookie.SetCookie('isRead', YX.systemIsRead); if (!YX.cookie.GetCookie('pause')) YX.cookie.SetCookie('pause', YX.systemPause); if (!YX.cookie.GetCookie('screenClose')) YX.cookie.SetCookie('screenClose', YX.systemScreenClose); if (!YX.cookie.GetCookie('readStyle')) YX.cookie.SetCookie('readStyle', YX.systemReadStyle); if (!YX.cookie.GetCookie('screenShowStyle')) YX.cookie.SetCookie('screenShowStyle', YX.systemScreenShowStyle) }, ByCookieDisplayInterface: function() { YX.cookie.SetCookie('pause', YX.systemPause); YX.tools.InitBarEventObj.ColorClickFunc.SetTabColor(); YX.systemVolume = Number(YX.cookie.GetCookie('volume')); $("#yx_volume_number").text(YX.configText['volume'] + (YX.systemVolume / YX.volumeInterval) + ""); YX.systemSpeed = Number(YX.cookie.GetCookie('speed')); $("#yx_speed_number").text(YX.configText['speed'] + ((YX.systemSpeed + YX.speedMax) / YX.speedInterval + 1) + ""); if (YX.cookie.GetCookie('isRead') == "true") { YX.tools.InitBarEventObj.PlaySpeechClickFunc.Open(); YX.tools.InitBarStyle.ChangeIcon($("#yx_playSpeech>span").get(0), 'icon', 'down') } if (YX.cookie.GetCookie('ruler') == "true") { YX.tools.InitBarEventObj.RulerClickFunc.Open(); YX.tools.InitBarStyle.ChangeIcon($("#yx_ruler>span").get(0), 'icon', 'down') } if (YX.cookie.GetCookie('screenClose') == 'false') { YX.tools.InitBarEventObj.DisplayScreenClickFunc.Open(); YX.tools.InitBarStyle.ChangeIcon($("#yx_displayScreen>span").get(0), 'icon', 'down') } var systemColor = YX.cookie.GetCookie('color'); for (var colorIndex = 0; colorIndex < YX.color.length; colorIndex++) { if (YX.color[colorIndex] == systemColor) { var className = $("#yx_color" + colorIndex + ">span").attr("class").replace("icon", "down"); $("#yx_color" + colorIndex + ">span").attr("class", className); break } } var systemScreenShowStyle = YX.cookie.GetCookie('screenShowStyle'); systemScreenShowStyle = systemScreenShowStyle == null ? "py" : systemScreenShowStyle; var className = $("#screen_" + systemScreenShowStyle).attr("class").replace("icon", "down"); $("#screen_" + systemScreenShowStyle).attr("class", className) }, ByCookieDisplayIframeInterface: function() { YX.tools.InitBarEventObj.HistoryClickFunc.ChangeBackGoIcon(); if (YX.cookie.GetCookie('ruler') == 'true') YX.tools.InitBarEventObj.RulerClickFunc.Open(); var systemZoom = Number(YX.cookie.GetCookie('zoom')); if (systemZoom && systemZoom != "1") { if (YX.Utils.GetOS() != "FF") { YX.page.SetScroll.SetPos(systemZoom); $(YX.continueStartNodeId).contents().find("body").css("zoom", "" + systemZoom) } else { $(YX.continueStartNodeId).contents().find("body").css("-moz-transform", "scale(" + systemZoom + ")") } $("#yx_zoom_number").text(YX.configText['zoom'] + parseInt(systemZoom * 100) + "%"); var bodyWH = YX.Utils.GetBodyWidthHeight(); $(YX.continueStartNodeId).contents().get(0).documentElement.scrollLeft = bodyWH.width * (systemZoom - 1) / 2; try { $(YX.continueStartNodeId).contents().get(0).body.scrollLeft = bodyWH.width * (systemZoom - 1) / 2 } catch(err) {} } } }; YX.cookie.InitAllCookie(); YX.page = { reportTitleIntv: 0, ChangeIFramePageLink: function(node) { if (node.tagName == "A" || node.tagName == "AREA") { if (node.href && node.href.indexOf("javascript:") != -1) return; if (node.href && YX.proxyUrl && node.href.indexOf(YX.proxyUrl) != 0) node.href = " " + YX.proxyUrl + YX.Utils.UTFUrlEncode(node.href); var href = $(node).attr("href"); var isSelfLocation = YX.Utils.IsSelfLocation(href); if (isSelfLocation) { if (!node.target || node.target == "_self" || node.target == "_blank") { node.target = "_self" } else {} $(node).attr("thref", node.href).attr("href", "#").bind("click", YX.mouse.BindDown) } else { $(node).attr("thref", node.href).attr("href", "#").bind("click", function(ev) { if (YX.cookie.GetCookie('screenClose') == 'true') { YX.cookie.SetCookie('screenClose', 'false'); YX.tools.InitBarEventObj.DisplayScreenClickFunc.Open() } var text = YX.configText['noSelfLink']; YX.tools.ShowScreenText(text); YX.sound.PlayToolIsSelfSound(text, null, false); YX.Utils.PopEvent(ev); return false }).bind("dblclick", function() { var href = $(this).attr("thref"); if (href && YX.proxyUrl && href.indexOf(YX.proxyUrl) == 0) href = YX.Utils.UTFUrlDecode(href.split(YX.proxyUrl)[1]); window.open(href) }) } } else if (node.tagName == "IFRAME" || node.tagName == "FRAME") { if (!$(node).attr("src") || $(node).attr("src") == "#") return; if (node.src && YX.proxyUrl && node.src.indexOf(YX.proxyUrl) != 0) node.src = YX.proxyUrl + YX.Utils.UTFUrlEncode(node.src) + "&isframe=1" } }, Preprocess: function(node) { if (node.nodeType == 3 && !(YX.Nodes.internalNode(node))) { var node_text = node.data; if (/\S/.test(node_text)) { var doc = node.ownerDocument; var parentSpan = doc.createElement('label'); parentSpan.setAttribute("class", YX.systemTextTagName); var phrases = YX.Utils.SplitString(node_text); var nodesAdded = []; for (var i = 0; i < phrases.length; i++) { if (/\S/.test(phrases[i])) { var newSpan = doc.createElement('label'); newSpan.setAttribute("class", YX.systemTextTagName); var curr_node = doc.createTextNode(phrases[i]); newSpan.appendChild(curr_node); nodesAdded.push(newSpan); YX.keyboard.Node.GetNode(newSpan); YX.tools.InitBarEventObj.ColorClickFunc.GetColorNodes(newSpan) } } var parentNode = node.parentNode; if (node.nextSibling != null) { var next_node = node.nextSibling; for (var i = 0; i < nodesAdded.length; i++) { parentNode.insertBefore(nodesAdded[i], next_node) } } else { for (var i = 0; i < nodesAdded.length; i++) { parentNode.appendChild(nodesAdded[i]) } } parentNode.removeChild(node) } } else { if (node.id && node.id.substr(0, 12) == "yx_style_nav") { $(node).remove(); return } YX.Nodes.ChangeImageMediaTitle(node); YX.Replace.Run(node); YX.page.ChangeIFramePageLink(node); YX.keyboard.Node.GetNode(node); YX.tools.InitBarEventObj.ColorClickFunc.GetColorNodes(node); YX.page.ChangeImgSrc.GetNode(node) } }, PreVisit: function(node) { YX.page.Preprocess(node) }, PreprocessPageTextElement: function() { YX.Nodes.treeTraverseRecursion($(YX.continueStartNodeId).contents().get(0).body, YX.page.PreVisit, function(node) { return YX.Nodes.leafNode(node) }) }, ChangePageStyle: function(isshow) { var bodyWH = YX.Utils.GetBodyWidthHeight(); var tabHeight = $(".yx_content_tabs table").height(); var screenHeight = $("body").attr("onresize") != "false" && $("#yx_showscreen_div").css("display") != "none" && isshow != "hidden" ? 150 : 0; $(".yx_content").css({ "height": (bodyWH.height - screenHeight) + "px" }); $(".yx_content iframe").css("height", bodyWH.height - screenHeight - tabHeight); $(".yx_toolbar_bg_table").css("width", (bodyWH.width - 100) + "px"); $("body>.maskdivgen").css({ "height": (bodyWH.height - 60) + "px", "width": bodyWH.width + "px" }) }, PageLoad: function() { YX.page.ChangePageStyle(); window.onresize = this.ChangePageStyle }, SetScroll: { SetPos: function(param) { var bodyWH = YX.Utils.GetBodyWidthHeight(); var scrollDivLength = $(YX.continueStartNodeId).contents().find("#yx_scroll_setting").length; if (scrollDivLength < 1 && param > 1) { $(YX.continueStartNodeId).contents().find("body").append('
') } else { if (param <= 1 && scrollDivLength >= 1) { $(YX.continueStartNodeId).contents().find("#yx_scroll_setting").remove() } } $(YX.continueStartNodeId).contents().get(0).documentElement.scrollLeft = bodyWH.width * (param - 1) / 2; try { $(YX.continueStartNodeId).contents().get(0).body.scrollLeft = bodyWH.width * (param - 1) / 2 } catch(err) {} } }, LimitAgainLoaded: function() { if ($($(YX.continueStartNodeId).contents().get(0).body).attr("yxisload") == "true") return true; $($(YX.continueStartNodeId).contents().get(0).body).attr("yxisload", "true"); return false }, RequestDataComplete: false, RequestData: function() { var currentVisitUrl = $(YX.continueStartNodeId).contents().get(0).location.href; if (currentVisitUrl && currentVisitUrl.indexOf(YX.proxyUrl) == 0) { currentVisitUrl = currentVisitUrl.split(YX.proxyUrl)[1]; currentVisitUrl = YX.Utils.UTFUrlDecode(currentVisitUrl) } if (!currentVisitUrl || currentVisitUrl.indexOf("/yixuan/") != -1) return false; var currentVisitDomainArr = currentVisitUrl.split("/"); var currentVisitDomain = currentVisitDomainArr.length > 2 ? currentVisitDomainArr[2] : currentVisitDomainArr[0]; if (currentVisitDomain == YX.prevVisitDomain) return false; YX.prevVisitDomain = currentVisitDomain; YX.page.RequestDataComplete = false; $.ajax({ async: false, url: YX.pageDataPath + currentVisitDomain, type: "GET", dataType: 'jsonp', jsonp: 'yxjsoncallback', timeout: 10000, success: function(result) { try { if (result && typeof(result) == "function") result() } catch(e) {} }, complete: function(XMLHttpRequest, textStatus) { if (!YX.page.RequestDataComplete) { YX.page.RequestDataComplete = true; YX.page.Task() } } }); return true }, ChangeImgSrc: { Nodes: [], BGNodes: [], ClearNodes: function() { this.Nodes = []; this.BGNodes = [] }, GetNode: function(node) { if (!YX.proxyUrl) return; if (node.tagName == "A") { $("img", node).each(function() { YX.page.ChangeImgSrc.GetNode(this) }) } else if (node.tagName == "IMG" && $(node).attr("yxoriginal")) { YX.page.ChangeImgSrc.Nodes.push(node) } var backgroundImage = $(node).css("background-image"); if (backgroundImage && backgroundImage.indexOf("point.png?") != -1) YX.page.ChangeImgSrc.BGNodes.push(node) }, ChangeAllNode: function() { for (var i = 0; i < this.Nodes.length; i++) { var node = this.Nodes[i]; $(node).attr("src", $(node).attr("yxoriginal")) } for (var i = 0; i < this.BGNodes.length; i++) { var node = this.BGNodes[i]; var backgroundImage = $(node).css("background-image"); backgroundImage = backgroundImage.replace(/http[^\?]*point\.png\?/ig, ""); $(node).css("background-image", backgroundImage) } } }, ClearCacheNodes: function() { YX.tools.InitBarEventObj.ColorClickFunc.nodes[YX.continueStartNodeId] = []; YX.keyboard.Node.nodes[YX.continueStartNodeId] = []; YX.keyboard.Node.indexs[YX.continueStartNodeId] = -1 }, Task: function() { YX.content.SetTitle(); YX.content.AutoSetting(); YX.page.ChangeImgSrc.ClearNodes(); YX.mouse.ClearAllSound(); try { YX.tools.InitBarEventObj.HistoryClickFunc.Record() } catch(e) {} YX.page.ClearCacheNodes(); try { YX.keyboard.InitKeyboard() } catch(e) {} try { YX.tools.InitBarEventObj.ColorClickFunc.Init() } catch(e) {} try { YX.page.PreprocessPageTextElement() } catch(e) {} try { YX.cookie.ByCookieDisplayIframeInterface() } catch(e) {} try { YX.page.ChangePageStyle() } catch(e) {} try { YX.page.RemoveLoading() } catch(e) {} try { var firstReportTitle = true; soundManager.onready(function(oStatus) { if (oStatus.success) { if (firstReportTitle) { YX.tools.ReportPageTitle(); firstReportTitle = false } } }) } catch(e) {} setTimeout(function() { YX.page.ChangeImgSrc.ChangeAllNode() }, 1) }, RunAgain: function() { YX.page.ChangeImgSrc.ClearNodes(); YX.page.ClearCacheNodes(); try { YX.keyboard.InitKeyboard() } catch(e) {} try { YX.tools.InitBarEventObj.ColorClickFunc.Init() } catch(e) {} try { YX.page.PreprocessPageTextElement() } catch(e) {} try { YX.cookie.ByCookieDisplayIframeInterface() } catch(e) {} try { YX.page.ChangePageStyle() } catch(e) {} try { YX.page.RemoveLoading() } catch(e) {} }, SystemLoadedCompleteTask: function(node) { if ($(YX.continueStartNodeId).contents().get(0).location.href == "about:blank") return; if (YX.page.LimitAgainLoaded()) return; if (YX.page.RequestData()) return; YX.page.Task() }, RunLoading: function () { alert("yx_waiting_play"); if ($("#yx_waiting_play").length > 0) return; var masknodes = $("body>.maskdivgen:eq(0)"); if (masknodes && masknodes.css("display") == "block") return; $(document).mask(YX.configText['loading']); $("body").append('
') }, RemoveLoading: function() { $(document).unmask(); $("#yx_waiting_play_flash").remove(); $("#yx_waiting_play").remove() } }; YX.content = { Init: function() { $(".tab_close").live("click", function() { YX.content.DeletePage(this) }).live("mouseover", function() {}).live("mouseout", function() {}); $(".tab_title").live("click", function() { YX.content.SelectedPage(this) }).live("dblclick", function() { YX.tools.InitBarEventObj.RefreshClickFunc() }).live("mouseover", function() { YX.sound.PlayToolIsSelfSound($(this).text(), null, false); YX.tools.ShowScreenText($(this).text()) }).live("mouseout", function() {}); $(".setting_title_open").bind("click", function() { if ($(this).css("display") == "none") return; $("#yx_all").css({ "display": "block", "width": "100px" }).animate({ "width": "100%" }, 100); $(this).css("display", "none"); $(".setting_title_close").css("display", "block") }).live("mouseover", function() { YX.sound.PlayToolIsSelfSound($(this).text(), null, false); YX.tools.ShowScreenText($(this).text()) }); $(".setting_title_close").bind("click", function() { if ($(this).css("display") == "none") return; $("#yx_all").animate({ "width": "0%" }, 100, function() { $(this).css("display", "none") }); $(this).css("display", "none"); $(".setting_title_open").css("display", "block") }).live("mouseover", function() { YX.sound.PlayToolIsSelfSound($(this).text(), null, false); YX.tools.ShowScreenText($(this).text()) }) }, CloseSetting: function() { $(".setting_title_close").trigger("click") }, OpenSetting: function() { $(".setting_title_open").trigger("click") }, AutoSetting: function() { if ($(".yx_tab").length == 1) { YX.content.OpenSetting() } else { YX.content.CloseSetting() } }, DeletePage: function(node) { YX.page.ClearCacheNodes(); var id = YX.continueStartNodeId.split("_")[1]; $("#iframe_" + id + ",#tab_" + id).remove(); node = $(".yx_tabs>div:last>a").get(0); this.SelectedPage(node) }, SelectedPage: function(node) { YX.page.RemoveLoading(); this.SetOtherPageUnselected(); var id = $(node.parentNode).attr("id").split("_")[1]; $(node.parentNode).removeClass("yx_tab_selected").addClass("yx_tab_selected"); YX.continueStartNodeId = "#iframe_" + id; $(YX.continueStartNodeId).css("display", "block"); this.ChangeTagSize(); node.focus(); YX.tools.InitBarEventObj.HistoryClickFunc.ChangeBackGoIcon(); YX.mouse.ContinueReadNode.Close() }, GetCurrentTabID: function() { return $(".yx_tabs>.yx_tab_selected:eq(0)").attr("id") }, SetOtherPageUnselected: function() { $(".yx_tab_selected").removeClass("yx_tab_selected").addClass("yx_tab_unselected"); $(".yx_content_page iframe").css("display", "none") }, SetTitle: function() { var node = $(".yx_tabs>.yx_tab_selected a:eq(0)"); if (!node.text()) node.text(YX.Nodes.getTitle()) }, ChangeTagSize: function() { var countTab = $(".yx_content_tabs .yx_tab").length; if (countTab < 2) return; var bodyWH = YX.Utils.GetBodyWidthHeight(); var totalWidth = bodyWH.width - $(".setting").outerWidth(true) - 30 - 250; var tabFitCount = parseInt(totalWidth / (countTab - 1)); if (tabFitCount >= 250) { $(".yx_content_tabs .yx_tab").css("width", "250px"); $(".yx_content_tabs .tab_title").css("width", "200px") } else { $(".yx_content_tabs .yx_tab").css("width", tabFitCount + "px"); $(".yx_content_tabs .tab_title").css("width", (tabFitCount - 52) + "px"); $(".yx_content_tabs .yx_tab_selected").css("width", "250px"); $(".yx_content_tabs .yx_tab_selected .tab_title").css("width", "200px") } }, CreateTab: function(name, id, isStatic) { name = name ? name: ""; id = 'tab_' + id; var closeHTML = isStatic ? "": ''; var tabHtml = '
' + name + '' + closeHTML + '
'; $(".yx_tabs").append(tabHtml); this.ChangeTagSize(); $("#" + id + " .tab_title").get(0).focus() }, CreateIframe: function(url, id) { //if (url && url != "#" && YX.proxyUrl && url.indexOf("&q_url=") == -1) url = YX.proxyUrl + YX.Utils.UTFUrlEncode(url); var bodyWH = YX.Utils.GetBodyWidthHeight(); var tabHeight = $(".yx_content_tabs table").height(); var screenHeight = $("body").attr("onresize") != "false" && $("#yx_showscreen_div").css("display") != "none" ? 150 : 0; id = "iframe_" + id; YX.continueStartNodeId = "#" + id; var iframehtml = ''; $(".yx_content_page").append(iframehtml) }, CreatePage: function(id, name, url) { if (!url || url == "#" || url == "about:blank" || url.indexOf("javascript:") != -1) return; id = id ? id: new Date().getTime(); var isStatic = $(".yx_tab").length == 0 ? true: false; this.SetOtherPageUnselected(); this.CreateTab(name, id, isStatic); this.AutoSetting(); this.CreateIframe(url, id); YX.tools.InitBarEventObj.HistoryClickFunc.ChangeBackGoIcon() } }; YX.mouse = { nodeText: [], intv: 0, cintv: 0, continueIndex: -1, continueFlag: true, selectFlag: false, selectContentArray: [], readIndex: 0, selectTmpText: "", recursion_limit: 10000, ClearAllSound: function() { YX.sound.StopAllSounds(); YX.mouse.nodeText = [] }, BindDown: function(ev, iskey) { YX.Utils.PopEvent(ev); var url = $(this).attr("thref"); if (!url || url == "about:blank" || url == "#") return false; var name = $(this).text(); YX.content.CreatePage(null, name, url); $(this).trigger("mouseout", [iskey]); return false }, BindOver: function(ev, iskey) { if (this.parentNode && this.parentNode.tagName == "A") return; if (YX.cookie.GetCookie('isRead') == "false") { if (YX.cookie.GetCookie('screenClose') == "false") { var text = YX.Nodes.GetNodeText(this); YX.tools.ShowScreenText(text) } if (this.tagName == "A" && this.href != "#" && this.href != "") YX.mouse.ContinueReadNode.currentNodeLinkAddress = this.href; if (iskey && YX.Nodes.isFocusable(this)) $(this).focus(); YX.mouse.ChangeMouseOverColor(this); return } var read = YX.cookie.GetCookie('read'); if (read == "continue") { if (!YX.mouse.continueFlag || !YX.mouse.ContinueReadNode.firstVisit) return; var index = $(this).attr("yxnodeindex"); if (index) { YX.mouse.cintv = setTimeout(function() { YX.mouse.ClearAllSound(); YX.mouse.UnContinueIntervalRead(); YX.mouse.ContinueReadNode.InitFunc(); YX.mouse.continueIndex = index; YX.mouse.ContinueReadNode.Start() }, YX.systemContinueReadTime) } } else if (read == "pointer") { var text = YX.Nodes.GetNodeText(this); if (text) YX.mouse.nodeText.push(text); YX.tools.ShowScreenText(text); YX.mouse.ChangeMouseOverColor(this) } if (this.tagName == "A" && this.href != "#" && this.href != "") YX.mouse.ContinueReadNode.currentNodeLinkAddress = this.href; if (iskey && YX.Nodes.isFocusable(this)) $(this).focus() }, BindOut: function(ev, iskey) { if (YX.cookie.GetCookie('isRead') == "true" && YX.cookie.GetCookie('read') == "continue") { clearTimeout(YX.mouse.cintv); return } YX.mouse.ChangeMouseOutColor(this); YX.mouse.ContinueReadNode.currentNodeLinkAddress = ""; YX.mouse.ClearAllSound() }, ChangeMouseOverColor: function(node) { if (node.tagName == "IMG") { //$(node).css("border", "1px solid " + YX.systemTooltipBackColor) } else { if (YX.tools.InitBarEventObj.ColorClickFunc.PreChangeColor.isChange == false) return; $(node).css("color", YX.systemTooltipColor); $(node).children().each(function() { this.style.color = YX.systemTooltipColor }); $(node).css("background-color", YX.systemTooltipBackColor) } }, ChangeMouseOutColor: function(node) { if (node.tagName == "IMG") { $(node).css("border", "0px") } else { if (YX.tools.InitBarEventObj.ColorClickFunc.PreChangeColor.isChange == false) return; $(node).css("color", YX.systemTooltipBackColor); $(node).children().each(function() { this.style.color = YX.systemTooltipBackColor }); $(node).css("background-color", YX.systemTooltipColor) } }, ToolsMouseOver: function() { YX.mouse.ClearAllSound(); var id = $(this).parent().attr("id"); if (id != "") { var className = $(this).attr("class"); if (className.indexOf("backEnable") != -1) { id = "yx_backEnable" } else if (className.indexOf("pause") != -1) { id = "yx_pause" } else if (className.indexOf("yx_play_icon") != -1) { id = "yx_play" } YX.tools.ShowScreenText(YX.configText[id]); YX.sound.PlayToolIsSelfSound(YX.configText[id], null, false) } }, ToolRead: function() { $("#yixuan_toolbar_div span,.yx_showscreen_feature_table_secondtr span").bind("mouseover", YX.mouse.ToolsMouseOver) }, CurrentPointerReadText: "", PointIntervalRead: function() { this.intv = setInterval(function() { if (YX.mouse.nodeText.length > 0) { var text = YX.mouse.nodeText.pop(); YX.sound.TextToSpeechAndPlay(text, false, function() { YX.mouse.ClearAllSound() }) } }, YX.systemPointerReadTime) }, UnPointIntervalRead: function() { clearInterval(this.intv); YX.mouse.ClearAllSound() }, ContinueIntervalRead: function() { YX.mouse.ContinueReadNode.Close(); YX.mouse.ContinueReadNode.InitFunc() }, UnContinueIntervalRead: function() { var lastVisitNode = YX.keyboard.Node.GetCurrentNodes()[YX.mouse.continueIndex]; if (lastVisitNode) YX.mouse.ContinueReadNode.ChangeMouseoutContinueReadStyle(lastVisitNode); YX.mouse.ContinueReadNode.Close() }, SelectIntervalRead: function() { YX.mouse.selectFlag = true; YX.mouse.readIndex = 0; YX.mouse.ClearAllSound(); this.SelectTextRead() }, UnSelectIntervalRead: function() { YX.mouse.ClearAllSound(); YX.mouse.selectFlag = false; YX.mouse.readIndex = 0; $(document).unbind("mouseup", this.BindUp); YX.mouse.selectTmpContent = ''; YX.mouse.selectContentArray = [] }, BindUp: function() { var text = YX.mouse.GetMouseSelectWord(); text = String(text); if (text == '') YX.mouse.selectTmpText = ""; if (text != '' && text != YX.mouse.selectTmpText) { YX.mouse.selectTmpText = text; YX.mouse.selectContentArray = YX.Utils.SplitString(text.split("\r\n").join(",")); if (YX.mouse.selectContentArray.length > 0) { YX.mouse.readIndex = 0; YX.mouse.ClearAllSound(); YX.mouse.RecursiveRead() } } }, ReadContentByWords: function(words) { var text = words; text = String(text); if (text != '') { YX.mouse.selectContentArray = YX.Utils.SplitString(text.split("\r\n").join(",")); if (YX.mouse.selectContentArray.length > 0) { YX.mouse.readIndex = 0; YX.mouse.ClearAllSound(); YX.mouse.RecursiveReadByWords() } } }, RecursiveReadByWords: function() { if (YX.mouse.selectContentArray[YX.mouse.readIndex] == undefined) return; YX.tools.ShowScreenText(YX.mouse.selectContentArray[YX.mouse.readIndex]); YX.sound.TextToSpeechAndPlay(YX.mouse.selectContentArray[YX.mouse.readIndex], false, function() { YX.sound.StopAllSounds(); YX.mouse.readIndex++; if (YX.mouse.readIndex > YX.mouse.selectContentArray.length - 1 || YX.mouse.selectFlag == false) { YX.mouse.selectContentArray = []; return } YX.mouse.RecursiveReadByWords() }) }, RecursiveRead: function() { if (YX.mouse.selectContentArray[YX.mouse.readIndex] == undefined || YX.mouse.selectFlag == false) return; YX.tools.ShowScreenText(YX.mouse.selectContentArray[YX.mouse.readIndex]); YX.sound.TextToSpeechAndPlay(YX.mouse.selectContentArray[YX.mouse.readIndex], false, function() { YX.sound.StopAllSounds(); YX.mouse.readIndex++; if (YX.mouse.readIndex > YX.mouse.selectContentArray.length - 1 || YX.mouse.selectFlag == false) { YX.mouse.selectContentArray = []; return } YX.mouse.RecursiveRead() }) }, SelectTextRead: function() { $(document).mouseup(YX.mouse.BindUp) }, GetMouseSelectWord: function() { var text = ""; if ($.browser.msie) { text = document.selection.createRange().text } else { text = window.getSelection() } return text }, ContinueReadNode: { color: "", bgcolor: "", readedLinkColor: "", readedTextColor: "", readedBgColor: "", currentNode: "", currentNodeLinkAddress: "", firstVisit: true, ReStartSetting: function() { YX.sound.soundQueue = []; YX.mouse.ContinueReadNode.firstVisit = true }, SetReadColor: function() { var color = YX.cookie.GetCookie("color").split("_"); if (color[0] == "other") { this.color = "#ffffff"; this.bgcolor = "#000000"; this.readedLinkColor = ""; this.readedTextColor = ""; this.readedBgColor = "" } else { this.color = color[1]; this.bgcolor = color[0]; this.readedBgColor = color[1]; for (var i = 0; i < YX.color.length; i++) { if (YX.color[i] == color.join("_")) { var systemContinueReadedTextLinkColor = YX.continueReadedTextLinkColor[i].split("_"); this.readedLinkColor = systemContinueReadedTextLinkColor[1]; this.readedTextColor = systemContinueReadedTextLinkColor[0]; break } } if (i >= YX.color.length) { this.readedLinkColor = ""; this.readedTextColor = ""; this.readedBgColor = "" } } }, InitFunc: function() { YX.mouse.ContinueReadNode.SetReadColor(); YX.sound.soundQueue = [] }, Start: function() { if (!YX.mouse.continueFlag) { YX.mouse.ContinueReadNode.Start(); return } if (YX.mouse.continueIndex == -1 || YX.keyboard.Node.GetCurrentNodes().length == 0) return; var currentNode = YX.keyboard.Node.GetCurrentNodes()[YX.mouse.continueIndex]; if (currentNode == undefined || YX.mouse.continueIndex >= YX.keyboard.Node.GetCurrentNodes().length) { if (YX.mouse.continueIndex >= YX.keyboard.Node.GetCurrentNodes().length) YX.mouse.continueIndex--; return } YX.mouse.ContinueReadNode.currentNode = currentNode; YX.mouse.ContinueReadNode.AutoSetScrollTopByReadedNode(currentNode); var text = YX.Nodes.GetNodeText(currentNode); if (text) { if (currentNode.tagName == "IMG") { currentNode.style.border = "5px solid " + YX.mouse.ContinueReadNode.bgcolor } else { currentNode.style.color = YX.mouse.ContinueReadNode.color; currentNode.style.backgroundColor = YX.mouse.ContinueReadNode.bgcolor } if (currentNode.tagName == "A" && currentNode.href != "#" && currentNode.href != "") YX.mouse.ContinueReadNode.currentNodeLinkAddress = currentNode.href; if (YX.Nodes.isFocusable(currentNode)) $(currentNode).focus(); if (YX.cookie.GetCookie('readStyle') == "2") { YX.sound.TextToSpeechAndPlay(text, false, function() { YX.sound.StopAllSounds(); YX.mouse.continueIndex++; YX.mouse.ContinueReadNode.ChangeMouseoverContinueReadStyle(currentNode); YX.mouse.ContinueReadNode.currentNodeLinkAddress = ""; YX.mouse.ContinueReadNode.Start() }) } else { YX.tools.ShowScreenText(text); if (YX.mouse.ContinueReadNode.firstVisit) { YX.sound.TextToSpeechAndPlay(text, false, "CRCSD"); YX.mouse.ContinueReadNode.firstVisit = false } YX.mouse.ContinueReadNode.PlaySound(currentNode) } } else { YX.mouse.ContinueReadNode.firstVisit = true; YX.mouse.continueIndex++; YX.mouse.ContinueReadNode.Start() } }, ChangeMouseoverContinueReadStyle: function(currentNode) { if (currentNode.tagName == "A") { currentNode.style.color = YX.mouse.ContinueReadNode.readedLinkColor } else { if (currentNode.tagName == "IMG") { currentNode.style.border = "" } else { currentNode.style.color = YX.mouse.ContinueReadNode.readedTextColor } } currentNode.style.backgroundColor = YX.mouse.ContinueReadNode.readedBgColor }, ChangeMouseoutContinueReadStyle: function(currentNode) { if (currentNode.tagName == "A") { currentNode.style.color = YX.mouse.ContinueReadNode.readedLinkColor } else { if (currentNode.tagName == "IMG") { currentNode.style.border = "" } else { currentNode.style.color = YX.mouse.ContinueReadNode.readedTextColor } } currentNode.style.backgroundColor = YX.mouse.ContinueReadNode.readedBgColor }, PlaySound: function(currentNode) { var sound = YX.sound.soundQueue.shift(); if (sound) { YX.mouse.ClearAllSound(); sound.play({ onfinish: function() { this.destruct(); YX.sound.StopAllSounds(); YX.mouse.continueIndex++; YX.mouse.ContinueReadNode.ChangeMouseoutContinueReadStyle(currentNode); YX.mouse.ContinueReadNode.currentNodeLinkAddress = ""; YX.mouse.ContinueReadNode.currentNode = ""; var tintv = setTimeout(function() { YX.mouse.ContinueReadNode.Start(); clearTimeout(tintv) }, 50) }, onload: function() { if (YX.cookie.GetCookie('readStyle') == "2") return; if (YX.mouse.continueIndex == -1 || YX.keyboard.Node.GetCurrentNodes().length == 0) return; var cindex = parseInt(YX.mouse.continueIndex) + 1; var nextNode = YX.keyboard.Node.GetCurrentNodes()[cindex]; if (!nextNode || YX.mouse.continueIndex >= YX.keyboard.Node.GetCurrentNodes().length - 1) return; var text = YX.Nodes.GetNodeText(nextNode); YX.sound.TextToSpeechAndPlay(text, false, "CRCSD") } }) } else { var tempIntv = setTimeout(function() { YX.mouse.ContinueReadNode.PlaySound(currentNode); clearTimeout(tempIntv) }, 100) } }, AutoSetScrollTopByReadedNode: function(obj) { var d = $(YX.continueStartNodeId); var c = d.height(); d = d.contents().get(0); var a = $(obj).offset().top; var b = d.documentElement.scrollTop + d.body.scrollTop; if (a - b > c / 2 || b > a) { d.documentElement.scrollTop = (a - c / 2); d.body.scrollTop = (a - c / 2) } }, Close: function() { YX.mouse.ClearAllSound(); YX.mouse.continueIndex = -1; this.color = ""; this.bgcolor = ""; clearTimeout(YX.mouse.cintv); this.currentNode = ""; this.firstVisit = true; YX.mouse.continueFlag = true; YX.sound.soundQueue = [] } } }; YX.keyboard = { ObjectKeypress: function(evt) { evt = evt || window.event; var key = evt.which || evt.keyCode; try { if (top.location != self.location && evt.data && evt.data.ischildselfkeydown) top.YX.keyboard.ObjectKeypress(evt) } catch(e) {} if (evt.altKey) { if (key == 38) { YX.keyboard.AltUpKeypressEvent(); return false } else if (key == 40) { YX.keyboard.AltDownKeypressEvent(); return false } else if (key == 37) { YX.keyboard.AltLeftKeypressEvent(); return false } else if (key == 39) { YX.keyboard.AltRightKeypressEvent(); return false } } else if (evt.ctrlKey) { if (key == 13) { YX.keyboard.CtrlEnterKeypressEvent(); return false } if (key == 38) { return false } else if (key == 40) { return false } else if (key == 37) { YX.keyboard.CtrlLeftKeypressEvent(); return false } else if (key == 39) { YX.keyboard.CtrlRightKeypressEvent(); return false } else if (key == 191) { YX.keyboard.CtrlWenhaoKeypressEvent(); return } } else if (evt.shiftKey && key == 13) { YX.keyboard.ShiftEnterKeypressEvent(); return false } else { switch (key) { case 38: YX.keyboard.UpArrowKeypressEvent(); return false; case 40: YX.keyboard.DownArrowKeypressEvent(); return false; case 37: YX.keyboard.LeftArrowKeypressEvent(); return false; case 32: YX.keyboard.SpacePressFunc(); break; default: break } } }, ShiftEnterKeypressEvent: function() { $("#yx_playSpeech>span").trigger("mousedown"); $("#yx_playSpeech>span").trigger("mouseup") }, AltLeftKeypressEvent: function() { $("#yx_speedSub span").trigger("mousedown").trigger("mouseup") }, AltRightKeypressEvent: function() { $("#yx_speedAdd span").trigger("mousedown").trigger("mouseup") }, AltUpKeypressEvent: function() { $("#yx_volumeAdd span").trigger("mousedown").trigger("mouseup") }, AltDownKeypressEvent: function() { $("#yx_volumeSub span").trigger("mousedown").trigger("mouseup") }, CtrlEnterKeypressEvent: function() { $("#yx_refresh span").trigger("mousedown"); $("#yx_refresh span").trigger("mouseup") }, CtrlRightKeypressEvent: function() { $("#yx_continueRead span").trigger("mousedown"); $("#yx_continueRead span").trigger("mouseup") }, CtrlLeftKeypressEvent: function() { $("#yx_pointerRead span").trigger("mousedown"); $("#yx_pointerRead span").trigger("mouseup") }, CtrlWenhaoKeypressEvent: function() { $(YX.continueStartNodeId).attr("src", YX.HttpPath(YX.helpPath + "help_directory.html")) }, SpacePressFunc: function() { if (YX.mouse.ContinueReadNode.currentNodeLinkAddress != "") { YX.mouse.ClearAllSound(); var isSelfLocation = YX.Utils.IsSelfLocation(YX.mouse.ContinueReadNode.currentNodeLinkAddress); if (isSelfLocation) { $(YX.continueStartNodeId).attr("src", YX.mouse.ContinueReadNode.currentNodeLinkAddress) } else { location.href = YX.mouse.ContinueReadNode.currentNodeLinkAddress } } }, UpArrowKeypressEvent: function(evt) { if (YX.keyboard.Node.indexs[YX.continueStartNodeId] > 0) { YX.keyboard.Node.indexs[YX.continueStartNodeId]-- } else { YX.keyboard.Node.indexs[YX.continueStartNodeId] = 0 } YX.keyboard.Node.TriggerNodeOverEvent(YX.keyboard.Node.indexs[YX.continueStartNodeId]); var text = YX.mouse.nodeText.pop(); var currentUrl = YX.mouse.ContinueReadNode.currentNodeLinkAddress; var currentNode = YX.mouse.ContinueReadNode.currentNode; YX.keyboard.Node.TriggerNodeOutEvent(YX.keyboard.Node.indexs[YX.continueStartNodeId] + 1); YX.mouse.ContinueReadNode.currentNodeLinkAddress = currentUrl; YX.mouse.nodeText.push(text); YX.mouse.ContinueReadNode.currentNode = currentNode }, DownArrowKeypressEvent: function(evt) { if (YX.keyboard.Node.indexs[YX.continueStartNodeId] < YX.keyboard.Node.GetCurrentNodes().length) { YX.keyboard.Node.indexs[YX.continueStartNodeId]++ } else { YX.keyboard.Node.indexs[YX.continueStartNodeId] = YX.keyboard.Node.GetCurrentNodes().length - 1 } YX.keyboard.Node.TriggerNodeOverEvent(YX.keyboard.Node.indexs[YX.continueStartNodeId]); var text = YX.mouse.nodeText.pop(); var currentUrl = YX.mouse.ContinueReadNode.currentNodeLinkAddress; var currentNode = YX.mouse.ContinueReadNode.currentNode; YX.keyboard.Node.TriggerNodeOutEvent(YX.keyboard.Node.indexs[YX.continueStartNodeId] - 1); YX.mouse.nodeText.push(text); YX.mouse.ContinueReadNode.currentNodeLinkAddress = currentUrl; YX.mouse.ContinueReadNode.currentNode = currentNode }, LeftArrowKeypressEvent: function(evt) { $("#yx_back span").trigger("mousedown") }, Node: { indexs: [], nodes: [], GetCurrentNodes: function() { return YX.keyboard.Node.nodes[YX.continueStartNodeId] ? YX.keyboard.Node.nodes[YX.continueStartNodeId] : [] }, TriggerNodeOverEvent: function(nodeIndex) { if (YX.keyboard.Node.GetCurrentNodes()[nodeIndex]) $(YX.keyboard.Node.GetCurrentNodes()[nodeIndex]).trigger("mouseover", [true]) }, TriggerNodeOutEvent: function(nodeIndex) { if (YX.keyboard.Node.GetCurrentNodes()[nodeIndex]) { $(YX.keyboard.Node.GetCurrentNodes()[nodeIndex]).trigger("mouseout"); YX.mouse.ContinueReadNode.AutoSetScrollTopByReadedNode(YX.keyboard.Node.GetCurrentNodes()[nodeIndex]) } }, GetNode: function(node) { if (node.tagName == undefined) return; if (node.getAttribute('class') != "yx_text_show_area") { if (node.tagName == "LABEL") return; if (node.tagName == "OBJECT" && $("node").attr("id") == "sm2movie") return; if (!YX.tagNames[node.tagName]) return; if (node.tagName == "IMG" && ($(node).width() < YX.imgInvalidWidth || $(node).height() < YX.imgInvalidHeight)) return } var text = YX.Nodes.GetNodeText(node); if (!text) return; YX.keyboard.Node.GetCurrentNodes().push(node); if (node.tagName == "OBJECT" || node.tagName == "EMBED") { $(node.parentNode).bind("mouseover", function(ev, iskey) { YX.mouse.BindOver.apply(node, [ev, iskey]) }).bind("mouseout", YX.mouse.BindOut) } else { $(node).bind("mouseover", YX.mouse.BindOver).bind("mouseout", YX.mouse.BindOut) } $(node).attr("yxnodeindex", (YX.keyboard.Node.GetCurrentNodes().length - 1) + "") } }, InitKeyboard: function() { $("body").focus(); $(document).unbind("keydown", YX.keyboard.ObjectKeypress); $(document).bind("keydown", { ischildselfkeydown: true }, YX.keyboard.ObjectKeypress); $(YX.continueStartNodeId).contents().find("body").unbind("keydown", YX.keyboard.ObjectKeypress); $(YX.continueStartNodeId).contents().find("body").bind("keydown", { ischildselfkeydown: true }, YX.keyboard.ObjectKeypress) } }; YX.tools = { InitTools: function() { if (YX.Utils.GetOS() == "IE") var suggest = ""; YX.cookie.ByCookieDisplayInterface(); YX.page.PageLoad(); YX.tools.InitBarEvent(); YX.tools.InitBarStyle.Start(); YX.tools.InitBarEventObj.ColorClickFunc.UniformColor(); YX.tools.InitBarEventObj.DisplayScreenClickFunc.ShowScreenFeatures(); YX.mouse.ToolRead() }, ReportPageTitle: function() { if (YX.cookie.GetCookie('firstVisit') == "true") { YX.tools.ShowScreenText(YX.configText['welcome']); YX.sound.PlayToolIsSelfSound(YX.configText['welcome'], null, false); YX.cookie.SetCookie('firstVisit', "false") } else { var title = YX.configText['pageTitle'] + YX.Nodes.getTitle() + YX.configText['page']; YX.tools.ShowScreenText(title); if (title) YX.sound.PlayToolIsSelfSound(title, null, false) } }, OperateHelp: function() { $("#yx_help>span").trigger("mousedown") }, OperateBack: function() { $("#yx_back>span").trigger("mousedown") }, ClearToolsOverSound: function() { if (YX.cookie.GetCookie("isRead") == "false") return; $("#yixuan_toolbar_div span").unbind("mouseover", YX.mouse.ToolsMouseOver); setTimeout(function() { $("#yixuan_toolbar_div span").bind("mouseover", YX.mouse.ToolsMouseOver) }, 1000) }, InitBarEvent: function() { var whichtool = ""; $(".yixuan_tools span").bind("mousedown", function(ev) { whichtool = $(this).parent().attr("id").split("_")[1]; YX.tools.InitBarEventObj.ToolsClick(whichtool); YX.Utils.PopEvent(ev) }) }, InitBarEventObj: { ToolsClick: function(whichtool) { switch (whichtool) { case 'help': YX.tools.InitBarEventObj.HelpClickFunc.Start(); break; case 'back': YX.tools.InitBarEventObj.BackClickFunc(); break; case 'refresh': YX.tools.InitBarEventObj.RefreshClickFunc(); break; case 'ruler': YX.tools.InitBarEventObj.RulerClickFunc.Start(); break; case 'color0': YX.tools.InitBarEventObj.ColorClickFunc.ShowColor(0); break; case 'color1': YX.tools.InitBarEventObj.ColorClickFunc.ShowColor(1); break; case 'color2': YX.tools.InitBarEventObj.ColorClickFunc.ShowColor(2); break; case 'zoomAdd': YX.tools.InitBarEventObj.ZoomAddClickFunc(); break; case 'zoomSub': YX.tools.InitBarEventObj.ZoomSubClickFunc(); break; case 'volumeAdd': YX.tools.InitBarEventObj.VolumeAddClickFunc(); break; case 'volumeSub': YX.tools.InitBarEventObj.VolumeSubClickFunc(); break; case 'speedAdd': YX.tools.InitBarEventObj.SpeedAddClickFunc(); break; case 'speedSub': YX.tools.InitBarEventObj.SpeedSubClickFunc(); break; case 'playSpeech': YX.tools.InitBarEventObj.PlaySpeechClickFunc.Start(); break; case 'pointerRead': YX.tools.InitBarEventObj.PointerReadClickFunc.Start(); break; case 'continueRead': YX.tools.InitBarEventObj.ContinueReadClickFunc.Start(); break; case 'displayScreen': YX.tools.InitBarEventObj.DisplayScreenClickFunc.Start(); break; default: break } }, RunNoReadStartFun: function(func) { var systemIsRead = YX.cookie.GetCookie("isRead"); if (systemIsRead == "false") { func() } else { $(document).mask(YX.configText['loading']) } }, RunNoReadStartFunWithoutMask: function(func) { var systemIsRead = YX.cookie.GetCookie("isRead"); var systemRead = YX.cookie.GetCookie("read"); if (systemIsRead == "false" && systemRead == 'pointer') { func() } }, HelpClickFunc: { sourceAddress: "", flag: false, Start: function() { YX.cookie.SetCookie('historyVisitPage', 'true'); if (YX.tools.InitBarEventObj.HelpClickFunc.flag) { YX.tools.InitBarEventObj.HelpClickFunc.flag = false; this.OpenHome() } else { YX.tools.InitBarEventObj.HelpClickFunc.flag = true; YX.tools.InitBarEventObj.HelpClickFunc.sourceAddress = $(YX.continueStartNodeId).contents().get(0).location.href; this.Help() } }, OpenHome: function() { $(YX.continueStartNodeId).contents().get(0).location.href = this.sourceAddress }, Help: function () { $(YX.continueStartNodeId).contents().get(0).location.href = YX.HttpPath(YX.helpPath + "help_directory.html") } }, HistoryClickFunc: { GetCurrentHistory: function() { if (!YX.systemHistory[YX.continueStartNodeId]) YX.systemHistory[YX.continueStartNodeId] = []; return YX.systemHistory[YX.continueStartNodeId] }, SetCurrentHistory: function(arr) { YX.systemHistory[YX.continueStartNodeId] = arr }, GetCurrentIndex: function() { if (!YX.systemHistoryIndex[YX.continueStartNodeId]) YX.systemHistoryIndex[YX.continueStartNodeId] = 0; return YX.systemHistoryIndex[YX.continueStartNodeId] }, SetCurrentIndex: function(idx) { YX.systemHistoryIndex[YX.continueStartNodeId] = idx }, GetMaxHistoryIndex: function() { return this.GetCurrentHistory().length }, InsertElemInArray: function(stringToSearch, arrayToSearch, currentIndex) { currentIndex = currentIndex + 1; arrayToSearch.splice(currentIndex, arrayToSearch.length - currentIndex); arrayToSearch.push(stringToSearch); if (arrayToSearch.length > YX.systemHistoryCount) { arrayToSearch.shift() } return arrayToSearch }, Record: function() { var addLocationHref = $(YX.continueStartNodeId).contents().get(0).location.href; var locationHref = addLocationHref.toLowerCase(); var flag = true; $(YX.continueStartNodeId).contents().find("meta").each(function() { var metacontent = $(this).attr("content"); if (metacontent.toLowerCase().indexOf("url=") != -1) { flag = false; return } }); if (!flag) return; if (locationHref == "about:blank") return; if (locationHref.split(YX.HttpPath(YX.helpPath)).length > 1) return; if (!locationHref) return; if (YX.systemHistoryVisitPage) { YX.systemHistoryVisitPage = false; return } var isSelfLocation = YX.Utils.IsSelfLocation(locationHref); if (isSelfLocation) { var records = this.GetCurrentHistory(); records = this.InsertElemInArray(addLocationHref, records, this.GetCurrentIndex()); this.SetCurrentIndex((records.length - 1)); this.SetCurrentHistory(records) } }, GetBackAndGoIndex: function(directrion) { var records = this.GetCurrentHistory(); var recordLength = records.length; if (records && recordLength > 1) { var systemHistroyBackIndex = this.GetCurrentIndex(); if (directrion == "go") { if (systemHistroyBackIndex >= records.length - 1) { return records[records.length - 1] } else { this.SetCurrentIndex((systemHistroyBackIndex + 1)); return records[systemHistroyBackIndex + 1] } } else { if (systemHistroyBackIndex < 1) { return records[0] } else { this.SetCurrentIndex((systemHistroyBackIndex - 1)); return records[systemHistroyBackIndex - 1] } } } else { return false } }, ChangeBackGoIcon: function() { var maxIndex = this.GetMaxHistoryIndex(); var systemHistroyBackIndex = this.GetCurrentIndex(); if (maxIndex < 2) { $("#yx_back>span").attr('class', "yx_img_55 yx_backEnable_icon"); return } else if (maxIndex == 2) { if (systemHistroyBackIndex == 1) { $("#yx_back>span").attr('class', "yx_img_55 yx_back_icon") } else { $("#yx_back>span").attr('class', "yx_img_55 yx_backEnable_icon") } return } if (systemHistroyBackIndex >= maxIndex - 1) { $("#yx_back>span").attr('class', "yx_img_55 yx_back_icon") } else if (systemHistroyBackIndex < 1) { $("#yx_back>span").attr('class', "yx_img_55 yx_backEnable_icon") } else { $("#yx_back>span").attr('class', "yx_img_55 yx_back_icon") } } }, BackClickFunc: function() { if ($("#yx_back>span").attr('class').indexOf("backEnable") != -1) return; var systemHistroyBackIndex = this.HistoryClickFunc.GetCurrentIndex(); var backRecord = this.HistoryClickFunc.GetBackAndGoIndex('back'); if (backRecord) { YX.tools.ClearToolsOverSound(); var className = $("#yx_help>span").attr("class").replace("down", "icon"); $("#yx_help span").attr("class", className); YX.systemHistoryVisitPage = true; YX.tools.InitBarEventObj.HistoryClickFunc.ChangeBackGoIcon(); YX.sound.PlayToolIsSelfSound(YX.configText['backedPage'], null, false); try { $(YX.continueStartNodeId).contents().get(0).location.href = backRecord } catch(e) { backRecord = this.HistoryClickFunc.GetBackAndGoIndex('go'); $(YX.continueStartNodeId).attr("src", backRecord) } } }, RefreshClickFunc: function() { YX.tools.ClearToolsOverSound(); YX.sound.PlayToolIsSelfSound(YX.configText['refreshingPage'], null, false); YX.systemHistoryVisitPage = true; //$(YX.continueStartNodeId).attr("src",$(YX.continueStartNodeId).attr("src")) $(YX.continueStartNodeId).contents().get(0).location.reload() }, //十字光标 RulerClickFunc: { nodex1: null, nodex2: null, nodey1: null, nodey2: null, Init: function() { this.nodex1 = $("#yx_mousefollow_x1"); this.nodex2 = $("#yx_mousefollow_x2"); this.nodey1 = $("#yx_mousefollow_y1"); this.nodey2 = $("#yx_mousefollow_y2") }, Start: function() { var systemRuler = YX.cookie.GetCookie("ruler"); if (systemRuler == 'false') { YX.cookie.SetCookie("ruler", "true"); YX.tools.InitBarEventObj.RulerClickFunc.Open(); YX.sound.PlayToolIsSelfSound(YX.configText['playedRuler'], null, false) } else { YX.cookie.SetCookie("ruler", "false"); YX.tools.InitBarEventObj.RulerClickFunc.Close(); YX.sound.PlayToolIsSelfSound(YX.configText['closedRuler'], null, false) } }, SetXYPos: function(mousePos) { var posx = mousePos.x; var posy = mousePos.y; var bodyWH = YX.Utils.GetBodyWidthHeight(); var step = 20; if (posx < step || posy < step || posx > bodyWH.width - step || posy > bodyWH.height - step) { this.SetXYShow("none"); return } this.SetXYShow("block"); this.nodex1.css({ "left": posx + "px", "top": "0px", "height": (posy - 40) + "px" }); this.nodex2.css({ "left": posx + "px", "top": (posy + 20) + "px", "height": (bodyWH.height - posy - 20) + "px" }); this.nodey1.css({ "left": "0px", "top": posy + "px", "width": (posx - 30) + "px" }); this.nodey2.css({ "left": (posx + 40) + "px", "top": posy + "px", "width": (bodyWH.width - posx - 30) + "px" }) }, SetXYShow: function(display) { this.nodex1.css("display", display); this.nodex2.css("display", display); this.nodey1.css("display", display); this.nodey2.css("display", display) }, BindMove: function(ev) { var ev = ev ? ev: window.event; var mousePos = YX.tools.InitBarEventObj.RulerClickFunc.MousePosition(ev); YX.tools.InitBarEventObj.RulerClickFunc.SetXYPos(mousePos) }, BindMoveIframe: function(ev) { var ev = ev ? ev: window.event; var mousePos = YX.tools.InitBarEventObj.RulerClickFunc.MousePosition(ev); mousePos.y = mousePos.y + 85; YX.tools.InitBarEventObj.RulerClickFunc.SetXYPos(mousePos) }, Open: function() { var color = YX.cookie.GetCookie("color").split('_'); if (color[0] == "other") color[0] = YX.systemRulerColor; YX.cookie.SetCookie("ruler", "true"); if (!YX.tools.InitBarEventObj.RulerClickFunc.nodex1) this.Init(); $(document).mousemove(this.BindMove); $(".yx_content_page iframe").contents().mousemove(this.BindMoveIframe) }, Close: function() { this.SetXYShow("none"); $(document).unbind("mousemove", this.BindMove); $(".yx_content_page iframe").contents().unbind("mousemove", this.BindMoveIframe) }, MousePosition: function(ev) { var point = { x: 0, y: 0 }; if (typeof window.pageYOffset != 'undefined') { point.x = window.pageXOffset; point.y = window.pageYOffset } else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') { point.x = document.documentElement.scrollLeft; point.y = document.documentElement.scrollTop } else if (typeof document.body != 'undefined') { point.x = document.body.scrollLeft; point.y = document.body.scrollTop } point.x += ev.clientX; point.y += ev.clientY; return point } }, ColorClickFunc: { nodes: [], Init: function() { YX.tools.InitBarEventObj.ColorClickFunc.PreChangeColor.isChange = true; YX.tools.InitBarEventObj.ColorClickFunc.PreChangeColor.InitFuncByCookie() }, GetColorNodes: function(node) { if (node.tagName == undefined) return; if (!YX.colorTagNames[node.tagName]) return; if ($(">object,>embed", node).length > 0) return; YX.tools.InitBarEventObj.ColorClickFunc.nodes[YX.continueStartNodeId].push(node); if (YX.tools.InitBarEventObj.ColorClickFunc.PreChangeColor.isChange) this.ChangeColor(node) }, ChangeColor: function(node) { if (node.tagName == "A") { node.style.color = YX.tools.InitBarEventObj.ColorClickFunc.PreChangeColor.linkcolor; $(node).children().each(function() { this.style.color = YX.tools.InitBarEventObj.ColorClickFunc.PreChangeColor.linkcolor }) } else { node.style.color = YX.tools.InitBarEventObj.ColorClickFunc.PreChangeColor.fontcolor } var bgrepeat = $(node).css("background-repeat"); if (bgrepeat != "no-repeat" || $(node).children().length > 0 || ($(node).width() < 20 || $(node).height() < 20) || $(node).text() > 1) { node.style.background = ""; node.style.textIndent = "0px"; node.style.background = YX.tools.InitBarEventObj.ColorClickFunc.PreChangeColor.bgcolor } else { node.style.backgroundColor = YX.tools.InitBarEventObj.ColorClickFunc.PreChangeColor.bgcolor } }, UniformColor: function() { var color = YX.cookie.GetCookie("color").split('_'); if (color[0] == "other" || color[1] == "other") { var rulerColor = YX.systemRulerColor; color[0] = YX.systemScreenFontColor; color[1] = YX.systemScreenBgColor; YX.systemTooltipColor = "#ffffff"; YX.systemTooltipBackColor = "#000000" } else { YX.systemTooltipColor = color[1]; YX.systemTooltipBackColor = color[0]; var rulerColor = color[0] } if (!YX.tools.InitBarEventObj.RulerClickFunc.nodex1) YX.tools.InitBarEventObj.RulerClickFunc.Init(); YX.tools.InitBarEventObj.RulerClickFunc.nodex1.css("background-color", rulerColor); YX.tools.InitBarEventObj.RulerClickFunc.nodex2.css("background-color", rulerColor); YX.tools.InitBarEventObj.RulerClickFunc.nodey1.css("background-color", rulerColor); YX.tools.InitBarEventObj.RulerClickFunc.nodey2.css("background-color", rulerColor); $("#yx_showscreen_marquee").css("color", color[0]); $(".yx_showscreen_middle").css("background-color", color[1]) }, PreChangeColor: { fontcolor: "", bgcolor: "", linkcolor: "", isChange: true, InitFuncByCookie: function() { var systemColor = YX.cookie.GetCookie('color'); if (!systemColor || systemColor == 'other_other') { this.isChange = false; return } var colorIndex = 0; for (; colorIndex < YX.color.length; colorIndex++) { if (YX.color[colorIndex] == systemColor) break } var color = systemColor.split("_"); this.fontcolor = color[0]; this.bgcolor = color[1]; this.linkcolor = YX.linkColor[colorIndex] }, InitFunc: function(fontcolor, bgcolor, linkcolor) { this.fontcolor = fontcolor; this.bgcolor = bgcolor; this.linkcolor = linkcolor; this.Start() }, Start: function() { var nodes = YX.tools.InitBarEventObj.ColorClickFunc.nodes[YX.continueStartNodeId]; for (var i = 0; i < nodes.length; i++) { YX.tools.InitBarEventObj.ColorClickFunc.ChangeColor(nodes[i]) } setTimeout(function() { for (var key in YX.tools.InitBarEventObj.ColorClickFunc.nodes) { if (key == YX.continueStartNodeId) continue; var nodes = YX.tools.InitBarEventObj.ColorClickFunc.nodes[key]; for (var i = 0; i < nodes.length; i++) { YX.tools.InitBarEventObj.ColorClickFunc.ChangeColor(nodes[i]) } } }, 100) } }, SetTabColor: function() { $(".yx_css").remove(); if (YX.cookie.GetCookie('color') == "#ffff00_#000000") { var cssHTML = ""; cssHTML = ''; $(document.body).append(cssHTML) } }, ShowColor: function(colorIndex) { this.PreChangeColor.isChange = colorIndex == 0 ? false: true; var color = YX.color[colorIndex]; var colorArr = color.split("_"); var bgcolor = colorArr[1]; var fontcolor = colorArr[0]; var linkcolor = YX.linkColor[colorIndex]; var colorcookie = ""; colorcookie = fontcolor + "_" + bgcolor; var systemColor = YX.cookie.GetCookie('color'); if (colorcookie == systemColor) return; if (bgcolor == "other") { bgcolor = ""; fontcolor = ""; linkcolor = ""; colorcookie = "other_other"; speechColor = "other_other" } YX.cookie.SetCookie('color', colorcookie); YX.tools.InitBarEventObj.ColorClickFunc.SetTabColor(); YX.sound.PlayToolIsSelfSound(YX.configText['changPageColor' + colorIndex], null, false); YX.tools.ShowScreenText(YX.configText['changPageColor' + colorIndex]); if (colorcookie == "other_other") { YX.cookie.SetCookie('historyVisitPage', 'true'); $(YX.continueStartNodeId).contents().get(0).location.reload(); YX.tools.InitBarEventObj.ColorClickFunc.UniformColor(); return } YX.tools.InitBarEventObj.ColorClickFunc.PreChangeColor.InitFunc(fontcolor, bgcolor, linkcolor); YX.tools.InitBarEventObj.ColorClickFunc.UniformColor() } }, ZoomAddClickFunc: function () { var systemZoom = Number(YX.cookie.GetCookie('zoom')); systemZoom += 0.1; if (systemZoom > 1.5) systemZoom = 1.5; YX.cookie.SetCookie('zoom', "" + systemZoom); if (YX.Utils.GetOS() != "FF") { YX.page.SetScroll.SetPos(systemZoom); $(".yx_content_page iframe").contents().find("body").css("zoom", "" + systemZoom) } else { $(".yx_content_page iframe").contents().find("body").css("-moz-transform", "scale(" + systemZoom + ")") } $("#yx_zoom_number").text(YX.configText['zoom'] + parseInt(systemZoom * 100) + "%"); YX.sound.PlayToolIsSelfSound(YX.configText['zoomAdd' + parseInt(systemZoom * 100)], null, false); YX.tools.ShowScreenText(YX.configText['zoomAdd' + parseInt(systemZoom * 100)]) }, ZoomSubClickFunc: function() { var systemZoom = Number(YX.cookie.GetCookie('zoom')); systemZoom -= 0.1; systemZoom = parseFloat(systemZoom).toFixed(2); if (systemZoom < 1) systemZoom = 1; YX.cookie.SetCookie('zoom', "" + systemZoom); if (YX.Utils.GetOS() != "FF") { YX.page.SetScroll.SetPos(systemZoom); $(".yx_content_page iframe").contents().find("body").css("zoom", "" + systemZoom) } else { $(".yx_content_page iframe").contents().find("body").css("-moz-transform", "scale(" + systemZoom + ")") } $("#yx_zoom_number").text(YX.configText['zoom'] + parseInt(systemZoom * 100) + "%"); YX.sound.PlayToolIsSelfSound(YX.configText['zoomSub' + parseInt(systemZoom * 100)], null, false); YX.tools.ShowScreenText(YX.configText['zoomSub' + parseInt(systemZoom * 100)]) }, VolumeAddClickFunc: function() { if (YX.cookie.GetCookie('isRead') == "false") return false; YX.systemVolume = Number(YX.cookie.GetCookie('volume')); YX.systemVolume += YX.volumeInterval; if (YX.systemVolume >= YX.volumeMax) YX.systemVolume = YX.volumeMax; YX.cookie.SetCookie('volume', YX.systemVolume + ""); $("#yx_volume_number").text(YX.configText['volume'] + (YX.systemVolume / YX.volumeInterval) + ""); YX.sound.PlayToolIsSelfSound(YX.configText['volumeAdd' + (YX.systemVolume / YX.volumeInterval)], null, false); YX.tools.ShowScreenText(YX.configText['volumeAdd' + (YX.systemVolume / YX.volumeInterval)]) }, VolumeSubClickFunc: function() { if (YX.cookie.GetCookie('isRead') == "false") return false; YX.systemVolume = Number(YX.cookie.GetCookie('volume')); YX.systemVolume -= YX.volumeInterval; if (YX.systemVolume <= YX.volumeMin) YX.systemVolume = YX.volumeMin; YX.cookie.SetCookie('volume', YX.systemVolume + ""); $("#yx_volume_number").text(YX.configText['volume'] + (YX.systemVolume / YX.volumeInterval) + ""); YX.sound.PlayToolIsSelfSound(YX.configText['volumeSub' + (YX.systemVolume / YX.volumeInterval)], null, false); YX.tools.ShowScreenText(YX.configText['volumeSub' + (YX.systemVolume / YX.volumeInterval)]) }, SpeedAddClickFunc: function() { if (YX.cookie.GetCookie('isRead') == "false") return false; YX.systemSpeed = Number(YX.cookie.GetCookie('speed')); YX.systemSpeed += YX.speedInterval; if (YX.systemSpeed > YX.speedMax) YX.systemSpeed = YX.speedMax; YX.cookie.SetCookie('speed', YX.systemSpeed + ""); $("#yx_speed_number").text(YX.configText['speed'] + ((YX.systemSpeed + YX.speedMax) / YX.speedInterval + 1) + ""); YX.sound.PlayToolIsSelfSound(YX.configText['speedAdd' + ((YX.systemSpeed + YX.speedMax) / YX.speedInterval + 1)], null, false); YX.tools.ShowScreenText(YX.configText['speedAdd' + ((YX.systemSpeed + YX.speedMax) / YX.speedInterval + 1)]) }, SpeedSubClickFunc: function() { if (YX.cookie.GetCookie('isRead') == "false") return false; YX.systemSpeed = Number(YX.cookie.GetCookie('speed')); YX.systemSpeed -= YX.speedInterval; if (YX.systemSpeed < YX.speedMin) YX.systemSpeed = YX.speedMin; YX.cookie.SetCookie('speed', YX.systemSpeed + ""); $("#yx_speed_number").text(YX.configText['speed'] + ((YX.systemSpeed + YX.speedMax) / YX.speedInterval + 1) + ""); YX.sound.PlayToolIsSelfSound(YX.configText['speedSub' + ((YX.systemSpeed + YX.speedMax) / YX.speedInterval + 1)], null, false); YX.tools.ShowScreenText(YX.configText['speedSub' + ((YX.systemSpeed + YX.speedMax) / YX.speedInterval + 1)]) }, PointerReadClickFunc: { Start: function() { if (YX.cookie.GetCookie('isRead') == "false") return false; if (YX.cookie.GetCookie('read') == "pointer") return false; $("#yx_pointerRead>span").attr("class", "yx_img_55 yx_pointerRead_down"); $("#yx_continueRead>span").attr("class", "yx_img_55 yx_continueRead_icon"); YX.cookie.SetCookie('read', "pointer"); YX.systemRead = "pointer"; YX.mouse.UnPointIntervalRead(); YX.tools.InitBarEventObj.ReadClickFunc.PointerOpen(); YX.sound.PlayToolIsSelfSound(YX.configText['pointerReadModule'], null, false) } }, ContinueReadClickFunc: { Start: function() { if (YX.cookie.GetCookie('isRead') == "false") return false; var className = $("#yx_continueRead>span").attr("class"); if (className.indexOf('continueRead') != -1) { var systemRead = YX.cookie.GetCookie('read'); if (systemRead == "continue") return; YX.cookie.SetCookie('read', "continue"); YX.systemRead = "continue"; $("#yx_pointerRead>span").attr("class", "yx_img_55 yx_pointerRead_icon"); $("#yx_continueRead>span").attr("class", "yx_img_55 yx_pause_icon"); YX.tools.InitBarEventObj.ReadClickFunc.ContinueOpen(); YX.sound.PlayToolIsSelfSound(YX.configText['continueReadModule'], null, false) } else if (className.indexOf("pause") != -1) { $("#yx_pointerRead>span").attr("class", "yx_img_55 yx_pointerRead_icon"); $("#yx_continueRead>span").attr("class", "yx_img_55 yx_play_icon"); $("#yx_read_text").text(YX.configText['play']); YX.tools.InitBarEventObj.PauseClickFunc.Start(); YX.sound.PlayToolIsSelfSound(YX.configText['play'], null, false) } else if (className.indexOf('play') != -1) { $("#yx_pointerRead>span").attr("class", "yx_img_55 yx_pointerRead_icon"); $("#yx_continueRead>span").attr("class", "yx_img_55 yx_pause_icon"); $("#yx_read_text").text(YX.configText['pause']); YX.tools.InitBarEventObj.PauseClickFunc.Start() } } }, ReadClickFunc: { PointerOpen: function() { if (YX.cookie.GetCookie('isRead') == 'false') return; $("#yx_read_text").text(YX.configText['pointerRead']); YX.cookie.SetCookie('pause', 'false'); YX.mouse.UnContinueIntervalRead(); YX.mouse.PointIntervalRead() }, ContinueOpen: function() { if (YX.cookie.GetCookie('isRead') == 'false') return; $("#yx_read_text").text(YX.configText['continueRead']); YX.cookie.SetCookie('pause', 'false'); YX.mouse.UnPointIntervalRead(); YX.mouse.ContinueIntervalRead() }, SelectOpen: function() { if (YX.cookie.GetCookie('isRead') == 'false') return; $("#yx_read_text").text(YX.configText['selectRead']); YX.cookie.SetCookie('pause', 'false'); YX.mouse.UnPointIntervalRead(); YX.mouse.UnContinueIntervalRead(); YX.mouse.SelectIntervalRead() } }, PlaySpeechClickFunc: { Start: function() { var systemRead = YX.cookie.GetCookie('isRead'); if (systemRead == "false") { YX.cookie.SetCookie('isRead', 'true'); this.Open(); YX.sound.PlayToolIsSelfSound(YX.configText['playedSpeech'], null, false) } else { YX.cookie.SetCookie('isRead', 'false'); this.Close(); YX.sound.PlayToolIsSelfSound(YX.configText['closedSpeech'], null, false) } }, Open: function() { var systemRead = YX.cookie.GetCookie('read'); if (systemRead == 'select') {} else if (systemRead == 'continue') { $("#yx_pointerRead>span").attr("class", "yx_img_55 yx_pointerRead_icon"); $("#yx_continueRead>span").attr("class", "yx_img_55 yx_pause_icon"); YX.tools.InitBarEventObj.ReadClickFunc.ContinueOpen() } else { $("#yx_pointerRead>span").attr("class", "yx_img_55 yx_pointerRead_down"); $("#yx_continueRead>span").attr("class", "yx_img_55 yx_continueRead_icon"); YX.tools.InitBarEventObj.ReadClickFunc.PointerOpen() } }, Close: function() { $("#yx_read_text").text(YX.configText['stopSpeech']); $("#yx_pointerRead>span").attr("class", "yx_img_55 yx_pointerRead_icon"); $("#yx_continueRead>span").attr("class", "yx_img_55 yx_continueRead_icon"); YX.mouse.UnPointIntervalRead(); YX.mouse.UnContinueIntervalRead(); YX.mouse.UnSelectIntervalRead() } }, PauseClickFunc: { playPosition: 0, Start: function() { var systemRead = YX.cookie.GetCookie('read'); var systemIsRead = YX.cookie.GetCookie('isRead'); if (systemIsRead == 'false' || systemRead == 'pointer') return; if (YX.cookie.GetCookie('pause') == "false") { this.Open() } else { this.Close() } }, Open: function() { YX.sound.PlayToolIsSelfSound(YX.configText['play'], null, false); YX.cookie.SetCookie('pause', 'true'); YX.sound.PauseAllSounds(); if (YX.cookie.GetCookie('read') == "continue") { YX.mouse.continueFlag = false } else if (YX.cookie.GetCookie('read') == "select") { YX.mouse.selectFlag = false } }, Close: function() { YX.sound.PlayToolIsSelfSound(YX.configText['pause'], null, false); YX.cookie.SetCookie('pause', 'false'); YX.sound.ResumeAllSounds(); if (YX.cookie.GetCookie('read') == "continue") { YX.mouse.continueFlag = true; YX.mouse.ContinueReadNode.firstVisit = true; YX.mouse.ContinueReadNode.Start() } else if (YX.cookie.GetCookie('read') == "select") { YX.mouse.selectFlag = true; YX.mouse.RecursiveRead() } } }, DisplayScreenClickFunc: { Start: function() { var systemScreenClose = YX.cookie.GetCookie('screenClose'); if (systemScreenClose == 'false') { YX.cookie.SetCookie('screenClose', 'true'); YX.tools.InitBarEventObj.DisplayScreenClickFunc.Close(); YX.sound.PlayToolIsSelfSound(YX.configText['playedScreen'], null, false) } else { YX.cookie.SetCookie('screenClose', 'false'); YX.tools.InitBarEventObj.DisplayScreenClickFunc.Open(); YX.sound.PlayToolIsSelfSound(YX.configText['closedScreen'], null, false) } }, Open: function() { this.DisplayScreenOpenOnRisize() }, Close: function() { this.DisplayScreenCloseOnRisize() }, DisplayScreenOpenOnRisize: function() { $("#yx_showscreen_div").slideDown("slow", function() { YX.page.ChangePageStyle() }) }, DisplayScreenCloseOnRisize: function() { $("body").attr("onresize", "false"); YX.page.ChangePageStyle("hidden"); $("body").attr("onresize", "true"); $("#yx_showscreen_div").slideUp("slow") }, ChangeScreenFontSize: function(size) { $("#yx_showscreen_marquee").css({ "font-size": size + "px", "line-height": size + "px" }) }, ShowScreenFeatures: function() { $("#yx_showscreen_feature_table span").bind("click", function() { var id = $(this).attr("id").split("_")[1]; switch (id) { case "zh": YX.tools.InitBarEventObj.DisplayScreenClickFunc.ClickZH(); break; case "tw": YX.tools.InitBarEventObj.DisplayScreenClickFunc.ClickTW(); break; case "showscreen": YX.tools.InitBarEventObj.DisplayScreenClickFunc.ClickShowScreenClose(); break; case "py": YX.tools.InitBarEventObj.DisplayScreenClickFunc.ClickPinYin(); break; case "en": YX.tools.InitBarEventObj.DisplayScreenClickFunc.ClickEN(); break; default: break } }) }, ClickZH: function() { YX.cookie.SetCookie('screenShowStyle', 'zh'); YX.cookie.SetCookie("readStyle", "0"); YX.systemReadStyle = "0"; YX.sound.PlayToolIsSelfSound(YX.configText["yx_zhed"], null, false); YX.tools.ShowScreenText(YX.configText["yx_zhed"]) }, ClickTW: function() { YX.cookie.SetCookie('screenShowStyle', 'tw'); YX.cookie.SetCookie("readStyle", "0"); YX.systemReadStyle = "0"; YX.sound.PlayToolIsSelfSound(YX.configText["yx_twed"], null, false); YX.tools.ShowScreenText(YX.configText["yx_twed"]) }, ClickShowScreenClose: function() { YX.cookie.SetCookie('screenClose', 'true'); YX.tools.InitBarEventObj.DisplayScreenClickFunc.Close(); $("#yx_displayScreen>span").attr("class", "yx_img_55 yx_displayScreen_icon") }, ClickPinYin: function() { YX.cookie.SetCookie('screenShowStyle', 'py'); YX.cookie.SetCookie("readStyle", "0"); YX.systemReadStyle = "0"; YX.sound.PlayToolIsSelfSound(YX.configText["yx_pinyined"], null, false); YX.tools.ShowScreenText(YX.configText["yx_pinyined"]) }, ClickEN: function() { YX.cookie.SetCookie("readStyle", "2"); YX.systemReadStyle = "0"; YX.sound.PlayToolIsSelfSound(YX.configText["yx_ened"], null, false); YX.cookie.SetCookie('screenShowStyle', 'en'); YX.tools.ShowScreenText(YX.configText["yx_ened"]) } } }, AutoSetFontSize: function(html) { if (YX.Utils.CountWordsLength(html) > YX.systemScreenMaxWordsLength * 10) { YX.tools.InitBarEventObj.DisplayScreenClickFunc.ChangeScreenFontSize(YX.systemScreenTenRowsFontSize) } else if (YX.Utils.CountWordsLength(html) > YX.systemScreenMaxWordsLength * 9) { YX.tools.InitBarEventObj.DisplayScreenClickFunc.ChangeScreenFontSize(YX.systemScreenNineRowsFontSize) } else if (YX.Utils.CountWordsLength(html) > YX.systemScreenMaxWordsLength * 8) { YX.tools.InitBarEventObj.DisplayScreenClickFunc.ChangeScreenFontSize(YX.systemScreenEightRowsFontSize) } else if (YX.Utils.CountWordsLength(html) > YX.systemScreenMaxWordsLength * 7) { YX.tools.InitBarEventObj.DisplayScreenClickFunc.ChangeScreenFontSize(YX.systemScreenSevenRowsFontSize) } else if (YX.Utils.CountWordsLength(html) > YX.systemScreenMaxWordsLength * 6) { YX.tools.InitBarEventObj.DisplayScreenClickFunc.ChangeScreenFontSize(YX.systemScreenSixRowsFontSize) } else if (YX.Utils.CountWordsLength(html) > YX.systemScreenMaxWordsLength * 5) { YX.tools.InitBarEventObj.DisplayScreenClickFunc.ChangeScreenFontSize(YX.systemScreenFiveRowsFontSize) } else if (YX.Utils.CountWordsLength(html) > YX.systemScreenMaxWordsLength * 4) { YX.tools.InitBarEventObj.DisplayScreenClickFunc.ChangeScreenFontSize(YX.systemScreenFourRowsFontSize) } else if (YX.Utils.CountWordsLength(html) > YX.systemScreenMaxWordsLength * 3) { YX.tools.InitBarEventObj.DisplayScreenClickFunc.ChangeScreenFontSize(YX.systemScreenThreeRowsFontSize) } else if (YX.Utils.CountWordsLength(html) > YX.systemScreenMaxWordsLength) { YX.tools.InitBarEventObj.DisplayScreenClickFunc.ChangeScreenFontSize(YX.systemScreenSecondRowsFontSize) } else { YX.tools.InitBarEventObj.DisplayScreenClickFunc.ChangeScreenFontSize(YX.systemScreenOneRowsFontSize) } }, ShowScreenText: function(html) { var systemScreenClose = YX.cookie.GetCookie("screenClose"); if (systemScreenClose == "true" || $("#yx_showscreen_div").css("display") == "none") return; $("#yx_showscreen_marquee_hidden").html(html); var systemScreenShowStyle = YX.cookie.GetCookie("screenShowStyle"); if (systemScreenShowStyle == "py") { html = YX.Utils.StringWidthPinyin(html); YX.tools.InitBarEventObj.DisplayScreenClickFunc.ChangeScreenFontSize(YX.systemScreenPinYinWordFontSize) } else if (systemScreenShowStyle == "zh") { this.AutoSetFontSize(html) } else if (systemScreenShowStyle == "tw") { html = YX.convert.Convert(1, html); this.AutoSetFontSize(html) } else if (systemScreenShowStyle == "en") { if (YX.cookie.GetCookie("isRead") == "false" || YX.cookie.GetCookie("readStyle") != "2") YX.json.GetEnglishText(html); return } $("#yx_showscreen_marquee").html(html) }, InitBarStyle: { Start: function() { var upIcon = ['zoomAdd', 'zoomSub', 'speedSub', 'speedAdd', 'volumeSub', 'volumeAdd']; var enableButton = ["pointerRead", "continueRead"]; $(".yx_showscreen_feature_table_secondtr span,.yixuan_tools span").bind("mouseover", function() { YX.tools.InitBarStyle.ChangeIcon(this, 'icon', 'over') }).bind("mouseout", function() { YX.tools.InitBarStyle.ChangeIcon(this, 'over', 'icon') }).bind("mousedown", function() { if (YX.Utils.InArray($(this).parent().attr("id").split("_")[1], enableButton)) return; var id = $(this).attr("id").split("_")[0]; if (id && id == "screen") { $(".yx_showscreen_feature_table_secondtr span").each(function() { YX.tools.InitBarStyle.ChangeIcon(this, 'down', 'icon') }) } if ($(this).parent().attr("id").indexOf("yx_color") != -1) { $("td[id^=yx_color]").children("span").each(function() { YX.tools.InitBarStyle.ChangeIcon(this, 'down', 'icon') }) } if (!YX.tools.InitBarStyle.ChangeIcon(this, 'over', 'down') && !YX.tools.InitBarStyle.ChangeIcon(this, 'icon', 'down')) YX.tools.InitBarStyle.ChangeIcon(this, 'down', 'icon') }).bind("mouseup", function() { if (YX.Utils.InArray($(this).parent().attr("id").split("_")[1], enableButton)) return; var id = $(this).parent().attr("id").split("_")[1]; if (YX.Utils.InArray(id, upIcon)) { var node = this; var timerIntval = setTimeout(function() { YX.tools.InitBarStyle.ChangeIcon(node, 'down', 'icon'); clearTimeout(timerIntval) }, 200) } }) }, ChangeIcon: function(node, oldicon, newicon) { var className = $(node).attr("class"); if (className.indexOf("backEnable") != -1) return false; if (className.indexOf(oldicon) == -1) return false; $(node).attr("class", className.replace(oldicon, newicon)); return true } } }; YX.Replace = { Run: function() {}, Init: function() {} };