var firstTime=true; function sendAjaxRequest(async, url, formObject, divsToPopulate, simulateButtonSubmit, buttonId, postProcessCallFunc, callBack, showMessage, messageIndex, element, loadMessage, width, height){ if(firstTime == false) { return; } firstTime = false; if (window.ActiveXObject) { // Internet Explorer try { httpRequest = new ActiveXObject( 'Microsoft.XMLHTTP' ); } catch( e ) { try { httpRequest = new ActiveXObject( 'Msxml2.XMLHTTP' ); } catch( e ) { // Do nothing; we failed. }//try again }//try to make the object //httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); }else if (window.XMLHttpRequest){ httpRequest = new XMLHttpRequest(); if (httpRequest.overrideMimeType) { // set type accordingly to anticipated content type httpRequest.overrideMimeType('text/html'); } } //httpRequest.setRequestHeader('Cache-Control', 'no-cache'); //httpRequest.setRequestHeader('Pragma', 'no-cache'); httpRequest.open("POST", url, async); if (showMessage) { showAJAXLoadMessage(messageIndex, element, loadMessage, width, height); } //httpRequest.onreadystatechange = function(){ var function_body = function(){ if (httpRequest.readyState == 4){ if(httpRequest.status == 200) { var httpDATA = httpRequest.responseText; var divType = typeof(divsToPopulate); var divsPopulated = ""; if (divType == 'string') { var innerHTMLForDiv = parseAjaxDataForDiv(divsToPopulate, httpDATA); if (innerHTMLForDiv != null) { // document.getElementById(divsToPopulate).innerHTML = innerHTMLForDiv; dynamicDivPopulate(divsToPopulate, innerHTMLForDiv); divsPopulated = divsToPopulate; } } else { divsPopulated = new Array(divsToPopulate.length); for (i = 0 ; i < divsToPopulate.length; i++) { var divTagId = divsToPopulate[i]; var innerHTMLForDiv = parseAjaxDataForDiv(divTagId, httpDATA); divsPopulated[i] = null; if (innerHTMLForDiv != null) { // document.getElementById(divTagId).innerHTML = innerHTMLForDiv; dynamicDivPopulate(divTagId, innerHTMLForDiv); divsPopulated[i] = divTagId; } } } if (showMessage) { hideAJAXLoadMessage(messageIndex); } firstTime = true; }else { // THIS WILL HAPPEN when we have ERROR loading the page. if (showMessage) { hideAJAXLoadMessage(messageIndex); } firstTime = true; } if (postProcessCallFunc == true) { eval(callBack); callBackFunc(divsPopulated); } } } ; // On ready state change function: var function_onreadystatechange = function () { function_body( httpRequest ); }//End anonymous onreadystatechange function try { // Firefox uses onload, but only when you have multiple AJAX requests going. // Usually you can bind to onreadystatechange, but only if you are not doing too many requests at once. httpRequest.onload = function( e ) { var evt = window.event ? window.event : e; var targ = evt.target ? evt.target : evt.srcElement; function_body( targ ); } } catch( e ) { // IE does not have an onload handler, so bind the onreadystatechange httpRequest.onreadystatechange = function_onreadystatechange; } httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); httpRequest.setRequestHeader("Content-length", 0); var postData = null; if (null != formObject) { var data =loopThroughElements(formObject,simulateButtonSubmit, buttonId); if (data != null) { postData = data.substring(1, data.length); if (simulateButtonSubmit == true) { if (postData != null) { postData += "&" + buttonId + "=true"; } else { postData = buttonId + "=true"; } } if (postData != null) { httpRequest.setRequestHeader("Content-length", postData.length); } } } else { if (simulateButtonSubmit == true) { postData = buttonId + "=true"; httpRequest.setRequestHeader("Content-length", postData.length); } } httpRequest.setRequestHeader("Connection", "close"); if (postData != null) { httpRequest.send(postData); } else { httpRequest.send(""); } } function dynamicDivPopulate(divId, htmlData){ if (document.getElementById(divId)) { document.getElementById(divId).innerHTML = htmlData; var iframe = document.getElementById('if_'+divId); if(iframe != null){ var layer = document.getElementById(divId); iframe.style.display = 'block'; iframe.style.width = layer.offsetWidth; iframe.style.height = layer.offsetHeight; iframe.style.left = layer.offsetLeft; iframe.style.top = layer.offsetTop; } } } // This function returns data for the div based on our custom html. function parseAjaxDataForDiv(divTagId, httpDATA){ var splitTag = ""; var data = httpDATA.split(splitTag); if (data != null && data.length >= 3) { return data[1]; } //error msg //return httpDATA; } function showAJAXLoadMessage(messageIndex, element, loadMessage, width, height){ var componentObject = document.getElementById(element.id); nLeftPos = findPosX(componentObject); nTopPos = findPosY(componentObject); nextAvailableMessage = "ajaxLoadMessage_" + messageIndex; // show IFRAME var iframe = document.getElementById('if_'+nextAvailableMessage); iframe.src = "/include/load_ajax_refresh_img.jsp"; var isIE = false; if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { isIE = true; } /*if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ var ffversion=new Number(RegExp.$1) // capture x.x portion and store as a number if (ffversion>=3) document.write("You're using FF 3.x or above") else if (ffversion>=2) document.write("You're using FF 2.x") else if (ffversion>=1) document.write("You're using FF 1.x") }*/ //alert(iframe.document.body.style.background); //iframe.document.body.style.background ="transparent"; iframe.style.width = width; iframe.style.height = height; iframe.style.left = nLeftPos-30; iframe.style.top = nTopPos-6; if (isIE) { iframe.style.top = nTopPos - 12; } iframe.style.display = 'block'; /*alert(iframe.document.body.style.background); var messageStyleObject = document.getElementById(nextAvailableMessage); messageStyleObject.style.top = nTopPos; messageStyleObject.style.left = nLeftPos; messageStyleObject.style.width = width; messageStyleObject.style.height = height; messageStyleObject.style.background ="transparent";*/ //messageStyleObject.innerHTML = '
'; //messageStyleObject.innerHTML = '
'; //messageStyleObject.style.display = 'block'; //alert(messageStyleObject.style.background); do_disable_buttons(true); } function hideAJAXLoadMessage(messageIndex){ nextAvailableMessage = "ajaxLoadMessage_" + messageIndex; var messageStyleObject = document.getElementById(nextAvailableMessage); messageStyleObject.style.display = 'none'; var iframe = document.getElementById('if_'+nextAvailableMessage); iframe.style.display = 'none'; do_disable_buttons(false) } // This function loops through the form // and finds all elements and generates // name value pairs function loopThroughElements(formObject,simulateButtonSubmit, buttonId){ var data = ""; var last=formObject.elements.length-1; for (var i=0; i)", "g" ),""); var value = encodeURI(myElement.value); var ret = name + "=" + value; return ret; } if (type == 'select-one') { if (myElement.selectedIndex >= 0) { var value = myElement.options[myElement.selectedIndex].value; var ret = name + "=" + value; return ret; } return ""; } if(type == 'checkbox') { var value = "false"; if (myElement.checked) { value = "true"; } var ret = name + "=" + value; return ret; } if(type == 'radio') { var value = ""; if (myElement.checked) { value = encodeURI(myElement.value); var ret = name + "=" + value; return ret; } } return ""; } function findPosX(obj){ var curleft = 0; if(obj.offsetParent) while(1){ curleft += obj.offsetLeft; if(!obj.offsetParent) break; obj = obj.offsetParent; }else if(obj.x) curleft += obj.x; return curleft; } function findPosY(obj){ var curtop = 0; if(obj.offsetParent) while(1){ curtop += obj.offsetTop; if(!obj.offsetParent) break; obj = obj.offsetParent; } else if(obj.y) curtop += obj.y; return curtop; } function do_disable_buttons(disable) { if (typeof(disableButtons) != 'undefined') { var length = disableButtons.length; for (i=0; i