/* * Basic AJAX and XML parsing */ function getDataFromTag(xmlDoc, tag) { try { if (xmlDoc.getElementsByTagName(tag)[0] ) { return xmlDoc.getElementsByTagName(tag)[0].firstChild.nodeValue; } return ""; } catch (err) { return ""; } } function getDataFromTagWithDefault(xmlDoc, tag) { try { if (xmlDoc.getElementsByTagName(tag)[0] ) { return xmlDoc.getElementsByTagName(tag)[0].firstChild.nodeValue; } return ""; } catch (err) { return "-"; } } //2015.08.31 add function getDataFromTagWithNth(xmlDoc, tag, index){ try { if (xmlDoc.getElementsByTagName(tag)[index] ) { return xmlDoc.getElementsByTagName(tag)[index]; } return ""; } catch (err) { return ""; } } function hasError(xmlDoc) { if(xmlDoc) { var errors = xmlDoc.getElementsByTagName("Error"); if (errors.length) { return 1; } return 0; } return 0; } function showError(xmlDoc) { var errors = xmlDoc.getElementsByTagName("Error"); for (var i=0; i 0) request.onreadystatechange = function () { XHRGetTEXTHandle(request, handle); }; else request.onreadystatechange = function () { XHRGetHandle(request, handle,timeoutTimer); }; } try { if (unique == undefined || unique == true) { request.open("GET", urlUnique, async); } else { request.open("GET", url, async); } } catch(err) { return -1; } request.send(null); return 0; } function XHRGetHandle(request, handle,timeoutTimer) { if(request.readyState == 4 && request.status == 200) { if (typeof timeoutTimer != 'undefined') { clearTimeout(timeoutTimer); } if (typeof timeoutTimer != null) { clearTimeout(timeoutTimer); } var sess_stok = getDataFromTag(request.responseXML, "sess_stok"); if (sess_stok != "") { RefreshCsrfStok(request.responseXML); } handle(request.responseXML); } } function XHRGetTEXTHandle(request, handle) // for debug log { if(request.readyState == 4 && request.status == 200) { if (typeof timeoutTimer != 'undefined') { clearTimeout(timeoutTimer); } var sess_stok = getDataFromTag(request.responseXML, "sess_stok"); if (sess_stok != "") { RefreshCsrfStok(request.responseXML); } handle(request.responseText); } } function XHRPost(handle, url, param, async, /*opt*/timeout_secs, /*opt*/timeout_handler,/*opt*/ignoreErr) { var request = null; var param = param; var timeoutTimer; if (window.XMLHttpRequest) { request = new XMLHttpRequest(); } else if (window.ActiveXObject) { request = new ActiveXObject("Microsoft.XMLHTTP"); } if (request == null) { alert("Your browser does not support XMLHttp"); return -1; } request.open("POST", url, async); request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); /* When stok exists, send it for preventing csrf. */ var stoks = $('meta[name=stok]'); if( stoks.length >= 1 ) { request.setRequestHeader("X-Stok", stoks[0].content); } if ((typeof timeout_secs != 'undefined') && (typeof timeout_handler != 'undefined')) { // It's better than ontimeout because of some uncatchable exception(ERR_INSECURE_RESPONSE). // And handle CORS error on IE8 & IE9. timeoutTimer = setTimeout(function() { request.abort(); timeout_handler(); }, timeout_secs * 1000); } if (handle != null) { request.onreadystatechange = function () { XHRPostHandle(request, handle,0,timeoutTimer,ignoreErr); }; } request.send(param); return 0; } function XHRPost_reboot(handle, url, param, async, /*opt*/timeout_secs, /*opt*/timeout_handler) { var request = null; var param = param; var reboot_flag = 1; var timeoutTimer; if (window.XMLHttpRequest) { request = new XMLHttpRequest(); } else if (window.ActiveXObject) { request = new ActiveXObject("Microsoft.XMLHTTP"); } if (request == null) { alert("Your browser does not support XMLHttp"); return -1; } request.open("POST", url, async); request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); /* When stok exists, send it for preventing csrf. */ var stoks = $('meta[name=stok]'); if( stoks.length >= 1 ) { request.setRequestHeader("X-Stok", stoks[0].content); } if (handle != null) { request.onreadystatechange = function () { XHRPostHandle(request, handle,reboot_flag); }; } if ((typeof timeout_secs != 'undefined') && (typeof timeout_handler != 'undefined')) { // It's better than ontimeout because of some uncatchable exception(ERR_INSECURE_RESPONSE). // And handle CORS error on IE8 & IE9. timeoutTimer = setTimeout(function() { request.abort(); timeout_handler(); }, timeout_secs * 1000); } request.send(param); return 0; } function CsrfErrLogout(xmlDoc) { window.location.href = 'Login.html'; } function RefreshCsrfStok(xmlDoc) { var stokValue = getDataFromTag(xmlDoc, "sess_stok"); if(stokValue != "") { var stoks = $('meta[name=stok]'); if( stoks != 'undefined' && stoks.length >= 1 ) { stoks[0].content = stokValue; } } } function XHRPostHandle(request, handle,reboot_flag,timeoutTimer,/*opt*/ignoreErr) { var ResponseXml = null; if(request.readyState == 4 && request.status == 200) { if (typeof timeoutTimer != 'undefined') { clearTimeout(timeoutTimer); } if (typeof timeoutTimer != null) { clearTimeout(timeoutTimer); } var sess_stok = getDataFromTag(request.responseXML, "sess_stok"); if (sess_stok != "") { RefreshCsrfStok(request.responseXML); } else { var error = getDataFromTag(request.responseXML,"Error"); var error_msg = getDataFromTag(request.responseXML,"ErrorMsg"); if (error != "" || error_msg != "") { XHRGet(RefreshCsrfStok, "./cgi-bin/maintenance.cgi?Command=getSessinStok", true); } } if (navigator.userAgent.indexOf("Firefox") != -1) { var error = getDataFromTag(request.responseXML,"parsererror"); if (error != "") { ResponseXml = null; }else { ResponseXml = request.responseXML; } } else{ ResponseXml = request.responseXML; } handle(ResponseXml); } else if(request.readyState == 4 && request.status == 400) { if(reboot_flag == "1" || reboot_flag == 1) ErrorBlock("Bad Request.","gotosystemdefauit(true)"); else ErrorBlock("Bad Request.","window.location.reload(true)"); } else if(request.readyState == 4 && request.status == 404&&(typeof ignoreErr == 'undefined'||ignoreErr == false)) { ErrorBlock("404 Not Found.","window.location.reload(true)"); } } function gotosystemdefauit(){ var url="reboot.html"; if(WhatBrowser.match("IE")!=null) { var referLink = document.createElement('a'); referLink.href = url; document.body.appendChild(referLink); referLink.click(); } else window.location.href = url; } function serializeFormElement(form) { var str = ""; var elem = document.getElementById(form).elements; for(var i = 0; i < elem.length; i++) { if (elem[i].id && elem[i].value) { if (i!=0) { str+="&"; } str +=elem[i].id + "=" + elem[i].value; } } return str; }