// remote scripting library // (c) copyright 2005 modernmethod, inc var sajax_debug_mode = false; var sajax_request_type = "GET"; 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 = ""; 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]); } 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); } x.send(post_data); sajax_debug(func_name + " uri = " + uri + "/post = " + post_data); sajax_debug(func_name + " waiting.."); delete x; } // wrapper for add_line function x_add_line() { sajax_do_call("add_line", x_add_line.arguments); } // wrapper for refresh function x_refresh() { sajax_do_call("refresh", x_refresh.arguments); } var check_n = 0; function refresh_cb(new_data) { arrData = new_data.split("\n"); for(i=0; i< arrData.length - 1; i ++) { arrDetails = arrData[i].split("|"); strComment = arrDetails[0]; strURL = arrDetails[1]; strSearch = arrDetails[2]; markit_comment(unescape(strSearch), strComment) } } function refresh() { window.status = "Updating..." x_refresh(location.href, refresh_cb); } function add_cb() { // we don't care.. } function add(line, handle) { var line; var handle; if (line == "") return; x_add_line("|" + handle + "|" + line, add_cb); } cstrUnderline = ";text-decoration: none; background: url(http://home.wangjianshuo.com/scripts/php/underline.gif) repeat-x 100% 100%; white-space: nowrap;padding-bottom: 5px;" function markit(strSearch) { markit_comment(strSearch, "You marked it"); } function markit_comment(strSearch, strComment) { objEl = document.body; strHTML = objEl.innerHTML; window.status = strSearch iPos = strHTML.search(strSearch); if(iPos > 0) { str1 = (strHTML.substring(0, iPos)); str2 = (strHTML.substring(iPos,strSearch.length+iPos)); str3 = (strHTML.substring(strSearch.length+iPos)); objEl.innerHTML = (str1 + "" + str2 + "" + str3); } } function OnMouseUp() { txtSelected = document.selection.createRange().text; add(txtSelected, location.href) markit(txtSelected); window.status = "select: " + txtSelected; } document.body.onmouseup = OnMouseUp; refresh();