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;
}
}
}
// -- 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();
}
});