var request; // for record content function doRequestAsync(v, func) { try { request = new XMLHttpRequest(); } catch (e) { try { request = new ActiveXObject("MSXML2.XMLHTTP.3.0"); ; } catch (e) { try { request = new ActieXObject("Msxml2.XMLHTTP"); } catch (e) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("You cannot run this web"); return false; } } } } try { request.onreadystatechange = func; request.open("GET", v, true, top.gAccount, top.gPwd); request.setRequestHeader("Cache-Control", "no-cache"); request.setRequestHeader("Content-Type", "text/plain;charset=utf-8"); request.setRequestHeader("Pragma", "no-cache"); request.setRequestHeader("Expires", "0"); request.setRequestHeader("Last-Modified", "Wed, 1 Jan 1997 00:00:00 GMT"); request.setRequestHeader("If-Modified-Since", "01"); request.send(); } catch (e) { alert(v + '\n' + e.description); } } function doXMLDOMRequestAsync(v, func) { var url = "/cgi-bin/system?"; url += "USER=" + top.gAccount + "&PWD=" + top.gPwd + "&"; url += v; xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", url, true); xmlhttp.send(); return xmlhttp; } // -- getCookie // ########################################################################### function getCookie(c_name) { if (document.cookie.length > 0) { var c_start = document.cookie.indexOf(c_name + "="); if (c_start != -1) { c_start = c_start + c_name.length + 1; c_end = document.cookie.indexOf(";", c_start); if (c_end == -1) c_end = document.cookie.length return unescape(document.cookie.substring(c_start, c_end)); } } return "" } // -- setCookie // ########################################################################### function setCookie(c_name, value, expiredays) { var exdate = new Date(); exdate.setDate(exdate.getDate() + expiredays); document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : "; expires=" + exdate.toUTCString()); } // -- idget // ########################################################################### function idget(a) { return document.getElementById(a); } // -- doRequest // ########################################################################### function NewXMLHttpRequest() { if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, // Safari var xmlhttp = new XMLHttpRequest(); } else {// code for IE6, IE5 var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } return xmlhttp; } function doRequest(v) { if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET", v, false); // xmlhttp.timeout = 10000; // default 10 seconds xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlhttp.setRequestHeader("Pragma", "no-cache"); xmlhttp.setRequestHeader("Cache-Control", "no-cache"); xmlhttp.setRequestHeader("Expires", "0"); xmlhttp.setRequestHeader("Last-Modified", "Wed, 1 Jan 1997 00:00:00 GMT"); xmlhttp.setRequestHeader("If-Modified-Since", "-1"); try { xmlhttp.send(null); } catch (e) { window.location.reload(); // catch NS_ERROR_NOT_INITZIALIZED } return xmlhttp.responseText; } function doRequestXML(v) { var xmlhttp = NewXMLHttpRequest(); xmlhttp.open("GET", v, false); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlhttp.setRequestHeader("Pragma", "no-cache"); xmlhttp.setRequestHeader("Cache-Control", "no-cache"); xmlhttp.setRequestHeader("Expires", "0"); xmlhttp.setRequestHeader("Last-Modified", "Wed, 1 Jan 1997 00:00:00 GMT"); xmlhttp.setRequestHeader("If-Modified-Since", "-1"); try { xmlhttp.send(); } catch (e) { window.location.reload(); // catch NS_ERROR_NOT_INITZIALIZED } return xmlhttp.responseXML; } // -- doSplitValue // ########################################################################### function doSplitValue(v) { var r = new Array(); r[0] = ''; r[1] = ''; if (v.substr(0, 4) != 'ERROR') { r[0] = v.slice(0, v.indexOf("=")); r[1] = v.slice(v.indexOf("=") + 1, v.length); if (r[0].substr(r[0].length - 1, 1) == ' ') { r[0] = r[0].substr(0, r[0].length - 1); } if (r[1].substr(r[1].length - 1, 1) == '\'') { r[1] = r[1].substr(0, r[1].length - 1); } if (r[1].substr(0, 1) == '\'') { r[1] = r[1].substr(1, r[1].length - 1); } } else { r[0] = 'ERROR'; r[1] = v.substr(6, v.length - 6); } return r; } // -- V2doSplitValue // ########################################################################### function V2doSplitValue(v) { var r = new Array(); r[0] = ''; r[1] = ''; if (v.substr(0, 4) != 'ERROR') { if (v.indexOf('=') >= 0) { t = v.split("'"); // alert(t[0]+','+t[1]); r[0] = t[0]; r[1] = t[1]; l = r[1].length; if (r[0].substr(r[0].length - 1, 1) == ' ') { r[0] = r[0].substr(0, r[0].length - 1); } if (r[1].substr(r[1].length - 1, 1) == '\'') { r[1] = r[1].substr(0, r[1].length - 1); } if (r[1].substr(0, 1) == '\'') { r[1] = r[1].substr(1, r[1].length - 1); } } } else { r[0] = 'ERROR'; r[1] = v.substr(6, v.length - 6); } return r; } // ################################################################## function SetSelectedValue(e, v) { var i; for (i = 0; i < e.length; i++) { if (e.options[i].value == v) { e.selectedIndex = i; } } } // -- InsertSelectOptions_Number // ########################################################################### function InsertSelectOptions_Number(obj, n_min, n_max) { while (obj.options.length > 0) { obj.remove(0); } var nIdx; for (nIdx = n_min; nIdx <= n_max; nIdx++) { // obj.add(new Option(nIdx, nIdx)); var y = document.createElement('option'); y.text = nIdx; y.value = nIdx; try { obj.add(y, null); // standards compliant } catch (ex) { obj.add(y); // IE only } } } function InsertSelectOptions_Number_2(obj, n_min, n_max, str) { while (obj.options.length > 0) { obj.remove(0); } var nIdx; for (nIdx = n_min; nIdx <= n_max; nIdx++) { // obj.add(new Option(nIdx, nIdx)); var y = document.createElement('option'); y.text = nIdx + str; y.value = nIdx; // alert(y.value); try { obj.add(y, null); // standards compliant } catch (ex) { obj.add(y); // IE only } } } // -- SelectSetOption // ########################################################################### function SelectSetOption(obj, v) { var nIdx; for (nIdx = 0; nIdx < obj.options.length; nIdx++) { if (obj.options[nIdx].value == v) { obj.selectedIndex = nIdx; break; } } } function frame_extent() { // alert(window.frameElement.height); window.frameElement.height = document.body.scrollHeight + 110; window.frameElement.width = document.body.scrollWidth; } function UpdateSelectOptions(obj, items) { selectedItem = obj.value; while (obj.options.length > 0) { obj.remove(0); } items = items.split(","); for (i = 0; i < items.length; i++) { var y = document.createElement('option'); y.text = items[i]; y.value = items[i].replace('.', ''); try { obj.add(y, null); // standards compliant } catch (ex) { obj.add(y); // IE only } // alert(selectedItem + "; " + items[i]); if (selectedItem == items[i]) { obj.selectedIndex = i; } } } function UpdateSelectOptions_2(obj, values, items) { selectedItem = obj.value; while (obj.options.length > 0) { obj.remove(0); } items = items.split(","); values = values.split(","); for (i = 0; i < items.length; i++) { var y = document.createElement('option'); y.text = items[i]; y.value = values[i]; try { obj.add(y, null); // standards compliant } catch (ex) { obj.add(y); // IE only } // alert(selectedItem + "; " + items[i]); if (selectedItem == items[i]) { obj.selectedIndex = i; } } } // NewObj function NewObj(type, id, content, params, title){ var obj = document.createElement(type); if(id) obj.id = id; if (title) obj.title = title; if(content != null){ switch(type){ case 'img': obj.src = content; break; case 'a': obj.href = content; obj.target = "_blank"; obj.innerText = params || content; break; default: if(typeof content == "object") obj.appendChild(content); /* (content.indexOf("TXT_") + content.indexOf("MSG_") > -2) ? obj.appendChild(Lang(content, params)) : JQ(obj).text(content); */ else obj.innerText = content; break; } } return obj; } // // -- Channel // ########################################################################### function channel_id(obj, channel) { var HTML = ""; var i = 0; HTML = '\n'; obj.innerHTML = HTML; } /** * hot key detection * * http://www.openjs.com/scripts/events/keyboard_shortcuts/ Version : 2.01.B By * Binny V A License : BSD */ shortcut = { 'all_shortcuts' : {},// All the shortcuts are stored in this array 'add' : function(shortcut_combination, callback, opt) { // Provide a set of default options var default_options = { 'type' : 'keydown', 'propagate' : false, 'disable_in_input' : false, 'target' : document, 'keycode' : false } if (!opt) opt = default_options; else { for ( var dfo in default_options) { if (typeof opt[dfo] == 'undefined') opt[dfo] = default_options[dfo]; } } var ele = opt.target; if (typeof opt.target == 'string') ele = document.getElementById(opt.target); var ths = this; shortcut_combination = shortcut_combination.toLowerCase(); // The function to be called at keypress var func = function(e) { e = e || window.event; if (opt['disable_in_input']) { // Don't enable shortcut keys in // Input, Textarea fields var element; if (e.target) element = e.target; else if (e.srcElement) element = e.srcElement; if (element.nodeType == 3) element = element.parentNode; if (element.tagName == 'INPUT' || element.tagName == 'TEXTAREA') return; } // Find Which key is pressed if (e.keyCode) code = e.keyCode; else if (e.which) code = e.which; var character = String.fromCharCode(code).toLowerCase(); if (code == 188) character = ","; // If the user presses , when // the type is onkeydown if (code == 190) character = "."; // If the user presses , when // the type is onkeydown var keys = shortcut_combination.split("+"); // Key Pressed - counts the number of valid keypresses - if it // is same as the number of keys, the shortcut function is // invoked var kp = 0; // Work around for stupid Shift key bug created by using // lowercase - as a result the shift+num combination was broken var shift_nums = { "`" : "~", "1" : "!", "2" : "@", "3" : "#", "4" : "$", "5" : "%", "6" : "^", "7" : "&", "8" : "*", "9" : "(", "0" : ")", "-" : "_", "=" : "+", ";" : ":", "'" : "\"", "," : "<", "." : ">", "/" : "?", "\\" : "|" } // Special Keys - and their codes var special_keys = { 'esc' : 27, 'escape' : 27, 'tab' : 9, 'space' : 32, 'return' : 13, 'enter' : 13, 'backspace' : 8, 'scrolllock' : 145, 'scroll_lock' : 145, 'scroll' : 145, 'capslock' : 20, 'caps_lock' : 20, 'caps' : 20, 'numlock' : 144, 'num_lock' : 144, 'num' : 144, 'pause' : 19, 'break' : 19, 'insert' : 45, 'home' : 36, 'delete' : 46, 'end' : 35, 'pageup' : 33, 'page_up' : 33, 'pu' : 33, 'pagedown' : 34, 'page_down' : 34, 'pd' : 34, 'left' : 37, 'up' : 38, 'right' : 39, 'down' : 40, 'f1' : 112, 'f2' : 113, 'f3' : 114, 'f4' : 115, 'f5' : 116, 'f6' : 117, 'f7' : 118, 'f8' : 119, 'f9' : 120, 'f10' : 121, 'f11' : 122, 'f12' : 123 } var modifiers = { shift : { wanted : false, pressed : false }, ctrl : { wanted : false, pressed : false }, alt : { wanted : false, pressed : false }, meta : { wanted : false, pressed : false } // Meta is Mac // specific }; if (e.ctrlKey) modifiers.ctrl.pressed = true; if (e.shiftKey) modifiers.shift.pressed = true; if (e.altKey) modifiers.alt.pressed = true; if (e.metaKey) modifiers.meta.pressed = true; for (var i = 0; k = keys[i], i < keys.length; i++) { // Modifiers if (k == 'ctrl' || k == 'control') { kp++; modifiers.ctrl.wanted = true; } else if (k == 'shift') { kp++; modifiers.shift.wanted = true; } else if (k == 'alt') { kp++; modifiers.alt.wanted = true; } else if (k == 'meta') { kp++; modifiers.meta.wanted = true; } else if (k.length > 1) { // If it is a special key if (special_keys[k] == code) kp++; } else if (opt['keycode']) { if (opt['keycode'] == code) kp++; } else { // The special keys did not match if (character == k) kp++; else { if (shift_nums[character] && e.shiftKey) { // Stupid // Shift // key // bug // created // by // using // lowercase character = shift_nums[character]; if (character == k) kp++; } } } } if (kp == keys.length && modifiers.ctrl.pressed == modifiers.ctrl.wanted && modifiers.shift.pressed == modifiers.shift.wanted && modifiers.alt.pressed == modifiers.alt.wanted && modifiers.meta.pressed == modifiers.meta.wanted) { callback(e); if (!opt['propagate']) { // Stop the event // e.cancelBubble is supported by IE - this will kill // the bubbling process. e.cancelBubble = true; e.returnValue = false; // e.stopPropagation works in Firefox. if (e.stopPropagation) { e.stopPropagation(); e.preventDefault(); } return false; } } } this.all_shortcuts[shortcut_combination] = { 'callback' : func, 'target' : ele, 'event' : opt['type'] }; // Attach the function with the event if (ele.addEventListener) ele.addEventListener(opt['type'], func, false); else if (ele.attachEvent) ele.attachEvent('on' + opt['type'], func); else ele['on' + opt['type']] = func; }, // Remove the shortcut - just specify the shortcut and I will remove the // binding 'remove' : function(shortcut_combination) { shortcut_combination = shortcut_combination.toLowerCase(); var binding = this.all_shortcuts[shortcut_combination]; delete (this.all_shortcuts[shortcut_combination]) if (!binding) return; var type = binding['event']; var ele = binding['target']; var callback = binding['callback']; if (ele.detachEvent) ele.detachEvent('on' + type, callback); else if (ele.removeEventListener) ele.removeEventListener(type, callback, false); else ele['on' + type] = false; } } var debugWindowFlag = 0; var debugMessage = ''; // record method function logMessage(msg) { debugMessage += msg; debugMessage += '
'; } // title logMessage(''); // add hot keys shortcut.add("Ctrl+1", function() { var body = document.getElementsByTagName('BODY')[0]; body.innerHTML += '
' + '
' + '
' + '
'; document.form1 = debugMessage; if (document.form2 == 1) { document.form2 = 0; debugWindowFlag--; } var debugWindow = window.open('http://' + location.host + '/setup/debug.html', 'myWin', 'width=1024,height=600,scrollbars=yes,toolbar=no,location=no'); debugWindowFlag++; if (debugWindowFlag > 1) { debugWindowFlag++; debugWindowFlag = 0; debugWindow.close(); } });