var cwc_HTTP='http'; var cwc_MAIN_DOMAIN='www.kylintv.com'; var cwc_RE_MAIN_DOMAIN= new RegExp('^http://www.kylintv.com/'); var cwc_RE_SUB_DOMAINS= new RegExp('^http://(www\.)?kylintv.com/'); var cwc_IMAGE_RE_EXC = new RegExp('kylintv.com/chn/UploadFiles'); var cwc_IMAGE_RE_PAT = new RegExp('kylintv.com/chn/'); var cwc_IMAGE_DIR_EXC= '/chn/UploadFiles'; var cwc_IMAGE_DIR_OLD= '/chn/'; var cwc_IMAGE_DIR_NEW= '/tchn/'; var cwc_IMAGE_REPLACE= 'kylintv.com/tchn/';  var cwc_SCRIPT_NAME= '/tc'; var cwc_SCRIPT_URL= 'http://tc.kylintv.com/tc'; var cwc_THIS_HOST= 'tc.kylintv.com'; var cwc_ALL_TYPES= ['', 'application/x-javascript', 'application/x-ecmascript', 'application/x-vbscript', 'application/x-perlscript', 'application/javascript', 'application/ecmascript', 'text/javascript', 'text/ecmascript', 'text/jscript', 'text/livescript', 'text/vbscript', 'text/vbs', 'text/perlscript', 'text/tcl', 'text/x-scriptlet', 'text/scriptlet', 'application/hta', 'text/css', 'text/xml']; var cwc_MIME_TYPE_ID= {'':0, 'text/javascript':7, 'application/x-javascript':1, 'text/xml':19, 'application/x-perlscript':4, 'application/x-vbscript':3, 'text/tcl':14, 'text/vbs':12, 'text/jscript':9, 'text/ecmascript':8, 'application/javascript':5, 'text/perlscript':13, 'text/livescript':10, 'application/ecmascript':6, 'application/x-ecmascript':2, 'text/vbscript':11, 'text/x-scriptlet':15, 'text/css':18, 'text/scriptlet':16, 'application/hta':17}; var cwc_RE_NON_TEXT_EXTENSIONS = new RegExp('\.(gif|jpeg|jpe|jpg|tiff|tif|png|bmp|xbm|mp2|mp3|wav|aif|aiff|au|snd|avi|qt|mov|mpeg|mpg|mpe|gz|Z|exe|gtar|tar|zip|sit|hqx|pdf|ram|rm|ra|swf|flv)$'); var cwc_cookies_are_banned_here= 0; var cwc_doing_insert_here= 0; var cwc_SESSION_COOKIES_ONLY= 0; var cwc_COOKIE_PATH_FOLLOWS_SPEC= 0; var cwc_RESPECT_THREE_DOT_RULE= 0; var cwc_ALLOW_UNCONVERTED_SCRIPTS= 1; var cwc_default_script_type= "application/x-javascript"; var cwc_default_style_type= "text/css"; 
//webconv.js - javascripts for njstar chinese website convertor
var cwc_browser_family; var cwc_RE_FULL_PATH; var cwc_url_start, cwc_url_start_inframe, cwc_url_start_noframe, cwc_is_in_frame, cwc_URL; var cwc_RE, cwc_needs_jslib, cwc_does_write; var cwc_write_buffers= [ {doc:document, has_js:true} ]; var cwc_ret; var cwc_current_object_classid; var cwc_increments= {applets: 0, embeds: 0, forms: 0, ids: 0, layers: 0, anchors: 0, images: 0, links: 0}; var cwc_handle_properties= 'eval insertAdjacentHTML setAttribute setAttributeNode insertRule innerHTML outerHTML outerText src href background lowsrc action useMap longDesc cite codeBase location poster open write writeln URL referrer baseURI body replace toString setInterval setTimeout cookie domain frames parent top opener protocol host hostname port pathname search setStringValue setProperty setNamedItem load execScript navigate showModalDialog showModelessDialog execCommand LoadMovie getElementById getElementsByTagName close'.split(/\s+/); var cwc_set_properties= 'background src href lowsrc action useMap longDesc cite codeBase location poster profile cssText innerHTML outerHTML outerText nodeValue protocol host hostname port pathname search cookie domain value backgroundImage content cursor listStyle listStyleImage'.split(/\s+/); var cwc_handle_props_hash, cwc_set_props_hash; var cwc_ORIGINAL_ARRAY_push= Array.prototype.push; cwc_init(); function cwc_conv_encode(URL){ if(/^x-conv\:\/\//.test(URL)){ URL= URL.replace(/^x-conv\:\/\//, '_x_/'); }else if(cwc_RE_MAIN_DOMAIN.test(URL)){ URL= URL.replace(cwc_RE_MAIN_DOMAIN,''); }else{ URL= URL.replace(/^([\w\+\.\-]+)\:\/\//, ''); } return URL; } function cwc_conv_decode(enc_URL){ if(/^_x_\//.test(enc_URL)){ enc_URL= enc_URL.replace(/^_x_\//, 'x-conv://'); }else if(enc_URL=='' || enc_URL=='/'){ enc_URL= cwc_HTTP+'://'+cwc_MAIN_DOMAIN+'/'; }else if(!(/^([\w-]+\.)+(\w+\/|(com|net|org|[a-z]{2})$)/.test(enc_URL))){ enc_URL= enc_URL.replace(/^([\w\-]+)/, cwc_HTTP+'://'+cwc_MAIN_DOMAIN+'/$1'); }else{ enc_URL= enc_URL.replace(/^([\w\+\.\-]+)/, cwc_HTTP+'://$1'); } return enc_URL; } function cwc_cookie_encode(cookie){ cookie= cookie.replace(/(\W)/g, function (s,p1){ return '%'+p1.charCodeAt(0).toString(16) } ) ; return cookie; } function cwc_cookie_decode(enc_cookie){ enc_cookie= enc_cookie.replace(/%([\da-fA-F]{2})/g, function (s,p1){ return String.fromCharCode(eval('0x'+p1)) } ) ; return enc_cookie; } function cwc_init(){ cwc_browser_family= navigator.appName.match(/Netscape/i) ? 'netscape' : navigator.appName.match(/Microsoft/i) ? 'msie' : ''; cwc_set_RE(); cwc_handle_props_hash= {}; for (var i= 0; i<cwc_handle_properties.length ; i++) cwc_handle_props_hash[cwc_handle_properties[i]]= true; cwc_set_props_hash= {}; for (var i= 0; i<cwc_set_properties.length ; i++) cwc_set_props_hash[cwc_set_properties[i]]= true; var RE_SCRIPT_NAME= cwc_SCRIPT_NAME .replace(/(\W)/g, function (p){ return '\\'+p } ) ; cwc_RE_FULL_PATH= new RegExp('^('+RE_SCRIPT_NAME+')()\\/?(.*)'); var URL= document.URL.replace(/^wyciwyg:\/\/\d+\//i, ''); var u= cwc_parse_full_url(URL); cwc_url_start= u[0]+'/'; cwc_is_in_frame= 0; cwc_url_start_inframe= u[0]+'/'; cwc_url_start_noframe= u[0]+'/'; cwc_URL= u[2]; window.cwc_document_domain= cwc_parse_url(cwc_URL)[4]; var old_onload= window.onload; window.onload= function(){ try{ if (old_onload) old_onload() } catch(e) {}; cwc_onload(); } } function cwc_set_url(base_url){ cwc_set_base_vars(window.document, base_url); } function cwc_conv_init(base_url, cookies_are_banned_here, doing_insert_here, SESSION_COOKIES_ONLY, COOKIE_PATH_FOLLOWS_SPEC, RESPECT_THREE_DOT_RULE, ALLOW_UNCONVERTED_SCRIPTS, default_script_type, default_style_type){ cwc_set_base_vars(window.document, base_url); cwc_cookies_are_banned_here= cookies_are_banned_here; cwc_doing_insert_here= doing_insert_here; cwc_SESSION_COOKIES_ONLY= SESSION_COOKIES_ONLY; cwc_COOKIE_PATH_FOLLOWS_SPEC= COOKIE_PATH_FOLLOWS_SPEC; cwc_RESPECT_THREE_DOT_RULE= RESPECT_THREE_DOT_RULE; cwc_ALLOW_UNCONVERTED_SCRIPTS= ALLOW_UNCONVERTED_SCRIPTS; cwc_default_script_type= default_script_type.toLowerCase(); cwc_default_style_type= default_style_type.toLowerCase(); } function cwc_onload(){ if (cwc_is_in_frame && (window.parent===window.top) && top.cwc_insertion_frame) top.cwc_insertion_frame.document.URLform.URL.value= cwc_URL; } function cwc_do (o, property, cur_val, calls_now, in_new_statement){ if (typeof(property)=='number') return _handle_default(); if ((o===null) && (typeof(property)=='string') && property.match(/^(location|open|setInterval|setTimeout|frames|parent|top|opener|execScript|navigate|showModalDialog|showModelessDialog|parentWindow)$/) && (window[property]===cur_val)) o= window; if (property=='eval'){ if ((o!=null) && (o.eval)){ var oldeval= o.eval; return function (code){ var ret; o.cwc_oldeval= oldeval; ret= o.cwc_oldeval(cwc_conv_js(code, 0)); delete o.cwc_oldeval; return ret; }; } else{ if (o!=null) return undefined; var oldeval= eval; return function (code){ return oldeval(cwc_conv_js(code, 0)); }; } } if (o==null) return cur_val; try{ if ((cwc_browser_family!='msie') && (o instanceof StorageList)){ return o[property+'.cgiproxy.'+cwc_THIS_HOST]; } } catch(e) {}; if (!cwc_handle_props_hash[property]) return _handle_default(); var otype= cwc_object_type(o); if (!otype) return _handle_default(); if ( ('getAttributeNode' in o) && ('getElementsByTagName' in o) && ('removeAttribute' in o) && !('innerHTML' in o) ) { return _handle_default(); } switch (property){ case 'insertAdjacentHTML': return function (where, text){ if (this!==window) o= this; return o.insertAdjacentHTML(where, cwc_conv_html(text, o.ownerDocument, false)[0]); }; case 'setAttribute': if (!(('getAttributeNode' in o) && ('getElementsByTagName' in o) && ('removeAttribute' in o))) break; return function (name, value){ if (this!==window) o= this; return o.setAttribute(name.toLowerCase(), cwc_conv_attribute(name, value)); }; case 'setAttributeNode': return function (newAttr){ if (this!==window) o= this; newAttr.nodeValue= cwc_conv_attribute(newAttr.nodeName, newAttr.nodeValue); return o.setAttributeNode(newAttr); }; case 'insertRule': return function (rule, index){ if (this!==window) o= this; return o.insertRule(cwc_conv_css(rule), index); }; case 'innerHTML': case 'outerHTML': case 'outerText': if (!( ('getAttributeNode' in o) && ('getElementsByTagName' in o) && ('removeAttribute' in o) )) return _handle_default(); return cwc_conv_html(o[property], (o.ownerDocument || o), false, true)[0]; case 'src': case 'href': case 'background': case 'lowsrc': case 'action': case 'useMap': case 'longDesc': case 'cite': case 'codeBase': case 'location': case 'baseURI': case 'poster': var u= (o!=void 0) ? o[property] : cur_val; if (u==void 0) return void 0; if (typeof u=='number') return u; if (u && (typeof u=='object') && !('toLowerCase' in u)) return u; var pu= cwc_parse_full_url(u); if (pu==void 0) return u; return pu[2]; } switch (otype+'.'+property){ case 'Window.open': return function (url, name, features, replace){ if (this!==window) o= this; var full_url= cwc_full_url(url); var win= o.open(full_url, name, features, replace); return win; }; case 'Document.open': return function(arg1, name, features, replace){ if (arg1==void 0) arg1= 'text/html'; if (this!==window) o= this; if (arguments.length<=2){ return o.open(arg1, name); } else{ return o.open(cwc_full_url(arg1, o), name, features, replace); } }; case 'Document.write': return function (){ if (this!==window) o= this; for (var i= 0; i<arguments.length ; i++) cwc_write(o, arguments[i]); }; case 'Document.writeln': return function (){ if (this!==window) o= this; for (var i= 0; i<arguments.length ; i++) cwc_write(o, arguments[i]); cwc_write(o, '\n'); }; case 'Document.close': return function(){ if (this!==window) o= this; var buf, i, p; for (i in cwc_write_buffers){ if (cwc_write_buffers[i].doc===o){ buf= cwc_write_buffers[i]; if (buf.buf==void 0) break; p= cwc_conv_html(buf.buf, o, !buf.has_js); if (p[3]) return; buf.has_js= false; buf.buf= void 0; o.write(p[0]); break; } } o.close(); }; case 'Document.getElementById': return function (elementId){ if (this!==window) o= this; var e, i, buf, p; e= o.getElementById(elementId); if (e!=null) return e; for (i= 0; i<cwc_write_buffers.length ; i++) if (cwc_write_buffers[i] && cwc_write_buffers[i].doc===o) break; if (i>=cwc_write_buffers.length) return null; buf= cwc_write_buffers[i]; if (buf.buf==void 0) return null; if (buf.buf.match(new RegExp('id\\s*=\\s*[\'"]?\\s*'+elementId+'\\s*[\'"]?', 'i'))){ p= cwc_conv_html(buf.buf, o, false); if (p[3]) return; buf.has_js= buf.has_js || p[2]; buf.buf= p[1]; o.write(p[0]); } return o.getElementById(elementId); }; case 'Node.getElementsByTagName': case 'Document.getElementsByTagName': return function (tagname){ if (document.URL.match(/\/mail\.google\.com\/mail\//) && tagname=='INPUT') alert('Hit OK to continue...'); if (this!==window) o= this; var i, buf, pi, doc; doc= (o.ownerDocument || o); for (i= 0; i<cwc_write_buffers.length ; i++) if (cwc_write_buffers[i] && cwc_write_buffers[i].doc===doc) break; if (i>=cwc_write_buffers.length) return o.getElementsByTagName(tagname); buf= cwc_write_buffers[i]; if (buf.buf==void 0) return o.getElementsByTagName(tagname); if (tagname=='*' || buf.buf.match(new RegExp('<\\s*'+tagname+'\\b', 'i'))){ p= cwc_conv_html(buf.buf, doc, false); if (p[3]) return; buf.has_js= buf.has_js || p[2]; buf.buf= p[1]; doc.write(p[0]); } return o.getElementsByTagName(tagname); }; case 'Document.URL': case 'Document.referrer': var pu= cwc_parse_full_url(o[property]); return (pu==void 0) ? void 0 : pu[2]; case 'Document.body': var ret= o.getElementById('_conv_css_main_div'); return ret ? ret : o.body; case 'Location.replace': return function (url){ if (this!==window) o= this; return o.replace(cwc_full_url(url)); }; case 'Link.toString': case 'Location.toString': return function (){ if (this!==window) o= this; return cwc_parse_full_url(o.toString())[2]; }; case 'Window.setInterval': if (cwc_browser_family=='msie'){ var oldsetInterval= o.setInterval; return function (codefunc, interval){ var ret; if (this!==window) o= this; o.cwc_oldsetInterval= oldsetInterval; if (typeof(codefunc)=='function'){ ret= o.cwc_oldsetInterval(codefunc, interval); } else{ ret= o.cwc_oldsetInterval(cwc_conv_js(codefunc), interval); } try{ delete o.cwc_oldsetInterval; } catch(e){ } return ret; }; } else{ var oldsetInterval= o.setInterval; return function (codefunc, interval){ if (this!==window) o= this; if (typeof(codefunc)=='function'){ return oldsetInterval.apply(o, arguments); } else{ return oldsetInterval.call(o, cwc_conv_js(codefunc), interval); } }; } case 'Window.setTimeout': if (cwc_browser_family=='msie'){ var oldsetTimeout= o.setTimeout; return function (codefunc, delay){ var ret; if (this!==window) o= this; o.cwc_oldsetTimeout= oldsetTimeout; if (typeof(codefunc)=='function'){ ret= o.cwc_oldsetTimeout(codefunc, delay); } else{ ret= o.cwc_oldsetTimeout(cwc_conv_js(codefunc), delay); } try{ delete o.cwc_oldsetTimeout; } catch(e){ } return ret; }; } else{ var oldsetTimeout= o.setTimeout; return function (codefunc, delay){ if (this!==window) o= this; if (typeof(codefunc)=='function'){ return oldsetTimeout.apply(o, arguments); } else{ return oldsetTimeout.call(o, cwc_conv_js(codefunc), delay); } }; } case 'Document.cookie': return cwc_cookie_from_client(o); case 'Document.domain': return cwc_doc2win(o).cwc_document_domain; case 'Window.frames': var f, ret= [], useret; if (cwc_document_domain==void 0) cwc_init_domain(window); for (f=0; f<o.frames.length ; f++) { try{ if (o.frames[f].cwc_document_domain==void 0) cwc_init_domain(o.frames[f]); if ((o.frames[f].cwc_document_domain!=cwc_document_domain) && (o.frames[f].cwc_document_domain!=void 0)) { ret[f]= cwc_dup_window_safe(o.frames[f]); if (o.frames[f].name) ret[o.frames[f].name]= ret[f]; useret= true; } else{ ret[f]= o.frames[f]; if (o.frames[f].name) ret[o.frames[f].name]= ret[f]; } } catch (e){ } } return useret ? ret : o.frames; case 'Window.parent': var w= (o.top.cwc_main_frame===o) ? o : o.parent; if (cwc_document_domain==void 0) cwc_init_domain(window); if (w.cwc_document_domain==void 0) cwc_init_domain(w); return ((w.cwc_document_domain==cwc_document_domain) || (w.cwc_document_domain==void 0)) ? w : cwc_dup_window_safe(w); case 'Window.top': var w= (o.top.cwc_main_frame!==void 0) ? o.top.cwc_main_frame : o.top; if (cwc_document_domain==void 0) cwc_init_domain(window); if (w.cwc_document_domain==void 0) cwc_init_domain(w); return ((w.cwc_document_domain==cwc_document_domain) || (w.cwc_document_domain==void 0)) ? w : cwc_dup_window_safe(w); case 'Window.opener': if (!o.opener) return null; if (cwc_document_domain==void 0) cwc_init_domain(window); if (o.opener.cwc_document_domain==void 0) cwc_init_domain(o.opener); return ((o.opener.cwc_document_domain==cwc_document_domain) || (o.opener.cwc_document_domain==void 0)) ? o.opener : cwc_dup_window_safe(o.opener); case 'Link.protocol': case 'Location.protocol': return cwc_parse_url(cwc_parse_full_url(o.href)[2])[1]; case 'Link.host': case 'Location.host': return cwc_parse_url(cwc_parse_full_url(o.href)[2])[3]; case 'Link.hostname': case 'Location.hostname': return cwc_parse_url(cwc_parse_full_url(o.href)[2])[4]; case 'Link.port': case 'Location.port': return cwc_parse_url(cwc_parse_full_url(o.href)[2])[5]; case 'Link.pathname': case 'Location.pathname': return cwc_parse_url(cwc_parse_full_url(o.href)[2])[6]; case 'Link.search': case 'Location.search': return cwc_parse_url(cwc_parse_full_url(o.href)[2])[7]; case 'CSSPrimitiveValue.setStringValue': return function (type, value){ if (this!==window) o= this; if (type==CSSPrimitiveValue.CSS_URI) return o.setStringValue(type, cwc_full_url(value)); return o.setStringValue(type, value); }; case 'CSSStyleDeclaration.setProperty': return function (name, value, priority){ if (this!==window) o= this; return o.setProperty(name, cwc_conv_css(value), priority); }; case 'NamedNodeMap.setNamedItem': return function (node){ if (this!==window) o= this; node.nodeValue= cwc_conv_attribute(node.nodeName, node.nodeValue); return o.setNamedItem(node); }; case 'Layer.load': if (!o.load) return undefined; return function (url, width){ if (this!==window) o= this; return o.load(cwc_full_url(url), width); }; case 'Window.execScript': if (!o.execScript) return undefined; return function(code, language){ if (this!==window) o= this; if (language.match(/^\s*(javascript|jscript|ecmascript|livescript|$)/i)) return o.execScript(cwc_conv_js(code), language); if (cwc_ALLOW_UNCONVERTED_SCRIPTS) return o.execScript(code, language); return; }; case 'Window.navigate': if (!o.navigate) return undefined; return function (url){ if (this!==window) o= this; return o.navigate(cwc_full_url(url, o.document)); }; case 'Window.showModalDialog': if (!o.showModalDialog) return undefined; return function(url, args, features){ if (this!==window) o= this; return o.showModalDialog(cwc_full_url(url, o.document), args, features); }; case 'Window.showModelessDialog': if (!o.showModelessDialog) return undefined; return function(url, args, features){ if (this!==window) o= this; return o.showModelessDialog(cwc_full_url(url, o.document), args, features); }; case 'XMLHttpRequest.open': return function(method, url, asyncflag, username, password){ if (this!==window) o= this; if (url.match(/^[\w\+\.\-]*\:/)){ var h1= (cwc_parse_url(cwc_URL))[4]; var h2= (cwc_parse_url(url))[4]; var d1= (h1.match(/(^|\.)(\w+\.\w+)$/))[2].toLowerCase(); var d2= (h2.match(/(^|\.)(\w+\.\w+)$/))[2].toLowerCase(); if (d1!=d2) return; } url= cwc_full_url(url); return o.open(method, url, asyncflag, username, password); }; case 'Document.execCommand': return function (cmd, do_UI, value){ var ret; cmd= cmd.toLowerCase(); if (cwc_browser_family=='netscape'){ if ((cmd=='createlink') || (cmd=='insertimage')){ ret= o.execCommand(cmd, do_UI, cwc_full_url(value, o)); } else if (cmd=='inserthtml'){ ret= o.execCommand(cmd, do_UI, cwc_conv_html(value, o)[0]); } else{ ret= o.execCommand(cmd, do_UI, value); } } else if (cwc_browser_family=='msie'){ if ((cmd=='createlink') || (cmd=='insertimage')){ ret= o.execCommand(cmd, do_UI, cwc_full_url(value, o)); } else if (cmd.match(/^insert/)){ alert('tried to execCommand('+cmd+')'); ret= undefined; } else{ ret= o.execCommand(cmd, do_UI, value); } } return ret; }; default: return _handle_default(); } function _handle_default(){ if (calls_now && !in_new_statement && (typeof(o[property])=='function')){ if (o==Function && property=='prototype') return o[property]; var fn= o[property]; var ret= function (){ if (fn.apply==void 0){ return o[property](arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]); } if (this!==window){ return fn.apply(this, arguments); } else{ return fn.apply(o, arguments); } }; for (var p in o[property]) ret[p]= o[property][p]; return ret; } else{ try{ if (cwc_browser_family=='msie' && property=='getElementsByTagName') return function(tagname){ if (this!==window) o= this; return o.getElementsByTagName(tagname); }; return o[property]; } catch(e){ return undefined; } } } } function cwc_set (prefix, o, property, op, val){ var new_val, otype; if (prefix=='delete') return delete o[property]; if (prefix=='++'){ val= o[property]+1; op= '='; } else if (prefix=='--'){ val= o[property]-1; op= '='; } if (o==null) alert('in assign, o is null, property, caller=\n['+property+']\n['+arguments.callee.caller+']'); if (!cwc_set_props_hash[property]) return _assign_default(); otype= cwc_object_type(o); var opmod= op.match(/=/) ? op.replace(/=$/, '') : ''; switch (property){ case 'background': if (otype=="CSS2Properties"){ o[property]= cwc_conv_css(val); return val; } case 'src': case 'href': case 'lowsrc': case 'action': case 'useMap': case 'longDesc': case 'cite': case 'codeBase': case 'location': case 'poster': if (!(val instanceof String) && !(typeof val=='string')) return eval('o[property]'+op+'val'); if (opmod!=''){ new_val= cwc_parse_full_url(o[property])[2]; eval('new_val' + op + 'val'); } else{ new_val= val; } if ((property=='location') && (o.top===o)){ o[property]= cwc_full_url_by_frame(new_val, null, false); } else{ o[property]= cwc_full_url(new_val, o.ownerDocument); } if (otype=='Window') cwc_init_domain(o); return new_val; case 'profile': if (!o.tagName || o.tagName.toLowerCase()!='head') return o[property]= val; var u= val.split(/\s+/); for (var i= 0; i<u.length ; i++) u[i]= cwc_full_url(u[i], o.ownerDocument); o[property]= u.join(' '); return val; case 'cssText': o[property]= cwc_conv_css(val); return val; case 'innerHTML': case 'outerHTML': case 'outerText': if (!( ('getAttributeNode' in o) && ('getElementsByTagName' in o) && ('removeAttribute' in o) )) return _assign_default(); if (op!='=') new_val= cwc_conv_html(o[property], (o.ownerDocument || o), false, true)[0]; eval('new_val' + op + 'val'); o[property]= cwc_conv_html(new_val, (o.ownerDocument || o), false)[0]; return new_val; case 'nodeValue': if (opmod!=''){ eval('new_val= o[property]' + opmod + 'val') } else{ new_val= val } o[property]= cwc_conv_attribute(property, new_val); return new_val; default: var fu, u; if (otype=='Link' || otype=='Location'){ fu= cwc_parse_full_url(o.href); u= cwc_parse_url(fu[2]); } switch (otype+'.'+property){ case 'Link.protocol': case 'Location.protocol': val.toLowerCase(); o.href= cwc_full_url(val+'//'+(u[2]!='' ? u[2]+'@' : '', o.ownerDocument)+u[3]+u[6]+u[7]+u[8]); return val; case 'Link.host': case 'Location.host': val.toLowerCase(); o.href= cwc_full_url(u[1]+'//'+(u[2]!='' ? u[2]+'@' : '', o.ownerDocument)+val+u[6]+u[7]+u[8]); return val; case 'Link.hostname': case 'Location.hostname': o.href= cwc_full_url(u[1]+'//'+(u[2]!='' ? u[2]+'@' : '', o.ownerDocument)+val+(u[5]!='' ? ':'+u[5] : '')+u[6]+u[7]+u[8]); return val; case 'Link.port': case 'Location.port': o.href= cwc_full_url(u[1]+'//'+(u[2]!='' ? u[2]+'@' : '', o.ownerDocument)+u[4]+(val!='' ? ':'+val : '')+u[6]+u[7]+u[8]); return val; case 'Link.pathname': case 'Location.pathname': o.href= cwc_full_url(u[1]+'//'+(u[2]!='' ? u[2]+'@' : '', o.ownerDocument)+u[3]+val+u[7]+u[8]); return val; case 'Link.search': case 'Location.search': o.href= cwc_full_url(u[1]+'//'+(u[2]!='' ? u[2]+'@' : '', o.ownerDocument)+u[3]+u[6]+val+u[8]); return val; case 'Document.cookie': return (cwc_cookies_are_banned_here ? '' : o.cookie= cwc_cookie_to_client(val) ); case 'Document.domain': var w= cwc_doc2win(o); if ( ( (('.'+val)==w.cwc_document_domain.slice(-val.length-1)) || (val==w.cwc_document_domain) ) && val.match(/\./) ) return (w.cwc_document_domain= val); break; case 'Attr.value': o.value= cwc_conv_attribute(o.name, val); return val; case 'CSS2Properties.backgroundImage': case 'CSS2Properties.content': case 'CSS2Properties.cursor': case 'CSS2Properties.listStyle': case 'CSS2Properties.listStyleImage': o[property]= cwc_conv_css(val); return val; default: return _assign_default(); } } function _assign_default(){ if (op=='++') return o[property]++; else if (op=='--') return o[property]--; else return eval('o[property]'+op+'val'); } } function cwc_set_rval (prefix, property, op, val, cur_val){ if (prefix=='delete') return undefined; if (prefix=='++'){ val= 1; op= '+='; } else if (prefix=='--'){ val= 1; op= '-='; } if (val && (typeof val=='object') && (!('toLowerCase' in val))) return val; var new_val= cur_val; eval('new_val' + op + 'val'); switch (property){ case 'location': return cwc_full_url(new_val); default: return new_val; } } function cwc_do_with (with_objs, property, cur_val, calls_now, in_new_statement){ for (var i= with_objs.length-1; i>=0 ; i--) if (property in with_objs[i]) return cwc_do(with_objs[i], property, with_objs[i][property], calls_now, in_new_statement); return cwc_do(null, property, cur_val, calls_now, in_new_statement); } function cwc_set_rval_with (with_objs, prefix, property, op, val, cur_val){ for (var i= with_objs.length-1; i>=0 ; i--) if (property in with_objs[i]) return cwc_set(prefix, with_objs[i], property, op, val); return cwc_set_rval(prefix, property, op, val, cur_val); } function cwc_write(doc, html){ var i, buf; for (i= 0; i<cwc_write_buffers.length ; i++) { if (cwc_write_buffers[i].doc===doc){ buf= cwc_write_buffers[i]; break; } } if (!buf){ buf= cwc_write_buffers[cwc_write_buffers.length]= { doc: doc, buf: html }; } else{ if (buf.buf==void 0) buf.buf= ''; buf.buf+= html; } } function cwc_flush(){ var buf, i, p; for (i= 0; (cwc_write_buffers!=void 0) && (i<cwc_write_buffers.length) ; i++) { buf= cwc_write_buffers[i]; if (buf.buf==void 0) continue; p= cwc_conv_html(buf.buf, buf.doc, !buf.has_js); if (p[3]) return; buf.has_js= buf.has_js || p[2]; buf.buf= p[1]; buf.doc.write(p[0]); } } function cwc_new_function(){ arguments[arguments.length-1]= cwc_conv_js(arguments[arguments.length-1]); return Function.apply(null, arguments); } function cwc_doc2win(d){ return (cwc_browser_family!='msie') ? d.defaultView : d.parentWindow; } function cwc_dup_window_safe(w){ return{ navigator: w.navigator, clearInterval: w.clearInterval, moveBy: w.moveBy, self: w, location: w.location }; } function cwc_init_domain(w){ if (w.document.URL=='about:blank'){ w.cwc_document_domain= void 0; return; } var URL= w.document.URL.replace(/^wyciwyg:\/\/\d+\//i, ''); URL= cwc_parse_full_url(URL)[2]; URL= decodeURIComponent(URL); if (URL=='about:blank'){ w.cwc_document_domain= void 0; return; } w.cwc_document_domain= cwc_parse_url(URL)[4]; } function cwc_full_url(uri_ref, doc, reverse, retain_query){ var script, r_l, m1, r_q, query, r_js; retain_query= false; if (uri_ref=='//:') return uri_ref; if (!doc) doc= window.document; if (uri_ref==null) return ''; if (reverse) return cwc_parse_full_url(uri_ref)[2]; if (!doc.cwc_base_url) cwc_set_base_vars(doc, cwc_parse_full_url(doc.URL)[2]); uri_ref= uri_ref.replace(/^\s+|\s+$/g, ''); if (/^x\-convertor\:\/\//i.test(uri_ref)) return ''; if (uri_ref.match(/^about\:\s*blank$/i)) return uri_ref; if (/^(javascript|livescript)\:/i.test(uri_ref)){ script= uri_ref.replace(/^(javascript\:|livescript\:)+/i, ''); r_l= cwc_separate_last_js_statement(script); r_l[1]= r_l[1].replace(/\s*;\s*$/, ''); r_js = cwc_conv_js(r_l[0], 1); if(r_js) r_js = r_js + '; '; return 'javascript:' + r_js + 'cwc_conv(' + cwc_conv_js(r_l[1], 0) + ')'; } else if (m1= uri_ref.match(/^(fscommand:)(.*)/i)){ return m1[1] + cwc_conv_js(m1[2]); } var uf= uri_ref.match(/^([^\#]*)(\#.*)?/); var uri= uf[1]; var frag= uf[2] ? uf[2] : ''; if (uri=='') return uri_ref; uri= uri.replace(/[\r\n]/g, ''); if (retain_query){ r_q= uri.split(/\?/); uri= r_q[0]; query= r_q[1]; if (query) query= '?'+query; else query= ''; } var absurl; if (/^[\w\+\.\-]*\:/.test(uri)){ absurl= uri } else if (/^\/\//.test(uri)){ absurl= doc.cwc_base_scheme + uri } else if (/^\//.test(uri)){ absurl= doc.cwc_base_host + uri } else if (/^\?/.test(uri)){ absurl= doc.cwc_base_file + uri } else{ absurl= doc.cwc_base_path + uri } if (cwc_RE_NON_TEXT_EXTENSIONS.test(absurl) || !cwc_RE_SUB_DOMAINS.test(absurl)){ if(cwc_IMAGE_DIR_OLD!='' && (cwc_IMAGE_DIR_EXC=='' || !cwc_IMAGE_RE_EXC.test(absurl))){ absurl= absurl.replace(cwc_IMAGE_RE_PAT,cwc_IMAGE_REPLACE); } return absurl + (retain_query ? query : '') + frag; } return cwc_url_start + cwc_wrap_conv_encode(absurl) + (retain_query ? query : '') + frag; } function cwc_full_url_by_frame(uri_ref, doc, is_frame, reverse){ var old_url_start= cwc_url_start; cwc_url_start= is_frame ? cwc_url_start_inframe : cwc_url_start_noframe; var ret= cwc_full_url(uri_ref, doc, reverse); cwc_url_start= old_url_start; return ret; } function cwc_set_base_vars(doc, base_url){ if (!base_url) base_url= doc.URL; doc.cwc_base_url= base_url.replace(/^\s+|\s+$/g, '') .replace(/^([\w\+\.\-]+\:\/\/[^\/\?]+)\/?/, "$1/"); if (!base_url.match(/^\s*https?\:\/\//i)) return; doc.cwc_base_scheme= doc.cwc_base_url.match(/^([\w\+\.\-]+\:)\/\//)[1]; doc.cwc_base_host= doc.cwc_base_url.match(/^([\w\+\.\-]+\:\/\/[^\/\?]+)/)[1]; doc.cwc_base_path= doc.cwc_base_url.match(/^([^\?]*\/)/)[1]; doc.cwc_base_file= doc.cwc_base_url.match(/^([^\?]*)/)[1]; } function cwc_wrap_conv_encode(URL){ var uf= URL.match(/^([^\#]*)(\#.*)?/); var uri= uf[1]; var frag= uf[2] ? uf[2] : ''; uri= cwc_conv_encode(uri); uri= uri.replace(/\=/g, '=3d').replace(/\?/g, '=3f').replace(/\#/g, '=23') .replace(/\%/g, '=25').replace(/\&/g, '=26').replace(/\;/g, '=3b'); while (uri.match(/\/\//)) uri= uri.replace(/\/\//g, '/=2f'); return uri + frag; } function cwc_wrap_conv_decode(enc_URL){ var uf= enc_URL.match(/^([^\?\#]*)([^\#]*)(.*)/); var uri= uf[1]; var query= uf[2]; var frag= uf[3] ? uf[3] : ''; uri= uri.replace(/\=2f/g, '/').replace(/\=25/g, '%').replace(/\=23/g, '#') .replace(/\=3f/g, '?').replace(/\=26/g, '&').replace(/\=3b/g, ';') .replace(/\=3d/g, '='); uri= cwc_conv_decode(uri); return uri + query + frag; } function cwc_cookie_to_client(cookie){ if (cwc_cookies_are_banned_here) return ''; var u= cwc_parse_url(cwc_URL); if (u==null){ alert("WebConvertor Error: Can't parse URL <"+cwc_URL+">; not setting cookie."); return ''; } var source_server= u[4]; var source_path= u[6]; if (source_path.substr(0,1)!='/') source_path= '/' + source_path; var name, value, expires_clause, path, domain, secure_clause; var new_name, new_value, new_cookie; name= value= expires_clause= path= domain= secure_clause= new_name= new_value= new_cookie= ''; if (/^\s*([^\=\;\,\s]*)\s*\=?\s*([^\;]*)/.test(cookie)){ name= RegExp.$1; value= RegExp.$2 ; } if (/\;\s*(expires\s*\=[^\;]*)/i.test(cookie)) expires_clause= RegExp.$1; if (/\;\s*path\s*\=\s*([^\;\,\s]*)/i.test(cookie)) path= RegExp.$1; if (/\;\s*domain\s*\=\s*([^\;\,\s]*)/i.test(cookie)) domain= RegExp.$1; if (/\;\s*(secure\b)/i.test(cookie)) secure_clause= RegExp.$1; if (path=='') path= cwc_COOKIE_PATH_FOLLOWS_SPEC ? source_path : '/'; if (domain==''){ domain= source_server; } else{ domain= domain.replace(/\.+$/, ''); domain= domain.replace(/\.{2,}/g, '.'); if ( (source_server.substr(source_server.length-domain.length)!=domain.toLowerCase()) && ('.'+source_server!=domain) ) return ''; var dots= domain.match(/\./g); if (cwc_RESPECT_THREE_DOT_RULE){ if (dots.length<3 && !( dots.length>=2 && /\.(com|edu|net|org|gov|mil|int)$/i.test(domain) ) ) return ''; } else{ if (dots.length<2){ if (domain.match(/^\./)) return ''; domain= '.'+domain; if (dots.length<1) return ''; } } } new_name= cwc_cookie_encode('COOKIE;'+name+';'+path+';'+domain); new_value= cwc_cookie_encode(value+';'+secure_clause); if (cwc_SESSION_COOKIES_ONLY && (expires_clause!='')){ /^expires\s*\=\s*(.*)$/i.test(expires_clause); var expires_date= RegExp.$1.replace(/\-/g, ' '); if ( Date.parse(expires_date) > (new Date()).getTime() ) expires_clause= ''; } new_cookie= new_name+'='+new_value; if (expires_clause!='') new_cookie= new_cookie+'; '+expires_clause; new_cookie= new_cookie+'; path='+cwc_SCRIPT_NAME+'/'; return new_cookie; } function cwc_cookie_from_client(doc){ if (cwc_cookies_are_banned_here) return ''; if (!doc.cookie) return ''; var target_path, target_server, target_scheme; var u= cwc_parse_url(cwc_URL); if (u==null){ alert("WebConvertor Error: Can't parse URL <"+cwc_URL+">; not using cookie."); return; } target_scheme= u[1]; target_server= u[4]; target_path= u[6]; if (target_path.substr(0,1)!='/') target_path= '/' + target_path; var matches= new Array(); var pathlen= new Object(); var cookies= doc.cookie.split(/\s*;\s*/); for (var c= 0; c < cookies.length ; c++) { var nv= cookies[c].split('=', 2); var name= cwc_cookie_decode(nv[0]); var value= cwc_cookie_decode(nv[1]); var n= name.split(/;/); if (n[0]=='COOKIE'){ var cname, path, domain, cvalue, secure; cname= n[1]; path= n[2] ; domain= n[3].toLowerCase() ; var v= value.split(/;/); cvalue= v[0]; secure= v[1] ; if (secure!='' && secure!=null && target_scheme!='https:') continue; if ( ((target_server.substr(target_server.length-domain.length)==domain) || (domain=='.'+target_server)) && target_path.substr(0, path.length)==path ) { matches[matches.length]= cname ? cname+'='+cvalue : cvalue; pathlen[cname+'='+cvalue]= path.length; } } } matches.sort(function (v1,v2){ return (pathlen[v2]-pathlen[v1]) } ) ; return matches.join('; '); } function cwc_conv(html){ return cwc_conv_html(html)[0]; } function cwc_conv_html(html, doc, is_full_page, reverse){ var out= []; var match, m2, last_lastIndex= 0, remainder; var tag_name, html_pos, head_pos; var base_url, base_url_jsq, jslib_block, insert_string, insert_pos; var jslib_added= false; if (html==void 0) return [void 0, void 0, false, false]; if (typeof html=='number') return [html, void 0, false, false]; if (is_full_page) cwc_needs_jslib= false; var RE= new RegExp(/([^\<]*)(?:(\<\!\-\-(?=[\s\S]*?\-\-\>)[\s\S]*?\-\-\s*\>|\<\!\-\-(?![\s\S]*?\-\-\>)[\s\S]*?\>)|(\<\s*script\b[\s\S]*?\<\s*\/script\b[\s\S]*?\>)|(\<\s*style\b[\s\S]*?\<\s*\/style\b[\s\S]*?\>)|(\<\![^\>]*\>)|(\<\?[^\>]*\>)|(\<[^\>]*\>))?/gi); var RE2= new RegExp(/[^\>]*(?:\>|$)/g); while ((last_lastIndex!=html.length) && (match= RE.exec(html))){ if (match.index!=last_lastIndex){ remainder= html.slice(last_lastIndex); break; } last_lastIndex= RE2.lastIndex= RE.lastIndex; out.push(match[1]); if (match[2]){ out.push(cwc_conv_comment(match[2], doc, reverse)); } else if (match[3]){ out.push(cwc_conv_script_block(match[3], doc, reverse)); } else if (match[4]){ out.push(cwc_conv_style_block(match[4], doc, reverse)); } else if (match[5]){ out.push(cwc_conv_decl_bang(match[5], doc, reverse)); } else if (match[6]){ out.push(cwc_conv_decl_question(match[6], doc, reverse)); } else if (match[7]){ m2= match[7].match(/^\<\s*(\/?[A-Za-z][\w\.\:\-]*)/); if (!m2) alert('no m2; match[7]=['+match[7]+']'); tag_name= m2[1].toLowerCase(); if ((tag_name=='script') || (tag_name=='style')){ remainder= match[7]+html.slice(last_lastIndex); break; } if ((tag_name=='frameset') && cwc_doing_insert_here && !cwc_is_in_frame && !reverse){ cwc_return_frame_doc(cwc_wrap_conv_encode(cwc_URL), doc); return ['', void 0, false, true]; } if (tag_name=='/object') cwc_current_object_classid= ''; var new_element= cwc_conv_element(match[7], doc, reverse); while (new_element==void 0 && last_lastIndex!=html.length){ m2= RE2.exec(html); last_lastIndex= RE.lastIndex= RE2.lastIndex; match[7]+= m2[0]; new_element= cwc_conv_element(match[7], doc, reverse); } out.push(new_element); if (tag_name=='html'){ html_pos= out.length } else if (tag_name=='head'){ head_pos= out.length } } } if ((last_lastIndex!=html.length) && !remainder) remainder= html.slice(last_lastIndex); if (reverse) cwc_needs_jslib= false; if (is_full_page && cwc_needs_jslib && !reverse){ jslib_block= '<script type="text/javascript" src="' + cwc_html_escape(cwc_url_start+cwc_wrap_conv_encode('x-conv://javascript/webconv.js')) + '"><\/script>\n'; if (!doc.cwc_base_url){ base_url= cwc_parse_full_url(doc.URL)[2]; cwc_set_base_vars(doc, base_url); } base_url_jsq= doc.cwc_base_url .replace(/(["\\])/g, function (p){ return '\\'+p } ) ; if (base_url_jsq!=void 0) base_url_jsq= '"' + base_url_jsq + '"'; insert_string= '<script type="text/javascript">cwc_conv_init(' + base_url_jsq + ',' + cwc_cookies_are_banned_here + ',' + cwc_doing_insert_here + ',' + cwc_SESSION_COOKIES_ONLY + ',' + cwc_COOKIE_PATH_FOLLOWS_SPEC + ',' + cwc_RESPECT_THREE_DOT_RULE + ',' + cwc_ALLOW_UNCONVERTED_SCRIPTS + ',"' + cwc_default_script_type + '","' + cwc_default_style_type + '");<\/script>\n'; insert_pos= head_pos || html_pos || 0; out.splice(insert_pos, 0, jslib_block, insert_string); jslib_added= true; } return [out.join(''), remainder, jslib_added]; } function cwc_conv_comment(comment, doc, reverse){ var m= comment.match(/^\<\!\-\-(.*?)(\-\-\s*)?>$/); var contents= m[1]; var end= m[2]; contents= cwc_conv_html(contents, doc, false, reverse)[0]; comment= '<!--' + contents + end + '>'; return comment; } function cwc_conv_decl_bang(decl_bang, doc, reverse){ var q; var inside= decl_bang.match(/^\<\!([^>]*)/)[1]; var words= inside.match(/\"[^\"\>]*\"?|\'[^\'\>]*\'?|[^\'\"][^\s\>]*/g); for (var i=0; i<words.length ; i++) { words[i]= words[i].replace(/^\s*/, ''); if (words[i].match(/^[\'\"]?http\:\/\/www\.w3\.org\//)) continue; if (words[i].match(/^[\"\']?[\w\+\.\-]+\:\/\//)){ if (words[i].match(/^'/)){ q= "'" ; words[i]= words[i].replace(/^\'|\'$/g, '') } else if (words[i].match(/^"/)){ q= '"' ; words[i]= words[i].replace(/^\"|\"$/g, '') } else{ q= '' } words[i]= q + cwc_full_url(words[i], doc, reverse) + q; } } decl_bang= '<!' + words.join(' ') + '>'; return decl_bang; } function cwc_conv_decl_question(decl_question, doc, reverse){ return decl_question; } function cwc_conv_script_block(script_block, doc, reverse){ var m1, m2, tag, script, attrs, attr, name; attr= new Object(); m1= script_block.match(/^(\<\s*script\b[^\>]*\>)([\s\S]*)\<\s*\/script\b[^\>]*\>$/i); var o_n_j= cwc_needs_jslib; tag= cwc_conv_element(m1[1], doc, reverse); cwc_needs_jslib= o_n_j; script= m1[2]; attrs= tag.match(/^\<\s*script\b([^\>]*)\>/i)[1]; while (m2= attrs.match(/([A-Za-z][\w\.\:\-]*)\s*(\=\s*(\"([^\"\>]*)\"?|\'([^\'\>]*)\'?|([^\'\"][^\s\>]*)))?/)){ attrs= attrs.substr(m2[0].length); name= m2[1].toLowerCase(); if (attr[name]!=null) continue; attr[name]= m2[4] ? m2[4] : m2[5] ? m2[5] : m2[6] ? m2[6] : ''; attr[name]= cwc_html_unescape(attr[name]); } if (attr.type!=null) attr.type= attr.type.toLowerCase(); if (!attr.type && attr.language){ attr.type= attr.language.match(/javascript|ecmascript|livescript|jscript/i) ? 'application/x-javascript' : attr.language.match(/css/i) ? 'text/css' : attr.language.match(/vbscript/i) ? 'application/x-vbscript' : attr.language.match(/perl/i) ? 'application/x-perlscript' : attr.language.match(/tcl/i) ? 'text/tcl' : ''; } if (!attr.type) attr.type= cwc_default_script_type; script= cwc_conv_block(script, attr.type, cwc_ALLOW_UNCONVERTED_SCRIPTS, reverse); return tag+script+'<\/script>'; } function cwc_conv_style_block(style_block, doc, reverse){ var m1, m2, tag, stylesheet, attrs, type; m1= style_block.match(/^(\<\s*style\b[^\>]*\>)([\s\S]*)\<\s*\/style\b[^\>]*\>$/i); var o_n_j= cwc_needs_jslib; tag= cwc_conv_element(m1[1], doc, reverse); cwc_needs_jslib= o_n_j; stylesheet= m1[2]; attrs= tag.match(/^\<\s*style\b([^\>]*)\>/i)[1]; while (m2= attrs.match(/([A-Za-z][\w\.\:\-]*)\s*(\=\s*(\"([^\"\>]*)\"?|\'([^\'\>]*)\'?|([^\'\"][^\s\>]*)))?/)){ attrs= attrs.substr(m2[0].length); if (m2[1].toLowerCase()=='type'){ type= m2[4]!=null ? m2[4] : m2[5]!=null ? m2[5] : m2[6]!=null ? m2[6] : ''; type= cwc_html_unescape(type).toLowerCase(); break; } } if (!type) type= cwc_default_style_type; stylesheet= cwc_conv_block(stylesheet, type, cwc_ALLOW_UNCONVERTED_SCRIPTS, reverse); return tag+stylesheet+'<\/style>'; } function _ostring(o, depth, filter){ var ret= ''; if (depth>0) for (var p in o){ try{ if (filter && !p.match(filter)) continue; ret+= p + ':' + ( (o[p]&&(typeof(o[p])=='object')) ? _ostring(o[p],depth-1) : ('"'+o[p]+'"') ) + ', '; } catch(e){ ret+= p+':<<error: '+e+'>>, ' } } return '{' + ret + '}'; } function _nodestring(n){ if (!n) return ''; var ret= ''; ret+= '<' + n.nodeName; if (n.attributes) for (var i= 0; i<n.attributes.length ; i++) ret+= ' ' + n.attributes[i].nodeName + '="' + n.attributes[i].nodeValue+'"'; ret+= '>'; ret+= n.innerHTML + '<\/' + n.nodeName + '>'; return ret; } function _node_is_in_document(node){ for (; (node!=null) && (node.nodeType!=9) ; node= node.parentNode) ; return node!=null; } function _ancestorsof(node){ var ret= ''; for (; (node!=null) && (node.nodeType!=9) ; node= node.parentNode) ret+= '['+node.nodeType+']['+node+']['+_node_is_in_document(node)+']\n'; return ret; } function _object_type(o){ return cwc_object_type(o) } function cwc_conv_element(element, doc, reverse){ var m1, m2, tag_name, attrs, attr= {}, names= [], name, i, rebuild, end_slash, old_url_start, flags; if (!doc) doc= window.document; if (!(m1= element.match(/^\<\s*([A-Za-z][\w\.\:\-]*)\s*([\s\S]*)$/))) return element; tag_name= m1[1].toLowerCase(); attrs= m1[2]; if (attrs=='') return element; while (m2= attrs.match(/([A-Za-z][\w\.\:\-]*)\s*(\=\s*(\"([^\"]*)\"|\'([^\']*)\'|([^\'\"][^\s\>]*)|(\'[^\']*$|\"[^\"]*$)))?/)){ if (m2[7]) return void 0; attrs= attrs.substr(m2.index+m2[0].length); name= m2[1].toLowerCase(); if (name in attr){ rebuild= 1 ; continue } attr[name]= (m2[4]!=void 0 && m2[4]!='') ? m2[4] : (m2[5]!=void 0 && m2[5]!='') ? m2[5] : (m2[6]!=void 0 && m2[6]!='') ? m2[6] : ''; attr[name]= cwc_html_unescape(attr[name]); names.push(name); } for (i= 0; i<names.length ; i++) { name= names[i]; if (attr[name].match(/\&\{.*\}\;/)){ delete attr[name] ; rebuild= 1 ; continue } if (name.match(/^on/)){ attr[name]= cwc_conv_block(attr[name], cwc_default_script_type, cwc_ALLOW_UNCONVERTED_SCRIPTS, reverse); rebuild= 1; } } if (tag_name=='object'){ cwc_current_object_classid= attr.classid; } else if (tag_name=='param'){ } if ('style' in attr){ if (attr.style.match(/(expression|function)\s*\(/i )) attr.style= cwc_global_replace(attr.style, /\b((expression|function)\s*\()([^\)]*)/i, function (p){ return p[1]+cwc_conv_js(p[3], void 0, void 0, void 0, reverse) } ) ; attr.style= cwc_conv_block(attr.style, cwc_default_style_type, cwc_ALLOW_UNCONVERTED_SCRIPTS, reverse); rebuild= 1; } if ('href' in attr){ attr.href= cwc_full_url(attr.href, doc, reverse) ; rebuild= 1 } if ('src' in attr){ if (tag_name=='frame' || tag_name=='iframe'){ attr.src= cwc_full_url_by_frame(attr.src, doc, 1, reverse); rebuild= 1 ; } else if (tag_name=='script'){ attr.src= cwc_full_url(attr.src, doc, reverse); rebuild= 1 ; cwc_needs_jslib= true; } else if (tag_name=='embed'){ { attr.src= cwc_full_url(attr.src, doc, reverse, (attr.type && attr.type.toLowerCase()=='application/x-shockwave-flash')); rebuild= 1 } } else{ attr.src= cwc_full_url(attr.src, doc, reverse) ; rebuild= 1 } } if ('lowsrc' in attr){ attr.lowsrc= cwc_full_url(attr.lowsrc, doc, reverse) ; rebuild= 1 } if ('dynsrc' in attr){ attr.dynsrc= cwc_full_url(attr.dynsrc, doc, reverse) ; rebuild= 1 } if ('action' in attr){ attr.action= cwc_full_url(attr.action, doc, reverse) ; rebuild= 1 } if ('background' in attr){ attr.background= cwc_full_url(attr.background, doc, reverse) ; rebuild= 1 } if ('usemap' in attr){ attr.usemap= cwc_full_url(attr.usemap, doc, reverse) ; rebuild= 1 } if ('cite' in attr){ attr.cite= cwc_full_url(attr.cite, doc, reverse) ; rebuild= 1 } if ('longdesc' in attr){ attr.longdesc= cwc_full_url(attr.longdesc, doc, reverse) ; rebuild= 1 } if ('codebase' in attr){ attr.codebase= cwc_full_url(attr.codebase, doc, reverse) ; rebuild= 1 } if ('poster' in attr){ attr.poster= cwc_full_url(attr.poster, doc, reverse) ; rebuild= 1 } if ('pluginspage' in attr){ attr.pluginspage= cwc_full_url(attr.pluginspage, doc, reverse) ; rebuild= 1 } if ((tag_name=='meta') && attr['http-equiv'] && attr['http-equiv'].match(/^\s*refresh\b/i)){ attr.content= cwc_global_replace( attr.content, /(\;\s*URL\=)\s*(\S*)/i, function (a){ return a[1] + cwc_full_url(a[2], doc, reverse) } ) ; rebuild= 1; } if (!rebuild) return element; attrs= ''; for (i= 0; i<names.length ; i++) { name= names[i]; if (attr[name]==null) continue; if (attr[name]==''){ attrs+= ' '+name ; continue } if (!attr[name].match(/\"/) || attr[name].match(/\'/)){ attrs+= ' '+name+'="'+cwc_html_escape(attr[name])+'"'; } else{ attrs+= ' '+name+"='"+cwc_html_escape(attr[name])+"'"; } } end_slash= element.match(/\/\s*>?$/) ? ' /' : ''; return '<'+tag_name+attrs+end_slash+'>'; } function cwc_element2tag (e){ var ret= '', i; if (e.nodeType!=1) alert('in element2tag; nodeType=['+e.nodeType+']'); for (i= 0; i<e.attributes.length ; i++) ret+= ' '+e.attributes[i].nodeName+'="'+e.attributes[i].nodeValue+'"'; ret= '<'+e.tagName+ret+'>'; for (i=0; i<e.childNodes.length ; i++) if (e.childNodes[i].nodeType==1) ret+= '\n'+cwc_element2tag(e.childNodes[i]); else if (e.childNodes[i].nodeType==3) ret+= '\n'+e.childNodes[i].nodeValue; return ret; } function cwc_conv_attribute(name, value, reverse){ if (/\&\{.*\}\;/.test(value)) return; name= name.toLowerCase(); if (/^(href|src|lowsrc|dynsrc|action|background|usemap|cite|longdesc|codebase|poster)$/i.test(name)){ return cwc_full_url_by_frame(value, null, true, reverse); } else if (/^on/i.test(name)){ return cwc_conv_block(value, cwc_default_script_type, cwc_ALLOW_UNCONVERTED_SCRIPTS, reverse); } else if (/^style$/i.test(name)){ if (/(expression|function)\s*\(/i.test(value)) return; else return value; } else{ return value; } } function cwc_conv_block(s, type, unknown_type_ok, reverse){ type= type.toLowerCase(); if (type=='text/css'){ return cwc_conv_css(s, reverse); } else if (type.match(/^(application\/x\-javascript|application\/x\-ecmascript|application\/javascript|application\/ecmascript|text\/javascript|text\/ecmascript|text\/livescript|text\/jscript)$/)){ return cwc_conv_js(s, 1, void 0, void 0, reverse); } else{ return unknown_type_ok ? s : ''; } } function cwc_conv_css(css, reverse){ if (css==null) return css; var out= '', m1; while (m1= css.match(/url\s*\(\s*(([^\)]*\\\))*[^\)]*)(\)|$)/i)){ out+= css.substr(0,m1.index) + 'url(' + cwc_css_full_url(m1[1], null, reverse) + ')'; css= css.substr(m1.index+m1[0].length); } out+= css; css= out; out= ''; while (m1=css.match(/\@import\s*(\"[^"]*\"|\'[^']*\'|[^\;\s\<]*)/i)){ if (!m1[1].match(/^url\s*\(/i)){ out+= css.substr(0,m1.index) + '@import ' + cwc_css_full_url(m1[1], null, reverse); } else{ out+= css.substr(0,m1.index) + m1[0]; } css= css.substr(m1.index+m1[0].length); } out+= css; css= out; out= ''; while (m1= css.match(/((expression|function)\s*\()([^)]*)/i)){ out+= css.substr(0,m1.index) + m1[1] + cwc_conv_js(m1[3], void 0, void 0, void 0, reverse); css= css.substr(m1.index+m1[0].length); } out+= css; return out; } function cwc_css_full_url(url, doc, reverse){ var q= ''; url= url.replace(/\s+$/, ''); if (url.match(/^\"/)){ q= '"' ; url= url.replace(/^\"|\"$/g, '') } else if (url.match(/^\'/)){ q= "'" ; url= url.replace(/^\'|\'$/g, '') } url= url.replace(/\\(.)/g, "$1").replace(/^\s+|\s+$/g, ''); url= cwc_full_url(url, doc, reverse); url= url.replace(/([\(\)\,\s\'\"\\])/g, function (p){ return '\\'+p } ) ; return q+url+q; } function cwc_return_frame_doc(enc_URL, doc){ var top_URL= cwc_html_escape(cwc_url_start_inframe + cwc_wrap_conv_encode('x-conv://frames/topframe?URL=' + encodeURIComponent(enc_URL) ) ); var page_URL= cwc_html_escape(cwc_url_start_inframe + enc_URL); doc.open(); doc.write('<html>\n<frameset rows="80,*">\n' + '<frame src="'+top_URL+'">\n<frame src="'+page_URL+'" name="cwc_main_frame">\n' + '<\/frameset>\n</html>'); doc.close(); } function cwc_conv_js(s, top_level, with_level, in_new_statement, reverse){ if ((s==void 0) || (s=='')) return s; if (with_level==void 0) with_level= 0; if (in_new_statement==void 0) in_new_statement= 0; if (reverse) return s; if (!((typeof s=='string') || (s instanceof String) || (s instanceof Array))) return s; var jsin= cwc_tokenize_js(s); return cwc_conv_js_tokens(jsin, 0, jsin.length, top_level, with_level, in_new_statement, reverse); } function cwc_conv_js_tokens(jsin, start, end, top_level, with_level, in_new_statement, reverse) { var RE= cwc_RE; var i_jsin, out, element, token, last_token, new_last_token, newline_since_last_token, term_so_far= '', sub_expr, op, new_val, cur_val_str, inc_by, in_braces= 0, in_func= false, expr, new_expr, var_decl, varname, eq, value, skip1, skip2, funcname, with_obj, code, match, m2, o_p, ostart, oend, pstart, pend, p, estart, eend, skipped, i, i_next_token, i_lt, next_token, next_expr, next_expr_st, skipped, args, fn_body, t; out= []; out.push= cwc_ORIGINAL_ARRAY_push; if (top_level) cwc_does_write= false; i_jsin= start; OUTER: while (i_jsin<end){ element= jsin[i_jsin++]; token= element.skip ? void 0 : element; if (RE.LINETERMINATOR.test(element)) newline_since_last_token= true; new_last_token= ''; if (token=='{'){ in_braces++; } else if (token=='}'){ if (--in_braces==0) in_func= false; } i_next_token= i_lt= i_jsin; while (i_next_token<end && jsin[i_next_token].skip) i_next_token++; next_token= (i_next_token<end) ? jsin[i_next_token] : void 0; while (i_lt<i_next_token && !RE.LINETERMINATOR.test(jsin[i_lt])) i_lt++; if (i_lt==i_next_token) i_lt= void 0; if (!token){ if (term_so_far) term_so_far+= element; else out.push(element); } else if (match= token.match(/^\_proxy(\d*)(\_.*)/)){ term_so_far+= '_proxy'+(match[1]-0+1)+match[2]; } else if (RE.N_S_RE.test(token)){ out.push(term_so_far); term_so_far= token; } else if (/^(\+\+|\-\-|delete)$/.test(token)){ if (token=='--' && (next_token=='>')){ i_jsin= i_next_token+1; out.push(term_so_far, '-->'); term_so_far= ''; } else if (term_so_far!='' && !newline_since_last_token){ out.push(term_so_far, token); term_so_far= ''; } else{ out.push(term_so_far); term_so_far= ''; o_p= cwc_get_next_js_term(jsin, i_jsin, end); if (o_p==void 0) break; ostart= o_p[0]; oend= o_p[1]; pstart= o_p[2]; pend= o_p[3]; if (oend>ostart){ if (pstart>=pend){ p= ''; } else if (jsin[pstart]=='['){ p= cwc_conv_js_tokens(jsin, pstart+1, pend-1, 0, with_level); } else{ p= "'" + jsin[pstart] + "'"; } out.push(" cwc_set('" + token + "', (" + cwc_conv_js_tokens(jsin, ostart, oend, 0, with_level) + "), (" + p + "), '')" ); } else{ p= jsin[pstart]; out.push("(" + p + "= cwc_set_rval('" + token + "', '" + p + "', '', '', " + "(typeof " + p + "=='undefined' ? void 0 : " + p + ")))"); } i_jsin= pend; } } else if (token=='eval' && (next_token=='(')){ estart= i_jsin= i_next_token+1; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 1); if (i_jsin==void 0 || i_jsin>=end || jsin[i_jsin++]!=')') break; term_so_far+= 'eval(cwc_conv_js((' + cwc_conv_js_tokens(jsin, estart, eend, 0, with_level) + '), 0, ' + with_level + ') )'; cwc_needs_jslib= true; } else if (/^(open|write|writeln|replace|load|eval|setInterval|setTimeout|toString|src|href|background|lowsrc|action|location|poster|URL|referrer|baseURI|useMap|longDesc|cite|codeBase|profile|cssText|insertRule|setStringValue|setProperty|backgroundImage|content|cursor|listStyleImage|host|hostname|pathname|port|protocol|search|setNamedItem|innerHTML|outerHTML|outerText|body|insertAdjacentHTML|setAttribute|setAttributeNode|nodeValue|value|cookie|domain|frames|parent|top|opener|execScript|execCommand|navigate|showModalDialog|showModelessDialog|LoadMovie|close|getElementById|getElementsByTagName)$/.test(token)){ cwc_needs_jslib= true; cwc_does_write= cwc_does_write || (token=='write') || (token=='writeln') || (token=='eval'); if ( newline_since_last_token && /^(\)|\]|\+\+|\-\-)$|^([a-zA-Z\$\_\\\d'"]|\.\d|\/..)/.test(last_token) && ! /^(case|delete|do|else|in|instanceof|new|typeof|void|function|var)$/.test(last_token) ) { out.push(term_so_far); term_so_far= ''; } term_so_far= term_so_far.replace(RE.DOTSKIPEND, ''); var next_is_paren= (next_token=='(') ? 1 : 0; if (/^[\{\,]/.test(last_token) && (next_token==':')){ out.push(term_so_far, token); for (i= i_jsin; i<=i_next_token ; i++) out.push(jsin[i]) ; i_jsin= i_next_token+1; term_so_far= ''; new_last_token= ':'; } else if ((i_lt==void 0) && (next_token=='++' || next_token=='--')){ op= next_token; i_jsin= i_next_token+1; if (term_so_far==''){ out.push(' ', (with_level ? (token+"= cwc_set_rval_with(cwc_with_objs, '', '"+token+"', '"+op+"', '', "+token+")") : (token+"= cwc_set_rval('', '"+token+"', '"+op+"', '', (typeof "+token+"=='undefined' ? void 0 : " + token+"))") ) ); } else{ term_so_far= " cwc_set('', "+term_so_far+", '"+token+"', '"+op+"', '')"; } new_last_token= ')'; } else if (next_token && next_token.match(RE.ASSIGNOP)){ op= next_token; estart= i_jsin= i_next_token+1; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 0); if (i_jsin==void 0) break; new_val= cwc_conv_js_tokens(jsin, estart, eend, 0, with_level); if (term_so_far==''){ out.push(' ', (with_level ? (token+"= cwc_set_rval_with(cwc_with_objs, '', '"+token+"', '"+op+"', ("+new_val+"), "+token+")") : (token+"= cwc_set_rval('', '"+token+"', '"+op+"', ("+new_val+"), (typeof "+token+"=='undefined' ? void 0 : " + token+"))") ) ) } else{ term_so_far= " cwc_set('', "+term_so_far+", '"+token+"', '"+op+"', ("+new_val+"))"; } new_last_token= ')'; } else{ if (term_so_far==''){ term_so_far= (with_level ? (" cwc_do_with(cwc_with_objs, '"+token+"', "+token+", "+next_is_paren+", "+in_new_statement+")") : (" cwc_do(null, '"+token+"', "+token+", "+next_is_paren+", "+in_new_statement+")") ); } else{ term_so_far= " cwc_do("+term_so_far+", '"+token+"', '', "+next_is_paren+", "+in_new_statement+")"; } new_last_token= ')'; } } else if (/^(if|while|for|switch)$/.test(token)){ out.push(term_so_far, token); term_so_far= ''; if (next_token!='(') break; estart= i_jsin= i_next_token+1; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 1); if (i_jsin==void 0 || i_jsin>=end || jsin[i_jsin++]!=')') break; out.push('(', cwc_conv_js_tokens(jsin, estart, eend, 0, with_level), ')'); } else if (token=='catch'){ out.push(term_so_far, token); term_so_far= ''; if (next_token!='(') break; estart= i_jsin= i_next_token+1; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 1); if (i_jsin==void 0 || i_jsin>=end || jsin[i_jsin++]!=')') break; out.push('('); for (i= estart; i<eend ; i++) out.push(jsin[i]) ; out.push(')'); } else if (token=='function'){ out.push(term_so_far, token); term_so_far= ''; if (next_token && next_token.match(RE.IdentifierName)){ for (i= i_jsin; i<i_next_token ; i++) out.push(jsin[i]) ; funcname= next_token; i_jsin= i_next_token+1; while (i_jsin<end-1 && jsin[i_jsin]=='.' && jsin[i_jsin+1].match(RE.IdentifierName)){ funcname+= jsin[i_jsin] + jsin[i_jsin+1]; i_jsin+= 2; } } else{ funcname= ''; } if (m2= funcname.match(/^_proxy(\d*)_/)) funcname= '_proxy' + (m2[1]-0+1) + funcname.replace(/^_proxy(\d*)/, ''); out.push(funcname); i_next_token= i_jsin; while (i_next_token<end && jsin[i_next_token].skip) i_next_token++; for (i= i_jsin+1; i<i_next_token ; i++) out.push(jsin[i]) ; if (jsin[i_next_token]!='(') break; estart= i_jsin= i_next_token+1; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 1); if (i_jsin==void 0 || i_jsin>=end || jsin[i_jsin++]!=')') break; out.push('('); for (i= estart; i<eend ; i++) out.push(jsin[i]) ; out.push(') {'); while (i_jsin<end && jsin[i_jsin].skip) i_jsin++; if (i_jsin>=end || jsin[i_jsin++]!='{') break; in_braces++; in_func= true; } else if (token=='with'){ out.push(term_so_far); term_so_far= ''; skip1= ''; for (i= i_jsin; i<i_next_token ; i++) skip1+= jsin[i] ; if (next_token!='(') break; estart= i_jsin= i_next_token+1; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 1); with_obj= cwc_conv_js_tokens(jsin, estart, eend, 0, with_level); if (i_jsin>=end || jsin[i_jsin++]!=')') break; skip2= ''; while (i_jsin<end && jsin[i_jsin].skip) skip2+= jsin[i_jsin++]; if (jsin[i_jsin]=='{'){ estart= ++i_jsin; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 1); code= '{' + cwc_conv_js_tokens(jsin, estart, eend, 0, with_level+1) + '}'; if (i_jsin>=end || jsin[i_jsin++]!='}') break; } else{ estart= i_jsin; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 0); code= cwc_conv_js_tokens(jsin, estart, eend, 0, with_level+1); while (jsin[i_jsin]==','){ estart= ++i_jsin; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 0); code+= ',' + cwc_conv_js_tokens(jsin, estart, eend, 0, with_level+1); } } out.push('{', with_level ? '' : 'var cwc_with_objs= [] ;'); out.push('with', skip1, '(cwc_with_objs[cwc_with_objs.length]= (', with_obj, '))', skip2, code); out.push('; cwc_with_objs.length-- ;}'); new_last_token= ';'; } else if (token=='var'){ out.push(term_so_far, token); term_so_far= ''; while (1){ estart= i_jsin; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 0); i= estart; while (i<eend && jsin[i].skip) out.push(jsin[i++]); varname= (i<eend) ? jsin[i] : void 0; if (!varname || !varname.match(RE.IdentifierName)) break OUTER; if (varname && (match= varname.match(/^_proxy(\d*)_/))) varname= '_proxy' + (match[1]-0+1) + varname.replace(/^_proxy(\d*)/, ''); out.push(varname); i++; while (i<eend && jsin[i].skip) out.push(jsin[i++]); eq= (i<eend) ? jsin[i] : void 0; if (eq && !(eq=='=' || eq=='in')) break OUTER; if (eq) out.push(eq, cwc_conv_js_tokens(jsin, i+1, eend, 0, with_level)); if (i_jsin>=end || jsin[i_jsin]!=',') break; i_jsin++; out.push(','); } } else if (token=='new'){ out.push(term_so_far); term_so_far= ''; if (next_token=='Function'){ i_jsin= i_next_token+1; out.push('cwc_new_function'); } else if (next_token=='function'){ term_so_far= 'new function'; i_jsin= i_next_token+1; while (i_jsin<end && jsin[i_jsin].skip) i_jsin++; if (i_jsin>=end || jsin[i_jsin++]!='(') break; estart= i_jsin; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 1); if (i_jsin>=end || jsin[i_jsin++]!=')') break; term_so_far+= '('; for (i= estart; i<eend ; i++) term_so_far+= jsin[i] ; term_so_far+= ')'; while (i_jsin<end && jsin[i_jsin].skip) i_jsin++; if (i_jsin>=end || jsin[i_jsin++]!='{') break; estart= i_jsin; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 1); if (i_jsin>=end || jsin[i_jsin++]!='}') break; fn_body= cwc_conv_js_tokens(jsin, estart, eend, 0, with_level, 0); term_so_far+= '{'+fn_body+'}'; new_last_token= '}'; } else{ if (next_token=='('){ estart= i_jsin= i_next_token+1; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 1); if (i_jsin>=end || jsin[i_jsin++]!=')') break; } else{ estart= i_jsin; eend= i_jsin= cwc_get_next_js_constructor(jsin, i_jsin, end); } new_expr= cwc_conv_js_tokens(jsin, estart, eend, 0, with_level, 1); term_so_far+= 'new ('+new_expr+')'; new_last_token= ')'; } } else if ((token=='return') && !in_func && top_level){ out.push(term_so_far); term_so_far= ''; cwc_needs_jslib= true; estart= i_jsin= i_next_token; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 0); while (jsin[i_jsin]==','){ estart= ++i_jsin; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 0); } out.push('return ((cwc_ret= (', cwc_conv_js_tokens(jsin, estart, eend, 0, with_level), ')), cwc_flush(), cwc_ret)'); } else if (/^(abstract|boolean|break|byte|case|char|class|const|continue|debugger|default|delete|do|else|enum|export|extends|final|finally|float|goto|implements|in|instanceof|int|interface|long|native|package|private|protected|return|short|static|synchronized|throw|throws|transient|try|typeof|void|volatile)$/.test(token)){ out.push(term_so_far, token); term_so_far= ''; } else if (token.match(RE.IDENTIFIER)){ if ( newline_since_last_token && /^(\)|\]|\+\+|\-\-)$|^([a-zA-Z\$\_\\\d'"]|\.\d|\/..)/.test(last_token) && ! /^(case|delete|do|else|in|instanceof|new|typeof|void|function|var)$/.test(last_token) ) { out.push(term_so_far); term_so_far= token; } else{ term_so_far+= token; } } else if (token=='.'){ term_so_far+= '.'; } else if (token=='('){ cwc_does_write= true; estart= i_jsin; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 1); if (i_jsin>=end || jsin[i_jsin++]!=')') break; term_so_far+= '(' + cwc_conv_js_tokens(jsin, estart, eend, 0, with_level) + ')'; new_last_token= ')'; } else if (token=='['){ estart= i_jsin; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 1); if (i_jsin>=end || jsin[i_jsin++]!=']') break; if (eend-estart<=1 && ! /\D/.test(jsin[estart])){ term_so_far+= '['+(eend!=estart ?jsin[estart] :'')+']'; new_last_token= ']'; } else{ sub_expr= cwc_conv_js_tokens(jsin, estart, eend, 0, with_level); if (term_so_far){ cwc_needs_jslib= true; new_last_token= ')'; i_next_token= i_lt= i_jsin; while (i_next_token<end && jsin[i_next_token].skip) i_next_token++; next_token= (i_next_token<end) ? jsin[i_next_token] : void 0; while (i_lt<i_next_token && !RE.LINETERMINATOR.test(jsin[i_lt])) i_lt++; if (i_lt==i_next_token) i_lt= void 0; var next_is_paren= (jsin[i_next_token]=='(') ? 1 : 0; if ((i_lt==void 0) && (next_token=='++' || next_token=='--')){ op= next_token; i_jsin= i_next_token+1; term_so_far= " cwc_set('', "+term_so_far+", ("+sub_expr+"), '"+op+"', '')"; } else if (next_token && next_token.match(RE.ASSIGNOP)){ op= next_token; estart= i_jsin= i_next_token+1; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 0); new_val= cwc_conv_js_tokens(jsin, estart, eend, 0, with_level); term_so_far= " cwc_set('', "+term_so_far+", ("+sub_expr+"), '"+op+"', ("+new_val+"))"; } else{ term_so_far= " cwc_do("+term_so_far+", ("+sub_expr+"), '', "+next_is_paren+", "+in_new_statement+")"; } } else{ term_so_far= '['+sub_expr+']'; new_last_token= ']'; } } } else if (RE.PUNCDIVPUNC.test(token)){ out.push(term_so_far, token); term_so_far= ''; } else{ } if (token){ last_token= new_last_token ? new_last_token : token; newline_since_last_token= false; } } out.push(term_so_far); if (top_level && cwc_does_write){ out.push(' ;\ncwc_flush() ;'); cwc_needs_jslib= true; } return out.join(''); function cwc_get_next_js_term(jsin, start, end){ var oend, pstart, pend; var i_jsin= start; while (i_jsin<end && jsin[i_jsin].skip) i_jsin++; if (i_jsin>=end || !jsin[i_jsin].match(RE.IDENTIFIER)) return void 0; oend= i_jsin; pstart= i_jsin; pend= i_jsin+1; i_jsin++; while (i_jsin<end && jsin[i_jsin].skip) i_jsin++; while (i_jsin<end && (jsin[i_jsin]=='.' || jsin[i_jsin]=='(' || jsin[i_jsin]=='[')){ if (jsin[i_jsin]=='.'){ oend= i_jsin++; while (i_jsin<end && jsin[i_jsin].skip) i_jsin++; if (i_jsin>=end || !jsin[i_jsin].match(RE.IDENTIFIER)) return void 0; pstart= i_jsin++; pend= i_jsin; } else if (jsin[i_jsin]=='['){ oend= i_jsin; pstart= i_jsin; i_jsin= cwc_get_next_js_expr(jsin, i_jsin+1, end, 1); if (i_jsin==void 0 || i_jsin>=end || jsin[i_jsin++]!=']') return void 0; pend= i_jsin; } else if (jsin[i_jsin]=='('){ i_jsin= cwc_get_next_js_expr(jsin, i_jsin+1, end, 1); if (i_jsin==void 0 || i_jsin>=end || jsin[i_jsin++]!=')') return void 0; oend= pstart= pend= i_jsin; } while (i_jsin<end && jsin[i_jsin].skip) i_jsin++; } return [start, oend, pstart, pend]; } function cwc_get_next_js_constructor(jsin, start, end){ var c= [], t, skip= [], op, estart, eend; var i_jsin= start; while (i_jsin<end && jsin[i_jsin].skip) i_jsin++; if (i_jsin>=end || !jsin[i_jsin].match(RE.IDENTIFIER)) return void 0; i_jsin++; while (i_jsin<end && jsin[i_jsin].skip) i_jsin++; while (i_jsin<end && (jsin[i_jsin]=='.' || jsin[i_jsin]=='[')){ if (jsin[i_jsin]=='.'){ i_jsin++; while (i_jsin<end && jsin[i_jsin].skip) i_jsin++; if (i_jsin>=end || !jsin[i_jsin].match(RE.IDENTIFIER)) return void 0; i_jsin++; } else if (jsin[i_jsin]=='['){ estart= ++i_jsin; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, end, 1); if (i_jsin==void 0 || i_jsin>=end || jsin[i_jsin++]!=']') return void 0; } while (i_jsin<end && jsin[i_jsin].skip) i_jsin++; } return i_jsin; } } function cwc_get_next_js_expr(jsin, start, end, allow_multiple, is_new){ var p= [], element, last_token, i; var i_jsin= start; while (i_jsin<end){ element= jsin[i_jsin]; switch(element){ case ';': case ',': if (!allow_multiple && p.length==0) return i_jsin; break; case '\x0a': case '\x0d': i= i_jsin+1; while (i<end && jsin[i].skip) i++; if ( !allow_multiple && p.length==0 && /^(\)|\]|\+\+|\-\-)$|^([a-zA-Z\$\_\\\d'"]|\.\d|\/..)/.test(last_token) && ! /^(case|delete|do|else|in|instanceof|new|typeof|void|function|var)$/.test(last_token) && cwc_RE.IDENTIFIER.test(jsin[i]) ) { return i_jsin; } break; case '(': if (is_new && (p.length==0)) return i_jsin; case '[': case '{': case '?': p.push(element); break; case ')': case ']': case '}': case ':': if (p.length==0) return i_jsin; if (p.length>0 && !(element==':' && p[p.length-1]!='?')) p.length--; if (element=='}' && p.length==0 && !allow_multiple) return i_jsin+1; break; } if (!element.skip){ last_token= element; } i_jsin++; } return p.length==0 ? i_jsin : void 0; } function cwc_separate_last_js_statement(s){ var rest, last, jsin, i, i_jsin, estart, eend, rest_end= 0; var RE= cwc_RE; jsin= cwc_tokenize_js(s); estart= i_jsin= 0; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, jsin.length, 0); while (eend>estart || eend<jsin.length){ while (i_jsin<jsin.length && jsin[i_jsin].skip) i_jsin++; i= i_jsin; while (i<jsin.length && (jsin[i]==';' || jsin[i].skip)) i++; if (i==jsin.length) break; if ((jsin[i_jsin]).match(RE.STATEMENTTERMINATOR)){ rest_end= ++i_jsin; } else{ if (jsin[i_jsin]==',') i_jsin++; } estart= i_jsin; eend= i_jsin= cwc_get_next_js_expr(jsin, i_jsin, jsin.length, 0); } rest= jsin.slice(0, rest_end).join(''); last= jsin.slice(rest_end, jsin.length).join(''); return [rest, last]; } function cwc_tokenize_js(s){ var out= [], match, element, token, div_ok, last_lastIndex= 0; var RE_InputElementDivG= cwc_RE.InputElementDivG; var RE_InputElementRegExpG= cwc_RE.InputElementRegExpG; while (1){ if (div_ok){ if (!(match= RE_InputElementDivG.exec(s))) break; if (match.index!= last_lastIndex) break; last_lastIndex= RE_InputElementRegExpG.lastIndex= RE_InputElementDivG.lastIndex; } else{ if (!(match= RE_InputElementRegExpG.exec(s))) break; if (match.index!= last_lastIndex) break; last_lastIndex= RE_InputElementDivG.lastIndex= RE_InputElementRegExpG.lastIndex; } element= match[0]; token= match[1]; if (!token){ element= new String(element); element.skip= true; } out.push(element); if (token){ div_ok= /^(\)|\]|\+\+|\-\-)$|^([a-zA-Z\$\_\\\d'"]|\.\d|\/..)/.test(token) && !/^(case|delete|do|else|in|instanceof|new|return|throw|typeof|void)$/.test(token); } } RE_InputElementDivG.lastIndex= RE_InputElementRegExpG.lastIndex= 0; return out; } function cwc_set_RE(){ if (!cwc_RE){ var RE= {}; RE.WhiteSpace= '[\\x09\\x0b\\x0c \\xa0]'; RE.LineTerminator= '[\\x0a\\x0d]'; RE.Comment= '\\/\\*[\\s\\S]*?\\*\\/|\\/\\/[^\\x0a\\x0d]*|\\<\\!\\-\\-[^\\x0a\\x0d]*'; RE.IdentifierStart= '[a-zA-Z\\$\\_]|\\\\u[\\da-fA-F]{4}'; RE.IdentifierPart= RE.IdentifierStart+'|\\d'; RE.IdentifierName= '(?:'+RE.IdentifierStart+')(?:'+RE.IdentifierPart+')*'; RE.Punctuator= '\\>\\>\\>\\=?|\\=\\=\\=|\\!\\=\\=|\\<\\<\\=|\\>\\>\\=|[\\<\\>\\=\\!\\+\\*\\%\\&\\|\\^\\-]\\=|\\+\\+|\\-\\-|\\<\\<|\\>\\>|\\&\\&|\\|\\||[\\{\\}\\(\\)\\[\\]\\.\\;\\,\\<\\>\\+\\*\\%\\&\\|\\^\\!\\~\\?\\:\\=\\-]'; RE.DivPunctuator= '\\/\\=?'; RE.NumericLiteral= '0[xX][\\da-fA-F]+|(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][\\+\\-]?\\d+)?|\\.\\d+(?:[eE][\\+\\-]?\\d+)?'; RE.EscapeSequence= 'x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|0|[0-3]?[0-7]\\D|[4-7][0-7]|[0-3][0-7][0-7]|[^\\dxu]'; RE.StringLiteral= '"(?:[^\\"\\\\\\x0a\\x0d]|\\\\(?:'+RE.EscapeSequence+'))*"|' + "'(?:[^\\'\\\\\\x0a\\x0d]|\\\\(?:"+RE.EscapeSequence+"))*'"; RE.RegularExpressionLiteral= '\\/(?:[^\\x0a\\x0d\\*\\\\\\/]|\\\\[^\\x0a\\x0d])(?:[^\\x0a\\x0d\\\\\\/]|\\\\[^\\x0a\\x0d])*\\/(?:'+RE.IdentifierPart+')*'; RE.Token= RE.IdentifierName+'|'+RE.NumericLiteral+'|'+RE.Punctuator+'|'+RE.StringLiteral; RE.InputElementDivG= RE.WhiteSpace+'+|'+RE.LineTerminator+'|'+RE.Comment+ '|('+RE.Token+'|'+RE.DivPunctuator+'|'+RE.RegularExpressionLiteral+')'; RE.InputElementRegExpG= RE.WhiteSpace+'+|'+RE.LineTerminator+'|'+RE.Comment+ '|('+RE.Token+'|'+RE.RegularExpressionLiteral+'|'+RE.DivPunctuator+')'; RE.SKIP= RE.WhiteSpace+'+|'+RE.LineTerminator+'|'+RE.Comment; RE.SKIP_NO_LT= RE.WhiteSpace+'+|'+RE.Comment; RE.InputElementDivG= new RegExp(RE.InputElementDivG, 'g'); RE.InputElementRegExpG= new RegExp(RE.InputElementRegExpG, 'g'); RE.LINETERMINATOR= new RegExp('^'+RE.LineTerminator+'$'); RE.N_S_RE= new RegExp('^(?:'+RE.NumericLiteral+'|'+RE.StringLiteral+'|'+RE.RegularExpressionLiteral+')$'); RE.DOTSKIPEND= new RegExp('\\.('+RE.WhiteSpace+'+|'+RE.LineTerminator+')*$'); RE.ASSIGNOP= new RegExp('^(\\>\\>\\>\\=|\\<\\<\\=|\\>\\>\\=|[\\+\\*\\/\\%\\&\\|\\^\\-]?\\=)$'); RE.NEXTISINCDEC= new RegExp('^('+RE.SKIP_NO_LT+')*(\\+\\+|\\-\\-)'); RE.SKIPTOPAREN= new RegExp('^(('+RE.SKIP+')*\\()'); RE.SKIPTOCOLON= new RegExp('^(('+RE.SKIP+')*\\:)'); RE.SKIPTOCOMMASKIP= new RegExp('^(('+RE.SKIP+')*\\,('+RE.SKIP+')*)'); RE.PUNCDIVPUNC= new RegExp('^('+RE.Punctuator+'|'+RE.DivPunctuator+')$'); RE.IDENTIFIER= new RegExp('^'+RE.IdentifierName+'$'); RE.SKIPTOOFRAG= new RegExp('^('+RE.SKIP+')*([\\.\\[\\(])'); RE.STATEMENTTERMINATOR= new RegExp('^(;|'+RE.LineTerminator+')'); cwc_RE= RE; } } function cwc_object_type(o){ var ret= ''; if ((o==null) || ((typeof(o)!='object') && (typeof(o)!='function'))) return null; if (o instanceof Array) return ''; try{ if (o.cwc_class) return o.cwc_class; } catch(e){ } try{ if (("navigator" in o) && ("clearInterval" in o) && ("moveBy" in o) && (o.self===o.window)){ ret= 'Window'; } else if (("alinkColor" in o) && ("cookie" in o) && ("writeln" in o)){ ret= 'Document'; } else if (("pathname" in o) && ("protocol" in o) && ("target" in o)){ ret= 'Link'; } else if (("pathname" in o) && ("protocol" in o) && ("search" in o)){ ret= 'Location'; } else if (("background" in o) && ("parentLayer" in o) && ("moveAbove" in o)){ ret= 'Layer'; } else if (("hspace" in o) && ("src" in o) && ("border" in o)){ ret= 'Image'; } else if (("action" in o) && ("encoding" in o) && ("submit" in o)){ ret= 'Form'; } else if (("ownerElement" in o) && ("specified" in o)){ ret= 'Attr'; } else if (("nodeName" in o) && ("nodeType" in o) && ("nodeValue" in o)){ ret= 'Node'; } else if (("getNamedItem" in o) && ("removeNamedItem" in o) && ("setNamedItem" in o)){ ret= 'NamedNodeMap'; } else if (("cloneRange" in o) && ("compareBoundaryPoints" in o) && ("surroundContents" in o)){ ret= 'Range'; } else if (("azimuth" in o) && ("backgroundAttachment" in o) && ("pageBreakInside" in o)){ ret= 'CSS2Properties'; } else if (("primitiveType" in o) && ("getRectValue" in o) && ("getCounterValue" in o)){ ret= 'CSSPrimitiveValue'; } else if (("getPropertyCSSValue" in o) && ("getPropertyPriority" in o) && ("removeProperty" in o)){ ret= 'CSSStyleDeclaration'; } else if ( (cwc_browser_family!='msie') && (("getAllResponseHeaders" in o) && ("getResponseHeader" in o) && ("setRequestHeader" in o)) ){ ret= 'XMLHttpRequest'; } else if ( (cwc_browser_family=='msie') && (o instanceof ActiveXObject) ){ ret= 'XMLHttpRequest'; } } catch(e){ alert('error calculating object type: '+e.toString()); } try{ if (ret) o.cwc_class= ret; } catch(e){ } return ret; } function cwc_parse_url(URL){ var u; if (u= URL.match(/^(javascript\:|livescript\:)([\s\S]*)$/i)) return [ URL, u[1].toLowerCase(), u[2] ]; if (URL.match(/^\s*\#/)) return [ URL, '', '', '' ,'', '', '', '', URL ]; u= URL.match(/^([\w\+\.\-]+\:)\/\/([^\/\?\#\@]*\@)?(([^\:\/\?\#]*)(\:[^\/\?\#]*)?)([^\?\#]*)([^#]*)(.*)$/); if (u==null) return; for (var i= 0; i<u.length ; i++) if (u[i]==void 0) u[i]= '' ; u[1]= u[1].toLowerCase(); u[2]= u[2].replace(/\@$/, ''); u[3]= u[3].toLowerCase(); u[3]= u[3].replace(/\.+(:|$)/, '$1'); u[4]= u[4].toLowerCase(); u[4]= u[4].replace(/\.+$/, ''); u[5]= u[5].replace(/^\:/, ''); return u; } function cwc_parse_full_url(URL){ if (typeof(URL)=='number') URL= URL.toString(); if (URL=='about:blank') return ['', '', 'about:blank']; if (URL.match(/^(javascript|livescript)\:/i)) return ['', '', URL]; if (URL.match(/^\s*\#/)) return ['', '', URL]; if (URL=='') return ['', '', '']; var cmp, path_cmp; cmp= URL.match(/^([\w\+\.\-]+)\:\/\/([^\/\?]*)([^\?]*)(\??.*)$/); if (cmp==null) return ['', '', URL]; cmp[3]=cmp[3].replace(/\%7e/gi, '~'); path_cmp= cmp[3].match(cwc_RE_FULL_PATH); if (cmp==null || path_cmp==null) return ['', '', URL]; return [cmp[1]+"://"+cmp[2]+path_cmp[1], '', cwc_wrap_conv_decode(path_cmp[3])+cmp[4]]; } function cwc_html_escape(s){ if (s==void 0) return ''; s= s.replace(/\&/g, '&amp;'); s= s.replace(/([^\x00-\x7f])/g, function (a){ return '&#' + a.charCodeAt(0) + ';'; } ); return s.replace(/\"/g, '&quot;') .replace(/\</g, '&lt;') .replace(/\>/g, '&gt;'); } function cwc_html_unescape(s){ if (s==void 0) return ''; s= s.replace(/\&\#(x)?(\w+);?/g, function (a, p1, p2){ return p1 ? String.fromCharCode(eval('0x'+p2)) : String.fromCharCode(p2) } ); return s.replace(/\&quot\b\;?/g, '"') .replace(/\&lt\b\;?/g, '<') .replace(/\&gt\b\;?/g, '>') .replace(/\&amp\b\;?/g, '&'); } function cwc_global_replace(s, pattern, replace_function){ if (s==null) return s; var out= ''; var m1; while ((m1=s.match(pattern))!=null){ out+= s.substr(0,m1.index) + replace_function(m1); s= s.substr(m1.index+m1[0].length); } return out+s; } 