// remote scripting library // (c) copyright 2005 modernmethod, inc var sajax_debug_mode = false; var sajax_request_type = "POST"; function sajax_debug(text) { if (sajax_debug_mode) alert("RSD: " + text) } function sajax_init_object() { sajax_debug("sajax_init_object() called..") var A; try { A=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { A=new ActiveXObject("Microsoft.XMLHTTP"); } catch (oc) { A=null; } } if(!A && typeof XMLHttpRequest != "undefined") A = new XMLHttpRequest(); if (!A) sajax_debug("Could not create connection object."); return A; } function sajax_do_call(func_name, args) { var i, x, n; var uri; var post_data; uri = "/rss/ajax.php"; if (sajax_request_type == "GET") { if (uri.indexOf("?") == -1) uri = uri + "?rs=" + escape(func_name); else uri = uri + "&rs=" + escape(func_name); for (i = 0; i < args.length-1; i++) uri = uri + "&rsargs[]=" + escape(args[i]); uri = uri + "&rsrnd=" + new Date().getTime(); post_data = null; } else { post_data = "rs=" + escape(func_name); for (i = 0; i < args.length-1; i++) post_data = post_data + "&rsargs[]=" + escape(args[i]); } rss_sajax_busy(); x = sajax_init_object(); x.open(sajax_request_type, uri, true); if (sajax_request_type == "POST") { x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1"); x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); } x.onreadystatechange = function() { if (x.readyState != 4) return; sajax_debug("received " + x.responseText); var status; var data; status = x.responseText.charAt(0); data = x.responseText.substring(2); if (status == "-") { alert("Error: " + data); } else { args[args.length-1](data); } rss_sajax_unbusy(); } sajax_debug(func_name + " uri = " + uri + "\n/post = " + post_data); x.send(post_data); sajax_debug(func_name + " waiting.."); delete x; } function rss_sajax_unbusy() { span = document.getElementById('ajax_throbber'); if (span) { devnull = span.parentNode.removeChild(span); } } function rss_sajax_busy() { var span=document.createElement('span'); span.id='ajax_throbber'; span.style.position=(document.all?'absolute':'fixed'); span.style.left = '5px'; span.style.top = '5px'; span.style.padding = '3px'; span.className = 'frame'; span.innerHTML = ''; document.body.appendChild(span); } // wrapper for __exp__submitTag function x___exp__submitTag() { sajax_do_call("__exp__submitTag", x___exp__submitTag.arguments); } // wrapper for __exp__getSideContent function x___exp__getSideContent() { sajax_do_call("__exp__getSideContent", x___exp__getSideContent.arguments); } // wrapper for __exp__getFeedContent function x___exp__getFeedContent() { sajax_do_call("__exp__getFeedContent", x___exp__getFeedContent.arguments); } // wrapper for __exp_addChannel function x___exp_addChannel() { sajax_do_call("__exp_addChannel", x___exp_addChannel.arguments); } // wrapper for __exp__setState function x___exp__setState() { sajax_do_call("__exp__setState", x___exp__setState.arguments); } // wrapper for __exp__rateItem function x___exp__rateItem() { sajax_do_call("__exp__rateItem", x___exp__rateItem.arguments); } // wrapper for __exp_itemRatedCB function x___exp_itemRatedCB() { sajax_do_call("__exp_itemRatedCB", x___exp_itemRatedCB.arguments); } /// End Sajax javscript /// From here on: Copyright (C) 2003 - 2006 Marco Bonetti, gregarius.net /// Released under GPL function miniloginform() { span = document.getElementById('loginformcontainer'); if (span.style.display == 'none') { span.style.display = 'block'; } else { span.style.display = 'none'; } } function loginHandler() { pw = document.getElementById('password'); username = document.getElementById('username'); var re = /[0-9a-f]{32}/ ; if (! re.test(pw.value)) { pw.value = hex_md5(pw.value + username.value); } return true; } function setTags(id,tagss) { tags = tagss.split(' '); var fld=document.getElementById("t" + id); var html = ""; for (i=0;i" + tags[i] + " "; } fld.innerHTML = html; var aspan=document.getElementById("ta" + id); aspan.innerHTML = "edit"; } function submit_tag_cb(ret) { data= ret.split(','); //replace(/[^a-zA-Z0-9\ _\.,]/gi,"") id=data[0]; tags=data[1]; setTags(id,tags); } function submit_tag(id,tags) { x___exp__submitTag(id, tags, submit_tag_cb); } function _et(id) { var actionSpan = document.getElementById("ta" + id); var toggle = actionSpan.firstChild; if (toggle.innerHTML == "submit") { var fld = document.getElementById("tfield" + id); toggle.innerHTML="..."; submit_tag(id,fld.value); } else if (toggle.innerHTML == "edit") { var isIE=document.all?true:false; // the tag container var tc=document.getElementById("t"+id); var tags = tc.innerHTML.replace(/<\/?a[^>]*>(\ $)?/gi,""); //.replace(//gi,""); // submit link toggle.innerHTML="submit"; // cancel link cancel = document.createElement("a"); cancel.style.margin="0 0 0 0.5em"; cancel.innerHTML = "cancel"; cancel.setAttribute("href","#"); if (isIE) { // the IE sucky way cancel.onclick = function() { setTags(id,tags); return false;} } else { // the proper DOM way cancel.setAttribute("onclick","setTags("+id+",'"+tags+"'); return false;"); } actionSpan.appendChild(cancel); tc.innerHTML = ""; // set the caret to the end of the field for bloody IE var control = tc.firstChild; control.onkeyup = function(e) { if (!e) { e = event; e.which = e.keyCode; } switch (e.which) { case 10: case 13: _et(id); return false; break; default: return true; break; } }; control.focus(); if (control.createTextRange) { var range = control.createTextRange(); range.collapse(false); range.select(); } else if (control.setSelectionRange) { control.focus(); var length = control.value.length; control.setSelectionRange(length, length); } } return false; } cs = getCookie('side'); if (!cs) { cs = '1'; } document.currentSide = cs; document.currentSideCache = new Array(); for (i=0;i<3;i++) { document.currentSideCache[i] = null; } function _side(what) { if (document.currentSide == what) { return 0; } document.currentSideCache[document.currentSide] = document.getElementById('channels').innerHTML; if ((content = document.currentSideCache[what]) != null) { _setSideContent_cb( what + "#@#" + content ); } else { x___exp__getSideContent(what, _setSideContent_cb); } } function _setSideContent_cb(ret) { data=ret.split('#@#'); kind=data[0]; content=data[1]; c = document.getElementById('channels').innerHTML; ul = document.getElementById('sidemenu'); lis= ul.getElementsByTagName('li'); for (j=0;j 0) { cidsCookie = cidsCookie + cidsArr[i]; if (i=0;i--) { window.setTimeout('fade('+id+','+(2*i)/10+')', 100*(5-i)); } } else { trash = ul.removeChild(li); } // remove parent elements (heading, ul) if all the children are gone if (!redirect && (ul.getElementsByTagName('li').length == 0)) { pn = ul.parentNode; var ps = ul.previousSibling; while ( ps = ps.previousSibling ) { if ("H3" == ps.nodeName.toUpperCase()) { trash=ps.parentNode.removeChild(ps); break; } } trash = pn.removeChild(ul); } if (redirect) { if (t = document.getElementById("_markReadButton")) { // Maybe we should fix the array of ids also... self.setTimeout('t.click()', 1000); }else{ self.setTimeout('setRedirect()', 1000); } } } } function setRedirect() { document.location = '/rss/'; } function setState_cb(ret) { data=ret.replace(/[^0-9\|]/gi,"").split('|'); id=data[0]; s=data[1]; document.states[id]=s; _ces(id); } function _es(id, state, cid) { if (document.prevState[id] != null) { // if we click the edit icon while editing cancel the edit _ces(id); document.prevState[id] = null; return; } if (document.states[id]) { tmpState =document.states[id]; } else { tmpState =state; } document.prevState[id] = tmpState; if (div = document.getElementById('sad'+id)) { onOk = ''.replace(/_ID_/g,id); onCancel = ''.replace(/_ID_/g,id); extraCode = ''.replace(/_ID_/g,id); onOk += '_ses('+id+','+cid+'); return false;'; if (!onCancel) { onCancel = '_ces('+id+'); return false;'; } if (!extraCode) { extraCode = ''; } div.innerHTML = '' + '
' + '

