var AjaxAPI = new function(){}
AjaxAPI.navigFrameName = null;  
AjaxAPI.getXMLHttpRequest = function()
{
var http_request = null;
if (window.XMLHttpRequest) 
{ 
http_request = new XMLHttpRequest();
} 
else if (window.ActiveXObject) 
{ 
try 
{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} 
catch (e) 
{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return http_request;
}
AjaxAPI.sendRequest = function(requestOptions)
{
requestOptions = AjaxOptions.getAsAjaxOptions(requestOptions);
var reqURL = requestOptions["URL"];
var xmlHttpReq = AjaxAPI.getXMLHttpRequest();
var parameters = requestOptions["PARAMETERS"];
var url = requestOptions.v("URL");
if (parameters && (requestOptions.vu("METHOD") == 'GET'))
{
url = appendParamsToUrl(url, parameters);
} 
url = appendParamsToUrl(url,"SUBREQUEST=XMLHTTP");
xmlHttpReq.open(requestOptions.vu("METHOD"), url,
requestOptions.isTrue("ASYNCHRONOUS"));
var requestHeaders = new Object();
requestHeaders["X-Requested-With"] = 'XMLHttpRequest';
if (requestOptions.vu("METHOD") == 'POST')
{
requestHeaders['Content-type']= 'application/x-www-form-urlencoded;charset=UTF-8';
}
else
{
requestHeaders["If-Modified-Since"]='Thu, 1 Jan 1970 00:00:00 GMT';
}
if (xmlHttpReq.overrideMimeType)
{
requestHeaders['Connection'] = 'close';
}
AjaxUtils.updateObject(requestHeaders, requestOptions["REQUESTHEADERS"]);
var body = requestOptions["POSTBODY"] ? requestOptions["POSTBODY"] : parameters;
body = (requestOptions.vu("METHOD") == 'POST')? body : null;
if(body != null)
{
requestHeaders['Content-length',body.length];
}
else if(requestOptions.vu("METHOD") == 'POST')
{
body="___DUMMYDATA=aa";
requestHeaders['Content-length',body.length];
}
for (var header in requestHeaders)
{
xmlHttpReq.setRequestHeader(header,requestHeaders[header]);
}
var resp = new AjaxResponse(xmlHttpReq);
xmlHttpReq.onreadystatechange = function(){AjaxUtils.handleAjaxResponse(resp,requestOptions);};
if(requestOptions["STATUSFUNC"])
{
requestOptions.fn("STATUSFUNC")(resp,requestOptions);
}
xmlHttpReq.send(body);
}
AjaxAPI.sendNavigableRequest = function(requestOptions)
{
requestOptions = AjaxOptions.getAsAjaxOptions(requestOptions);
if(requestOptions["METHOD"] != "GET"){throw new Error("Currently only Get is supported.");}
var url = AjaxAPI.getAsNavigableAjaxURL(requestOptions);
window.frames[ROOT_VIEW_ID + "_RESPONSEFRAME"].location.href = url;
}
AjaxAPI.getAsNavigableAjaxURL = function(requestOptions)
{
requestOptions = AjaxOptions.getAsAjaxOptions(requestOptions);
var encodedOptions = requestOptions.encode(); 
var url = requestOptions["URL"];
if(url.indexOf("SUBREQUEST") == -1){ url = appendSubRequestArgs(url);}
url += "#" + encodeURIComponent(encodedOptions);
return url;
}
AjaxAPI.checkIfBlankPage = function(resFrame)
{
if((resFrame.location.href == "about:blank")
|| (resFrame.location.href.indexOf("blank.html") > 0) 
|| (resFrame.location.href.indexOf("empty.html") > 0))
{
return true;
}
return false;
}
AjaxAPI.handleIframeResponse = function(respFrameEl)
{
if(AjaxAPI.navigFrameName == null)
{
AjaxAPI.navigFrameName = respFrameEl.getAttribute("name");
}
var respFrame = window.frames[respFrameEl.getAttribute("name")];
if(AjaxAPI.checkIfBlankPage(respFrame))
{
return;
}
var encodedOptions = respFrame.location.hash;
if((encodedOptions == null) || (encodedOptions.length < 2))
{
return;
}
encodedOptions = encodedOptions.substring(1);
if(browser_ie){ encodedOptions = decodeURIComponent(encodedOptions);}
var reqOptions = new AjaxOptions(encodedOptions);
reqOptions.setV("URL",respFrame.location.href);
var ifTransport = new Object();
ifTransport.iframe = respFrame;
ifTransport.readyState = 4;
ifTransport.status = 200;
ifTransport.responseText = "";
var isTextPlain = false;
var nodeList = respFrame.document.getElementsByTagName("*");
var lastNode = nodeList[nodeList.length -1];
if(lastNode.nodeName == "PRE")
{
var childNodes = lastNode.childNodes;
for(var i = 0; i < childNodes.length; i++)
{
ifTransport.responseText += childNodes[i].nodeValue;
}
var dummyPrefix = "                    ";
if(ifTransport.responseText.indexOf(dummyPrefix) == 0)
{
isTextPlain = true;
}
}
if(!isTextPlain)
{
ifTransport.responseText = nodeList[0].innerHTML;
}
var resp = new AjaxResponse(ifTransport);
AjaxUtils.handleAjaxResponse(resp,reqOptions);
}
AjaxAPI.invokeNavigableAction = function(requestOptions)
{
var encodedOptions = requestOptions.encode();
requestOptions.fn("NAVIGFUNCTION_N")(requestOptions);
AjaxUtils.ignoreNavigFrameLoad= true;
window.frames["AJAXNAVIG"].location.href = CONTEXT_PATH + "/framework/html/blank.html?" + encodedOptions;
}
AjaxAPI.submit = function(frm)
{
try
{
var attrList = frm.attributes;
var frmOptions = new AjaxOptions({submittedFrm:frm.name});
for(var i = 0; i < attrList.length; i++)
{
frmOptions.setV(attrList.item(i).nodeName, attrList.item(i).nodeValue);
}
if(frmOptions["VALIDATEFUNC"])
{
if(!frmOptions.fn("VALIDATEFUNC")(frm))
{
return false;
}
}
var params = Form.serialize(frm);
var reqURL = frm.getAttribute("action");
reqURL = updateStateCookieAndAppendSid(reqURL,null);
reqURL = appendSubRequestArgs(reqURL);
frmOptions.update({URL:reqURL,parameters: params});
AjaxAPI.sendRequest(frmOptions);
}
catch(e)
{
StatusMsgAPI.showMsg("Script Error Occurred : " + e,false);
}
return false;
}
AjaxAPI.dummyFunction = function(response,requestOptions)
{
return StatusMsgAPI.OPSTATUS.FINISHED;
}
AjaxAPI.refreshView = function(response,requestOptions)
{
requestOptions.update({VIEWTOREFRESH_RN:requestOptions.v("SRCVIEW"),NAVIGABLE_RN:false});
ViewAPI.refreshView(requestOptions);
return StatusMsgAPI.OPSTATUS.INPROGRESS;
}
AjaxAPI.closeViewAndRefreshDCA = function(response,requestOptions)
{
var uniqueId = requestOptions["SRCVIEW"];
var dca = getContentAreaFromState(uniqueId);
var parentId = getParentViewForDCA(dca);
closeView(uniqueId,true);
requestOptions.update({VIEWTOREFRESH_RN:parentId});
ViewAPI.refreshView(requestOptions);
return StatusMsgAPI.OPSTATUS.INPROGRESS;
}
AjaxAPI.closeView = function(response,requestOptions)
{
var uniqueId = requestOptions["SRCVIEW"];
AjaxUtils.showAjaxResponseOnNextPageLoad(response.responseText,true);
if(window.opener == null)
{
closeView(uniqueId);
}
else
{
window.opener.refreshCurrentView();
window.close();
}
return StatusMsgAPI.OPSTATUS.INPROGRESS;
}
AjaxAPI.forwardView = function(response,requestOptions)
{
AjaxUtils.showAjaxResponseOnNextPageLoad(response.responseText,true);
var paramObj = response.getResponseParams(response.responseText);
var params = getAsQueryString(paramObj);
updateViewInCA(requestOptions['VIEWTOFORWARD'],requestOptions['SRCVIEW'],null,getContentAreaFromState(requestOptions['SRCVIEW']),null,false,null,params);
return StatusMsgAPI.OPSTATUS.INPROGRESS;
}
AjaxAPI.showInDialog = function(response,requestOptions)
{
showDialog(response.responseText,requestOptions["WINPARAMS"]);
return StatusMsgAPI.OPSTATUS.FINISHED;
}
AjaxAPI.setOnNextPageLoadScript = function(script)
{
setCookie("PERSMSG",script,null,CONTEXT_PATH + "/framework/html");
}
AjaxAPI.showPersMsg = function(count)
{
var win = window.frames[ROOT_VIEW_ID + "_RESPONSEFRAME"];
if((win == null) || (win.document == null) || (!win.document.isLoaded))
{
if(count < 50)
{
setTimeout("AjaxAPI.showPersMsg(" + ++count +")",30);
}
return;
}
var msgStr = getCookie("PERSMSG",win);
if(msgStr != null)
{
deleteCookie("PERSMSG",CONTEXT_PATH+ "/framework/html",win);
eval(msgStr);
}
}
AjaxAPI.setAjaxAttributes = function(ajaxOptions)
{
ajaxOptions = new AjaxOptions(ajaxOptions);
var frm = ajaxOptions.form("FORMNAME");
for(var i in ajaxOptions)
{
if((typeof ajaxOptions[i]) != "string")
{
continue;
}
existValue = ajaxOptions[i];
frm.setAttribute(i.toLowerCase(),existValue);
}
if(!frm.onsubmit)
{
frm.onsubmit = function(){return AjaxAPI.submit(this);}; 
}
frm.requestOptions = ajaxOptions;
}
AjaxAPI.showRespMsg = function(response,reqOptions)
{
var opStatus = response.opStatus;
StatusMsgAPI.showOperationStatus(opStatus);
if(opStatus == StatusMsgAPI.OPSTATUS.STARTED)
{
return;
}
else if(opStatus == StatusMsgAPI.OPSTATUS.FAILED_SCRIPT)
{
throw response["EXCEP"];
}
else if(opStatus == StatusMsgAPI.OPSTATUS.FAILED)
{
var respMsg = response.getResponsePart("STATUS_MESSAGE");
if(respMsg == null)
{
showDialog(response.getOnlyHtml(),"title=Error Occured");
}
else
{
StatusMsgAPI.showMsg(respMsg,(opStatus == StatusMsgAPI.OPSTATUS.FINISHED));      
}
}
else if(opStatus == StatusMsgAPI.OPSTATUS.FINISHED)
{
var respMsg = response.getResponsePart("STATUS_MESSAGE");
if(respMsg == null)
{
var prevResp = reqOptions["PREVRESPONSE_RN"];
if(prevResp != null)
{
respMsg = prevResp.getResponsePart("STATUS_MESSAGE");
}
}
if(respMsg != null)
{
StatusMsgAPI.showMsg(respMsg,(opStatus == StatusMsgAPI.OPSTATUS.FINISHED));
}
}
else if(opStatus == StatusMsgAPI.OPSTATUS.INPROGRESS)
{
reqOptions["PREVRESPONSE_RN"] = response;
}
response.invokeScripts();
}
function AjaxOptions(options)
{
this.v = function(optName,defaultValue)
{
var value = this[optName.toUpperCase()];
if(value == null)
{
value = defaultValue;
}
if(value == null) 
{
throw new Error("OptionNotPresent:" + optName + " is not present");
}
return value;
}
this.vu = function(optName)
{
return this.v(optName).toUpperCase();
}
this.isTrue = function(optName,defaultValue)
{
var value =  this.v(optName,defaultValue);
return ((value == true) || (value == "true"));
}
this.fn = function(optName)
{
var value = this.v(optName);
if(value instanceof Function)
{
return value;
}
var fun = eval(value);
if(!fun)
{ 
throw new Error("FunctionNotPresent: " + value + " is not declared in current window");   
}
if(!(fun instanceof Function))
{
throw new Error("IllegalOption : " + value + " is not a function.");
}
return fun;
}
this.form = function(optName)
{
var frm = DOMUtils.getForm(this.v(optName));
if(frm == null)
{
throw new Error(" FormNotFound : " + this.v(optName) + " not found");  
}
return frm;
}
this.setV = function(optName,optValue)
{
this[optName.toUpperCase()] = optValue;
}
this.update = function(newOptions)
{
for (property in newOptions) 
{
var val = newOptions[property];
this[property.toUpperCase()] = val;
}
}
this.encode = function()
{
var encodedStr ="";
var defaults = new AjaxOptions();
for(var i in this)
{    
if(this[i] instanceof Object)
{continue;}
if(defaults[i] == this[i])
{ continue;}
if((i == "URL") || (i =="METHOD"))
{ continue;}
var index = i.lastIndexOf("_RN");
if(index == i.length - "_RN".length)
{
continue;
}
var name = (i == "ONSUCCESSFUNC")? "_OS":i;
encodedStr += name + "=" + this[i] + "&";
}
if(encodedStr.length > 1)
{
encodedStr = encodedStr.substring(0,encodedStr.length -1);
}
return encodedStr;
}
this.update({METHOD:'POST',ASYNCHRONOUS:true,STATUSFUNC:'AjaxAPI.showRespMsg'});
if((typeof options) == "string")
{
options = parseRequestParams(options);
for(var i in options)
{
options[i]= options[i][0];
}
if(options["_OS"] != null){options["ONSUCCESSFUNC"] = options["_OS"]}
}
this.update(options);
}
AjaxOptions.getAsAjaxOptions = function(options)
{
if(!(options instanceof AjaxOptions))
{
options = new AjaxOptions(options);
}  
return options;
}
function AjaxResponse(transportUsed)
{
this.responseText = null;
this.htmlContent = null;
this.scripts = null;
this.transport = transportUsed;
this.opStatus = StatusMsgAPI.OPSTATUS.STARTED;
this.isHttpReqSuccess = function() 
{
return this.transport.status == undefined
|| this.transport.status == 0 
|| (this.transport.status >= 200 && this.transport.status < 300);
}
this.getResponsePart = function(responsePart)
{
return AjaxUtils.extractFromResponse(this.responseText,responsePart);
}
this.getResponseParams = function()
{
var paramString = AjaxUtils.extractFromResponse(this.responseText,"RESPONSE_PARAMS");
return (paramString != null)?eval(paramString):{};
}
this.getOnlyHtml = function()
{
this.splitResponse();
return this.htmlContent;
}
this.getScripts = function()
{
this.splitResponse();
return this.scripts;
}
this.invokeScripts = function()
{
if(!this["alreadyInvoked"])
{
AjaxUtils.invokeScripts(this.getScripts());
this["alreadyInvoked"] = true;
}
}
this.splitResponse = function()
{
if(this.htmlContent !=null)
{
return;
}
var split = AjaxUtils.separateScriptAndHtml(this.responseText);
this.htmlContent = split["html"];
this.scripts = split["scripts"];
}
}
var AjaxUtils = new function(){}
AjaxUtils.ignoreNavigFrameLoad = false;
AjaxUtils.handleNavigFrameLoad = function()
{
var queryStr = window.frames["AJAXNAVIG"].location.search;
window.status = "handle NavigFrameLoad called. " + queryStr + " " + AjaxUtils.ignoreNavigFrameLoad;
if(AjaxUtils.ignoreNavigFrameLoad) 
{
AjaxUtils.ignoreNavigFrameLoad = false;
return;
}
if((queryStr == null) || (queryStr == ""))
{
return;
}
var requestOptions = new AjaxOptions(queryStr);
requestOptions.fn("NAVIGFUN_N")(requestOptions);
}
AjaxUtils.invokeScriptsInHtml = function(html)
{
var match    = new RegExp(Ajax.Updater.ScriptFragment, 'img');
var scriptTags  = html.match(match);
AjaxUtils.invokeScripts(scriptTags);
}
AjaxUtils.separateScriptAndHtml = function(htmlSnippet)
{
var sepHash = new Object();
var match    = new RegExp(Ajax.Updater.ScriptFragment, 'img');
sepHash["html"] = htmlSnippet.replace(match, '');
match    = new RegExp(Ajax.Updater.ScriptFragment, 'img');
sepHash["scripts"] = htmlSnippet.match(match);
return sepHash;
}
AjaxUtils.invokeScripts = function(scriptTags)
{
if(scriptTags == null){return;}
var div = document.createElement("div");
var scriptStr = "";
for (var i = 0; i < scriptTags.length; i++) {
scriptStr += "\n" + scriptTags[i];
}
var match    = new RegExp("<script>", 'img');
scriptStr = scriptStr.replace(match,"<SCRIPT>");
match    = new RegExp("<\/script>", 'img');
scriptStr = scriptStr.replace(match,"</SCRIPT>");
div.innerHTML = "<html><body>" + scriptStr + "</body></html>";
scriptTags = div.getElementsByTagName("SCRIPT");
for (var i = 0; i < scriptTags.length; i++) {
AjaxUtils.scheduleScript(scriptTags[i].text,scriptTags[i].src);
}
}
AjaxUtils.scheduleScript = function(script,scriptFile){
var scriptTag = document.createElement("SCRIPT");
if ((scriptFile != null) && (scriptFile != ""))
{ scriptTag.src = scriptFile;}
scriptTag.text = script;
if (!document.getElementsByTagName("HEAD")[0]) {
document.createElement("HEAD").appendChild(scriptTag)
} else {
document.getElementsByTagName("HEAD")[0].appendChild(scriptTag);
}
}
AjaxUtils.handleAjaxResponse = function(ajaxResp,requestOptions)
{
if(ajaxResp.transport.readyState !=4 )
{
return;
}
ajaxResp.responseText = ajaxResp.transport.responseText;
ajaxResp.opStatus = StatusMsgAPI.OPSTATUS.INPROGRESS;
if(requestOptions["ORIGOPTIONS"])
{
requestOptions = requestOptions["ORIGOPTIONS"];
closeDialog();
}
ajaxResp.opStatus = AjaxUtils.internalHandleAjaxResponse(ajaxResp,requestOptions);
if(requestOptions["STATUSFUNC"])
{    
requestOptions.fn("STATUSFUNC")(ajaxResp,requestOptions);
}
}
AjaxUtils.internalHandleAjaxResponse = function(response,requestOptions)
{
if(response.responseText.indexOf("__ERROR__LOGIN") > -1)
{
AjaxUtils.handleReLogin(response,requestOptions);
return StatusMsgAPI.OPSTATUS.INPROGRESS_LOGIN;
}
else if((response.responseText.indexOf("__ERROR__") > -1)
|| !response.isHttpReqSuccess())
{
return StatusMsgAPI.OPSTATUS.FAILED;
}
var opStatus = StatusMsgAPI.OPSTATUS.FINISHED;
if(requestOptions["ONSUCCESSFUNC"])
{
try
{
opStatus = requestOptions.fn("ONSUCCESSFUNC")(response,requestOptions);
if(!opStatus){opStatus = StatusMsgAPI.OPSTATUS.FINISHED;}
}
catch(ex)
{
response["EXCEP"] = ex;
return StatusMsgAPI.OPSTATUS.FAILED_SCRIPT;
}
}
return opStatus;
}
AjaxUtils.handleReLogin = function(response,requestOptions)
{
showDialog(response.responseText,"title=ReLogin(Session Timed Out),modal=yes");
var frm = DOMUtils.getFirstMatchingElement(oDialog.getElementsByTagName("form"),null,"name","login");
if(frm == null)
{
throw new Error("Login Page should contain a form with name as \"login\"");
}
frm["REQUESTOPTIONS"] = requestOptions;
frm.onsubmit = function(){AjaxUtils.submitReLoginFrm(frm);return false;};
return;
}
AjaxUtils.submitReLoginFrm = function(frm)
{
if(frm.getAttribute("validatefunc"))
{
if(!(eval(frm.getAttribute("validatefunc"))(frm)))
{
return false;
}
}
var params = Form.serialize(frm);
AjaxAPI.sendRequest({URL:frm.action,PARAMETERS:params,ORIGOPTIONS:frm["REQUESTOPTIONS"]});
return false;
}
AjaxUtils.updateObject = function(destination, source) {
if(source == null){return;}
for (property in source) {
destination[property] = source[property];
}
return destination;
}
AjaxUtils.extractFromResponse = function(responseText,responsePart)
{
var div = document.createElement("div");
div.innerHTML = responseText;
var respPart = DOMUtils.getFirstMatchingElement(div.getElementsByTagName("div"),null,"part",responsePart);
return (respPart != null)? respPart.innerHTML: null;
}
AjaxUtils.showAjaxResponseOnNextPageLoad = function(responseText,isSuccess)
{
var respMsg = AjaxUtils.extractFromResponse(responseText,"STATUS_MESSAGE");
if(respMsg == null)
{
return;
}
StatusMsgAPI.showMsgOnNextPageLoad(respMsg,isSuccess);
}
var StatusMsgAPI = new function(){}
StatusMsgAPI.showOperationStatus = function(opStatus)
{
var el = document.getElementById("mc_loading");
if(el != null)
{
if((opStatus == StatusMsgAPI.OPSTATUS.STARTED ) || (opStatus == StatusMsgAPI.OPSTATUS.INPROGRESS)
|| (opStatus == StatusMsgAPI.OPSTATUS.INPROGRESS_LOGIN))
{
el.className = 'mcLoading';
document.getElementById("mc_messagediv").className = 'hide';	
}
else
{
el.className = 'mcLoaded';
}
}
}
StatusMsgAPI.showMsgOnNextPageLoad = function(msg,isSuccess)
{
msg = msg.replace(/\n/g,"\\n");
var regex = new RegExp("'","g");
msg = msg.replace(regex,"\\'");
AjaxAPI.setOnNextPageLoadScript("StatusMsgAPI.showMsg('" + msg + "'," + isSuccess + ")");
}
StatusMsgAPI.showMsg = function(message, isSuccess)
{
var msgContainer = document.getElementById("mc_messagediv");
if(msgContainer != null)
{
msgContainer.className = (isSuccess)?"successMsg":"failureMsg";  
var msgTextEl = document.getElementById("mc_messagetext");
msgTextEl.innerHTML = message;
}
else if(!isSuccess)
{
showDialog(message,"title=Error Occured");
}
}
StatusMsgAPI.closeMsg =function()
{
document.getElementById("mc_messagediv").className = 'hide';
}
StatusMsgAPI.OPSTATUS= new function(){ 
this.STARTED =1;
this.INPROGRESS=2;
this.INPROGRESS_LOGIN=3;
this.FINISHED=4;
this.FAILED=5;
this.FAILED_SCRIPT=6;
}
var DOMUtils = new function(){
this.addCSSClass = function(els, cssClass) 
{
for(var i =0; i < els.length; i++)
{
var curClass = els[i].className;
if(curClass == null)
{
curClass = cssClass;
}
else
{
var index = curClass.indexOf(cssClass);
if(index == -1)
{
curClass = curClass.trim();
curClass += " " + cssClass;
}
}
els[i].className = curClass;
}
}
this.removeCSSClass = function(elList, cssClass)
{
for(var i =0; i < elList.length; i++)
{
var curClass = elList[i].className;
if(curClass == null)
{
continue;
}
var index = curClass.indexOf(cssClass);
if(index > -1)
{
if(curClass == cssClass)
{ curClass = null;}
else
{curClass = curClass.substring(0,index) + curClass.substring(index + cssClass.length + 1);}
}
elList[i].className = curClass;
}
}
this.filterElements = function(elList,elType,attrName,attrValue)
{
var filteredList = new Array();
var j = 0;
for(var i =0;i < elList.length ; i++)
{
if((elType == null) || (elList[i].nodeName == elType))
{
if((attrName == null)|| (elList[i].getAttribute(attrName) == attrValue)
|| ((attrValue == "*") &&(elList[i].getAttribute(attrName) != null)))
{
filteredList[j++] = elList[i];
}
}
}
return filteredList;
}
this.getFirstMatchingElement = function(elList,elType,attrName,attrValue)
{
for(var i =0;i < elList.length ; i++)
{
if((elType == null) || (elList[i].nodeName == elType))
{
if((attrName == null)|| (elList[i].getAttribute(attrName) == attrValue)
|| ((attrValue == "*") &&(elList[i].getAttribute(attrName) != null)))
{
return elList[i];
}
}
}
return null;
}
this.getChildElsWithAttr = function(parentEl,attrName,attrValue)
{
var childNodes = parentEl.getElementsByTagName("*");
return this.filterElements(childNodes,null,attrName,attrValue);
}
this.getParentWithAttr = function(childNode,parentAttrName)
{
var parNode = childNode.parentNode;
while((parNode != null) && (parNode["getAttribute"] != null))
{
if(parNode.getAttribute(parentAttrName) != null)
{
return parNode;
}
parNode = parNode.parentNode;
}
return null;
}
this.getParentWithAttrValue = function(childNode,parentAttrName,attrValue)
{
var parentNode = childNode.parentNode;
while(parentNode != null)
{
if(parentNode.getAttribute(parentAttrName) == attrValue)
{
break;
}
parentNode = parentNode.parentNode;
}
return parentNode;
}
this.getForm = function(frmName)
{
var frm = document.forms[frmName];
if(frm != null)
{
return frm;
}
for(var i=0; i<document.forms.length; i++)
{
if(document.forms[i].name == frmName)
{
return document.forms[i];
}
}
return null;
}
this.setAttribute = function(elList,attrName,attrValue)
{
for(var i = 0; i < elList.length; i++)
{
elList[i].setAttribute(attrName,attrValue);
}
}
this.setProperty = function(elList,propName,propValue)
{
for(var i = 0; i < elList.length; i++)
{
elList[i][propName] = propValue;
}
}
this.fillData = function(elements,data)
{
for(var count=0; count < elements.length; count++)
{
this.setValueOnEl(elements[count],data[elements[count].name]);
}
}
this.setValueOnEl = function(curEl,value)
{
var type = curEl.type;
var nodeName = curEl.nodeName;
if(value == null){ return;}
if((type == "radio") || (type == "checkbox"))
{
curEl.checked = (value == curEl.value);
}
else if(type == "select-one")
{
for(var i =0;i < curEl.options.length; i++)
{
if( (curEl.options[i].value && curEl.options[i].value == value)
|| (curEl.options[i].innerHTML == value))
{
curEl.options[i].selected = true;
}
}
}
else if((nodeName == "DIV") || (nodeName == "SPAN"))
{
curEl.innerHTML = value;
}
else
{
curEl.value = value;
}
}
}
LangUtils = new function(){}
LangUtils.cloneArray = function(arrayToClone)
{
var clonedArray = new Array();
for(var i =0; i < arrayToClone.length; i++)
{
clonedArray[i] = arrayToClone[i];
}
return clonedArray;
}
function printfire()
{
if (document.createEvent)
{
printfire.args = arguments;
var ev = document.createEvent("Events");
ev.initEvent("printfire", false, true);
dispatchEvent(ev);
}
}
LangUtils.log = printfire;

