您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Provide Quick Reply on Kaskus Mobile
// ==UserScript== // @name Kaskus Mobile Quick Reply // @namespace http://userscripts.org/scripts/show/91051 // @description Provide Quick Reply on Kaskus Mobile // @author idx (http://userscripts.org/users/idx) // @version 2.7 // @dtversion 150918270 // @timestamp 1442572891205 // @include /^https?://m.kaskus.co.id/(post|thread|lastpost)/*/ // @include /^https?://fjb.m.kaskus.co.id/(lastpost|thread|post|product)/*/ // @license (CC) by-nc-sa 3.0 // @run-at document-end // // -!--latestupdate // // v2.7 - 2015-09-18 . 1442572891205 // update kaskus recaptcha Site key; // // -/!latestupdate--- // ==/UserScript== /* // // v2.6 - 2015-07-24 . 1437683007275 // update kaskus recaptcha Site key; // detect current user.Donatur; // css in_baloon; // // v2.5 - 2015-05-13 . 1431550952997 // patch css blue button; // remove origin qr-form; // change link to mobile-qr(GF); // simplify include with regex; // // v2.4 - 2015-04-21 . 1429562960309 // add include fjb mobile // // v2.3 - 2015-03-01 . 1425165905164 // fix styles bbcode buttons; // scrolltop on header-click; // Fix header styles; // Patch invalid security token, changed attribute:name // // v2.2 - 2014-07-04 . 1404492166878 // fix changed dom (avatar-wraper) // handle defect-hash callback after posting // // v2.1 - 2014-06-22 . 1403371408997 // missing char on submit post // // v2.0 - 2014-05-24 . 1400867093736 // adapting mobile-kaskus-evo // // v1.0.4 - 2014-02-08 . 1391881722727 // fix css nighmode, Thx[Prothire] // fix elastic height editor, on window resize // // more... // // v0.1.1 - 2010-11-23 // Init //------ // ###@@### // *dependency https://addons.mozilla.org/en-US/firefox/addon/59/ // *XML of User Agent http://techpatterns.com/downloads/firefox/useragentswitcher.xml // // Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License // http://creativecommons.org/licenses/by-nc-sa/3.0/deed.ms // -------------------------------------------------------- */ (function(){ var gvar = function(){}; gvar.sversion = 'v' + '2.7'; gvar.scriptMeta = { timestamp: 1442572891205 // version.timestamp ,scriptID: 91051 // script-Id ,scriptID_GF: 95 // script-Id @Greasyfork ,slug_GF: 'kaskus-mobile-quick-reply' }; /* window.alert(new Date().getTime()); */ //========-=-=-=-=--========= gvar.__DEBUG__ = !1; // development debug //========-=-=-=-=--========= const GMSTORAGE_PATH = 'GM_'; const KS = 'KEY_SAVE_'; // predefined registered key_save var OPTIONS_BOX = { KEY_SAVE_AUTHORIZED_USERS: [''] ,KEY_SAVE_AVATARS_USERS: [''] ,KEY_SAVE_WIDE_THREAD: ['0'] ,KEY_SAVE_TMP_TEXT: [''] // temporary text ,KEY_SAVE_TMP_TITLE: [''] // temporary text-title ,KEY_SAVE_TOGGLE_MENUS: ['0'] ,KEY_SAVE_TOGGLE_PLUGINS: ['0'] }; //========= Global Var Init ==== var GM_XHR = function(){ this.uri = null; this.pid = null; this.returned= null; this.cached= false; var _gmxhr = this; this.request= function(cdata,met,callback){ if( !_gmxhr.uri ) return; met=(isDefined(met) && met ? met:'GET'); cdata=(isDefined(cdata) && cdata ? cdata:null); if(typeof(callback)!='function') callback=null; var pReq_xhr = { method: met, url: _gmxhr.uri + (_gmxhr.cached ? '':(_gmxhr.uri.indexOf('?')==-1?'?':'&rnd=') + Math.random().toString().replace('0.','')), headers: {'Content-Type': 'application/x-www-form-urlencoded'}, data: (isString(cdata) ? cdata : ''), onload: function(ret) { if(callback!=null) callback(ret, _gmxhr); else _gmxhr.returned = ret; } }; //return NAT_xmlhttpRequest(pReq_xhr); // somehow this is not work in webkit return GM_xmlhttpRequest(pReq_xhr); } return this; }; var Dom= { g: function(el) { if(!el) return false; return ( isString(el) ? document.getElementById(el) : el ); }, add: function(el, dest) { var el = this.g(el); var dest = this.g(dest); if(el && dest) dest.appendChild(el); }, remove: function(el) { var el = this.g(el); if(el && el.parentNode) el.parentNode.removeChild(el); }, Ev: function() { if (window.addEventListener) { return function(el, type, fn, phase) { phase=(phase ? phase : false); if('object' === typeof el && el) this.g(el).addEventListener(type, function(e){fn(e);}, phase); }; }else if (window.attachEvent) { return function(el, type, fn) { var f = function() { fn.call(this.g(el), window.event); }; this.g(el).attachEvent('on' + type, f); }; } }(), Evs: function(node, types, f){ var parts = types.split(' '); for(var i=0; i<parts.length; ++i) Dom.Ev(node, parts[i], f); }, remEv: function() { if (window.removeEventListener) { return function(el, type, fn, phase) { phase=(phase ? phase : false); if(typeof(el)=='object') this.g(el).removeEventListener(type, function(e){fn(e);}, phase); }; } }() }; var $D=function (q, root, single) { var el; if (root && typeof root == 'string') { root = $D(root, null, true); if (!root) { return null; } } if( !q ) return false; if ( typeof q == 'object') return q; root = root || document; if (q[0]=='/' || (q[0]=='.' && q[1]=='/')) { if (single) { return document.evaluate(q, root, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; } return document.evaluate(q, root, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); } else if (q[0]=='.') { el = root.getElementsByClassName(q.substr(1)); return single ? el[0] : el; } else { return root.getElementById( (q[0]=='#' ? q.substr(1):q.substr(0)) ); } return root.getElementsByTagName(q); }; var $$=function(q, p){ return (p || document).querySelector(q); } // native/generic XHR needed for Multifox, failed using GM_xmlhttpRequest. var NAT_xmlhttpRequest = function (obj) { var request = new XMLHttpRequest(); request.onreadystatechange = function () { if (obj.onreadystatechange) { obj.onreadystatechange(request); }; if (request.readyState == 4 && obj.onload) { obj.onload(request); } } request.onerror = function () { if (obj.onerror) { obj.onerror(request); } } try { request.open(obj.method, obj.url, true); if (obj.headers) { for (name in obj.headers) { request.setRequestHeader(name, obj.headers[name]); } } request.send(obj.data); return request; } catch (e) { if (obj.onerror) { obj.onerror({ readyState: 4, responseHeaders: '', responseText: '', responseXML: '', status: 403, statusText: 'Forbidden' }); }; return; } }; // Redefine GM_addGlobalStyle/GM_addGlobalScript with a better routine var GM_addGlobalScript = function (a, b, c) { var d = createEl("script", { type: "text/javascript"}); if (isDefined(b) && isString(b)) d.setAttribute("id", b); if (a.match(/^https?:\/\/.+/)) d.setAttribute("src", a); else d.appendChild(createTextEl(a)); if (isDefined(c) && c) { document.body.insertBefore(d, document.body.firstChild) } else { var e = document.getElementsByTagName("head"); if (isDefined(e[0]) && e[0].nodeName == "HEAD") window.setTimeout(function () { e[0].appendChild(d) }, 100); else document.body.insertBefore(d, document.body.firstChild) } return d }; var GM_addGlobalStyle=function(css, id) { var sel=createEl('style',{type:'text/css'}); if(isDefined(id) && isString(id)) sel.setAttribute('id', id); sel.appendChild(createTextEl(css)); var hds = document.getElementsByTagName('head'); if(hds && hds.nodeName=='HEAD') window.setTimeout(function() { hds[0].appendChild(sel); }, 100); else document.body.insertBefore(sel,document.body.firstChild); return sel; }; var _TEXTCOUNT = { init: function( target ){ var cUL, _tc = _TEXTCOUNT; _tc.limitchar = (gvar.thread_type == 'group' ? 1000 : 10000); _tc.$editor = $D('#'+gvar.tID); _tc.$target = ("string" == typeof target ? $D(target,null,1) : target); if( _tc.$target ){ addClass('ffc', _tc.$target); _tc.$target.value = _tc.count_it(_tc); } _tc.do_watch(_tc); }, count_it: function(_tc){ return (_tc.limitchar - _tc.$editor.value.length); }, do_watch: function(_tc){ gvar.sTryTCount = window.setInterval(function() { _tc.$target.value = _tc.count_it(_tc); }, 600); }, dismiss: function(){ var _tc = _TEXTCOUNT; gvar.sTryTCount && clearInterval( gvar.sTryTCount ); _tc.$target && removeClass('ffc', _tc.$target); } }; var _TEXT = { e : null, eNat : null, content: "", cursorPos: [], last_scrollTop: 0, insert: { tagBIU: function(el){ var BBCode = ("string" !== typeof el && el ? getAttr('data-bb', el) : el); if( !BBCode ) return !1; _TEXT.init(); _TEXT.wrapValue(BBCode, '' ); }, // action insert font/color/size/list tagHibrid: function(tag, value, $caleer){ _TEXT.init(); if(value) _TEXT.wrapValue(tag, value); else _TEXT.wrapValue(tag); if( (["FONT","COLOR","SIZE"].indexOf(tag) != -1) && $caleer ){ showhide( closest($caleer, {'tag':'ul'}), false); } _TEXT.pracheck(); }, tagCustom: function (el){ _TEXT.init(); var BBCode = ( "string" !== typeof el && el ? getAttr('data-bb', el) : el); var text, prehead, tagprop, ptitle, selected, ret, prmpt; var wrapped_bb = 'INDENT,QUOTE,CODE,HTML,PHP'.split(","); var endFocus = function(){ _TEXT.focus(); return}; if("undefined" == typeof BBCode) return endFocus(); selected = _TEXT.getSelectedText(); tagprop = ''; if( wrapped_bb.indexOf(BBCode) !== -1 ) _TEXT.wrapValue( BBCode ); else{ switch(BBCode){ case "SPOILER": prmpt = prompt('Enter the TITLE of your Spoiler:', '' ); prmpt = (prmpt ? prmpt : ' '); _TEXT.wrapValue(BBCode, prmpt); break; case "STRIKE": var strikeEm = function(_text){ var chrs = _text.split(''), r=''; for(var i=0, iL=chrs.length; i<iL; i++) r += chrs[i]+'\u0336'; return String(r) }; text = (!selected ? prompt('Enter Text to strikethrough:', 'coret-di-sini') : selected); ret = (text ? strikeEm(text) : ""); prehead = [0, text.length*2]; if( !selected ) _TEXT.setValue( ret, prehead ); else _TEXT.replaceSelected( ret, prehead ); return endFocus(); break; default: // BB Handler: // [URL,IMG, EMAIL,NOPARSE,TRANSPARENT, YOUTUBE,VIMEO,SOUNDCLOUD] var noPrompts = 'TRANSPARENT,NOPARSE,EMAIL'.split(","); var is_mediaembed = function(media, text){ var rx, rxNaCd; text = trimStr ( text ); switch(media){ case "YOUTUBE": rx = text.match(/\byoutube\.com\/(?:watch\?v=)?(?:v\/)?([^&]+)/i); rxNaCd = !/^[\d\w-]+$/.test(text); break; case "SOUNDCLOUD": rx = text.match(/\bsoundcloud\.com\/tracks\/(\d+)/i); rxNaCd = !/^[\d\w]+$/.test(text); break; case "VIMEO": rx = text.match(/\bvimeo\.com\/(\d+)/i); rxNaCd = !/^[\d\w]+$/.test(text); break; } if( rx && rx[1] ) text = rx[1]; else if( rxNaCd ) text = null; return text; }; var is_youtube_link = function(text){ var rx; text = trimStr ( text ); clog( text); if( rx = text.match(/\byoutube\.com\/(?:watch\?v=)?(?:v\/)?([^&]+)/i) ){ text = ( rx ? rx[1] : ''); }else if( !/^[\d\w-]+$/.test(text) ) text = false; clog("ytlink? text="+text); return text; }; var get_prompt_text = function(BBCode_){ var ret = {tagprop:'', text:''}; switch(BBCode){ case 'URL': ret.text = prompt('Please enter the URL of your link:', 'http://'); ret.tagprop = ret.text; break; case 'IMG': ret.text = prompt('Please enter the URL of your image:', 'http://'); break; case 'YOUTUBE': ret.text = prompt('Please enter the Youtube URL or just the ID, \nhttp:/'+'/www.youtube.com/watch?v=########', ''); break; case 'VIMEO': ret.text = prompt('Please enter Vimeo URL Link, \nhttps:/'+'/vimeo.com/#######', ''); break; case 'SOUNDCLOUD': ret.text = prompt('Please enter [Soundcloud widget code, ID, API-URL]\neg.https:/'+'/api.soundcloud.com/tracks/#######', ''); break; } return ret; }; if( !selected ){ var prompt_text = get_prompt_text(BBCode); text = prompt_text.text; tagprop = prompt_text.tagprop; if( !text && noPrompts.indexOf(BBCode) === -1 ){ return endFocus(); }else{ // good-togo if( noPrompts.indexOf(BBCode) !== -1 ){ if( BBCode=='TRANSPARENT' ){ tagprop = BBCode; BBCode = "COLOR"; } } else{ if( ['YOUTUBE','SOUNDCLOUD','VIMEO'].indexOf(BBCode) !== -1 ){ text = is_mediaembed(BBCode, text); text = (text ? text : null); }else if(BBCode=='URL' || BBCode=='IMG') text = (isLink(text) ? text : null); // prompting text check... if(text==null) return endFocus(); } prehead = [('['+BBCode + (tagprop!=''?'='+tagprop:'')+']').length, 0]; prehead[1] = (prehead[0]+text.length); _TEXT.setValue( '['+BBCode + (tagprop!=''?'='+tagprop:'')+']'+text+'[/'+BBCode+']', prehead ); } return endFocus(); } // end selected=='' else{ text = selected; // precheck of this BBCode upon selection if selected is a proper link if( ["URL","IMG"].indexOf(BBCode) !== -1 ){ tagprop = (BBCode == 'URL' ? trimStr(text) : ''); var autotrim_selected = trimStr( selected ); if( !isLink(autotrim_selected, true) ){ var prompt_text = get_prompt_text(BBCode); text = prompt_text.text; tagprop = prompt_text.tagprop; text = (text ? trimStr(text) : null); if( BBCode == 'IMG' ) selected = (text ? text : selected); } if(text==null) return endFocus(); prehead = [('['+ BBCode + (tagprop!=''?'='+tagprop:'')+']').length, 0]; prehead[1] = (prehead[0]+selected.length); _TEXT.replaceSelected( '['+BBCode + (tagprop!=''?'='+tagprop:'')+']'+selected+'[/'+BBCode+']', prehead ); return endFocus(); } else{ if( BBCode == 'TRANSPARENT' ){ tagprop = BBCode; BBCode = "COLOR"; } _TEXT.wrapValue( BBCode, (tagprop!='' ? tagprop:'') ); } } break; } } }, // deprecated.... tagCustom_OLD: function(tag){ _TEXT.init(); var text, prehead, tagprop, ptitle, selected, ret; var pTag={ 'quote':'QUOTE','code' :'CODE','html' :'HTML','php' :'PHP' ,'link' :'URL', 'picture':'IMG' ,'spoiler' :'SPOILER','transparent':'COLOR','noparse' :'NOPARSE', 'youtube' :'YOUTUBE' ,'strike' :'' }; var endFocus = function(){ _TEXT.focus(); return}; if( isUndefined(pTag[tag]) ) return endFocus(); selected = _TEXT.getSelectedText(); tagprop = ''; if(tag=='quote' || tag=='code' || tag=='html' || tag=='php'){ _TEXT.wrapValue( tag ); }else if(tag=='spoiler'){ var title = prompt('Please enter the TITLE of your Spoiler:', '' ); if(title==null) return endFocus(); title = (title ? title : ' '); _TEXT.wrapValue( 'spoiler', title ); }else if(tag=='strike'){ var strikeEm = function(t){ var pr = t.split(''), r=''; for(var i=0;i<pr.length;i++) r+=pr[i]+'\u0336'; return String(r) }; text = (selected!= '' ? selected : prompt('Please enter Text to strikethrough:', 'strikethrough') ); if(text==null) return endFocus(); ret = strikeEm(text); prehead = [0,(text.length*2)]; if(selected=='') _TEXT.setValue( ret, prehead ); else _TEXT.replaceSelected( ret, prehead ); return endFocus(); }else{ var is_youtube_link = function(text){ text = trimStr( text ); var rx; if( rx = text.match(/\byoutube\.com\/(?:watch\?v=)?(?:v\/)?([^&]+)/i) ){ text = ( rx ? rx[1] : ''); }else if( !/^[\d\w-]+$/.test(text) ) text = false; return text; }; if(selected==''){ switch(tag){ case 'transparent': tagprop = tag; text = prompt('Please enter the Text to be transparent:', 'text hantu'); break; case 'noparse': text = prompt('Please enter Text or/with Tags to be no parsed:', '[code]-CODE-[/code]'); break; case 'link': text = prompt('Please enter the URL of your link:', 'http://'); tagprop = text; break; case 'picture': text = prompt('Please enter the URL of your image:', 'http://'); break; case 'youtube': text = prompt('Please enter the Youtube URL or just the ID, \nhttp:/'+'/www.youtube.com/watch?v=########', ''); break; } if(text==null) return endFocus(); if(tag=='youtube') text = is_youtube_link(text); if(tag=='link' || tag=='picture') text = (isLink(text) ? text : null); if( !text ){ return endFocus(); }else{ prehead = [('['+pTag[tag] + (tagprop!=''?'='+tagprop:'')+']').length, 0]; prehead[1] = (prehead[0]+text.length); _TEXT.setValue( '['+pTag[tag] + (tagprop!=''?'='+tagprop:'')+']'+text+'[/'+pTag[tag]+']', prehead ); } return endFocus(); } // end selected=='' tagprop = (tag=='transparent' ? 'transparent' : ''); if(tag=='link'||tag=='image'||tag=='youtube'){ ptitle=(tag=='youtube' ? ['Please enter the Youtube URL or just the ID, \nhttp:/'+'/www.youtube.com/watch?v=########',''] : ['Please enter the URL of your '+tag+':','http://']); text = prompt( ptitle[0], ptitle[1] ); if(text==null) return endFocus(); switch(tag){ case 'link': tagprop = text; text = selected; break; case 'youtube': text = is_youtube_link(text); if(!text) return endFocus(); break; } prehead = [('['+ pTag[tag] + (tagprop!=''?'='+tagprop:'')+']').length, 0]; prehead[1] = (prehead[0]+text.length); _TEXT.replaceSelected( '['+pTag[tag] + (tagprop!=''?'='+tagprop:'')+']'+text+'[/'+pTag[tag]+']', prehead ); return endFocus(); } _TEXT.wrapValue( pTag[tag], (tagprop!='' ? tagprop:'') ); } } }, init: function() { this.e = $D('#'+gvar.tID); this.content = this.e.value; this.cursorPos = this.rearmPos(); // [start, end] }, rearmPos: function(){ return this.getCaretPos(); }, subStr: function(start, end){ return this.content.substring(start, end);}, set_title: function(text){ var tgt = $D('//div[@id="wrp_title"]/input[@name="title"]',null,1); tgt && (tgt.value = text); }, set_reason: function(text){ var tgt = $D('//div[@id="wrp_reason"]/input[@name="reason"]',null,1); if( tgt ){ tgt.value = text; showhide(tgt.parentNode, 1, 'block'); } }, set: function(value){ this.content = value; // track latest scrollTop, doing val() might reset it to 0 this.last_scrollTop = Dom.g(gvar.tID).scrollTop; $D('#'+gvar.tID).value = this.content; this.init(); this.pracheck(); }, wrapValue : function(tag, title){ var bufValue, st2, start = this.cursorPos[0], end = this.cursorPos[1]; tag = tag.toUpperCase(); bufValue = this.subStr(0, start) + '['+tag+(title?'='+title:'')+']' + (start==end ? '' : this.subStr(start, end)) + '[/'+tag+']' + this.subStr(end, this.content.length); this.set(bufValue); st2 = (start + ('['+tag+(title?'='+title:'')+']').length); clog('s,e=' + start + ','+end); clog(st2 + ';' + (st2+this.subStr(start, end).length)); this.caretChk( st2, (st2+this.subStr(start, end).length) ); return bufValue; }, add: function(text){ // used on fetch post only var newline = '\n\n'; if( $D('#'+gvar.tID).value != "" ) this.content+= newline; $D('#'+gvar.tID).value = ( this.content + text ); this.pracheck(false); window.setTimeout(function(){ _TEXT.lastfocus(); }, 200); }, // ptpos stand to puretext position [start, end] setValue : function(text, ptpos){ var bufValue, start = this.cursorPos[0], end=this.cursorPos[1]; if(isUndefined(ptpos)) ptpos=[text.length,text.length]; if(start!=end) { this.replaceSelected(text,ptpos); return; } bufValue = this.subStr(0, start) + text + this.subStr(start, this.content.length); this.set( bufValue ); this.caretChk( (start+ptpos[0]), (start+ptpos[1]) ); return bufValue; }, replaceSelected : function(text, ptpos){ var bufValue, start=this.cursorPos[0], end=this.cursorPos[1]; if(start==end) return; bufValue = this.subStr(0, start) + text + this.subStr(end, this.content.length); this.set(bufValue); this.caretChk( (start+ptpos[0]), (start+ptpos[1]) ); }, pracheck: function(foc){ if( isUndefined(foc) ) foc = true; _TEXT.setElastic(gvar.maxH_editor); el = $D('.QxM',null,1); if( $D('#'+gvar.tID).value !="" ) showhide(el, true); else showhide(el, false); foc && _TEXT.focus(); }, focus: function(){ window.setTimeout(function(){ $D('#'+gvar.tID).focus() }, 10); }, clear: function(dofocus){ _TEXT.set(''); dofocus && _TEXT.focus(); }, lastsroll: function (){ // scroll to bottom editor line !_TEXT.e && (_TEXT.e = $D('#'+gvar.tID)); try{ _TEXT.e &&_TEXT.e.scrollTop(_TEXT.e.scrollHeight); } catch(e){} }, lastfocus: function (){ var eText, nl, pos, txt = String($D('#'+gvar.tID).value); // use the actual content pos = txt.length; nl = (txt.split('\n')).length; pos+= (nl * 2); eText = Dom.g(gvar.tID); try{ if( eText.setSelectionRange ) { _TEXT.focus(); eText.setSelectionRange(pos,pos); } }catch(e){} _TEXT.oflow && (_TEXT.oflow == 'auto') && window.setTimeout(function(){ _TEXT.focus(); _TEXT.lastsroll() } , 310); }, getSelectedText : function() { return (this.cursorPos[0]==this.cursorPos[1]? '': this.subStr(this.cursorPos[0], this.cursorPos[1]) ); }, getCaretPos : function() { var ret=[0,0], el = Dom.g(gvar.tID); if(el && ('selectionStart' in el) && ('selectionEnd' in el) ){ if(el.value.length > 0) ret = [el.selectionStart, el.selectionEnd]; } return ret; }, setCaretPos : function (pos,end){ if(isUndefined(end)) end = pos; if(Dom.g(gvar.tID).setSelectionRange) { // Firefox, Opera and Safari this.focus(); Dom.g(gvar.tID).setSelectionRange(pos,end); } }, setElastic: function(max,winrez){ var a, tid=gvar.tID; function setCols_Elastic(el, max){ el && el.setAttribute("cols", Math.floor(el.clientWidth/7)); _TEXT.setRows_Elastic(max) } a = Dom.g(tid); _TEXT.oflow='hidden'; a.setAttribute('style', 'visibility:hidden; overflow:'+_TEXT.oflow+';letter-spacing:0;line-height:14pt;' +(max?'max-height:'+(max-130)+'pt;':'') ); gvar.wtrackY={}; if( !winrez ){ // doesnt work w/ opera? Dom.Ev(a, 'paste', function(e){ var el = e.target||e; gvar.wtrackY['before'] = window.scrollY gvar.wtrackY['editor_overflow'] = (_TEXT.oflow != 'hidden'); window.setTimeout(function(){ setCols_Elastic(el, max); gvar.wtrackY['after'] = window.scrollY; if(gvar.wtrackY['after'] != gvar.wtrackY['before']){ window.scrollTo(0, gvar.wtrackY['before']); if(!gvar.wtrackY['editor_overflow']){ _TEXT.init(); window.setTimeout(function(){ _TEXT.lastfocus() }, 222); } } }, 10); return true; }, false); Dom.Ev(a, 'keyup', function(e){ setCols_Elastic((e.target||e), max) }); } setCols_Elastic(a, max); //110 }, setRows_Elastic: function(max){ var a = Dom.g(gvar.tID), c=a.cols, b=a.value.toString(), h; b=b.replace(/(?:\r\n|\r|\n)/g,"\n"); for(var d=2,e=0,f=0;f<b.length;f++){ var g=b.charAt(f);e++;if(g=="\n"||e==c){d++;e=0} } h=(d*14); a.setAttribute("rows",d); a.style.height=h+"pt"; _TEXT.oflow = (max && (d*14>(max-130)) ? 'auto':'hidden'); a.style.setProperty('overflow', _TEXT.oflow, 'important'); a.style.setProperty('visibility', 'visible'); }, /*134*/ caretChk: function(s,e){ s && e && _TEXT.setCaretPos(s, e); // restore scrollTop on overflow mode:scroll if(_TEXT.last_scrollTop && _TEXT.overflow!='hidden'){ Dom.g(gvar.tID).scrollTop = (_TEXT.last_scrollTop+1); } } }; // _TOGGLER.capcay [clear_editor,auth_noneed_cpcy,whattheheck,response_field,capcay] var _TOGGLER = { clear_editor: function(flag){ if("undefined" == typeof flag) flag = true; showhide($D('.QxM',null,1), flag); }, auth_noneed_cpcy: function(flag){ var el, chkauth = $D('#chk-auth'); if("undefined" == typeof flag) flag = isChecked(chkauth); el = $D('#recaptcha_response_field'); chkauth.checked = flag; if( flag ){ el.value = (function(c){ var ret = ''; for(var i=0; i<27; ++i) ret+=c; return ret; })('#'); //setAttr('disabled', 'disabled', el); setAttr('readonly', 'readonly', el); _TOGGLER.gnotice(false, '', $D('.g_notice', $D('#wrp_cpcy'), 1)); } else{ el.value = ''; //el.removeAttribute('disabled'); el.removeAttribute('readonly'); el.focus(); } showhide($D('#recaptcha_image'), !flag); showhide($D('#recaptcha_instructions_image'), !flag); return flag; }, whattheheck: function(){ showhide($D('.recaptcha-auth',null,1)); $D('#recaptcha_response_field').focus(); }, response_field: function(isGood, dofocus){ var thr, rrf = $D('#recaptcha_response_field'), p = (rrf ? rrf.parentNode : null); thr = $D('.btn-thr',null,1); if( isGood ){ thr && addClass('bling', thr); p && removeClass('error', p); _TOGGLER.gnotice(false, '', $D('.g_notice', $D('#wrp_cpcy'), 1)); } else{ thr && removeClass('bling', thr); p && addClass('error', p); $D('#hidrecap_reload_btn').click(); } showhide($D('.stts',null,1), isGood); dofocus && window.setTimeout(function(){ rrf && rrf.focus() }, 123); }, gnotice: function(flag, text, el){ if("undefined" == typeof el) el = $D('.g_notice',null,1); text && (el.innerHTML = entity_encode(text)); showhide(el, flag, (flag ? 'block' : '')); }, isolate_editor: function(flag){ var el, iel, tgt, par = $D('.form-input',null,1); if(flag){ if( tgt = $D('.liner', par) ) for(var i=0; i<tgt.length; ++i){ el = createEl('div', {'class':'layerin'}); prepend(tgt[i], el); addClass('layered', tgt[i]); } } else{ while( tgt = $D('.layerin', par, 1) ){ removeClass('layered', tgt.parentNode); Dom.remove(tgt); } } }, baloon_set: function(text, iserror){ var tgt = $D('.box-cnt', $D('#wrp_act'), 1); tgt && (tgt.innerHTML = text); if( !iserror ) addClass('sip', tgt); else addClass('ups', tgt); }, baloon_save: function(flag){ var tgt = $D('#wrp_act'); if("undefined" == typeof flag) flag = !isVisible(tgt); showhide(tgt, flag); _TOGGLER.isolate_editor( flag ); removeClass('sip ups', tgt); if( !flag ){ if(gvar.reqPID && "undefined" != typeof gvar.reqPID['_editpost_']) delete gvar.reqPID['_editpost_']; } }, showhide_capcay: function(flag){ var el, par, tgt = $D('#wrp_cpcy'); if("undefined" == typeof flag) flag = !isVisible(tgt); showhide(tgt, flag); removeClass('bling', $D('.btn-thr',null,1)); _TOGGLER.isolate_editor( isVisible($D('#wrp_cpcy')) ); if( !gvar.user.isDonatur ){ if( !isVisible(tgt) ){ // baloon-closed if( !isChecked($D('#chk-auth')) ){ el = $D('#sbutton'); removeClass('blue', el); addClass('btn-red', el); } //_TOGGLER.response_field(true); _TOGGLER.gnotice(false, '', $D('.g_notice', $D('#wrp_cpcy'), 1)); _TEXT.lastfocus(); } else{ // baloon-opened. } } // isdonat } }; //=== rSRC var rSRC = { mCls: ['mBT','mDM','<li class="mSP">---------------</li>'], getTPL: function(){ return '' +'<div class="form-input reply-input">' +'<div class="legend qrtitle">' + '<span>mQuick <em id="qrtitle_mode">Reply</em> <a target="_blank" href="https://gf.qytechs.cn/scripts/'+gvar.scriptMeta.scriptID_GF.toString()+(gvar.scriptMeta.slug_GF ? '-'+gvar.scriptMeta.slug_GF:'')+'?ref=m-kaskus" class="mqrlink">'+gvar.sversion+'</a></span>' +'</div>' +'<form action="" name="postreply" id="mqrform" method="post">' +'<fieldset>' +'<div class="in-txt liner" id="wrp_title" '+(gvar.settings.toggle_menus ? '' : 'style="display:none;"')+'>' + '<input type="text" name="title" maxlength="85" placeholder="Title" />' + '<span class="Qxc tgctr" style="display:none;" title="Clear Title">×</span>' +'</div>' +'<div class="in-txt liner" id="wrp_control">' + rSRC.getControlers() +'</div>' +'<div class="in-txt liner" id="wrp_msg">' + '<textarea name="message" id="'+gvar.tID+'" placeholder="Body"></textarea>' + '<span class="QxM tgctr" style="display:none;" title="Clear Editor">×</span>' + '<div class="chr">' + '<span class="stts btn bling" style="display:none;"><i class="throb"></i> submitting..</span>' + '<input readonly="readonly" disabled="disabled" size="3" value="10000" id="txtLen" />' + '</div>' +'</div>' +'<div class="in-txt liner" id="wrp_reason">' + '<input type="text" name="reason" placeholder="Reason" title="Reason" />' +'</div>' +'<div class="in_balonbox" id="wrp_cpcy" style="display:none;">' + rSRC.getBtBaloon() + '<label class="cpcy-title">Verification</label>' + '<span class="tgctr btn btn-thr"><i class="throb"></i> </span>' + '<span class="Qcp tgctr" title="Close">×</span>' + '<div class="mqr-cpcy">' + rSRC.getCUSTOM_ReCapcay() + '</div>' +'</div>' // in_cpcy_boxed +'<div class="in_balonbox" id="wrp_act" style="display:none;">' + rSRC.getBtBaloon() + '<label class="box-title">Saving</label>' + '<span class="Qsv tgctr" title="Close">×</span>' + '<div class="box-cnt"><i class="throb-bl"></i>Loading...</div>' +'</div>' +'<div class="r">' // fake capcay.controller [create,reload] + '<input id="hidrecap_btn" value="reCAPTCHA" type="button" onclick="showRecaptcha();" class="ninja" />' + '<input id="hidrecap_reload_btn" value="reload_reCAPTCHA" type="button" onclick="Recaptcha.reload();" class="ninja" />' + '<input type="hidden" name="psecuritytoken" id="mqr_securitytoken" value="" />' + '<input type="hidden" name="preview" value="Preview post" />' + '<div class="in-btn action">' // [btn-red,blue] + '<input type="submit" id="sbutton" class="btn '+(gvar.user.isDonatur ? 'blue' : 'btn-red')+'" value="Post Reply" name="sbutton" />' + '<input type="button" id="cbutton" class="btn btn-grey" value="Cancel" />' + '<div class="sayapkanan liner">' + '<input id="chk_fixups" type="checkbox" '+(gvar.settings.widethread ? 'checked="checked"':'')+' />' + '<label title="Wider Thread" for="chk_fixups">Expand</label>' + '</div>' + '</div>' +'</div>' // r +'</fieldset>' +'</form>' +'</div>' // form-input ; }, getBtBaloon: function(){ return '' + '<div class="center" style="position:absolute; bottom:0; left:46%; margin-bottom:-20px; font-size:20px; color:#ddd;">▼</div>' ; }, getCUSTOM_ReCapcay: function(){ return '' +'<div class="g_notice qrerror"></div>' +'<div id="recaptcha_image" style="width:300px; height: 57px;min-height:57px; display:block;"><img style="height:57px; width:300px;"/></div>' +'<div class="recaptcha-main">' +'<label for="recaptcha_response_field" style="width:100%!important; float:none!important;">' + '<span class="recaptcha_only_if_image" id="recaptcha_instructions_image"><strong>Please Insert Capcay</strong></span>' + '<span id="recaptcha_challenge_field_holder" style="display: none;"></span>' + '<div class="in-txt">' + '<input id="recaptcha_response_field" name="recaptcha_response_field" autocomplete="off" type="text" />' + '<div class="recaptcha-buttons">' + '<a title="Get a new challenge" href="javascript:Recaptcha.reload()" id="recaptcha_reload_btn"><span>Reload reCapcay</span></a>' + '<a title="Help" href="javascript:Recaptcha.showhelp()" id="recaptcha_whatsthis_btn"><span>Help</span></a>' //+ '<a title="What the heck.." href="javascript:" id="recaptcha_stg"><span>Wth</span></a>' + '</div>' // recaptcha-buttons + '</div>' +'</label>' +'<div class="recaptcha-auth" style="display:none;">' + '<input type="checkbox" id="chk-auth" value="1" />' + '<label for="chk-auth">I dont need captcha to post. (Donatur)</label>' +'</div>' +'</div>' //recaptcha-main +''; }, menuFont: function(id){ var li_cls = rSRC.mCls, buff, lf; // item = ['Arial','Arial Black','Arial Narrow','Book Antiqua','Century Gothic','Comic Sans MS','Courier New','Georgia','Impact','Lucida Console','Times New Roman','Trebucher','Verdana'] item = ['Arial','Georgia','Arial Black','Impact','Arial Narrow','Lucida Console','Book Antiqua','Times New Roman','Century Gothic','Trebuchet MS','Comic Sans MS','Verdana','Courier New']; lf = item.length; buff='<li class="'+li_cls[0]+' '+li_cls[0] + id + ' fonts '+li_cls[1]+'"><a title="Fonts" href="javascript:;">F</a><ul>'; for(var i=0; i<lf; i++) buff+= '' +'<li class="'+li_cls[0]+' '+li_cls[0] +id+ ' font-'+item[i].toLowerCase().replace(/\s/gi,'')+'">' +'<a title="'+item[i]+'" class="ev_font" href="javascript:;">'+item[i]+'</a></li>' ; buff+='</ul></li>'; return buff; }, menuSize: function(id){ var li_cls = rSRC.mCls, buff; buff='<li class="'+li_cls[0]+' '+li_cls[0] + id + ' size '+li_cls[1]+'"><a title="Size" href="javascript:;">Size</a><ul>'; for(var i=1; i<=7; i++) buff+='<li class="'+li_cls[0]+' '+li_cls[0] + id + '-1 size-'+i+'"><a title="'+i+'" class="ev_size" href="javascript:;">'+i+'</a></li>'; buff+='</ul></li>'; return buff; }, menuColor: function(id){ var li_cls = rSRC.mCls, buff, capt, kolors = rSRC.getSetOf('color'); buff='<li class="'+li_cls[0] + ' ' + li_cls[0] + id + ' color ' + li_cls[1]+'"><a title="Colors" href="javascript:;">Colors</a>'; buff+='<ul class="mBT'+id+'-wrapper">'; for(hex in kolors){ capt = kolors[hex]; buff+='<li class="'+li_cls[0] +'"><a title="'+capt+'" class="ev_color" style="width:0; background-color:'+hex+'" href="javascript:;">'+capt+'</a></li>'; } buff+='</ul></li>'; return buff; }, menuGen: function(mnuData){ var mCls = rSRC.mCls; var mnu, addcls, buff = '', cls_sp = "markItUpSeparator"; for(var i=0, iL=mnuData.length; i<iL; i++){ mnu = mnuData[i]; if( mnu["id"] ){ if( "function" == typeof mnu["cb"] ) buff += mnu["cb"]( mnu["id"] ); else buff += '' +'<li class="'+mCls[0]+' '+mCls[0]+mnu["id"]+'">' +'<a href="javascript:;" title="'+mnu["title"]+'" class="'+mnu["class"]+'"' +(mnu["bb"] ? ' data-bb="'+mnu["bb"]+'"' : '') +(mnu["shortcut"] && mnu["shortcut"]["key"] && mnu["shortcut"]["csa"] ? '' +' data-shortcut=\'{"key":"'+mnu["shortcut"]["key"]+'","csa":"'+mnu["shortcut"]["csa"]+'"}\'' : '' // no-shortcut ) +'></a>' +'</li>' ; } else{ addcls = (mnu["class"] ? mnu["class"] : ""); if( addcls ) buff += mCls[2].replace(cls_sp, cls_sp+" "+addcls); else buff += mCls[2]; } } return buff; }, _menuTitleToggler: function(){ return '' +'<li>' + '<span class="Qct tgctr btn_stg'+(gvar.settings.toggle_menus ? ' active':'')+'" title="Toggle Title Message"></span>' +'</li>' ; }, getControlers: function(){ var _sp = rSRC.mCls[2], lc=rSRC.mCls[0], BTN = rSRC.getSetOf('button'); return '' + '<div class="mktH">' + "<ul>" + rSRC._menuTitleToggler() + rSRC.menuGen([ {id:null}, // spacer {id:1, 'class': 'ev_biu', bb: 'B', title: 'Bold [Ctrl+B]', shortcut: {key: 'B', csa: 'ctrl'}}, {id:2, 'class': 'ev_biu', bb: 'I', title: 'Italic [Ctrl+I]', shortcut: {key: 'I', csa: 'ctrl'}}, {id:3, 'class': 'ev_biu', bb: 'U', title: 'Underline [Ctrl+U]', shortcut: {key: 'U', csa: 'ctrl'}}, {id:null}, // spacer {id:4, 'class': 'ev_align', bb: 'LEFT', title: 'Align Left'}, {id:5, 'class': 'ev_align', bb: 'CENTER', title: 'Align Center [Ctrl+E]', shortcut: {key: 'E', csa: 'ctrl'}}, {id:6, 'class': 'ev_align', bb: 'RIGHT', title: 'Align Right [Ctrl+R]', shortcut: {key: 'R', csa: 'ctrl'}}, {id:null}, // spacer {id:7, 'class': 'ev_list', bb: 'LIST-bullet', title: 'Bulleted list'}, {id:8, 'class': 'ev_list', bb: 'LIST-numeric', title: 'Numeric list'}, // {id:9, 'class': 'ev_indent', bb: 'INDENT', title: 'Increase Indent'}, {id:null}, // spacer {id:11, 'class': 'ev_custom', bb: 'URL', title: 'Insert Link'}, // {id:13, 'class': 'ev_custom', bb: 'EMAIL', title: 'Insert Email Link'}, {id:14, 'class': 'ev_custom', bb: 'IMG', title: 'Picture'}, {id:null}, // spacer {id:15, 'class': 'ev_custom', bb: 'QUOTE', title: 'Wrap [QUOTE] around text'}, {id:16, 'class': 'ev_custom', bb: 'CODE', title: 'Wrap [CODE] around text'}, {id:50, 'class': 'ev_custom', bb: 'HTML', title: 'Wrap [HTML] around text'}, {id:51, 'class': 'ev_custom', bb: 'PHP', title: 'Wrap [PHP] around text'}, {id:null}, // spacer {id:95, 'class': 'ev_color', cb: rSRC.menuColor}, {id:19, 'class': 'ev_font', cb: rSRC.menuFont}, {id:20, 'class': 'ev_size', cb: rSRC.menuSize}, {id:null}, // spacer {id:21, 'class': 'ev_custom', bb: 'SPOILER', title: 'Wrap [SPOILER] around text'}, {id:97, 'class': 'ev_custom', bb: 'TRANSPARENT', title: 'Wrap [TRANSPARENT] around text'}, {id:52, 'class': 'ev_custom', bb: 'NOPARSE', title: 'Wrap [NOPARSE] around text'}, {id:53, 'class': 'ev_custom', bb: 'STRIKE', title: 'Strikethrough text'}, {id:null}, // spacer {id:22, 'class': 'ev_custom', bb:'YOUTUBE', title: 'Embedding video from Youtube'}, {id:23, 'class': 'ev_custom', bb:'VIMEO', title: 'Embedding video from Vimeo'}, {id:24, 'class': 'ev_custom', bb:'SOUNDCLOUD', title: 'Embedding audio from Soundcloud'} ]) + '<li class="'+lc+ ' qplugin-togler"><span class="btn_qplugin'+(gvar.settings.widethread || gvar.settings.toggle_plugins ? ' active' : '')+'" title="Toggle Plugin Menus"></span></li>' + '</ul>' + '<div id="qr_plugins_container" class="qplugin" style="'+(gvar.settings.widethread || gvar.settings.toggle_plugins ? '':'display:none;')+'"></div>' + "</div>" // mktH ; }, getCSS: function(){ var imgcdn1,imgcdn2,imgcdn3, BTN; imgcdn1 = gvar.kkcdn + 'images/editor/'; imgcdn2 = gvar.kkcdn + 'img/editor/'; imgcdn3 = gvar.kkcdn + 'themes_2.0/img/editor/'; BTN = rSRC.getSetOf('button'); return '' +'.btn.qq{margin-left:5px;}' +'.btn.qf{margin-right:-1px;}' +'.btn .throb, .c-avt .throb{display:none;background:url('+BTN.throb_fetch+') no-repeat;width:10px;height:8px;margin-right:2px;}' +'.c-avt .throb{margin-top:10px;}' +'.bling{color:#999;}' +'.bling .throb{display:inline-block;}' +'.btn.btn-thr{width:10px!important;height:10px!important; cursor:default!important;float:right;margin-right:15px;border:0;background:transparent;}' +'#site-header {transition: box-shadow .2s ease-in-out;}' +'#site-header .main-h .u a{position:relative}' +'#site-header .main-h .u a img{position:absolute;left: 0;margin-left: -20px}' +'#wrapper.fx, .mQR fieldset, .mQR #wrp_title, .mQR #wrp_msg, .mqr-cpcy .in-txt{position:relative;}' +'#wrapper.fx .main-h{width:620px;position:fixed;top:0;z-index:99999;}' +'#wrapper.fx #main{margin-top:30px}' +'#wrapper.fx #site-header .main-h {height:22px; box-shadow: 0 0 7px #aaa;opacity:.9;background: #ebebeb;}' +'#wrapper.fx #site-header .main-h:hover {opacity: 1;}' +'#wrapper.fx #site-header .main-h a{line-height:22px; height:22px;}' +'#wrapper.fx #site-header .main-h a img{margin: 2px 0 2px 4px;height: 18px!important;width: 18px!important;}' +'#wrapper.fx #site-header .c-avt {height:18px;}' +'#wrapper.fx #site-header .c-avt img{height: 98%;}' +'#wrapper.fx #site-header .c-avt, #wrapper.fx #site-header .c-avt .throb {margin-top:2px;}' +'#site-header #donatflag{color:#F00000!important;margin-left:2px;}' +'.c-avt{padding:0; margin:0; margin-top:7px; cursor:pointer;float:right;}' +'.c-avt img{max-width:25px;}' +'.c-avt.bling img{display:none;}' +'.hide{display:none!important;}' +'.mQR .throb-bl{background:url('+BTN.throbber_gif+') no-repeat;display:inline-block;width:16px; height:16px;margin-right:5px;}' +'.mQR .legend, .mQR .form-input{margin-bottom:0;border-bottom:0;}' +'.mQR .qrtitle{text-shadow:1px 1px #666;background:#1f94e1;color:#fff;font-size:1.05em;}' +'.mQR .qrtitle.editmode{background:#1484CE;border-top:solid 1px #2b9eea;}' +'.mQR .qrtitle a{color:#fff;}' +'.mQR .qrtitle a:hover{text-decoration:underline;}' +'.mQR .qrtitle em{font-style:normal!important;}' +'.mQR .form-input{padding-bottom:0; border-bottom:0;}' +'.mQR .form-input .action.in-btn{border:0!important; background:none;text-align:center;position:relative;}' +'.mQR .in-btn.action .btn{width:130px; float:none!important;display:inline;clear:none; margin:0 auto;text-transform:uppercase;text-shadow:0 1px rgba(0,0,0,0.1);}' +'.mQR .in-btn.action .btn-grey{margin-left:4px; color:#333;border:1px solid #c6c6c6;background-color:#f8f8f8;background-image:linear-gradient(top,#f8f8f8,#f1f1f1);}' +'.mQR .in-btn.action .btn-red{border:1px solid transparent!important;text-transform:uppercase;color:#fff; background-color:#d14836; background-image:linear-gradient(top,#dd4b39,#d14836);}' // +'.mQR .layerin{position:absolute;width:100%;height:100%; background:#ddd;opacity:.25;z-index:99; margin:-5px;}' +'.mQR .in-txt{padding:4px 5px;margin-top:-1px;border-radius:0;}' +'.mQR .in-txt .chr{margin: 2px -5px -4px;}' +'.mQR .in-txt.layered{position:relative;}' +'.mQR .in-txt #'+gvar.tID+'{height:90px; min-height:50px; min-width:590px; max-width:590px; font-size:14px;}' +'.mQR .chr{min-height:16px;}' +'.mQR .stts{float:left;border:0;padding:0;margin-top:-1px; background:none;}' +'.mQR #txtLen{float:right;max-width:65px;display:block;}' +'.mQR #txtLen.ffc{color:#666!important;}' +'.mQR #wrp_control {padding-bottom:1px;}' +'.mQR li.mBT a{outline:none; border:1px solid transparent}' +'.mQR li.mBT {border:1px solid transparent;}' +'.mQR li.mBT:hover {background-color:#f0f0f0;}' +'.mQR li.mBT:hover > a{border:1px solid #ddd;}' +'.mQR #wrp_title input[type="text"]{width:94%;}' +'.mQR .in-txt input[type="text"], .mQR .in-txt #'+gvar.tID+'{color:#333;}' +'.mQR .tgctr{position:absolute;top:2px; right:3px;padding:5px 3px; font-size:1.2em; line-height:0.7em; cursor:pointer;}' +'.mQR .tgctr:hover{color:#333;}' +'.mQR .tgctr.Qct {background:url('+BTN.contr_stg+') no-repeat;opacity:.25;width:12px;height:12px;}' +'.mQR .tgctr.Qct:hover, .mQR .Qct.active{opacity:.8;}' +'.mQR .tgctr.Qxc, .mQR .tgctr.QxM{color:#999;right:20px;border:0;font-weight:bold;font-size:18px;padding:5px;}' +'.mQR .tgctr.Qcp{border:0;}' +'.mQR .in_balonbox .tgctr{top:4px; right:10px; font-size:2em;}' +'.mQR .ninja{position:absolute!important;z-index:99; left:-999999; visibility:hidden;}' +'.mQR .error{border-color:#FF0A0A;}' +'.mQR .g_notice {display:none;font-size:11px;background:#DFC;border:1px solid #FFA8BF;line-height:16px;min-height:16px;padding:.4em 0;cursor:default;}' +'.mQR .recaptcha-main{color:#666;}' +'.mQR .qrerror{background:#ffd7ff!important;}' +'.mQR #cbutton, .mQR #wrp_reason{display:none;}' +'.in_balonbox {width:310px;position:absolute; z-index:999; bottom:70px; background:#e3e3e3;-moz-border-radius:10px;-webkit-border-radius:10px; border-radius:2px;border:1px solid #ccc;margin:20px -20px 0; padding:10px; padding-bottom:5px; padding-top: 2px;}' +'.in_balonbox .cpcy-title{font-size:1.2em; font-weight:bold; color:#666; margin:4px 0; display:block;}' +'.in_balonbox .recaptcha_only_if_image, .in_balonbox .cpcy-title, .in_balonbox .g_notice{padding-left:.4em;}' +'.in_balonbox .g_notice{color:#333;}' +'.in_balonbox .g_notice.qrerror{color:red;}' +'.mqr-cpcy, .box-cnt {width:310px;min-height:25px;background:#fff;border:1px solid #e5e5e5;}' +'.box-cnt {padding:8px 0; text-align:center; line-height:1.1em; font-size:1.2em;}' +'.box-cnt.sip {background:#DFC;border:1px solid #47FF0A;}' +'.box-cnt.ups {background:#ffd7ff;border-color:#FF0A0A;}' +'.mqr-cpcy #recaptcha_image {margin-top:5px;text-align:center;}' +'.mqr-cpcy #recaptcha_stg {background:url('+BTN.goog_stg+') no-repeat;}' +'.mqr-cpcy #recaptcha_reload_btn {background:url(http://ssl.gstatic.com/accounts/recaptcha-sprite.png) -63px;}' +'.mqr-cpcy #recaptcha_whatsthis_btn {background:url(http://ssl.gstatic.com/accounts/recaptcha-sprite.png);}' +'.mqr-cpcy .in-txt {margin-top:2px;}' +'.mqr-cpcy .in-txt input[type="text"]{padding-right:75px!important; max-width:222px;}' +'.mqr-cpcy .recaptcha-buttons {position:absolute;bottom:4px;right:10px;}' +'.mqr-cpcy .recaptcha-buttons span{text-indent:-9999px;display:block;}' +'.mqr-cpcy .recaptcha-buttons a {display:inline-block; height:21px;width:21px;margin-left:2px;background:#fff;background-position:center center;background-repeat:no-repeat; line-height:0; opacity:.55;outline:none;}' +'.mqr-cpcy .recaptcha-buttons a:hover {opacity:.8;}' +'.mqr-cpcy .recaptcha-auth {margin-top:4px; padding:5px 0;}' +'.mqr-cpcy .recaptcha-auth input[type="checkbox"] + label{display:inline-block;vertical-align:middle;height:14px;}' +'.mqr-cpcy .recaptcha-auth label{margin:1px 0 0 5px;}' +'.mqr-cpcy #recaptcha_response_field[readonly="readonly"]{color:#ccc;}' +'.qplugin-togler{float:right!important;margin:-1px -5px 0 0;border:0!important;}' +'.qplugin{margin-right:20px;float:right; text-align:right!important; width:100px;min-width:20px;min-height:10px;}' +'.mQR .qplugin img{border:1px solid transparent!important;cursor:pointer;vertical-align:bottom;margin-left:2px;}' +'.mQR .qplugin img:hover, .mQR .qplugin a:hover{border:1px solid #ccc!important;background-color:#f5f5f5;}' +'.mQR .qplugin .vbmenu_popup{position: absolute;margin-top:-1px;z-index: 9999;background: #eee;border: 1px solid #999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;font-size: 12px;padding:4px 0;}' +'.mQR .qplugin .vbmenu_popup .osize{padding:2px;}' +'.mQR .qplugin .vbmenu_popup .osize:hover{background: #ccc;cursor: pointer;}' +'.mQR .sayapkanan{position:absolute; right:0;text-align:right;margin:0;margin-top:-5px;padding:5px;display:inline-block;}' +'.mQR .sayapkanan input[type="checkbox"]{height:14px;width:14px;display:inline;color:#333;padding:1px;-webkit-appearance:checkbox;}' +'.mQR .sayapkanan label{margin-left:2px;color:#999}' +'.mktH{background-color:#fff;zoom:1;filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr="#FFF9F9F9",endColorstr="#FFF0F0F0");background-image:linear-gradient(top,#f9f9f90%,#f0f0f0100%)}.mktH:after{content:"";display:block;clear:both;height:0;visibility:hidden}.mktH ul li{list-style:none;float:left;position:relative;height:20px;width:20px}.mktH ul .mDM{margin-right:2px;background:transparent url('+imgcdn2+'menu.png) no-repeat right center}.mktH ul .mDM ul{border:1px solid #ccc}.mktH ul .mDM.fonts ul{width:250px;}.mktH ul .mDM.fonts ul li,.mktH ul .mDM.size ul li{width:99%}.mktH ul .mDM.fonts ul li{float:left; width:46%; height: 22px;}.mktH ul .mDM li{margin-right:0;border:0;}.mktH ul .mDM li a{}.mktH ul .mDM.fonts ul li a, .mktH ul .mDM.size ul li a{padding:4px 0;width: 100%; color:#222;}.mktH ul .mDM.size ul li a{line-height:70%;}.mktH ul .mDM.fonts ul li a{font-size:12px;padding-left: 5px;line-height: 12px;}.mktH ul .mDM.size ul{width:30px}.mktH ul .mDM.mBT19{background-position-x: 16px;}.mktH ul .mSP{width:1px;height:22px;background-color:#ddd;overflow:hidden;text-indent:-999px;margin:0 2px}.mktH ul ul{display:none;position:absolute;top:26px;left:0;background:#f5f5f5;height:inherit;z-index:10}.mktH ul ul li{float:none;border-bottom:1px solid #d6d6d6}.mktH ul li:hover>ul{display:block}.mktH ul a{display:block;width:16px;height:16px;text-indent:-10000px;background-repeat:no-repeat;margin:0;padding:2px}.mktH ul ul a{display:block;text-indent:0;width:120px;padding:5px 5px 5px 25px}.mktH ul ul a:hover{background-color:#ddd;border:0}.mQR .mBT a{display:block}.mQR .mBT1 a{background-image:url('+imgcdn1+'bold.gif)}.mQR .mBT2 a{background-image:url('+imgcdn1+'italic.gif)}.mQR .mBT3 a{background-image:url('+imgcdn1+'underline.gif)}.mQR .mBT4 a{background-image:url('+imgcdn1+'justifyleft.gif)}.mQR .mBT5 a{background-image:url('+imgcdn1+'justifycenter.gif)}.mQR .mBT6 a{background-image:url('+imgcdn1+'justifyright.gif)}.mQR .mBT7 a{background-image:url('+imgcdn1+'insertunorderedlist.gif)}.mQR .mBT8 a{background-image:url('+imgcdn1+'insertorderedlist.gif)}.mQR .mBT9 a{background-image:url('+imgcdn1+'indent.gif)}.mQR .mBT10 a{background-image:url('+imgcdn1+'outdent.gif)}.mQR .mBT11 a{background-image:url('+imgcdn1+'createlink.gif)}.mQR .mBT12 a{background-image:url('+imgcdn1+'unlink.gif)}.mQR .mBT13 a{background-image:url('+imgcdn1+'email.gif)}.mQR .mBT14 a{background-image:url('+imgcdn1+'insertimage.gif)}.mQR .mBT15 a{background-image:url('+imgcdn1+'quote.gif)}.mQR .mBT16 a{background-image:url('+imgcdn1+'code.gif)}.mQR .mBT17 a{background-image:url('+imgcdn1+'removeformat.gif)}.mQR .mBT18{width:25px}.mQR .mBT18 a{background-image:url('+imgcdn1+'color.gif)}.mQR .mBT18 ul{width:81px;padding:1px}.mQR .mBT18 li{width:24px;height:24px;overflow:hidden;float:left;border:0;margin:1px 2px;padding:0}.mQR .mBT18 ul a{width:22px;height:22px;overflow:hidden;text-indent:-9999px;display:block;border-radius:3px;opacity:.68;border:solid 1px #ddd;margin:0;padding:0}.mQR .mBT18 ul a:hover{opacity:1;border-color:#ccc}.mQR .mBT18 .col1-1 a{background:#FF0}.mQR .mBT18 .col1-2 a{background:orange}.mQR .mBT18 .col1-3 a{background:red}.mQR .mBT18 .col2-1 a{background:blue}.mQR .mBT18 .col2-2 a{background:purple}.mQR .mBT18 .col2-3 a{background:green}.mQR .mBT18 .col3-1 a{background:#FFF}.mQR .mBT19{}.mQR .mBT19 a{font-size: 13px; text-indent:0;text-align:center;line-height:18px;background:#fff;padding:1px}.mQR .mBT19.mDM > a{font-size: 14px;font-style:italic; font-weight:bold; height:20px; line-height:20px;}.mQR .mBT19 li a{padding:4px 5px}.mQR .mBT19 ul a{width:120px;line-height:16px;height:16px;font-weight:500;text-indent:0!important;text-align:left}.mQR .mBT19 .font-arial a{font-family:Arial,"DejaVu Sans","Liberation Sans",Freesans,sans-serif}.mQR .mBT19 .font-arialblack a{font-family:"Arial Black",Gadget,sans-serif}.mQR .mBT19 .font-arialnarrow a{font-family:"Arial Narrow","Nimbus Sans L",sans-serif}.mQR .mBT19 .font-bookantiqua a{font-family:Times New Roman,Times,serif}.mQR .mBT19 .font-centurygothic a{font-family:"Century Gothic",futura,"URW Gothic L",Verdana,sans-serif}.mQR .mBT19 .font-comicsansms a{font-family:"Comic Sans MS",cursive}.mQR .mBT19 .font-couriernew a{font-family:"Courier New",Courier,"Nimbus Mono L",monospace}.mQR .mBT19 .font-georgia a{font-family:Constantina,Georgia,"Nimbus Roman No9 L",serif}.mQR .mBT19 .font-impact a{font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif}.mQR .mBT19 .font-lucidaconsole a{font-family:"Lucida Sans Unicode","Lucida Grande","Lucida Sans","DejaVu Sans Condensed",sans-serif}.mQR .mBT19 .font-timesnewroman a{font-family:Cambria,"Times New Roman","Nimbus Roman No9 L",Freeserif,Times,serif}.mQR .mBT19 .font-Trebucher a{font-family:"Trebuchet MS",sans-serif}.mQR .mBT19 .font-Verdana a{font-family:Verdana,Geneva,"DejaVu Sans",sans-serif}.mQR .mBT20 a{background-image:url('+imgcdn3+'fonts.png);width:20px; background-position-y: 0;}.mQR .mBT20 li{height:auto}.mQR .mBT20 ul a{height:auto;text-align:center;padding:5px;display:block;line-height:16px;background-image:none}.mQR .mBT20 .size-1 a{font-size:10px;line-height:10px}.mQR .mBT20 .size-2 a{font-size:12px;line-height:12px}.mQR .mBT20 .size-5 a{font-size:20px;line-height:20px}.mQR .mBT20 .size-6 a{font-size:24px;line-height:24px}.mQR .mBT20 .size-7 a{font-size:28px;line-height:28px}.mQR .mBT22 a{width:15px;background:url('+imgcdn3+'youtube.gif) top left no-repeat}.mQR .mBT23 a{background:url('+imgcdn3+'vimeo.gif) center top no-repeat}.mQR .mBT24 a{background:url('+imgcdn3+'soundcloud.gif) center top no-repeat}.mQR .mBT95{width:25px}.mQR .mBT95-wrapper{width:170px!important;padding:5px 2px}.mQR .mBT95 > ul:before, .mQR .mBT19 > ul:before, .mQR .mBT20 > ul:before{content:"";position: absolute;top: -5px;left: -1px;width: 30px;height: 10px;}.mQR .mBT95 li{float:left;border:0!important;padding:0 3px 3px;height:15px;width:15px;}.mQR .mBT95 li a{overflow:hidden;text-indent:-9999px!important;display:block;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;opacity:.78;height:14px;width:14px!important;border:solid 1px #ddd;padding:0}.mQR .mBT95 li a:hover{opacity:1;border-color:#333!important;background:#fff}.mQR .mBT95>a{background-image:url('+imgcdn1+'color.gif); background-position-y: 0;}.mQR .mBT50 a{background-image:url('+imgcdn1+'html.gif)}.mQR .mBT51 a{background-image:url('+imgcdn1+'php.gif)}.mQR .mBT95,.mQR .mBT20,.mQR .mBT19{height:auto; min-width:25px;}.mQR .mBT95 li a,.mQR .mBT20 li a,.mQR .mBT19 li a{background:#f5f5f5}.mQR .mBT95:hover > a, .mQR .mBT20:hover > a, .mQR .mBT19:hover >a{border:1px solid transparent!important}' +'.mQR .mBT22, .mQR .mBT23, .mQR .mBT24 {width:24px}' +'.mQR .mBT21 {width:22px}.mQR .mBT21 a {width:18px}' +'.mQR .mBT21 a {background-image:url('+BTN.spoiler+')}' +'.mQR .mBT21 a {background-image:url('+BTN.spoiler+')}' +'.mQR .mBT16 a {background-image: url('+BTN.code+')}' +'.mQR .mBT50 a {background-image: url('+BTN.html+')}' +'.mQR .mBT95>a {background-image: url('+BTN.pickcolor+')}' +'.mQR .mBT20 a {background-image: url('+BTN.picksize+')}' +'.mQR .mBT97 a {background-image: url('+BTN.transparent+')}' +'.mQR .mBT52 a {background-image: url('+BTN.noparse+')}' +'.mQR .mBT53 a {background-image: url('+BTN.strikethrough+')}' // default narrow-qr +'.mQR .mBT23, .mQR .mBT24{display:none}' +'::-webkit-input-placeholder{color:#999!important;}:-moz-placeholder{color:#999!important;}:-ms-input-placeholder{color:#999!important;}' +'#content-wrapper .entry-content a{text-decoration:none;}' +'#content-wrapper .entry-content a:hover{text-decoration:underline;}' /*hacky2-sharp-color*/ +'#content-wrapper .entry-content{color:#222!important;}' +'#content-wrapper .entry-content .post-quote span:last-child{color:#333!important;}' /* night-mode */ +'body.nightmode .mQR .qrtitle{background:#444;text-shadow:1px 1px #222;}' +'body.nightmode .mQR .qrtitle.editmode{background:#093858;}' +'body.nightmode .mQR .in-txt input[type="text"], body.nightmode .mQR .in-txt #'+gvar.tID+'{color:#f0f0f0;}' +'body.nightmode .mQR .Qcp.tgctr{color:#333!important;}' +'body.nightmode .mQR .QxM.tgctr:hover, body.nightmode .mQR .Qcp.tgctr:hover{color:#fff!important;}' +'body.nightmode .mQR #txtLen{color:#333;}' +'body.nightmode .mQR #txtLen.ffc{color:#999!important;}' +'body.nightmode .mQR #wrp_control {background:#666;}' +'body.nightmode .mktH ul ul li:hover{background:none;}' +'body.nightmode .mktH ul ul, body.nightmode .mktH ul ul a{background:#333;}' +'body.nightmode .in_balonbox{background:#ccc;}' +'body.nightmode .mqr-cpcy{background:#333;}' +'body.nightmode .mqr-cpcy #recaptcha_challenge_image{opacity:.8;}' +'body.nightmode #content-wrapper .entry-content{color:#ddd!important;}' +'body.nightmode #content-wrapper .entry-content .post-quote span:last-child{color:#999!important;}' +'body.nightmode #content-wrapper .entry-content .post-quote span:last-child b:first-child{color:#ccc;}' ; }, getCSSWideFix: function(){ var i='!important'; return '' // wide to grid-12 as in default of full-web +'#wrapper, #wrapper.fx .main-h{max-width:940px'+i+';width:940px'+i+';}' +'.mQR .in-txt #'+gvar.tID+'{max-width:910px'+i+';width:910px'+i+';}' +'.mQR .mBT23, .mQR .mBT24{display:inline-block'+i+'}' }, getSCRIPT: function(){ return '' +'function showRecaptcha(element){' + 'if( "object" != typeof(Recaptcha) ){' + 'window.setTimeout(function () { showRecaptcha() }, 200);' + 'return;' + '}else{' + 'try{ Recaptcha.create("'+(gvar.isFJB ? '6Lc7C9gSAAAAAMAoh4_tF_uGHXnvyNJ6tf9j9ndI':'6LdPZPoSAAAAANzOixEawpyggAQ6qtzIUNRTxJXZ')+'", ' + 'element, {theme:"custom", lang:"en", custom_theme_widget:"mqr-cpcy"}); }catch(e){};' + '}' +'}' ; }, getSetOf: function(type){ switch(type){ case "color" : return { "#000000": "Black", "#A0522D": "Sienna", "#556B2F": "DarkOliveGreen", "#006400": "DarkGreen", "#483D8B": "DarkSlateBlue", "#000080": "Navy", "#4B0082": "Indigo", "#2F4F4F": "DarkSlateGray", "#8B0000": "DarkRed", "#FF8C00": "DarkOrange", "#808000": "Olive", "#008000": "Green", "#008080": "Teal", "#0000FF": "Blue", "#708090": "SlateGray", "#696969": "DimGray", "#FF0000": "Red", "#F4A460": "SandyBrown", "#9ACD32": "YellowGreen", "#2E8B57": "SeaGreen", "#48D1CC": "MediumTurquoise", "#4169E1": "RoyalBlue", "#800080": "Purple", "#808080": "Gray", "#FF00FF": "Magenta", "#FFA500": "Orange", "#FFFF00": "Yellow", "#00FF00": "Lime", "#00FFFF": "Cyan", "#00BFFF": "DeepSkyBlue", "#9932CC": "DarkOrchid", "#C0C0C0": "Silver", "#FFC0CB": "Pink", "#F5DEB3": "Wheat", "#FFFACD": "LemonChiffon", "#98FB98": "PaleGreen", "#AFEEEE": "PaleTurquoise", "#ADD8E6": "LightBlue", "#DDA0DD": "Plum", "#FFFFFF": "White" }; break; case "button" : return { news_png : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAANCAIAAAD5fKMWAAAABnRSTlMAAAAAAABupgeRAAAArklEQVR42mNkYGBgYGBob29/9OgRA14gJyfHAlHHz88/bdo0/KqzsrJYHj16lF/auG/Hmvv37587dw6XUiMjIwYGBhY4X1FRUVFREb/xLMic9knLGRgYKvMiT158jKbOXF+WgYGBiYEUgGJ2ZV4kCarR7B207ubn52dhYGB4ev+yh4fHhw8fIKLvPn4XFUAxRYif8/79+wwMDIxHjhzZsmXLx48f8buBn5/fw8MDAOiiPC0scvhsAAAAAElFTkSuQmCC", spoiler : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUAgMAAAAfJZ6gAAAAAXNSR0IArs4c6QAAAAxQTFRFAgUB5ujl8PLu/P/7G5VRDQAAAH9JREFUCNcdzbENwlAQA1BLKejDAkxAvnRlhLIaG7ADC1BSfIncBmyA6CgovkTzJY7EOHFx1mt8IJmzIy5lnhwjvzWkohzhUBxDZVyBfXlEBVJK1gH2MeulXbuVOjvbINmzbYBDnhhAf2PlMtC4Dvk7aVP/Nlz0vq81vtaaSf8DcK9JFqd6yKMAAAAASUVORK5CYII=", code : "data:image/gif;base64,R0lGODlhFQAUALMKAOjo6Nzc3JSUlKysrKCgoHBwcIiIiMTExPT09AAAAP///wAAAAAAAAAAAAAAAAAAACH5BAEAAAoALAAAAAAVABQAAARTUMlJq7046827t0kSIEo4bqEwAAoQHiQWGgasIMcbV3O94zpegmajABNFiStBYIEShaYxh9xJeknJMYm1TrakbganYgEGguwFETixT5+4fE6nRAAAOw==", html : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVBAMAAABbObilAAAAAXNSR0IArs4c6QAAAA9QTFRFZXQtAAMAUVJQmZuY19nWovyXywAAAAF0Uk5TAEDm2GYAAAABYktHRACIBR1IAAAASElEQVQI12NgQAaMgkAggMQWRBYXQGIzIqsXQGIzIvRCdBPFNjR2MRZRgbAdHQ1NVKBsEyDbBCFu7IJgOzqbGCLMESLaLgQAAFOFDIrpvL90AAAAAElFTkSuQmCC", pickcolor : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAVCAYAAABCIB6VAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAJFJREFUOMtjYBgFgwUIMDAwvIdiAWI0MBFpcALUQAEomyBgJNLg+wwMDBegbAMGBgZFagRDAAMDw38ojcymGOyHuhjZ9fspNdQA6sIGJLEGqJgBJQbPhxqCDc8n11AFqAH7GRgYHNDwfqicAjkGw7ycgCP5oQcR0QCWIciVpw3AlkF6yDSrhJwsTTJgYhgFtAYAn8MjLYLJYoUAAAAASUVORK5CYII=", picksize : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAADlJREFUOMtjYBgFIxcwEqHmP6lmMQ0W3/0n5HqauJSFhDBkJNZQurmUEc3FjKQaShOXDh1DR8EQAQDI5gUVIb0QgAAAAABJRU5ErkJggg==", transparent : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUAQMAAAC3R49OAAAAAXNSR0IArs4c6QAAAAZQTFRFAAAAgICAkmm5JAAAAAF0Uk5TAEDm2GYAAAApSURBVAjXY2BAArK3GxgEGCCYOYQBTAuGNIDlhLZAxBmuMMDVgNSjAQCJ+wmnBf0/pwAAAABJRU5ErkJggg==", noparse : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUAQMAAAC3R49OAAAAAXNSR0IArs4c6QAAAAZQTFRFAAAAAAAApWe5zwAAAAF0Uk5TAEDm2GYAAAAhSURBVAjXY2DAAgoYHjAkQGF+XwJD2m1UnPcOIgdShwYAGGEOftajyo0AAAAASUVORK5CYII=", strikethrough : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATBAMAAABiojCGAAAAAXNSR0IArs4c6QAAAA9QTFRFZXQtNDQ0WVlZeHh4oaGhu1gqYwAAAAF0Uk5TAEDm2GYAAAA7SURBVAjXY2AgH5ggmCpYRA0NjJQZjByALBYGBWVGZxCLQRAKgExmBQFlRkcFkCiLkLCgMougAQPlAAC8+ARiMnVu5QAAAABJRU5ErkJggg==", contr_stg : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wMFxAYA6YinkAAAAE7SURBVDjLrZRBS8NAEIW/SRM1UDGgB0H6Bzz5X/SHe/IslKIHe4hQra3JeHkbh2Urgi68w5t9mczOvF0bxxEz4y/L3TF3x8xmwBUwhH0T1uLngAtpzYCVuw+4O8BCgk3ATrE7wRWLGgcW7k6tzJ/AEuhTtUADnABPij0CW2CvSgHO9O2UyCXahrJHfZBiH8I+aI7TUetCT3JeZTzXEBOZjtIEUeIW+JANbNqPiVqVHkVtqKgNkyLEDJjGfwTcpMZpVcKD+LX6NgZNDdy7+y5WdJo1MiWai88Lib6PnvnoVeiBd8VuBVesD7qij1bBRxR8tAw+4icfvQnRkEMYwKZgyOaQj6qQqAog43bIR4QEv7rweaAOf+sKZmuDbzo1O/aoSxUnH1XAZTbadB1exC8Kz0gFPLv7aP/1sH0BL4CCxuBHWEkAAAAASUVORK5CYII=", goog_stg : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wMFwwCGmdYlk8AAAHzSURBVDjLrdVLS5ZRFAXg53gJ00pJVKyMIqhBF0fdCCKiUT+gX9L/adQvaFCNAiEogmgUDSolKyNN0NLP2+dpsj56/aqZBw7n8u6z9tp7r3PeUmu1n63HPre+7o1SCtzGKSzgcePznv1/Rdf3DyfDuIuTWMYZzGU8iyG8wlgpZbF5sNb6B7CUIh5bObCLo7iKazH7hl+ZH4/NYQxiCd9Lh3YppRdtDOASbmIUB9EfRysBGcr4HucxhUe11ofNkC/GU39Y9QRgLfM2NlBiM4LrmcNkdw7vhd1G1isJ73OYrIXtueSzLyxrUvS8G3Ay3teSj3bAXtda5xu5bqE3vYWfeFZrfdcNOBPQAzHcxdcmWCo5V0oZjwq2o4SVTlF7GoYP8CQeN+JsJ7rs1mk739shcQETe25KDBcCuJuQRjDQAc04mP1OdL24g/vdIY82Kr2NHVzGIcyUUlaiyxsR+E4cb+f8YDfgFUwnjK0cGI+EJlLxIzgRVktJzQfMptp7AKcwho+RzHAqPoZbKdYmfmAx83m8iPPSDfgmzGbxKWz7Y9hqAK6nr4Xdam28Es2rV7LezbqTr9MB7kmYA3Gyk7v9tNa6+ddrEy/N96jdSPo6XuJLijedx+FYg/l/n69ma8V4AW9rrW0sRz6rEfXWHp3u9y/gN28Pu01Pz4YXAAAAAElFTkSuQmCC", strikethrough : "data:image/gif;base64,R0lGODlhFAATAPcAACQeJHx+fFRSVDQ2NLSytGxqbJSWlExGTKSipGRiZEQ+RHx6fDQuLDw+PHRydJyenIyKjFxaXDw2PGxudJyWnCQmJFRWVJza7GxubExKTKyqrGRmZDQuNIyOjDw6PJyanBbQIND2iGRJdHcBAABF4AAA63EAEgAAAAAYVQCI1QB0mQAAd3gApOYA63VxEgAAAPhY/omT/5Z0/wMA/wBoNAANAABJAAABAABFaAAAAAAAagAAAAAYYACIhQB0dAAAAAAAKAAAAgAAAAAAAAAjAgABAAAAAAAAAAAYAADoAHESAAAAAPhFaIkAAJYAAAMAAAAAAAAAAABxAAAAAHwYaOaIABJ0AAAAAAgYRADo6W8SEgAAABGFYAA0hQCddAB3AOouaMdnAGRpAHdmAcYARMRHOsQ0XFZ3AOAhcwKtZVFkcgB3c+AAU4kB35YAZAMAdwEAOgAAygAAxAAAVvCMAInnAJYSAAMAAHQ3AOY7ABKdAAB3AMc8yB87d52ddHd3APirAIlIcJY0dAN3AEkAVB8A6J0AEncAAAAAEQABAQAAAAAAAPAhsImt6JZkEgN3AIBkmufnkxISawAAd7wA4sIq/WRxsncAIQA6/gDF/3HE/wBW/wC0UwDn3wASZAAAd/iRSYms2JZkZAN3dwAAyAAAdwAAdAAAAAAAPgEA0gAAZQAAd8vgesKzymSZxHd3VsznAOdIABI0AAB3APh5AInpAJYSAAMAAAwMAJ6hAHtPAHcAAAEgAAAAAAAAAAAAAwIAAX8AAAAAAAAAAHOUkC3n6G0SEmUAAG4MzXWhq1xPugAA3DxgYAD7+wASEgAAAABVmgDVkwCZawB3dwHX8gCl8AG7swAAITb+/iX//8f//1b//zjgPuez0hKZZQB3d5RbiAp/gcVnQnZ3AATcyOfodxISdAAAAA5rAAF/AABnAAB3AAWNeQCt6QBkEgB3ABAAMQAArQAAZAAAdwAwZgAAygAAxAAAVkQAMToArQAAZAAAd1QuagxncUlpSAFmACH5BAEAABcALAAAAAAUABMARwhnAC8IHEiwoMGBGCRAuIAhwgEHAgMkQHCwosWLGC8YAHAAAAYPDBJA/MChQYCMKA1aoIhxgMuXMGMOSEmzps2bFydouOngAcoOAhNc2LBQAYICBCo6yHChwgUBCy4ooNBAKM6rWAkGBAA7", throb_fetch : "data:image/gif;base64,R0lGODlhCgAKAMYAAP///4qOkjWU6CqC6DiW5g1Rwunp6Qg9ihxu0ESe+Fqx+HDK+G7D+I+vzmrF9Ge991Os9y+I2tTU1BlqzkGa9mar5Cl53MTExJGbpDuJtkaZ6puirTCJ7T6X9mfD9i6G65vX9hJdyO7u7o2RlUN9oZKVl83NzVVgbWbC733N+DON7jeV53eUv0uZ3j+Z5l+l4oKjy4nA7QQxh/Hx8bKxsQAAAMnJyQEaS5OTk3NycyB05wQtgRho3mOo5HDK9TOM7ojN7wszbDOO6AtIqTSO6BtZkYXL7hRIc6WkpLy7vFel66bD1QUoYRdo3o/N+2K67Clxswc7ionV+Blgq4mKiwg7lqje90RRYpOSkrbj+MrJyZubm/Ly8oqOkZWUlAEZRoqPkgEUPMnIyAIeVGFhYQEaSpSTk8zLywEWRAIbTbKysgMeSbCytD2T6jOB6juO6k6s4HCw50qP5lWZ7a2trh92xRNb0TFlmHDC62Ws7Qg5fnu9+Vy26UKf0v///////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQECgD/ACwAAAAACgAKAAAHR4AXG4MNGxgwGBiChIaIGBtSKVILcAIuBBCQkpSWmEsLHg8dHyocHQ+foaOlpzAWCAWxsQg6rrCyBbQmJCe8d729u8C/vCSBACH5BAUKAH8ALAAAAAAKAAoAAAdHgBgsLA0wGw2DLIKEhoiDPRAOKT4pKAQuBJCSlJaYLxAPDx4JH6Ucn6GjpR8cciETISEFQ7MFrrCytLQbJyd3vb++vL7AwIEAIfkEBQoAfwAsAAAAAAoACgAAB0eAGCyDLDANGw0wgoSGiDAVCQQEcCk+Cz5wkJKUlphzHwMJCg8eCh0Dn6GjpadQBQUTsSEFQwWusLK0BUh3J769v7y+J8DEgQAh+QQBCgB/ACwAAAAACgAKAAAHR4AbDTAshSwwDRuChIaIGyA+fQSTcD4+C5CSlJYLMSoDHAMdCg+lnqCipKVQBQVDBSETEyEFrK6wsrQbJ3cnvL68u72/vneBADs=", throbber_gif : "data:image/gif;base64,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%3D" }; break; default: return false; break; } } }; function init(){ var kdomain = domainParse(); gvar.domain = kdomain.prot + '//' + kdomain.host +'/'; gvar.kkcdn = kdomain.prot + '//'+ kdomain.statics + '/'; gvar.uavatar = kdomain.prot+'//'+kdomain.avatar +'/'+'user/avatar/'; gvar.qID = 'mqr-content-wrapper'; gvar.tID = 'reply-messsage'; gvar.edit_mode = !1; gvar.offsetEditorHeight = 160; // margin top Layer gvar.settings = gvar.reqPID = gvar.tkset = {}; ApiBrowserCheck(); gvar.user = currentUser(); gvar.isFJB = /^fjb\.m\.kaskus/.test(kdomain.host); getSettings(); // -- let's roll -- start_Main(); } // end-init function start_Main(){ // first assume gvar.thread_type = 'forum'; // [forum,group] gvar.act_uri = ''; gvar.sec_tok = ''; design(); // handle defect-hash callback after posting, +prefix: post{ID} var lhash = location.hash; if( lhash && /\#[\da-zA-Z]{24}$/.test(lhash) ){ var el, pid, title, url = location.protocol+'//'+location.hostname+location.pathname; title = $$('title', null, 1); pid = '#post'+lhash.replace(/\#/g, ''); setTimeout(function(){ try{ title && window.history.pushState(null, title.innerText, url+pid); window.scrollTo(0, getAbsoluteTop($$(pid, null, 1)) ); }catch(e){} }, 345); } } function getSettings(stg){ /** eg. gvar.settings.toggle_menus */ var hVal, settings = {}; hVal = getValueForId(gvar.user.id, 'AUTHORIZED_USERS'); if( !hVal ) hVal = ['', '0']; gvar.user.isDonatur = (hVal[1] == '1'); hVal = getValueForId(gvar.user.id, 'AVATARS_USERS'); if( !hVal ) hVal = ['', 'male.jpg']; gvar.user.avatar = gvar.uavatar + hVal[1]; settings.widethread = (getValue(KS+'WIDE_THREAD') == '1'); settings.tmp_text = getValue(KS+'TMP_TEXT'); settings.tmp_title = getValue(KS+'TMP_TITLE'); settings.toggle_menus = (getValue(KS+'TOGGLE_MENUS') == '1'); settings.toggle_plugins = (getValue(KS+'TOGGLE_PLUGINS') == '1'); // -=| _clog(settings); _clog(gvar.user); gvar.settings = settings; } // return {isLogedin: (boolean), isDonatur: (boolean), name: (string)} function currentUser(){ var user = { isLogedin: !$D('#loginform') ? true : false, // is later be set after submission is performed and there is no capcay for sure isDonatur: !$D('#recaptcha_area') ? true : false, avatar: null, name: null, id: null }, node, cucok, el; if(user.isLogedin){ node = $D('.//a[contains(@href,"profile/")]', $D('#site-nav'), 1); node && (user.name = entity_encode(node.innerHTML)); if( cucok = /\bprofile\/([\d]+)/i.exec(getAttr('href', node)) ) user.id = cucok[1]; } return user; } function design(){ // [design] clog('inside design'); // inject CSS GM_addGlobalStyle( rSRC.getCSS() ); if( !gvar.user.isLogedin ){ clog('notlogin; qr-exiting'); return (function(){ var formfocus = function(){ var tgt = $D('.//input[@name="username"]', null, 1); tgt && window.setTimeout(function(){ tgt.focus() }, 51) }, node, cval, urs = window.location.search; if(window.location.hash == '#login' && /\bkqr\b/.test(urs)){ cval = $D('#url').value; $D('#url').value = cval.replace(/\??\bkqr\b/i,''); formfocus(); } node = $D('.//a[contains(@href,"#login")]', $D('#site-nav'), 1); node && Dom.Ev(node, 'click', formfocus); return 0; })() } // inject SCRIPT if( !gvar.user.isDonatur ) { GM_addGlobalScript(location.protocol+ '\/\/www.google.com\/recaptcha\/api\/js\/recaptcha_ajax.js', 'recap', true); GM_addGlobalScript(rSRC.getSCRIPT()); } var par, node, lg, el, nodes, imgStr, profile_uri; // scan all quote // scan all quote nodes = $D('//div[@class="footer-act"]/a[contains(@href, "post_reply/")]'); if(nodes.snapshotLength > 0){ var pid, href, cucok; for(var i=0, lg = nodes.snapshotLength; i<lg; i++) { node = nodes.snapshotItem(i); href = getAttr('href', node); if( cucok = /\bpost=([\w]+)/i.exec(href) ) pid = cucok[1]; if(par = node.parentNode){ addClass('btn blue', node); el = createEl('a', {'href':'javascript:;', 'class':'qq btn blue'}, 'Quick Reply'); append(par, el); el = createEl('a', {'href':'javascript:;', 'class':'qf btn blue'}, '<i class="throb"></i>Fetch'); prepend(par, el, node); // edit button? if( el = $D('.//a[contains(@href,"edit_post/")]', par, 1) ){ addClass('btn blue', el); el.innerHTML = '<i class="throb"></i>Edit'; } setAttr('data-pid', '_'+pid, par); // remove button Reply Dom.remove($$('[href="#reply_form"]', par)); } } Dom.remove($$('.form-input')); } // templating :: find entry:last nodes = $D('//div[@class="entry"][last()]'); if( (par = nodes ? nodes.snapshotItem(0) : null) ){ el = createEl('div',{'id':gvar.qID, 'class':'mQR'}, rSRC.getTPL()); append(par, el); // bottom controls if( par = $D('.action', null, 1) ){ el = $D('.//a[contains(@href,"/post_reply/")]', par, 1); gvar.act_uri = getAttr('href', el); if( gvar.act_uri.indexOf('http:')==-1 ) gvar.act_uri = gvar.domain + gvar.act_uri.substr(1); } if( el = $D('.//a[contains(@href,"/logout/")]', Dom.g('site-footer'), 1) ){ update_token( getAttr('href', el) ); } } if( gvar.settings.widethread ) GM_addGlobalStyle(rSRC.getCSSWideFix(), 'css_inject_widefix', 1); if( gvar.settings.tmp_text ){ _TEXT.set( gvar.settings.tmp_text ); delete gvar.settings.tmp_text; node = KS+'TMP_TEXT'; setValue(node, ''); delValue(node); if( gvar.settings.tmp_title ){ _TEXT.set_title( gvar.settings.tmp_title ); delete gvar.settings.tmp_title; node = KS+'TMP_TITLE'; setValue(node, ''); delValue(node); } } var profile_check = function(e){ var _par, _el_dnt, _el = (e.target||e); (_el.nodeName == 'IMG') && (_el = _el.parentNode); _par = _el.parentNode _el_dnt = $D('#donatflag', null, 1); addClass('hide', _el_dnt); addClass('bling', _el); // xhr var _xhr, _xhr_cb = function(ret, xhr){ var imguri, cucok, isDonatur, el; ret && (ret = ret.responseText); if( ret ){ cucok = ret.match(/<figure>\s*<img\s*(?:(?:alt|class|border|width|height)=['"](?:[^'"]+)?.\s*)*src=['"]([^\'\"]+)/i); imguri = (cucok && cucok.length ? String(cucok[1]).replace(gvar.uavatar, '') : '/male.jpg'); setValueForId(gvar.user.id, String(imguri), 'AVATARS_USERS'); el = $$('#site-header .c-avt .c-avtr', null, 1); setAttr('src', (/^https?\:/.test(imguri) ? '' : gvar.uavatar) + imguri, el); removeClass('bling', _el); if( (isDonatur = /class=[\'\"]fn[\'\"]\s*>.+><b>\[\$\]<\//i.test(ret)) ){ removeClass('hide', _el_dnt); } setTimeout(function(){ setValueForId(gvar.user.id, String(isDonatur ? '1':'0'), 'AUTHORIZED_USERS'); }, 10); } if(gvar.reqPID && xhr.pid && "undefined" != typeof gvar.reqPID[xhr.pid]) delete gvar.reqPID[xhr.pid]; }; (function(){ var profile_uri = String(gvar.domain); profile_uri = profile_uri.substring(0, profile_uri.length-1); profile_uri+= String(getAttr('href', node)).replace(gvar.domain, ''); profile_uri = profile_uri.replace('/profile/', '/profile/aboutme/'); var xhr = new GM_XHR(); xhr.uri = profile_uri; xhr.cached = true; xhr.pid = 'profile-' + String(gvar.user.id); clog('GET profile detail...: ' + xhr.uri); gvar.reqPID[xhr.pid] = xhr.request(null, 'GET', _xhr_cb); })(); }; par = $$('#site-header .c:last-child', null, 1); if( par ){ node = $$('#site-header .u>a', par, 1); el = createEl('span', {id:'donatflag', 'class':'hide'}, '[$]'); append(node, el); imgStr = '<i class="throb"></i><img class="c-avtr" src="'+gvar.uavatar+'male.jpg" />'; el = createEl('div', {'class':'c-avt'}, imgStr); append(par, el); Dom.Ev(el, 'click', function(e){ profile_check(e) }); } if( gvar.user.isDonatur ) removeClass('hide', $$('#donatflag', null, 1)); if( gvar.user.avatar ){ el = $$('#site-header .c-avtr', null, 1); // gvar.user.avatar = gvar.user.avatar.replace(gvar.uavatar, ''); el && setAttr('src', gvar.user.avatar, el); } else{ profile_check(el); } clog('endof-design'); // attach event events_tpl(); } function events_tpl(){ var nodes, node, el; // [events] nodes = $D('//a[contains(@class, "qq btn") or contains(@class, "qf btn") or contains(@href,"edit_post/")]'); if(nodes.snapshotLength > 0){ for(var i=0, lg = nodes.snapshotLength; i<lg; i++) { node = nodes.snapshotItem(i); Dom.Ev(node, 'click', function(e){ do_an_e(e); attach_qr_form(e); }) } } // toggle wrp_control Dom.Ev($D('.btn_stg',null,1), 'click', function(e){ var tgt = $D('#wrp_title'); showhide( tgt ); e = e.target||e; gvar.settings.toggle_plugins = isVisible(tgt); if( gvar.settings.toggle_plugins ){ addClass('active', e); $$('[name=title]', tgt).focus(); } else{ removeClass('active', e); _TEXT.focus(); } setValue(KS+'TOGGLE_MENUS', gvar.settings.toggle_plugins ? '1' : '0'); }); // toggle qplugin Dom.Ev($D('.btn_qplugin',null,1), 'click', function(e){ var tgt = $D('#qr_plugins_container'); showhide( tgt ); e = e.target||e; if( isVisible(tgt) ) addClass('active', e); else removeClass('active', e); setValue(KS+'TOGGLE_PLUGINS', isVisible(tgt) ? '1' : '0'); _TEXT.focus(); }); // clear editor Dom.Ev($D('.QxM',null,1), 'click', function(e){ e = e.target||e; _TEXT.clear(true); showhide(e, false); }); // clear title Dom.Ev($D('.Qxc',null,1), 'click', function(e){ e = e.target||e; var tgt = $D('.//div[@id="wrp_title"]/input[@type="text"]',null,1); if( tgt ){ tgt.value=''; tgt.focus(); } showhide(e, false); }); Dom.Ev($D('.//div[@id="wrp_title"]/input[@type="text"]',null,1), 'keyup', function(e){ e=e.target||e; var tgt = $D('.Qxc',null,1); if( e.value.length ) showhide(tgt, 1); else showhide(tgt, false); }); // scroll-top on header click Dom.Ev($$('#site-header > .main-h.r'), 'click', function(e){ var wrapper; e = e.target||e; if( e && !hasClass('main-h', e) ) return !1; wrapper = closest(e, {id: 'wrapper'}); if( wrapper && !hasClass('fx', wrapper) ) return !1; return window.scrollTo(0,0); }); // editor node = $D('//div[@id="wrp_msg"]/textarea',null,1); Dom.Ev(node, 'focus', function(){ _TEXTCOUNT.init('#txtLen') }); Dom.Ev(node, 'blur', function(){ _TEXTCOUNT.dismiss() }); Dom.Evs(node, 'paste', function(e){ window.setTimeout(function(){ _TOGGLER.clear_editor( (e.target||e).value.length > 0 ) }, 100); }); Dom.Evs(node, 'keyup', function(e){ _TOGGLER.clear_editor( (e.target||e).value.length > 0 ) }); Dom.Ev(node, 'keydown', function(ev){ var asocKey, A = ev.keyCode||ev.keyChar; asocKey={ '83':'sbutton' // [S] Submit post ,'66' : 'B' // Bold ,'73' : 'I' // Italic ,'85' : 'U' // Underline ,'69' : 'CENTER' // E (center) ,'76' : 'LEFT' // L (left) ,'82' : 'RIGHT' // R (right) }; if(ev.ctrlKey){ if( [13, 66,73,85, 69,76,82].indexOf(A) != -1 ){ do_an_e(ev); if(A===13) SimulateMouse($D('#sbutton'), 'click', true); else _TEXT.insert.tagBIU( asocKey[A] ); } } }); gvar.maxH_editor = ( parseInt( getHeight() ) - gvar.offsetEditorHeight ); _TEXT.setElastic(gvar.maxH_editor); // btn-cancel edit Dom.Ev($D('#cbutton'), 'click', function(e){ gvar.edit_mode = null; toggle_qrmode(false); }); // close in_balonbox of saving /updating (editmode) Dom.Ev($D('.Qsv',null,1), 'click', function(e){ _TOGGLER.baloon_save() }); !gvar.user.isDonatur && window.setTimeout(function(){ (node = $D('#hidrecap_btn')) && SimulateMouse(node, 'click', true); Dom.Ev($D('#recaptcha_reload_btn'), 'click', function(){ _TOGGLER.auth_noneed_cpcy(false); }); Dom.Ev($D('#recaptcha_stg'), 'click', function(){ _TOGGLER.whattheheck(); }); // close capcay Dom.Ev($D('.Qcp',null,1), 'click', function(){ _TOGGLER.showhide_capcay(); }); Dom.Ev($D('#chk-auth'), 'change', function(e){ var ischecked = _TOGGLER.auth_noneed_cpcy(); setValueForId(gvar.user.id, String(ischecked ? '1':'0'), 'AUTHORIZED_USERS'); gvar.user.isPreAuthorized = ischecked; }); var handleKey = function(ev){ var el, A = ev.keyCode||ev.keyChar; el = ev.target||ev; if( [9,27, 33,34].indexOf(A) != -1 ){ switch(A){ case 9: $D('#sbutton').focus(); break; case 27: _TOGGLER.showhide_capcay(false); break; case 33: case 34: if(getAttr('id', el) == 'recaptcha_response_field') SimulateMouse($D('#recaptcha_reload_btn'), 'click', true); else return !1; break; } return 1; } return !1; }; Dom.Ev($D('#chk-auth'), 'keydown', function(ev){ if( handleKey(ev) ) do_an_e(ev); }); Dom.Ev($D('#recaptcha_response_field'), 'keydown', function(ev){ if( handleKey(ev) ) do_an_e(ev); }); baloon_positioning(); }, 1500); Dom.Ev($D('#chk_fixups'), 'click', function(e){ e = e.target||e; var isbaloonup, el_btn, el_plugin, chk, tgt, cssid = 'css_inject_widefix'; tgt = $D('#'+cssid); tgt && Dom.remove(tgt); el_btn = $D('.btn_qplugin',null,1); el_plugin = $D('#qr_plugins_container'); if( chk = isChecked(e) ){ GM_addGlobalStyle(rSRC.getCSSWideFix(), cssid, 1); !isVisible(el_plugin) && showhide(el_plugin, true); addClass('active', el_btn); } else{ if( !gvar.settings.toggle_plugins && isVisible(el_plugin)) SimulateMouse(el_btn, 'click', true); } setValue(KS+'WIDE_THREAD', (chk ? '1' : '0')); baloon_positioning(); _TEXT.lastfocus(); }); // form-submit if( node = $D('#mqrform') ){ setAttr('action', gvar.act_uri, node); Dom.Ev(node, 'submit', function(e){ var rrf, rrfvalue, elcpcy, tgt, el; do_an_e(e); el = $D('#'+gvar.tID); if( !el.value || (el.value && el.value.length < 5) ){ // blank-msg addClass('error', el.parentNode); window.setTimeout(function(){ removeClass('error', $D('#'+gvar.tID).parentNode); }, 3000); _TEXT.focus(); return; } if(gvar.edit_mode){ _TOGGLER.baloon_save(true); window.setTimeout(function(){ xhrpost() }, 212); return !1; } var gogo = function(){ _TOGGLER.response_field(true); window.setTimeout(function(){ xhrpost() }, 212); return !1; }; if( !gvar.user.isDonatur ){ if(isChecked( $D('#chk-auth') )) return gogo(); rrf = $D('#recaptcha_response_field'); if( !isVisible($D('#wrp_cpcy')) ){ _TOGGLER.showhide_capcay(true); tgt = $D('#sbutton'); removeClass('btn-red', tgt); addClass('blue', tgt); } else{ rrfvalue = (rrf ? trimStr(rrf.value) : !1); if( !rrfvalue ){ _TOGGLER.response_field(false, true); } else{ return gogo(); } } window.setTimeout(function(){ rrf && rrf.focus() }, 123); } else{ return gogo(); } return false; }); // end-submit-ev } Dom.Ev(window, 'scroll', function(){ var el, nVScroll = document.documentElement.scrollTop || document.body.scrollTop; // el = $D('#site-header'); el = $D('#wrapper'); if( nVScroll > 0 ){ !hasClass('fx', el) && addClass('fx', el); } else{ removeClass('fx', el); } }); Dom.Ev(window, 'resize', function(){ gvar.maxH_editor = ( parseInt( getHeight() ) - gvar.offsetEditorHeight ); _TEXT.setElastic(gvar.maxH_editor, 1); }); // initialize editor _TEXT.init(); eventsController(); clog('all-events-done; qr-inited'); } // end-events_tpl function eventsController(){ var ch, node, nodes, par; if( par = $D('.mktH',null,1) ){ var tag, title, pTag; nodes = $D('.//a[starts-with(@class,"ev_")]', par); if( nodes.snapshotLength ) for(var i=0; i<nodes.snapshotLength; ++i){ node = nodes.snapshotItem(i); switch( String(getAttr('class', node)).replace(/^ev_/,'') ){ case "biu": case "align": Dom.Ev(node, 'click', function(e){ _TEXT.insert.tagBIU( e.target||e ); }); break; case "font": case "size": case "color": Dom.Ev(node, 'click', function(e){ var _cls, el = e.target||e; _cls = String(getAttr('class', el)).replace(/^ev_/,''); tag = _cls.toUpperCase(); _TEXT.insert.tagHibrid(tag, getAttr('title', el), el); _TEXT.pracheck(); do_an_e(e); }); break; case "list": Dom.Ev(node, 'click', function(e){ e = e.target||e; var selected, bb = getAttr("data-bb", e); if( bb ) bb = bb.replace("LIST-", ""); _TEXT.init(); selected = _TEXT.getSelectedText(); if(selected=='') { var reInsert = function(pass){ var ins=prompt("Enter a list item.\nLeave the box empty or press 'Cancel' to complete the list:"); _TEXT.init(); if( ins ){ _TEXT.setValue( '\n' + '[*]' + ins + ''); reInsert(true); }else{ return; } }; _TEXT.insert.tagHibrid('LIST', (bb=='numeric' ? 1:false) ); window.setTimeout(function(){ reInsert(); }, 10); } else{ var ret = '', parts = selected.split('\n'); for(var i=0; i< parts.length; i++) if(trimStr(parts[i])) ret+= '\n' + '[*]' + parts[i] + ''; ret = '[LIST'+(bb=='numeric' ? '="1"' : '')+']' + ret + '\n[/LIST]'; _TEXT.replaceSelected( ret, [0, ret.length] ); } _TEXT.pracheck(); }); break; case "custom": Dom.Ev(node, 'click', function(e){ _TEXT.insert.tagCustom(e.target||e); _TEXT.pracheck(); }); break; } // end switch } // qplugin inside node = $D('.ev_strike', par, 1); Dom.Ev(node, 'click', function(e){ e = e.target||e; tag = getAttr('data-bbcode', e); _TEXT.insert.tagCustom(tag); _TEXT.pracheck(); }); // dropdown if( nodes = $D('.mDM', par) ){ for(var i=0;i<nodes.length; ++i){ Dom.Ev(nodes[i], 'mouseover', function(e){ var tgt = $D('.//ul', (e.target||e), 1); tgt && tgt.style.removeProperty('display'); }) } } // in the end add the class to flaging addClass('events', par); } // mktH // shortcut } // end -eventsController function build_fetch_url(e, pattern){ if(!e || (!e.parentNode)) return ''; var furl, el = $D('.//a[contains(@href,"'+pattern+'")]', e.parentNode, 1); furl = getAttr('href', el); if( furl.indexOf('http:') == -1 ) furl = gvar.domain + furl.substr(1); return furl; } function getPID(e){ if(!e || (e && !e.parentNode)) return; return getAttr('data-pid', e.parentNode); } function toggle_qrmode(flag, respon){ var formuri, mpar, sbtn, tgt = $D('#qrtitle_mode'); tgt && (tgt.innerHTML = (flag ? 'Edit' : 'Reply')); sbtn = $D('#sbutton'); sbtn && (sbtn.value = (flag ? 'Save Changes' : 'Post Reply')); if( mpar = $D('#'+gvar.qID) ){ setAttr('action', formuri, tgt); setAttr('name', (flag ? 'edit_postreply':'postreply'), tgt); } removeClass('btn-red blue', sbtn); if( flag ){ // editmode respon && update_token(respon); formuri = gvar.act_uri_edit; addClass('blue', sbtn); mpar && addClass('editmode', $D('.legend', mpar, 1)); showhide($D('#cbutton'), flag, 'inline-block'); } else{ restore_token(); formuri = gvar.act_uri; addClass('btn-red', sbtn); _TEXT.clear(); if( tgt = $D('//div[@id="wrp_title"]/input[@name="title"]',null,1) ) tgt.value = ''; if( tgt = $D('//div[@id="wrp_reason"]/input[@name="reason"]',null,1) ){ tgt.value = ''; showhide(tgt.parentNode, !flag); } showhide($D('#cbutton'), !flag); mpar && removeClass('editmode', $D('.legend', mpar, 1)); } } // fallback localstorage value and isDonatur function failover_authorization(){ setValueForId(gvar.user.id, '0', 'AUTHORIZED_USERS'); if(gvar.user.isDonatur){ alert('You need to insert capcay to post!\nPage will be reloaded now.'); setValue(KS+'TMP_TEXT', String($D('#'+gvar.tID).value)); setValue(KS+'TMP_TITLE', String($D('//div[@id="wrp_title"]/input[@name="title"]',null,1).value)); location.reload(false); return !1; } gvar.user.isPreAuthorized = gvar.user.isDonatur = false; return 1; } function xhrfetch_cb_post(ret, xhr){ ret && (ret = ret.responseText); clog('cb_post:\n' + ret); if(!ret) return; if(gvar.reqPID && xhr.pid && "undefined" != typeof gvar.reqPID[xhr.pid]) delete gvar.reqPID[xhr.pid]; // error-pattern if( ret.match(/[\'\"]err-msg[\'\"]/i) ){ pat = 'not have permission'; var re, pat, cucok, msg, el, tgt = $D('#mqrform'); if( ret.indexOf(pat)!=-1 ){ re = new RegExp('>([\\w\\s]+'+pat+'[^<]+)', "i"); cucok = re.exec(ret); msg = cucok[1] + ' <a href="?kqr#login">reload page</a>'; el = createEl('div', {'class':'err-msg'}, msg); append(tgt.parentNode, el); showhide($D('#mqrform'), false); } } else{ var tgt, subret, pos={}; pos['start'] = ret.indexOf('<textarea'); pos['end'] = ret.indexOf('</textarea'); subret = ret.substr(pos['start'], (pos['end'] - pos['start'])); subret = subret.replace(/<textarea[^>]+./i, ''); _TEXT.init(); _TEXT.add( entity_decode( unescapeHtml( subret.replace(/\\n|\\r\\n|\\r/g, '\n') ) ) ); _TEXT.pracheck(); (tgt = $D('.bling',null,1)) && removeClass('bling', tgt); } } function xhrfetch_cb_edit(ret, xhr){ ret && (ret = ret.responseText); clog('cb_edit:\n' + ret); if(!ret) return; if(gvar.reqPID && xhr && xhr.pid && "undefined" != typeof gvar.reqPID[xhr.pid]) delete gvar.reqPID[xhr.pid]; var tgt, subret, cucok, pos={}; pos['start'] = ret.indexOf('<textarea'); pos['end'] = ret.indexOf('</textarea'); subret = ret.substr(pos['start'], (pos['end'] - pos['start'])); subret = subret.replace(/<textarea[^>]+./i, ''); subret = entity_decode( unescapeHtml( subret.replace(/\\n|\\r\\n|\\r/g, '\n') ) ); // check title if( cucok = /<input\s((?:[\w]+=[\'\"][^\'\"]+.)\s+)+name=[\'\"]title[\'\"][^\>]+/i.exec(ret) ){ cucok = /value=[\'\"]([^\'\"]+)/i.exec(cucok[0]); cucok && _TEXT.set_title(cucok[1]); } // check reason if( cucok = /<input\s((?:[\w]+=[\'\"][^\'\"]+.)\s+)+name=[\'\"]reason[\'\"][^\>]+/i.exec(ret) ){ cucok = /value=[\'\"]([^\'\"]+)/i.exec(cucok[0]); cucok && _TEXT.set_reason(cucok[1]); } // identify as an edit_mode gvar.edit_mode = 1; toggle_qrmode(gvar.edit_mode, ret); _TEXT.init(); if( gvar.edit_mode ){ _TEXT.set(trimStr(subret)); } _TEXT.pracheck(); (tgt = $D('.bling',null,1)) && removeClass('bling', tgt); } function xhrfetch(e, mode){ if(!e) return; // prep xhr window.setTimeout(function(){ var xhr = new GM_XHR(); xhr.uri = build_fetch_url(e, (mode =='edit' ? 'edit_post/' : 'post_reply/')); xhr.cached = true; xhr.pid = (mode =='edit' ? 'e' : 'q') + String(getPID(e)); clog('GET '+(mode =='edit' ? 'edit':'')+'post...: ' + xhr.uri); gvar.reqPID[xhr.pid] = xhr.request(null, 'GET', (mode == 'edit' ? xhrfetch_cb_edit : xhrfetch_cb_post)); }, 123); } function attach_qr_form(caleer){ var e, mode, par, pid; e = caleer.target||caleer; if(gvar.edit_mode){ if( confirm('You are currently editing a post.\n\nDiscard anyway?') ){ gvar.edit_mode = null; toggle_qrmode(false); } else{ _TEXT.focus(); return; } } par = closest(e, {'class':'entry'}) par && append(par, $D('#'+gvar.qID)); mode = String(getAttr('class', e)).indexOf('qf') != -1 ? 'fetch' : null; !mode && (mode = String(getAttr('href', e)).indexOf('edit_post/') != -1 ? 'edit' : ''); if( mode ){ pid = (mode == 'edit' ? 'e' : 'q') + String(getPID(e)); if("undefined" != typeof gvar.reqPID[pid]){ clog('same request exist, exiting ..'); removeClass('bling', e); gvar.reqPID[pid].abort(); delete gvar.reqPID[pid]; } else{ addClass('bling', e); if(mode == 'edit'){ gvar.act_uri_edit = getAttr('href', e); if( gvar.act_uri_edit.indexOf('http:')==-1 ) gvar.act_uri_edit = gvar.domain + gvar.act_uri_edit.substr(1); } xhrfetch(e, (mode == 'edit' ? 'edit' : 'quote') ); } } _TEXT.caretChk(); _TEXT.focus(); } function restore_token(){ var tok = gvar.tkset[(gvar.edit_mode ? 'edit':'post')]; tok && (gvar.sec_tok = tok); $D('#mqr_securitytoken').value = gvar.sec_tok; } function update_token(text){ var cucok = /\bhash=([\w-]+)/gi.exec(String(text)); if( cucok ){ gvar.sec_tok = cucok[1] $D('#mqr_securitytoken').value = gvar.sec_tok; } gvar.tkset[(gvar.edit_mode ? 'edit':'post')] = gvar.sec_tok; } function xhrpost_cb_new(ret, xhr){ ret && (ret = ret.responseText); clog('cb_new:\n' + ret); if(!ret) return; if(gvar.reqPID && xhr && xhr.pid && "undefined" != typeof gvar.reqPID[xhr.pid]) delete gvar.reqPID[xhr.pid]; var cucok, prevchecked; // error-pattern if( ret.match(/[\'\"]err-msg[\'\"]/i) ){ prevchecked = gvar.user.isPreAuthorized; if(gvar.user.isDonatur || gvar.user.isPreAuthorized){ if( failover_authorization() == !1 ) return; } if( ret.indexOf('image verification did not match')!=-1 ){ _TOGGLER.showhide_capcay(true); _TOGGLER.gnotice(true, (prevchecked ? 'Capcay is required. \n':'')+'The text you entered did not match. Please try again.'); _TOGGLER.response_field(false, true); _TOGGLER.auth_noneed_cpcy(false); } } // submit-pattern else if( ret.match(/[\'\"]s-msg[\'\"]/i) ){ if( cucok = /\bpost\/([\d\w]+)\#post([\d\w]+)\b[^\>]+.Click\shere/i.exec(ret) ){ var next = gvar.domain + 'post/' + cucok[1] + '#' + cucok[2]; top.location.href = next; } else if( ret.indexOf('security token was invalid.<')!=-1 ){ alert('Invalid securitytoken'); } else{ alert('Unknown Error'); clog(ret); } } update_token(ret); } function xhrpost_cb_update(ret, xhr){ ret && (ret = ret.responseText); clog('cb_update:\n' + ret); if(!ret) return; if(gvar.reqPID && xhr && xhr.pid && "undefined" != typeof gvar.reqPID[xhr.pid]) delete gvar.reqPID[xhr.pid]; if( /[\\\"]+s-msg[\\\"]+>/i.test(ret) ){ if( cucok = /\bpost\/([^"\']+)[^>]+.Click\shere\b/i.exec(ret) ){ _TOGGLER.baloon_set('#Okesip'); var next = gvar.domain + 'post/' + cucok[1]; window.setTimeout(function(){ if(location.href == next) location.reload(true); else top.location.href = next; return; }, 450); } else if( ret.indexOf('security token was invalid.<')!=-1 ){ alert('Invalid securitytoken'); } else{ alert('Unknown Error'); clog(ret); } } update_token(ret); } function xhrpost(){ var xhr = new GM_XHR(); xhr.cached = true; xhr.uri = (gvar.edit_mode ? gvar.act_uri_edit : gvar.act_uri); xhr.pid = (gvar.edit_mode ? '_editpost_' : '_newpost_'); clog('POST '+(gvar.edit_mode ? 'edit':'')+'post...: ' + xhr.uri); var sdata = build_data_form(true); clog(sdata); gvar.reqPID[xhr.pid] = xhr.request(sdata, 'POST', (gvar.edit_mode ? xhrpost_cb_update : xhrpost_cb_new)); } function build_data_form(toString){ var data, node, nodes, par, field, fields; if( par = $D('#mqrform') ){ data = (toString ? '' : {}); nodes = $D('.//*[@name]', par); fields = ['title','message','sbutton']; // previews // 'psecuritytoken','securitytoken', if(gvar.edit_mode) fields = fields.concat(['reason']); else fields = fields.concat(['recaptcha_challenge_field','recaptcha_response_field']); if( nodes.snapshotLength ){ var sec = $D('#mqr_securitytoken').value; for(var i=0; i<nodes.snapshotLength; ++i){ node = nodes.snapshotItem(i); field = trimStr( String(getAttr('name', node)) ); if( fields.indexOf(field) == -1) continue; if(toString){ data+='&' + field + '=' + encodeURIComponent( trimStr(node.value)); data+='&'+(gvar.edit_mode?'':'p')+'securitytoken=' + sec; } else{ data[field] = trimStr(node.value); data[(gvar.edit_mode ? '': '')+'securitytoken'] = sec; } } // keep send this field if(!gvar.edit_mode && gvar.user.isDonatur){ if(toString) data+='&recaptcha_challenge_field=1&recaptcha_response_field=1'; else data['recaptcha_challenge_field'] = data['recaptcha_response_field'] = ''; } } } return data; } // baloon positioning; function baloon_positioning(){ var lOffset, lpos, cppos, mQRpos, tgt, nodes; nodes = $D('.in_balonbox',null); if( nodes.length ) for(var i=0; i<nodes.length; ++i){ tgt = nodes[i]; tgt.style.removeProperty('visibility'); tgt.style.setProperty('display', '', ''); cppos = getPosDim(tgt) mQRpos = getPosDim($D('.mQR',null,1)) lpos = (Math.floor(mQRpos['w']/2) - Math.floor(cppos['w']/2) ); lOffset = 15; tgt.style.setProperty('left', parseInt(lpos+lOffset)+'px', ''); tgt.style.setProperty('display', 'none', ''); } } // domain guest function domainParse(){ return { "prot": location.protocol, "host": location.hostname, "statics" : 'cdn.kaskus.com', "avatar" : 's.kaskus.id' }; } function getPosDim(el) { var r = {x:0,y:0, w:el.offsetWidth, h:el.offsetHeight}; for (var lx=0, ly=0; el != null; lx+= el.offsetLeft, ly+= el.offsetTop, el = el.offsetParent); r['x'] = lx; r['y']=ly; return r; } // static routine function dump(x) { return x && JSON ? JSON.stringify(x) : x} function isDefined(x) { return !(x == null && x !== null); } function isUndefined(x) { return x == null && x !== null; } function isString(x) { return (typeof(x)!='object' && typeof(x)!='function'); } function trimStr(x) { return (typeof(x)=='string' && x ? x.replace(/^\s+|\s+$/g,"") : '') }; function isLink(x) { return x.match(/((?:http(?:s|)|ftp):\/\/)(?:\w|\W)+(?:\.)(?:\w|\W)+/); } function getAbsoluteTop(element) { var AbsTop=0; while (element) { AbsTop=AbsTop+element.offsetTop; element=element.offsetParent; } return(AbsTop); } function getHeight(){ var y = 0; if (self.innerHeight){ // FF; Opera; Chrome y = self.innerHeight; } else if (document.documentElement && document.documentElement.clientHeight){ y = document.documentElement.clientHeight; } else if (document.body){ y = document.body.clientHeight; } return y; }; function do_an_e(A) { A.stopPropagation(); A.preventDefault(); return A; }; function isVisible(el){ return el.offsetWidth > 0 || el.offsetHeight > 0; } function isChecked(el){ return el.checked; } function entity_decode(S){ return S.replace(/\>/gm,'>').replace(/\</gm,'<').replace(/\&/gm,'&'); } function entity_encode(S){ return !S ? '' : String(S).replace(/>/gm,'>').replace(/</gm,'<').replace(/\"/g,'"'); } // clean-up fetched post function unescapeHtml(text){ if(!text) return ''; var cleanRet = '', temp = createEl('div',{},text); for(var i in temp.childNodes){ if(typeof(temp.childNodes[i])!='object' || isUndefined(temp.childNodes[i].nodeValue)) continue; cleanRet += temp.childNodes[i].nodeValue; } temp.removeChild(temp.firstChild); return cleanRet; } function showhide(obj, show, isImportant){ if(isUndefined(obj) || "object" != typeof obj || (obj && !obj.style)) return; if(isUndefined(show)) show = (obj.style.display=='none'); // toggle mode if(!show){ obj.style.setProperty('display', 'none', isImportant===true ? 'important' : ''); // important }else{ if( isImportant ) obj.style.setProperty('display', isImportant, 'important'); else obj.style.removeProperty('display'); } }; function closest(obj, params){ if(!obj || (obj && !obj.parentNode)) return; var criteria, gotit, par, ijump, threshold; gotit = null; threshold = 20; ijump = 0; for(crt in params){ if("string" == typeof crt) criteria = crt; } par = obj; while(!gotit){ par = par.parentNode; switch(criteria){ case "class": gotit = getAttr('class', par); gotit = gotit && (gotit.indexOf(params[criteria]) != -1); break; case "id": gotit = getAttr('id', par); gotit = gotit && (gotit == params[criteria]); break; case "tag": gotit = par.nodeName.toLowerCase(); gotit = gotit && (gotit == params[criteria].toLowerCase()); break; default: gotit = getAttr(criteria, par); gotit = gotit && (gotit == params[criteria]); break; } ++ijump; if(ijump > threshold) break; } return gotit ? par : null; } function prepend(parent, child, before){ if(!parent || ("object"!=typeof child)) return; if("undefined" == typeof before) before = parent.firstChild; parent.insertBefore(child, before); } function append(parent, childs){ if(!parent || ("object"!=typeof childs)) return; if("string" == typeof childs.innerHTML){ parent.appendChild(childs); } else{ for(var i=0; i<childs.length; ++i){ parent.appendChild(childs[i]); } } } function addClass(cName, Obj){ if(cName=="") return; var neocls = (Obj.className ? Obj.className : ''); if(neocls.indexOf(cName)!=-1) return; neocls+=(neocls!=''?' ':'')+cName; setAttr('class', neocls, Obj); } function removeClass(cName, Obj){ if(!cName || !Obj) return; var neocls, rmvclss = getAttr('class', Obj); neocls = getAttr('class', Obj); rmvclss = cName.split(' '); for(var i=0; i<rmvclss.length; ++i) neocls = neocls.replace(rmvclss[i], ''); neocls = trimStr(neocls); setAttr('class', neocls, Obj); } function hasClass(cName, Obj){ if(!cName || !Obj) return; var clss = getAttr('class', Obj).split(' '); return (clss.indexOf(cName) != -1); } function getAttr(name, Obj){ if("string" === typeof name && "object" === typeof Obj && Obj) return Obj.getAttribute(name)||''; else return; } function setAttr(name, value, Obj){ if("string" === typeof name && "object" === typeof Obj) return Obj.setAttribute(name, value); } function getValue(key) { var data=OPTIONS_BOX[key]; return (!data ? '': GM_getValue(key,data[0])); } function setValue(key, value) { var data=OPTIONS_BOX[key]; return (!data ? '': GM_setValue(key,value)); } function setValueForId(userID, value, gmkey, sp){ if( !userID ) return null; sp = [(isDefined(sp) && typeof(sp[0])=='string' ? sp[0] : ';'), (isDefined(sp) && typeof(sp[1])=='string' ? sp[1] : '::')]; var i, ksg = KS+gmkey, info; return (function(val){ info = val; if( !info ){ setValue(ksg, userID+"="+value); return; } info = info.split( sp[0] ); for(i=0; i<info.length; i++){ if(info[i].split('=')[0]==userID){ info.splice(i,1,userID+"="+value); setValue(ksg, info.join(sp[0])); return; } } info.splice(i, 0, userID+"="+value); return setValue(ksg, info.join(sp[0])); })( getValue(ksg) ); } // values stored in format "userID=value;..." // sp = array of records separator // gvar.user.id, 'LAYOUT_TPL', ['<!>','::'], function function getValueForId(userID, gmkey, sp){ if( !userID ) return null; clog('GET:'+gmkey + ' inside'); sp = [(isDefined(sp) && typeof(sp[0])=='string' ? sp[0] : ';'), (isDefined(sp) && typeof(sp[1])=='string' ? sp[1] : '::')]; var val, info, retValue=null; return (function(val){ if( !val ) { clog(gmkey + ' blank; halted'); retValue = null; return; } info = val.split( sp[0] ); clog(gmkey + ' info=' + info); for(var i=0; i<info.length; i++){ if( !isString(info[i]) ) continue; var recs = info[i].split('='); if( recs[0]==userID ){ var rets = [userID], values = recs[1].split(sp[1]), vL=values.length; for(var idx=0; idx<vL; idx++){ if( !isString(values[idx]) ) continue; rets.push(values[idx]); } retValue = rets; break; } } return retValue; })( getValue(KS + gmkey) ); } function delValueForId(userID, gmkey){ var ksg = KS+gmkey, tmp=[], info = getValue(ksg); info = info.split(';'); for(var i=0; i<info.length; i++){ if(info[i].split('=')[0]!=userID) tmp.push(info[i]); } setValue(ksg, tmp.join(';')); } function delValue(key){ var data=OPTIONS_BOX[key]; try{ return (!data ? null : GM_deleteValue(key)); }catch(e){} } function SimulateMouse(elem,event,preventDef) { if(typeof(elem)!='object') return; var evObj = document.createEvent('MouseEvents'); preventDef=(isDefined(preventDef) && preventDef ? true : false); evObj.initEvent(event, preventDef, true); try{elem.dispatchEvent(evObj);} catch(e){} } function createEl(type, attrArray, html){ var node = document.createElement(type); for (var attr in attrArray) if (attrArray.hasOwnProperty(attr)) node.setAttribute(attr, attrArray[attr]); if(html) node.innerHTML = html; return node; } function createTextEl(txt){ return document.createTextNode(txt); } // play safe with Opera; //=== BROWSER DETECTION / ADVANCED SETTING //=============snipet-authored-by:GI-Joe==// function ApiBrowserCheck() { //delete GM_log; delete GM_getValue; delete GM_setValue; delete GM_deleteValue; delete GM_xmlhttpRequest; delete GM_openInTab; delete GM_registerMenuCommand; if(typeof(unsafeWindow)=='undefined') { unsafeWindow=window; } if(typeof(GM_log)=='undefined') { GM_log=function(msg) { try { unsafeWindow.console.log('GM_log: '+msg); } catch(e) {} }; } var needApiUpgrade=false; if(window.navigator.appName.match(/^opera/i) && typeof(window.opera)!='undefined') { needApiUpgrade=true; gvar.isOpera=true; GM_log=window.opera.postError; clog('Opera detected...',0); } if(typeof(GM_setValue)!='undefined') { var gsv; try { gsv=GM_setValue.toString(); } catch(e) { gsv='.staticArgs.FF4.0'; } if(gsv.indexOf('staticArgs')>0) { gvar.isGreaseMonkey=true; gvar.isFF4=false; clog('GreaseMonkey Api detected'+( (gvar.isFF4=gsv.indexOf('FF4.0')>0) ?' >= FF4':'' )+'...',0); } // test GM_hitch else if(gsv.match(/not\s+supported/)) { needApiUpgrade=true; gvar.isBuggedChrome=true; clog('Bugged Chrome GM Api detected...',0); } } else { needApiUpgrade=true; clog('No GM Api detected...',0); } gvar.noCrossDomain = (gvar.isOpera || gvar.isBuggedChrome); if(needApiUpgrade) { //gvar.noCrossDomain = gvar.isBuggedChrome = 1; clog('Try to recreate needed GM Api...',0); //OPTIONS_BOX['FLASH_PLAYER_WMODE'][3]=2; OPTIONS_BOX['FLASH_PLAYER_WMODE_BCHAN'][3]=2; // Change Default wmode if there no greasemonkey installed var ws=null; try { ws=typeof(unsafeWindow.localStorage) } catch(e) { ws=null; } // Catch Security error if(ws=='object') { clog('Using localStorage for GM Api.',0); GM_getValue=function(name,defValue) { var value=unsafeWindow.localStorage.getItem(GMSTORAGE_PATH+name); if(value==null) { return defValue; } else { switch(value.substr(0,2)) { case 'S]': return value.substr(2); case 'N]': return parseInt(value.substr(2)); case 'B]': return value.substr(2)=='true'; } } return value; }; GM_setValue=function(name,value) { switch (typeof(value)) { case 'string': unsafeWindow.localStorage.setItem(GMSTORAGE_PATH+name,'S]'+value); break; case 'number': if(value.toString().indexOf('.')<0) { unsafeWindow.localStorage.setItem(GMSTORAGE_PATH+name,'N]'+value); } break; case 'boolean': unsafeWindow.localStorage.setItem(GMSTORAGE_PATH+name,'B]'+value); break; } }; GM_deleteValue=function(name) { unsafeWindow.localStorage.removeItem(GMSTORAGE_PATH+name); }; } else if(!gvar.isOpera || typeof(GM_setValue)=='undefined') { clog('Using temporarilyStorage for GM Api.',0); gvar.temporarilyStorage=new Array(); GM_getValue=function(name,defValue) { if(typeof(gvar.temporarilyStorage[GMSTORAGE_PATH+name])=='undefined') { return defValue; } else { return gvar.temporarilyStorage[GMSTORAGE_PATH+name]; } }; GM_setValue=function(name,value) { switch (typeof(value)) { case "string": case "boolean": case "number": gvar.temporarilyStorage[GMSTORAGE_PATH+name]=value; } }; GM_deleteValue=function(name) { delete gvar.temporarilyStorage[GMSTORAGE_PATH+name]; }; } if(typeof(GM_openInTab)=='undefined') { GM_openInTab=function(url) { unsafeWindow.open(url,""); }; } if(typeof(GM_registerMenuCommand)=='undefined') { GM_registerMenuCommand=function(name,cmd) { GM_log("Notice: GM_registerMenuCommand is not supported."); }; } // Dummy if(!gvar.isOpera || typeof(GM_xmlhttpRequest)=='undefined') { clog('Using XMLHttpRequest for GM Api.',0); GM_xmlhttpRequest=function(obj) { var request=new XMLHttpRequest(); request.onreadystatechange=function() { if(obj.onreadystatechange) { obj.onreadystatechange(request); }; if(request.readyState==4 && obj.onload) { obj.onload(request); } } request.onerror=function() { if(obj.onerror) { obj.onerror(request); } } try { request.open(obj.method,obj.url,true); } catch(e) { if(obj.onerror) { obj.onerror( {readyState:4,responseHeaders:'',responseText:'',responseXML:'',status:403,statusText:'Forbidden'} ); }; return; } if(obj.headers) { for(name in obj.headers) { request.setRequestHeader(name,obj.headers[name]); } } request.send(obj.data); return request; }; } } // end needApiUpgrade GM_getIntValue=function(name,defValue) { return parseInt(GM_getValue(name,defValue),10); }; } // ----my ge-debug-------- function show_alert(msg, force) { if(arguments.callee.counter) { arguments.callee.counter++; } else { arguments.callee.counter=1; } GM_log('('+arguments.callee.counter+') '+msg); if(force==0) { return; } } function clog(msg) { if(!gvar.__DEBUG__) return; show_alert(msg); } function _clog(x){ if(!gvar.__DEBUG__) return; console && console.log && console.log(x); } //---- init() })(); /* Mod By Idx. */
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址