' + '

' + '

' + '

' + '

' + '

' + '

' + '

' + extraCode + '

' + 'OK' + 'Cancel

' + '
'; div.className = 'ief'; div.style.display = "block"; } } function _ces(id) { if (div = document.getElementById('sad'+id)) { div.className = ''; div.innerHTML = ''; div.style.display='none'; } if (sa = document.getElementById('sa' + id)) { sa.focus(); } } function _ses(id,cid) { s = 0; if ((sfu = document.getElementById('sf'+id+'u')) && sfu.checked) { s += 1; } if ((sfs = document.getElementById('sf'+id+'s')) && sfs.checked) { s += 2; } if ((sfp = document.getElementById('sf'+id+'p')) && sfp.checked) { s += 4; } if ((sff = document.getElementById('sf'+id+'f')) && sff.checked) { s += 16; } if ((p=document.prevState[id]) != s) { if ((s & 1) != (p & 1)) { if (s & 1) { setItemClass(id,'item unread'); c=unreadCnt(1,cid); } else { c = unreadCnt(-1,cid); if ((sel = document.getElementById('show')) && sel.options[sel.selectedIndex].value == 1) { setItemHide(id, (c==0)); } else{ setItemClass(id, 'item even'); } } } if (btn=document.getElementById('ess'+id+'ok')) { btn.innerHTML = '...'; btn.disabled = true; } document.prevState[id] = null; setState(id,s); } else { // state didn't change! _ces(id); } } function unreadCnt(d,channel) { c = null; channels = document.getElementsByTagName("strong"); for(i=0;i