EWD={};
EWD.page={
errorMessage: function(message) {
if (message!='') {
if (typeof(Ext)!="undefined") {
Ext.MessageBox.alert('EWD Error',message);
}
else {
alert(message);
}
}
},
goNextPage: function(page,token,sessionToken) {
if (page=="*") return;
var x;
eval(x);
},
showConfirmMessage: false,
displayConfirm: function(confirmText) {
if (!EWD.page.showConfirmMessage) return true;
confirmText= EWD.utils.replace(confirmText,"&#39;","'");
var ok=confirm(confirmText);
EWD.page.showConfirmMessage=false;
return ok;
},
openWindow: function(url,winHandle,winName,x,y,height,width,toolbar,location,directories,status,menubar,scrollbars,resizable) {
var noOfParams=EWD.page.openWindow.arguments.length;
if (noOfParams>14) {
for (nParam=14; nParam<noOfParams; nParam++) {
url=url.replace(/\[x]/, EWD.page.openWindow.arguments[nParam]);
}
}
var winRef=winHandle;
var arrIndex=winHandle.indexOf("[");
if(arrIndex!=-1) {
winRef=winHandle.substring(0,arrIndex);
winHandle=winRef+"["+winRef+".length]";
}
if (winName=="") winName=winRef+Math.floor(Math.random()*100);
var openWin=winHandle+'=window.open("'+url+'","'+winName+'","';
if (navigator.appName=='Netscape') {
openWin=openWin+'ScreenX='+x+',ScreenY='+y+',';
}
else {
openWin=openWin+'left='+x+',top='+y+',';
}
openWin=openWin+'height='+height+',width='+width+',toolbar='+toolbar+',location='+location+',directories='+directories+',';
openWin=openWin+'status='+status+',menubar='+menubar+',scrollbars='+scrollbars+',resizable='+resizable+'")';
eval(openWin);
},
spinnerKeyDown: false,
incrementSpinner:  function(fieldId,max,interval) {
var field=document.getElementById(fieldId);
field.focus();
if (EWD.page.spinnerKeyDown) {
if (field.value<max) {
field.value++;
}
setTimeout("EWD.page.incrementSpinner('"+fieldId+"',"+max+","+interval +")",interval);
}
},
decrementSpinner:  function(fieldId,min,interval) {
var field=document.getElementById(fieldId);
field.focus();
if (EWD.page.spinnerKeyDown) {
if (field.value>min) {
field.value--;
}
setTimeout("EWD.page.decrementSpinner('"+fieldId+"',"+min+","+interval +")",interval);
}
},
spinnerControl:  function(e,fieldId,min,max) {
var keyCode=e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
if (keyCode==38) {
if (document.getElementById(fieldId).value<max) {
document.getElementById(fieldId).value++;
}
}
if (keyCode==40) {
if (document.getElementById(fieldId).value>min) {
document.getElementById(fieldId).value--;
}
}
},
spinnerValueCheck:  function(value,fieldName,min,max) {
if (!EWD.utils.isInteger(value)) {
alert("Value of "+fieldName+ " is invalid!");
return;
}
if (value<min) {
alert("Value of "+fieldName+ " is less than the minimuml!");
return;
}
if (value>max) {
alert("Value of "+fieldName+ " is larger than the maximum!");
return;
}
},
addStylesheet: function(doc,src,media) {
if(doc.createStyleSheet) {
var ssobj=doc.createStyleSheet(src);
if (media) ssobj.media=media;
return ssobj;
}
else {
var linkNode=doc.createElement('link');
linkNode.setAttribute("href",src);
if (!media) media="screen";
linkNode.setAttribute("media",media);
linkNode.setAttribute("rel","stylesheet");
linkNode.setAttribute("type","text/css");
doc.getElementsByTagName("head")[0].appendChild(linkNode);
return linkNode;
}
},
printDiv: function(obj,height,width,top,left,title,styleSrc,autoprint,path,optionalURL,modal) {
var divId;
if (typeof(obj)=='object') {
divId=obj.divId;
height=obj.height;
width=obj.width;
top=obj.top;
left=obj.left;
title=obj.title;
styleSrc=obj.styleSrc;
autoprint=obj.autoprint;
path=obj.path;
optionalURL=obj.optionalURL;
modal=obj.modal;
}
else {
divId=obj;
}
if (!height) height= "500";
if (!width) width= "500";
if (!top) top= "50";
if (!left) left= "100";
if (modal) {
obj.content=document.getElementById(divId).innerHTML;
if ((path=="")||(path==undefined)) path="/";
var features="dialogHeight:"+height+"px;dialogWidth:"+width+"px;"
features=features+"dialogTop:"+top+"px;dialogLeft:"+left+"px;status:no"
var resp=window.showModalDialog(path+"printDiv.html",obj,features);
}
else {
var domNode=document.getElementById(divId);
var params="height="+height+",width="+width;
if (navigator.appName=='Netscape') {
params=params+',ScreenX='+left+',ScreenY='+top;
}
else {
params=params+',left='+left+',top='+top+',';
}
var outputWindow;
var winURL="";
if (optionalURL) winURL=optionalURL;
outputWindow=window.open(winURL,"",params);
outputWindow.document.open("text/html", "replace");
if (!title) title="Print";
outputWindow.document.write("<html><head><title>"+title+"</title>\n");
outputWindow.document.write("</head><body>\n");
if (!autoprint) outputWindow.document.write("<div id='printButton'><input type='button' value='Print' onClick='document.getElementById(\"printButton\").innerHTML=\"\" ; window.print()' /><hr/></div>\n");
outputWindow.document.write("<div id='add'></div>\n");
outputWindow.document.write("</body></html>\n");
outputWindow.document.close();
if (styleSrc) EWD.page.addStylesheet(outputWindow.document,styleSrc);
var importedMarkup=domNode.innerHTML;
outputWindow.document.getElementById('add').innerHTML=importedMarkup;
if (autoprint) {
outputWindow.print();
outputWindow.close();
}
}
},
section: new Array(),
currentPage: '',
selectedColor: new Array(),
unselectedColor: new Array(),
selectTab: function(curr) {
var pageName=EWD.utils.getPiece(curr.id,"Tab",1);
if (pageName!=EWD.page.currentPage) {
curr.className="highlightedTab";
}
},
deSelectTab: function(curr) {
var pageName=EWD.utils.getPiece(curr.id,"Tab",1);
if (pageName!=EWD.page.currentPage) {
curr.className="unselectedTab";
}
},
getTabPage: function(pageName) {
var previousPage=EWD.page.currentPage;
EWD.page.currentPage=pageName;
document.getElementById(previousPage+"Tab").className="unselectedTab";
document.getElementById(pageName+"Tab").className="selectedTab";
},
selectInnerTab: function(curr) {
var section=curr.section;
var pageName=EWD.utils.getPiece(curr.id,"Tab",1);
if (pageName!=MGW.page.section[section]) {
curr.className="highlightedInnerTab";
if (typeof(MGW.page.selectedColor[section])!="undefined") {
curr.style.backgroundColor=MGW.page.selectedColor[section];
}
}
},
deSelectInnerTab: function(curr) {
var section=curr.section;
var pageName=EWD.utils.getPiece(curr.id,"Tab",1);
if (pageName!=MGW.page.section[section]) {
curr.className="unselectedInnerTab";
if (typeof(MGW.page.unselectedColor[section])!="undefined") {
curr.style.backgroundColor=MGW.page.unselectedColor[section];
}
}
},
defineInnerTab: function(section,id,selected) {
document.getElementById(id).section=section;
if (selected) {
document.getElementById(id).className="selectedInnerTab";
document.getElementById(id).style.backgroundColor=EWD.page.selectedColor[section];
var pageName=EWD.utils.getPiece(id,"Tab",1);
EWD.page.section[section]=pageName;
EWD.page.setInnerTabPage(document.getElementById(id));
}
else {
document.getElementById(id).className="unselectedInnerTab";
document.getElementById(id).style.backgroundColor=EWD.page.unselectedColor[section];
}
},
setInnerTabPage: function(obj,synch) {
var id=obj.id;
var pageName=EWD.utils.getPiece(id,"Tab",1);
var section=obj.section;
var previousPage=EWD.page.section[section];
EWD.page.section[section]=pageName;
document.getElementById(previousPage+"Tab").className="unselectedInnerTab";
if (typeof(EWD.page.unselectedColor[section])!="undefined") document.getElementById(previousPage+"Tab").style.backgroundColor=EWD.page.unselectedColor[section];
obj.className="selectedInnerTab";
if (typeof(EWD.page.selectedColor[section])!="undefined") {
obj.style.backgroundColor=EWD.page.selectedColor[section];
document.getElementById(section).style.backgroundColor=EWD.page.selectedColor[section];
}
},
selectInnerTab: function(curr) {
var section=curr.section;
var pageName=EWD.utils.getPiece(curr.id,"Tab",1);
if (pageName!=EWD.page.section[section]) {
curr.className="highlightedInnerTab";
if (typeof(EWD.page.selectedColor[section])!="undefined") {
curr.style.backgroundColor=EWD.page.selectedColor[section];
}
}
},
deSelectInnerTab: function(curr) {
var section=curr.section;
var pageName=EWD.utils.getPiece(curr.id,"Tab",1);
if (pageName!=EWD.page.section[section]) {
curr.className="unselectedInnerTab";
if (typeof(EWD.page.unselectedColor[section])!="undefined") {
curr.style.backgroundColor=EWD.page.unselectedColor[section];
}
}
},
loadJSFile: function(src,isDojo) {
var fileref=document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", src);
if (isDojo) fileref.setAttribute("djConfig", "parseOnLoad: true");
document.getElementsByTagName("head")[0].appendChild(fileref);
},
loadCSSFile: function(filename) {
var fileref=document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", filename);
document.getElementsByTagName("head")[0].appendChild(fileref);
},
fetchResource: function(url,type) {
/* synchronously fetches a resource file. type=js|css */
var http_request=false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request=new XMLHttpRequest();
if (http_request.overrideMimeType) {
if (type=='js') {
http_request.overrideMimeType('text/javascript');
}
else if (type=='css') {
http_request.overrideMimeType('text/css');
}
}
}
else if (window.ActiveXObject) { // IE
try {
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!http_request) {
alert('Ajax error : Your browser may not support the XMLHTTP Request Object needed to support Ajax');
return '';
}
http_request.open('GET', url, false);
http_request.send(null);
var txt=http_request.responseText;
return txt;
},
resourceLoaded: {},
loadResource: function(url,type) {
var elmnt;
if (typeof(EWD.page.resourceLoaded[url])=="undefined") {
if (type=='js') {
elmnt=document.createElement("script");
elmnt.type="text/javascript";
elmnt.text=EWD.page.fetchResource(url,type);
document.getElementsByTagName("head")[0].appendChild(elmnt);
}
else if (type='css') {
elmnt=document.createElement('style');
elmnt.type="text/css";
var text=EWD.page.fetchResource(url,type);
if (elmnt.styleSheet) {
//IE
elmnt.styleSheet.cssText=text;
document.getElementsByTagName("head")[0].appendChild(elmnt);
}
else {
var lnk=document.getElementsByTagName("head")[0].appendChild(elmnt);
var txtNode=document.createTextNode(text);
lnk.appendChild(txtNode);
}
}
EWD.page.resourceLoaded[url]=true;
}
},
addStyle: function(cssText) {
var elmnt=document.createElement('style');
elmnt.type="text/css";
if (elmnt.styleSheet) {
//IE
elmnt.styleSheet.cssText=cssText;
document.getElementsByTagName("head")[0].appendChild(elmnt);
}
else {
var lnk=document.getElementsByTagName("head")[0].appendChild(elmnt);
var txtNode=document.createTextNode(cssText);
lnk.appendChild(txtNode);
}
},
setBaseHref: function(basehref) {
var thebase=document.getElementsByTagName("base");
if (typeof thebase[0] === 'undefined') {
thebase=document.createElement("base");
thebase=document.getElementsByTagName("head")[0].appendChild(thebase);
thebase.setAttribute('href','');
thebase=document.getElementsByTagName("base");
}
thebase[0].href=basehref;
}
};
EWD.page.chartIndex={};
EWD.dojo={
loadFishEye: function(useRemote,src) {
var ref;
if (useRemote) {
src="http://o.aolcdn.com";
}
ref= src+"/dojox/widget/FisheyeList.js";
EWD.page.loadJSFile(ref,true);
var fileref=document.createElement('style');
fileref.setAttribute("type","text/css");
document.getElementsByTagName("head")[0].appendChild(fileref);
if (useRemote) {
src="http://o.aolcdn.com/dojo/1.0.0";
}
var text='@import "'+src+'/dojox/widget/FisheyeList/FisheyeList.css";';
text=text+".dojoxFisheyeListBar {";
text=text+"margin: 0 auto;";
text=text+"text-align: center;";
text=text+"}";
if(fileref.styleSheet){// IE
fileref.styleSheet.cssText=text;
} else {// w3c
var cssText=document.createTextNode(text);
fileref.appendChild(cssText);
}
dojo.require("dojox.widget.FisheyeList");
}
};
EWD.utils={
replace: function (string,text,by) {
var strLength=string.length, txtLength=text.length;
if ((strLength==0) || (txtLength==0)) return string;
var i=string.indexOf(text);
if ((!i) && (text!=string.substring(0,txtLength))) return string;
if (i==-1) return string;
var newstr=string.substring(0,i)+by;
if (i+txtLength<strLength) newstr=replace(string.substring(i+txtLength,strLength),text,by);
return newstr;
},
findPosX: function (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;
},
findPosY: function (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;
},
getPiece: function(refStr,delim,pieceNo) {
var tempArray;
if (refStr=="") return "";
if (delim=="") return string;
if (pieceNo=="") return string;
tempArray=refStr.split(delim);
return tempArray[pieceNo - 1];
},
contains: function(inString,subString) {
if (inString.indexOf(subString)==-1) return false;
return true;
},
getBrowserInfo: function() {
var sig=navigator.userAgent;
EWD.browserType="firefox";
if (EWD.utils.contains(sig,"Safari")) EWD.browserType="safari";
if (EWD.utils.contains(sig,"iPhone")) EWD.browserType="iphone";
if (EWD.utils.contains(sig,"iPod")) EWD.browserType="iphone";
if (EWD.utils.contains(sig,"iPad")) EWD.browserType="ipad";
if (EWD.utils.contains(sig,"Opera")) EWD.browserType="opera";
if (EWD.utils.contains(sig,"MSIE 6")) EWD.browserType="ie6";
if (EWD.utils.contains(sig,"MSIE 7")) EWD.browserType="ie7";
if (EWD.utils.contains(sig,"MSIE 8")) EWD.browserType="ie8";
if (EWD.utils.contains(sig,"MSIE 9")) EWD.browserType="ie9";
EWD.browserOS="linux";
if (EWD.utils.contains(sig,"Windows NT 5.1")) EWD.browserOS="xp";
if (EWD.utils.contains(sig,"Windows NT 5.0")) EWD.browserOS="2000";
if (EWD.utils.contains(sig,"Windows NT 6")) EWD.browserOS="vista";
EWD.browser={};
EWD.browser.isHTML5=true;
if (typeof(localStorage)=='undefined') EWD.browser.isHTML5=false;
},
isInteger: function(sText) {
var validChars="0123456789";
if (sText.substring(0,1)=='-') sText=sText.substring(1);
var isInt=true;
var charx;
for (var i=0; i<sText.length && isInt==true; i++) {
charx=sText.charAt(i);
if (validChars.indexOf(charx)==-1) {
isInt=false;
}
}
return isInt;
},
getOption: function(fieldName) {
var obj=document.getElementById(fieldName);
return obj.options[obj.selectedIndex].value;
},
sleep: function(delay) {
var start=new Date().getTime();
while (new Date().getTime()<start+delay);
}
};
EWD.utils.getBrowserInfo();

