function AjaxRequest()
{
var req =new Object();
req.timeout =null;
req.generateUniqueUrl =true;
req.url =window.location.href;
req.method ="GET";
req.async =true;
req.username =null;
req.password =null;
req.parameters =new Object();
req.requestIndex =AjaxRequest.numAjaxRequests++;
req.responseReceived =false;
req.groupName =null;
req.queryString ="";
req.responseText =null;
req.responseXML =null;
req.status =null;
req.statusText =null;
req.aborted =false;
req.xmlHttpRequest =null;
req.onTimeout=null;
req.onLoading=null;
req.onLoaded=null;
req.onInteractive=null;
req.onComplete=null;
req.onSuccess=null;
req.onError=null;
req.onGroupBegin=null;
req.onGroupEnd=null;
req.xmlHttpRequest =AjaxRequest.getXmlHttpRequest();
if(req.xmlHttpRequest==null) {
return null;
}
req.xmlHttpRequest.onreadystatechange = function(){
if(req==null || req.xmlHttpRequest==null){
return;
}
if(req.xmlHttpRequest.readyState==1){
req.onLoadingInternal(req);
}
if(req.xmlHttpRequest.readyState==2){
req.onLoadedInternal(req);
}
if(req.xmlHttpRequest.readyState==3){
req.onInteractiveInternal(req);
}
if(req.xmlHttpRequest.readyState==4){
req.onCompleteInternal(req);
}
};
req.onLoadingInternalHandled=false;
req.onLoadedInternalHandled=false;
req.onInteractiveInternalHandled=false;
req.onCompleteInternalHandled=false;
req.onLoadingInternal= function(){
if(req.onLoadingInternalHandled){
return;
}
AjaxRequest.numActiveAjaxRequests++;
if(AjaxRequest.numActiveAjaxRequests==1 && typeof(window['AjaxRequestBegin'])=="function"){
AjaxRequestBegin();
}
if(req.groupName!=null){
if(typeof(AjaxRequest.numActiveAjaxGroupRequests[req.groupName])=="undefined"){
AjaxRequest.numActiveAjaxGroupRequests[req.groupName] =0;
}
AjaxRequest.numActiveAjaxGroupRequests[req.groupName]++;
if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName]==1 && typeof(req.onGroupBegin)=="function"){
req.onGroupBegin(req.groupName);
}
}
if(typeof(req.onLoading)=="function"){
req.onLoading(req);
}
req.onLoadingInternalHandled=true;
};
req.onLoadedInternal=function(){
if(req.onLoadedInternalHandled){
return;
}
if(typeof(req.onLoaded)=="function"){
req.onLoaded(req);
}
req.onLoadedInternalHandled=true;
};
req.onInteractiveInternal= function(){
if(req.onInteractiveInternalHandled){
return;
}
if(typeof(req.onInteractive)=="function"){
req.onInteractive(req);
}
req.onInteractiveInternalHandled=true;
};
req.onCompleteInternal= function(){
if(req.onCompleteInternalHandled || req.aborted){
return;
}
req.onCompleteInternalHandled=true;
AjaxRequest.numActiveAjaxRequests--;
if(AjaxRequest.numActiveAjaxRequests==0 && typeof(window['AjaxRequestEnd'])=="function"){
AjaxRequestEnd(req.groupName);
}
if(req.groupName!=null){
AjaxRequest.numActiveAjaxGroupRequests[req.groupName]--;
if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName]==0 && typeof(req.onGroupEnd)=="function"){
req.onGroupEnd(req.groupName);
}
}
req.responseReceived =true;
req.status =req.xmlHttpRequest.status;
req.statusText =req.xmlHttpRequest.statusText;
req.responseText =req.xmlHttpRequest.responseText;
req.responseXML =req.xmlHttpRequest.responseXML;
if(typeof(req.onComplete)=="function"){
req.onComplete(req);
}
if(req.xmlHttpRequest.status==200 && typeof(req.onSuccess)=="function"){
req.onSuccess(req);
} else
if(typeof(req.onError)=="function"){
req.onError(req);
}
delete req.xmlHttpRequest['onreadystatechange'];
req.xmlHttpRequest =null;
};
req.onTimeoutInternal= function(){
if(req!=null && req.xmlHttpRequest!=null && !req.onCompleteInternalHandled){
req.aborted =true;
req.xmlHttpRequest.abort();
AjaxRequest.numActiveAjaxRequests--;
if(AjaxRequest.numActiveAjaxRequests==0 && typeof(window['AjaxRequestEnd'])=="function"){
AjaxRequestEnd(req.groupName);
}
if(req.groupName!=null){
AjaxRequest.numActiveAjaxGroupRequests[req.groupName]--;
if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName]==0 && typeof(req.onGroupEnd)=="function"){
req.onGroupEnd(req.groupName);
}
}
if(typeof(req.onTimeout)=="function"){
req.onTimeout(req);
}
delete req.xmlHttpRequest['onreadystatechange'];
req.xmlHttpRequest =null;
}
};
req.process = function(){
if(req.xmlHttpRequest!=null){
if(req.generateUniqueUrl && req.method=="GET"){
req.parameters["AjaxRequestUniqueId"] =new Date().getTime() + "" + req.requestIndex;
}
var content =null;
for(var i in req.parameters){
if(req.queryString.length>0){
req.queryString +="&";
}
req.queryString +=encodeURIComponent(i) + "=" + encodeURIComponent(req.parameters[i]);
}
if(req.method=="GET"){
if(req.queryString.length>0){
req.url +=((req.url.indexOf("?")>-1)?"&":"?") + req.queryString;
}
}
req.xmlHttpRequest.open(req.method,req.url,req.async,req.username,req.password);
if(req.method=="POST"){
if(typeof(req.xmlHttpRequest.setRequestHeader)!="undefined"){
req.xmlHttpRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
}
content =req.queryString;
}
if(req.timeout>0){
setTimeout(req.onTimeoutInternal,req.timeout);
}
req.xmlHttpRequest.send(content);
}
};
req.handleArguments = function(args){
for(var i in args){
if(typeof(req[i])=="undefined"){
req.parameters[i] =args[i];
} else{
req[i] =args[i];
}
}
};
req.getAllResponseHeaders = function(){if(req.xmlHttpRequest!=null){if(req.responseReceived){return req.xmlHttpRequest.getAllResponseHeaders();}logMessage("Cannot getAllResponseHeaders because a response has not yet been received");}};
req.getResponseHeader = function(headerName){
if(req.xmlHttpRequest!=null){
if(req.responseReceived){
return req.xmlHttpRequest.getResponseHeader(headerName);
}
logMessage("Cannot getResponseHeader because a response has not yet been received");
}
};
return req;
}
AjaxRequest.getXmlHttpRequest=function(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
} else
if(window.ActiveXObject){/*@cc_on @*/
/*@if(@_jscript_version >=5)
try{return new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(E){return null;}}@end @*/
} else {
return null;
}
};
AjaxRequest.isActive =function(){
return(AjaxRequest.numActiveAjaxRequests>0);
};
AjaxRequest.get=function(args){
AjaxRequest.doRequest("GET",args);
};
AjaxRequest.post=function(args){
AjaxRequest.doRequest("POST",args);
};
AjaxRequest.doRequest =function(method,args){
if(typeof(args)!="undefined" && args!=null){
var myRequest =new AjaxRequest();
myRequest.method =method;
myRequest.handleArguments(args);
myRequest.process();
}
};
AjaxRequest.submit = function(theform, args){
var myRequest = new AjaxRequest();
if(myRequest==null){
return false;
}
var serializedForm =AjaxRequest.serializeForm(theform);
myRequest.method =theform.method.toUpperCase();
myRequest.url =theform.action;
myRequest.handleArguments(args);
myRequest.queryString =serializedForm;
myRequest.process();
return true;
};
AjaxRequest.serializeForm=function(theform){
var els =theform.elements;
var len =els.length;
var queryString ="";
this.addField = function(name,value){
if(queryString.length>0){
queryString +="&";
}
queryString +=encodeURIComponent(name) + "=" + encodeURIComponent(value);
};
for(var i=0;i<len;i++){
var el =els[i];
if(!el.disabled){
switch(el.type){
case 'text':
case 'password':
case 'hidden':
case 'textarea':
this.addField(el.name,el.value);
break;
case 'select-one':
if(el.selectedIndex>=0){
this.addField(el.name,el.options[el.selectedIndex].value);
}
break;
case 'select-multiple':
for(var j=0;j<el.options.length;j++){
if(el.options[j].selected){
this.addField(el.name,el.options[j].value);
}
}
break;
case 'checkbox':
case 'radio':
if(el.checked){
this.addField(el.name,el.value);
}
break;
}
}
}
return queryString;
};
AjaxRequest.numActiveAjaxRequests =0;
AjaxRequest.numActiveAjaxGroupRequests =new Object();
AjaxRequest.numAjaxRequests =0;
var gSentValue = null;
var gSenderName = null;
function PrepareSubmitter(aSender){
var i=0;
var j=0;
var xItem;
var xSubmitFormOriginal = getSubmitForm();
var xSubmitForm = xSubmitFormOriginal.cloneNode(true);
if (xSubmitForm.childNodes.length == 0 ) {
for (i=0; i<window.document.forms.length;i++){
if (window.document.forms.item(i).name == 'SubmitForm') {
xSubmitFormOriginal = window.document.forms.item(i);
logMessage('found submitform: ' + xSubmitFormOriginal.elements.length);
break;
}
}
logMessage('Adding child nodes');
logMessage('child nodes:' + xSubmitFormOriginal.childNodes.length);
for (j=xSubmitFormOriginal.elements.length-1;j>=0;j--) {
xItem = cloneNode(xSubmitFormOriginal.elements.item(j));
xSubmitForm.appendChild(xItem);
logMessage(xSubmitFormOriginal.elements.item(j).name + ' ' + xSubmitFormOriginal.elements.item(j).type)
}
}
logMessage(xSubmitForm.childNodes.length);
if (xSubmitForm != null) {
var xName = '';
for (j=xSubmitForm.childNodes.length-1;j>=0;j--) {
xItem = xSubmitForm.childNodes.item(j);
xName=xItem.name;
if (xItem.tagName =='INPUT') {
if ((xName!="IW_Action") && (xName!="IW_ActionParam") && (xName!="IW_FormName") && (xName!="IW_FormClass") && (xName!="IW_width") && (xName!="IW_height") && (xName!="IW_TrackID_") && (xName!="IW_SessionID_")) {
if (!containsName(xName)) { // Remove all hidden fields except those that have new content
xSubmitForm.removeChild(xItem)
}
}
} else {
xSubmitForm.removeChild(xItem);
}
}
gSentValue = null;
for (j = 0; j < xSubmitForm.childNodes.length; j++) {
xItem = xSubmitForm.childNodes.item(j);
LocateInputElement(xItem.name, xSubmitForm, ProcessElement);
if ((xItem.name > '') && !containsName(xItem.name)) {
window.ChangedControls += xItem.name + ",";
}
if (aSender != null && xItem != null && xItem.name == aSender.name) {
gSentValue = xItem.value;
gSenderName = aSender.name;
}
}
if (aSender != null) {
if (!xSubmitForm.IW_Action){
for (i=0; i<xSubmitForm.childNodes.length; i++ ) {
if (xSubmitForm.childNodes.item(i).name == 'IW_Action' ){
xSubmitForm.childNodes.item(i).value = aSender.name;
break;
}
}
} else {
xSubmitForm.IW_Action.value=aSender.name;
}
}
}
return xSubmitForm;
}
function modifiers(lEvent)
{
return (lEvent.altKey ? "ALT_MASK," : "")+ (lEvent.ctrlKey ? "CTRL_MASK," : "")+ (lEvent.metaKey ? "META_MASK," : "")+ (lEvent.shiftKey ? "SHIFT_MASK" : "");
}
var eventGenerators = new Array(
null, //  "abort"
function(lEvent) { // "blur"
return "";
},
function(lEvent) { // "change"
return "";
},
function(lEvent) { // "click"
if (ie4) {
return "&x=" + lEvent.offsetX + "&y=" + lEvent.offsetY + "&which="+ lEvent.button + "&modifiers=" + modifiers(lEvent);
} else {
return "&x=" + lEvent.layerX + "&y=" + lEvent.layerY + "&which="+ lEvent.which + "&modifiers=" + modifiers(lEvent);
}
},
function(lEvent) { // "dblclick"
if (ie4) {
return "&x=" + lEvent.offsetX + "&y=" + lEvent.offsetY + "&which="+ lEvent.button + "&modifiers=" + modifiers(lEvent);
} else {
return "&x=" + lEvent.layerX + "&y=" + lEvent.layerY + "&which="+ lEvent.which + "&modifiers=" + modifiers(lEvent);
}
},
function(lEvent) { // "dragdrop"
return "";
},
null, // "error"
function(lEvent) { // "focus"
return "";
},
function(lEvent) { // "keydown"
if (ie4) {
return "&x=" + lEvent.offsetX + "&y=" + lEvent.offsetY + "&which="+ lEvent.keyCode + "&modifiers=" + modifiers(lEvent);
} else {
return "&x=" + lEvent.layerX + "&y=" + lEvent.layerY + "&which="+ lEvent.which + "&modifiers=" + modifiers(lEvent);
}
},
function(lEvent) { // "keypress"
if (ie4) {
return "&x=" + lEvent.offsetX + "&y=" + lEvent.offsetY + "&which="+ lEvent.keyCode + "&modifiers=" + modifiers(lEvent);
} else {
return "&x=" + lEvent.layerX + "&y=" + lEvent.layerY + "&which="+ lEvent.which + "&modifiers=" + modifiers(lEvent);
}
},
function(lEvent) { // "keyup"
if (ie4) {
return "&x=" + lEvent.offsetX + "&y=" + lEvent.offsetY + "&which="+ lEvent.keyCode + "&modifiers=" + modifiers(lEvent);
} else {
return "&x=" + lEvent.layerX + "&y=" + lEvent.layerY + "&which="+ lEvent.which + "&modifiers=" + modifiers(lEvent);
}
},
function(lEvent) { // "load"
return "";
},
function(lEvent) { // "mousedown"
if (ie4) {
return "&x=" + lEvent.offsetX + "&y=" + lEvent.offsetY + "&which="+ lEvent.button + "&modifiers=" + modifiers(lEvent);
} else {
return "&x=" + lEvent.layerX + "&y=" + lEvent.layerY + "&which="+ lEvent.which + "&modifiers=" + modifiers(lEvent);
}
},
function(lEvent) { // "mousemove"
if (ie4) {
return "&x=" + lEvent.offsetX + "&y=" + lEvent.offsetY;
} else {
return "&x=" + lEvent.layerX + "&y=" + lEvent.layerY;
}
},
function(lEvent) { // "mouseout"
if (ie4) {
return "&x=" + lEvent.offsetX + "&y=" + lEvent.offsetY;
} else {
return "&x=" + lEvent.layerX + "&y=" + lEvent.layerY;
}
},
function(lEvent) { // "mouseover"
if (ie4) {
return "&x=" + lEvent.offsetX + "&y=" + lEvent.offsetY;
} else {
return "&x=" + lEvent.layerX + "&y=" + lEvent.layerY;
}
},
function(lEvent) { // "mouseup",
if (ie4) {
return "&x=" + lEvent.offsetX + "&y=" + lEvent.offsetY + "&which="+ lEvent.button + "&modifiers=" + modifiers(lEvent);
} else {
return "&x=" + lEvent.layerX + "&y=" + lEvent.layerY + "&which="+ lEvent.which + "&modifiers=" + modifiers(lEvent);
}
},
null, // "move",
null, // "reset",
null, // "resize",
function(lEvent) { // "select"
return "";
},
null, // "submit"
null // "unload"
);
function constructEventURL(lEvent)
{
var j;
var eventName = null;
for (j=0; j < eventList.length; j ++) {
if (eventList[j] == lEvent.type) {
eventName = lEvent.type;
break;
}
}
var url = "";
if (eventName != null) {
var eventFunction = eventGenerators[j];
url += eventFunction(lEvent);
}
return url;
}
function SendPostRequest(eventParams, aSender, aCallback) {
var aSessionInfo = '/' + GTrackID + '/' + GAppID;
var xSubmitForm = PrepareSubmitter(aSender);
var aURL = GURLBase + '/callback' + aSessionInfo + '?callback=' + aCallback;
window.ChangedControls = "";
xSubmitForm.action = aURL + eventParams;
logMessage('Ajax Submitting Form : ' + xSubmitForm);
logMessage('Action : ' + xSubmitForm.action);
logMessage('Elements: ' + xSubmitForm.childNodes.length);
for (i=0; i<xSubmitForm.childNodes.length; i++ ) {
var xItem = xSubmitForm.childNodes.item(i);
logMessage(xItem.name + ' = ' + xItem.value);
}
if (PreScript == true) {
PreProgressScript();
}
var status = AjaxRequest.submit(
xSubmitForm, {
'onSuccess':function(req)
{
var xmldoc;
xmldoc = loadAjaxResponse(req.responseText);
processAjaxResponse(xmldoc);
if (PostScript == true) {
PostProgressScript();
}
processEventQueue();
window.eventProcessing = false;
}
,'onError':function(req) {
window.eventProcessing = false;
if (req.responseText == "") {
window.serverProblem = true;
}
logMessage('Ajax-Error!\nStatusText='+req.statusText+'\nContents='+req.responseText);
}
}
);
return status;
}
window.serverProblem = false
window.ChangedControls = "";
window.eventProcessing = false;
function updateChangeEvent(componentName) {
OnControlContentChange(componentName);
}
function containsName(controlName)
{
var indexOf = window.ChangedControls.indexOf(controlName + ",");
return indexOf >= 0;
}
function OnControlContentChange(event)
{
var xEvent;
var xTarget;
if (event.id){
xTarget = event;
} else {
xEvent = event ? event : window.event;
xTarget = xEvent.srcElement ? xEvent.srcElement : xEvent.target;
}
while (xTarget.id == "") {
if (ie4 || opera_browser) {
xTarget = xTarget.parentElement;
} else {
xTarget =xTarget.parentNode;
}
}
var xControlName = xTarget.id;
if (xTarget.name) {
xControlName = xTarget.name;
}
if (!containsName(xControlName)) {
window.ChangedControls += xControlName + ",";
logMessage('changed control: ' + xControlName);
}
}
function processAjaxEvent(event, aSender, aCallback, aDirectSend, aSendControl, aAppend)
{
var lEvent = event ? event : window.event;
var eventParams = "";
if (lEvent) {
eventParams = constructEventURL(lEvent);
}
executeAjaxEvent(eventParams, aSender, aCallback, aDirectSend, aSendControl, aAppend);
}
window.eventQueue = new Array();
window.lastEvent = null;
function processEventQueue()
{
if (eventQueue.length > 0) {
var f = window.eventQueue.shift();
f();
} else {
window.lastEvent = null;
}
}
function executeAjaxEvent(eventParams, aSender, aCallback, aDirectSend, aSendControl, aAppend)
{
logMessage("Process callback " + aCallback);
var obj = null;
if (window.serverProblem) {
return;
}
if (!window.eventProcessing) {
if (aDirectSend) {
logMessage("Direct processing " + aCallback);
window.eventProcessing = true;
SendRequest(eventParams, aSender, aCallback, aSendControl, aAppend);
} else {
logMessage("Delayed processing " + aCallback);
window.eventProcessing = true;
obj = {
method: function (eventParams, aSender, aCallback, aSendControl, aAppend) {
SendRequest(eventParams, aSender, aCallback, aSendControl, aAppend);
}
}
window.setTimeout(delegate(obj, obj.method, eventParams, aSender, aCallback, aSendControl, aAppend), 10);
}
} else {
obj = {
method: function (eventParams, aSender, aCallback, aSendControl, aAppend) {
SendRequest(eventParams, aSender, aCallback, aSendControl, aAppend);
}
}
logMessage("Event queue length " + eventQueue.length);
logMessage("Append callback " + aCallback);
window.eventQueue.push(delegate(obj, obj.method, eventParams, aSender, aCallback, aSendControl, aAppend));
}
}
function SendRequest(eventParams, aSender, aCallback, aSendControl, aAppend)
{
try {
if (aAppend || window.lastEvent == null || window.eventQueue.length == 0 || window.lastEvent != aCallback) {
window.lastEvent = aCallback;
logMessage("Processing " + aCallback);
if (aSender != null) {
window.ChangedControls += aSender.id + ",";
}
if (window.ChangedControls.length == 0) {
logMessage('Performing AJAX Get ...');
var aURL;
var aSessionInfo = '/' + GTrackID + '/' + GAppID;
if (aSendControl && aSender != null) {
aURL = GURLBase + '/callback' + aSessionInfo + '?callback=' + aCallback + '&' + aSender.name + '=' + aSender.value;
} else {
aURL = GURLBase + '/callback' + aSessionInfo + '?callback=' + aCallback;
}
aURL = aURL + eventParams;
AjaxRequest.get(
{
'url':aURL
,'onSuccess':function(req)
{
var xmldoc;
xmldoc = loadAjaxResponse(req.responseText);
processAjaxResponse(xmldoc);
processEventQueue();
window.eventProcessing = false;
}
,'onError':function(req){
window.eventProcessing = false;
if (req.responseText == "") {
window.serverProblem = true;
}
logMessage('Callback Error!\nStatusText='+req.statusText+'\nContents='+req.responseText);
}
}
);
} else {
logMessage('Performing AJAX Post ...');
return SendPostRequest(eventParams, aSender, aCallback);
}
} else {
logMessage("Ignore callback " + aCallback);
processEventQueue();
}
}
catch (e){
logMessage('Exception in function SendRequest(): ' + e)
}
}
function loadAjaxResponse(aResponse)
{
if (window.ActiveXObject) { // IE
xXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xXmlDoc.async = false;
xXmlDoc.loadXML(aResponse);
} else { // Mozilla
xXmlDoc = (new DOMParser()).parseFromString(aResponse, "text/xml");
}
return xXmlDoc;
}
function processAjaxResponse(aXmlDoc)
{
var xSubmitForm = getSubmitForm();
var xData = aXmlDoc.getElementsByTagName("response");
if (xData == null || xData.length != 1) {
return;
}
var xTrackID = aXmlDoc.getElementsByTagName("submit");
if (xTrackID.length > 0) {
xSubmitForm.action = xTrackID[0].lastChild.nodeValue;
}
var xUpdate = aXmlDoc.getElementsByTagName("update");
if (xUpdate.length > 0) {
processAjaxUpdate(xUpdate[0].childNodes);
}
var xExecute = aXmlDoc.getElementsByTagName("execute");
if (xExecute.length > 0) {
processAjaxExecute(xExecute[0].childNodes);
}
}
function processAjaxUpdate(aUpdateElements)
{
for (var i = 0; i < aUpdateElements.length; i++) {
var xElement = aUpdateElements[i];
if (xElement.nodeType != 1) {
continue;
}
processNodeElement(xElement);
}
}
function processAjaxExecute(aExecuteElements)
{
for (var i = 0; i < aExecuteElements.length; i ++) {
var xElement = aExecuteElements[i];
if (xElement.nodeType != 1) {
continue;
}
eval(xElement.lastChild.nodeValue);
}
}
function processNodeElement(aElement)
{
var xID = aElement.getAttribute("id").toUpperCase();
var xType = aElement.getAttribute("type").toUpperCase();
if (xID != null) {
var xObject = IWTop().FindElem(xID);
if (xObject != null) {
for (var i = 0; i < aElement.childNodes.length; i++) {
if (aElement.childNodes[i].nodeType != 1) {
continue;
}
var xPropName = aElement.childNodes[i].nodeName;
if (aElement.childNodes[i].childNodes.length > 0) {
var xPropValue = '';
for(var n=0; n<aElement.childNodes[i].childNodes.length; n++) {
xPropValue += aElement.childNodes[i].childNodes[n].nodeValue;
}
} else {
var xPropValue = null;
}
if (xPropValue == null ){
xPropValue = '';
}
if (xPropName == "text" || xPropName == "caption") {
if (xType == "IWCHECKBOX") {
var xControl = IWTop().FindElem(xID + "_CHKBCAPTION");
xControl.innerHTML = xPropValue;
}
else if (xType == "IWRADIOBUTTON") {
var xControl = IWTop().FindElem(xID + "_CAPTRADIOBUTTON");
xControl.innerHTML = xPropValue;
}
else {
xObject.value = xPropValue;
}
} else if (xPropName == "innerhtml") {
if (!containsName(xID)) {
if (xObject.innerHTML != xPropValue) {
xObject.innerHTML = xPropValue;
}
}
} else if (xPropName == "textcontent") {
if (!containsName(xID)) {
if (xObject.textContent){
if (xObject.textContent != xPropValue) {
xObject.textContent = xPropValue;
}
}
if (xObject.innerText){
if (xObject.innerText != xPropValue) {
xObject.innerText = xPropValue;
}
}
}
} else if (xPropName == "css") {
xObject.className = xPropValue;
/* Style Sheet stuff */
} else if (xPropName == "style") {
var xItemsNode = aElement.childNodes[i];
for (var ii = 0; ii < xItemsNode.childNodes.length; ii++) {
if (xItemsNode.childNodes[ii].nodeType != 1) {
continue;
}
var xItemNode = xItemsNode.childNodes[ii];
if (xItemNode.nodeName == "attribute") {
var xPropertyName = xItemNode.getAttribute("name");
var xPropertyValue;
if (xItemNode.lastChild != null) {
xPropertyValue = xItemNode.lastChild.nodeValue;
} else {
xPropertyValue = "";
}
eval("xObject.style." + xPropertyName + "=\"" + xPropertyValue + "\"");
}
}
} else if (xPropName == "enabled") {
if (xPropValue == "true") {
if (xType == "IWCHECKBOX") {
var xControl = IWTop().FindElem(xID + "_CHECKBOX");
xControl.removeAttribute("disabled");
} else {
xObject.disabled = false;
}
} else {
if (xType == "IWCHECKBOX") {
var xControl = IWTop().FindElem(xID + "_CHECKBOX");
xControl.setAttribute("disabled","true");
} else {
xObject.disabled = true;
}
}
} else if (xPropName == "readonly") {
if (xPropValue == "true") {
xObject.readOnly = true;
} else {
xObject.readOnly = false;
}
} else if (xPropName == "MaxLength") {
xObject.setAttribute("maxLength", xPropValue);
} else if (xPropName == "hint") {
logMessage("hint needs to be implemented to perform update");
} else if (xPropName == "src") {
xObject.src = xPropValue;
} else if (xPropName == "checked") {
if (xType == "IWCHECKBOX") {
var xControl = IWTop().FindElem(xID + "_CHECKBOX");
xPropValue = xPropValue == "true";
if (xControl.checked != xPropValue) {
xControl.checked = xPropValue;
}
}
if (xType == "IWRADIOBUTTON") {
var xControl = IWTop().FindElem(xID + "_INPUT");
xPropValue = xPropValue == "true";
if (xControl.checked != xPropValue) {
xControl.checked = xPropValue;
}
}
} else if (xPropName == "select_type") {
if (xType == "IWLISTBOX") {
if (ie4 || opera_browser) {
xObject.multiple = !(xPropValue == "select-one");
} else {
if (xPropValue == "select-one") {
xObject.removeAttribute("multiple");
} else {
xObject.setAttribute("multiple", "");
}
}
}
} else if (xPropName == "items") {
if (xType == "IWLISTBOX" || xType == "IWCOMBOBOX" || xType == "IWRADIOGROUP") {
while (xObject.childNodes.length > 0) {
xObject.removeChild(xObject.childNodes[0]);
}
var xItemsNode = aElement.childNodes[i];
var xSelected = null;
for (var ii = 0; ii < xItemsNode.childNodes.length; ii++) {
if (xItemsNode.childNodes[ii].nodeType != 1) {
continue;
}
var xItemNode = xItemsNode.childNodes[ii];
var xIsSelected = xItemNode.getAttribute("selected");
var xItemValue = xItemNode.getAttribute("value");
var xItemText = null;
if (xItemNode.lastChild != null) {
xItemText = xItemNode.lastChild.nodeValue;
} else {
xItemText = "";
}
if (xType == "IWLISTBOX" || xType == "IWCOMBOBOX") {
if (ie4 || opera_browser) {
var oOption = document.createElement("OPTION");
oOption.text=xItemText;
oOption.value=xItemValue;
if (xIsSelected != null) {
if (xSelected == null) {
xSelected = oOption;
} else {
if (!(xSelected instanceof Array)) {
xSelected = new Array(xSelected);
}
xSelected.push(oOption);
}
}
xObject.add(oOption);
} else {
xObject.appendChild(new Option(xItemText, xItemValue, false, xIsSelected != null));
}
} else if (xType == "IWRADIOGROUP") {
var xVerticalLayout = aElement.getAttribute("layout").toLowerCase() == "vertical";
if (ie4 || opera_browser) {
var element = "<input type='radio' name='" + xID + "_INPUT' "+ "value='" + xItemValue + "' " + (xIsSelected != null ? "CHECKED " : "")+ "id='" + xID + "_INPUT_" + ii + "'>";
var xRadioInput = document.createElement(element);
element = "<span onclick=\"FindElem('" + xID + "_INPUT_" + ii + "').checked = true;\"/>";
var xSpan = document.createElement(element);
xObject.appendChild(xRadioInput);
xSpan.innerHTML = xItemText;
xObject.appendChild(xSpan);
} else {
var xRadioInput = document.createElement("input");
xRadioInput.name = xID + "_INPUT";
xRadioInput.id = xID + "_INPUT_" + ii;
xRadioInput.type = "radio";
xRadioInput.value = xItemValue;
xRadioInput.checked = xIsSelected != null;
xObject.appendChild(xRadioInput);
var xSpan = document.createElement("span");
xSpan.onclick = function() {
FindElem(xID + "_INPUT_" + ii).checked = true;
};
xSpan.innerHTML = xItemText;
xObject.appendChild(xSpan);
}
if (xVerticalLayout) {
xObject.appendChild(document.createElement("BR"));
}
}
}
if (xSelected != null) {
var obj = {
method: function (xSelected) {
if (xSelected instanceof Array) {
while (xSelected.length > 0) {
xSelected.shift().selected = true;
}
} else {
xSelected.selected = true;
}
}
}
window.setTimeout(delegate(obj, obj.method, xSelected), 1);
}
}
}
}
}
}
}
function setObjectDisabled(aObject, aDisabled)
{
var xObj = IWTop().FindElem(aObject);
xObj.disabled = aDisabled;
}
function setObjectReadOnly(aObject, aReadOnly)
{
var xObj = IWTop().FindElem(aObject);
xObj.readOnly = aReadOnly;
}
function setObjectVisibility(aObject, aVisible)
{
var xObj = IWTop().FindElem(aObject);
if (aVisible) {
xObj.style.visibility = 'inherit';
} else {
xObj.style.visibility = 'hidden';
}
}
function moveObjectTo(aObject, aX, aY, aZ)
{
var xObj = IWTop().FindElem(aObject);
xObj.style.left = aX;
xObj.style.top = aY;
if (aZ != -1) {
xObj.style.zIndex = aZ;
}
}
function addItemListBox(aListBox, aItemText, aItemValue)
{
var xObj = IWTop().FindElem(aListBox);
var xElem = document.createElement("option");
xElem.text = aItemText;
xElem.value = aItemValue;
xObj.appendChild(xElem);
}
function IWTimer(enabled, interval, callback)
{
this.interval = interval;
this.enabled = enabled;
this.callback = callback;
this.startTimer = function() {
this.enabled = true;
setTimeout(delegate(this.timeout, this.timeout.method, this), this.interval);
};
this.stopTimer = function() {
this.enabled = false;
};
this.timeout = {
method: function (timer) {
executeAjaxEvent("", null, timer.callback, true);
if (timer.enabled) {
setTimeout(delegate(timer.timeout, timer.timeout.method, timer), timer.interval);
}
}
};
if (enabled) this.startTimer();
}
function checkBoxClick(event, checkbox)
{
var controlName = checkbox + "_CHECKBOX";
if (!containsName(controlName)) {
window.ChangedControls += controlName + ",";
}
FindElem(controlName).checked = !FindElem(controlName).checked;
FindElem(checkbox).onclick(event);
}