EWD.ajax={
isWithinTarget: function (tagId,targetId,isDojo) {
var par;
if (isDojo) {
par=dojo.byId(tagId);
}
else {
par=document.getElementById(tagId);
}
if (!par) return false;
do {
par=par.parentNode;
if (par.id==targetId) {
return true;
}
}
while (par.tagName!="BODY");
return false;
},
destroyDJWidgetsWithin: function(id) {
if (typeof(dijit)!='undefined'){
var wid;
for (wid in EWDdojo.widget) {
//console.debug("testing "+wid);
if ((!dijit.byId(wid))&&(!EWD.utils.contains(wid,"-menu"))) {
delete EWDdojo.widget[wid];
//console.debug(wid+" not present, so removed from index");
}
if ((dijit.byId(wid))||(EWD.utils.contains(wid,"-menu"))) {
//console.debug("wid="+wid+"; id="+id);
if (EWD.ajax.isWithinTarget(wid,id,true)) {
var wid1=wid;
if (EWD.utils.contains(wid,"-menu")) wid1=EWD.utils.getPiece(wid,"-menu",1);
dijit.byId(wid1).destroyRecursive();
delete EWDdojo.widget[wid];
//console.debug("removed "+wid);
}
}
}
}
},
destroyChartsWithin: function(id) {
if (typeof(EJSC)!='undefined'){
var wid;
for (wid in EWD.page.chartIndex) {
var chartId=EWD.page.chartIndex[wid];
if (document.getElementById(wid)) {
if (EWD.ajax.isWithinTarget(wid,id,false)) {
var str=chartId+".remove();";
eval(str);
delete EWD.page.chartIndex[wid];
}
}
}
}
},
getPageFromLocalStorage: function(app,page,targetId,traceFlag) {
var text=localStorage.getItem("ewdPage/"+app+"/"+page);
if (text!=null) {
EWD.ajax.injectFragment(text,targetId,traceFlag);
return true;
}
else {
return false;
}
},
putPageIntoLocalStorage: function(app,page,fragmentText) {
localStorage.setItem("ewdPage/"+app+"/"+page,fragmentText);
},
deleteAppFromLocalStorage: function(app) {
if (typeof(localStorage)!='undefined') {
var appName,key,keyNo;
keysToDelete={};
var noOfKeys=localStorage.length;
for (keyNo=0;keyNo<noOfKeys;keyNo++) {
key=localStorage.key(keyNo);
alert(keyNo+": "+key);
appName=EWD.utils.getPiece(key,"/",2);
if (appName==app) {
keysToDelete[key]="";
}
}
for (key in keysToDelete) {
alert(key+" deletedx");
localStorage.removeItem(key);
}
}
},
setLocalResource: function(obj) {
if (EWD.browser.isHTML5) {
if (localStorage.getItem('ewdApp/'+obj.app)!=iWD.build) {
EWD.ajax.deleteAppFromLocalStorage(obj.app);
localStorage.setItem('ewdApp/'+obj.app,iWD.build);
}
delete EWD.ajax.localResource;
if (typeof(EWD.ajax.offlineMode)!='undefined') {
if (EWD.ajax.offlineMode=='always') {
EWD.ajax.localResource=obj;
}
}
}
else {
delete EWD.ajax.localResource;
}
},
makeRequest: function (zewdurl,zewdid,zewdmethod,zewdpayload,traceFlag) {
if (typeof(EWD.sencha) !== 'undefined') {
EWD.sencha.restartSessionTimer=true;
}
EWD.ajax.targetId=zewdid;
EWD.ajax.destroyChartsWithin(zewdid);
if (typeof(EWD.ajax.localResource)!='undefined') {
var ok=EWD.ajax.getPageFromLocalStorage(EWD.ajax.localResource.app,EWD.ajax.localResource.page,zewdid,traceFlag);
if (ok) {
delete EWD.ajax.localResource;
return;
}
}
if ( zewdurl.length>255 ) {
var urlP=zewdurl.split('?');
zewdurl=urlP[0];
zewdpayload='';
for (var i=1; i<urlP.length; i++) {
if (zewdpayload!='') zewdpayload += '?';
zewdpayload += urlP[i];
}
if (zewdmethod=='' || zewdmethod=='get') {
zewdmethod='post';
}
else {
zewdmethod='synchPOST';
}
}
var noOfParams=EWD.ajax.makeRequest.arguments.length;
var noOfFixedParams=5;
if (noOfParams>noOfFixedParams) {
for (var nParam=noOfFixedParams; nParam<noOfParams; nParam++) {
zewdurl=zewdurl.replace(/\[x]/, escape(EWD.ajax.makeRequest.arguments[nParam]));
}
}
//force unique URL to prevent IE using Cached URL
var rn=(Math.round(Math.random()*999999999)+1);
if (zewdurl.indexOf('?')==-1) {
zewdurl=zewdurl+"?";
}
else {
zewdurl=zewdurl+"&";
}
zewdurl=zewdurl+"ewdrn="+rn;
if (EWD.ajax.base) {
zewdurl=EWD.ajax.base+zewdurl;
}
var http_request=false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request=new XMLHttpRequest();
if (http_request.overrideMimeType) {
//http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) { // IE
try {
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!http_request) {
alert('Ajax error : Your browser may not support the XMLHTTP Request Object needed to support Ajax');
setTimeout("document.body.style.cursor='default'",1);
return false;
}
while (zewdurl.indexOf('&amp;')!=-1) {
zewdurl=zewdurl.replace("&amp;","&");
}
if (zewdmethod=="synchPOST") {
http_request.open('POST', zewdurl, false);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_request.send(zewdpayload);
var zewdTraceFlag=traceFlag;
EWD.ajax.replaceContent(http_request,zewdid,zewdTraceFlag,zewdurl,zewdmethod,zewdpayload);
}
else if (zewdmethod=="synch") {
http_request.open('GET', zewdurl, false);
http_request.send(null);
var zewdTraceFlag=traceFlag;
EWD.ajax.replaceContent(http_request,zewdid,zewdTraceFlag,zewdurl,zewdmethod,zewdpayload);
}
else {
EWD.ajax.httpStatus="";
EWD.ajax.asynchSend(http_request,zewdid,traceFlag,zewdurl,zewdmethod,zewdpayload);
setTimeout("document.body.style.cursor='default'",1);
}
},
asynchSend: function (http_request,id,traceFlag,url,method,payload) {
http_request.onreadystatechange=function() { EWD.ajax.replaceContent(http_request,id,traceFlag,url,method,payload); };
if (method!="post") {
http_request.open('GET', url, true);
http_request.send(null);
}
else {
http_request.open('POST', url, true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_request.send(payload);
}
},
replaceContent: function (http_request,zewdid,traceFlag,zewdurl,zewdmethod,zewdpayload) {
if (http_request.readyState==4) {
if (http_request.status==200) {
var text=http_request.responseText;
if (traceFlag=='window') {
document.getElementById("traceContent").value=text;
document.getElementById("traceWindow").style.display="block";
}
if (text.indexOf('<b>CSP Error')!=-1) {
var i=text.indexOf('<ul>');
text=text.substring(i+4);
i=text.indexOf("</ul>");
text=text.substring(0,i);
text="CSP runtime error : "+text;
EWD.ajax.alert(text);
}
if (text.indexOf('id="ewdEBResponse">')!=-1) {
var i=text.indexOf('id="ewdEBResponse">');
text=text.substring(i+19);
i=text.indexOf("</div>");
text=text.substring(0,i);
eval(text);
}
else if (text.indexOf('<title>Enterprise Web Developer : A run-time error has occurred')!=-1) {
var i=text.indexOf('<h3>Enterprise Web Developer Error');
text=text.substring(i+28);
i=text.indexOf("</h3>");
text=text.substring(0,i);
text="EWD runtime error : "+text;
EWD.ajax.alert(text);
}
else if (text.indexOf('The Server reported the following error:')!=-1) {
var i=text.indexOf('</FONT></B><P>');
text=text.substring(i+14);
text="EWD runtime error : "+text;
EWD.ajax.alert(text);
}
else {
var i=text.indexOf('id="ewdajaxonload">');
if (i!=-1) {
text=text.substring(i+19);
i=text.indexOf("</span>");
text=text.substring(0,i);
}
else {
text='';
}
if ((text!='')&&(text.indexOf("var ewdtext=''")==-1)) {
eval(text);
if (typeof(iWD)!='undefined') {
iWD.resetSubmit();
}
}
else {
EWD.ajax.injectFragment(http_request.responseText,zewdid,traceFlag);
if (typeof(EWD.ajax.localResource)!='undefined') {
EWD.ajax.putPageIntoLocalStorage(EWD.ajax.localResource.app,EWD.ajax.localResource.page,http_request.responseText);
delete EWD.ajax.localResource;
}
}
}
}
else {
var ajaxError='There was a problem reported in the Ajax response (status code: '+http_request.status+' '+http_request.statusText+')';
EWD.ajax.httpStatus=parseInt(http_request.status);
if ((ajaxError!='')&&(EWD.ajax.httpStatus<12000)) alert(ajaxError);
if (EWD.ajax.httpStatus >12000) {
EWD.ajax.asynchSend(http_request,zewdid,traceFlag,zewdurl,zewdmethod,zewdpayload);
}
}
}
},
injectFragment: function(fragmentText,targetId,traceFlag) {
var text=fragmentText;
while (text.indexOf('<zewd target=')!=-1) {
var i=text.indexOf('<zewd target=');
text=text.substring(i+13);
i=text.indexOf('>');
var target=text.substring(1,i-1);
text=text.substring(i+1);
i=text.indexOf('</zewd>');
var sub=text.substring(0,i);
text=text.substring(i+7);
if (typeof(iWD)!='undefined') {
if (!document.getElementById(target)) {
var pageid=EWD.utils.getPiece(target,"-",1);
iWD.createNewPage(pageid);
//targetId=pageid;
}
}
EWD.ajax.destroyDJWidgetsWithin(target);
document.getElementById(target).innerHTML=sub;
}
EWD.ajax.destroyDJWidgetsWithin(targetId);
document.getElementById(targetId).innerHTML=text;
if (typeof(iWD)!='undefined') {
if (typeof(localStorage)!='undefined') {
if (iWD.pageStorage=='local') {
localStorage.setItem("zewd-lastContent-"+targetId,text);
}
}
if (typeof(iWD.target)!='undefined') {
jQT.goTo(iWD.target.panelId,iWD.target.transition,iWD.target.reverse);
iWD.currentFragmentName=iWD.target.panelId;
delete iWD.target;
}
iWD.resetSubmit();
document.getElementById("loading").className='loadingOff';
}
var jsID="ewdButtonJS";
var newJSPointer=document.getElementById(jsID);
EWD.ajax.activateJS(newJSPointer);
var newJSPointer=document.getElementById('ewdscript');
setTimeout("document.body.style.cursor='default'",1);
if (traceFlag) {
if (traceFlag=='alert') {
alert(fragmentText);
}
}
var jsText="";
if (document.getElementById("ewdajaxonload")) {
var onloadPointer=document.getElementById("ewdajaxonload");
var tnode=onloadPointer.firstChild;
while (tnode) {
jsText=jsText+tnode.data;
tnode=tnode.nextSibling;
}
var par=onloadPointer.parentNode;
par.removeChild(onloadPointer);
}
EWD.ajax.activateJS(newJSPointer);
eval(jsText);
/* Custom extension hook */
if (typeof EWD.ajax.onAfterInject !== 'undefined') EWD.ajax.onAfterInject();
},
activateAjaxError: function (errorText) {
if (errorText!="") {
var errorPointer=document.getElementById('ajaxErrorText');
errorPointer.firstChild.data=errorText;
var alertPointer=document.getElementById("ajaxAlert");
if (alertPointer!=null) {
var par=alertPointer.parentNode;
par.removeChild(alertPointer);
}
var head=document.getElementsByTagName("head").item(0);
alertPointer=document.createElement("script");
alertPointer.id="ajaxAlert";
alertPointer.type="text/javascript";
head.appendChild(alertPointer);
alertPointer.text="EWD.ajax.errorOn() ;";
}
},
activateJS: function (newJSPointer) {
if (newJSPointer!=null) {
var newJSCode="";
if (newJSPointer!=null) newJSCode=newJSPointer.firstChild.data;
if (newJSCode!="") {
var node=newJSPointer.firstChild;
var jsText="";
while (node) {
jsText=jsText+node.data
node=node.nextSibling;
}
var par=newJSPointer.parentNode;
par.removeChild(newJSPointer);
if (window.execScript) {
window.execScript(jsText);
}
else {
window.eval(jsText);
}
}
}
},
alert: function(message) {
if (typeof(Ext)!='undefined') {
if (typeof(Ext.Msg)!='undefined') {
Ext.Msg.alert('Error',message, Ext.emptyFn);
}
else {
alert(message);
}
return;
}
if (typeof(iWD)!='undefined') {
iWD.alert(message);
}
else {
alert(message);
}
},
errorOn: function () {
document.getElementById('ewdAjaxError').className='ewdDispOn';
},
errorOff: function () {
document.getElementById('ewdAjaxError').className='ewdDispOff'
},
allowSubmit: true,
confirmSubmit: function (confirmText) {
if (confirmText=="") confirmText="Click OK if OK to continue";
EWD.ajax.allowSubmit=EWD.page.displayConfirm(confirmText);
},
getFragment: function(url,targetId,synch) {
var method="synch";
if (!synch) method="GET"
EWD.ajax.makeRequest(url,targetId,method);
},
fetchPage: {},
getPage: function(params) {
var page=params.page;
EWD.ajax.fetchPage[page.toLowerCase()](params);
},
getURL: function(params) {
var url=params.url;
var nvp=params.nvp;
var targetId=params.targetId;
var synch=params.synch;
if (synch) {
method="synch";
}
else {
var method=params.method;
}
if (nvp) {
if (nvp !== '') url=url+'&'+nvp;
}
if (!targetId) targetId='ewdNullId';
if (targetId === '') targetId='ewdNullId';
EWD.ajax.getFragment(url,targetId,method);
},
submit: function (buttonName,formPointer,nextPage,url,id,traceFlag,synch) {
if (EWD.ajax.allowSubmit!=false) {
var nFields=formPointer.elements.length;
var payload="ewdAjaxSubmit=1&ewd_action="+buttonName+"&ewd_pressed="+buttonName+"&ewd_nextPage="+nextPage;
//var payload="ewdAjaxSubmit=1&ewd_nextPage="+nextPage;
for (var nField=0; nField<nFields; nField++) {
var fieldPointer=formPointer.elements[nField];
var name=fieldPointer.name;
if (name!="") {
var type=fieldPointer.type;
var escValue=escape(fieldPointer.value);
escValue=escValue.replace(/\+/g, "%2B");
if ((type=="text")||(type=="password")|(type=="number")|(type=="tel")) {
payload=payload+"&"+name+"="+escValue;
}
if (type=="hidden") {
if (EWD.utils.getPiece(name,"_",1)!="ewd") {
payload=payload+"&"+name+"="+escValue;
}
}
if (type=="select-one") {
payload=payload+"&"+name+"="+escValue;
}
if (type=="select-multiple") {
returnValue="";
for (i=0 ; i<fieldPointer.length ; i++) {
if (fieldPointer.options[i].selected) {
escValue=escape(fieldPointer.options[i].value);
escValue=escValue.replace(/\+/g, "%2B");
payload=payload+"&"+name+"="+escValue;
}
}
}
if (type=="textarea") {
payload=payload+"&"+name+"="+escValue;
}
if (type=="radio") {
if (fieldPointer.checked) {
payload=payload+"&"+name+"="+escValue;
}
}
if (type=="checkbox") {
if (fieldPointer.length==undefined) {
if (fieldPointer.checked) {
payload=payload+"&"+name+"="+escValue;
}
}
else {
for (var i=0 ; i<fieldPointer.length ; i++) {
if (fieldPointer[i].checked) {
var escValue=escape(fieldPointer[i].value);
escValue=escValue.replace(/\+/g, "%2B");
payload=payload+"&"+name+"="+escValue;
}
}
}
}
}
}
if (synch) {
EWD.ajax.makeRequest(url,id,"synchPOST",payload,traceFlag);
}
else {
EWD.ajax.makeRequest(url,id,"post",payload,traceFlag);
}
}
EWD.ajax.allowSubmit=true;
},
loadXML: function(url, fn) {
var http_request=false;
var replaceContent=function(http_request) {
if (http_request.readyState==4) {
if (http_request.status==200) {
var xmlDoc=http_request.responseXML;
fn(xmlDoc);
}
}
}
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request=new XMLHttpRequest();
}
else if (window.ActiveXObject) { // IE
try {
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
http_request.onreadystatechange=function() {
replaceContent(http_request);
};
http_request.open('GET', url, true);
http_request.send(null);
}
};
EWD.sockets={
sendMessage: function(params) {
if (typeof params.message === 'undefined') params.message='';
params.token=EWD.sockets.token;
if (typeof console !== 'undefined') console.log("sendMessage: "+JSON.stringify(params));
this.socket.json.send(JSON.stringify(params));
},
getPage: function(params) {
if (typeof params.nvp === 'undefined') params.nvp='';
this.sendMessage({type: "ewdGetFragment", page: params.page, targetId: params.targetId, nvp: params.nvp});
},
connect: function(messageFunction, port, token) {
//this.socket=io.connect(null, {port: port, rememberTransport: false});
this.socket=io.connect();
this.socket.on('connect', function() {
if (typeof EWD.sockets.token !== 'undefined') {
console.log('WebSocket connected');
EWD.sockets.sendMessage({type: 'register', token: EWD.sockets.token});
}
});
this.socket.on('message', function(obj){
if (typeof console !== 'undefined') console.log("onMessage: "+JSON.stringify(obj));
if (typeof obj === 'string') {
var pieces=obj.split(':');
var type=pieces.shift();
if (type === 'ewdGetFragment') {
var targetId=pieces.shift();
var content=pieces.join(':');
var pos=content.search("  <");
EWD.ajax.injectFragment(content.substr(pos),targetId);
}
return;
}
if (obj.type === 'json') {
obj.json=JSON.parse(obj.message);
delete obj.message;
}
messageFunction(obj);
});
this.token=token;
//this.sendMessage({type: "register", token: token});
}
};
/*
The following alternative to Douglas Crockford's toJSONString() method
was written by Theodor Zoulias (http://trimpath.com/forum/viewtopic.php?pid=945)
*/
(function () {
toJsonString=function(o) {
var UNDEFINED;
switch (typeof o) {
case 'string': return '\''+encodeJS(o)+'\'';
case 'number': return String(o);
case 'object':
if (o) {
var a=[];
if (o.constructor==Array) {
for (var i=0; i<o.length; i++) {
var json=toJsonString(o[i]);
if (json!=UNDEFINED) a[a.length]=json;
}
return '['+a.join(',')+']';
}
else if (o.constructor==Date) {
return 'new Date('+o.getTime()+')';
}
else {
for (var p in o) {
var json=toJsonString(o[p]);
if (json!=UNDEFINED) a[a.length]=(/^[A-Za-z_]\w*$/.test(p) ? (p+':') : ('\''+encodeJS(p)+'\':'))+json;
}
return '{'+a.join(',')+'}';
}
}
return 'null';
case 'boolean'  : return String(o);
case 'function' : return;
case 'undefined': return 'null';
}
}
function encodeJS(s) {
return (!/[\x00-\x19\'\\]/.test(s)) ? s : s.replace(/([\\'])/g, '\\$1').replace(/\r/g, '\\r').replace(/\n/g, '\\n').replace(/\t/g, '\\t').replace(/[\x00-\x19]/g, '');
}
})()
EWD.slideshow={
getSlide: function(slideNo,loop) {
try {
var slide="slide"+slideNo;
var ssObj=document.getElementById("ewdSlideshow");
ssObj.innerHTML=document.getElementById(slide).innerHTML;
ssObj.setAttribute("slideNo",slideNo);
var titleObj=document.getElementById(slide+"Title");
titleObj.className="ewdPresTitle";
var levels=+titleObj.getAttribute("levels");
for (var level=1;level==levels;level++) {
document.getElementById(slide+"Level"+level).className="ewdPresLevel"+level;
var lines=ssObj.getElementsByTagName("p");
for (var i=0; i<lines.length ; i++) {
var text=lines[i].firstChild.data;
lines[i].firstChild.data=" - "+text;
}
}
if (loop) EWD.slideshow.fadeInLines();
}
catch(err){
return;
}
},
countSlides: function() {
return document.getElementById("ewdSlides").getAttribute("noOfSlides");
},
getLineTime: function() {
try {
return document.getElementById("ewdSlides").getAttribute("linetransition");
}
catch(err) {
return 2;
}
},
getNextSlide: function(loop) {
try {
var slideNo=+document.getElementById("ewdSlideshow").getAttribute("slideNo")+1;
var lastSlide=EWD.slideshow.countSlides();
if (slideNo>lastSlide) slideNo=1;
EWD.slideshow.getSlide(slideNo,loop);
}
catch(err) {
return;
}
},
getLastSlide: function() {
var lastSlide=EWD.slideshow.countSlides();
EWD.slideshow.getSlide(lastSlide,false);
},
getPreviousSlide: function() {
var slideNo=+document.getElementById("ewdSlideshow").getAttribute("slideNo") - 1;
var lastSlide=EWD.slideshow.countSlides();
if (slideNo==0) slideNo=lastSlide;
EWD.slideshow.getSlide(slideNo,false);
},
fadeInLines: function() {
try {
var time=EWD.slideshow.getLineTime();
var ssObj=document.getElementById("ewdSlideshow");
var lines=ssObj.getElementsByTagName("p");
for (var i=0; i<lines.length ; i++) {
var att=lines[i].getAttribute('xstyle');
if (att=="display:none") {
lines[i].style.display="";
lines[i].setAttribute('xstyle','display:');
setTimeout("EWD.slideshow.fadeInLines()",time);
return;
}
}
setTimeout("EWD.slideshow.getNextSlide(true)",time);
}
catch(err) {
return;
}
}
};
EWD.ext={
treeClickHandler: {},
openDesktopWindow: function(title,pageName,width,height,dsName,treeValue,currentPageName) {
if (typeof(windowIndex)=="undefined") windowIndex=0;
windowIndex++;
if (!dsName) dsName='';
if (!treeValue) treeValue='';
var win={
windowId: "window"+windowIndex,
text:title,
fragmentName:pageName,
width:width,
height:height,
dsName:dsName,
treeValue:treeValue,
currentPageName:currentPageName
};
theDesktop.getModule('adhoc').createWindow(win);
},
openWindow: function(win,fragmentName,index,nvpValue) {
var nvp="";
if (typeof(fragmentName)=="undefined") {
fragmentName=win.src;
windowIndex=0;
}
if (typeof(nvpValue)!="undefined") {
nvp="windowNvp="+nvpValue;
}
if (typeof(index)!="undefined") windowIndex=index;
if (typeof(windowIndex)=="undefined") windowIndex=0;
windowIndex++;
win.windowId="window"+windowIndex;
if (!win.title) win.title="New Window";
if (!win.width) win.width=300;
if (!win.height) win.height=400;
if (!win.html) win.html="<div style='background-color:#ffffff;' id='"+win.windowId+"'>Please wait...</div>";
win.listeners={activate:{fn:function(e){EWD.ext.loadWindowFragment(fragmentName,win.windowId,'','',win.currentPageName,nvp);}}};
EWD.ext.window=new Ext.Window(win);
EWD.ext.window.show();
},
validateGridEdit: function(store,editEvent,send) {
var grid=Ext.getCmp(editEvent.grid.id);
var col0=grid.getColumnModel().getDataIndex(0);
var row=editEvent.record.data[col0];
var column=EWD.ext.columnIndex[editEvent.field];
var value=editEvent.value;
var error=EWD.ext.updateStore(store,row,editEvent.field,value,send);
if (error.charAt(0)=="{") {
error=EWD.utils.getPiece(error,"{",2);
error=error.substring(0,error.length-1);
eval(error);
}
else if (error!="") {
Ext.Msg.alert("Error",error);
editEvent.record.set(editEvent.field,editEvent.originalValue);
editEvent.cancel=true;
}
else {
editEvent.cancel=false;
editEvent.record.set(editEvent.field,editEvent.value);
}
},
updateStore: function(store,row,columnName,value,send) {
var column=EWD.ext.columnIndex[columnName];
var x=store+"[row][column]=value";
eval(x);
EWD.ext.error="";
if (send) EWD.ext.updateSession(store,row,column,value);
return EWD.ext.error;
},
columnIndex: {},
storeName: {},
getSelectedGridRecord: function(selectedRecord) {
var currentRow={};
for (var col=0;col<selectedRecord.fields.length;col++) {
currentRow[col]=selectedRecord.get(selectedRecord.fields.keys[col]);
}
return currentRow;
},
showField: function(obj) {
obj.getEl().up('.x-form-item').setDisplayed(true);
},
hideField: function(obj) {
obj.getEl().up('.x-form-item').setDisplayed(false);
}
};

