if(!window.Jacuba){
window.Jacuba=new Object();
}
//Adding include cssimages/-/en_US/
// Adding insert: cssimages
if(!window.Jacuba)window.Jacuba = new Object();
Jacuba.cssimages = new Object();
Jacuba.cssimages['chart-panel'] = new Array();
Jacuba.cssimages['chart-panel'][0] = "/images/chart/panel_back.gif";
Jacuba.cssimages['pie-plain-3d'] = new Array();
Jacuba.cssimages['pie-plain-3d'][0] = "/images/chart/pie_3d.gif";
Jacuba.cssimages['bar-plain'] = new Array();
Jacuba.cssimages['bar-plain'][0] = "/images/chart/bar_plain.gif";
Jacuba.cssimages['chart-label-link-odd'] = new Array();
Jacuba.cssimages['chart-label-link-odd'][0] = "/images/chart/table_2.gif";
Jacuba.cssimages['topLeftCell'] = new Array();
Jacuba.cssimages['topLeftCell'][0] = "/images/chart/table_topleft.gif";
Jacuba.cssimages['butt-save-hover'] = new Array();
Jacuba.cssimages['butt-save-hover'][0] = "/images/chart/save.gif";
Jacuba.cssimages['pie-plain'] = new Array();
Jacuba.cssimages['pie-plain'][0] = "/images/chart/pie.gif";
Jacuba.cssimages['tab-middle'] = new Array();
Jacuba.cssimages['tab-middle'][0] = "/images/chart/tab_onbackground.gif";
Jacuba.cssimages['tab-middle'][1] = "/images/chart/tab_offbackground.gif";
Jacuba.cssimages['bar-stacked-3d'] = new Array();
Jacuba.cssimages['bar-stacked-3d'][0] = "/images/chart/bar_stacked_3d.gif";
Jacuba.cssimages['summary-merge-both'] = new Array();
Jacuba.cssimages['summary-merge-both'][0] = "/images/chart/both_1_2.gif";
Jacuba.cssimages['summary-merge-both'][1] = "/images/chart/both_2_1.gif";
Jacuba.cssimages['butt-print-hover'] = new Array();
Jacuba.cssimages['butt-print-hover'][0] = "/images/chart/print.gif";
Jacuba.cssimages['warning'] = new Array();
Jacuba.cssimages['warning'][0] = "/images/chart/warning.gif";
Jacuba.cssimages['butt-save'] = new Array();
Jacuba.cssimages['butt-save'][0] = "/images/chart/save.gif";
Jacuba.cssimages['butt-data-options-pressed'] = new Array();
Jacuba.cssimages['butt-data-options-pressed'][0] = "/images/chart/data.gif";
Jacuba.cssimages['charts-logo'] = new Array();
Jacuba.cssimages['charts-logo'][0] = "/images/chart/logo.gif";
Jacuba.cssimages['summary-merge-rows'] = new Array();
Jacuba.cssimages['summary-merge-rows'][0] = "/images/chart/rows_1.gif";
Jacuba.cssimages['summary-merge-rows'][1] = "/images/chart/rows_2.gif";
Jacuba.cssimages['butt-data-options-hover'] = new Array();
Jacuba.cssimages['butt-data-options-hover'][0] = "/images/chart/data.gif";
Jacuba.cssimages['body'] = new Array();
Jacuba.cssimages['body'][0] = "/images/chart/info_icon.gif";
Jacuba.cssimages['bar-plain-3d'] = new Array();
Jacuba.cssimages['bar-plain-3d'][0] = "/images/chart/bar_plain_3d.gif";
Jacuba.cssimages['bar-overlapped'] = new Array();
Jacuba.cssimages['bar-overlapped'][0] = "/images/chart/bar_overlapped.gif";
Jacuba.cssimages['remove-button'] = new Array();
Jacuba.cssimages['remove-button'][0] = "/images/chart/remove.gif";
Jacuba.cssimages['butt-chart'] = new Array();
Jacuba.cssimages['butt-chart'][0] = "/images/chart/chart.gif";
Jacuba.cssimages['label-tooltip-arrow'] = new Array();
Jacuba.cssimages['label-tooltip-arrow'][0] = "/images/chart/arrow_more.gif";
Jacuba.cssimages['quick-bar'] = new Array();
Jacuba.cssimages['quick-bar'][0] = "/images/chart/databar_bg.gif";
Jacuba.cssimages['error'] = new Array();
Jacuba.cssimages['error'][0] = "/images/chart/error_icon.gif";
Jacuba.cssimages['summary-merge-columns'] = new Array();
Jacuba.cssimages['summary-merge-columns'][0] = "/images/chart/columns_1.gif";
Jacuba.cssimages['summary-merge-columns'][1] = "/images/chart/columns_2.gif";
Jacuba.cssimages['pie-elliptic'] = new Array();
Jacuba.cssimages['pie-elliptic'][0] = "/images/chart/pie_elliptic.gif";
Jacuba.cssimages['tab-left'] = new Array();
Jacuba.cssimages['tab-left'][0] = "/images/chart/tab_onleft.gif";
Jacuba.cssimages['tab-left'][1] = "/images/chart/tab_offleft.gif";
Jacuba.cssimages['chart-label-link-even'] = new Array();
Jacuba.cssimages['chart-label-link-even'][0] = "/images/chart/table_1.gif";
Jacuba.cssimages['butt-help-hover'] = new Array();
Jacuba.cssimages['butt-help-hover'][0] = "/images/chart/help.gif";
Jacuba.cssimages['butt-help'] = new Array();
Jacuba.cssimages['butt-help'][0] = "/images/chart/help.gif";
Jacuba.cssimages['butt-chart-hover'] = new Array();
Jacuba.cssimages['butt-chart-hover'][0] = "/images/chart/chart.gif";
Jacuba.cssimages['summary-merge-neither'] = new Array();
Jacuba.cssimages['summary-merge-neither'][0] = "/images/chart/none_1.gif";
Jacuba.cssimages['summary-merge-neither'][1] = "/images/chart/none_2.gif";
Jacuba.cssimages['bar-stacked'] = new Array();
Jacuba.cssimages['bar-stacked'][0] = "/images/chart/bar_stacked.gif";
Jacuba.cssimages['butt-settings-hover'] = new Array();
Jacuba.cssimages['butt-settings-hover'][0] = "/images/chart/options.gif";
Jacuba.cssimages['butt-settings'] = new Array();
Jacuba.cssimages['butt-settings'][0] = "/images/chart/options.gif";
Jacuba.cssimages['butt-data-options'] = new Array();
Jacuba.cssimages['butt-data-options'][0] = "/images/chart/data.gif";
Jacuba.cssimages['butt-chart-pressed'] = new Array();
Jacuba.cssimages['butt-chart-pressed'][0] = "/images/chart/chart.gif";
Jacuba.cssimages['butt-settings-pressed'] = new Array();
Jacuba.cssimages['butt-settings-pressed'][0] = "/images/chart/options.gif";
Jacuba.cssimages['butt-print'] = new Array();
Jacuba.cssimages['butt-print'][0] = "/images/chart/print.gif";
Jacuba.cssimages['tab-right'] = new Array();
Jacuba.cssimages['tab-right'][0] = "/images/chart/tab_onright.gif";
Jacuba.cssimages['tab-right'][1] = "/images/chart/tab_offright.gif";
Jacuba.cssimages['pie-elliptic-3d'] = new Array();
Jacuba.cssimages['pie-elliptic-3d'][0] = "/images/chart/pie_elliptic_3d.gif";

if(!Jacuba.debug){
Jacuba.debug=function(_1,_2){
if(_2){
if(window.Jacuba&&window.Jacuba.DEBUG_LEVEL&&_2>window.Jacuba.DEBUG_LEVEL){
return;
}
}
var _3=document.getElementById("debug");
if(_3){
_3.appendChild(document.createTextNode(_1));
_3.appendChild(document.createElement("BR"));
}
if(Jacuba.Coding&&Jacuba.Coding.debug){
Jacuba.Coding.debug(_1);
}
};
}
if(!Jacuba.stackTracer){
Jacuba.stackTracer=new Object();
Jacuba.stackTracer.stack=new Array();
Jacuba.stackTracer.push=function(_4){
if(!_4){
alert("! stack frame required");
}
Jacuba.stackTracer.stack[Jacuba.stackTracer.stack.length]=_4;
};
Jacuba.stackTracer.pop=function(_5){
if(Jacuba.stackTracer.stack.length>0){
var _6=Jacuba.stackTracer.stack[Jacuba.stackTracer.stack.length-1];
if(_5&&_5!=_6){
alert("! popped frame was not on top");
}
Jacuba.stackTracer.stack.length=Jacuba.stackTracer.stack.length-1;
}else{
alert("! stack is empty");
}
};
Jacuba.stackTracer.getTrace=function(){
var s="";
for(var x=Jacuba.stackTracer.stack.length-1;x>=0;x--){
s+=Jacuba.stackTracer.stack[x]+"\r\n";
}
return s;
};
}
if(!Jacuba.ErrorHandler&&!window.onerror){
Jacuba.ErrorHandler=new Object();
Jacuba.ErrorHandler.listeners=new Array();
Jacuba.ErrorHandler.reportError=function(_9,url,_11){
Jacuba.debug("ERROR: "+_9+" ("+url+":"+_11+")",1);
for(var x=0;x<Jacuba.ErrorHandler.listeners.length;x++){
var _12=Jacuba.ErrorHandler.listeners[x];
if(_12!=null){
_12.receiveError(_9,url,_11);
}
}
};
Jacuba.ErrorHandler.addListener=function(_13){
if(!_13){
throw "A listener must be supplied";
}
if(!_13.receiveError){
throw "Supplied listener does not have a 'receiveError' method";
}
Jacuba.ErrorHandler.listeners[Jacuba.ErrorHandler.listeners.length]=_13;
};
Jacuba.ErrorHandler.removeListener=function(_14){
for(var x=0;x<Jacuba.ErrorHandler.listeners.length;x++){
if(Jacuba.ErrorHandler.listeners[x]==_14){
Jacuba.ErrorHandler.listeners[x]=null;
break;
}
}
};
window.onerror=function(msg,url,_16){
Jacuba.ErrorHandler.reportError(msg,url,_16);
};
Jacuba.ErrorHandler.installCoding=function(){
Jacuba.Coding.applyToObject("ErrorHandler",Jacuba.ErrorHandler);
};
}
if(!Jacuba.detectBrowser){
Jacuba.detectBrowser=function(){
var _17=navigator.userAgent.toLowerCase();
var _18,substring;
var _19,OS,version;
var _20=function(str){
_18=_17.indexOf(str)+1;
substring=str;
return _18;
};
if(_20("konqueror")){
_19="KQ";
OS="LX";
}else{
if(_20("safari")){
_19="SF";
}else{
if(_20("omniweb")){
_19="OW";
}else{
if(_20("opera")){
_19="OP";
}else{
if(_20("webtv")){
_19="TV";
}else{
if(_20("icab")){
_19="IC";
}else{
if(_20("msie")){
_19="IE";
}else{
if(!_20("compatible")){
_19="NS";
version=_17.charAt(8);
}else{
_19="";
}
}
}
}
}
}
}
}
if(!version){
version=_17.charAt(_18+substring.length);
}
if(!OS){
if(_20("linux")){
OS="LX";
}else{
if(_20("x11")){
OS="UX";
}else{
if(_20("mac")){
OS="MC";
}else{
if(_20("win")){
OS="WN";
}else{
OS="";
}
}
}
}
}
Jacuba.BROWSER_NAME=_19;
Jacuba.BROWSER_VERSION=version;
Jacuba.BROWSER_OS=OS;
};
Jacuba.detectBrowser();
}
if(!window.Jacuba.I18N){
window.Jacuba.I18N=new Object();
}
//Converting properties to en_US
Jacuba.I18N.LANG = "en_US";
if(!window.Jacuba){
window.Jacuba=new Object();
}
//Adding include textmanager/-/en_US/
if(!window.Jacuba){
window.Jacuba=new Object();
}
if(!window.Jacuba.TextManager){
window.Jacuba.TextManager=new Object();
Jacuba.TextManager.init=function(){
this.inited=true;
this.holders=new Array();
if(this.lang==null){
this.lang=Jacuba.I18N.LANG;
}
};
if(!window.Jacuba.TextManager.inited){
Jacuba.TextManager.init();
}
Jacuba.TextManager.setLanguage=function(_1){
if(this.lang==_1){
return;
}
this.lang=_1;
for(var x in Jacuba.I18N.loaded_packs[Jacuba.I18N.LANG]){
this.loadText(x);
}
Jacuba.I18N.LANG=this.lang;
for(var x=0;x<this.holders.length;x++){
this.holders[x].update();
}
};
Jacuba.TextManager.loadText=function(_3){
if(Jacuba.I18N.loaded_packs[this.lang][_3]!=null){
return;
}
var _4=false;
var _5=Jacuba.I18N.loaded_packs[this.lang];
if(_5!=null){
var _6=_5[_3];
if(_6!=null){
_4=true;
}
}
if(!_4){
}
};
Jacuba.TextManager.getText=function(_7,_8){
var _9=Jacuba.I18N.loaded_packs[this.lang][_7][_8];
for(var x=2;x<arguments.length;x++){
_9=_9.replace(new RegExp("\\$\\{"+(x-2)+"\\}","g"),arguments[x]);
}
return _9;
};
Jacuba.TextManager.setElementText=function(_10,_11,_12){
this.holders[this.holders.length]=new Jacuba.TextManager.TextHolderElement(_10,_11,_12,true);
};
Jacuba.TextManager.setElementValue=function(_13,_14,_15){
this.holders[this.holders.length]=new Jacuba.TextManager.ValueHolderElement(_13,_14,_15);
};
Jacuba.TextManager.setOptionText=function(_16,_17,_18){
this.holders[this.holders.length]=new Jacuba.TextManager.OptionHolder(_16,_17,_18);
};
Jacuba.TextManager.TextHolderElement=function(_19,_20,_21,_22){
this.html=_19;
this.module=_20;
this.textid=_21;
this.ishtml=_22!=null?_22:false;
this.update();
};
Jacuba.TextManager.TextHolderElement.prototype.update=function(){
var _23=Jacuba.TextManager.getText(this.module,this.textid);
if(this.ishtml){
this.html.innerHTML=_23;
}else{
while(this.html.firstChild){
this.html.removeChild(this.html.firstChild);
}
this.html.appendChild(document.createTextNode(_23));
}
};
Jacuba.TextManager.ValueHolderElement=function(_24,_25,_26){
this.html=_24;
this.module=_25;
this.textid=_26;
this.update();
};
Jacuba.TextManager.ValueHolderElement.prototype.update=function(){
var _27=Jacuba.TextManager.getText(this.module,this.textid);
this.html.value=_27;
};
Jacuba.TextManager.OptionHolder=function(_28,_29,_30){
this.html=_28;
this.module=_29;
this.textid=_30;
this.update();
};
Jacuba.TextManager.OptionHolder.prototype.update=function(){
var _31=Jacuba.TextManager.getText(this.module,this.textid);
this.html.text=_31;
};
Jacuba.TextManager.installCoding=function(){
if(!Jacuba.Coding){
alert("Coding framework not available");
return;
}
Jacuba.Coding.applyToObject("TextManager",Jacuba.TextManager);
Jacuba.Coding.applyToClass("TextManager.TextHolderElement");
Jacuba.Coding.applyToClass("TextManager.ValueHolderElement");
Jacuba.Coding.applyToClass("TextManager.OptionHolder");
};
}

//Adding include comm/-/en_US/
if(!window.Jacuba){
window.Jacuba=new Object();
}
if(!window.Jacuba.Comm){
if(!Jacuba.debug){
Jacuba.debug=function(_1,_2){
if(_2){
if(window.Jacuba&&window.Jacuba.DEBUG_LEVEL&&_2>window.Jacuba.DEBUG_LEVEL){
return;
}
}
var _3=document.getElementById("debug");
if(_3){
_3.appendChild(document.createTextNode(_1));
_3.appendChild(document.createElement("BR"));
}
if(Jacuba.Coding&&Jacuba.Coding.debug){
Jacuba.Coding.debug(_1);
}
};
}
//Converting properties to en_US
Jacuba.I18N.MSG = {server_nocomp: "Server failed to specifiy target of communication", already_inprogress: "Communication already in progress!", nocomp: "No component with id \"${0}\"", noclient_commreceive: "Supplied client object does not have a 'commReceive' method.", nocontext: "No communication context with id '${0}'", noclient: "A client object must be supplied!"};
if(!window.Jacuba.I18N.loaded_packs){
Jacuba.I18N.loaded_packs=new Object();
}
if(!window.Jacuba.I18N.loaded_packs[Jacuba.I18N.LANG]){
Jacuba.I18N.loaded_packs[Jacuba.I18N.LANG]=new Object();
}
Jacuba.I18N.loaded_packs[Jacuba.I18N.LANG]["comm"]=Jacuba.I18N.MSG;
window.Jacuba.Comm=new Object();
Jacuba.Comm.LOG_RECORD_HEADINGS=new Array("Context","Client","Activity","Method","URL","Description");
//Converting properties to en_US
Jacuba.Comm.MAX_ATTEMPTS = 3;
Jacuba.Comm.RETRY_INTERVAL = 500;
Jacuba.Comm.contexts=new Object();
Jacuba.Comm.curr_context=null;
Jacuba.Comm.iframe_parent=null;
Jacuba.Comm.log_buffer=new Array();
Jacuba.Comm.log_pointer=0;
Jacuba.Comm.log_length=50;
Jacuba.Comm.log_count=0;
Jacuba.Comm.held_data=new Object();
Jacuba.Comm.held_data_counter=0;
Jacuba.Comm.hold=function(_4){
var id=(Jacuba.Comm.held_data_counter++)+"";
Jacuba.Comm.held_data[id]=_4;
return id;
};
Jacuba.Comm.getHeld=function(id){
return Jacuba.Comm.held_data[id];
};
Jacuba.Comm.withdrawHeld=function(id){
var _6=Jacuba.Comm.held_data[id];
delete Jacuba.Comm.held_data[id];
return _6;
};
Jacuba.Comm.request=function(_7,_8,_9,_10,_11){
var _12=0;
if(arguments.length>5){
var _13=arguments[5];
if(_13!=null){
if(typeof _13!="number"){
throw "! attempt number must be numeric: "+_13+" ("+(typeof _13)+")";
}
_12=_13;
}
}
if(_7==null){
alert(Jacuba.TextManager.getText("comm","noclient"));
return;
}
if(!_7.commReceive){
alert(Jacuba.TextManager.getText("comm","noclient_commreceive"));
return;
}
var _14=false;
for(var i in Jacuba.Comm.contexts){
var _16=Jacuba.Comm.contexts[i];
if(!_16.inUse()){
_16.request(_7,_8,_9,_10,_11,_12);
_14=true;
break;
}
}
if(!_14){
var _16=new Jacuba.Comm.Context();
_16.request(_7,_8,_9,_10,_11,_12);
Jacuba.Comm.contexts[_16.getId()]=_16;
}
};
Jacuba.Comm.getActiveCommCount=function(){
var _17=0;
for(var i in Jacuba.Comm.contexts){
var _18=Jacuba.Comm.contexts[i];
if(_18.inUse()){
_17++;
}
}
return _17;
};
Jacuba.Comm.doWhenIdle=function(fn){
if(Jacuba.Comm.getActiveCommCount()==0){
Jacuba.debug("no active comms doing work now");
fn();
}else{
Jacuba.debug("enqueuing work");
if(!Jacuba.Comm.pending_fns){
Jacuba.Comm.pending_fns=new Array();
}
Jacuba.Comm.pending_fns[Jacuba.Comm.pending_fns.length]=fn;
}
};
Jacuba.Comm.serverSend=function(){
var _20=Jacuba.Comm.curr_context;
if(_20==null){
alert(Jacuba.TextManager.getText("comm","server_norecipient"));
return;
}
var _21=new Object();
_21.url=_20.url;
_21.arguments=new Array();
for(var i=0;i<arguments.length;i++){
_21.arguments[i]=arguments[i];
}
_20.client.commReceive(_21);
};
Jacuba.Comm.serverError=function(msg,_23){
var _24=Jacuba.Comm.curr_context;
if(_24==null){
alert(Jacuba.TextManager.getText("comm","server_norecipient"));
return;
}
Jacuba.Comm.logError(_24,msg);
var _25=false;
var _26=new Jacuba.Comm.ErrorResponse(_24,msg,_23);
if(_24.client.commReceiveError){
_25=_24.client.commReceiveError(_26);
}
if(!_25){
var _27=false;
if(_23=="too_busy"){
var _28=_26.getAttemptNumber();
if(_28<Jacuba.Comm.MAX_ATTEMPTS){
_27=true;
}
}
if(_27){
_26.retry();
_25=true;
}
}
if(!_25){
alert("Server Error: "+msg);
}
};
Jacuba.Comm.response=function(_29,fn){
Jacuba.debug("received response in context "+_29);
var _30=Jacuba.Comm.contexts[_29];
if(_30==null){
alert(Jacuba.TextManager.getText("comm","nocontext",_29));
return;
}
_30.receive(fn);
};
Jacuba.Comm.contextClosed=function(_31){
if(Jacuba.Comm.pending_fns){
Jacuba.debug("pending fns ("+Jacuba.Comm.getActiveCommCount()+" active)");
if(Jacuba.Comm.getActiveCommCount()==0){
for(var x=0;x<Jacuba.Comm.pending_fns.length;x++){
Jacuba.Comm.pending_fns[x]();
}
Jacuba.Comm.pending_fns=null;
}
}
};
Jacuba.Comm.errorResponse=function(msg){
var s="Server has reported a problem:\r\n"+msg+"\r\n\r\n";
s+="Active communications:\r\n";
for(var i in Jacuba.Comm.contexts){
var _34=Jacuba.Comm.contexts[i];
if(_34.inUse()){
s+=_34.getId()+": ";
if(_34.client.id){
s+="client="+_34.client.id;
}
s+="url="+_34.url+"\r\n";
}
}
alert(s);
};
Jacuba.Comm.ensureIFrameParent=function(){
if(Jacuba.Comm.iframe_parent){
return;
}
var div=document.createElement("DIV");
div.style.position="absolute";
div.style.top="0px";
div.style.left="0px";
document.body.appendChild(div);
Jacuba.Comm.iframe_parent=div;
};
Jacuba.Comm.addLogRecord=function(_36){
if(Jacuba.Coding&&Jacuba.Coding.log){
var _37=Jacuba.Coding.getLoggingCategory("comm");
if(!_37){
Jacuba.Coding.defineLoggingCategory("comm",Jacuba.Comm.LOG_RECORD_HEADINGS);
}
var _38=new Array();
for(var x=0;x<_36.length;x++){
_38[x]=_36[x];
}
Jacuba.Coding.log(_38,"comm");
}
var _39=Jacuba.Comm.log_pointer++;
if(Jacuba.Comm.log_pointer>=Jacuba.Comm.log_length){
Jacuba.Comm.log_pointer=0;
}
_36[_36.length]=""+(Jacuba.Comm.log_count++);
Jacuba.Comm.log_buffer[_39]=_36;
};
Jacuba.Comm.logRequest=function(_40,_41){
var _42=_40.client;
if(_42){
_42=_42.id;
}else{
_42="N/A";
}
if(!_42){
_42="?";
}
var _43=_40.desc;
if(_40.attempt_count>0){
_43+=" (ATTEMPT "+(_40.attempt_count+1)+")";
}
var _44=new Array(_40.getId(),_42,"request",_41?"POST":"GET",_40.url,_43);
Jacuba.Comm.addLogRecord(_44);
};
Jacuba.Comm.logResponse=function(_45,_46){
var _47=_45.client;
if(_47){
_47=_47.id;
}else{
_47="N/A";
}
if(!_47){
_47="?";
}
var _48=new Array(_45.getId(),_47,"response","-",_45.url,_46);
Jacuba.Comm.addLogRecord(_48);
};
Jacuba.Comm.logError=function(_49,_50){
var _51=_49.client;
if(_51){
_51=_51.id;
}else{
_51="N/A";
}
if(!_51){
_51="?";
}
var _52=new Array(_49.getId(),_51,"ERROR","-",_49.url,_50);
Jacuba.Comm.addLogRecord(_52);
};
Jacuba.Comm.updateLogTable=function(_53){
if(!_53){
return;
}
while(_53.firstChild){
_53.removeChild(_53.firstChild);
}
var _54=document.createElement("TBODY");
_53.appendChild(_54);
var tr,td;
tr=document.createElement("TR");
_54.appendChild(tr);
th=document.createElement("TH");
tr.appendChild(th);
th.innerHTML="Context";
th=document.createElement("TH");
tr.appendChild(th);
th.innerHTML="Client";
th=document.createElement("TH");
tr.appendChild(th);
th.innerHTML="Activity";
th=document.createElement("TH");
tr.appendChild(th);
th.innerHTML="Method";
th=document.createElement("TH");
tr.appendChild(th);
th.innerHTML="URL";
th=document.createElement("TH");
tr.appendChild(th);
th.innerHTML="Description";
th=document.createElement("TH");
tr.appendChild(th);
th.innerHTML="No";
if(Jacuba.Comm.log_buffer.length==0){
return;
}
var _56=Jacuba.Comm.log_buffer.length==Jacuba.Comm.log_length?Jacuba.Comm.log_pointer:0;
var _57=Jacuba.Comm.log_buffer.length==Jacuba.Comm.log_length?_56-1:Jacuba.Comm.log_buffer.length-1;
if(_57<0){
_57=Jacuba.Comm.log_buffer.length-1;
}
while(true){
var _58=Jacuba.Comm.log_buffer[_56];
tr=document.createElement("TR");
_54.appendChild(tr);
for(var i=0;i<_58.length;i++){
var td=document.createElement("TD");
tr.appendChild(td);
td.innerHTML=_58[i];
}
if(_56==_57){
break;
}
_56++;
if(_56>=Jacuba.Comm.log_buffer.length){
_56=0;
}
}
};
Jacuba.Comm.sha1Hash=function(msg){
var K=[1518500249,1859775393,2400959708,3395469782];
msg_bytes=Jacuba.Comm.utf8(msg);
msg_bytes[msg_bytes.length]=128;
var l=Math.ceil(msg_bytes.length/4)+2;
var N=Math.ceil(l/16);
var M=new Array(N);
for(var i=0;i<N;i++){
M[i]=new Array(16);
for(var j=0;j<16;j++){
M[i][j]=(msg_bytes[i*64+j*4]<<24)|(msg_bytes[i*64+j*4+1]<<16)|(msg_bytes[i*64+j*4+2]<<8)|(msg_bytes[i*64+j*4+3]);
}
}
M[N-1][14]=((msg_bytes.length-1)>>>30)*8;
M[N-1][15]=((msg_bytes.length-1)*8)&4294967295;
var H0=1732584193;
var H1=4023233417;
var H2=2562383102;
var H3=271733878;
var H4=3285377520;
var W=new Array(80);
var a,b,c,d,e;
for(var i=0;i<N;i++){
for(var t=0;t<16;t++){
W[t]=M[i][t];
}
for(var t=16;t<80;t++){
W[t]=Jacuba.Comm.sha1HashROTL(W[t-3]^W[t-8]^W[t-14]^W[t-16],1);
}
a=H0;
b=H1;
c=H2;
d=H3;
e=H4;
for(var t=0;t<80;t++){
var s=Math.floor(t/20);
var T=(Jacuba.Comm.sha1HashROTL(a,5)+Jacuba.Comm.sha1HashF(s,b,c,d)+e+K[s]+W[t])&4294967295;
e=d;
d=c;
c=Jacuba.Comm.sha1HashROTL(b,30);
b=a;
a=T;
}
H0=(H0+a)&4294967295;
H1=(H1+b)&4294967295;
H2=(H2+c)&4294967295;
H3=(H3+d)&4294967295;
H4=(H4+e)&4294967295;
}
return Jacuba.Comm.sha1HashToHexStr(H0)+Jacuba.Comm.sha1HashToHexStr(H1)+Jacuba.Comm.sha1HashToHexStr(H2)+Jacuba.Comm.sha1HashToHexStr(H3)+Jacuba.Comm.sha1HashToHexStr(H4);
};
Jacuba.Comm.utf8=function(_74){
var c,s;
var enc=new Array();
var i=0;
while(i<_74.length){
c=_74.charCodeAt(i++);
if(c>=56320&&c<57344){
continue;
}
if(c>=55296&&c<56320){
if(i>=_74.length){
continue;
}
s=_74.charCodeAt(i++);
if(s<56320||c>=56832){
continue;
}
c=((c-55296)<<10)+(s-56320)+65536;
}
if(c<128){
enc[enc.length]=c;
}else{
if(c<2048){
enc[enc.length]=192+(c>>6);
enc[enc.length]=128+(c&63);
}else{
if(c<65536){
enc[enc.length]=224+(c>>12);
enc[enc.length]=128+(c>>6&63);
enc[enc.length]=128+(c&63);
}else{
enc[enc.length]=240+(c>>18);
enc[enc.length]=128+(c>>12&63);
enc[enc.length]=128+(c>>6&63);
enc[enc.length]=128+(c&63);
}
}
}
}
return enc;
};
Jacuba.Comm.sha1HashF=function(s,x,y,z){
switch(s){
case 0:
return (x&y)^(~x&z);
case 1:
return x^y^z;
case 2:
return (x&y)^(x&z)^(y&z);
case 3:
return x^y^z;
}
};
Jacuba.Comm.sha1HashROTL=function(x,n){
return (x<<n)|(x>>>(32-n));
};
Jacuba.Comm.sha1HashToHexStr=function(num){
var s="",v;
for(var i=7;i>=0;i--){
v=(num>>>(i*4))&15;
s+=v.toString(16);
}
return s;
};
Jacuba.Comm.Context=function(){
this.id=(Jacuba.Comm.Context.id_counter++)+"";
this.iframe_ok=false;
this.method=null;
};
Jacuba.Comm.Context.id_counter=0;
Jacuba.Comm.Context.prototype.getId=function(){
return this.id;
};
Jacuba.Comm.Context.prototype.getDescription=function(fn){
return this.desc;
};
Jacuba.Comm.Context.prototype.request=function(_81,url,_83,_84,_85,_86){
this.client=_81;
this.url=url;
this.desc=_84;
this.parent=_85;
this.props=_83;
this.method=_83?"POST":"GET";
this.attempt_count=_86;
var msg=_81.id+" requests via context "+this.id+" - "+(_83?"props":"no props")+(_84?" - "+_84:"");
Jacuba.debug(msg);
Jacuba.Comm.logRequest(this,_83);
this.ensureIFrame();
if(Jacuba.DEBUG){
this.iframe.style.border="1px solid #00FF00";
}
var win=this.iframe.contentWindow;
if(this.method=="GET"){
this.method="GET";
var _88=this.url;
var _89=_88.indexOf("?");
if(_89==-1){
_88+="?";
}else{
_88+="&";
}
_88+="timestamp="+new Date().getTime();
var url="javascript: \"<html><head><script>function loaded(){parent.Jacuba.Comm.contexts['"+this.id+"'].iframe_ok = true; if (jacubaRun){parent.Jacuba.Comm.response('"+this.id+"',jacubaRun);}}</scr"+"ipt><script type='text/javascript' src=\\\""+_88+"\\\"></scr"+"ipt></head><body>";
if(_84){
url+=_84;
}
url+="</body></html>\"";
win.location.replace(url);
}else{
this.method="POST";
var _90=this.commId();
var _91="<FORM id=\"form\" action=\""+url+"\" method=\"POST\" onsubmit=\"parent.Jacuba.debug('POSTED props')\">";
_91+="<INPUT type=\"HIDDEN\" name=\"comm_context-id\" value=\""+this.id+"\">";
_91+="<INPUT type=\"HIDDEN\" name=\"comm_response-type\" value=\"document\">";
_91+="<INPUT type=\"HIDDEN\" name=\"comm_id\" value=\""+_90+"\">";
for(var x in _83){
_91+="<INPUT type=\"HIDDEN\" name=\""+Jacuba.Comm.Context.escapeHTML(x)+"\" value=\""+Jacuba.Comm.Context.escapeHTML(_83[x])+"\">";
}
_91+="</FORM>";
var _92=Jacuba.Comm.hold(_91);
Jacuba.debug(_91);
var doc="<HTML><HEAD><meta content=\"text/html; charset=UTF-8\" http-equiv=\"content-type\"></meta><script>function loaded(){var context=parent.Jacuba.Comm.contexts['"+this.id+"']; var content = parent.Jacuba.Comm.withdrawHeld('"+_92+"'); document.body.innerHTML = content; document.getElementById('form').submit(); context.posted();};if(window.addEventListener){window.addEventListener(\"load\",loaded,false);}else{window.attachEvent(\"onload\", loaded)}</scr"+"ipt></HEAD><BODY>";
if(_84){
doc+=_84;
}
doc+="</BODY></HTML>";
var url=doc.replace(/"/g,"\\\"");
this.stored_iframe=this.iframe;
this.iframe=this.createCommIFrame();
this.iframe.style.display="";
this.iframe.src="javascript:\""+url+"\"";
this.addIFrameToDocument(this.iframe);
}
};
Jacuba.Comm.Context.prototype.posted=function(){
this.iframe_ok=true;
Jacuba.debug("SUBMITING FORM");
var _94=this.commId();
var _95=this.url;
if(_95.indexOf("?")==-1){
_95=this.url+"?comm_get="+_94;
}else{
_95+="&comm_get="+_94;
}
Jacuba.Comm.request(this.client,_95,null,this.desc?"["+this.id+"] "+this.desc:null,this,this.attempt_count);
};
Jacuba.Comm.Context.prototype.getProperties=function(){
if(this.props){
return this.props;
}
if(this.parent){
return this.parent.getProperties();
}
};
Jacuba.Comm.Context.prototype.childClosed=function(){
Jacuba.Comm.logResponse(this,"response supplied by parallel request");
if(!this.iframe_ok){
Jacuba.Comm.logError(this,"Failed to submit data!");
if(!Jacuba.DEBUG){
this.iframe.parentNode.removeChild(this.iframe);
}else{
this.iframe.style.border="1px solid #FF0000";
}
this.iframe=null;
}
this.close();
};
Jacuba.Comm.Context.prototype.receive=function(fn){
if(Jacuba.DEBUG){
this.iframe.style.border="1px solid #FFFF00";
}
var _96=this.iframe.contentWindow.comm_description;
if(!_96){
_96="response: "+this.desc;
}
Jacuba.Comm.logResponse(this,_96);
var _97=Jacuba.Comm.curr_context;
Jacuba.Comm.curr_context=this;
if(fn!=null){
fn();
}
Jacuba.Comm.curr_context=_97;
this.close();
};
Jacuba.Comm.Context.prototype.close=function(){
if(this.method=="POST"){
if(this.iframe){
if(Jacuba.DEBUG){
this.iframe.style.border="1px solid #00FFFF";
}else{
this.iframe.parentNode.removeChild(this.iframe);
}
this.iframe=null;
}
}
this.client=null;
this.url=null;
this.desc=null;
this.comm_id=null;
this.props=null;
this.iframe_ok=false;
this.method=null;
this.attempt_count=null;
if(this.parent){
this.parent.childClosed();
this.parent=null;
}
if(this.iframe){
if(!Jacuba.DEBUG){
this.iframe.style.display="none";
}else{
this.iframe.style.border="1px solid #666666";
}
}
Jacuba.Comm.contextClosed(this);
};
Jacuba.Comm.Context.prototype.inUse=function(){
return this.client!=null;
};
Jacuba.Comm.Context.prototype.ensureIFrame=function(){
if(this.iframe!=null){
return;
}
if(this.stored_iframe!=null){
this.iframe=this.stored_iframe;
this.stored_iframe=null;
return;
}
this.iframe=this.createCommIFrame();
this.addIFrameToDocument(this.iframe);
};
Jacuba.Comm.Context.prototype.createCommIFrame=function(){
var _98=document.createElement("IFRAME");
_98.src="javascript:\"\"";
if(!Jacuba.DEBUG){
_98.style.display="none";
_98.style.width="1px";
_98.style.height="1px";
_98.frameBorder="0";
_98.style.margin="0px";
_98.style.border="0px";
}else{
_98.style.border="1px solid #666666";
}
return _98;
};
Jacuba.Comm.Context.prototype.addIFrameToDocument=function(_99){
if(Jacuba.DEBUG){
document.getElementsByTagName("BODY")[0].appendChild(_99);
}else{
Jacuba.Comm.ensureIFrameParent();
Jacuba.Comm.iframe_parent.appendChild(_99);
}
};
Jacuba.Comm.Context.prototype.commId=function(){
if(this.comm_id){
return this.comm_id;
}
var _100=navigator.userAgent.toLowerCase();
var rnd=Math.round((Math.random()*10000));
var time=new Date();
this.comm_id=Jacuba.Comm.sha1Hash(_100+rnd+time+"");
return this.comm_id;
};
Jacuba.Comm.Context.prototype.disposeIFrame=function(){
if(this.iframe==null){
return;
}
this.iframe.parentNode.removeChild(this.iframe);
this.iframe=null;
};
Jacuba.Comm.Context.escapeHTML=function(str){
if(str==null){
return "";
}
return str.toString().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");
};
Jacuba.Comm.ErrorResponse=function(_104,msg,code){
this.client=_104.client;
this.url=_104.url;
this.desc=_104.desc;
this.props=_104.getProperties();
this.attempt_count=_104.attempt_count;
this.msg=msg;
this.code=code;
};
Jacuba.Comm.ErrorResponse.prototype.retry=function(wait){
var _107=this.client;
var _108=this.url;
var _109=this.desc;
var _110=this.props;
var _111=this.attempt_count+1;
var pos=_108.lastIndexOf("comm_get");
if(pos!=-1){
var pos2=_108.indexOf("&",pos);
var _114="";
if(pos2!=-1){
_114=_108.substring(pos2+1,_108.length);
}
_108=_108.substring(0,pos)+_114;
if(_108.charAt(_108.length-1)=="?"){
_108=_108.substring(0,_108.length-1);
}
}
var work=function(){
Jacuba.Comm.request(_107,_108,_110,_109,null,_111);
};
var key=Jacuba.Comm.hold(work);
if(wait==null){
wait=Math.pow(2,this.attempt_count)*Jacuba.Comm.RETRY_INTERVAL;
}
Jacuba.Comm.doWhenIdle(function(){
window.setTimeout("Jacuba.Comm.withdrawHeld(\""+key+"\")()",wait);
});
};
Jacuba.Comm.ErrorResponse.prototype.getMessage=function(){
return this.msg;
};
Jacuba.Comm.ErrorResponse.prototype.getCode=function(){
return this.code;
};
Jacuba.Comm.ErrorResponse.prototype.getRequestProperties=function(){
return this.props;
};
Jacuba.Comm.ErrorResponse.prototype.getRequestURL=function(){
return this.url;
};
Jacuba.Comm.ErrorResponse.prototype.getRequestDescription=function(){
return this.desc;
};
Jacuba.Comm.ErrorResponse.prototype.getAttemptNumber=function(){
return this.attempt_count;
};
Jacuba.Comm.installCoding=function(){
if(!Jacuba.Coding){
alert("Coding framework not available");
return;
}
Jacuba.Coding.applyToObject("Comm",Jacuba.Comm);
Jacuba.Coding.applyToClass("Comm.ErrorResponse");
Jacuba.Coding.applyToClass("Comm.Context");
};
}

//Converting properties to en_US
Jacuba.I18N.MSG = {Y_Axis: "Y-Axis label", Bar: "Bar", plain: "Plain", Direction: "Direction", Text_color_help: "The color that should be used for the text", no_image: "There is no image tag with id \"${0}\"", merged_both_tip: "Rows and Columns with the same heading are merged.", Advanced: "Advanced", Axes: "Axes", Point_shapes: "Mark plotted points with shapes", reset: "reset", bad_width: "The supplied width must be a number", merged_both: "Merge Rows and Columns", color1: "Color 1", too_busy: "Unfortunately the charting service is too busy to handle your request at this time, please try again later", Second: "Second", Pie_plain: "Plain", Font_style: "Font style", color2: "Color 2", Generate: "Make Chart", Plain_3D: "Plain 3D", opacity: "Opacity", Stacked: "Stacked", bad_index: "Bad value for property \"${0}\", the index ${1} is not permitted, should be: ${2}", Print: "Print", title_help: "The title of the chart", Point_shapes_help: "Places shapes on the plotted points when checked", Courier: "Courier", excluded_row_conflict: "Cannot select row ${0} as it has been excluded", print: "Print", missing_chart_type: "A chart type must be selected", Elliptic3d: "Elliptic 3D", length_help: "The largest value that can appear on the value axis.", General: "General", merged_rows_tip: "Rows with the same heading are merged.", merge_columns: "Merge Columns", aggregation_help: "Add another table from the website to aggregate data.  The name of the tables appear above.  When there is more than one table, options will become available to merge them.", Chart_Type: "Chart Type", Stacked_3D: "Stacked 3D", missing_rows: "At least one row must be selected", Plain: "Plain", Close: "Close", chart: "Chart", Line: "Line", chart_type_help: "The type of the chart", merge_rows: "Merge Rows", height_help: "The height of the chart image", quick_help: "Quick Help", Legend: "Legend", bad_length: "The supplied end value must be a number", aggregation_tip: "<strong>Tip:</strong> Options apply to merging the table below the options with the aggregation of those above", Settings: "Settings", Chart_Type_Window_Title: "Advanced Chart Options - ${0}", Times_New_Roman: "Times New Roman", Size: "Size", X_Axis: "X-Axis label", Normal: "Normal", Verdana: "Verdana", font_style_help: "The style of the text to used in the chart.", Aggregation: "Aggregation", font_help: "The name of the font to be used for text in the chart", Show_legend: "Show legend", modified: "(modified)", Default: "Default", missing_bar_style: "A style of bar chart must be selected", Modified: "(Modified)", merge_collision: "Cell Merging", loading_message: "Loading...", missing_columns: "At least one column must be selected", Text_size: "Text size", bold: "Bold", Title: "Title", missing_table_element: "There is no table HTML tag with the id \"${0}\"", Axis_labels: "Axis labels", missing_offset: "Start value must be specified if an end value is supplied", italic: "Italic", data_options: "Data Options", Elliptic: "Elliptic", Width: "Width", show_legend_help: "Whether or not the chart should have a legend.", pie_elliptic_help: "Produces an elliptical (rather than circular) pie chart when checked", Area: "Area", missing_width: "A width must be supplied", save: "Save", Background_color: "Background color", offset_help: "The smallest value that can appear on the value axis.", Cancel: "Cancel", Overlapped: "Overlapped", merged_neither: "No Merging", collision_sum_tip: "Where a cell is in both tables the values from the two tables are added together.", First: "First", collision_either_tip: "Where a cell is in both tables a non empty cell is chosen where possible.", Orientation: "Orientation", theme_help: "Pre-set color settings", advanced: "advanced", settings: "Settings", ThreeD: "3D", missing_height: "A height must be supplied", bad_offset: "The supplied start value must be a number", missing_chart_area_element: "There is no HTML tag with the id \"${0}\"", pie3d_help: "Renders the pie chart in 3D when checked", Offset: "Start value", Choose_Color: "Choose Color", server_error: "Server Error", width_help: "The width of the chart image", Preview: "Preview", Height: "Height", Reverse: "Reverse", orientation_help: "Chart rotated 90 degrees when reversed", bad_text_size: "Text size must be a positive number", Gradient_fill: "Gradient fill", text_size_help: "The text size is the point size that the text should appear in the chart.", Okay: "Okay", merged_columns: "Merge Columns", Sum: "Sum", merged_rows: "Merge Rows", bold_italic: "Bold italic", Arial: "Arial", bad_height: "The supplied height must be a number", collision_first_tip: "Where a cell is in both tables the cell is taken from first table.", remove: "remove", merged_neither_tip: "Rows of second table are appended to the bottom, Columns of second table are appended to the right.", xaxis_help: "The label of the x-axis.", collision_second_tip: "Where a cell is in both tables the cell is taken from second table.", Text_color: "Text color", Fill_style: "Fill Style", bad_offset_length: "End value must be bigger than start value", form_error: "Form Error", Length: "End value", help: "Help", yaxis_help: "The label of the y-axis.", excluded_column_conflict: "Cannot select column ${0} as it has been excluded", Bar_style: "Chart style", Background_color_help: "The color that should be used as the background for the chart", SansSerif: "Sans Serif", Font: "Font", missing_chart_area_id: "The id of the chart area tag must be supplied as a \"chart-area\" form field.", Pie_style: "Chart style", missing_table_id: "The id of the table must be supplied as a \"table\" form field.", Theme: "Theme", Save: "Save", tip: "<strong>Tip:</strong> Use the check boxes to turn data on and off - Click on colored squares to change chart colors", Pie: "Pie", Chart: "Chart", Reset: "Reset", Back: "Back", Either: "Either", Help: "Help", merged_columns_tip: "Columns with the same heading are merged."};
if(!window.Jacuba.I18N.loaded_packs){
Jacuba.I18N.loaded_packs=new Object();
}
if(!window.Jacuba.I18N.loaded_packs[Jacuba.I18N.LANG]){
Jacuba.I18N.loaded_packs[Jacuba.I18N.LANG]=new Object();
}
Jacuba.I18N.loaded_packs[Jacuba.I18N.LANG]["chart"]=Jacuba.I18N.MSG;
Jacuba.Chart=function(_56,_57,_58){
Jacuba.TextManager.loadText("chart");
this.id="Chart:"+(Jacuba.Chart.ID_COUNTER++);
Jacuba.debug("Creating chart "+this.id,2);
this.criteria_elem=_56;
this.criteria=new Jacuba.Chart.Criteria(_56);
Jacuba.Chart.charts[this.id]=this;
this.attempt_count=0;
var _59=this.criteria.get("table");
if(_59==null||_59.length==0){
alert(Jacuba.Chart.Util.getText("missing_table_id"));
return;
}
var _60=document.getElementById(_59);
if(_60==null){
alert(Jacuba.Chart.Util.getText("missing_table_element",_59));
return;
}
this.table_elem=_60;
this.data=new Jacuba.Chart.Table(_60);
var msg=Jacuba.Chart.initialCheck(this.data,this.criteria);
if(msg!=null){
alert(msg);
return;
}
if(_58){
this.aggregator=new Jacuba.Chart.Aggregator(this);
this.aggregator.addChart(_60,_56);
}
this.criteriaInit();
if(_57==null){
_57=this.criteria.get("chart-area");
}
var _61=null;
if(_57==null){
var _62=this.criteria.get("may-edit")!="false";
if(_62){
_61=document.createElement("DIV");
_56.style.display="none";
_56.parentNode.insertBefore(_61,_56);
var _63=this.criteria.get("width");
if(_63!=null&&_63.length!=0){
if(!Jacuba.Chart.Util.isNumeric(_63)){
alert(Jacuba.Chart.Util.getText("bad_width"));
return;
}
_61.style.width=parseFloat(_63)+"px";
}
var _64=this.criteria.get("height");
if(_64==null||_64.length==0){
alert(Jacuba.Chart.Util.getText("missing_height"));
return;
}
if(!Jacuba.Chart.Util.isNumeric(_64)){
alert(Jacuba.Chart.Util.getText("bad_height"));
return;
}
if(this.criteria.get("may-edit")=="false"){
_61.style.height=parseFloat(_64)+"px";
}else{
_61.style.height=(parseFloat(_64)+Jacuba.Chart.Interface.JACUBA_BAR_HEIGHT)+"px";
}
}
}else{
_61=document.getElementById(_57);
if(_61==null){
alert(Jacuba.Chart.Util.getText("missing_chart_area_element",_57));
return;
}
}
this.insert(_61);
Jacuba.debug("Chart "+this.id+" created");
};
Jacuba.Chart.selectors=new Array();
Jacuba.Chart.applied_forms=new Array();
Jacuba.Chart.charts=new Object();
Jacuba.Chart.applyTo=function(){
Jacuba.debug("Chart.applyTo called",2);
var _65=Jacuba.Chart.selectors;
for(var i=0;i<arguments.length;i++){
var _67=arguments[i];
if(_67==null){
throw "null selector at index "+i;
}
if(!_67.match(/^\s*(class|id|name|element)\s*\:\s*(\S+)\s*$/)){
throw "illegal selector: "+_67;
}
var _67={axis:RegExp.$1,value:RegExp.$2};
_65[_65.length]=_67;
}
Jacuba.Chart.applyToSelections();
Jacuba.debug("applyTo completed",2);
};
Jacuba.Chart.isFormApplied=function(_68){
if(_68==null){
throw "no form";
}
for(var i=0;i<Jacuba.Chart.applied_forms.length;i++){
if(Jacuba.Chart.applied_forms[i]==_68){
return true;
}
}
return false;
};
Jacuba.Chart.initialCheck=function(_69,_70){
var _71=_70.get("rows");
if(_71!=null){
var _72=_69.rowCount();
var _73=new Jacuba.Chart.Util.NumberSet(_71);
var _74=_73.containsHigher(_72-1);
if(_74!=-1){
return Jacuba.TextManager.getText("chart","bad_index","rows",_74+"","0-"+(_72-1));
}
var _75=_70.get("excluded-rows");
if(_75!=null){
var _76=new Jacuba.Chart.Util.NumberSet(_75);
for(var x=0;x<_72;x++){
if(_73.contains(x)&&_76.contains(x)){
return Jacuba.TextManager.getText("chart","excluded_row_conflict",x+"");
}
}
}
}
var _77=_70.get("columns");
if(_77!=null){
var _78=_69.columnCount();
var _79=new Jacuba.Chart.Util.NumberSet(_77);
var _74=_79.containsHigher(_78-1);
if(_74!=-1){
return Jacuba.TextManager.getText("chart","bad_index","columns",_74+"","0-"+(_78-1));
}
var _80=_70.get("excluded-columns");
if(_80!=null){
var _81=new Jacuba.Chart.Util.NumberSet(_80);
for(var x=0;x<_78;x++){
if(_79.contains(x)&&_81.contains(x)){
return Jacuba.TextManager.getText("chart","excluded_column_conflict",x+"");
}
}
}
}
return null;
};
Jacuba.Chart.applyToSelections=function(){
var _82=Jacuba.Chart.selectors;
var _83=document.getElementsByTagName("FORM");
Jacuba.debug(_83.length+" forms found",2);
for(var i=0;i<_83.length;i++){
var _84=_83[i];
for(var j=0;j<_82.length;j++){
var _86=_82[j];
var _87;
var _88=_86.value;
switch(_86.axis){
case "element":
_87=_84.nodeName==_86.value;
break;
case "class":
_87=_84.className==_86.value;
break;
case "name":
_87=_84.name==_86.value;
break;
case "id":
_87=_84.id==_86.value;
break;
default:
_87=false;
}
if(_87&&!Jacuba.Chart.isFormApplied(_84)){
Jacuba.debug("form matches and hasn't already been applied",1);
var _89=true;
if(_86.axis!="id"){
var _90=_84.elements;
Jacuba.debug(_90.length+" elements in form",1);
var _91=false;
var _92=false;
for(var k=0;k<_90.length;k++){
Jacuba.debug(_90[k].name+" "+(_90[k].name=="table"),1);
if(_90[k].name=="table"){
_91=true;
}
if(_90[k].name=="generated-form"){
_92=true;
}
}
_89=_91&&!_92;
}
if(_89){
Jacuba.debug("Applying chart");
new Jacuba.Chart(_84);
Jacuba.Chart.applied_forms[Jacuba.Chart.applied_forms.length]=_84;
}
}
}
}
};
Jacuba.Chart.getCharts=function(){
var _94=new Array();
for(var x in Jacuba.Chart.charts){
_94[_94.length]=Jacuba.Chart.charts[x].getMediator();
}
return results;
};
Jacuba.Chart.getChartByElementId=function(id){
if(id==null){
throw "an element id must be supplied";
}
var _95;
for(var x in Jacuba.Chart.charts){
var _96=Jacuba.Chart.charts[x];
if((_96.criteria_elem&&_96.criteria_elem.id==id)||(_96.table_elem&&_96.table_elem.id==id)||(_96.chart_image&&_96.chart_image.id==id)){
_95=_96;
break;
}
}
return _95?_95.getMediator():null;
};
Jacuba.Chart.prototype.addChart=function(_97,_98,_99,_100,_101){
if(this.aggregator){
this.aggregator.addChart(_97,_98,_99,_100,_101);
}else{
throw "chart cannot aggregate";
}
this.load();
};
//Converting properties to en_US
Jacuba.Chart.HOST = "www.jacuba.com";
Jacuba.Chart.PORT = "80";
Jacuba.Chart.SERVICE_BASE = "http://www.jacuba.com:80/service/";
Jacuba.Chart.URL_BASE = "http://www.jacuba.com:80/service/charter/-/en_US/";
Jacuba.Chart.IMG_BASE = "http://www.jacuba.com:80/images/";
Jacuba.Chart.TRANSP_IMG = "";
Jacuba.Chart.JACUBA_LOGO_IMG = "";
Jacuba.Chart.WARNING_IMG_WIDTH = 51;
Jacuba.Chart.WARNING_IMG_HEIGHT = 45;
Jacuba.Chart.META_URL = "";
Jacuba.Chart.MAKE_CHART_URL = "";
Jacuba.Chart.GRADIENT_PREVIEW_URL = "";
Jacuba.Chart.THEME_URL = "";
Jacuba.Chart.FONT_URL = "";
Jacuba.Chart.HELP_URL = "http://www.jacuba.com:80/chart/userhelp.html";
Jacuba.Chart.CACHE_SIZE = 10;
Jacuba.Chart.INITIAL_RETRY_INTERVAL = 500;
Jacuba.Chart.MAX_RETRIES = 3;
Jacuba.Chart.changeProtocol=function(_102,url){
var _103=_102;
var pos1=url.indexOf("://");
var pos2=url.indexOf("/",pos1+3);
var pos3=url.indexOf(":",pos1+3);
var epos=pos3==-1?pos2:Math.min(pos2,pos3);
if(epos==-1){
epos=url.length;
}
var host=url.substring(pos1+3,epos);
_103+="://"+host;
if(pos2!=-1){
_103+=url.substring(pos2);
}
return _103;
};
Jacuba.Chart.PROTOCOL="http";
if(window.location.href.indexOf("https:")==0){
Jacuba.Chart.PROTOCOL="https";
if(Jacuba.Chart.SERVICE_BASE!=""){
Jacuba.Chart.SERVICE_BASE=Jacuba.Chart.changeProtocol(Jacuba.Chart.PROTOCOL,Jacuba.Chart.SERVICE_BASE);
}
if(Jacuba.Chart.IMG_BASE!=""){
Jacuba.Chart.IMG_BASE=Jacuba.Chart.changeProtocol(Jacuba.Chart.PROTOCOL,Jacuba.Chart.IMG_BASE);
}
if(Jacuba.Chart.URL_BASE!=""){
Jacuba.Chart.URL_BASE=Jacuba.Chart.changeProtocol(Jacuba.Chart.PROTOCOL,Jacuba.Chart.URL_BASE);
}
}
if(Jacuba.Chart.URL_BASE==""){
Jacuba.Chart.URL_BASE=Jacuba.Chart.SERVICE_BASE+"charter/-/"+Jacuba.I18N.LANG+"/";
}
if(Jacuba.Chart.TRANSP_IMG==""){
Jacuba.Chart.TRANSP_IMG=Jacuba.Chart.IMG_BASE+"i.gif";
}
if(Jacuba.Chart.JACUBA_LOGO_IMG==""){
Jacuba.Chart.JACUBA_LOGO_IMG=Jacuba.Chart.IMG_BASE+"logo47x18.gif";
}
if(Jacuba.Chart.META_URL==""){
Jacuba.Chart.META_URL=Jacuba.Chart.URL_BASE;
}
if(Jacuba.Chart.MAKE_CHART_URL==""){
Jacuba.Chart.MAKE_CHART_URL=Jacuba.Chart.URL_BASE;
}
if(Jacuba.Chart.GRADIENT_PREVIEW_URL==""){
Jacuba.Chart.GRADIENT_PREVIEW_URL=Jacuba.Chart.SERVICE_BASE+"gradient/-/"+Jacuba.I18N.LANG+"/";
}
if(Jacuba.Chart.THEME_URL==""){
Jacuba.Chart.THEME_URL=Jacuba.Chart.SERVICE_BASE+"charttheme/-/"+Jacuba.I18N.LANG+"/";
}
if(Jacuba.Chart.FONT_URL==""){
Jacuba.Chart.FONT_URL=Jacuba.Chart.SERVICE_BASE+"chartfont/-/"+Jacuba.I18N.LANG+"/";
}
Jacuba.Chart.LANGUAGE_MODULE="chart";
Jacuba.Chart.ID_COUNTER=0;
Jacuba.Chart.DELIMETERS=new Array();
Jacuba.Chart.DELIMETERS[0]="q";
Jacuba.Chart.DELIMETERS[1]="Z";
Jacuba.Chart.DELIMETERS[2]="qx";
Jacuba.Chart.DELIMETERS[3]="qZ";
Jacuba.Chart.held_data=new Object();
Jacuba.Chart.held_data_counter=0;
Jacuba.Chart.hold=function(data){
var id=(Jacuba.Chart.held_data_counter++)+"";
Jacuba.Chart.held_data[id]=data;
return id;
};
Jacuba.Chart.getHeld=function(id){
return Jacuba.Chart.held_data[id];
};
Jacuba.Chart.withdrawHeld=function(id){
var val=Jacuba.Chart.held_data[id];
delete Jacuba.Chart.held_data[id];
return val;
};
Jacuba.Chart.prototype.cache=null;
Jacuba.Chart.prototype.getMediator=function(){
if(this.mediator){
return this.mediator;
}
this.mediator=new Jacuba.Chart.Mediator(this);
return this.mediator;
};
Jacuba.Chart.prototype.loadData=function(){
this.data=this.aggregator?this.aggregator.getTable():new Jacuba.Chart.Table(this.table_elem);
this.criteriaInit();
};
Jacuba.Chart.prototype.loadProperties=function(){
this.criteria=this.aggregator?this.aggregator.getCriteria():new Jacuba.Chart.Criteria(this.criteria_elem);
this.criteriaInit();
};
Jacuba.Chart.prototype.load=function(){
this.data=this.aggregator?this.aggregator.getTable():new Jacuba.Chart.Table(this.table_elem);
this.criteria=this.aggregator?this.aggregator.getCriteria():new Jacuba.Chart.Criteria(this.criteria_elem);
this.criteriaInit();
if(this.iface){
this.iface.criteriaChanged();
this.iface.refresh();
}
};
Jacuba.Chart.prototype.criteriaInit=function(){
Jacuba.stackTracer.push("Jacuba.Chart.prototype.criteriaInit");
var msg=Jacuba.Chart.initialCheck(this.data,this.criteria);
if(msg!=null){
alert(msg);
return;
}
var _111=this.criteria.get("title");
if(_111==null||_111.length==0){
var _112=this.data.getCaption();
if(_112!=null&&_112.length!=0){
this.criteria.set("title",_112);
}
}
var rows=this.criteria.get("rows");
if(rows==null||rows.length==0){
var _114=this.criteria.get("column-heading-row");
var _115=new Jacuba.Chart.Util.NumberSet(this.criteria.get("excluded-rows"));
var ns=new Jacuba.Chart.Util.NumberSet();
var _117=this.data.rowCount();
for(var x=0;x<_117;x++){
if(!_115.contains(x)&&x!=_114){
ns.add(x);
}
}
this.criteria.set("rows",ns.toString());
}
var _118=this.criteria.get("columns");
if(_118==null||_118.length==0){
var _119=this.criteria.get("row-heading-column");
var _120=new Jacuba.Chart.Util.NumberSet(this.criteria.get("excluded-columns"));
var ns=new Jacuba.Chart.Util.NumberSet();
var _121=this.data.columnCount();
for(var x=0;x<_121;x++){
if(!_120.contains(x)&&x!=_119){
ns.add(x);
}
}
this.criteria.set("columns",ns.toString());
}
Jacuba.stackTracer.pop("Jacuba.Chart.prototype.criteriaInit");
};
Jacuba.Chart.prototype.insert=function(elem){
if(this.criteria.get("may-edit")!="false"){
this.html=elem;
var _123=document.createElement("DIV");
_123.className="chart-interface";
elem.appendChild(_123);
this.insertInterface(_123);
}else{
this.generate();
}
};
Jacuba.Chart.prototype.alert=function(_124,_125){
if(this.iface!=null){
this.iface.alert(_124,_125);
}else{
alert(_125);
}
};
Jacuba.Chart.prototype.queuePriorityWork=function(work){
if(this.work_queue==null){
this.work_queue=new Jacuba.Chart.Util.List();
}
this.work_queue.insert(work,0);
if(this.work_queue.length==1){
window.setTimeout("Jacuba.Chart.charts['"+this.id+"'].doWork()",5);
}
};
Jacuba.Chart.prototype.isQueued=function(work){
return this.work_queue&&this.work_queue.contains(work);
};
Jacuba.Chart.prototype.queueWork=function(work){
if(this.work_queue==null){
this.work_queue=new Jacuba.Chart.Util.List();
}
this.work_queue.append(work);
if(this.work_queue.length==1){
window.setTimeout("Jacuba.Chart.charts['"+this.id+"'].doWork()",5);
}
};
Jacuba.Chart.prototype.hasWork=function(){
return this.work_queue&&this.work_queue.length>0;
};
Jacuba.Chart.prototype.workCount=function(){
return this.work_queue?this.work_queue.length:0;
};
Jacuba.Chart.prototype.getWork=function(_127){
return this.work_queue?this.work_queue.get(_127):null;
};
Jacuba.Chart.prototype.doWork=function(){
var work=this.work_queue.get(0);
this.work_queue.remove(0);
var _128=this.work_queue.length;
if(typeof work=="string"){
eval(work);
}else{
work();
}
if(_128>0){
window.setTimeout("Jacuba.Chart.charts['"+this.id+"'].doWork()",5);
}
};
Jacuba.Chart.prototype.insertInterface=function(elem){
Jacuba.debug("inserting interface table for chart: "+this.id,1);
Jacuba.Chart.ImageManager.block();
this.iface=new Jacuba.Chart.Interface(this,elem);
this.iface.init();
var _129=function(){
Jacuba.debug("will release images when comms idle ("+Jacuba.Comm.getActiveCommCount()+")");
Jacuba.Comm.doWhenIdle(Jacuba.Chart.ImageManager.release);
};
this.iface.doWhenReady(_129);
};
Jacuba.Chart.prototype.generate=function(_130){
Jacuba.stackTracer.push("Jacuba.Chart.prototype.generate");
var _131;
if(this.iface!=null){
if(!this.iface.isReady()){
var work="Jacuba.Chart.interfaces['"+this.iface.id+"'].chart.generate()";
if(!this.isQueued(work)){
this.queueWork(work);
this.iface.updateLoadingMessage();
}
return;
}
_131=this.iface.getCriteria();
}else{
var _132=null;
var _133=this.criteria.get("theme");
if(_133){
_132=Jacuba.Chart.ThemeManager.getTheme(_133);
if(!_132.isLoaded()){
var t=this;
var fn=function(){
t.generate();
};
_132.addOnloadFunction(fn);
_132.load();
return;
}
}
_131=this.criteria.clone();
if(_132!=null){
var _136=_132.getProperties();
var _137=new Array();
for(var x in _136){
if(x.indexOf("plot-color-")==0){
var _138=parseInt(x.substring(11));
_137[_138]=_136[x];
}else{
var curr=_131.get(x);
if(!curr){
_131.set(x,_136[x]);
}
}
}
var plot=_131.get("plot");
var _141=new Jacuba.Chart.Util.NumberSet(_131.get(plot));
var _142=_141.getMembers();
for(var x=0;x<_142.length;x++){
var _143=_137[x];
var key="plot-color-"+_142[x];
if(_143&&!_131.get(key)){
_131.set(key,_143);
}
}
}
_131.removeClientOnly();
}
var msg=Jacuba.Chart.Util.validateCriteria(_131);
if(msg!=null){
this.alert(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"form_error"),msg);
return;
}
var _145=this.data.toDataString();
var _146=_131.toDataString();
var _147=this.data.getKey();
var _148=Jacuba.Chart.Util.makeKey(_147+_146);
this.table_data_str=_145;
this.criteria_data_str=_146;
this.chart_key=_148;
this.table_key_str=_147;
var url=null;
if(this.cache!=null){
var img=this.cache.get(_148);
if(img!=null){
url=img.src;
}
}
this.after_generate_fn=_130;
if(url!=null){
this.displayChart(_148,url);
if(this.after_generate_fn){
this.after_generate_fn();
this.after_generate_fn=null;
}
}else{
Jacuba.debug("Requesting from server: "+_148,2);
var url=Jacuba.Chart.META_URL+"?id="+this.id+"&table-key="+_147+"&chart-key="+_148;
this.requestJavascript(url,"transmitting table and chart key");
}
Jacuba.stackTracer.pop("Jacuba.Chart.prototype.generate");
};
Jacuba.Chart.prototype.retryGenerate=function(){
this.generate(this.after_generate_fn);
};
Jacuba.Chart.prototype.requestJavascript=function(url,desc){
Jacuba.Chart.requestJavascript(url,this,desc);
};
Jacuba.Chart.prototype.commReceive=function(_151){
var args=_151.arguments;
if(args.length>0){
this.receive(args[0],args.length>1?args[1]:null);
}
};
Jacuba.Chart.prototype.commReceiveError=function(_153){
var _154=false;
if(_153.getCode()=="too_busy"){
var _155=this.attempt_count;
var wait=this.retry_wait;
var _157=false;
if(_155<Jacuba.Chart.MAX_RETRIES){
_157=true;
}
if(_157){
if(wait==null){
wait=Jacuba.Chart.INITIAL_RETRY_INTERVAL;
}else{
wait=wait*2;
}
this.retry_wait=wait;
var _158=_153.getRequestProperties();
if(_158!=null&&_158["criteria"]){
var _159="Jacuba.Chart.charts['"+this.id+"'].retryGenerate()";
var work=function(){
window.setTimeout(_159,wait);
};
this.queueWork(work);
this.attempt_count++;
}else{
_153.retry(wait);
}
}else{
this.alert(Jacuba.Chart.Util.getText("server_error"),Jacuba.Chart.Util.getText("too_busy"));
}
_154=true;
}
return _154;
};
Jacuba.Chart.prototype.receive=function(_160,url){
Jacuba.debug(this.id+" recieved status "+_160,2);
if(_160!=0){
this.sendChartData(_160==2,_160!=0);
}else{
if(this.retry_wait!=null){
this.retry_wait=this.retry_wait/2;
if(this.retry_wait<Jacuba.Chart.INITIAL_RETRY_INTERVAL){
this.retry_wait=null;
}
}
this.attempt_count=0;
this.displayChart(this.chart_key,url);
if(this.after_generate_fn){
this.after_generate_fn();
this.after_generate_fn=null;
}
}
};
Jacuba.Chart.prototype.sendChartData=function(_161,_162){
var _163=new Object();
if(_161){
_163["table"]=this.table_data_str;
}else{
_163["table-key"]=this.table_key_str;
}
if(_162){
_163["criteria"]=this.criteria_data_str;
}else{
_163["criteria-key"]=this.criteria_data_str;
}
Jacuba.Comm.request(this,Jacuba.Chart.MAKE_CHART_URL,_163,"send chart data");
};
Jacuba.Chart.prototype.displayChart=function(key,url){
if(this.cache==null){
this.cache=new Jacuba.Chart.Util.Cache(Jacuba.Chart.CACHE_SIZE);
}
var img=this.cache.get(key);
if(img==null){
if(!url||url.length==0){
url=Jacuba.Chart.MAKE_CHART_URL+"?chart-key="+key;
}else{
if(url.charAt(0)=="?"){
url=Jacuba.Chart.MAKE_CHART_URL+url;
}
}
img=new Object();
img.src=url;
this.cache.put(key,img);
}
this.cache.requested(key);
Jacuba.debug("showing chart: "+img.src);
if(this.iface){
this.iface.displayChart(img);
}else{
var _164=this.criteria.get("image");
if(_164!=null){
var _165=document.getElementById(_164);
if(_165==null){
alert(Jacuba.TextManager.getText("chart","no_image",_164));
}else{
Jacuba.Chart.ImageManager.setSrc(_165,img.src,true);
this.chart_image=_165;
}
}else{
var _166=this.chart_image?this.chart_image:this.criteria_elem;
this.chart_image=document.createElement("IMG");
Jacuba.Chart.ImageManager.setSrc(this.chart_image,img.src,true);
_166.parentNode.insertBefore(this.chart_image,_166);
}
}
};
Jacuba.Chart.prototype.print=function(){
var _167=this.iface?this.iface.chart_image:this.chart_image;
if(_167!=null){
if(this.print_frame==null){
var _168=document.createElement("IFRAME");
_168.style.width="1px";
_168.style.height="1px";
_168.frameBorder="0";
_168.style.margin="0px";
_168.style.border="0px";
document.body.appendChild(_168);
this.print_frame=_168;
}
var doc="<HTML><HEAD><TITLE>"+this.criteria.get("title")+"</TITLE></HEAD><BODY onload=\"window.focus(); window.print();\"><IMG src=\""+_167.src+"\"></BODY></HTML>";
var url=doc.replace(/"/g,"\\\"");
this.print_frame.contentWindow.location.replace("javascript:\""+url+"\"");
}
};
Jacuba.Chart.prototype.save=function(){
var _170=this.iface?this.iface.chart_image:this.chart_image;
if(_170!=null){
if(Jacuba.BROWSER_NAME=="IE"){
var _171=50;
var _172=50;
var _173=Math.round((screen.height-_172)/2);
var _174=Math.round((screen.width-_171)/2);
window.open(_170.src+"&filename="+this.table_elem.id+".png",null,"width="+_171+",height="+_172+",top="+_173+",left="+_174);
}else{
if(this.save_frame==null){
var _175=document.createElement("IFRAME");
_175.style.width="1px";
_175.style.height="1px";
_175.frameBorder="0";
_175.style.margin="0px";
_175.style.border="0px";
document.body.appendChild(_175);
this.save_frame=_175;
}
this.save_frame.contentWindow.location.replace(_170.src+"&filename="+this.table_elem.id+".png");
}
}
};
Jacuba.Chart.prototype.showInterface=function(){
if(this.chart_area!=null){
this.chart_area.style.display="none";
}
if(this.iface!=null){
this.iface.show();
}
};
Jacuba.Chart.requestJavascript=function(url,from,desc){
Jacuba.debug(from.id+" requests "+url,2);
Jacuba.Comm.request(from,url,null,desc,null);
};
Jacuba.Chart.Mediator=function(_177){
this.chart=_177;
};
Jacuba.Chart.Mediator.prototype.getId=function(){
return this.chart.id;
};
Jacuba.Chart.Mediator.prototype.reload=function(){
this.chart.load();
};
Jacuba.Chart.Mediator.prototype.redraw=function(){
this.chart.generate();
};
Jacuba.Chart.FontManager=new Object();
Jacuba.Chart.FontManager.id="FontManager";
Jacuba.Chart.FontManager.loaded=false;
Jacuba.Chart.FontManager.loading=false;
Jacuba.Chart.FontManager.load=function(){
if(this.loading||this.loaded){
return;
}
this.loading=true;
Jacuba.Comm.request(this,Jacuba.Chart.FONT_URL,null,"requesting font list");
};
Jacuba.Chart.FontManager.addOnloadFunction=function(fn){
if(fn==null){
Jacuba.debug("No function supplied to FontManager.addOnloadFunction");
return;
}
if(this.onload_fns==null){
this.onload_fns=new Array();
}
this.onload_fns[this.onload_fns.length]=fn;
};
Jacuba.Chart.FontManager.isLoaded=function(){
return this.loaded;
};
Jacuba.Chart.FontManager.getFontIds=function(){
if(!this.loaded){
Jacuba.debug("Fonts not loaded");
return null;
}
return this.font_ids;
};
Jacuba.Chart.FontManager.getFontName=function(id){
if(!this.loaded){
Jacuba.debug("Fonts not loaded");
return null;
}
return this.font_names[id];
};
Jacuba.Chart.FontManager.onload=function(){
if(this.onload_fns!=null){
for(var x=0;x<this.onload_fns.length;x++){
this.onload_fns[x]();
}
this.onload_fns=null;
}
};
Jacuba.Chart.FontManager.commReceive=function(_178){
var args=_178.arguments;
this.font_ids=new Array();
this.font_names=new Object();
var _179=0;
for(var x=0;x<args.length;x+=2){
this.font_ids[_179]=args[x];
this.font_names[args[x]]=args[x+1];
_179++;
}
this.loaded=true;
this.loading=false;
if(this.onload_fns!=null){
window.setTimeout("Jacuba.Chart.FontManager.onload()",5);
}
};
Jacuba.Chart.ThemeManager=new Object();
Jacuba.Chart.ThemeManager.themes=new Object();
Jacuba.Chart.ThemeManager.loaded=false;
Jacuba.Chart.ThemeManager.loading=false;
Jacuba.Chart.ThemeManager.onload_fns=null;
Jacuba.Chart.ThemeManager.id="ThemeManager";
Jacuba.Chart.ThemeManager.load=function(){
if(this.loading||this.loaded){
return;
}
this.loading=true;
Jacuba.Comm.request(this,Jacuba.Chart.THEME_URL+"?action=list",null,"requesting theme list");
};
Jacuba.Chart.ThemeManager.addOnloadFunction=function(fn){
if(fn==null){
Jacuba.debug("No function supplied to Theme.addOnloadFunction");
return;
}
if(this.onload_fns==null){
this.onload_fns=new Array();
}
this.onload_fns[this.onload_fns.length]=fn;
};
Jacuba.Chart.ThemeManager.isLoaded=function(){
return this.loaded;
};
Jacuba.Chart.ThemeManager.getThemeIds=function(){
if(!this.loaded){
Jacuba.debug("Themes not loaded");
return null;
}
return this.theme_ids;
};
Jacuba.Chart.ThemeManager.getThemeName=function(id){
if(!this.loaded){
Jacuba.debug("Themes not loaded");
return null;
}
return this.theme_names[id];
};
Jacuba.Chart.ThemeManager.getTheme=function(id){
var _180=this.themes[id];
if(!_180){
_180=new Jacuba.Chart.Theme(id);
this.themes[id]=_180;
}
return _180;
};
Jacuba.Chart.ThemeManager.onload=function(){
if(this.onload_fns!=null){
for(var x=0;x<this.onload_fns.length;x++){
this.onload_fns[x]();
}
this.onload_fns=null;
}
};
Jacuba.Chart.ThemeManager.commReceive=function(_181){
var args=_181.arguments;
this.theme_ids=new Array();
this.theme_names=new Object();
var _182=0;
for(var x=0;x<args.length;x+=2){
this.theme_ids[_182]=args[x];
this.theme_names[args[x]]=args[x+1];
_182++;
}
this.loaded=true;
this.loading=false;
if(this.onload_fns!=null){
window.setTimeout("Jacuba.Chart.ThemeManager.onload()",5);
}
};
Jacuba.Chart.Theme=function(id){
this.id=id;
this.loaded=false;
this.loading=false;
this.props=new Object();
this.onload_fns=null;
};
Jacuba.Chart.Theme.prototype.isLoaded=function(){
return this.loaded;
};
Jacuba.Chart.Theme.prototype.load=function(){
if(this.loaded||this.loading){
return;
}
this.loading=true;
Jacuba.Comm.request(this,Jacuba.Chart.THEME_URL+"?action=get&theme="+this.id,null,"loading theme "+this.id);
};
Jacuba.Chart.Theme.prototype.addOnloadFunction=function(fn){
if(fn==null){
Jacuba.debug("No function supplied to Theme.addOnloadFunction");
return;
}
if(this.onload_fns==null){
this.onload_fns=new Array();
}
this.onload_fns[this.onload_fns.length]=fn;
};
Jacuba.Chart.Theme.prototype.getProperties=function(){
if(!this.loaded){
Jacuba.debug("Theme not loaded!");
return null;
}
return this.props;
};
Jacuba.Chart.Theme.prototype.getPlotColors=function(){
if(this.plot_colors){
return this.plot_colors;
}
var _183=new Array();
for(var x in this.props){
if(x.indexOf("plot-color-")==0){
var _184=parseInt(x.substring(11));
_183[_184]=this.props[x];
}
}
this.plot_colors=_183;
return _183;
};
Jacuba.Chart.Theme.prototype.onload=function(){
if(this.onload_fns!=null){
for(var x=0;x<this.onload_fns.length;x++){
this.onload_fns[x]();
}
this.onload_fns=null;
}
};
Jacuba.Chart.Theme.prototype.commReceive=function(_185){
if(this.loaded){
Jacuba.debug("Theme "+this.id+" received communication after loading complete");
return;
}
var args=_185.arguments;
if(args.length==1&&args[0]=="done"){
this.loaded=true;
this.loading=false;
if(this.onload_fns!=null){
window.setTimeout("Jacuba.Chart.ThemeManager.getTheme(\""+this.id+"\").onload()",5);
}
}else{
if(args.length==2){
var key=args[0];
var val=args[1];
this.props[key]=val;
}else{
Jacuba.debug("Theme "+this.id+" receieved a bad communication");
}
}
};
Jacuba.Chart.Table=function(elem){
if(elem!=null){
this.html=elem;
var trs=new Array();
Jacuba.Chart.Util.getTRLevelElements(elem,trs);
this.rows=new Array();
this.row_count=trs.length;
this.column_count=0;
var _187=0;
for(var y=0;y<trs.length;y++){
if(trs[y].nodeName=="CAPTION"){
this.caption=Jacuba.Chart.Util.nodeTextValue(trs[y]);
}
if(trs[y].nodeName=="TR"){
var _189=0;
var _190=0;
if(this.rows.length<=_187){
this.rows[_187]=new Array();
}
for(var curr=trs[y].firstChild;curr!=null;curr=curr.nextSibling){
while(this.rows[_187][_190]!=null){
_190++;
}
if(curr.nodeName=="TD"||curr.nodeName=="TH"){
var att=curr.getAttribute("colspan");
var _192=att!=null&&att.length!=0?parseInt(att):1;
att=curr.getAttribute("rowspan");
var _193=att!=null&&att.length!=0?parseInt(att):1;
_189+=_192;
var val=Jacuba.Chart.Util.trim(Jacuba.Chart.Util.nodeTextValue(curr));
for(var tmp=0;tmp<_192;tmp++){
this.rows[_187][_190]=val;
if(_193!=1){
for(var tmp2=1;tmp2<_193;tmp2++){
if(this.rows.length<=_187+tmp2){
this.rows[_187+tmp2]=new Array();
}
this.rows[_187+tmp2][_190]=val;
}
}
_190++;
}
}
}
if(_189>this.column_count){
this.column_count=_189;
}
_187++;
}
}
for(var x=0;x<this.rows.length;x++){
if(this.rows[x].length<this.column_count){
for(var i=this.rows[x].length;i<this.column_count;i++){
this.rows[x][i]="";
}
}
}
}else{
this.rows=new Array();
this.row_count=0;
this.column_count=0;
}
};
Jacuba.Chart.Table.prototype.getKey=function(){
if(this.key){
return this.key;
}
this.key=Jacuba.Chart.Util.makeKey(this.toDataString());
return this.key;
};
Jacuba.Chart.Table.prototype.getCaption=function(){
return this.caption;
};
Jacuba.Chart.Table.prototype.columnCount=function(){
return this.rows.length>0?this.rows[0].length:0;
};
Jacuba.Chart.Table.prototype.rowCount=function(){
return this.rows.length;
};
Jacuba.Chart.Table.prototype.toString=function(){
var s="";
for(var y=0;y<this.rows.length;y++){
for(var x=0;x<this.rows[y].length;x++){
if(x!=0){
s+=",";
}
s+=this.rows[y][x];
}
s+="\r\n";
}
return s;
};
Jacuba.Chart.Table.prototype.toHTML=function(){
var _196=document.createElement("TABLE");
_196.setAttribute("border","1");
var _197=document.createElement("TBODY");
_196.appendChild(_197);
for(var y=0;y<this.rows.length;y++){
var tr=document.createElement("TR");
_197.appendChild(tr);
for(var x=0;x<this.rows[y].length;x++){
var td=document.createElement("TD");
tr.appendChild(td);
var _200=this.rows[y][x];
if(_200==null||_200.length==0){
_200="&nbsp;";
}
td.innerHTML="<nobr>"+_200+"</nobr>";
}
}
return _196;
};
Jacuba.Chart.Table.prototype.toDataString=function(){
if(this.data_string){
return this.data_string;
}
var _201="yXQ1Hd7VzR";
var s="";
for(var y=0;y<this.rows.length;y++){
s+=_201+this.rows[y].join(_201);
}
var _202=null;
for(var x=0;x<Jacuba.Chart.DELIMETERS.length;x++){
if(s.indexOf(Jacuba.Chart.DELIMETERS[x])==-1){
_202=Jacuba.Chart.DELIMETERS[x];
break;
}
}
if(_202==null){
_202=Jacuba.Chart.Util.chooseDelimeter(s);
}
s=s.replace(/yXQ1Hd7VzR/g,_202);
this.data_string=_202.length+_202+(this.rows.length!=0?this.rows[0].length:0)+s;
return this.data_string;
};
Jacuba.Chart.Table.prototype.getDelimeter=function(){
for(var x=0;x<Jacuba.Chart.DELIMETERS.length;x++){
var _203=Jacuba.Chart.DELIMETERS[x];
if(!this.contains(_203)){
return _203;
}
}
var _204="yXQ1Hd7VzR";
var s="";
for(var y=0;y<this.rows.length;y++){
for(var x=0;x<this.rows[y].length;x++){
if(x!=0||y!=0){
s+=_204;
}
s+=this.rows[y][x];
}
}
return Jacuba.Chart.Util.chooseDelimeter(s);
};
Jacuba.Chart.Table.prototype.contains=function(str){
for(var y=0;y<this.rows.length;y++){
for(var x=0;x<this.rows[y].length;x++){
if(this.rows[y][x].indexOf(str)!=-1){
return true;
}
}
}
return false;
};
Jacuba.Chart.Criteria=function(elem,_205){
this.html=elem;
this.props=new Object();
if(!_205){
this.props["plot"]="rows";
this.props["orientation"]="normal";
this.props["row-heading-column"]="0";
this.props["column-heading-row"]="0";
this.props["chart-type"]="bar";
this.props["datatype"]="number";
this.props["locale"]="en_US";
this.props["show-legend"]="true";
this.props["bar-style"]="plain";
this.props["open-on"]="chart";
this.props["title-font-family"]="Verdana";
this.props["title-text-size"]="14";
this.props["title-font-style"]="bold";
this.props["may-edit"]="false";
}
if(elem){
for(var i=elem.firstChild;i!=null;i=i.nextSibling){
if(i.nodeName=="INPUT"){
var inp=i;
this.props[inp.name]=inp.value;
}
}
}
if(!_205){
if(!this.props["width"]||!this.props["height"]){
var _207=this.props["image"];
if(_207){
var _208=document.getElementById(_207);
if(_208){
if(!this.props["width"]){
this.props["width"]=_208.offsetWidth;
}
if(!this.props["height"]){
this.props["height"]=_208.offsetHeight;
}
}
}
}
if(!this.props["width"]){
this.props["width"]="700";
}
if(!this.props["height"]){
this.props["height"]="449";
}
}
};
Jacuba.Chart.Criteria.prototype.get=function(prop){
return this.props[prop];
};
Jacuba.Chart.Criteria.prototype.set=function(key,_210){
Jacuba.stackTracer.push("Jacuba.Chart.Criteria.prototype.set");
this.props[key]=_210;
Jacuba.stackTracer.pop("Jacuba.Chart.Criteria.prototype.set");
};
Jacuba.Chart.Criteria.prototype.setAll=function(_211){
for(var x in _211){
this.props[x]=_211[x];
}
};
Jacuba.Chart.Criteria.prototype.remove=function(key){
delete this.props[key];
};
Jacuba.Chart.Criteria.prototype.removeClientOnly=function(){
var a=new Array();
for(var x in this.props){
if(x=="excluded-columns"||x=="excluded-rows"||x=="table"||x=="open-on"||x=="chart-area"||x.indexOf("may-")==0){
a[a.length]=x;
}
}
for(var x=0;x<a.length;x++){
this.remove(a[x]);
}
};
Jacuba.Chart.Criteria.prototype.removeEmptyProperties=function(){
var a=new Array();
for(var i in this.props){
var val=this.props[i];
if(val==null||val.length==0){
a[a.length]=i;
}
}
for(var x=0;x<a.length;x++){
this.remove(a[x]);
}
};
Jacuba.Chart.Criteria.prototype.clone=function(){
var copy=new Jacuba.Chart.Criteria(this.html);
for(var i in this.props){
copy.props[i]=this.props[i];
}
return copy;
};
Jacuba.Chart.Criteria.prototype.toDataString=function(){
var a=new Array();
var _214=0;
for(var x in this.props){
a[_214]=x;
_214++;
}
a.sort();
var _215="yXQ1Hd7VzR";
var s="";
for(var x=0;x<a.length;x++){
var key=a[x];
var val=this.props[key];
if(x!=0){
s+=_215;
}
s+=key+"="+val;
}
var _216=null;
for(var x=0;x<Jacuba.Chart.DELIMETERS.length;x++){
if(s.indexOf(Jacuba.Chart.DELIMETERS[x])==-1){
_216=Jacuba.Chart.DELIMETERS[x];
break;
}
}
if(_216==null){
_216=Jacuba.Chart.Util.chooseDelimeter(s);
}
s=s.replace(/yXQ1Hd7VzR/g,_216);
return _216.length+_216+s;
};
Jacuba.Chart.Criteria.prototype.contains=function(str){
for(var x in this.props){
if(x.indexOf(str)!=-1){
return true;
}
var val=this.props[x];
if(val!=null&&val.indexOf(str)!=-1){
return true;
}
}
return false;
};
Jacuba.Chart.Criteria.prototype.toString=function(){
var s="";
for(var i in this.props){
s+=i+"="+this.props[i]+"\r\n";
}
return s;
};
Jacuba.Chart.interfaces=new Object();
Jacuba.Chart.interface_count=0;
Jacuba.Chart.Interface=function(_217,elem){
elem.style.position="relative";
this.tmp_start=(new Date()).getTime();
this.html=elem;
this.chart=_217;
this.criteria=_217.criteria.clone();
this.inputs=new Array();
this.anchors=new Array();
this.selectboxes=new Array();
this.id=Jacuba.Chart.interface_count+"";
Jacuba.Chart.interface_count++;
Jacuba.Chart.interfaces[this.id]=this;
this.create();
if(Jacuba.ErrorHandler){
Jacuba.ErrorHandler.addListener(this);
}
};
Jacuba.Chart.Interface.prototype.input_focused=false;
Jacuba.Chart.Interface.prototype.inputs=null;
Jacuba.Chart.Interface.prototype.anchors=null;
Jacuba.Chart.Interface.prototype.width=0;
Jacuba.Chart.Interface.prototype.height=0;
Jacuba.Chart.Interface.JACUBA_BAR_HEIGHT=22;
Jacuba.Chart.Interface.prototype.init=function(){
if(this.tmp_start){
var _218=(new Date()).getTime();
var _219=_218-this.tmp_start;
delete this.tmp_start;
Jacuba.debug("Chart with id "+this.id+" interface created in "+_219+"ms");
}
var _220=this.criteria.get("open-on");
if(_220=="settings"){
this.showCard("advanced");
}else{
if(_220=="chart"){
this.chart.generate();
}else{
this.showCard("main");
if(this.tab_groups){
var _221=this.tab_groups["data"];
if(_221){
_221.selectTabByIndex(1);
}
}
}
}
var t=this;
var _222=function(){
var _223=Jacuba.Chart.Interface.extractStyleCriteria(t.chart.criteria);
t.applyCriteria(_223);
t.default_theme=new Jacuba.Chart.Interface.CriteriaTheme(t);
var _224=t.criteria.get("theme");
if(!_224||_224=="_default"||(t.theme_monitor&&t.theme_monitor.hasChanged())){
t.selected_theme=t.default_theme;
t.monitorTheme();
var _225=t.fields["theme"];
if(_225){
_225.setValue("_default",true);
}
}
};
if(this.isReady("table")){
if(this.isReady("apply-theme")){
_222();
}else{
this.doWhenReady(_222,"apply-theme");
}
}else{
var t=this;
var work=function(){
if(t.isReady("apply-theme")){
_222();
}else{
t.doWhenReady(_222,"apply-theme");
}
};
this.doWhenReady(work,"table");
}
this.updateLoadingMessage();
};
Jacuba.Chart.Interface.prototype.visibleIndexForTableIndex=function(_226,_227){
var _228=this.criteria;
var set=new Jacuba.Chart.Util.NumberSet(_228.get("excluded-"+(_227?"rows":"columns")));
var _230=_228.get((_227?"column":"row")+"-heading-"+(_227?"row":"column"));
if(_230==null){
_230=0;
}
set.add(_230);
var _231=set.getMembers();
var _232=0;
for(var x=0;x<_231.length;x++){
if(_231[x]<_226){
_232++;
}else{
break;
}
}
return _226-_232;
};
Jacuba.Chart.Interface.prototype.criteriaChanged=function(){
Jacuba.stackTracer.push("Jacuba.Chart.Interface.prototype.criteriaChanged");
for(var x in this.chart.criteria.props){
this.criteria.set(x,this.chart.criteria.get(x));
}
Jacuba.stackTracer.pop("Jacuba.Chart.Interface.prototype.criteriaChanged");
};
Jacuba.Chart.Interface.prototype.create=function(){
this.fields=new Object();
var _233=Jacuba.Chart.Util.getId("main");
var _234="<TABLE id='"+_233+"' class='outer' cellpadding='0' cellspacing='0' border='0' style='width: 100%; height: 100%;'><TBODY></TBODY></TABLE>";
this.html.innerHTML=_234;
this.html_table_tbody=document.getElementById(_233).firstChild;
this.card=null;
this.cards=new Object();
var _235=new Jacuba.Chart.Interface.Card();
this.cards["main"]=_235;
if(this.criteria.get("may-set-advanced")!="false"){
this.cards["advanced"]=new Jacuba.Chart.Interface.Card();
}
var _236=new Jacuba.Chart.Interface.Card();
this.cards["chart"]=_236;
var _237=this.installToolBar();
_235.addElement(_237);
if(this.chart.aggregator!=null){
_235.addElement(this.insertDataTabsElement());
}else{
_235.addElement(this.insertQuickBar());
_235.addElement(this.insertTableElement());
_235.addElement(this.insertDataBottomElement());
}
if(this.criteria.get("may-set-advanced")!="false"){
var _238=this.cards["advanced"];
_238.addElement(_237);
_238.addElement(this.insertSettingsTabsElement());
_238.addElement(this.insertSettingsElement());
_238.addElement(this.insertSettingsGenerateElement());
}
var _239=this.installChartArea();
_236.addElement(_237);
_236.addElement(_239);
for(var x in this.fields){
var _240=this.criteria.get(x);
if(_240!=null){
var _241=this.fields[x];
_241.setValue(_240);
}
var _242=this.criteria.get("may-set-"+x);
if(_242=="false"){
this.fields[x].setDisabled(true);
}
}
for(var x in this.fields){
this.fields[x].init();
}
this.table=new Jacuba.Chart.Interface.Table(this.table_area,this);
this.table.refresh();
var _243=this.criteria.get("theme");
this.selected_theme=_243==null||_243.length==0?null:Jacuba.Chart.ThemeManager.getTheme(_243);
this.applyTheme();
this.html.firstChild.style.border="1px solid red";
this.html.firstChild.style.border="0px";
};
Jacuba.Chart.Interface.prototype.refresh=function(){
this.chart.showInterface();
this.table.refresh();
if(this.table_element.html.style.display=="none"){
this.redraw_table=true;
}
if(this.card=="chart"){
this.chart.generate();
}
};
Jacuba.Chart.Interface.prototype.addElement=function(_244){
if(!this.elements){
this.elements=new Array();
}
this.html_table_tbody.appendChild(_244.html);
this.elements[this.elements.length]=_244;
};
Jacuba.Chart.Interface.prototype.installToolBar=function(){
var _245=Jacuba.Chart.Util.getId("toolbar");
var _246=Jacuba.Chart.Util.getId("toolbar-tr");
var html="<TABLE id=\""+_245+"\" class=\"toolbar\" cellpadding='0' cellspacing='0' border='0'><TBODY><TR id=\""+_246+"\"></TR></TBODY></TABLE>";
var elem=new Jacuba.Chart.Interface.Element();
elem.html.style.height="0%";
elem.html.style.display="none";
elem.setInnerHTML(html);
this.addElement(elem);
this.toolbar=document.getElementById(_245);
var tr=document.getElementById(_246);
var td;
var t=this;
var _248=new Jacuba.Chart.Interface.Button(35,35,"butt-data-options",Jacuba.Chart.Util.getText("data_options"));
_248.setAction(function(){
if(!t.modal_block){
t.updateCriteria();
var msg=Jacuba.Chart.Util.validateAdvancedCriteria(t.criteria);
if(msg!=null){
t.alert(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"form_error"),msg);
return false;
}
t.chart.showInterface();
t.showCard("main");
}
return false;
});
this.cards["main"].associateButton(_248);
if(this.criteria.get("may-set-advanced")!="false"){
var _249=new Jacuba.Chart.Interface.Button(35,35,"butt-settings",Jacuba.Chart.Util.getText("settings"));
_249.setAction(function(){
if(!t.modal_block){
t.updateCriteria();
var msg=Jacuba.Chart.Util.validateAdvancedCriteria(t.criteria);
if(msg!=null){
t.alert(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"form_error"),msg);
return false;
}
t.chart.showInterface();
t.showCard("advanced");
}
return false;
});
this.cards["advanced"].associateButton(_249);
}
var _250=new Jacuba.Chart.Interface.Button(35,35,"butt-chart",Jacuba.Chart.Util.getText("chart"));
_250.setAction(function(){
if(!t.modal_block){
t.updateCriteria();
var msg=Jacuba.Chart.Util.validateAdvancedCriteria(t.criteria);
if(msg!=null){
t.alert(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"form_error"),msg);
return false;
}
t.chart.generate();
}
return false;
});
this.cards["chart"].associateButton(_250);
var _251=new Jacuba.Chart.Interface.Button(22,35,"butt-save",Jacuba.Chart.Util.getText("save"));
_251.setAction(function(){
if(!t.modal_block){
t.updateCriteria();
var msg=Jacuba.Chart.Util.validateAdvancedCriteria(t.criteria);
if(msg!=null){
t.alert(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"form_error"),msg);
return false;
}
t.chart.generate(t.chart.save);
}
return false;
});
var _252=new Jacuba.Chart.Interface.Button(27,35,"butt-print",Jacuba.Chart.Util.getText("print"));
_252.setAction(function(){
if(!t.modal_block){
t.updateCriteria();
var msg=Jacuba.Chart.Util.validateAdvancedCriteria(t.criteria);
if(msg!=null){
t.alert(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"form_error"),msg);
return false;
}
t.chart.generate(t.chart.print);
}
return false;
});
var _253=new Jacuba.Chart.Interface.Button(18,35,"butt-help",Jacuba.Chart.Util.getText("help"));
_253.setAction(function(){
Jacuba.Chart.Util.openHelp();
});
var _254=new Array();
_254[_254.length]=_248;
_254[_254.length]=_249;
_254[_254.length]=_250;
_254[_254.length]=_251;
_254[_254.length]=_252;
_254[_254.length]=_253;
for(var x=0;x<_254.length;x++){
var _255=_254[x];
td=document.createElement("TD");
td.className="icon-place";
tr.appendChild(td);
var icon=_255.getIcon();
td.appendChild(icon);
_255.attachEventHandlers(td);
td=document.createElement("TD");
td.className="label-place";
tr.appendChild(td);
var _257=_255.getLabel();
td.appendChild(_257);
_255.attachEventHandlers(td);
}
td=document.createElement("TD");
td.className="logo-place";
var tmp=document.createElement("IMG");
td.appendChild(tmp);
tr.appendChild(td);
Jacuba.Chart.ImageManager.setSrc(tmp,Jacuba.Chart.TRANSP_IMG);
Jacuba.Chart.ImageManager.setClassName(tmp,"charts-logo");
return elem;
};
Jacuba.Chart.Interface.prototype.insertQuickBar=function(){
var _258=Jacuba.Chart.Util.getId("chart_type");
var _259=Jacuba.Chart.Util.getId("theme");
var _260=Jacuba.Chart.Util.getId("theme-mod");
var _261=Jacuba.Chart.Util.getId("type-advanced");
var _262="<TABLE class='quick-bar' cellpadding='0' cellspacing='0' border='0'><TBODY><TR>";
var _263=this.criteria.get("may-set-theme")!="false"?"first":"only";
_262+="<TD class='"+_263+"'>"+Jacuba.Chart.Util.getText("Chart_Type")+": <SELECT id='"+_258+"' name='chart-type'>";
if(this.criteria.get("may-set-chart-type-to-bar")!="false"){
_262+="<OPTION value='bar'>"+Jacuba.Chart.Util.getText("Bar")+"</OPTION>";
}
if(this.criteria.get("may-set-chart-type-to-line")!="false"){
_262+="<OPTION value='line'>"+Jacuba.Chart.Util.getText("Line")+"</OPTION>";
}
if(this.criteria.get("may-set-chart-type-to-area")!="false"){
_262+="<OPTION value='area'>"+Jacuba.Chart.Util.getText("Area")+"</OPTION>";
}
if(this.criteria.get("may-set-chart-type-to-pie")!="false"){
_262+="<OPTION value='pie'>"+Jacuba.Chart.Util.getText("Pie")+"</OPTION>";
}
_262+="</SELECT>";
if(this.criteria.get("may-set-advanced-chart-type")!="false"){
_262+=" <A href=\"javascript:void(0)\" id='"+_261+"'>"+Jacuba.Chart.Util.getText("Advanced")+"</A>";
}
_262+="</TD>";
if(this.criteria.get("may-set-theme")!="false"){
_262+="<TD class='last'>"+Jacuba.Chart.Util.getText("Theme")+": <SELECT name='theme' id='"+_259+"'></SELECT><SPAN id='"+_260+"'></SPAN></TD>";
}
_262+="</TR></TBODY></TABLE>";
var elem=new Jacuba.Chart.Interface.Element();
elem.html.style.height="0%";
elem.html.style.display="none";
elem.setInnerHTML(_262);
this.addElement(elem);
Jacuba.Chart.ImageManager.setClassName(elem.td,"quick-bar");
var _264=document.getElementById(_258);
if(!this.fields["chart-type"]){
this.fields["chart-type"]=new Jacuba.Chart.Interface.Field(_264);
}else{
this.fields["chart-type"].duplicateElement(_264);
}
var _265=document.getElementById(_261);
if(_265){
var t=this;
_265.onclick=function(e){
var x,y;
if(navigator.appName.indexOf("Microsoft")!=-1){
e=window.event;
x=e.clientX;
y=e.clientY;
}else{
x=e.pageX;
y=e.pageY;
}
x-=Jacuba.Chart.Util.getOffsetX(t.html);
y-=Jacuba.Chart.Util.getOffsetY(t.html);
x+=10;
var _267=t.html.offsetWidth;
var _268=200;
if(x+_268>_267-10){
x-=_268+10;
if(x<0){
x=_267-10-_268;
}
}
var _269=t.html.offsetHeight;
var _270=150;
if(y+_270>_269-10){
y-=_270+10;
if(y<0){
y=_269-10-_270;
}
}
t.openChartTypeAdvancedWindow(_268,_270,x,y);
return false;
};
this.registerAnchorElement(_265);
}
if(this.criteria.get("may-set-theme")!="false"){
var _271=document.getElementById(_259);
if(!this.fields["theme"]){
this.fields["theme"]=new Jacuba.Chart.Interface.Field(_271);
var t=this;
var _272=new Object();
_272.fieldChanged=function(){
t.themeSelected();
};
this.fields["theme"].addListener(_272);
}else{
this.fields["theme"].duplicateElement(_271);
}
var _273=document.getElementById(_260);
if(!this.theme_mod_elems){
this.theme_mod_elems=new Array();
}
this.theme_mod_elems[this.theme_mod_elems.length]=_273;
this.populateThemeSelection(_271);
}
return elem;
};
Jacuba.Chart.Interface.prototype.insertAggregationElement=function(){
var _274=new Jacuba.Chart.Interface.Element();
_274.html.style.height="100%";
_274.html.style.display="none";
this.addElement(_274);
if(this.chart.aggregator){
this.chart.aggregator.setParentInterface(this);
this.chart.aggregator.setInterfaceContainer(_274.td);
}
return _274;
};
Jacuba.Chart.Interface.prototype.insertTableElement=function(){
var _275=Jacuba.Chart.Util.getId("table_area");
var tmp="<DIV id='"+_275+"' class='chart-table'></DIV>";
var elem=new Jacuba.Chart.Interface.Element();
elem.html.style.height="100%";
elem.html.style.display="none";
elem.html.className="row2";
elem.td.style.verticalAlign="top";
elem.setInnerHTML(tmp);
var _276=this;
var _277=Jacuba.Chart.Util.moveMethod(elem,"setVisible","superSetVisible");
elem.setVisible=function(_278){
this[_277](_278);
if(_278&&_276.redraw_table){
_276.table.updateHeadings();
_276.table.updateCellSizes();
_276.redraw_table=false;
}
};
this.addElement(elem);
this.table_area=document.getElementById(_275);
this.table_element=elem;
this.redraw_table=true;
return elem;
};
Jacuba.Chart.Interface.prototype.insertQuickOptionsElement=function(){
var _279=Jacuba.Chart.Util.getId("width");
var _280=Jacuba.Chart.Util.getId("height");
var _281=Jacuba.Chart.Util.getId("show_legend");
var _282=Jacuba.Chart.Util.getId("chart_type");
var _283=Jacuba.Chart.Util.getId("bar_options");
var _284=Jacuba.Chart.Util.getId("line_options");
var _285=Jacuba.Chart.Util.getId("area_options");
var _286=Jacuba.Chart.Util.getId("pie_options");
var _287=Jacuba.Chart.Util.getId("plain");
var _288=Jacuba.Chart.Util.getId("plain3d");
var _289=Jacuba.Chart.Util.getId("stacked");
var _290=Jacuba.Chart.Util.getId("stecked3d");
var _291=Jacuba.Chart.Util.getId("overlapped");
var _292=Jacuba.Chart.Util.getId("point_shapes");
var _293=Jacuba.Chart.Util.getId("pie3d");
var _294=Jacuba.Chart.Util.getId("pie_elliptic");
var _295=Jacuba.Chart.Util.getId("generate");
var _296=Jacuba.Chart.Util.getId("orientation-place");
var _297=Jacuba.Chart.Util.getId("orientation");
var _298=Jacuba.Chart.Util.getId("theme-place");
var _299=Jacuba.Chart.Util.getId("theme");
var _300=Jacuba.Chart.Util.getId("theme-mod");
if(!this.theme_id){
this.theme_id=_299;
}
if(!this.theme_mod_id){
this.theme_mod_id=_300;
}
html_str="<TABLE cellpadding='0' cellspacing='0' border='0'><TBODY><TR><TD class='column1' valign='TOP'>";
html_str+="<TABLE cellpadding='0' cellspacing='0' border='0'><TBODY>";
html_str+="<TR><TD class='label'><NOBR>"+Jacuba.Chart.Util.getText("Width")+"</NOBR></TD><TD class='field'><INPUT id='"+_279+"' type='TEXT' name='width' class='number'></TD></TR>";
html_str+="<TR><TD class='label'><NOBR>"+Jacuba.Chart.Util.getText("Height")+"</NOBR></TD><TD class='field'><INPUT id='"+_280+"' type='TEXT' name='height' class='number'></TD></TR>";
html_str+="<TR><TD colspan='2'><NOBR><LABEL><INPUT id='"+_281+"' type='CHECKBOX' name='show-legend' value='true'> "+Jacuba.Chart.Util.getText("Show_legend")+"</LABEL></NOBR></TD></TR>";
html_str+="</TBODY></TABLE>";
html_str+="</TD><TD class='column2' valign='TOP'>";
html_str+=Jacuba.Chart.Util.getText("Chart_Type")+": <SELECT id='"+_282+"' name='chart-type'>";
if(this.criteria.get("may-set-chart-type-to-bar")!="false"){
html_str+="<OPTION value='bar'>"+Jacuba.Chart.Util.getText("Bar")+"</OPTION>";
}
if(this.criteria.get("may-set-chart-type-to-line")!="false"){
html_str+="<OPTION value='line'>"+Jacuba.Chart.Util.getText("Line")+"</OPTION>";
}
if(this.criteria.get("may-set-chart-type-to-area")!="false"){
html_str+="<OPTION value='area'>"+Jacuba.Chart.Util.getText("Area")+"</OPTION>";
}
if(this.criteria.get("may-set-chart-type-to-pie")!="false"){
html_str+="<OPTION value='pie'>"+Jacuba.Chart.Util.getText("Pie")+"</OPTION>";
}
html_str+="</SELECT>";
html_str+="<SPAN id='"+_296+"'> "+Jacuba.Chart.Util.getText("Orientation")+": <SELECT name='orientation' id='"+_297+"'>";
html_str+="<OPTION value='normal'>"+Jacuba.Chart.Util.getText("Normal")+"</OPTION>";
html_str+="<OPTION value='reverse'>"+Jacuba.Chart.Util.getText("Reverse")+"</OPTION>";
html_str+="</SELECT></SPAN>";
if(this.criteria.get("may-set-theme")!="false"){
html_str+="<SPAN id='"+_298+"'> "+Jacuba.Chart.Util.getText("Theme")+": <SELECT name='theme' id='"+_299+"'></SELECT><SPAN id='"+_300+"'></SPAN></SPAN>";
}
html_str+="<DIV class='chart-type-options' style='height: 4em'>";
html_str+="<DIV id=\""+_283+"\">";
if(this.criteria.get("may-set-bar-style-to-plain")!="false"){
html_str+="<NOBR><LABEL><INPUT id='"+_287+"' type='RADIO' name='bar-style' value='plain'>"+Jacuba.Chart.Util.getText("Plain")+"</LABEL></NOBR> ";
}
if(this.criteria.get("may-set-bar-style-to-plain_3d")!="false"){
html_str+="<NOBR><LABEL><INPUT id='"+_288+"' type='RADIO' name='bar-style' value='plain_3d'>"+Jacuba.Chart.Util.getText("Plain_3D")+"</LABEL></NOBR> ";
}
if(this.criteria.get("may-set-bar-style-to-stacked")!="false"){
html_str+="<NOBR><LABEL><INPUT id='"+_289+"' type='RADIO' name='bar-style' value='stacked'>"+Jacuba.Chart.Util.getText("Stacked")+"</LABEL></NOBR> ";
}
if(this.criteria.get("may-set-bar-style-to-stacked_3d")!="false"){
html_str+="<NOBR><LABEL><INPUT id='"+_290+"' type='RADIO' name='bar-style' value='stacked_3d'>"+Jacuba.Chart.Util.getText("Stacked_3D")+"</LABEL></NOBR> ";
}
if(this.criteria.get("may-set-bar-style-to-overlapped")!="false"){
html_str+="<NOBR><LABEL><INPUT id='"+_291+"' type='RADIO' name='bar-style' value='overlapped'>"+Jacuba.Chart.Util.getText("Overlapped")+"</LABEL></NOBR>";
}
html_str+="</DIV>";
html_str+="<DIV id=\""+_284+"\">";
html_str+="<LABEL for=\""+_292+"\"><INPUT id='"+_292+"' type='CHECKBOX' name='line-draw-shapes' value='true'> "+Jacuba.Chart.Util.getText("Point_shapes")+"</LABEL>";
html_str+="</DIV>";
html_str+="<DIV id=\""+_285+"\"></DIV>";
html_str+="<DIV id=\""+_286+"\"><INPUT id='"+_293+"' type='CHECKBOX' name='pie-3d' value='true'> "+Jacuba.Chart.Util.getText("ThreeD")+"<BR><INPUT id='"+_294+"' type='CHECKBOX' name='pie-elliptic' value='true'> "+Jacuba.Chart.Util.getText("Elliptic")+"</DIV>";
html_str+="</DIV>";
html_str+="<DIV class='generate'><INPUT id='"+_295+"' type='BUTTON' value=\""+Jacuba.Chart.Util.getText("Generate")+"\"></DIV>";
html_str+="<DIV style='clear:both'></DIV>";
html_str+="</TD></TR></TBODY></TABLE>";
var elem=new Jacuba.Chart.Interface.Element();
elem.html.style.height="0%";
elem.html.style.visibility="hidden";
elem.html.className="row3";
elem.td.className="chart-panel";
elem.setInnerHTML(html_str);
this.addElement(elem);
this.type_panels=new Object();
this.type_panels["bar"]=document.getElementById(_283);
this.type_panels["line"]=document.getElementById(_284);
this.type_panels["area"]=document.getElementById(_285);
this.type_panels["pie"]=document.getElementById(_286);
this.fields["width"]=new Jacuba.Chart.Interface.Field(document.getElementById(_279));
this.fields["height"]=new Jacuba.Chart.Interface.Field(document.getElementById(_280));
if(!this.fields["show-legend"]){
this.fields["show-legend"]=new Jacuba.Chart.Interface.Field(document.getElementById(_281));
}else{
this.fields["show-legend"].duplicateElement(document.getElementById(_281));
}
var _301=document.getElementById(_282);
if(!this.fields["chart-type"]){
this.fields["chart-type"]=new Jacuba.Chart.Interface.Field(_301);
}else{
this.fields["chart-type"].duplicateElement(_301);
}
this.fields["orientation"]=new Jacuba.Chart.Interface.Field(document.getElementById(_297));
this.fields["line-draw-shapes"]=new Jacuba.Chart.Interface.Field(document.getElementById(_292));
this.fields["pie-3d"]=new Jacuba.Chart.Interface.Field(document.getElementById(_293));
this.fields["pie-elliptic"]=new Jacuba.Chart.Interface.Field(document.getElementById(_294));
var _302=document.getElementById(_299);
if(!this.fields["theme"]){
this.fields["theme"]=new Jacuba.Chart.Interface.Field(_302);
}else{
this.fields["theme"].duplicateElement(_302);
}
var _303=new Jacuba.Chart.Interface.Field();
this.fields["bar-style"]=_303;
var tmp=document.getElementById(_287);
if(tmp!=null){
_303.addValueElement(tmp);
}
tmp=document.getElementById(_288);
if(tmp!=null){
_303.addValueElement(tmp);
}
tmp=document.getElementById(_289);
if(tmp!=null){
_303.addValueElement(tmp);
}
tmp=document.getElementById(_290);
if(tmp!=null){
_303.addValueElement(tmp);
}
tmp=document.getElementById(_291);
if(tmp!=null){
_303.addValueElement(tmp);
}
this.selected_chart_type=this.criteria.get("chart-type");
for(var x in this.type_panels){
if(x!=this.selected_chart_type){
this.type_panels[x].style.display="none";
}
}
var _304=this.fields["chart-type"];
var _305=new Object();
var t=this;
_305.fieldChanged=function(){
t.chartTypeChanged();
var _306=document.getElementById(_296);
if(t.fields["chart-type"].getValue()=="pie"){
_306.style.display="none";
}else{
_306.style.display="";
}
};
_304.addListener(_305);
var _307=document.getElementById(_295);
var t=this;
_307.onclick=function(){
t.chart.generate();
};
this.registerInputElement(_307);
if(this.criteria.get("may-set-theme")!="false"){
this.populateThemeSelection();
}
return elem;
};
Jacuba.Chart.Interface.prototype.insertDataBottomElement=function(){
var _308=Jacuba.Chart.Util.getId("generate-chart-place");
var _309="<TABLE cellpadding='0' cellspacing='0' border='0'><TBODY><TR><TD class='tip'>"+Jacuba.Chart.Util.getText("tip")+"</TD><TD valign='BOTTOM' class='make-chart-place' id='"+_308+"'></TD></TR></TBODY></TABLE>";
var elem=new Jacuba.Chart.Interface.Element();
elem.setInnerHTML(_309);
elem.html.style.display="none";
elem.td.className="bottom-bar";
this.addElement(elem);
var _310=document.getElementById(_308);
this.insertGenerateButton(_310);
return elem;
};
Jacuba.Chart.Interface.prototype.insertAggregationBottomElement=function(){
var _311=Jacuba.Chart.Util.getId("generate-chart-place");
var _312="<TABLE cellpadding='0' cellspacing='0' border='0'><TBODY><TR><TD class='tip'>"+Jacuba.Chart.Util.getText("aggregation_tip")+"</TD><TD valign='BOTTOM' class='make-chart-place' id='"+_311+"'></TD></TR></TBODY></TABLE>";
var elem=new Jacuba.Chart.Interface.Element();
elem.setInnerHTML(_312);
elem.html.style.display="none";
elem.td.className="bottom-bar";
this.addElement(elem);
var _313=document.getElementById(_311);
this.insertGenerateButton(_313);
return elem;
};
Jacuba.Chart.Interface.prototype.insertGenerateButton=function(_314){
var _315=document.createElement("INPUT");
_315.type="SUBMIT";
_315.value=Jacuba.Chart.Util.getText("Generate");
_314.appendChild(_315);
var t=this;
_315.onclick=function(){
t.chart.generate();
};
this.registerInputElement(_315);
};
Jacuba.Chart.Interface.prototype.insertDataTabsElement=function(){
this.data_general_id=Jacuba.Chart.Util.getId("data_general");
this.data_aggregation_id=Jacuba.Chart.Util.getId("data_aggregation");
var _316=Jacuba.Chart.Util.getId("data-tabs");
var _317=Jacuba.Chart.Util.getId("link-data-general");
var _318=Jacuba.Chart.Util.getId("link-data-aggregation");
var _319=Jacuba.Chart.Util.getId("imgtmp");
var _320=null;
var _321="<TABLE border='0' cellpadding='0' cellspacing='0' class='tabs' id='"+_316+"'><TBODY><TR>";
if(_320==null){
_320=_317;
}
_321+="<TD width='0%' valign='BOTTOM'><a id='"+_317+"' href='javascript:void(0)' class='deselected'></a></TD>";
_321+="<TD width='0%' valign='BOTTOM'><a id='"+_318+"' href='javascript:void(0)' class='deselected'></a></TD>";
_321+="</TR></TBODY></TABLE>";
_321+="<DIV class='under-tabs'><IMG id=\""+_319+"\" width='1' height='1'></DIV>";
var elem=new Jacuba.Chart.Interface.Element();
elem.setInnerHTML(_321);
elem.html.style.height="0%";
elem.html.className="row1";
elem.td.className="tab-panel";
elem.html.style.display="none";
this.addElement(elem);
var _322=document.getElementById(_317);
_322.appendChild(Jacuba.Chart.Interface.authorTab(Jacuba.Chart.Util.getText("General")));
var _323=document.getElementById(_318);
_323.appendChild(Jacuba.Chart.Interface.authorTab(Jacuba.Chart.Util.getText("Aggregation")));
this.selected_data_link=document.getElementById(_320);
this.selected_data_link.className="selected";
this.data_tabs=document.getElementById(_316);
this.installTabGroup("data",_320,elem);
var _324=new Array();
_324[0]=this.insertQuickBar();
_324[1]=this.insertTableElement();
_324[2]=this.insertDataBottomElement();
this.installTabElementLink(_317,"data",_324);
var _325=new Array();
_325[0]=this.insertAggregationElement();
_325[1]=this.insertAggregationBottomElement();
this.installTabElementLink(_318,"data",_325);
Jacuba.Chart.ImageManager.setSrc(document.getElementById(_319),Jacuba.Chart.TRANSP_IMG);
return elem;
};
Jacuba.Chart.Interface.prototype.insertSettingsTabsElement=function(){
this.advanced_general_id=Jacuba.Chart.Util.getId("advanced_general");
this.advanced_type_id=Jacuba.Chart.Util.getId("advanced_type");
this.advanced_title_id=Jacuba.Chart.Util.getId("advanced_title");
this.advanced_legend_id=Jacuba.Chart.Util.getId("advanced_legend");
this.advanced_label_id=Jacuba.Chart.Util.getId("advanced_label");
var _326=Jacuba.Chart.Util.getId("adv-tabs");
var _327=Jacuba.Chart.Util.getId("link-general");
var _328=Jacuba.Chart.Util.getId("link-type");
var _329=Jacuba.Chart.Util.getId("link-title");
var _330=Jacuba.Chart.Util.getId("link-legend");
var _331=Jacuba.Chart.Util.getId("link-label");
var _332=Jacuba.Chart.Util.getId("tmpimg");
var _333=null;
var _334=null;
var _335="<TABLE border='0' cellpadding='0' cellspacing='0' class='tabs' id='"+_326+"'><TBODY><TR>";
if(this.criteria.get("may-set-advanced-general")!="false"){
if(_333==null){
_333=_327;
_334=this.advanced_general_id;
}
_335+="<TD width='0%' valign='BOTTOM'><a id='"+_327+"' href='#' class='deselected'></a></TD>";
}
if(this.criteria.get("may-set-advanced-chart-type")!="false"){
if(_333==null){
_333=_328;
_334=this.advanced_type_id;
}
_335+="<TD width='0%' valign='BOTTOM'><a id='"+_328+"' href='#' class='deselected'></a></TD>";
}
if(this.criteria.get("may-set-advanced-title")!="false"){
if(_333==null){
_333=_329;
_334=this.advanced_title_id;
}
_335+="<TD width='0%' valign='BOTTOM'><a id='"+_329+"' href='#' class='deselected'></a></TD>";
}
if(this.criteria.get("may-set-advanced-legend")!="false"){
if(_333==null){
_333=_330;
_334=this.advanced_legend_id;
}
_335+="<TD width='0%' valign='BOTTOM'><a id='"+_330+"' href='#' class='deselected'></a></TD>";
}
if(this.criteria.get("may-set-advanced-axes")!="false"){
if(_333==null){
_333=_331;
_334=this.advanced_label_id;
}
_335+="<TD width='0%' valign='BOTTOM'><a id='"+_331+"' href='#' class='deselected'></a></TD>";
}
_335+="</TR></TBODY></TABLE>";
_335+="<DIV class='under-tabs'><IMG id=\""+_332+"\" width='1' height='1'></DIV>";
var elem=new Jacuba.Chart.Interface.Element();
elem.setInnerHTML(_335);
elem.html.style.height="0%";
elem.html.className="row1";
elem.td.className="tab-panel";
elem.html.style.display="none";
this.addElement(elem);
var _336=document.getElementById(_327);
if(_336){
_336.appendChild(Jacuba.Chart.Interface.authorTab(Jacuba.Chart.Util.getText("General")));
}
var _337=document.getElementById(_328);
if(_337){
_337.appendChild(Jacuba.Chart.Interface.authorTab(Jacuba.Chart.Util.getText("Chart_Type")));
}
var _338=document.getElementById(_329);
if(_338){
_338.appendChild(Jacuba.Chart.Interface.authorTab(Jacuba.Chart.Util.getText("Title")));
}
var _339=document.getElementById(_330);
if(_339){
_339.appendChild(Jacuba.Chart.Interface.authorTab(Jacuba.Chart.Util.getText("Legend")));
}
var _340=document.getElementById(_331);
if(_340){
_340.appendChild(Jacuba.Chart.Interface.authorTab(Jacuba.Chart.Util.getText("Axes")));
}
this.selected_advanced_link=document.getElementById(_333);
this.selected_advanced_link.className="selected";
this.adv_tabs=document.getElementById(_326);
this.adv_selected_area_id=_334;
this.general_link_id=_327;
this.type_link_id=_328;
this.title_link_id=_329;
this.legend_link_id=_330;
this.label_link_id=_331;
Jacuba.Chart.ImageManager.setSrc(document.getElementById(_332),Jacuba.Chart.TRANSP_IMG);
return elem;
};
Jacuba.Chart.Interface.authorTab=function(text){
var _342=document.createElement("TABLE");
_342.border=0;
_342.cellPadding=0;
_342.cellSpacing=0;
var _343=document.createElement("TBODY");
_342.appendChild(_343);
var tr=document.createElement("TR");
_343.appendChild(tr);
var td=document.createElement("TD");
tr.appendChild(td);
var tmp=document.createElement("IMG");
tmp.border="0";
td.appendChild(tmp);
Jacuba.Chart.ImageManager.setSrc(tmp,Jacuba.Chart.TRANSP_IMG);
Jacuba.Chart.ImageManager.setClassName(tmp,"tab-left");
td=document.createElement("TD");
tr.appendChild(td);
Jacuba.Chart.ImageManager.setClassName(td,"tab-middle");
var nobr=document.createElement("NOBR");
td.appendChild(nobr);
nobr.innerHTML=text;
td=document.createElement("TD");
tr.appendChild(td);
tmp=document.createElement("IMG");
tmp.border="0";
td.appendChild(tmp);
Jacuba.Chart.ImageManager.setSrc(tmp,Jacuba.Chart.TRANSP_IMG);
Jacuba.Chart.ImageManager.setClassName(tmp,"tab-right");
return _342;
};
Jacuba.Chart.Interface.prototype.openChartTypeAdvancedWindow=function(_345,_346,x,y){
var _347=this.getValue("chart-type");
var _348=Jacuba.Chart.Util.getId("bar_options");
var _349=Jacuba.Chart.Util.getId("line_options");
var _350=Jacuba.Chart.Util.getId("area_options");
var _351=Jacuba.Chart.Util.getId("pie_options");
var _352=Jacuba.Chart.Util.getId("plain");
var _353=Jacuba.Chart.Util.getId("plain3d");
var _354=Jacuba.Chart.Util.getId("stacked");
var _355=Jacuba.Chart.Util.getId("stecked3d");
var _356=Jacuba.Chart.Util.getId("overlapped");
var _357=Jacuba.Chart.Util.getId("point_shapes");
var _358=Jacuba.Chart.Util.getId("pie3d");
var _359=Jacuba.Chart.Util.getId("orientation-place");
var _360=Jacuba.Chart.Util.getId("orientation");
var _361=Jacuba.Chart.Util.getId("chart-type");
var _362=Jacuba.Chart.Util.getId("pie-plain");
var _363=Jacuba.Chart.Util.getId("pie-3d");
var _364=Jacuba.Chart.Util.getId("pie-elliptic");
var _365=Jacuba.Chart.Util.getId("pie-elliptic-3d");
var _366="<TABLE style='width: 100%;'><TBODY>";
if(_347!="pie"){
var tmp=this.getValue("orientation");
_366+="<TR id='"+_359+"'><TD style='width: 0%'><NOBR>"+Jacuba.Chart.Util.getText("Orientation")+"</NOBR></TD><TD style='width: 100%'>";
_366+="<SELECT name='orientation' id='"+_360+"'>";
_366+="<OPTION value='normal'";
if(tmp=="normal"){
_366+=" selected";
}
_366+=">"+Jacuba.Chart.Util.getText("Normal")+"</OPTION>";
_366+="<OPTION value='reverse'";
if(tmp=="reverse"){
_366+=" selected";
}
_366+=">"+Jacuba.Chart.Util.getText("Reverse")+"</OPTION>";
_366+="</SELECT>";
_366+="</TD></TR>";
}
_366+="<TR><TD></TD><TD style='width: 100%'>";
if(_347=="area"){
_366+="<DIV></DIV>";
}
_366+="</TD></TR>";
_366+="</TBODY></TABLE>";
if(_347=="line"){
var tmp=this.getValue("line-draw-shapes");
_366+="<LABEL for=\""+_357+"\"><INPUT id='"+_357+"' type='CHECKBOX' name='line-draw-shapes' value='true'";
if(tmp=="true"){
_366+=" checked";
}
_366+="> "+Jacuba.Chart.Util.getText("Point_shapes")+"</LABEL>";
}
if(_347=="pie"){
var tmp=this.getValue("pie-3d");
var _367=new Array();
var str;
str="<a href=\"javascript:void(0)\" title=\""+Jacuba.Chart.Util.getText("Pie_plain")+"\"><img id='"+_362+"' src='"+Jacuba.Chart.TRANSP_IMG+"' border='0' align='absmiddle' class='pie-plain'></a> "+Jacuba.Chart.Util.getText("Pie_plain");
_367[_367.length]=str;
if(this.criteria.get("may-set-pie-3d")!="false"){
str="<a href=\"javascript:void(0)\" title=\""+Jacuba.Chart.Util.getText("ThreeD")+"\"><img id='"+_363+"' src='"+Jacuba.Chart.TRANSP_IMG+"' border='0' align='absmiddle' class='pie-plain-3d'></a> "+Jacuba.Chart.Util.getText("ThreeD");
_367[_367.length]=str;
}
if(this.criteria.get("may-set-pie-elliptic")!="false"){
str="<a href=\"javascript:void(0)\" title=\""+Jacuba.Chart.Util.getText("Elliptic")+"\"><img id='"+_364+"' src='"+Jacuba.Chart.TRANSP_IMG+"' border='0' align='absmiddle' class='pie-elliptic'></a> "+Jacuba.Chart.Util.getText("Elliptic");
_367[_367.length]=str;
}
if(this.criteria.get("may-set-pie-elliptic")!="false"&&this.criteria.get("may-set-pie-3d")!="false"){
str="<a href=\"javascript:void(0)\" title=\""+Jacuba.Chart.Util.getText("Elliptic3d")+"\"><img id='"+_365+"' src='"+Jacuba.Chart.TRANSP_IMG+"' border='0' align='absmiddle' class='pie-elliptic-3d'></a> "+Jacuba.Chart.Util.getText("Elliptic3d");
_367[_367.length]=str;
}
if(_367.length>0){
var _368=2;
_366+="<TABLE border=\"0\"><TBODY>";
for(var i=0;i<_367.length;i++){
if(i%_368==0){
if(i!=0){
_366+="</TR>";
}
_366+="<TR>";
}
_366+="<TD style='width: 45%'>"+_367[i]+"</TD>";
}
_366+="</TR>";
_366+="</TBODY></TABLE>";
}
}
if(_347=="bar"){
var tmp=this.getValue("bar-style");
var _367=new Array();
if(this.criteria.get("may-set-bar-style-to-plain")!="false"){
var str="<a href='javascript:void(0)' title=\""+Jacuba.Chart.Util.getText("Plain")+"\"><img id='"+_352+"' src='"+Jacuba.Chart.TRANSP_IMG+"' border='0' align='absmiddle' class='bar-plain'></a> "+Jacuba.Chart.Util.getText("Plain");
_367[_367.length]=str;
}
if(this.criteria.get("may-set-bar-style-to-plain_3d")!="false"){
var str="<a href='javascript:void(0)' title=\""+Jacuba.Chart.Util.getText("Plain_3D")+"\"><img id='"+_353+"' src='"+Jacuba.Chart.TRANSP_IMG+"' border='0' align='absmiddle' class='bar-plain-3d'></a> "+Jacuba.Chart.Util.getText("Plain_3D");
_367[_367.length]=str;
}
if(this.criteria.get("may-set-bar-style-to-stacked")!="false"){
var str="<a href='javascript:void(0)' title=\""+Jacuba.Chart.Util.getText("Stacked")+"\"><img id='"+_354+"' src='"+Jacuba.Chart.TRANSP_IMG+"' border='0' align='absmiddle' class='bar-stacked'></a> "+Jacuba.Chart.Util.getText("Stacked");
_367[_367.length]=str;
}
if(this.criteria.get("may-set-bar-style-to-stacked_3d")!="false"){
var str="<a href='javascript:void(0)' title=\""+Jacuba.Chart.Util.getText("Stacked_3D")+"\"><img id='"+_355+"' src='"+Jacuba.Chart.TRANSP_IMG+"' border='0' align='absmiddle' class='bar-stacked-3d'></a> "+Jacuba.Chart.Util.getText("Stacked_3D");
_367[_367.length]=str;
}
if(this.criteria.get("may-set-bar-style-to-overlapped")!="false"){
var str="<a href='javascript:void(0)' title=\""+Jacuba.Chart.Util.getText("Overlapped")+"\"><img id='"+_356+"' src='"+Jacuba.Chart.TRANSP_IMG+"' border='0' align='absmiddle' class='bar-overlapped'></a> "+Jacuba.Chart.Util.getText("Overlapped");
_367[_367.length]=str;
}
if(_367.length>0){
var _368=2;
_366+="<TABLE border=\"0\"><TBODY>";
for(var i=0;i<_367.length;i++){
if(i%_368==0){
if(i!=0){
_366+="</TR>";
}
_366+="<TR>";
}
_366+="<TD style='width: 45%'>"+_367[i]+"</TD>";
}
_366+="</TR>";
_366+="</TBODY></TABLE>";
}
}
var win=new Jacuba.Chart.Interface.Window(_345);
var _370;
if(_347=="bar"){
_370="Bar";
}else{
if(_347=="line"){
_370="Line";
}else{
if(_347=="pie"){
_370="Pie";
}else{
if(_347=="area"){
_370="Area";
}
}
}
}
var _371=Jacuba.Chart.Util.getText(_370);
var _372=Jacuba.Chart.Util.getText("Chart_Type_Window_Title",_371);
win.setTitle(_372);
win.setContent(_366);
win.bind(this.html);
var _373=document.getElementById(_360);
if(_373&&this.criteria.get("may-set-orientation")=="false"){
_373.disabled=true;
}
var _374;
if(_347=="pie"){
_374=new Jacuba.Chart.Util.RadioGroup();
var _375=document.getElementById(_362);
if(_375){
var td=_375.parentNode.parentNode;
td.className="unselected-bar-style";
_374.addRadio(new Jacuba.Chart.Util.Radio("plain",td,"selected-bar-style"));
}
var _376=document.getElementById(_363);
if(_376){
var td=_376.parentNode.parentNode;
td.className="unselected-bar-style";
_374.addRadio(new Jacuba.Chart.Util.Radio("plain_3d",td,"selected-bar-style"));
}
var _377=document.getElementById(_364);
if(_377){
var td=_377.parentNode.parentNode;
td.className="unselected-bar-style";
_374.addRadio(new Jacuba.Chart.Util.Radio("elliptic",td,"selected-bar-style"));
}
var _378=document.getElementById(_365);
if(_378){
var td=_378.parentNode.parentNode;
td.className="unselected-bar-style";
_374.addRadio(new Jacuba.Chart.Util.Radio("elliptic_3d",td,"selected-bar-style"));
}
var _379=this.getValue("pie-3d");
var _380=this.getValue("pie-elliptic");
var val;
if(_379=="true"&&_380=="true"){
val="elliptic_3d";
}else{
if(_379=="true"){
val="plain_3d";
}else{
if(_380=="true"){
val="elliptic";
}else{
val="plain";
}
}
}
_374.setValue(val);
}
var _381;
if(_347=="bar"){
_381=new Jacuba.Chart.Util.RadioGroup();
var _382=document.getElementById(_352);
if(_382){
var td=_382.parentNode.parentNode;
td.className="unselected-bar-style";
_381.addRadio(new Jacuba.Chart.Util.Radio("plain",td,"selected-bar-style"));
}
var _383=document.getElementById(_353);
if(_383){
var td=_383.parentNode.parentNode;
td.className="unselected-bar-style";
_381.addRadio(new Jacuba.Chart.Util.Radio("plain_3d",td,"selected-bar-style"));
}
var _384=document.getElementById(_354);
if(_384){
var td=_384.parentNode.parentNode;
td.className="unselected-bar-style";
_381.addRadio(new Jacuba.Chart.Util.Radio("stacked",td,"selected-bar-style"));
}
var _385=document.getElementById(_355);
if(_385){
var td=_385.parentNode.parentNode;
td.className="unselected-bar-style";
_381.addRadio(new Jacuba.Chart.Util.Radio("stacked_3d",td,"selected-bar-style"));
}
var _386=document.getElementById(_356);
if(_386){
var td=_386.parentNode.parentNode;
td.className="unselected-bar-style";
_381.addRadio(new Jacuba.Chart.Util.Radio("overlapped",td,"selected-bar-style"));
}
_381.setValue(this.getValue("bar-style"));
}
var t=this;
var _387=function(){
var _373=document.getElementById(_360);
if(_373){
t.setValue("orientation",_373.value);
}
if(_381){
t.setValue("bar-style",_381.getValue());
}
var _388=document.getElementById(_357);
if(_388){
t.setValue("line-draw-shapes",_388.checked?_388.value:"false");
}
if(_374){
var _389=_374.getValue();
var _390=_389=="elliptic"||_389=="elliptic_3d";
var _391=_389=="plain_3d"||_389=="elliptic_3d";
t.setValue("pie-3d",_391?"true":"false");
t.setValue("pie-elliptic",_390?"true":"false");
}
};
win.addButton(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"Okay"),_387);
win.addButton(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"Close"));
win.setCloseHandler(function(win){
win.dispose();
t.modalBlock(false);
});
this.modalBlock(true);
win.open(this.html,y,x);
return win;
};
Jacuba.Chart.Interface.prototype.getValue=function(name){
if(this.fields[name]){
return this.fields[name].getValue(name);
}else{
return this.criteria.get(name);
}
};
Jacuba.Chart.Interface.prototype.setValue=function(name,_393){
Jacuba.stackTracer.push("Jacuba.Chart.Interface.prototype.setValue");
if(this.fields[name]){
this.fields[name].setValue(_393);
}else{
this.criteria.set(name,_393);
}
Jacuba.stackTracer.pop("Jacuba.Chart.Interface.prototype.setValue");
};
Jacuba.Chart.Interface.prototype.insertSettingsElement=function(){
var _394=Jacuba.Chart.Util.getId("font-color");
var _395=Jacuba.Chart.Util.getId("font-family");
var _396=Jacuba.Chart.Util.getId("font-style");
var _397=Jacuba.Chart.Util.getId("text-size");
var _398=Jacuba.Chart.Util.getId("background-color");
var _399=Jacuba.Chart.Util.getId("offset");
var _400=Jacuba.Chart.Util.getId("length");
var _401=Jacuba.Chart.Util.getId("width");
var _402=Jacuba.Chart.Util.getId("height");
var _403=Jacuba.Chart.Util.getId("theme");
var _404=Jacuba.Chart.Util.getId("theme-mod");
var _405=null;
var _406=Jacuba.Chart.Util.getId("xaxis-label");
var _407=null;
var _408=Jacuba.Chart.Util.getId("yaxis-label");
var _409=Jacuba.Chart.Util.getId("help-pane");
var _410=Jacuba.Chart.Util.getId("help-title");
var _411=Jacuba.Chart.Util.getId("help-content");
var _412=Jacuba.Chart.Util.getId("adv-content");
var _413=Jacuba.Chart.Util.getId("adv-title-place");
var _414=Jacuba.Chart.Util.getId("adv-type-place");
var _415=Jacuba.Chart.Util.getId("adv-legend-place");
var _416=Jacuba.Chart.Util.getId("bar_options");
var _417=Jacuba.Chart.Util.getId("line_options");
var _418=Jacuba.Chart.Util.getId("area_options");
var _419=Jacuba.Chart.Util.getId("pie_options");
var _420=Jacuba.Chart.Util.getId("plain");
var _421=Jacuba.Chart.Util.getId("plain3d");
var _422=Jacuba.Chart.Util.getId("stacked");
var _423=Jacuba.Chart.Util.getId("stecked3d");
var _424=Jacuba.Chart.Util.getId("overlapped");
var _425=Jacuba.Chart.Util.getId("point_shapes");
var _426=Jacuba.Chart.Util.getId("pie3d");
var _427=Jacuba.Chart.Util.getId("pie_elliptic");
var _428=Jacuba.Chart.Util.getId("orientation-place");
var _429=Jacuba.Chart.Util.getId("orientation");
var _430=Jacuba.Chart.Util.getId("chart-type");
var _431=Jacuba.Chart.Util.getId("pie-plain");
var _432=Jacuba.Chart.Util.getId("pie-3d");
var _427=Jacuba.Chart.Util.getId("pie-elliptic");
var _433=Jacuba.Chart.Util.getId("pie-elliptic-3d");
var _434="<DIV id='"+_412+"'>";
if(this.criteria.get("may-set-advanced-general")!="false"){
_434+="<TABLE cellpadding='0' cellspacing='0' style='width: 100%' class='fields'><TBODY id='"+this.advanced_general_id+"'>";
_434+="<TR><TD style='width: 0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("Width")+"</TD><TD style='width: 100%' class='value'><INPUT id='"+_401+"' type='TEXT' name='width' class='number'> px</TD></TR>";
_434+="<TR><TD style='width: 0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("Height")+"</TD><TD style='width: 100%' class='value'><INPUT id='"+_402+"' type='TEXT' name='height' class='number'> px</TD></TR>";
if(this.criteria.get("may-set-theme")!="false"){
_434+="<TR><TD style='width: 0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("Theme")+"</NOBR></TD><TD style='width: 100%' class='value'><SELECT id='"+_403+"'></SELECT><SPAN id='"+_404+"'></SPAN></TD></TR>";
}
_434+="<TR><TD style='width: 0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("Background_color")+"</NOBR></TD><TD style='width: 100%' class='value'><DIV id='"+_398+"' style='width: 1em;'></DIV></TD></TR>";
_434+="</TBODY></TABLE>";
}
if(this.criteria.get("may-set-advanced-chart-type")!="false"){
_434+="<TABLE cellpadding='0' cellspacing='0' style='width: 100%; display: none' class='fields'><TBODY id='"+this.advanced_type_id+"'>";
_434+="<TR><TD style='width: 0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("Chart_Type")+"</NOBR></TD><TD style='width: 100%' id='"+_414+"' class='value'><SELECT id='"+_430+"'>";
if(this.criteria.get("may-set-chart-type-to-bar")!="false"){
_434+="<OPTION value='bar'>"+Jacuba.Chart.Util.getText("Bar")+"</OPTION>";
}
if(this.criteria.get("may-set-chart-type-to-line")!="false"){
_434+="<OPTION value='line'>"+Jacuba.Chart.Util.getText("Line")+"</OPTION>";
}
if(this.criteria.get("may-set-chart-type-to-area")!="false"){
_434+="<OPTION value='area'>"+Jacuba.Chart.Util.getText("Area")+"</OPTION>";
}
if(this.criteria.get("may-set-chart-type-to-pie")!="false"){
_434+="<OPTION value='pie'>"+Jacuba.Chart.Util.getText("Pie")+"</OPTION>";
}
_434+="</SELECT></TD></TR>";
_434+="<TR id='"+_428+"'><TD style='width: 0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("Orientation")+"</NOBR></TD><TD style='width: 100%' class='value'>";
_434+="<SELECT name='orientation' id='"+_429+"'>";
_434+="<OPTION value='normal'>"+Jacuba.Chart.Util.getText("Normal")+"</OPTION>";
_434+="<OPTION value='reverse'>"+Jacuba.Chart.Util.getText("Reverse")+"</OPTION>";
_434+="</SELECT>";
_434+="</TD></TR>";
_434+="<TR id=\""+_416+"\"><TD style='width: 0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("Bar_style")+"</NOBR></TD><TD style='width: 100%' class='value'>";
var _435=new Array();
if(this.criteria.get("may-set-bar-style-to-plain")!="false"){
var str="<a href='javascript:void(0)' title=\""+Jacuba.Chart.Util.getText("Plain")+"\"><img id='"+_420+"' border='0' align='absmiddle'></a> "+Jacuba.Chart.Util.getText("Plain");
_435[_435.length]=str;
}
if(this.criteria.get("may-set-bar-style-to-plain_3d")!="false"){
var str="<a href='javascript:void(0)' title=\""+Jacuba.Chart.Util.getText("Plain_3D")+"\"><img id='"+_421+"' border='0' align='absmiddle'></a> "+Jacuba.Chart.Util.getText("Plain_3D");
_435[_435.length]=str;
}
if(this.criteria.get("may-set-bar-style-to-stacked")!="false"){
var str="<a href='javascript:void(0)' title=\""+Jacuba.Chart.Util.getText("Stacked")+"\"><img id='"+_422+"' border='0' align='absmiddle'></a> "+Jacuba.Chart.Util.getText("Stacked");
_435[_435.length]=str;
}
if(this.criteria.get("may-set-bar-style-to-stacked_3d")!="false"){
var str="<a href='javascript:void(0)' title=\""+Jacuba.Chart.Util.getText("Stacked_3D")+"\"><img id='"+_423+"' border='0' align='absmiddle'></a> "+Jacuba.Chart.Util.getText("Stacked_3D");
_435[_435.length]=str;
}
if(this.criteria.get("may-set-bar-style-to-overlapped")!="false"){
var str="<a href='javascript:void(0)' title=\""+Jacuba.Chart.Util.getText("Overlapped")+"\"><img id='"+_424+"' border='0' align='absmiddle'></a> "+Jacuba.Chart.Util.getText("Overlapped");
_435[_435.length]=str;
}
if(_435.length>0){
var _436=3;
_434+="<TABLE border=\"0\"><TBODY>";
for(var i=0;i<_435.length;i++){
if(i%_436==0){
if(i!=0){
_434+="</TR>";
}
_434+="<TR>";
}
_434+="<TD style='width: 30%'>"+_435[i]+"</TD>";
}
_434+="</TR>";
_434+="</TBODY></TABLE>";
}
_434+="</TD></TR>";
_434+="<TR id=\""+_417+"\"><TD colspan='2' class='value'>";
_434+="<LABEL for=\""+_425+"\"><INPUT id='"+_425+"' type='CHECKBOX' name='line-draw-shapes' value='true'> "+Jacuba.Chart.Util.getText("Point_shapes")+"</LABEL>";
_434+="</TD></TR>";
_434+="<TR id=\""+_418+"\"><TD style='width: 0%' class='label'></TD><TD style='width: 100%' class='value'></TD></TR>";
_434+="<TR id=\""+_419+"\"><TD style='width: 0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("Pie_style")+"</NOBR></TD><TD style='width: 100%' class='value'>";
_435.length=0;
var str;
str="<a href=\"javascript:void(0)\" title=\""+Jacuba.Chart.Util.getText("Pie_plain")+"\"><img id='"+_431+"' border='0' align='absmiddle'></a> "+Jacuba.Chart.Util.getText("Pie_plain");
_435[_435.length]=str;
if(this.criteria.get("may-set-pie-3d")!="false"){
str="<a href=\"javascript:void(0)\" title=\""+Jacuba.Chart.Util.getText("ThreeD")+"\"><img id='"+_432+"' border='0' align='absmiddle'></a> "+Jacuba.Chart.Util.getText("ThreeD");
_435[_435.length]=str;
}
if(this.criteria.get("may-set-pie-elliptic")!="false"){
str="<a href=\"javascript:void(0)\" title=\""+Jacuba.Chart.Util.getText("Elliptic")+"\"><img id='"+_427+"' border='0' align='absmiddle'></a> "+Jacuba.Chart.Util.getText("Elliptic");
_435[_435.length]=str;
}
if(this.criteria.get("may-set-pie-elliptic")!="false"&&this.criteria.get("may-set-pie-3d")!="false"){
str="<a href=\"javascript:void(0)\" title=\""+Jacuba.Chart.Util.getText("Elliptic3d")+"\"><img id='"+_433+"' border='0' align='absmiddle'></a> "+Jacuba.Chart.Util.getText("Elliptic3d");
_435[_435.length]=str;
}
if(_435.length>0){
var _436=2;
_434+="<TABLE border=\"0\"><TBODY>";
for(var i=0;i<_435.length;i++){
if(i%_436==0){
if(i!=0){
_434+="</TR>";
}
_434+="<TR>";
}
_434+="<TD style='width: 45%'>"+_435[i]+"</TD>";
}
_434+="</TR>";
_434+="</TBODY></TABLE>";
}
_434+="</TD></TR>";
_434+="</TBODY></TABLE>";
}
if(this.criteria.get("may-set-advanced-title")!="false"){
_434+="<TABLE cellpadding='0' cellspacing='0' style='width: 100%; display: none' class='fields'><TBODY id='"+this.advanced_title_id+"'>";
_434+="<TR><TD style='width: 0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("Title")+"</NOBR></TD><TD style='width: 100%' id='"+_413+"'></TD></TR>";
_434+="</TBODY></TABLE>";
}
if(this.criteria.get("may-set-advanced-legend")!="false"){
_434+="<TABLE cellpadding='0' cellspacing='0' style='width: 100%; display: none' class='fields'><TBODY id='"+this.advanced_legend_id+"'>";
_434+="<TR><TD style='0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("Show_legend")+"</NOBR></TD><TD style='width: 100%' id='"+_415+"'></TD></TR>";
_434+="</TBODY></TABLE>";
}
if(this.criteria.get("may-set-advanced-axes")!="label"){
_434+="<TABLE cellpadding='0' cellspacing='0' style='width: 100%; display: none' class='fields'><TBODY id='"+this.advanced_label_id+"'>";
_434+="<TR><TD style='width: 0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("Offset")+"</NOBR></TD><TD style='width: 100%'><INPUT id='"+_399+"' type='TEXT' name='offset' class='value'></TD></TR>";
_434+="<TR><TD style='width: 0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("Length")+"</NOBR></TD><TD style='width: 100%'><INPUT id='"+_400+"' type='TEXT' name='length' class='value'></TD></TR>";
var _437=this.criteria.get("plot")=="columns"?"rows-label":"columns-label";
_405=this.criteria.get("orientation")=="reverse"?"values-label":_437;
_407=this.criteria.get("orientation")=="reverse"?_437:"values-label";
_434+="<TR><TD style='width: 0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("X_Axis")+"</NOBR></TD><TD style='width: 100%'><INPUT id='"+_406+"' type='TEXT' name='"+_405+"' style='width: 100%'></TD></TR>";
_434+="<TR><TD style='width: 0%' class='label'><NOBR>"+Jacuba.Chart.Util.getText("Y_Axis")+"</NOBR></TD><TD style='width: 100%'><INPUT id='"+_408+"' type='TEXT' name='"+_407+"' style='width: 100%'></TD></TR>";
_434+="</TBODY></TABLE>";
}
var _438=Jacuba.Chart.Util.getId("help-body");
_434+="<DIV id='"+_409+"' style='display: none' class='help-pane'><DIV class='heading'>"+Jacuba.Chart.Util.getText("quick_help")+"</DIV><DIV id=\""+_438+"\"><DIV class='title'><SPAN id='"+_410+"'></SPAN>:</DIV><DIV id='"+_411+"'></DIV></DIV><DIV>";
_434+="</DIV>";
var elem=new Jacuba.Chart.Interface.Element();
elem.setInnerHTML(_434);
elem.html.style.height="100%";
elem.html.className="row2";
elem.html.style.display="none";
elem.td.className="field-area";
elem.td.style.verticalAlign="top";
this.addElement(elem);
Jacuba.Chart.ImageManager.setClassName(document.getElementById(_438),"body");
var _439=new Array(_420,_421,_422,_423,_424,_431,_432,_427,_433);
var clss=new Array("bar-plain","bar-plain-3d","bar-stacked","bar-stacked-3d","bar-overlapped","pie-plain","pie-plain-3d","pie-elliptic","pie-elliptic-3d");
var _441=new Object();
_441["border"]="0";
_441["align"]="absmiddle";
for(var x=0;x<_439.length;x++){
var _442=document.getElementById(_439[x]);
if(_442){
Jacuba.Chart.ImageManager.setSrc(_442,Jacuba.Chart.TRANSP_IMG);
Jacuba.Chart.ImageManager.setClassName(_442,clss[x]);
}
}
this.selected_advanced_area=document.getElementById(this.adv_selected_area_id);
this.selected_advanced_area.parentNode.style.display="";
this.adv_content_div=document.getElementById(_412);
if(this.criteria.get("may-set-advanced-general")!="false"){
var tmp=document.getElementById(_398);
var val=this.criteria.get("background-color");
if(val==null||val.length==0){
val="#FFFFFF";
}
var stub=Jacuba.Chart.Interface.FillSelector.createStub(val,"1em","1em");
tmp.appendChild(stub);
this.fields["background-color"]=new Jacuba.Chart.Interface.FillSelector(stub,this);
this.fields["background-color"].setSolid(true);
var t=this;
stub.onfocus=function(){
t.showHelp("Background_color","Background_color_help");
t.input_focused=true;
};
stub.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
var _444=document.getElementById(_401);
if(!this.fields["width"]){
this.fields["width"]=new Jacuba.Chart.Interface.Field(_444);
}else{
this.fields["width"].duplicateElement(document.getElementById(_444));
}
t=this;
_444.onfocus=function(){
t.showHelp("Width","width_help");
t.input_focused=true;
};
_444.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
var _445=document.getElementById(_402);
if(!this.fields["height"]){
this.fields["height"]=new Jacuba.Chart.Interface.Field(_445);
}else{
this.fields["width"].duplicateElement(document.getElementById(_445));
}
t=this;
_445.onfocus=function(){
t.showHelp("Height","height_help");
t.input_focused=true;
};
_445.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
if(this.criteria.get("may-set-theme")!="false"){
var _446=document.getElementById(_403);
if(!this.fields["theme"]){
this.fields["theme"]=new Jacuba.Chart.Interface.Field(_446);
var t=this;
var _447=new Object();
_447.fieldChanged=function(){
t.themeSelected();
};
this.fields["theme"].addListener(_447);
}else{
this.fields["theme"].duplicateElement(_446);
}
var _448=document.getElementById(_404);
if(!this.theme_mod_elems){
this.theme_mod_elems=new Array();
}
this.theme_mod_elems[this.theme_mod_elems.length]=_448;
this.populateThemeSelection(_446);
t=this;
_446.onfocus=function(){
t.showHelp("Theme","theme_help");
t.input_focused=true;
};
_446.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
}
this.installTextFieldSection("",this.general_link_id,this.advanced_general_id);
this.installAdvancedTabLink("general",this.general_link_id,this.advanced_general_id);
}
if(this.criteria.get("may-set-advanced-chart-type")!="false"){
var _449=document.getElementById(_430);
if(!this.fields["chart-type"]){
this.fields["chart-type"]=new Jacuba.Chart.Interface.Field(_449);
if(this.criteria.get("chart-type")){
this.fields["chart-type"].setValue(this.criteria.get("chart-type"));
}
}else{
this.fields["chart-type"].duplicateElement(_449);
}
var t=this;
_449.onfocus=function(){
t.showHelp("Chart_Type","chart_type_help");
t.input_focused=true;
};
_449.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
var _450=document.getElementById(_429);
this.fields["orientation"]=new Jacuba.Chart.Interface.Field(_450);
_450.onfocus=function(){
t.showHelp("Orientation","orientation_help");
t.input_focused=true;
};
_450.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
var _451=document.getElementById(_425);
this.fields["line-draw-shapes"]=new Jacuba.Chart.Interface.Field(_451);
_451.onfocus=function(){
t.showHelp("Point_shapes","Point_shapes_help");
t.input_focused=true;
};
_451.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
this.type_panels=new Object();
this.type_panels["bar"]=document.getElementById(_416);
this.type_panels["line"]=document.getElementById(_417);
this.type_panels["area"]=document.getElementById(_418);
this.type_panels["pie"]=document.getElementById(_419);
var _452=new Jacuba.Chart.Util.RadioGroup();
var _453=document.getElementById(_420);
if(_453){
var td=_453.parentNode.parentNode;
td.className="unselected-bar-style";
_452.addRadio(new Jacuba.Chart.Util.Radio("plain",td,"selected-bar-style"));
}
var _454=document.getElementById(_421);
if(_454){
var td=_454.parentNode.parentNode;
td.className="unselected-bar-style";
_452.addRadio(new Jacuba.Chart.Util.Radio("plain_3d",td,"selected-bar-style"));
}
var _455=document.getElementById(_422);
if(_455){
var td=_455.parentNode.parentNode;
td.className="unselected-bar-style";
_452.addRadio(new Jacuba.Chart.Util.Radio("stacked",td,"selected-bar-style"));
}
var _456=document.getElementById(_423);
if(_456){
var td=_456.parentNode.parentNode;
td.className="unselected-bar-style";
_452.addRadio(new Jacuba.Chart.Util.Radio("stacked_3d",td,"selected-bar-style"));
}
var _457=document.getElementById(_424);
if(_457){
var td=_457.parentNode.parentNode;
td.className="unselected-bar-style";
_452.addRadio(new Jacuba.Chart.Util.Radio("overlapped",td,"selected-bar-style"));
}
_452.setValue(this.getValue("bar-style"));
this.fields["bar-style"]=_452;
var _458=new Jacuba.Chart.Util.RadioGroup();
var _459=document.getElementById(_431);
if(_459){
var td=_459.parentNode.parentNode;
td.className="unselected-bar-style";
_458.addRadio(new Jacuba.Chart.Util.Radio("plain",td,"selected-bar-style"));
}
var _460=document.getElementById(_432);
if(_460){
var td=_460.parentNode.parentNode;
td.className="unselected-bar-style";
_458.addRadio(new Jacuba.Chart.Util.Radio("plain_3d",td,"selected-bar-style"));
}
var _461=document.getElementById(_427);
if(_461){
var td=_461.parentNode.parentNode;
td.className="unselected-bar-style";
_458.addRadio(new Jacuba.Chart.Util.Radio("elliptic",td,"selected-bar-style"));
}
var _462=document.getElementById(_433);
if(_462){
var td=_462.parentNode.parentNode;
td.className="unselected-bar-style";
_458.addRadio(new Jacuba.Chart.Util.Radio("elliptic_3d",td,"selected-bar-style"));
}
var _463=this.getValue("pie-3d");
var _464=this.getValue("pie-elliptic");
var val;
if(_463=="true"&&_464=="true"){
val="elliptic_3d";
}else{
if(_463=="true"){
val="plain_3d";
}else{
if(_464=="true"){
val="elliptic";
}else{
val="plain";
}
}
}
_458.setValue(val);
var _447=new Object();
var t=this;
_447.fieldChanged=function(){
var _465=_458.getValue();
var _466=_465=="elliptic"||_465=="elliptic_3d";
var _467=_465=="plain_3d"||_465=="elliptic_3d";
t.setValue("pie-3d",_467?"true":"false");
t.setValue("pie-elliptic",_466?"true":"false");
};
_458.addListener(_447);
this.selected_chart_type=this.criteria.get("chart-type");
for(var x in this.type_panels){
if(x!=this.selected_chart_type){
this.type_panels[x].style.display="none";
}
}
var _468=this.fields["chart-type"];
var _447=new Object();
var t=this;
_447.fieldChanged=function(){
t.chartTypeChanged();
var _469=document.getElementById(_428);
if(t.fields["chart-type"].getValue()=="pie"){
_469.style.display="none";
}else{
_469.style.display="";
}
};
_468.addListener(_447);
this.installAdvancedTabLink("chart-type",this.type_link_id,this.advanced_type_id,null);
}
if(this.criteria.get("may-set-advanced-title")!="false"){
tmp=document.getElementById(_413);
var _449;
if(this.fields["title"]){
_449=this.fields["title"].duplicateElement();
}else{
_449=document.createElement("INPUT");
_449.type="TEXT";
this.fields["title"]=new Jacuba.Chart.Interface.Field(_449);
if(this.criteria.get("title")){
this.fields["title"].setValue(this.criteria.get("title"));
}
}
_449.style.width="100%";
tmp.appendChild(_449);
var t=this;
_449.onfocus=function(){
t.showHelp("Title","title_help");
t.input_focused=true;
};
_449.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
_449.onkeyup=function(){
t.fields["title"].setValue(_449.value);
};
this.installTextFieldSection("title-",this.title_link_id,this.advanced_title_id,this.fields["title"]);
this.installAdvancedTabLink("title",this.title_link_id,this.advanced_title_id,_449);
}
if(this.criteria.get("may-set-advanced-legend")!="false"){
tmp=document.getElementById(_415);
var _470=document.createElement("INPUT");
_470.type="CHECKBOX";
if(!this.fields["show-legend"]){
this.fields["show-legend"]=new Jacuba.Chart.Interface.Field(_470);
if(this.criteria.get("show-legend")){
this.fields["show-legend"].setValue(this.criteria.get("show-legend"));
}
}else{
this.fields["show-legend"].duplicateElement(_470);
}
tmp.appendChild(_470);
var t=this;
_470.onfocus=function(){
t.showHelp("Show_legend","show_legend_help");
t.input_focused=true;
};
_470.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
this.installTextFieldSection("legend-",this.legend_link_id,this.advanced_legend_id,this.fields["show-legend"]);
this.installAdvancedTabLink("legend",this.legend_link_id,this.advanced_legend_id);
}
if(this.criteria.get("may-set-advanced-axes")!="false"){
tmp=document.getElementById(_399);
val=this.criteria.get("start-value");
if(val!=null&&val.length!=0){
tmp.value=val;
}
this.fields["start-value"]=new Jacuba.Chart.Interface.Field(tmp);
t=this;
tmp.onfocus=function(){
t.showHelp("Offset","offset_help");
t.input_focused=true;
};
tmp.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
tmp=document.getElementById(_400);
val=this.criteria.get("end-value");
if(val!=null&&val.length!=0){
tmp.value=val;
}
this.fields["end-value"]=new Jacuba.Chart.Interface.Field(tmp);
tmp.onfocus=function(){
t.showHelp("Length","length_help");
t.input_focused=true;
};
tmp.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
tmp=document.getElementById(_406);
val=this.criteria.get(_405);
if(val!=null&&val.length!=0){
tmp.value=val;
}
this.fields[_405]=new Jacuba.Chart.Interface.Field(tmp);
var t=this;
tmp.onfocus=function(){
t.showHelp("X_Axis","xaxis_help");
t.input_focused=true;
};
tmp.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
var _471=tmp;
tmp=document.getElementById(_408);
val=this.criteria.get(_407);
if(val!=null&&val.length!=0){
tmp.value=val;
}
this.fields[_407]=new Jacuba.Chart.Interface.Field(tmp);
tmp.onfocus=function(){
t.showHelp("Y_Axis","yaxis_help");
t.input_focused=true;
};
tmp.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
this.installTextFieldSection("label-",this.label_link_id,this.advanced_label_id);
this.installAdvancedTabLink("axes",this.label_link_id,this.advanced_label_id,_471);
}
var _472=document.getElementById(_409);
var _473=document.getElementById(_410);
var _474=document.getElementById(_411);
this.setupAdvancedHelpPane(_472,_473,_474);
return elem;
};
Jacuba.Chart.Interface.prototype.insertSettingsGenerateElement=function(){
var _475=Jacuba.Chart.Util.getId("adv-generate");
var _476="<DIV class='advanced-generate'><INPUT id='"+_475+"' type='BUTTON' value=\""+Jacuba.Chart.Util.getText("Generate")+"\"></DIV>";
var elem=new Jacuba.Chart.Interface.Element();
elem.setInnerHTML(_476);
elem.html.style.height="0%";
elem.html.className="row3";
elem.html.style.display="none";
this.addElement(elem);
var _477=document.getElementById(_475);
var t=this;
_477.onclick=function(){
t.chart.generate();
};
this.registerInputElement(_477);
return elem;
};
Jacuba.Chart.Interface.prototype.installChartArea=function(){
var _478=Jacuba.Chart.Util.getId("chart-area");
var html="<DIV id=\""+_478+"\" class=\"chart-area\" style=\"width: 100%; height: 100%; overflow: auto;\"></DIV>";
var elem=new Jacuba.Chart.Interface.Element();
elem.setInnerHTML(html);
elem.html.style.height="100%";
elem.html.style.display="none";
elem.td.style.padding="0";
this.addElement(elem);
this.chart_area=document.getElementById(_478);
if(Jacuba.BROWSER_NAME!="IE"){
this.chart_area.style.position="relative";
}
return elem;
};
Jacuba.Chart.Interface.prototype.installJacubaBar=function(){
var _479=document.createElement("TABLE");
var _480=document.createElement("TBODY");
_479.appendChild(_480);
_479.cellPadding="0";
_479.cellSpacing="0";
_479.border="0";
_479.style.width="100%";
_479.className="jacuba-bar";
var tr=document.createElement("TR");
_480.appendChild(tr);
td=document.createElement("TD");
td.style.width="0%";
td.style.padding="1px";
td.innerHTML="<A href='http://www.jacuba.com' target='_blank' style='padding: 0px; margin: 0px'><IMG border='0' src=\""+Jacuba.Chart.JACUBA_LOGO_IMG+"\" width='47' height='18' alt='Jacuba' style='margin: 0px; padding: 0px; display: block' hspace='0' vspace='0'></A>";
tr.appendChild(td);
td=document.createElement("TD");
td.style.width="100%";
td.style.fontSize="10pt";
td.style.textAlign="right";
tr.appendChild(td);
var _481=Jacuba.Chart.Util.getId("settings-link");
var _482=Jacuba.Chart.Util.getId("adv-settings-link");
var _483=Jacuba.Chart.Util.getId("chart-link");
var _484=Jacuba.Chart.Util.getId("save-link");
var _485=Jacuba.Chart.Util.getId("print-link");
var _486=Jacuba.Chart.Util.getId("help-link");
var html="";
html+="<UL style='list-style: none; margin: 0;'>";
html+="<LI style='display: inline; border-right: 1px solid black; padding: 0em 0.25em 0em 0.25em'><A id='"+_481+"' href='#'></A></LI>";
if(this.criteria.get("may-set-advanced")!="false"){
html+="<LI style='display: inline; border-right: 1px solid black; padding: 0em 0.25em 0em 0.25em'><A id='"+_482+"' href='#'></A></LI>";
}
html+="<LI style='display: inline; border-right: 1px solid black; padding: 0em 0.25em 0em 0.25em'><A id='"+_483+"' href='#'></A></LI>";
if(this.criteria.get("may-save")!="false"){
html+="<LI style='display: inline; border-right: 1px solid black; padding: 0em 0.25em 0em 0.25em'><A id='"+_484+"' href='#'></A></LI>";
}
if(this.criteria.get("may-print")!="false"){
html+="<LI style='display: inline; border-right: 1px solid black; padding: 0em 0.25em 0em 0.25em'><A id='"+_485+"' href='#'></A></LI>";
}
html+="<LI style='display: inline; padding: 0em 0.25em 0em 0.25em'><A id='"+_486+"' href=\"javascript:Jacuba.Chart.Util.openHelp();\"></A></LI>";
html+="</UL>";
td.innerHTML=html;
var elem=new Jacuba.Chart.Interface.Element();
elem.setContentNode(_479);
elem.html.style.height="0%";
elem.html.style.display="none";
elem.td.style.padding="0";
this.addElement(elem);
var t=this;
var a=document.getElementById(_481);
Jacuba.TextManager.setElementText(a,Jacuba.Chart.LANGUAGE_MODULE,"Settings");
a.onclick=function(){
if(!t.modal_block){
t.updateCriteria();
var msg=Jacuba.Chart.Util.validateAdvancedCriteria(t.criteria);
if(msg!=null){
t.alert(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"form_error"),msg);
return false;
}
t.chart.showInterface();
t.showCard("main");
}
return false;
};
this.registerAnchorElement(a);
a=document.getElementById(_482);
if(a!=null){
Jacuba.TextManager.setElementText(a,Jacuba.Chart.LANGUAGE_MODULE,"Advanced");
a.onclick=function(){
if(!t.modal_block){
t.updateCriteria();
var msg=Jacuba.Chart.Util.validateAdvancedCriteria(t.criteria);
if(msg!=null){
t.alert(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"form_error"),msg);
return false;
}
t.chart.showInterface();
t.showCard("advanced");
}
return false;
};
this.registerAnchorElement(a);
}
a=document.getElementById(_483);
Jacuba.TextManager.setElementText(a,Jacuba.Chart.LANGUAGE_MODULE,"Chart");
a.onclick=function(){
if(!t.modal_block){
t.updateCriteria();
var msg=Jacuba.Chart.Util.validateAdvancedCriteria(t.criteria);
if(msg!=null){
t.alert(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"form_error"),msg);
return false;
}
t.chart.generate();
}
return false;
};
this.registerAnchorElement(a);
a=document.getElementById(_485);
if(a!=null){
Jacuba.TextManager.setElementText(a,Jacuba.Chart.LANGUAGE_MODULE,"Print");
a.onclick=function(){
if(!t.modal_block){
t.updateCriteria();
var msg=Jacuba.Chart.Util.validateAdvancedCriteria(t.criteria);
if(msg!=null){
t.alert(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"form_error"),msg);
return false;
}
t.chart.generate(t.chart.print);
}
return false;
};
this.registerAnchorElement(a);
}
a=document.getElementById(_484);
if(a!=null){
Jacuba.TextManager.setElementText(a,Jacuba.Chart.LANGUAGE_MODULE,"Save");
a.onclick=function(){
if(!t.modal_block){
t.updateCriteria();
var msg=Jacuba.Chart.Util.validateAdvancedCriteria(t.criteria);
if(msg!=null){
t.alert(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"form_error"),msg);
return false;
}
t.chart.generate(t.chart.save);
}
return false;
};
this.registerAnchorElement(a);
}
a=document.getElementById(_486);
Jacuba.TextManager.setElementText(a,Jacuba.Chart.LANGUAGE_MODULE,"Help");
this.registerAnchorElement(a);
return elem;
};
Jacuba.Chart.Interface.prototype.populateFontSelection=function(_487,_488){
if(!Jacuba.Chart.FontManager.isLoaded()){
var t=this;
var fn=function(){
t.populateFontSelection(_487,_488);
};
Jacuba.Chart.FontManager.addOnloadFunction(fn);
Jacuba.Chart.FontManager.load();
}else{
var ids=Jacuba.Chart.FontManager.getFontIds();
var _490=null;
var tmp=this.criteria.get("fonts");
if(tmp){
_490=new Object();
var a=tmp.split(",");
for(var x=0;x<a.length;x++){
_490[Jacuba.Chart.Util.trim(a[x])]=true;
}
}
_487.options[_487.options.length]=new Option("");
var name,option;
for(var x=0;x<ids.length;x++){
if(_490==null||_490[ids[x]]){
name=Jacuba.Chart.FontManager.getFontName(ids[x]);
option=new Option(name,ids[x]);
_487.options[_487.options.length]=option;
}
}
if(_488){
_487.value=_488;
}
}
};
Jacuba.Chart.Interface.prototype.populateThemeSelection=function(_491){
if(!Jacuba.Chart.ThemeManager.isLoaded()){
var t=this;
var fn=function(){
t.populateThemeSelection(_491);
};
Jacuba.Chart.ThemeManager.addOnloadFunction(fn);
Jacuba.Chart.ThemeManager.load();
}else{
var ids=Jacuba.Chart.ThemeManager.getThemeIds();
var _492=null;
var tmp=this.criteria.get("themes");
if(tmp){
_492=new Object();
var a=tmp.split(",");
for(var x=0;x<a.length;x++){
_492[Jacuba.Chart.Util.trim(a[x])]=true;
}
}
var _493=this.criteria.get("theme")!=null;
var _494=Jacuba.Chart.Interface.hasStyleCriteria(this.chart.criteria);
var name,option;
if(_494||!_493){
name=Jacuba.Chart.Util.getText("Default");
option=new Option(name,"_default");
_491.options[_491.options.length]=option;
}
for(var x=0;x<ids.length;x++){
if(_492==null||_492[ids[x]]){
name=Jacuba.Chart.ThemeManager.getThemeName(ids[x]);
option=new Option(name,ids[x]);
_491.options[_491.options.length]=option;
}
}
var _495=this.criteria.get("theme");
if(_495==null){
_495="_default";
}
if(_495){
_491.value=_495;
}
}
};
Jacuba.Chart.Interface.prototype.themeSelected=function(){
var _496=this.fields["theme"];
var _497=_496!=null?_496.getValue():this.criteria.get("theme");
if(_497=="_default"){
this.selected_theme=this.default_theme;
}else{
this.selected_theme=_497==null||_497.length==0?null:Jacuba.Chart.ThemeManager.getTheme(_497);
}
this.applyTheme();
};
Jacuba.Chart.Interface.prototype.applyTheme=function(){
Jacuba.stackTracer.push("Jacuba.Chart.Interface.prototype.applyTheme");
if(this.theme_monitor){
this.theme_monitor.reset();
}
var _498=this.selected_theme;
if(_498==null){
return;
}
this.setReady("apply-theme",false);
if(!_498.isLoaded()){
var t=this;
var fn=function(){
t.applyTheme();
};
_498.addOnloadFunction(fn);
_498.load();
}else{
if(!this.isReady("table")){
var work="Jacuba.Chart.interfaces['"+this.id+"'].applyTheme()";
this.doWhenReady(work,"table");
}
var _499=_498.getProperties();
var _500=new Array();
for(var x in _499){
var _501=this.fields[x];
if(_501!=null){
_501.setValue(_499[x]);
}else{
if(x.indexOf("plot-color-")==0){
var _502=parseInt(x.substring(11));
_500[_502]=_499[x];
}else{
this.criteria.set(x,_499[x]);
}
}
if(x=="text-color"){
var a=new Array("title","legend","label");
for(var y=0;y<a.length;y++){
var key=a[y]+"-text-color";
if(!_499[key]){
_501=this.fields[key];
if(_501){
_501.setValue(_499[x]);
}else{
this.criteria.set(key,_499[x]);
}
}
}
}
}
if(_498.is_criteria){
for(var x=0;x<_500.length;x++){
var _503=_500[x];
if(_503){
this.table.setColor(x,_503);
}
}
}else{
this.table.recolor(_500);
}
this.monitorTheme();
this.setReady("apply-theme",true);
}
Jacuba.stackTracer.pop("Jacuba.Chart.Interface.prototype.applyTheme");
};
Jacuba.Chart.Interface.prototype.monitorTheme=function(){
if(this.theme_monitor){
this.theme_monitor.reset();
}
var _504=this.selected_theme;
if(_504==null){
return;
}
if(this.theme_monitor){
this.theme_monitor.forTheme(_504);
}else{
this.theme_monitor=new Jacuba.Chart.Interface.ThemeMonitor(this,_504);
var _505=this.theme_mod_elems;
if(_505){
var href="javascript:Jacuba.Chart.interfaces['"+this.id+"'].applyTheme();void(0)";
var _507=function(){
var _508=Jacuba.Chart.Util.getText("Modified");
var _509=Jacuba.Chart.Util.getText("Reset");
for(var x=0;x<_505.length;x++){
var _510=_505[x];
Jacuba.Chart.Util.clearNode(_510);
_510.appendChild(document.createTextNode(" "+_508+" "));
var _511=document.createElement("A");
_511.href=href;
_511.className="reset-theme";
_511.appendChild(document.createTextNode(_509));
_510.appendChild(_511);
}
};
var _512=function(){
for(var x=0;x<_505.length;x++){
Jacuba.Chart.Util.clearNode(_505[x]);
}
};
this.theme_monitor.setOnChangeFunction(_507);
this.theme_monitor.setOnResetFunction(_512);
}
}
};
Jacuba.Chart.Interface.prototype.applyCriteria=function(_513){
var _514=_513.props;
for(var x in _514){
var _515=this.fields[x];
if(_515!=null){
_515.setValue(_514[x]);
}else{
if(x.indexOf("plot-color-")==0){
var _516=parseInt(x.substring(11));
this.table.setColor(_516,_514[x]);
}
}
if(x=="text-color"){
var a=new Array("title","legend","label");
for(var y=0;y<a.length;y++){
var key=a[y]+"-text-color";
if(!_514[key]){
_515=this.fields[key];
if(_515){
_515.setValue(_514[x]);
}
}
}
}
}
};
Jacuba.Chart.Interface.prototype.isReady=function(part){
if(!part){
return !this.ready_status;
}else{
return !this.ready_status||!this.ready_status[part];
}
};
Jacuba.Chart.Interface.prototype.doWhenReady=function(work,part){
if(!work){
Jacuba.debug("No work supplied!");
return;
}
if(this.isReady(part)){
this.queueWork(work);
}else{
if(!this.pending_work){
this.pending_work=new Object();
}
var key=part!=null?part:"_global";
var a=this.pending_work[key];
if(a==null){
a=new Array();
this.pending_work[key]=a;
}
a[a.length]=work;
}
};
Jacuba.Chart.Interface.prototype.setReady=function(part,_518){
if(!_518&&!this.ready_status){
this.ready_status=new Object();
}
if(_518){
if(this.ready_status){
delete this.ready_status[part];
}
this.queueWorkForPart(part);
Jacuba.debug("Interface part \""+part+"\" now ready");
}else{
this.ready_status[part]=true;
Jacuba.debug("Interface part \""+part+"\" not ready");
}
if(this.ready_status){
var _519=false;
for(var x in this.ready_status){
_519=true;
break;
}
if(!_519){
this.queueWorkForPart(null);
delete this.ready_status;
Jacuba.debug("interface ready");
}
}
};
Jacuba.Chart.Interface.prototype.queueWorkForPart=function(part){
if(!this.pending_work){
return;
}
var key=part!=null?part:"_global";
var a=this.pending_work[key];
if(a){
for(var x=0;x<a.length;x++){
this.queueWork(a[x]);
}
}
delete this.pending_work[key];
};
Jacuba.Chart.Interface.prototype.queuePriorityWork=function(work){
this.chart.queuePriorityWork(work);
};
Jacuba.Chart.Interface.prototype.isQueued=function(work){
return this.chart.isQueued(work);
};
Jacuba.Chart.Interface.prototype.queueWork=function(work){
this.chart.queueWork(work);
};
Jacuba.Chart.Interface.prototype.hasWork=function(){
return this.chart.hasWork();
};
Jacuba.Chart.Interface.prototype.hasNonLoadingUpdateWork=function(){
if(!this.hasWork()){
return false;
}
var num=this.chart.workCount();
for(var x=0;x<num;x++){
var work=this.chart.getWork(x);
if(work.indexOf(".updateLoadingMessage()")==-1){
return true;
}
}
return false;
};
Jacuba.Chart.Interface.prototype.showLoadingMessage=function(){
if(this.loading_window==null){
this.loading_window=new Jacuba.Chart.Interface.Window(210);
this.loading_window.setContent(Jacuba.TextManager.getText("chart","loading_message"));
var top=(this.html.offsetHeight-this.loading_window.getHeight())/2;
var left=(this.html.offsetWidth-this.loading_window.getWidth())/2;
this.loading_window.open(this.html,top,left);
}
this.modalBlock(true);
};
Jacuba.Chart.Interface.prototype.hideLoadingMessage=function(){
if(this.loading_window!=null){
this.loading_window.close();
this.loading_window.dispose();
this.loading_window=null;
this.modalBlock(false);
}
};
Jacuba.Chart.Interface.prototype.updateLoadingMessage=function(){
var _523=false;
if(this.loading_window!=null){
if(!this.hasWork()){
this.hideLoadingMessage();
}else{
_523=true;
}
}else{
if(this.hasWork()){
this.showLoadingMessage();
_523=true;
}
}
if(_523){
var work="Jacuba.Chart.interfaces['"+this.id+"'].updateLoadingMessage()";
var _524=this.chart.work_queue.length>0?this.chart.work_queue.get(this.chart.work_queue.length-1):null;
if(work!=_524){
this.queueWork(work);
}
}
};
Jacuba.Chart.Interface.prototype.displayChart=function(img){
if(this.chart_image){
var _525=document.createElement("IMG");
Jacuba.Chart.ImageManager.setSrc(_525,img.src,true);
this.chart_image.parentNode.insertBefore(_525,this.chart_image);
this.chart_image.parentNode.removeChild(this.chart_image);
this.chart_image=_525;
this.chart_image.style.position="absolute";
}else{
this.chart_image=document.createElement("IMG");
Jacuba.Chart.ImageManager.setSrc(this.chart_image,img.src,true);
this.chart_image.style.position="absolute";
this.chart_area.appendChild(this.chart_image);
}
this.showCard("chart");
};
Jacuba.Chart.Interface.prototype.setupAdvancedHelpPane=function(_526,_527,_528){
this.adv_help_pane=_526;
this.adv_help_title=_527;
this.adv_help_content=_528;
};
Jacuba.Chart.Interface.prototype.showHelp=function(_529,_530){
if(this.modal_block){
return;
}
this.adv_help_pane.style.display="";
this.adv_help_title.innerHTML=Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,_529);
this.adv_help_content.innerHTML=Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,_530);
};
Jacuba.Chart.Interface.prototype.hideHelp=function(){
if(this.modal_block){
return;
}
this.adv_help_pane.style.display="none";
};
Jacuba.Chart.Interface.prototype.installTabGroup=function(_531,_532,elem){
if(!this.tab_groups){
this.tab_groups=new Object();
}
var _533=this.tab_groups[_531];
if(!_533){
_533=new Jacuba.Chart.Interface.TabGroup(_532);
this.tab_groups[_531]=_533;
}else{
_533.current_tab=_532;
}
if(elem){
var _534=Jacuba.Chart.Util.moveMethod(elem,"setVisible","superSetVisible");
elem.setVisible=function(_535){
this[_534](_535);
_533.setVisible(_535);
};
}
};
Jacuba.Chart.Interface.prototype.installTabElementLink=function(_536,_537,_538){
var link=document.getElementById(_536);
if(link==null){
alert("linkid: "+_536);
}
if(!this.tab_groups){
this.tab_groups=new Object();
}
var _540=this.tab_groups[_537];
if(!_540){
_540=new Jacuba.Chart.Interface.TabGroup(_536);
this.tab_groups[_537]=_540;
}
_540.addTab(_536,_538);
var t=this;
link.onclick=function(){
t.selectTab(_537,_536);
};
this.registerAnchorElement(link);
};
Jacuba.Chart.Interface.prototype.selectTab=function(_541,_542){
if(!this.tab_groups){
this.tab_groups=new Object();
}
var _543=this.tab_groups[_541];
_543.selectTab(_542);
};
Jacuba.Chart.Interface.prototype.installAdvancedTabLink=function(tab,_545,_546,_547){
var link=document.getElementById(_545);
if(link==null){
alert("linkid: "+_545);
}
var area=document.getElementById(_546);
var t=this;
link.onclick=function(){
if(t.selected_advanced_link==link){
return false;
}
return t.selectAdvancedTab(tab);
};
this.registerAnchorElement(link);
if(!this.advanced_tabs){
this.advanced_tabs=new Object();
}
this.advanced_tabs[tab]=new Object();
this.advanced_tabs[tab].link=link;
this.advanced_tabs[tab].area=area;
this.advanced_tabs[tab].def_input=_547;
};
Jacuba.Chart.Interface.prototype.selectAdvancedTab=function(tab){
if(!this.advanced_tabs){
Jacuba.debug("Advanced tabs not set up!");
return false;
}
var tab=this.advanced_tabs[tab];
if(!tab){
Jacuba.debug("No tab called: "+tab);
return false;
}
var link=tab.link;
if(this.selected_advanced_link==link){
return false;
}
var area=tab.area;
var _549=tab.def_input;
this.hideHelp();
this.updateCriteria();
var msg=Jacuba.Chart.Util.validateAdvancedCriteria(this.criteria);
if(msg!=null){
this.alert(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"form_error"),msg);
return false;
}
this.selected_advanced_link.className="deselected";
this.selected_advanced_link=link;
link.className="selected";
this.selected_advanced_area.parentNode.style.display="none";
this.selected_advanced_area=area;
area.parentNode.style.display="";
if(_549!=null){
_549.focus();
}
return false;
};
Jacuba.Chart.Interface.prototype.installTextFieldSection=function(_550,_551,_552,_553){
var tmp=document.getElementById(_552);
this.installTextFields(tmp,_550,_553);
};
Jacuba.Chart.Interface.prototype.installTextFields=function(_554,_555,_556){
if(_555==null){
_555="";
}
this.installCompactFontField(_554,_555,_556);
this.installFontColorField(_554,_555,_556);
this.installFontStyleField(_554,_555,_556);
};
Jacuba.Chart.Interface.prototype.installFontColorField=function(_557,_558,_559){
var _560=_558+"text-color";
var tr=document.createElement("TR");
_557.appendChild(tr);
var td=document.createElement("TD");
td.style.width="0%";
td.className="label";
tr.appendChild(td);
var nobr=document.createElement("NOBR");
td.appendChild(nobr);
Jacuba.TextManager.setElementText(nobr,Jacuba.Chart.LANGUAGE_MODULE,"Text_color");
td=document.createElement("TD");
td.style.width="100%";
tr.appendChild(td);
var div=document.createElement("DIV");
div.style.width="1em";
td.appendChild(div);
var val=this.criteria.get(_560);
if(_558!=""&&(val==null||val.length==0)){
val=this.criteria.get("text-color");
}
if(val==null||val.length==0){
val="#000000";
}
var stub=Jacuba.Chart.Interface.ColorSelector.createStub(val,"1em","1em");
div.appendChild(stub);
this.fields[_560]=new Jacuba.Chart.Interface.ColorSelector(stub,this);
var t=this;
stub.onfocus=function(){
t.showHelp("Text_color","Text_color_help");
t.input_focused=true;
};
stub.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
if(_559!=null){
_559.associateDependentField(this.fields[_560]);
}
};
Jacuba.Chart.Interface.prototype.installCompactFontField=function(_562,_563,_564){
var tr=document.createElement("TR");
_562.appendChild(tr);
var td=document.createElement("TD");
td.style.width="0%";
td.className="label";
tr.appendChild(td);
var nobr=document.createElement("NOBR");
td.appendChild(nobr);
Jacuba.TextManager.setElementText(nobr,Jacuba.Chart.LANGUAGE_MODULE,"Font");
td=document.createElement("TD");
td.style.width="100%";
tr.appendChild(td);
var _565=_563+"font-family";
this.insertFontFaceField(_565,_564,td,null);
td.appendChild(document.createTextNode(" "));
_565=_563+"text-size";
this.insertFontSizeField(_565,_564,false,td,null);
};
Jacuba.Chart.Interface.prototype.insertFontFaceField=function(_566,_567,_568,ref){
var _570=document.createElement("SELECT");
var t=this;
_570.onfocus=function(){
t.showHelp("Font","font_help");
t.input_focused=true;
};
_570.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
_570.name=_566;
if(!ref){
_568.appendChild(_570);
}else{
_568.insertBefore(_570,ref);
}
this.populateFontSelection(_570,this.criteria.get(_566));
var val=this.criteria.get(_566);
if(val!=null&&val.length!=0){
_570.value=val;
}
if(!this.fields[_566]){
this.fields[_566]=new Jacuba.Chart.Interface.Field(_570);
if(_567!=null){
_567.associateDependentField(this.fields[_566]);
}
}else{
this.fields[_566].duplicateElement(_570);
}
};
Jacuba.Chart.Interface.prototype.insertFontSizeField=function(_571,_572,_573,_574,ref){
var _575=document.createElement("INPUT");
_575.type="TEXT";
_575.name=_571;
_575.className="number";
var err;
if(_573){
err=document.createElement("SPAN");
}
var t=this;
_575.onfocus=function(){
t.showHelp("Text_size","text_size_help");
t.input_focused=true;
};
if(_573){
_575.onkeyup=function(){
var v=_575.value;
var msg=v.length!=0?Jacuba.Chart.Util.validateTextSize(v):null;
err.className=msg!=null?"error":"";
err.innerHTML=msg!=null?msg:"";
};
}
_575.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
if(!ref){
_574.appendChild(_575);
_574.appendChild(document.createTextNode(" pt "));
if(_573){
_574.appendChild(err);
}
}else{
_574.insertBefore(_575,ref);
_574.insertBefore(document.createTextNode(" pt "),ref);
if(_573){
_574.insertBefore(err,ref);
}
}
var val=this.criteria.get(_571);
if(val!=null&&val.length!=0){
_575.value=val;
}
if(!this.fields[_571]){
this.fields[_571]=new Jacuba.Chart.Interface.Field(_575);
if(_572!=null){
_572.associateDependentField(this.fields[_571]);
}
}else{
this.fields[_571].duplicateElement(_575);
}
};
Jacuba.Chart.Interface.prototype.installFontSizeField=function(_578,_579,_580){
var _581=_579+"text-size";
var tr=document.createElement("TR");
_578.appendChild(tr);
var td=document.createElement("TD");
td.style.width="0%";
td.className="label";
tr.appendChild(td);
var nobr=document.createElement("NOBR");
td.appendChild(nobr);
Jacuba.TextManager.setElementText(nobr,Jacuba.Chart.LANGUAGE_MODULE,"Text_size");
td=document.createElement("TD");
td.style.width="100%";
tr.appendChild(td);
var _582=document.createElement("INPUT");
_582.type="TEXT";
_582.name=_581;
_582.className="number";
var err=document.createElement("SPAN");
var t=this;
_582.onfocus=function(){
t.showHelp("Text_size","text_size_help");
t.input_focused=true;
};
_582.onkeyup=function(){
var v=_582.value;
var msg=v.length!=0?Jacuba.Chart.Util.validateTextSize(v):null;
err.className=msg!=null?"error":"";
err.innerHTML=msg!=null?msg:"";
};
_582.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
td.appendChild(_582);
td.appendChild(document.createTextNode(" pt "));
td.appendChild(err);
var val=this.criteria.get(_581);
if(val!=null&&val.length!=0){
_582.value=val;
}
this.fields[_581]=new Jacuba.Chart.Interface.Field(_582);
if(_580!=null){
_580.associateDependentField(this.fields[_581]);
}
};
Jacuba.Chart.Interface.prototype.installFontField=function(_583,_584,_585){
var _586=_584+"font-family";
var tr=document.createElement("TR");
_583.appendChild(tr);
var td=document.createElement("TD");
td.style.width="0%";
td.className="label";
tr.appendChild(td);
var nobr=document.createElement("NOBR");
td.appendChild(nobr);
Jacuba.TextManager.setElementText(nobr,Jacuba.Chart.LANGUAGE_MODULE,"Font");
td=document.createElement("TD");
td.style.width="100%";
tr.appendChild(td);
var _587=document.createElement("SELECT");
var t=this;
_587.onfocus=function(){
t.showHelp("Font","font_help");
t.input_focused=true;
};
_587.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
_587.name=_586;
td.appendChild(_587);
_587.options[0]=new Option("","");
_587.options[1]=new Option("","Arial");
Jacuba.TextManager.setOptionText(_587.options[1],Jacuba.Chart.LANGUAGE_MODULE,"Arial");
_587.options[2]=new Option("","Courier");
Jacuba.TextManager.setOptionText(_587.options[2],Jacuba.Chart.LANGUAGE_MODULE,"Courier");
_587.options[3]=new Option("","SansSerif");
Jacuba.TextManager.setOptionText(_587.options[3],Jacuba.Chart.LANGUAGE_MODULE,"SansSerif");
_587.options[4]=new Option("","Times New Roman");
Jacuba.TextManager.setOptionText(_587.options[4],Jacuba.Chart.LANGUAGE_MODULE,"Times_New_Roman");
_587.options[5]=new Option("","Verdana");
Jacuba.TextManager.setOptionText(_587.options[5],Jacuba.Chart.LANGUAGE_MODULE,"Verdana");
var val=this.criteria.get(_586);
if(val!=null&&val.length!=0){
_587.value=val;
}
this.fields[_586]=new Jacuba.Chart.Interface.Field(_587);
if(_585!=null){
_585.associateDependentField(this.fields[_586]);
}
};
Jacuba.Chart.Interface.prototype.installFontStyleField=function(_588,_589,_590){
var _591=_589+"font-style";
var tr=document.createElement("TR");
_588.appendChild(tr);
var td=document.createElement("TD");
td.style.width="0%";
td.className="label";
tr.appendChild(td);
var nobr=document.createElement("NOBR");
td.appendChild(nobr);
Jacuba.TextManager.setElementText(nobr,Jacuba.Chart.LANGUAGE_MODULE,"Font_style");
td=document.createElement("TD");
td.style.width="100%";
tr.appendChild(td);
var _592=document.createElement("SELECT");
var t=this;
_592.onfocus=function(){
t.showHelp("Font_style","font_style_help");
t.input_focused=true;
};
_592.onblur=function(){
t.hideHelp();
t.input_focused=false;
};
_592.name=_591;
td.appendChild(_592);
_592.options[0]=new Option("","");
_592.options[1]=new Option("","plain");
Jacuba.TextManager.setOptionText(_592.options[1],Jacuba.Chart.LANGUAGE_MODULE,"plain");
_592.options[2]=new Option("","italic");
Jacuba.TextManager.setOptionText(_592.options[2],Jacuba.Chart.LANGUAGE_MODULE,"italic");
_592.options[3]=new Option("","bold");
Jacuba.TextManager.setOptionText(_592.options[3],Jacuba.Chart.LANGUAGE_MODULE,"bold");
_592.options[4]=new Option("","bold-italic");
Jacuba.TextManager.setOptionText(_592.options[4],Jacuba.Chart.LANGUAGE_MODULE,"bold_italic");
var val=this.criteria.get(_591);
if(val!=null&&val.length!=0){
_592.value=val;
}
this.fields[_591]=new Jacuba.Chart.Interface.Field(_592);
if(_590!=null){
_590.associateDependentField(this.fields[_591]);
}
};
Jacuba.Chart.Interface.prototype.chartTypeChanged=function(){
if(this.selected_chart_type!=null){
this.type_panels[this.selected_chart_type].style.display="none";
}
this.selected_chart_type=this.fields["chart-type"].getValue();
this.type_panels[this.selected_chart_type].style.display="";
};
Jacuba.Chart.Interface.prototype.hide=function(){
this.html.style.display="none";
};
Jacuba.Chart.Interface.prototype.show=function(){
this.html.style.display="";
};
Jacuba.Chart.Interface.prototype.showCard=function(_593){
if(this.card==_593){
return;
}
if(this.card){
this.cards[this.card].setSelected(false);
}
this.card=_593;
var card=this.cards[_593];
card.setSelected(true);
if(_593=="advanced"){
var tabs=this.toolbar;
var _596=Jacuba.Chart.Util.getFirstNamedChild(tabs,"TBODY");
var tr=Jacuba.Chart.Util.getFirstNamedChild(_596,"TR");
var _597=0;
for(var curr=tr.firstChild;curr!=null;curr=curr.nextSibling){
if(curr.nodeName=="TD"){
var img=Jacuba.Chart.Util.getFirstNamedDescendent(curr,"IMG");
var el=img&&img.className=="charts-logo"?el:curr;
_597+=el.offsetWidth;
}
}
this.adv_content_div.style.width=_597+"px";
}
};
Jacuba.Chart.Interface.prototype.registerInputElement=function(elem){
this.inputs[this.inputs.length]=elem;
};
Jacuba.Chart.Interface.prototype.deregisterInputElement=function(elem){
var _599=0;
var tmp=new Array();
for(var x=0;x<this.inputs.length;x++){
if(this.inputs[x]!=elem){
tmp[_599]=this.inputs[x];
_599++;
}
}
this.inputs=tmp;
};
Jacuba.Chart.Interface.prototype.registerAnchorElement=function(elem){
this.anchors[this.anchors.length]=new Jacuba.Chart.Util.Anchor(elem);
};
Jacuba.Chart.Interface.prototype.deregisterAnchorElement=function(elem){
var _600=0;
var tmp=new Array();
for(var x=0;x<this.anchors.length;x++){
if(this.anchors[x].html!=elem){
tmp[_600]=this.anchors[x];
_600++;
}
}
this.anchors=tmp;
};
Jacuba.Chart.Interface.prototype.registerSelectbox=function(elem){
this.selectboxes[this.selectboxes.length]=elem;
};
Jacuba.Chart.Interface.prototype.deregisterSelectbox=function(elem){
var _601=0;
var tmp=new Array();
for(var x=0;x<this.selectboxes.length;x++){
if(this.selectboxes[x]!=elem){
tmp[_601]=this.selectboxes[x];
_601++;
}
}
this.selectboxes=tmp;
};
Jacuba.Chart.Interface.prototype.setInputsEnabled=function(b){
for(var x=0;x<this.inputs.length;x++){
this.inputs[x].disabled=!b;
}
for(var x in this.fields){
this.fields[x].setDisabled(!b);
}
};
Jacuba.Chart.Interface.prototype.modalBlock=function(b){
for(var x=0;x<this.inputs.length;x++){
this.inputs[x].disabled=b;
if(document.all&&this.inputs[x].type=="select-one"){
this.inputs[x].style.visibility=b?"hidden":"visible";
}
}
for(var x in this.fields){
this.fields[x].modalBlock(b);
}
for(var x=0;x<this.anchors.length;x++){
this.anchors[x].modalBlock(b);
}
for(var x=0;x<this.selectboxes.length;x++){
if(Jacuba.BROWSER_NAME=="IE"){
this.selectboxes[x].style.visibility=b?"hidden":"visible";
}else{
this.selectboxes[x].disabled=b;
}
}
this.table.modalBlock(b);
this.modal_block=b;
};
Jacuba.Chart.Interface.prototype.updateCriteria=function(){
Jacuba.stackTracer.push("Jacuba.Chart.Interface.prototype.updateCriteria");
var _603=this.criteria;
this.table.applyToCriteria(_603);
for(var x in this.fields){
var _604=this.fields[x];
_603.set(x,_604.getValue());
}
Jacuba.stackTracer.pop("Jacuba.Chart.Interface.prototype.updateCriteria");
};
Jacuba.Chart.Interface.prototype.getCriteria=function(){
this.updateCriteria();
var _605=this.criteria.clone();
_605.removeClientOnly();
_605.removeEmptyProperties();
var _606=_605.get("chart-type");
var _607=new Array();
if(_606!="bar"){
_607[_607.length]="bar-";
}
if(_606!="line"){
_607[_607.length]="line-";
}
if(_606!="pie"){
_607[_607.length]="pie-";
}
var _608=new Array();
for(var x in _605.props){
for(var y=0;y<_607.length;y++){
if(x.indexOf(_607[y])==0){
_608[_608.length]=x;
}
}
}
for(var x=0;x<_608.length;x++){
_605.remove(_608[x]);
}
return _605;
};
Jacuba.Chart.Interface.prototype.getStyleCriteria=function(){
Jacuba.stackTracer.push("Jacuba.Chart.Interface.prototype.getStyleCriteria");
var _609=this.criteria.clone();
this.table.applyToCriteria(_609,true);
for(var x in this.fields){
var _610=this.fields[x];
_609.set(x,_610.getValue());
}
_609.removeClientOnly();
_609.removeEmptyProperties();
var _611=Jacuba.Chart.Interface.extractStyleCriteria(_609);
Jacuba.stackTracer.pop("Jacuba.Chart.Interface.prototype.getStyleCriteria");
return _611;
};
Jacuba.Chart.Interface.hasStyleCriteria=function(_612){
for(var x in _612.props){
if(x.indexOf("color")!=-1||x.indexOf("text")!=-1||x.indexOf("font")!=-1){
return true;
}
}
return false;
};
Jacuba.Chart.Interface.extractStyleCriteria=function(_613){
Jacuba.stackTracer.push("Jacuba.Chart.Interface.extractStyleCriteria");
var _614=new Jacuba.Chart.Criteria(null,true);
for(var x in _613.props){
if(x.indexOf("color")!=-1||x.indexOf("text")!=-1||x.indexOf("font")!=-1){
_614.set(x,_613.get(x));
}
}
Jacuba.stackTracer.pop("Jacuba.Chart.Interface.extractStyleCriteria");
return _614;
};
Jacuba.Chart.Interface.prototype.receiveError=function(msg,url,line){
this.alert("Error","<b>Message:</b> "+msg+"<br/><b>URL:</b> "+url+"<br/><b>Line:</b> "+line);
};
Jacuba.Chart.Interface.prototype.alert=function(_616,_617,_618,_619){
if(_618==null){
_618=300;
}
var win=new Jacuba.Chart.Interface.Window(_618,_619);
win.setTitle(_616);
var _620="<TABLE border='0' cellpadding='0' cellspacing='2'><TBODY>";
_620+="<TR><TD><IMG class='warning' src=\""+Jacuba.Chart.TRANSP_IMG+"\" width=\""+Jacuba.Chart.WARNING_IMG_WIDTH+"\" height=\""+Jacuba.Chart.WARNING_IMG_HEIGHT+"\"></TD><TD>"+_617+"</TD></TR>";
_620+="</TBODY></TABLE>";
win.setContent(_620);
win.addButton(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"Close"));
var t=this;
win.setCloseHandler(function(win){
win.dispose();
t.modalBlock(false);
});
this.modalBlock(true);
win.open(this.html);
};
Jacuba.Chart.Interface.Button=function(_621,_622,_623,_624){
this.class_name=_623;
var img=new Image(_621,_622);
Jacuba.Chart.ImageManager.setSrc(img,Jacuba.Chart.TRANSP_IMG);
Jacuba.Chart.ImageManager.setClassName(img,_623);
this.icon=img;
this.label=document.createElement("A");
this.label.className=_623;
this.label.href="javascript:void(0)";
this.label.innerHTML=_624;
var t=this;
var fn=function(){
t.onclick();
return false;
};
var _625=function(){
t.onover();
};
var _626=function(){
t.onout();
};
this.onclick_fn=fn;
this.onover_fn=_625;
this.onout_fn=_626;
this.html=document.createElement("TABLE");
this.html.className=this.class_name;
var _627=document.createElement("TBODY");
this.html.appendChild(_627);
var tr=document.createElement("TR");
_627.appendChild(tr);
var td=document.createElement("TD");
tr.appendChild(td);
td.appendChild(document.createTextNode(_624));
td.onclick=fn;
td.onmouseover=_625;
td.onmouseout=_626;
};
Jacuba.Chart.Interface.Button.prototype.attachEventHandlers=function(elem){
elem.onclick=this.onclick_fn;
elem.onmouseover=this.onover_fn;
elem.onmouseout=this.onout_fn;
};
Jacuba.Chart.Interface.Button.prototype.getIcon=function(){
return this.icon;
};
Jacuba.Chart.Interface.Button.prototype.getLabel=function(){
return this.label;
};
Jacuba.Chart.Interface.Button.prototype.setAction=function(_628){
this.action=_628;
};
Jacuba.Chart.Interface.Button.prototype.onclick=function(){
if(this.action){
this.action();
}
};
Jacuba.Chart.Interface.Button.prototype.onover=function(){
if(!this.pressed){
var _629=this.class_name+"-hover";
Jacuba.Chart.ImageManager.setClassName(this.icon,_629);
this.label.className=_629;
}
};
Jacuba.Chart.Interface.Button.prototype.onout=function(){
if(!this.pressed){
Jacuba.Chart.ImageManager.setClassName(this.icon,this.class_name);
this.label.className=this.class_name;
}
};
Jacuba.Chart.Interface.Button.prototype.setPressed=function(_630){
this.pressed=_630;
Jacuba.Chart.ImageManager.setClassName(this.icon,_630?this.class_name+"-pressed":this.class_name);
this.label.className=_630?"pressed":"";
this.html.className=_630?this.class_name+"-pressed":this.class_name;
};
Jacuba.Chart.Interface.Element=function(){
this.html=document.createElement("TR");
this.td=document.createElement("TD");
this.html.appendChild(this.td);
};
Jacuba.Chart.Interface.Element.prototype.setVisible=function(_631){
this.html.style.display=_631?"":"none";
this.html.style.visibility="";
};
Jacuba.Chart.Interface.Element.prototype.setInnerHTML=function(html){
Jacuba.Chart.Util.clearNode(this.td);
this.td.innerHTML=html;
};
Jacuba.Chart.Interface.Element.prototype.setContentNode=function(node){
Jacuba.Chart.Util.clearNode(this.td);
if(node){
this.td.appendChild(node);
}
};
Jacuba.Chart.Interface.Card=function(){
};
Jacuba.Chart.Interface.Card.prototype.contains=function(elem){
if(!this.elements){
return false;
}
for(var x=0;x<this.elements.length;x++){
if(this.elements[x]==elem){
return true;
}
}
return false;
};
Jacuba.Chart.Interface.Card.prototype.addElement=function(elem){
if(!this.elements){
this.elements=new Array();
}
this.elements[this.elements.length]=elem;
};
Jacuba.Chart.Interface.Card.prototype.associateButton=function(_633){
if(!this.buttons){
this.buttons=new Array();
}
this.buttons[this.buttons.length]=_633;
};
Jacuba.Chart.Interface.Card.prototype.setSelected=function(_634){
if(this.buttons){
for(var x=0;x<this.buttons.length;x++){
this.buttons[x].setPressed(_634);
}
}
for(var x=0;x<this.elements.length;x++){
if(!this.elements[x].setVisible){
alert(this.elements[x]);
}
this.elements[x].setVisible(_634);
}
};
Jacuba.Chart.Interface.Field=function(elem){
this.html=elem;
this.inputs=new Array();
if(this.html!=null){
this.inputs[0]=this.html;
var t=this;
var fn=function(){
t.onchange();
};
if(this.html.type=="checkbox"){
this.html.onclick=fn;
}else{
this.html.onchange=fn;
}
}
this.disabled=false;
};
Jacuba.Chart.Interface.Field.prototype.init=function(){
if(this.dep_group!=null){
var _635=this.getValue();
if(_635==null||_635==""||(this.html.type=="checkbox"&&_635=="false")){
this.dep_group.setDisabled(true);
}
}
};
Jacuba.Chart.Interface.Field.prototype.duplicates=null;
Jacuba.Chart.Interface.Field.prototype.onchange=function(){
this.setValue(this.getValue());
};
Jacuba.Chart.Interface.Field.prototype.addValueElement=function(html){
this.inputs[this.inputs.length]=html;
};
Jacuba.Chart.Interface.Field.prototype.associateDependentField=function(_636){
if(this.dep_group==null){
this.dep_group=new Jacuba.Chart.Interface.FieldGroup();
}
this.dep_group.addField(_636);
var _637=this.getValue();
};
Jacuba.Chart.Interface.Field.prototype.getValue=function(){
if(this.html!=null){
if(this.html.type=="checkbox"){
return this.html.checked?"true":"false";
}
return this.html.value;
}else{
for(var x=0;x<this.inputs.length;x++){
var _638=this.inputs[x];
if(_638.checked){
return _638.value;
}
}
return null;
}
};
Jacuba.Chart.Interface.Field.prototype.setValue=function(_639,_640){
if(this.html!=null){
if(this.html.type=="checkbox"){
var val=_639=="true";
if(this.html.checked!=val){
this.html.checked=_639=="true";
}
}else{
if(this.html.value!=_639){
this.html.value=_639;
}
}
if(this.duplicates!=null){
for(var x=0;x<this.duplicates.length;x++){
if(this.html.type=="checkbox"){
var val=_639=="true";
if(this.duplicates[x].checked!=val){
this.duplicates[x].checked=val;
}
}else{
if(this.duplicates[x].value!=_639){
this.duplicates[x].value=_639;
}
}
}
}
}else{
for(var x=0;x<this.inputs.length;x++){
var _641=this.inputs[x];
if(_641.getAttribute("value")==_639){
_641.checked=true;
}else{
_641.checked=false;
}
}
}
if(this.dep_group!=null){
this.dep_group.setDisabled(_639==null||_639==""||(this.html.type=="checkbox"&&_639=="false"));
}
if(!_640){
this.broadcastChange();
}
};
Jacuba.Chart.Interface.Field.COMMON=new Object();
Jacuba.Chart.Interface.Field.COMMON.addListener=function(_642){
if(_642==null){
Jacuba.debug("No listener supplied");
return;
}
if(!_642.fieldChanged){
Jacuba.debug("Supplied object is not a listener");
return;
}
if(this.listeners==null){
this.listeners=new Array();
}
var _643=-1;
for(var x=0;x<this.listeners.length;x++){
if(this.listeners[x]==_642){
return;
}
if(_643==-1&&this.listeners[x]==null){
_643=x;
}
}
if(_643==-1){
_643=this.listeners.length;
}
this.listeners[_643]=_642;
};
Jacuba.Chart.Interface.Field.COMMON.removeListener=function(_644){
if(!this.listeners||!_644){
return;
}
for(var x=0;x<this.listeners.length;x++){
if(this.listeners[x]==_644){
this.listeners[x]=null;
}
}
};
Jacuba.Chart.Interface.Field.COMMON.broadcastChange=function(){
if(!this.listeners){
return;
}
for(var x=0;x<this.listeners.length;x++){
var _645=this.listeners[x];
if(_645){
_645.fieldChanged(this);
}
}
};
Jacuba.Chart.Interface.Field.prototype.addListener=Jacuba.Chart.Interface.Field.COMMON.addListener;
Jacuba.Chart.Interface.Field.prototype.removeListener=Jacuba.Chart.Interface.Field.COMMON.removeListener;
Jacuba.Chart.Interface.Field.prototype.broadcastChange=Jacuba.Chart.Interface.Field.COMMON.broadcastChange;
Jacuba.Chart.Interface.Field.prototype.getInputs=function(){
return this.inputs;
};
Jacuba.Chart.Interface.Field.prototype.isDisabled=function(){
return this.disabled;
};
Jacuba.Chart.Interface.Field.prototype.setDisabled=function(_646){
this.disabled=_646;
for(var x=0;x<this.inputs.length;x++){
this.inputs[x].disabled=_646;
}
if(this.duplicates!=null){
for(var x=0;x<this.duplicates.length;x++){
this.duplicates[x].disabled=_646;
}
}
};
Jacuba.Chart.Interface.Field.prototype.duplicateElement=function(elem){
var _647;
if(this.html!=null){
_647=elem==null?document.createElement(this.html.nodeName):elem;
if(!_647.type){
_647.type=this.html.type;
}
_647.value=this.html.value;
if(this.html.type=="checkbox"){
_647.checked=this.html.checked;
}
var t=this;
if(_647.type=="checkbox"){
_647.onclick=function(){
t.setValue(_647.checked?"true":"false");
};
}else{
_647.onchange=function(){
t.setValue(_647.value);
};
}
if(this.duplicates==null){
this.duplicates=new Array();
this.html.onchange=function(){
t.setValue(t.html.type=="checkbox"?(t.html.checked?"true":"false"):t.html.value);
};
}
this.duplicates[this.duplicates.length]=_647;
}
return _647;
};
Jacuba.Chart.Interface.Field.prototype.modalBlock=function(_648){
for(var x=0;x<this.inputs.length;x++){
this.inputs[x].disabled=this.disabled||_648;
if(document.all&&this.inputs[x].type=="select-one"){
this.inputs[x].style.visibility=_648?"hidden":"visible";
}
}
if(this.duplicates!=null){
for(var x=0;x<this.duplicates.length;x++){
this.duplicates[x].disabled=this.disabled||_648;
if(document.all&&this.duplicates[x].type=="select-one"){
this.duplicates[x].style.visibility=_648?"hidden":"visible";
}
}
}
};
Jacuba.Chart.Interface.FieldGroup=function(){
this.fields=new Array();
this.man_disabled=new Array();
};
Jacuba.Chart.Interface.FieldGroup.prototype.addField=function(_649){
this.fields[this.fields.length]=_649;
this.man_disabled[this.man_disabled.length]=false;
};
Jacuba.Chart.Interface.FieldGroup.prototype.setDisabled=function(_650){
for(var x=0;x<this.fields.length;x++){
if(_650&&!this.fields[x].isDisabled()){
this.fields[x].setDisabled(_650);
this.man_disabled[x]=true;
}else{
if(!_650&&this.man_disabled[x]){
this.fields[x].setDisabled(_650);
}
}
}
};
Jacuba.Chart.Interface.FieldGroup.prototype.modalBlock=function(_651){
for(var x=0;x<this.fields.length;x++){
this.fields[x].modalBlock(_651);
}
};
Jacuba.Chart.Interface.CriteriaTheme=function(_652){
this.id="CriteriaTheme";
this.props=new Object();
this.is_criteria=true;
this.iface=_652;
var _653=_652.getStyleCriteria();
for(var x in _653.props){
if(x.indexOf("color")!=-1||x.indexOf("text")!=-1||x.indexOf("font")!=-1){
this.props[x]=_653.get(x);
}
}
};
Jacuba.Chart.Interface.CriteriaTheme.prototype.isLoaded=function(){
return true;
};
Jacuba.Chart.Interface.CriteriaTheme.prototype.load=function(){
};
Jacuba.Chart.Interface.CriteriaTheme.prototype.getProperties=function(){
return this.props;
};
Jacuba.Chart.Interface.CriteriaTheme.prototype.getPlotColors=function(){
if(this.colors){
return this.colors;
}
var _654=new Array();
var _655=Jacuba.Chart.Interface.ColorSelector.DEFAULT_COLORS;
for(var x=0;x<_655.length;x++){
_654[x]=_655[x];
}
for(var x in this.props){
if(x.indexOf("plot-color-")==0){
var _656=parseInt(x.substring(11));
_656=this.iface.visibleIndexForTableIndex(_656,this.iface.criteria.get("plot")=="rows");
_654[_656]=this.props[x];
Jacuba.debug("Color taken from criteria for index "+_656+": "+this.props[x]);
}
}
if(_654.length>_655.length){
var _657=_655.length*((_654.length%_655.length)+1);
for(var x=_655.length;x<_657;x++){
var _658=_654[x];
if(!_658){
_654[x]=_655[x%_655.length];
Jacuba.debug("Supplying missing color from default clor set for index "+x+": "+_654[x]);
}
}
}
this.plot_colors=_654;
return _654;
};
Jacuba.Chart.Interface.ThemeMonitor=function(_659,_660){
this.iface=_659;
this.fields=new Array();
this.changed=false;
this.forTheme(_660);
};
Jacuba.Chart.Interface.ThemeMonitor.prototype.setOnChangeFunction=function(fn){
this.on_change_fn=fn;
};
Jacuba.Chart.Interface.ThemeMonitor.prototype.setOnResetFunction=function(fn){
this.on_reset_fn=fn;
};
Jacuba.Chart.Interface.ThemeMonitor.prototype.forTheme=function(_661){
this.reset();
this.iface.table.addListener(this);
if(_661!=null){
var _662=_661.getProperties();
for(var x in _662){
var _663=this.iface.fields[x];
if(_663){
this.monitor(_663);
}
if(x=="text-color"){
var a=new Array("title","legend","label");
for(var y=0;y<a.length;y++){
var key=a[y]+"-text-color";
if(!_662[key]){
_663=this.iface.fields[key];
if(_663){
this.monitor(_663);
}
}
}
}
}
}
};
Jacuba.Chart.Interface.ThemeMonitor.prototype.monitor=function(_664){
this.fields[this.fields.length]=_664;
_664.addListener(this);
};
Jacuba.Chart.Interface.ThemeMonitor.prototype.fieldChanged=function(_665){
if(!this.changed){
if(this.on_change_fn){
this.on_change_fn();
}
}
this.changed=true;
};
Jacuba.Chart.Interface.ThemeMonitor.prototype.hasChanged=function(){
return this.changed;
};
Jacuba.Chart.Interface.ThemeMonitor.prototype.reset=function(){
this.iface.table.removeListener(this);
for(var x=0;x<this.fields.length;x++){
this.fields[x].removeListener(this);
}
this.fields.length=0;
this.changed=false;
if(this.on_reset_fn){
this.on_reset_fn();
}
};
Jacuba.Chart.Interface.Table=function(elem,_666){
Jacuba.debug("creating interface table",1);
this.iface=_666;
var t=this;
this.color_listener=new Object();
this.color_listener.fieldChanged=function(){
t.broadcastChange();
};
var _667=elem.style.border;
elem.style.border="1px solid black";
this.width=elem.parentNode.offsetWidth;
this.height=elem.parentNode.offsetHeight;
elem.style.border=_667;
elem.parentNode.style.overflow="hidden";
this.outer_table_id=Jacuba.Chart.Util.getId("outer-table");
this.columns_left_id=Jacuba.Chart.Util.getId("columns-left");
this.columns_right_id=Jacuba.Chart.Util.getId("columns-right");
this.rows_left_id=Jacuba.Chart.Util.getId("rows-left");
this.rows_right_id=Jacuba.Chart.Util.getId("rows-right");
this.top_left_table_id=Jacuba.Chart.Util.getId("top-left-table");
this.top_left_cell_id=Jacuba.Chart.Util.getId("top-left-cell");
this.columns_div_id=Jacuba.Chart.Util.getId("columns");
this.rows_div_id=Jacuba.Chart.Util.getId("rows");
this.scroll_area_id=Jacuba.Chart.Util.getId("scroll");
this.html=elem;
var _668="<TABLE cellpadding='0' cellspacing='"+this.outer_table_cellspacing+"' border='0' id='"+this.outer_table_id+"' class='tableOuter'><TBODY>";
_668+="<TR><TD id='"+this.columns_left_id+"' class='tablePlace'><TABLE id='"+this.top_left_table_id+"'><TBODY><TR><TD id='"+this.top_left_cell_id+"'></TD></TR></TBODY></TABLE></TD><TD id='"+this.columns_right_id+"' valign='TOP' class='tablePlace'><DIV id='"+this.columns_div_id+"' class='columnHeadings'></DIV></TD></TR>";
_668+="<TR><TD id='"+this.rows_left_id+"' valign='TOP' class='tablePlace'><DIV id='"+this.rows_div_id+"' class='rowHeadings'></DIV></TD><TD id='"+this.rows_right_id+"' valign='TOP' class='tablePlace'><DIV id='"+this.scroll_area_id+"' class='scrollArea'></DIV></TD></TR>";
_668+="</TBODY></TABLE>";
this.html.innerHTML=_668;
this.outer_table=document.getElementById(this.outer_table_id);
this.columns_left=document.getElementById(this.columns_left_id);
this.columns_right=document.getElementById(this.columns_right_id);
this.rows_left=document.getElementById(this.rows_left_id);
this.rows_right=document.getElementById(this.rows_right_id);
this.top_left_table=document.getElementById(this.top_left_table_id);
this.top_left_cell=document.getElementById(this.top_left_cell_id);
this.columns_div=document.getElementById(this.columns_div_id);
this.rows_div=document.getElementById(this.rows_div_id);
this.scroll_area=document.getElementById(this.scroll_area_id);
this.styleTable(this.top_left_table);
this.columns_div.style.overflow="hidden";
this.rows_div.style.overflow="hidden";
this.scroll_area.style.overflow="auto";
if(document.all){
this.scroll_area.onscroll=function(){
t.updatePosition();
};
}else{
window.setInterval("Jacuba.Chart.interfaces['"+this.iface.id+"'].table.updatePosition();",25);
}
window.setInterval("Jacuba.Chart.interfaces['"+this.iface.id+"'].table.resize();",25);
Jacuba.debug("interface table created (not yet populated)",1);
};
Jacuba.Chart.Interface.Table.prototype.width=200;
Jacuba.Chart.Interface.Table.prototype.height=100;
Jacuba.Chart.Interface.Table.prototype.cellpadding=4;
Jacuba.Chart.Interface.Table.prototype.cellspacing=0;
Jacuba.Chart.Interface.Table.prototype.cellhborder=1;
Jacuba.Chart.Interface.Table.prototype.border=0;
Jacuba.Chart.Interface.Table.prototype.outer_table_cellspacing=1;
Jacuba.Chart.Interface.Table.prototype.outer_table_place_border=1;
Jacuba.Chart.Interface.Table.prototype.color_selectors=null;
Jacuba.Chart.Interface.Table.prototype.addListener=Jacuba.Chart.Interface.Field.COMMON.addListener;
Jacuba.Chart.Interface.Table.prototype.removeListener=Jacuba.Chart.Interface.Field.COMMON.removeListener;
Jacuba.Chart.Interface.Table.prototype.broadcastChange=Jacuba.Chart.Interface.Field.COMMON.broadcastChange;
Jacuba.Chart.Interface.Table.prototype.queuePriorityWork=function(work){
var _669="Jacuba.Chart.interfaces['"+this.iface.id+"'].table."+work;
this.iface.queuePriorityWork(_669);
};
Jacuba.Chart.Interface.Table.prototype.queueWork=function(work){
var _670="Jacuba.Chart.interfaces['"+this.iface.id+"'].table."+work;
this.iface.queueWork(_670);
};
Jacuba.Chart.Interface.Table.prototype.modalBlock=function(b){
if(this.column_checkboxes!=null){
for(var x=0;x<this.column_checkboxes.length;x++){
var _671=this.column_checkboxes[x];
if(_671!=null){
_671.disabled=b;
}
}
}
if(this.row_checkboxes!=null){
for(var x=0;x<this.row_checkboxes.length;x++){
var _671=this.row_checkboxes[x];
if(_671!=null){
_671.disabled=b;
}
}
}
this.scroll_area.style.overflow=b?"hidden":"auto";
};
Jacuba.Chart.Interface.Table.prototype.refresh=function(){
Jacuba.debug("populating interface table",1);
var _672=null;
if(this.color_selectors){
var _673=new Array();
for(var x=0;x<this.color_selectors.length;x++){
var _674=this.color_selectors[x];
if(_674){
var _675=_674.getValue();
if(!_675&&Jacuba.Coding){
throw new Jacuba.Coding.Exception("Selector for index "+x+" has no value!");
}
_673[_673.length]=_675;
Jacuba.debug("Set color for index "+x+" to "+_675);
this.iface.criteria.set("plot-color-"+x,_675);
}
}
if(this.iface.selected_theme){
var _676=this.iface.selected_theme.getPlotColors();
for(var x=_673.length;x<_676.length;x++){
var _675=_676[x];
if(!_675&&Jacuba.Coding){
throw new Jacuba.Coding.Exception("Theme failed to supply color for index "+x+"!");
}
_673[x]=_676[x];
Jacuba.debug("Theme supplied color for index "+x+": "+_676[x]);
}
}
_672=new Jacuba.Chart.Interface.ArrayPalette(_673);
}else{
_672=new Jacuba.Chart.Interface.ArrayPalette(Jacuba.Chart.Interface.ColorSelector.DEFAULT_COLORS);
}
while(this.top_left_cell.firstChild){
this.top_left_cell.removeChild(this.top_left_cell.firstChild);
}
this.removeSpacerRow(this.top_left_table);
Jacuba.Chart.Util.invalidateTableLookups();
var td=document.getElementById(this.top_left_cell_id);
while(td.firstChild){
td.removeChild(td.firstChild);
}
if(this.content_table){
this.content_table.parentNode.removeChild(this.content_table);
this.content_table=null;
}
if(this.row_headings){
this.row_headings.parentNode.removeChild(this.row_headings);
this.row_headings=null;
}
if(this.column_headings){
this.column_headings.parentNode.removeChild(this.column_headings);
this.column_headings=null;
}
this.html.style.width=this.width+"px";
this.html.style.height=this.height+"px";
this.html.style.overflow="hidden";
Jacuba.debug("converting data to HTML table...",1);
this.content_table=this.iface.chart.data.toHTML();
Jacuba.debug("table converted to HTML table",1);
this.styleTable(this.content_table);
Jacuba.Chart.Util.clearNode(this.scroll_area);
this.scroll_area.appendChild(this.content_table);
var _677=new Jacuba.Chart.Util.NumberSet(this.iface.criteria.get("excluded-rows"));
var _678=new Jacuba.Chart.Util.NumberSet(this.iface.criteria.get("excluded-columns"));
var _679=parseInt(this.iface.criteria.get("column-heading-row"));
var _680=parseInt(this.iface.criteria.get("row-heading-column"));
this.changeLabels(this.content_table,this.iface.criteria);
this.row_headings=document.createElement("TABLE");
this.styleTable(this.row_headings);
var _681=document.createElement("TBODY");
this.row_headings.appendChild(_681);
Jacuba.Chart.Util.clearNode(this.rows_div);
this.rows_div.appendChild(this.row_headings);
var _682=document.createElement("DIV");
_682.style.height="20px";
this.rows_div.appendChild(_682);
this.hideExcluded(this.content_table,_677,_678);
Jacuba.debug("Copying headings to separate tables...",1);
var _683=0;
for(var c=this.content_table.firstChild.firstChild;c!=null;c=c.nextSibling){
if(c.nodeName=="TR"){
var _685=null;
if(_679==_683){
var _686=document.createElement("TABLE");
_686.cellPadding=0;
_686.cellSpacing=0;
_686.border=0;
var _687=document.createElement("TBODY");
_686.appendChild(_687);
var _688=document.createElement("TR");
_687.appendChild(_688);
var _689=document.createElement("TD");
_688.appendChild(_689);
this.column_headings=document.createElement("TABLE");
_681=document.createElement("TBODY");
this.column_headings.appendChild(_681);
var tr=document.createElement("TR");
_681.appendChild(tr);
_685=tr;
this.styleTable(this.column_headings);
_689.appendChild(this.column_headings);
_689=document.createElement("TD");
_688.appendChild(_689);
var _690=new Image(20,1);
_689.appendChild(_690);
Jacuba.Chart.ImageManager.setSrc(_690,Jacuba.Chart.TRANSP_IMG);
Jacuba.Chart.Util.clearNode(this.columns_div);
this.columns_div.appendChild(_686);
}
cindex=0;
for(var d=c.firstChild;d!=null;d=d.nextSibling){
if(d.nodeName=="TD"||d.nodeName=="TH"){
if(_685!=null){
var td=document.createElement("TD");
_685.appendChild(td);
td.innerHTML=d.innerHTML;
if(_678.contains(cindex)){
td.style.display="none";
}
}
if(cindex==_680){
if(_679==_683){
this.top_left_cell.innerHTML=d.innerHTML;
}
d.style.display="none";
var tr=document.createElement("TR");
var td=document.createElement("TD");
td.innerHTML=d.innerHTML;
tr.appendChild(td);
this.row_headings.firstChild.appendChild(tr);
if(_677.contains(_683)){
tr.style.display="none";
td.style.display="none";
}
}
cindex++;
}
}
_683++;
}
}
Jacuba.debug("Heading tables completed",1);
var _692=Jacuba.Chart.Util.getTR(this.content_table,_679);
_692.style.display="none";
Jacuba.debug("hiding row heading column in column headings table",1);
var cell=Jacuba.Chart.Util.getCell(this.column_headings,0,_680);
cell.style.display="none";
Jacuba.debug("hiding column heading row from row heading table",1);
var tr=Jacuba.Chart.Util.getTR(this.row_headings,_679);
tr.style.display="none";
this.top_left_table.className="topLeftTable";
Jacuba.Chart.ImageManager.setClassName(this.top_left_cell,"topLeftCell");
this.row_headings.className="rowHeadings";
this.column_headings.className="columnHeadings";
this.content_table.className="contentTable";
Jacuba.debug("marking first visible cell in column headings as 'first'",1);
var _694=Jacuba.Chart.Util.numColumns(this.column_headings);
for(var _695=0;_695<_694;_695++){
cell=Jacuba.Chart.Util.getCell(this.column_headings,0,_695);
if(cell.style.display!="none"){
cell.className="first";
break;
}
}
Jacuba.debug("marking first visible row in row headings as 'first'",1);
_694=Jacuba.Chart.Util.numColumns(this.row_headings);
var rows=Jacuba.Chart.Util.numRows(this.row_headings);
var done=false;
for(var row=0;row<rows&&!done;row++){
tr=Jacuba.Chart.Util.getTR(this.row_headings,row);
if(tr.style.display!="none"){
for(var _695=0;_695<_694;_695++){
cell=Jacuba.Chart.Util.getCell(this.row_headings,row,_695);
if(cell.style.display!="none"){
cell.className="first";
done=true;
break;
}
}
}
}
Jacuba.debug("setting up headings ...",1);
this.setupHeadings(_672);
Jacuba.debug("finished setting up headings",1);
this.updateCellSizes();
Jacuba.debug("finished populating interface table",1);
};
Jacuba.Chart.Interface.Table.prototype.setColor=function(_698,_699){
var _700=_698<this.color_selectors.length?this.color_selectors[_698]:null;
if(_700){
_700.setValue(_699);
}
};
Jacuba.Chart.Interface.Table.prototype.recolor=function(_701){
var _702=0;
for(var x=0;x<this.color_selectors.length;x++){
var _703=this.color_selectors[x];
if(_703!=null){
if(_701.length>_702){
_703.setValue(_701[_702]);
}
_702++;
}
}
};
Jacuba.Chart.Interface.Table.prototype.updateHeadings=function(){
if(this.row_heading_objects){
for(var x=0;x<this.row_heading_objects.length;x++){
var _704=this.row_heading_objects[x];
if(_704){
_704.update();
}
}
}
if(this.column_heading_objects){
for(var x=0;x<this.column_heading_objects.length;x++){
var _704=this.column_heading_objects[x];
if(_704){
_704.update();
}
}
}
};
Jacuba.Chart.Interface.Table.prototype.updateCellSizes=function(){
var _705=new Jacuba.Chart.Util.NumberSet(this.iface.criteria.get("excluded-rows"));
var _706=new Jacuba.Chart.Util.NumberSet(this.iface.criteria.get("excluded-columns"));
var _707=parseInt(this.iface.criteria.get("column-heading-row"));
var _708=parseInt(this.iface.criteria.get("row-heading-column"));
this.removeSpacerRow(this.top_left_table);
this.removeSpacerRow(this.row_headings);
this.removeSpacerRow(this.column_headings);
this.removeSpacerRow(this.content_table);
var _709=new Array();
var _710=new Array();
var _711=Jacuba.Chart.Util.numRows(this.column_headings);
var _712=Jacuba.Chart.Util.numColumns(this.column_headings);
Jacuba.debug("calculating cell widths / heights: column headings",1);
for(var row=0;row<_711;row++){
for(var _713=0;_713<_712;_713++){
var curr=Jacuba.Chart.Util.getCell(this.column_headings,row,_713);
_709[_713]=curr.offsetWidth;
_710[_707]=curr.offsetHeight;
}
}
_711=Jacuba.Chart.Util.numRows(this.row_headings);
_712=Jacuba.Chart.Util.numColumns(this.row_headings);
Jacuba.debug("calculating cell widths / heights: row headings",1);
for(var row=0;row<_711;row++){
for(var _713=0;_713<_712;_713++){
var curr=Jacuba.Chart.Util.getCell(this.row_headings,row,_713);
_709[_708]=isNaN(_709[_708])?curr.offsetWidth:Math.max(curr.offsetWidth,_709[_708]);
_710[row]=isNaN(_710[row])?curr.offsetHeight:Math.max(curr.offsetHeight,_710[row]);
}
}
_711=Jacuba.Chart.Util.numRows(this.content_table);
_712=Jacuba.Chart.Util.numColumns(this.content_table);
Jacuba.debug("calculating cell widths / heights: content",1);
for(var row=0;row<_711;row++){
for(var _713=0;_713<_712;_713++){
var curr=Jacuba.Chart.Util.getCell(this.content_table,row,_713);
_709[_713]=Math.max(curr.offsetWidth,_709[_713]);
_710[row]=Math.max(curr.offsetHeight,_710[row]);
}
}
_711=Jacuba.Chart.Util.numRows(this.top_left_table);
_712=Jacuba.Chart.Util.numColumns(this.top_left_table);
Jacuba.debug("applying cell size to top left table",1);
for(var row=0;row<_711;row++){
for(var _713=0;_713<_712;_713++){
var curr=Jacuba.Chart.Util.getCell(this.top_left_table,row,_713);
if(_709[_708]>0){
curr.style.width=_709[_708];
}
if(_710[_707]>0){
curr.style.height=_710[_707];
}
}
}
_711=Jacuba.Chart.Util.numRows(this.column_headings);
_712=Jacuba.Chart.Util.numColumns(this.column_headings);
Jacuba.debug("applying cell size to column headings table",1);
for(var row=0;row<_711;row++){
for(var _713=0;_713<_712;_713++){
var curr=Jacuba.Chart.Util.getCell(this.column_headings,row,_713);
if(_709[_713]>0){
curr.style.width=(_709[_713]-(2*(this.cellpadding+this.cellhborder)))+"px";
}
if(_710[_707]>0){
curr.style.height=_710[_707]+"px";
}
}
}
_711=Jacuba.Chart.Util.numRows(this.row_headings);
_712=Jacuba.Chart.Util.numColumns(this.row_headings);
Jacuba.debug("applying cell size to row headings",1);
for(var row=0;row<_711;row++){
for(var _713=0;_713<_712;_713++){
var curr=Jacuba.Chart.Util.getCell(this.row_headings,row,_713);
if(_709[_708]>0){
curr.style.width=(_709[_708]-(2*(this.cellpadding+this.cellhborder)))+"px";
}
if(_710[row]>0){
curr.style.height=_710[row]+"px";
}
}
}
_711=Jacuba.Chart.Util.numRows(this.content_table);
_712=Jacuba.Chart.Util.numColumns(this.content_table);
Jacuba.debug("apply cell size to content table",1);
for(var row=0;row<_711;row++){
for(var _713=0;_713<_712;_713++){
var curr=Jacuba.Chart.Util.getCell(this.content_table,row,_713);
if(_709[_713]>0){
curr.style.width=(_709[_713]-(2*(this.cellpadding+this.cellhborder)))+"px";
}
if(_710[row]>0){
curr.style.height=_710[row]+"px";
}
}
}
var a=new Array();
a[0]=_709[_708];
this.appendSpacerRow(this.top_left_table,a);
this.appendSpacerRow(this.row_headings,a);
this.appendSpacerRow(this.column_headings,_709,_708,_706);
this.appendSpacerRow(this.content_table,_709,_708,_706);
var _714=this.top_left_table.offsetWidth;
this.row_headings.style.width=_714+"px";
this.rows_left.style.width=_714+"px";
this.rows_div.style.width=_714+"px";
var _715=this.width-_714;
if(_715>0){
this.columns_right.style.width=_715+"px";
this.columns_div.style.width=_715+"px";
this.rows_right.style.width=_715+"px";
this.scroll_area.style.width=_715+"px";
}
var _716=this.top_left_table.offsetHeight;
this.height=this.html.offsetHeight;
var _717=this.height-_716;
if(!document.all){
_717-=this.border*2;
}
_717=_717+"px";
if(_717>0){
this.scroll_area.style.height=_717;
this.rows_left.style.height=_717;
this.rows_div.style.height=_717;
}
};
Jacuba.Chart.Interface.Table.prototype.hideExcluded=function(_718,_719,_720){
var _721=0;
for(var c=_718.firstChild.firstChild;c!=null;c=c.nextSibling){
if(c.nodeName=="TR"){
if(_719.contains(_721)){
c.style.display="none";
}
var _722=0;
for(var d=c.firstChild;d!=null;d=d.nextSibling){
if(d.nodeName=="TD"||d.nodeName=="TH"){
if(_720.contains(_722)){
d.style.display="none";
}
_722++;
}
}
_721++;
}
}
};
Jacuba.Chart.Interface.Table.prototype.applyToCriteria=function(_723,_724){
Jacuba.stackTracer.push("Jacuba.Chart.Interface.Table.prototype.applyToCriteria");
var _725=this.getSelectedColumns();
var rows=this.getSelectedRows();
_723.set("columns",_725);
_723.set("rows",rows);
var plot=this.iface.criteria.get("plot");
var set=new Jacuba.Chart.Util.NumberSet(plot=="columns"?_725:rows);
for(var x=0;x<this.color_selectors.length;x++){
var _726=this.color_selectors[x];
if(_726!=null&&_726.ohtml.style.display!="none"){
if(set.contains(x)||_724){
_723.set("plot-color-"+x,_726.getValue());
}
}
}
Jacuba.stackTracer.pop("Jacuba.Chart.Interface.Table.prototype.applyToCriteria");
};
Jacuba.Chart.Interface.Table.prototype.getSelectedColumns=function(){
var _727=0;
var s="";
var _728=false;
var _729=false;
for(var _727=0;_727<this.column_checkboxes.length;_727++){
var _730=this.column_checkboxes[_727];
if(_730!=null&&_730.checked){
if(!_728){
if(s.length>0){
s+=",";
}
s+=_727;
_728=true;
}else{
_729=true;
}
}else{
if(_729){
s+="-"+(_727-1);
_729=false;
}
_728=false;
}
}
if(_729){
s+="-"+(_727-1);
_729=false;
}
return s;
};
Jacuba.Chart.Interface.Table.prototype.getSelectedRows=function(){
var _731=0;
var s="";
var _732=false;
var _733=false;
for(var _731=0;_731<this.row_checkboxes.length;_731++){
var _734=this.row_checkboxes[_731];
if(_734!=null&&_734.checked){
if(!_732){
if(s.length>0){
s+=",";
}
s+=_731;
_732=true;
}else{
_733=true;
}
}else{
if(_733){
s+="-"+(_731-1);
_733=false;
}
_732=false;
}
}
if(_733){
s+="-"+(_731-1);
_733=false;
}
return s;
};
Jacuba.Chart.Interface.Table.prototype.appendSpacerRow=function(_735,_736,_737,_738){
var _739=false;
var _740=Jacuba.Chart.Util.numRows(_735)-1;
var tr=Jacuba.Chart.Util.getTR(_735,_740);
if(tr&&tr.className=="spacer-row"){
while(tr.firstChild){
tr.removeChild(tr.firstChild);
}
}else{
tr=document.createElement("TR");
tr.className="spacer-row";
_739=true;
}
for(var _741=0;_741<_736.length;_741++){
var td=document.createElement("TD");
tr.appendChild(td);
td.style.padding="0px";
td.style.borderWidth="0px";
td.style.width=_736[_741]+"px";
var _742=new Image((_736[_741]-(this.border*2)),1);
td.appendChild(_742);
Jacuba.Chart.ImageManager.setSrc(_742,Jacuba.Chart.TRANSP_IMG);
if(_741==_737||(_738!=null&&_738.contains(_741))){
td.style.display="none";
}
}
if(_739){
Jacuba.Chart.Util.appendTR(_735,tr);
}
};
Jacuba.Chart.Interface.Table.prototype.removeSpacerRow=function(_743){
var rows=Jacuba.Chart.Util.numRows(_743);
var _744=Jacuba.Chart.Util.getTR(_743,rows-1);
if(_744.className=="spacer-row"){
Jacuba.Chart.Util.removeLastTR(_743);
}
};
Jacuba.Chart.Interface.Table.prototype.styleTable=function(_745){
_745.border=this.border;
_745.cellPadding=this.cellpadding;
_745.cellSpacing=this.cellspacing;
};
Jacuba.Chart.Interface.Table.prototype.changeLabels=function(_746,_747){
if(_746==null){
alert("No table supplied to changeLabels");
}
var _748=parseInt(_747.get("row-heading-column"));
var rows=Jacuba.Chart.Util.numRows(_746);
for(var x=0;x<rows;x++){
var cell=Jacuba.Chart.Util.getCell(_746,x,_748);
var _749=_747.get("row-label-"+x);
if(_749!=null&&_749.length>0){
cell.innerHTML="<NOBR>"+_749+"</NOBR>";
}
}
var _750=parseInt(_747.get("column-heading-row"));
var _751=Jacuba.Chart.Util.numColumns(_746);
for(var x=0;x<_751;x++){
var cell=Jacuba.Chart.Util.getCell(_746,_750,x);
var _749=_747.get("column-label-"+x);
if(_749!=null&&_749.length>0){
cell.innerHTML="<NOBR>"+_749+"</NOBR>";
}
}
};
Jacuba.Chart.Interface.Table.prototype.setupHeadings=function(_752){
this.column_checkboxes=new Array();
this.row_checkboxes=new Array();
this.color_selectors=new Array();
this.column_heading_objects=new Array();
this.row_heading_objects=new Array();
var _753=new Jacuba.Chart.Interface.Table.HeadingContext(this,_752);
this.iface.setReady("table",false);
var _754=Jacuba.Chart.hold(_753);
this.setupHeadingsPartialColumns(0,50,_754);
var _755=Jacuba.Chart.hold(_753);
this.setupHeadingsPartialRows(0,50,_755);
if(this.iface.isReady("column-headings")&&this.iface.isReady("row-headings")){
this.iface.setReady("table",true);
}else{
var _756=this.iface;
var _757=function(){
_756.setReady("table",true);
};
if(this.iface.isReady("column-headings")){
this.iface.doWhenReady(_757,"row-headings");
}else{
if(this.iface.isReady("row-headings")){
this.iface.doWhenReady(_757,"column-headings");
}else{
var _758=function(){
if(_756.isReady("column-headings")){
_757();
}else{
_756.doWhenReady(_757,"column-headings");
}
};
this.iface.doWhenReady(_758,"row-headings");
}
}
}
};
Jacuba.Chart.Interface.Table.prototype.setupHeadingsPartialColumns=function(_759,_760,_761){
var _762=Jacuba.Chart.getHeld(_761);
this.iface.setReady("column-headings",false);
var rows=Jacuba.Chart.Util.numRows(this.column_headings);
var _763=Jacuba.Chart.Util.numColumns(this.column_headings);
var _764=Math.min(_759+_760,_763);
Jacuba.debug("setup headings: partial column headings "+_759+"-"+(_764-1)+" ("+rows+","+_763+")",1);
for(var _765=_759;_765<_764;_765++){
Jacuba.debug("setup column heading "+_765,0);
var td=Jacuba.Chart.Util.getCell(this.column_headings,0,_765);
var _766=new Jacuba.Chart.Interface.Table.Heading(td,false,_762.column_heading_row,_765,_762);
if(_766.html!=null){
this.column_heading_objects[_765]=_766;
this.column_checkboxes[_765]=_766.checkbox;
if(_762.plot=="columns"){
this.color_selectors[_765]=_766.fill_selector;
if(_766.fill_selector){
_766.fill_selector.addListener(this.color_listener);
}
}
}
}
if(_764!=_763){
var work="setupHeadingsPartialColumns("+_764+","+_760+",'"+_761+"')";
if(_759==0){
this.queueWork(work);
}else{
this.queuePriorityWork(work);
}
}else{
Jacuba.Chart.withdrawHeld(_761);
this.iface.setReady("column-headings",true);
if(_759!=0){
this.queuePriorityWork("forceResize()");
this.queuePriorityWork("updateHeadings()");
this.queuePriorityWork("updateCellSizes()");
}
}
};
Jacuba.Chart.Interface.Table.prototype.setupHeadingsPartialRows=function(_767,_768,_769){
var _770=Jacuba.Chart.getHeld(_769);
this.iface.setReady("row-headings",false);
var rows=Jacuba.Chart.Util.numRows(this.row_headings);
var _771=Jacuba.Chart.Util.numColumns(this.row_headings);
var _772=Math.min(_767+_768,rows);
Jacuba.debug("setup headings: partial row headings "+_767+"-"+(_772-1)+" ("+rows+","+_771+")",1);
for(var row=_767;row<_772;row++){
Jacuba.debug("setup row heading "+row,0);
for(var _773=0;_773<_771;_773++){
var td=Jacuba.Chart.Util.getCell(this.row_headings,row,_773);
var _774=new Jacuba.Chart.Interface.Table.Heading(td,true,row,_770.row_heading_column,_770);
if(_774.html!=null){
this.row_heading_objects[row]=_774;
this.row_checkboxes[row]=_774.checkbox;
if(_770.plot=="rows"){
this.color_selectors[row]=_774.fill_selector;
if(_774.fill_selector){
_774.fill_selector.addListener(this.color_listener);
}
}
}
}
}
if(_772!=rows){
var work="setupHeadingsPartialRows("+_772+","+_768+",'"+_769+"')";
if(_767==0){
this.queueWork(work);
}else{
this.queuePriorityWork(work);
}
}else{
Jacuba.Chart.withdrawHeld(_769);
this.iface.setReady("row-headings",true);
if(_767!=0){
this.queuePriorityWork("forceResize()");
this.queuePriorityWork("updateCellSizes()");
}
}
};
Jacuba.Chart.Interface.Table.prototype.makeColumnSelectionFunction=function(_775,_776){
var rows=Jacuba.Chart.Util.numRows(this.content_table);
var _777=Jacuba.Chart.Util.numColumns(this.content_table);
var tds=new Array();
for(var row=0;row<rows;row++){
var tr=Jacuba.Chart.Util.getTR(this.content_table,row);
if(tr.style.display!="none"){
tds[tds.length]=Jacuba.Chart.Util.getCell(this.content_table,row,_776);
}
}
return function(){
var _779=_775.checked?"":"deselected";
for(var x=0;x<tds.length;x++){
tds[x].className=_779;
}
};
};
Jacuba.Chart.Interface.Table.prototype.makeRowSelectionFunction=function(_780,_781){
var tr=Jacuba.Chart.Util.getTR(this.content_table,_781);
return tr==null?null:function(){
var _782=_780.checked?"":"deselected";
tr.className=_782;
};
};
Jacuba.Chart.Interface.Table.prototype.updatePosition=function(){
this.rows_div.scrollTop=this.scroll_area.scrollTop;
this.columns_div.scrollLeft=this.scroll_area.scrollLeft;
};
Jacuba.Chart.Interface.Table.prototype.forceResize=function(){
this.width=-1;
this.height=-1;
this.resize();
};
Jacuba.Chart.Interface.Table.prototype.resize=function(){
if(this.iface.html.style.display=="none"){
return;
}
if(this.iface.card!="main"){
return;
}
if(this.iface.table_element.html.style.display=="none"){
return;
}
var _783=this.html.parentNode;
var _784=_783.offsetWidth-1;
var _785=_783.offsetHeight-1;
if(_784!=this.width||_785!=this.height){
this.html.style.display="none";
var _784=_783.offsetWidth-1;
var _785=_783.offsetHeight-1;
this.html.style.display="";
this.width=_784;
this.height=_785;
this.html.style.width=_784+"px";
this.html.style.height=_785+"px";
var _786=this.top_left_table.offsetWidth;
this.row_headings.style.width=_786+"px";
this.rows_left.style.width=_786+"px";
this.rows_div.style.width=_786+"px";
var _787=(3*this.outer_table_cellspacing)+(4*this.outer_table_place_border);
var _788=this.width-_786-_787;
this.columns_right.style.width=_788+"px";
this.columns_div.style.width=_788+"px";
this.rows_right.style.width=_788+"px";
this.scroll_area.style.width=_788+"px";
var _789=this.top_left_table.offsetHeight;
this.height=this.html.offsetHeight;
var _790=this.height-_789-_787;
if(!document.all){
_790-=this.border*2;
}
_790=_790+"px";
this.scroll_area.style.height=_790;
this.rows_left.style.height=_790;
this.rows_div.style.height=_790;
this.updatePosition();
}
};
Jacuba.Chart.Interface.Window=function(_791,_792){
Jacuba.debug("Creating popup window");
if(_791!=null){
this.width=_791;
}
if(_792!=null){
this.height=_792;
}
this.createHTML();
};
Jacuba.Chart.Interface.Window.prototype.width=null;
Jacuba.Chart.Interface.Window.prototype.height=null;
Jacuba.Chart.Interface.Window.prototype.zindex=100;
Jacuba.Chart.Interface.Window.prototype.title="";
Jacuba.Chart.Interface.Window.prototype.html=null;
Jacuba.Chart.Interface.Window.prototype.win=null;
Jacuba.Chart.Interface.Window.prototype.title=null;
Jacuba.Chart.Interface.Window.prototype.content=null;
Jacuba.Chart.Interface.Window.prototype.shadow=null;
Jacuba.Chart.Interface.Window.prototype.closeHandler=null;
Jacuba.Chart.Interface.Window.prototype.createHTML=function(){
var html=document.createElement("DIV");
html.style.display="none";
var win=document.createElement("DIV");
win.className="window";
win.style.zIndex=this.zindex;
win.style.position="absolute";
html.appendChild(win);
var _793=document.createElement("DIV");
_793.className="drop-shadow";
_793.style.zIndex=this.zindex-1;
_793.style.position="absolute";
html.appendChild(_793);
this.html=html;
this.win=win;
this.shadow=_793;
var _794=document.createElement("TABLE");
_794.border=0;
_794.cellPadding=0;
_794.cellSpacing=0;
_794.style.width="100%";
_794.style.height="100%";
var _795=document.createElement("TBODY");
this.tbody=_795;
_794.appendChild(_795);
var tr=document.createElement("TR");
tr.style.height="0%";
_795.appendChild(tr);
var td=document.createElement("TD");
tr.appendChild(td);
win.appendChild(_794);
var _796=document.createElement("DIV");
_796.className="title";
td.appendChild(_796);
this.title=_796;
tr=document.createElement("TR");
tr.style.height="100%";
_795.appendChild(tr);
td=document.createElement("TD");
td.style.verticalAlign="top";
tr.appendChild(td);
var _797=document.createElement("DIV");
_797.className="content";
td.appendChild(_797);
this.content=_797;
if(this.width!=null){
this.win.style.width=this.width+"px";
}
if(this.height!=null){
this.win.style.width=this.height+"px";
}
Jacuba.debug("Created popup HTML: "+this.html.innerHTML);
};
Jacuba.Chart.Interface.Window.prototype.getZIndex=function(){
return this.zindex;
};
Jacuba.Chart.Interface.Window.prototype.setZIndex=function(_798){
this.zindex=_798;
this.win.style.zIndex=_798;
this.shadow.style.zIndex=_798-1;
};
Jacuba.Chart.Interface.Window.prototype.setTitle=function(_799){
this.title.innerHTML=_799;
};
Jacuba.Chart.Interface.Window.prototype.setContent=function(_800){
this.content.innerHTML=_800;
};
Jacuba.Chart.Interface.Window.prototype.addButton=function(text,_801){
var butt=document.createElement("INPUT");
butt.type="SUBMIT";
butt.value=text;
var t=this;
butt.onclick=function(){
if(_801!=null){
_801();
}
t.close();
};
var td=this.buttons;
if(td==null){
var tr=document.createElement("TR");
tr.style.height="0%";
this.tbody.appendChild(tr);
td=document.createElement("TD");
td.className="buttons";
tr.appendChild(td);
this.buttons=td;
}
td.appendChild(butt);
};
Jacuba.Chart.Interface.Window.prototype.setContentNode=function(_803){
while(this.content.firstChild!=null){
this.content.removeChild(this.content.firstChild);
}
this.content.appendChild(_803);
};
Jacuba.Chart.Interface.Window.prototype.bind=function(_804){
if(_804==null&&this.html!=null){
_804=this.html.parentNode;
}
if(this.html.parentNode!=null&&this.html.parentNode!=_804){
this.html.parentNode.removeChild(this.html);
}
if(this.html.parentNode==null||this.html.parentNode.nodeName=="#document-fragment"){
if(_804!=null){
_804.appendChild(this.html);
Jacuba.debug("Adding popup to specified container");
}else{
var body=document.getElementsByTagName("BODY")[0];
body.appendChild(this.html);
Jacuba.debug("Adding popup to body");
}
}else{
Jacuba.debug("Popup already added to "+this.html.parentNode.nodeName);
}
};
Jacuba.Chart.Interface.Window.prototype.open=function(_806,top,left){
if(_806==null&&this.html!=null){
_806=this.html.parentNode;
}
if(this.html.parentNode!=null&&this.html.parentNode!=_806){
this.html.parentNode.removeChild(this.html);
}
if(this.html.parentNode==null||this.html.parentNode.nodeName=="#document-fragment"){
if(_806!=null){
_806.appendChild(this.html);
Jacuba.debug("Adding popup to specified container");
}else{
var body=document.getElementsByTagName("BODY")[0];
body.appendChild(this.html);
Jacuba.debug("Adding popup to body");
}
}else{
Jacuba.debug("Popup already added to "+this.html.parentNode.nodeName);
}
this.html.style.display="";
var _807=this.width;
var _808=this.height;
if(this.width!=null){
this.win.style.width=this.width+"px";
this.shadow.style.width=this.width+"px";
}else{
this.win.style.visibility="hidden";
this.html.style.display="";
this.win.style.overflow="visible";
_807=this.win.offsetWidth;
this.shadow.style.width=_807;
this.html.style.display="none";
this.win.style.visibility="";
}
if(this.height!=null){
this.win.style.height=this.height+"px";
this.shadow.style.height=this.height+"px";
}else{
this.win.style.visibility="hidden";
this.html.style.display="";
this.win.style.overflow="visible";
_808=this.win.offsetHeight;
this.shadow.style.height=_808;
this.html.style.display="none";
this.win.style.visibility="";
}
if(_806!=null){
if(top==null){
top=(_806.offsetHeight-_808)/2;
}
if(left==null){
left=(_806.offsetWidth-_807)/2;
}
}
this.win.style.top=top+"px";
this.win.style.left=left+"px";
this.shadow.style.top=top+"px";
this.shadow.style.left=left+"px";
this.html.style.display="";
};
Jacuba.Chart.Interface.Window.prototype.getWidth=function(){
var _809;
if(this.html.style.display=="none"){
var _810=null;
if(this.html.parenNode==null){
_810=document.getElementsByTagName("BODY")[0];
_810.appendChild(this.html);
}
this.html.style.visibility="hidden";
this.html.style.display="";
_809=this.win.offsetWidth;
this.html.style.display="none";
this.html.style.visibility="";
if(_810!=null){
_810.removeChild(this.html);
}
}else{
_809=this.win.offsetWidth;
}
return _809;
};
Jacuba.Chart.Interface.Window.prototype.getHeight=function(){
var _811;
if(this.html.style.display=="none"){
var _812=null;
if(this.html.parenNode==null){
_812=document.getElementsByTagName("BODY")[0];
_812.appendChild(this.html);
}
this.html.style.visibility="hidden";
this.html.style.display="";
_811=this.win.offsetHeight;
this.html.style.display="none";
this.html.style.visibility="";
if(_812!=null){
_812.removeChild(this.html);
}
}else{
_811=this.win.offsetHeight;
}
return _811;
};
Jacuba.Chart.Interface.Window.prototype.setCloseHandler=function(fn){
this.closeHandler=fn;
};
Jacuba.Chart.Interface.Window.prototype.close=function(){
if(this.html){
this.html.style.display="none";
}
if(this.closeHandler!=null){
this.closeHandler(this);
}
};
Jacuba.Chart.Interface.Window.prototype.dispose=function(){
this.html.parentNode.removeChild(this.html);
};
Jacuba.Chart.Interface.ColorSelector=function(stub,_813){
this.html=stub;
this.iface=_813;
this.root_container=_813;
var a=document.createElement("A");
a.href="javascript:void(0);";
stub.onerror=function(){
Jacuba.Chart.ImageManager.setSrc(this,Jacuba.Chart.TRANSP_IMG);
};
var _814=stub.parentNode;
_814.insertBefore(a,stub);
_814.removeChild(stub);
a.appendChild(stub);
var t=this;
a.onclick=function(e){
if(!t.disabled){
var x,y;
if(navigator.appName.indexOf("Microsoft")!=-1){
e=window.event;
x=e.clientX;
y=e.clientY;
}else{
x=e.pageX;
y=e.pageY;
}
x-=Jacuba.Chart.Util.getOffsetX(t.iface.html);
y-=Jacuba.Chart.Util.getOffsetY(t.iface.html);
x+=10;
var _815=t.iface.html.offsetWidth;
var _816=Jacuba.Chart.Interface.ColorSelector.getSelectionWindow().window.getWidth();
if(x+_816>_815-10){
x-=_816+10;
if(x<0){
x=_815-10-_816;
}
}
var _817=t.iface.html.offsetHeight;
var _818=Jacuba.Chart.Interface.ColorSelector.getSelectionWindow().window.getHeight();
if(y+_818>_817-10){
y-=_818+10;
if(y<0){
y=_817-10-_818;
}
}
Jacuba.Chart.Interface.ColorSelector.getSelectionWindow().useFor(t,y,x);
}
return false;
};
this.ohtml=a;
};
Jacuba.Chart.Interface.ColorSelector.DEFAULT_COLORS=new Array("#FF5555","#5555FF","#55FF55","#FFFF55","#FF55FF","#55FFFF","#FFAFAF","#808080","#C00000","#0000C0","#00C000","#C0C000","#C000C0","#00C0C0","#404040");
Jacuba.Chart.Interface.ColorSelector.prototype.disabled=false;
Jacuba.Chart.Interface.ColorSelector.prototype.getColor=function(){
var c=this.html.style.backgroundColor;
if(c.charAt(0)!="#"&&c.indexOf("(")!=-1){
start=c.indexOf("(");
end=c.lastIndexOf(")");
var a=c.substring(start+1,end).split(",");
var r=parseInt(a[0]).toString(16);
if(r.length<2){
r="0"+r;
}
var g=parseInt(a[1]).toString(16);
if(g.length<2){
g="0"+g;
}
var b=parseInt(a[2]).toString(16);
if(b.length<2){
b="0"+b;
}
c="#"+r+g+b;
}
return c;
};
Jacuba.Chart.Interface.ColorSelector.prototype.setRootContainer=function(_821){
this.root_container=_821;
};
Jacuba.Chart.Interface.ColorSelector.prototype.init=function(){
};
Jacuba.Chart.Interface.ColorSelector.prototype.setValue=function(_822){
this.setColor(_822);
};
Jacuba.Chart.Interface.ColorSelector.prototype.getValue=function(){
return this.getColor();
};
Jacuba.Chart.Interface.ColorSelector.prototype.getInputs=function(){
return new Array(0);
};
Jacuba.Chart.Interface.ColorSelector.prototype.isDisabled=function(){
return this.disabled;
};
Jacuba.Chart.Interface.ColorSelector.prototype.setDisabled=function(_823){
this.disabled=_823;
if(_823){
this.html.className="disabled-colorselector";
}else{
this.html.className="";
}
};
Jacuba.Chart.Interface.ColorSelector.prototype.modalBlock=function(_824){
this.setDisabled(_824);
};
Jacuba.Chart.Interface.ColorSelector.prototype.addListener=Jacuba.Chart.Interface.Field.COMMON.addListener;
Jacuba.Chart.Interface.ColorSelector.prototype.removeListener=Jacuba.Chart.Interface.Field.COMMON.removeListener;
Jacuba.Chart.Interface.ColorSelector.prototype.broadcastChange=Jacuba.Chart.Interface.Field.COMMON.broadcastChange;
Jacuba.Chart.Interface.ColorSelector.prototype.setColor=function(_825){
_825=Jacuba.Chart.Util.getRGB(_825);
this.html.style.backgroundColor=_825;
this.broadcastChange();
};
Jacuba.Chart.Interface.ColorSelector.DEFAULT_COLOR="#000000";
Jacuba.Chart.Interface.ColorSelector.createStub=function(_826,_827,_828){
if(!_826){
_826=Jacuba.Chart.Interface.ColorSelector.DEFAULT_COLOR;
}
_826=Jacuba.Chart.Util.getRGB(_826);
var stub=document.createElement("IMG");
stub.style.border="1px solid black";
stub.style.backgroundColor=_826;
if(_827!=null){
stub.style.width=_827+"";
}
if(_828!=null){
stub.style.height=_828+"";
}
Jacuba.Chart.ImageManager.setSrc(stub,Jacuba.Chart.TRANSP_IMG);
Jacuba.Chart.ImageManager.setClassName(stub,"color-selector");
return stub;
};
Jacuba.Chart.Interface.ColorSelector.distributedColor=function(_829){
if(_829<0){
return "#FFFFFF";
}
if(_829<Jacuba.Chart.Interface.ColorSelector.DEFAULT_COLORS.length){
return Jacuba.Chart.Interface.ColorSelector.DEFAULT_COLORS[_829];
}
_829-=Jacuba.Chart.Interface.ColorSelector.DEFAULT_COLORS.length;
var c;
var _830=Math.floor(_829/6)+1;
var _831=_829%6;
switch(_831){
case 0:
c=16711680;
break;
case 1:
c=65280;
break;
case 2:
c=255;
break;
case 3:
c=16776960;
break;
case 4:
c=16711935;
break;
case 5:
c=65535;
break;
}
c=Math.floor(c/_830);
var _832=c.toString(16);
while(_832.length<6){
_832="0"+_832;
}
return "#"+_832;
};
Jacuba.Chart.Interface.ColorSelector.Window=function(_833,_834,_835,_836){
if(_836==null){
_836=_835;
}
if(_835!=null){
this.cell_width=_835;
}
if(_836!=null){
this.cell_height=_836;
}
this.window=new Jacuba.Chart.Interface.Window(280);
this.window.addButton(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"Cancel"));
var t=this;
this.window.setCloseHandler(function(){
t.close();
});
this.window.setTitle(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"Choose_Color"));
var _837=document.createElement("TABLE");
var _838=document.createElement("TBODY");
_837.cellPadding="0";
_837.cellSpacing="1";
_837.border="0";
_837.appendChild(_838);
_837.className="colors";
var hex=new Array("00","33","66","99","CC","FF");
var _840=216;
var _841=this.cells_per_line/6;
var _842=Math.ceil(_840/this.cells_per_line);
var _843=this.cells_per_line*6;
var _844=new Array();
for(var r=0;r<hex.length;r++){
for(var g=0;g<hex.length;g++){
for(var b=0;b<hex.length;b++){
var _845=(r/_841)*_843;
_844[(Math.floor(r/_841)*_843)+(g*this.cells_per_line)+((r%_841)*6)+b]="#"+hex[r]+hex[g]+hex[b];
}
}
}
var tr=null;
for(var x=0;x<_844.length;x++){
if(x%this.cells_per_line==0){
tr=document.createElement("TR");
_838.appendChild(tr);
}
var ch=document.createElement("TD");
ch.innerHTML="<DIV style='margin: 0px; display: inline; width: "+this.cell_width+"px; height: "+this.cell_height+"px' class='color-cell'><IMG width='"+this.cell_width+"' height='"+this.cell_height+"'></DIV>";
var img=ch.firstChild.firstChild;
Jacuba.Chart.ImageManager.setSrc(img,Jacuba.Chart.TRANSP_IMG);
var cel=ch.firstChild;
var _848=_844[x];
cel.style.backgroundColor=_848;
ch.style.backgroundColor=_848;
var t=this;
cel.onclick=this.select_function(_848);
tr.appendChild(ch);
}
var _849=document.createElement("DIV");
_849.align="center";
_849.appendChild(_837);
this.window.setContentNode(_849);
};
Jacuba.Chart.Interface.ColorSelector.Window.prototype.bound=false;
Jacuba.Chart.Interface.ColorSelector.Window.prototype.width=156;
Jacuba.Chart.Interface.ColorSelector.Window.prototype.height=135;
Jacuba.Chart.Interface.ColorSelector.Window.prototype.cell_width=12;
Jacuba.Chart.Interface.ColorSelector.Window.prototype.cell_height=12;
Jacuba.Chart.Interface.ColorSelector.Window.prototype.cells_per_line=18;
Jacuba.Chart.Interface.ColorSelector.Window.prototype.selector=null;
Jacuba.Chart.Interface.ColorSelector.Window.prototype.useFor=function(_850,top,left){
if(this.selector!=null){
return;
}
this.window.open(_850.iface.html,top,left);
this.selector=_850;
_850.root_container.modalBlock(true);
};
Jacuba.Chart.Interface.ColorSelector.Window.prototype.select_function=function(_851){
var t=this;
return function(){
t.select(_851);
};
};
Jacuba.Chart.Interface.ColorSelector.Window.prototype.select=function(_852){
this.selector.setColor(_852);
this.window.close();
};
Jacuba.Chart.Interface.ColorSelector.Window.prototype.close=function(){
this.selector.root_container.modalBlock(false);
this.selector=null;
};
Jacuba.Chart.Interface.ColorSelector.getSelectionWindow=function(){
if(!Jacuba.Chart.Interface.ColorSelector.SELECTION_WINDOW){
Jacuba.Chart.Interface.ColorSelector.SELECTION_WINDOW=new Jacuba.Chart.Interface.ColorSelector.Window();
Jacuba.Chart.Interface.ColorSelector.SELECTION_WINDOW.window.setZIndex(100);
}
return Jacuba.Chart.Interface.ColorSelector.SELECTION_WINDOW;
};
Jacuba.Chart.Interface.FillSelector=function(stub,_853){
this.html=stub;
this.iface=_853;
this.root_container=_853;
var a=document.createElement("A");
a.href="javascript:void(0);";
stub.onerror=function(){
Jacuba.Chart.ImageManager.setSrc(this,Jacuba.Chart.TRANSP_IMG);
};
var _854=stub.parentNode;
_854.insertBefore(a,stub);
_854.removeChild(stub);
a.appendChild(stub);
var t=this;
a.onclick=function(e){
if(!t.disabled){
var x,y;
if(navigator.appName.indexOf("Microsoft")!=-1){
e=window.event;
x=e.clientX;
y=e.clientY;
}else{
x=e.pageX;
y=e.pageY;
}
x-=Jacuba.Chart.Util.getOffsetX(t.iface.html);
y-=Jacuba.Chart.Util.getOffsetY(t.iface.html);
x+=10;
var _855=t.iface.html.offsetWidth;
var _856=Jacuba.Chart.Interface.FillSelector.getSelectionWindow().window.getWidth();
if(x+_856>_855-10){
x-=_856+10;
if(x<0){
x=_855-10-_856;
}
}
var _857=t.iface.html.offsetHeight;
var _858=Jacuba.Chart.Interface.FillSelector.getSelectionWindow().window.getHeight();
if(y+_858>_857-10){
y-=_858+10;
if(y<0){
y=_857-10-_858;
}
}
Jacuba.Chart.Interface.FillSelector.getSelectionWindow().useFor(t,y,x);
}
return false;
};
this.ohtml=a;
};
Jacuba.Chart.Interface.FillSelector.prototype.may_set_opacity=true;
Jacuba.Chart.Interface.FillSelector.prototype.may_set_gradient_fn=null;
Jacuba.Chart.Interface.FillSelector.createStub=function(_859,_860,_861){
var _862=null;
if(_859!=null){
var _863=new Jacuba.Chart.Interface.FillSelector.Value(_859);
_862=Jacuba.Chart.Util.getRGB(_863.getColor1());
}
if(!_862){
_862=Jacuba.Chart.Interface.ColorSelector.DEFAULT_COLOR;
}
var stub=document.createElement("IMG");
stub.style.border="1px solid black";
stub.style.backgroundColor=_862;
if(_860!=null){
stub.style.width=_860+"";
}
if(_861!=null){
stub.style.height=_861+"";
}
Jacuba.Chart.ImageManager.setSrc(stub,Jacuba.Chart.TRANSP_IMG);
Jacuba.Chart.ImageManager.setClassName(stub,"color-selector");
return stub;
};
Jacuba.Chart.Interface.FillSelector.prototype.init=function(){
};
Jacuba.Chart.Interface.FillSelector.prototype.setValue=function(_864){
Jacuba.debug("FillSelector setting value to "+_864);
this.value=new Jacuba.Chart.Interface.FillSelector.Value(_864);
Jacuba.debug("Fill value has been set to "+this.value);
this.setColor(this.value.color1);
var url;
if(this.value.color1==this.value.color2&&(this.value.color1.length==7||this.value.color1.toLowerCase().indexOf("#ff")==0)){
url=Jacuba.Chart.TRANSP_IMG;
}else{
var _865=this.html.offsetWidth-2;
if(_865<=0){
_865=13;
}
var _866=this.html.offsetWidth-2;
if(_866<=0){
_866=13;
}
url=Jacuba.Chart.GRADIENT_PREVIEW_URL;
url+="?color1="+this.value.color1.substring(1);
url+="&color2="+this.value.color2.substring(1);
url+="&angle="+this.value.angle;
url+="&width="+_865;
url+="&height="+_866;
url+="&type=linear";
}
Jacuba.Chart.ImageManager.setSrc(this.html,url);
this.broadcastChange();
};
Jacuba.Chart.Interface.FillSelector.prototype.getValue=function(){
return this.value!=null?this.value.toString():this.getColor();
};
Jacuba.Chart.Interface.FillSelector.prototype.getInputs=function(){
return new Array(0);
};
Jacuba.Chart.Interface.FillSelector.prototype.isDisabled=function(){
return this.disabled;
};
Jacuba.Chart.Interface.FillSelector.prototype.setDisabled=function(_867){
this.disabled=_867;
if(_867){
this.html.className="disabled-colorselector";
}else{
this.html.className="";
}
};
Jacuba.Chart.Interface.FillSelector.prototype.modalBlock=function(_868){
this.setDisabled(_868);
};
Jacuba.Chart.Interface.FillSelector.prototype.addListener=Jacuba.Chart.Interface.Field.COMMON.addListener;
Jacuba.Chart.Interface.FillSelector.prototype.removeListener=Jacuba.Chart.Interface.Field.COMMON.removeListener;
Jacuba.Chart.Interface.FillSelector.prototype.broadcastChange=Jacuba.Chart.Interface.Field.COMMON.broadcastChange;
Jacuba.Chart.Interface.FillSelector.prototype.getColor=function(){
var c=this.html.style.backgroundColor;
if(c.charAt(0)!="#"&&c.indexOf("(")!=-1){
start=c.indexOf("(");
end=c.lastIndexOf(")");
var a=c.substring(start+1,end).split(",");
var r=parseInt(a[0]).toString(16);
if(r.length<2){
r="0"+r;
}
var g=parseInt(a[1]).toString(16);
if(g.length<2){
g="0"+g;
}
var b=parseInt(a[2]).toString(16);
if(b.length<2){
b="0"+b;
}
c="#"+r+g+b;
}
return c;
};
Jacuba.Chart.Interface.FillSelector.prototype.setColor=function(_869){
_869=Jacuba.Chart.Util.getRGB(_869);
this.html.style.backgroundColor=_869;
};
Jacuba.Chart.Interface.FillSelector.prototype.getColor1=function(){
return this.value!=null?this.value.getColor1():this.getColor();
};
Jacuba.Chart.Interface.FillSelector.prototype.getColor2=function(){
return this.value!=null?this.value.getColor2():this.getColor();
};
Jacuba.Chart.Interface.FillSelector.prototype.getAngle=function(){
return this.value!=null?this.value.getAngle():0;
};
Jacuba.Chart.Interface.FillSelector.prototype.getMode=function(){
return this.value!=null?this.value.getMode():"color";
};
Jacuba.Chart.Interface.FillSelector.prototype.setSolid=function(b){
this.may_set_opacity=!b;
};
Jacuba.Chart.Interface.FillSelector.prototype.maySetOpacity=function(){
return this.may_set_opacity;
};
Jacuba.Chart.Interface.FillSelector.prototype.setMaySetGradientFunction=function(fn){
this.may_set_gradient_fn=fn;
};
Jacuba.Chart.Interface.FillSelector.prototype.maySetGradient=function(){
return this.may_set_gradient_fn?this.may_set_gradient_fn():true;
};
Jacuba.Chart.Interface.FillSelector.Value=function(_870){
if(_870.indexOf("#")==0){
this.mode="color";
this.color1=_870;
this.color2=_870;
this.angle=0;
}else{
if(_870.indexOf("linear(")==0){
this.mode="linear";
var pos=_870.lastIndexOf(")");
var a=_870.substring(7,pos).split(",");
this.color1=a[0];
this.color2=a[1];
this.angle=parseInt(a[2]);
}
}
};
Jacuba.Chart.Interface.FillSelector.Value.prototype.setMode=function(mode){
if(mode!="color"&&mode!="linear"){
alert("! Invalid mode: "+mode);
return;
}
this.mode=mode;
};
Jacuba.Chart.Interface.FillSelector.Value.prototype.getMode=function(){
return this.mode;
};
Jacuba.Chart.Interface.FillSelector.Value.prototype.setColor1=function(_873){
this.color1=_873;
};
Jacuba.Chart.Interface.FillSelector.Value.prototype.setColor2=function(_874){
this.color2=_874;
};
Jacuba.Chart.Interface.FillSelector.Value.prototype.getColor1=function(_875){
return this.color1;
};
Jacuba.Chart.Interface.FillSelector.Value.prototype.getColor2=function(_876){
return this.color2;
};
Jacuba.Chart.Interface.FillSelector.Value.prototype.setAngle=function(_877){
_877=parseInt(_877);
var mag=_877<0?-_877:_877;
if(mag!=0&&mag!=90&&mag!=180&&mag!=270){
alert("! Illegal angle: "+_877);
}
this.angle=color;
};
Jacuba.Chart.Interface.FillSelector.Value.prototype.getAngle=function(){
return this.angle;
};
Jacuba.Chart.Interface.FillSelector.Value.prototype.toString=function(){
if(this.mode=="color"){
return this.color1;
}
if(this.mode=="linear"){
return "linear("+this.color1+","+this.color2+","+this.angle+")";
}
};
Jacuba.Chart.Interface.FillSelector.windows=new Object();
Jacuba.Chart.Interface.FillSelector.Window=function(_879,_880,_881){
this.id=(Jacuba.Chart.Interface.FillSelector.Window.id_counter++)+"";
Jacuba.Chart.Interface.FillSelector.windows[this.id]=this;
this.window=new Jacuba.Chart.Interface.Window(210);
var t=this;
var _882=function(){
t.okayed();
};
this.color_change_adaptor=new Object();
this.color_change_adaptor.fieldChanged=function(){
t.updatePreview();
};
this.window.addButton(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"Okay"),_882);
this.window.addButton(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"Cancel"));
var t=this;
this.window.setCloseHandler(function(){
t.close();
});
this.window.setTitle(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"Fill_style"));
var _883=document.createElement("DIV");
var _884=document.createElement("TABLE");
_883.appendChild(_884);
_884.cellPadding=0;
_884.cellSpacing=0;
_884.style.width="100%";
var _885=document.createElement("TBODY");
_884.appendChild(_885);
var tr=document.createElement("TR");
_885.appendChild(tr);
var td=document.createElement("TD");
tr.appendChild(td);
td.className="fill-left";
var _886=td;
var _887=tr;
var _888=function(){
if(t.pending_preview!=null){
window.clearTimeout(t.pending_preview);
t.pending_preview=null;
}else{
t.updatePreview();
}
t.pending_preview=window.setTimeout("var t = Jacuba.Chart.Interface.FillSelector.windows['"+t.id+"']; t.updatePreview(); t.pending_preview = null;",1000);
};
_886.innerHTML=Jacuba.TextManager.getText("chart","color1")+" ";
this.color1_place=document.createElement("SPAN");
_886.appendChild(this.color1_place);
_886.appendChild(document.createElement("BR"));
this.color1_opacity_place=document.createElement("NOBR");
_886.appendChild(this.color1_opacity_place);
this.color1_opacity_place.appendChild(document.createTextNode(Jacuba.TextManager.getText("chart","opacity")+" "));
this.color1_opacity=document.createElement("INPUT");
this.color1_opacity_place.appendChild(this.color1_opacity);
this.color1_opacity.type="TEXT";
this.color1_opacity.className="percent";
this.color1_opacity.onkeyup=_888;
this.color1_opacity_place.appendChild(document.createTextNode("%"));
td=document.createElement("TD");
td.className="fill-right";
_887.appendChild(td);
td.innerHTML=Jacuba.TextManager.getText("chart","Preview")+"<BR>";
this.grad_preview=document.createElement("IMG");
this.grad_preview.onerror=function(){
this.src=Jacuba.Chart.TRANSP_IMG;
};
this.grad_preview.style.width="32px";
this.grad_preview.style.height="32px";
this.grad_preview.className="grad-preview";
td.appendChild(this.grad_preview);
var _889=document.createElement("DIV");
_889.className="grad-panel";
_883.appendChild(_889);
var _890=document.createElement("DIV");
_890.className="toggle-area";
_889.appendChild(_890);
var nobr=document.createElement("NOBR");
_890.appendChild(nobr);
var _891=document.createElement("LABEL");
nobr.appendChild(_891);
var _892=document.createElement("INPUT");
_892.type="CHECKBOX";
var t=this;
_892.onclick=function(){
t.gradientToggled();
};
this.grad_checkbox=_892;
_891.appendChild(_892);
_891.appendChild(document.createTextNode(Jacuba.TextManager.getText("chart","Gradient_fill")));
var _893=document.createElement("DIV");
_893.className="grad-content";
_889.appendChild(_893);
this.grad_content=_893;
_893.appendChild(document.createTextNode(Jacuba.TextManager.getText("chart","color2")+" "));
this.color2_place=document.createElement("SPAN");
_893.appendChild(this.color2_place);
this.color2_opacity_place=document.createElement("NOBR");
this.color2_opacity_place.className="opacity-place";
_893.appendChild(this.color2_opacity_place);
this.color2_opacity_place.appendChild(document.createTextNode(Jacuba.TextManager.getText("chart","opacity")+" "));
this.color2_opacity=document.createElement("INPUT");
this.color2_opacity_place.appendChild(this.color2_opacity);
this.color2_opacity.type="TEXT";
this.color2_opacity.className="percent";
this.color2_opacity.onkeyup=_888;
this.color2_opacity_place.appendChild(document.createTextNode("%"));
var nobr=document.createElement("DIV");
nobr.className="direction-place";
_893.appendChild(nobr);
nobr.innerHTML=Jacuba.TextManager.getText("chart","Direction")+" ";
var _894=document.createElement("SELECT");
nobr.appendChild(_894);
_894.options[_894.options.length]=new Option("0","0");
_894.options[_894.options.length]=new Option("90","90");
_894.options[_894.options.length]=new Option("180","180");
_894.options[_894.options.length]=new Option("270","270");
var sup=document.createElement("SUP");
sup.innerHTML="o";
nobr.appendChild(sup);
_894.onchange=function(){
t.updatePreview();
};
this.direction_selector=_894;
this.window.setContentNode(_883);
};
Jacuba.Chart.Interface.FillSelector.Window.id_counter=0;
Jacuba.Chart.Interface.FillSelector.Window.prototype.bound=false;
Jacuba.Chart.Interface.FillSelector.Window.prototype.width=156;
Jacuba.Chart.Interface.FillSelector.Window.prototype.height=135;
Jacuba.Chart.Interface.FillSelector.Window.prototype.cell_size=15;
Jacuba.Chart.Interface.FillSelector.Window.prototype.selector=null;
Jacuba.Chart.Interface.FillSelector.Window.prototype.blocked=false;
Jacuba.Chart.Interface.FillSelector.Window.prototype.gradient_permitted=true;
Jacuba.Chart.Interface.FillSelector.Window.prototype.pending_preview=null;
Jacuba.Chart.Interface.FillSelector.Window.prototype.useFor=function(_896,top,left){
if(this.selector!=null){
return;
}
this.selector=_896;
this.color1_selector=null;
this.color2_selector=null;
Jacuba.Chart.Util.clearNode(this.color1_place);
var stub=Jacuba.Chart.Interface.ColorSelector.createStub(_896.getColor1(),"1em","1em");
this.color1_place.appendChild(stub);
this.color1_selector=new Jacuba.Chart.Interface.ColorSelector(stub,_896.iface);
this.color1_selector.setRootContainer(this);
this.color1_selector.addListener(this.color_change_adaptor);
this.color1_opacity.value=Jacuba.Chart.Util.hexToPercent(Jacuba.Chart.Util.getAlpha(_896.getColor1()));
Jacuba.Chart.Util.clearNode(this.color2_place);
var _897=_896.getMode()=="linear"?_896.getColor2():"#000000";
stub=Jacuba.Chart.Interface.ColorSelector.createStub(_897,"1em","1em");
this.color2_place.appendChild(stub);
this.color2_selector=new Jacuba.Chart.Interface.ColorSelector(stub,_896.iface);
this.color2_selector.setRootContainer(this);
this.color2_selector.addListener(this.color_change_adaptor);
this.color2_opacity.value=Jacuba.Chart.Util.hexToPercent(Jacuba.Chart.Util.getAlpha(_896.getColor2()));
var dir=_896.getMode()=="linear"?Jacuba.Chart.Interface.FillSelector.Window.normaliseAngle(_896.getAngle()):90;
this.setDirection(dir);
this.updatePreview();
if(_896.maySetOpacity()){
this.color1_opacity_place.style.display="";
this.color2_opacity_place.style.display="";
}else{
this.color1_opacity_place.style.display="none";
this.color2_opacity_place.style.display="none";
}
this.window.open(_896.iface.html,top,left);
this.gradient_permitted=_896.maySetGradient();
this.grad_checkbox.checked=this.gradient_permitted&&_896.getMode()=="linear";
this.grad_checkbox.disabled=!this.gradient_permitted;
this.grad_checkbox.parentNode.className=this.gradient_permitted?"":"disabled";
this.gradientToggled();
_896.root_container.modalBlock(true);
};
Jacuba.Chart.Interface.FillSelector.Window.prototype.okayed=function(){
var _899=this.color1_selector.getColor();
if(this.color1_opacity.value!=null&&this.color1_opacity.value.length!=0){
var _900=parseInt(this.color1_opacity.value);
_900=Jacuba.Chart.Interface.FillSelector.Window.convertOpacity(_900);
_899="#"+_900+_899.substring(1);
}
if(this.grad_checkbox.checked){
var _901=this.color2_selector.getColor();
if(this.color2_opacity.value!=null&&this.color2_opacity.value.length!=0){
var _902=this.color2_opacity.value;
_902=Jacuba.Chart.Interface.FillSelector.Window.convertOpacity(_902);
_901="#"+_902+_901.substring(1);
}
this.selector.setValue(_899==_901?_899:"linear("+_899+","+_901+","+this.getDirection()+")");
}else{
this.selector.setValue(_899);
}
};
Jacuba.Chart.Interface.FillSelector.Window.convertOpacity=function(_903){
if(isNaN(_903)){
_903=100;
}
if(_903>100){
_903=100;
}
if(_903<0){
_903=0;
}
var _904=Jacuba.Chart.Util.percentToHex(_903);
return _904;
};
Jacuba.Chart.Interface.FillSelector.Window.prototype.close=function(){
this.selector.root_container.modalBlock(false);
this.selector=null;
};
Jacuba.Chart.Interface.FillSelector.Window.prototype.modalBlock=function(_905){
if(this.color1_selector!=null){
this.color1_selector.modalBlock(_905);
}
if(this.color1_opacity!=null){
this.color1_opacity.disabled=_905;
}
if(this.gradient_permitted){
var b=!this.grad_checkbox.checked;
if(this.color2_selector!=null){
this.color2_selector.modalBlock(_905||b);
}
if(this.color2_opacity!=null){
this.color2_opacity.disabled=_905||b;
}
this.grad_content.className=_905||b?"grad-content-disabled":"grad-content";
this.direction_selector.disabled=_905||b;
if(document.all){
this.direction_selector.style.visibility=_905?"hidden":"visible";
}
this.grad_checkbox.disabled=_905;
}
this.blocked=_905;
};
Jacuba.Chart.Interface.FillSelector.Window.prototype.updatePreview=function(){
var _906=this.color1_selector.getColor();
var _907=parseInt(this.color1_opacity.value);
if(isNaN(_907)){
_907=100;
}
if(_907>100){
_907=100;
}
if(_907<0){
_907=0;
}
_907=Jacuba.Chart.Util.percentToHex(_907);
_906=_907+_906.substring(1);
var _908=null;
var _909=0;
if(this.grad_checkbox.checked){
_908=this.color2_selector.getColor();
var _910=parseInt(this.color2_opacity.value);
if(isNaN(_910)){
_910=100;
}
if(_910>100){
_910=100;
}
if(_910<0){
_910=0;
}
_910=Jacuba.Chart.Util.percentToHex(_910);
_908=_910+_908.substring(1);
_909=this.getDirection();
}else{
_908=_906;
}
var url;
if(_906==_908&&(_906.length==6||_906.toLowerCase().indexOf("ff")==0)){
url=Jacuba.Chart.TRANSP_IMG;
}else{
url=Jacuba.Chart.GRADIENT_PREVIEW_URL;
url+="?color1="+_906;
url+="&color2="+_908;
url+="&angle="+_909;
url+="&width=32";
url+="&height=32";
url+="&type=linear";
}
Jacuba.debug("Would request: "+url);
this.grad_preview.style.backgroundColor=this.color1_selector.getColor();
Jacuba.Chart.ImageManager.setSrc(this.grad_preview,url);
};
Jacuba.Chart.Interface.FillSelector.Window.prototype.setDirection=function(_911){
var _912=this.direction_selector.options;
for(var x=0;x<_912.length;x++){
if(_912[x].value==_911){
_912[x].selected=true;
}
}
};
Jacuba.Chart.Interface.FillSelector.Window.prototype.getDirection=function(){
var _913=this.direction_selector.options;
for(var x=0;x<_913.length;x++){
if(_913[x].selected){
return _913[x].value;
}
}
};
Jacuba.Chart.Interface.FillSelector.Window.normaliseAngle=function(_914){
while(_914>359){
_914-=360;
}
while(_914<-359){
_914+=360;
}
if(_914<0){
_914=360-_914;
}
return _914;
};
Jacuba.Chart.Interface.FillSelector.Window.prototype.gradientToggled=function(){
var b=!this.grad_checkbox.checked||!this.gradient_permitted;
if(this.color2_selector!=null){
this.color2_selector.setDisabled(b);
}
if(this.color2_opacity!=null){
this.color2_opacity.disabled=b;
}
this.direction_selector.disabled=b;
this.grad_content.className=b?"grad-content-disabled":"grad-content";
this.updatePreview();
};
Jacuba.Chart.Interface.FillSelector.getSelectionWindow=function(){
if(!Jacuba.Chart.Interface.FillSelector.SELECTION_WINDOW){
Jacuba.Chart.Interface.FillSelector.SELECTION_WINDOW=new Jacuba.Chart.Interface.FillSelector.Window();
Jacuba.Chart.Interface.FillSelector.SELECTION_WINDOW.window.setZIndex(50);
}
return Jacuba.Chart.Interface.FillSelector.SELECTION_WINDOW;
};
Jacuba.Chart.Interface.ArrayPalette=function(_915){
var _916=new Array();
for(var x=0;x<_915.length;x++){
if(!_915[x]){
var msg="Illegal agrument, no color defined at index "+x;
if(Jacuba.Coding){
throw new Jacuba.Coding.Exception(msg);
}else{
throw msg;
}
}
_916[x]=_915[x];
}
this.colors=_916;
};
Jacuba.Chart.Interface.ArrayPalette.prototype.getColor=function(_917){
var i=_917%this.colors.length;
return this.colors[i];
};
Jacuba.Chart.Interface.ArrayPalette.prototype.toString=function(){
var s="";
for(var x=0;x<this.colors.length;x++){
if(x!=0){
s+=", ";
}
s+=this.colors[x];
}
return s;
};
Jacuba.Chart.Util=new Object();
Jacuba.Chart.Util.moveMethod=function(_918,_919,_920){
var fn=_918[_919];
if(!fn){
throw "No method called \""+_919+"\" on "+_918;
}
var _921=_920;
if(!_918[_920]){
_918[_920]=fn;
}else{
var _922=2;
_921=_920+_922;
while(_918[_921]){
_922++;
tmp=_920+_922;
}
_918[_921]=fn;
}
return _921;
};
Jacuba.Chart.Util.trim=function(_923){
var temp=_923;
var obj=/^\s*((\S+)(\s+\S+)*)?\s*$/;
if(obj.test(temp)){
temp=temp.replace(obj,"$1");
}
return temp;
};
Jacuba.Chart.Util.hexToPercent=function(hex){
Jacuba.debug("HEX to percent "+hex);
if(typeof hex=="string"){
hex=parseInt(hex,16);
}
var _926=Math.round((hex*100)/255);
Jacuba.debug("   "+_926);
return _926;
};
Jacuba.Chart.Util.percentToHex=function(_927){
var _928=Math.round((_927*255)/100);
var _929=_928.toString(16);
if(_929.length<2){
_929="0"+_929;
}
return _929;
};
Jacuba.Chart.Util.getAlpha=function(_930){
if(_930.indexOf("#")!=0){
alert("! Invalid color: "+_930);
return _930;
}
if(_930.length==7){
return 255;
}
if(_930.length==9){
return parseInt(_930.substring(1,3),16);
}
alert("! Invalid color: "+_930);
return _930;
};
Jacuba.Chart.Util.getRGB=function(_931){
if(_931.indexOf("#")!=0){
alert("! Invalid color: "+_931);
return _931;
}
if(_931.length==7){
return _931;
}
if(_931.length==9){
return "#"+_931.substring(3,_931.length);
}
alert("! Invalid color: "+_931);
return _931;
};
Jacuba.Chart.Util.openHelp=function(){
var _932=450;
var _933=550;
var _934=Math.round((screen.height-_933)/2);
var _935=Math.round((screen.width-_932)/2);
window.open(Jacuba.Chart.HELP_URL,null,"scrollbars=yes,resizable=yes,width="+_932+",height="+_933+",left="+_935+",top="+_934);
};
Jacuba.Chart.Util.getTRs=function(elem,list){
if(elem.nodeName=="TR"){
list[list.length]=elem;
}else{
for(var x=elem.firstChild;x!=null;x=x.nextSibling){
Jacuba.Chart.Util.getTRs(x,list);
}
}
};
Jacuba.Chart.Util.getTRLevelElements=function(elem,list){
if(elem.nodeName=="TR"||elem.nodeName=="CAPTION"){
list[list.length]=elem;
}else{
for(var x=elem.firstChild;x!=null;x=x.nextSibling){
Jacuba.Chart.Util.getTRLevelElements(x,list);
}
}
};
Jacuba.Chart.Util.nodeTextValue=function(elem){
if(elem.nodeName.charAt(0)=="#"){
return elem.nodeValue;
}else{
var s="";
if(elem.nodeName=="IMG"){
var alt=elem.getAttribute("alt");
if(alt.length!=0){
s+=alt;
}
}
if(elem.nodeName=="INPUT"){
if(elem.type=="CHECKBOX"||elem.type=="RADIO"){
if(elem.checked){
s+=elem.value;
}
}else{
s+=elem.value;
}
}
if(elem.nodeName=="TEXTAREA"){
s+=elem.value;
}
if(elem.nodeName!="SCRIPT"){
for(var x=elem.firstChild;x!=null;x=x.nextSibling){
s+=Jacuba.Chart.Util.nodeTextValue(x);
}
}
return s;
}
};
Jacuba.Chart.Util.clearNode=function(node){
while(node.firstChild!=null){
node.removeChild(node.firstChild);
}
};
Jacuba.Chart.Util.getFirstNamedChild=function(_938,name){
for(var x=_938.firstChild;x!=null;x=x.nextSibling){
if(x.nodeName==name){
return x;
}
}
return null;
};
Jacuba.Chart.Util.moveToNextElement=function(_939,_940){
if(_939==null){
return null;
}
for(var x=_939.nextSibling;x!=null;x=x.nextSibling){
if(x.nodeName==_940){
return x;
}
}
return null;
};
Jacuba.Chart.Util.getFirstNamedDescendent=function(_941,name){
for(var x=_941.firstChild;x!=null;x=x.nextSibling){
if(x.nodeName==name){
return x;
}else{
var _942=Jacuba.Chart.Util.getFirstNamedDescendent(x,name);
if(_942!=null){
return _942;
}
}
}
return null;
};
Jacuba.Chart.Util.getId=function(pid){
var e=document.getElementById(pid);
var id=pid;
var _944=0;
while(e!=null){
id=pid+(_944++);
e=document.getElementById(id);
}
return id;
};
Jacuba.Chart.Util.makeKey=function(data){
return Jacuba.Chart.Util.sha1Hash(data);
};
Jacuba.Chart.Util.validateCriteria=function(_945){
var rows=_945.get("rows");
if(rows==null||rows.length==0){
return Jacuba.Chart.Util.getText("missing_rows");
}
var _946=_945.get("columns");
if(_946==null||_946.length==0){
return Jacuba.Chart.Util.getText("missing_columns");
}
var _947=_945.get("width");
if(_947==null||_947.length==0){
return Jacuba.Chart.Util.getText("missing_width");
}
if(!Jacuba.Chart.Util.isNumeric(_947)){
return Jacuba.Chart.Util.getText("bad_width");
}
var _948=_945.get("height");
if(_948==null||_948==0){
return Jacuba.Chart.Util.getText("missing_height");
}
if(!Jacuba.Chart.Util.isNumeric(_948)){
return Jacuba.Chart.Util.getText("bad_height");
}
var _949=_945.get("chart-type");
if(_949==null||_949.length==0){
return Jacuba.Chart.Util.getText("missing_chart_type");
}
if(_949=="bar"){
var _950=_945.get("bar-style");
if(_950==null||_950.length==0){
return Jacuba.Chart.Util.getText("missing_bar_style");
}
}
var msg=Jacuba.Chart.Util.validateAdvancedCriteria(_945);
if(msg!=null){
return msg;
}
return null;
};
Jacuba.Chart.Util.validateAdvancedCriteria=function(_951){
var _952=_951.get("datatype");
if(_952==null||_952.length==0){
_952="number";
}
var _953=_951.get("start-value");
if(_953!=null&&_953.length!=0){
if(_952=="number"&&!Jacuba.Chart.Util.isNumeric(_953)){
return Jacuba.Chart.Util.getText("bad_offset");
}
}
var _954=_951.get("end-value");
if(_954!=null&&_954.length!=0){
if(_952=="number"&&!Jacuba.Chart.Util.isNumeric(_954)){
return Jacuba.Chart.Util.getText("bad_length");
}
if(_953==null||_953.length==0){
return Jacuba.Chart.Util.getText("missing-offset");
}
if(_952=="number"){
var _955=parseFloat(_953);
var end=parseFloat(_954);
if(_955>=end){
return Jacuba.Chart.Util.getText("bad_offset_length");
}
}
}
var _957=new Array("","title-","legend-","label-");
for(var x=0;x<_957.length;x++){
var val=_951.get(_957[x]+"text-size");
if(val!=null&&val.length!=0){
var tmp=Jacuba.Chart.Util.validateTextSize(val);
if(tmp!=null){
return tmp;
}
}
}
return null;
};
Jacuba.Chart.Util.validateTextSize=function(val){
if(!Jacuba.Chart.Util.isNumeric(val)){
return Jacuba.Chart.Util.getText("bad_text_size");
}
var num=parseFloat(val);
if(num<=0){
return Jacuba.Chart.Util.getText("bad_text_size");
}
};
Jacuba.Chart.Util.isNumeric=function(s){
if(s==null||s.length==0){
return false;
}
var tmp=parseFloat(s);
if(isNaN(tmp)){
return false;
}
return true;
};
Jacuba.Chart.Util.DELIM_LETTERS=new Array("q","Q","z","Z","x","X","b","c","d","f","g","h","j","k","l","m","n","p","r","s","t","v","w","y","B","C","D","F","G","H","J","K","L","M","N","P","R","S","T","V","W","Y","A","a","e","E","I","i","O","o","U","u");
Jacuba.Chart.Util.chooseDelimeter=function(str){
var _958=52;
var _959=Jacuba.Chart.Util.getDelimeter(_958);
while(str.indexOf(_959)!=-1){
_958++;
_959=Jacuba.Chart.Util.getDelimeter(_958);
}
return _959;
};
Jacuba.Chart.Util.getDelimeter=function(_960){
var s="";
var _961=Jacuba.Chart.Util.DELIM_LETTERS.length;
var it=true;
while(it){
var i=_960%_961;
s=Jacuba.Chart.Util.DELIM_LETTERS[i]+s;
it=_960>_961-1;
_960=Math.floor(_960/_961)-1;
}
return s;
};
Jacuba.Chart.Util.escapeHTML=function(str){
if(str==null){
return "";
}
return str.toString().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&apos;").replace(/"/g,"&quot;");
};
Jacuba.Chart.Util.getText=function(key){
var a=new Array();
a[0]=Jacuba.Chart.LANGUAGE_MODULE;
for(var x=0;x<arguments.length;x++){
a[x+1]=arguments[x];
}
return Jacuba.TextManager.getText.apply(Jacuba.TextManager,a);
};
Jacuba.Chart.Util.sha1Hash=function(msg){
var K=[1518500249,1859775393,2400959708,3395469782];
msg_bytes=Jacuba.Chart.Util.utf8(msg);
msg_bytes[msg_bytes.length]=128;
var l=Math.ceil(msg_bytes.length/4)+2;
var N=Math.ceil(l/16);
var M=new Array(N);
for(var i=0;i<N;i++){
M[i]=new Array(16);
for(var j=0;j<16;j++){
M[i][j]=(msg_bytes[i*64+j*4]<<24)|(msg_bytes[i*64+j*4+1]<<16)|(msg_bytes[i*64+j*4+2]<<8)|(msg_bytes[i*64+j*4+3]);
}
}
M[N-1][14]=((msg_bytes.length-1)>>>30)*8;
M[N-1][15]=((msg_bytes.length-1)*8)&4294967295;
var H0=1732584193;
var H1=4023233417;
var H2=2562383102;
var H3=271733878;
var H4=3285377520;
var W=new Array(80);
var a,b,c,d,e;
for(var i=0;i<N;i++){
for(var t=0;t<16;t++){
W[t]=M[i][t];
}
for(var t=16;t<80;t++){
W[t]=Jacuba.Chart.Util.sha1HashROTL(W[t-3]^W[t-8]^W[t-14]^W[t-16],1);
}
a=H0;
b=H1;
c=H2;
d=H3;
e=H4;
for(var t=0;t<80;t++){
var s=Math.floor(t/20);
var T=(Jacuba.Chart.Util.sha1HashROTL(a,5)+Jacuba.Chart.Util.sha1HashF(s,b,c,d)+e+K[s]+W[t])&4294967295;
e=d;
d=c;
c=Jacuba.Chart.Util.sha1HashROTL(b,30);
b=a;
a=T;
}
H0=(H0+a)&4294967295;
H1=(H1+b)&4294967295;
H2=(H2+c)&4294967295;
H3=(H3+d)&4294967295;
H4=(H4+e)&4294967295;
}
return Jacuba.Chart.Util.sha1HashToHexStr(H0)+Jacuba.Chart.Util.sha1HashToHexStr(H1)+Jacuba.Chart.Util.sha1HashToHexStr(H2)+Jacuba.Chart.Util.sha1HashToHexStr(H3)+Jacuba.Chart.Util.sha1HashToHexStr(H4);
};
Jacuba.Chart.Util.utf8=function(wide){
var c,s;
var enc=new Array();
var i=0;
while(i<wide.length){
c=wide.charCodeAt(i++);
if(c>=56320&&c<57344){
continue;
}
if(c>=55296&&c<56320){
if(i>=wide.length){
continue;
}
s=wide.charCodeAt(i++);
if(s<56320||c>=56832){
continue;
}
c=((c-55296)<<10)+(s-56320)+65536;
}
if(c<128){
enc[enc.length]=c;
}else{
if(c<2048){
enc[enc.length]=192+(c>>6);
enc[enc.length]=128+(c&63);
}else{
if(c<65536){
enc[enc.length]=224+(c>>12);
enc[enc.length]=128+(c>>6&63);
enc[enc.length]=128+(c&63);
}else{
enc[enc.length]=240+(c>>18);
enc[enc.length]=128+(c>>12&63);
enc[enc.length]=128+(c>>6&63);
enc[enc.length]=128+(c&63);
}
}
}
}
return enc;
};
Jacuba.Chart.Util.sha1HashF=function(s,x,y,z){
switch(s){
case 0:
return (x&y)^(~x&z);
case 1:
return x^y^z;
case 2:
return (x&y)^(x&z)^(y&z);
case 3:
return x^y^z;
}
};
Jacuba.Chart.Util.sha1HashROTL=function(x,n){
return (x<<n)|(x>>>(32-n));
};
Jacuba.Chart.Util.sha1HashToHexStr=function(num){
var s="",v;
for(var i=7;i>=0;i--){
v=(num>>>(i*4))&15;
s+=v.toString(16);
}
return s;
};
Jacuba.Chart.Util.getOffsetX=function(elem){
var _978=elem.offsetLeft;
var _979=elem.offsetParent;
while(_979!=null){
_978+=_979.offsetLeft;
_979=_979.offsetParent;
}
return _978;
};
Jacuba.Chart.Util.getOffsetY=function(elem){
var _980=elem.offsetTop;
var _981=elem.offsetParent;
while(_981!=null){
_980+=_981.offsetTop;
_981=_981.offsetParent;
}
return _980;
};
Jacuba.Chart.Util.TABLE_ACCESS_MAP=null;
Jacuba.Chart.Util.getTR=function(_982,_983){
if(_982==null){
alert("no table supplied to getTR");
}
var _984=Jacuba.Chart.Util.getTableAccess(_982);
return _984.getTR(_983);
};
Jacuba.Chart.Util.getCell=function(_985,row,_986){
if(_985==null){
alert("no table supplied to getCell");
}
var _987=Jacuba.Chart.Util.getTableAccess(_985);
return _987.getCell(row,_986);
};
Jacuba.Chart.Util.numRows=function(_988){
if(_988==null){
alert("no table supplied to numRows");
}
var _989=Jacuba.Chart.Util.getTableAccess(_988);
return _989.numRows();
};
Jacuba.Chart.Util.numColumns=function(_990){
if(_990==null){
alert("no table supplied to numColumns");
}
var _991=Jacuba.Chart.Util.getTableAccess(_990);
return _991.numColumns();
};
Jacuba.Chart.Util.appendTR=function(_992,tr){
if(_992==null){
alert("no table supplied to numColumns");
}
var _993=Jacuba.Chart.Util.getTableAccess(_992);
return _993.appendTR(tr);
};
Jacuba.Chart.Util.insertTR=function(_994,_995,tr){
if(_994==null){
alert("no table supplied to numColumns");
}
var _996=Jacuba.Chart.Util.getTableAccess(_994);
return _996.insertTR(_995,tr);
};
Jacuba.Chart.Util.removeLastTR=function(_997){
if(_997==null){
alert("no table supplied to removeLastTR");
}
var _998=Jacuba.Chart.Util.getTableAccess(_997);
_998.removeLastTR();
};
Jacuba.Chart.Util.getTableAccess=function(_999){
if(_999==null){
alert("no table supplied to getTableAccess");
}
if(Jacuba.Chart.Util.TABLE_ACCESS_MAP==null){
Jacuba.Chart.Util.TABLE_ACCESS_MAP=new Jacuba.Chart.Util.Map();
}
var _1000=Jacuba.Chart.Util.TABLE_ACCESS_MAP.get(_999);
if(_1000==null){
_1000=new Jacuba.Chart.Util.HTMLTableAccess(_999);
Jacuba.Chart.Util.TABLE_ACCESS_MAP.put(_999,_1000);
}
return _1000;
};
Jacuba.Chart.Util.invalidateTableLookups=function(){
Jacuba.Chart.Util.TABLE_ACCESS_MAP=null;
};
Jacuba.Chart.Util.invalidateTableAccess=function(table){
if(table==null){
alert("no table supplied to getTableAccess");
}
if(Jacuba.Chart.Util.TABLE_ACCESS_MAP==null){
Jacuba.Chart.Util.TABLE_ACCESS_MAP=new Jacuba.Chart.Util.Map();
}
var _1002=Jacuba.Chart.Util.TABLE_ACCESS_MAP.get(table);
if(_1002!=null){
Jacuba.Chart.Util.TABLE_ACCESS_MAP.remove(table);
}
return _1002!=null;
};
Jacuba.Chart.Util.Cache=function(size){
if(size<1){
alert("Supplied size must be greater than 0");
return;
}
this.maxsize=size;
this.count=0;
this.size=0;
this.content=new Object();
};
Jacuba.Chart.Util.Cache.prototype.content=null;
Jacuba.Chart.Util.Cache.prototype.setDisposeHandler=function(fn){
this.disposer=fn;
};
Jacuba.Chart.Util.Cache.prototype.getEntry=function(key){
return this.content[key];
};
Jacuba.Chart.Util.Cache.prototype.get=function(key){
var entry=this.getEntry(key);
return entry!=null?entry.value:null;
};
Jacuba.Chart.Util.Cache.prototype.requested=function(key){
var entry=this.getEntry(key);
if(entry!=null){
entry.count=this.count++;
}
};
Jacuba.Chart.Util.Cache.prototype.put=function(key,value){
var entry=this.getEntry(key);
if(entry==null){
entry=new Jacuba.Chart.Util.Cache.Entry(key,value);
if(this.size>=this.maxsize){
var least=null;
for(var x in this.content){
var e=this.content[x];
if(least==null||e.count<least.count){
least=e;
}
}
if(this.disposer){
this.disposer(least.value);
}
delete this.content[least.key];
this.content[entry.key]=entry;
}else{
this.content[entry.key]=entry;
this.size++;
}
}else{
if(entry.value!=value){
if(this.disposer){
this.disposer(entry.value);
}
entry.value=value;
}
}
};
Jacuba.Chart.Util.Cache.Entry=function(key,value){
this.key=key;
this.value=value;
this.count=0;
};
Jacuba.Chart.Util.NumberSet=function(str){
this.a=new Array();
if(str!=null){
var _1007=str.split(",");
for(var i=0;i<_1007.length;i++){
var pos=_1007[i].indexOf("-");
if(pos==-1){
this.a[parseInt(_1007[i])]=true;
}else{
var lower=parseInt(_1007[i].substring(0,pos));
var upper=parseInt(_1007[i].substring(pos+1));
for(var x=lower;x<=upper;x++){
this.a[x]=true;
}
}
}
}
};
Jacuba.Chart.Util.NumberSet.prototype.getMembers=function(){
var _1010=new Array();
for(var x=0;x<this.a.length;x++){
if(this.a[x]){
_1010[_1010.length]=x;
}
}
return _1010;
};
Jacuba.Chart.Util.NumberSet.prototype.contains=function(num){
if(num<0||num>=this.a.length){
return false;
}
return this.a[num]==true;
};
Jacuba.Chart.Util.NumberSet.prototype.add=function(num){
this.a[num]=true;
};
Jacuba.Chart.Util.NumberSet.prototype.remove=function(num){
this.a[num]=false;
};
Jacuba.Chart.Util.NumberSet.prototype.containsHigher=function(num){
for(var index=num+1;index<this.a.length;index++){
var _1012=this.a[index];
if(_1012){
return index;
}
}
return -1;
};
Jacuba.Chart.Util.NumberSet.prototype.toString=function(){
var index=0;
var s="";
var _1013=false;
var _1014=false;
for(var index=0;index<this.a.length;index++){
var _1015=this.a[index];
if(_1015){
if(!_1013){
if(s.length>0){
s+=",";
}
s+=index;
_1013=true;
}else{
_1014=true;
}
}else{
if(_1014){
s+="-"+(index-1);
_1014=false;
}
_1013=false;
}
}
if(_1014){
s+="-"+(index-1);
_1014=false;
}
return s;
};
Jacuba.Chart.Interface.TabGroup=function(curr){
this.current_tab=curr;
this.tabs=new Object();
this.tab_links=new Array();
this.visible=null;
};
Jacuba.Chart.Interface.TabGroup.prototype.setVisible=function(_1016){
if(this.visible==_1016){
return;
}
this.visible=_1016;
if(this.current_tab!=null){
var tab=this.tabs[this.current_tab];
tab.setVisible(_1016);
}
};
Jacuba.Chart.Interface.TabGroup.prototype.addTab=function(_1017,_1018){
this.tab_links[this.tab_links.length]=_1017;
this.tabs[_1017]=new Jacuba.Chart.Interface.Tab(_1017,_1018);
if(_1017==this.current_tab){
this.tabs[_1017].setVisible(this.visible);
}
};
Jacuba.Chart.Interface.TabGroup.prototype.selectTabByIndex=function(index){
this.selectTab(this.tab_links[index]);
};
Jacuba.Chart.Interface.TabGroup.prototype.selectTab=function(_1019){
if(_1019==this.current_tab){
return;
}
if(this.current_tab!=null){
var ctab=this.tabs[this.current_tab];
ctab.setSelected(false);
}
var tab=this.tabs[_1019];
tab.setSelected(true);
this.current_tab=_1019;
};
Jacuba.Chart.Interface.Tab=function(_1021,_1022){
this.linkid=_1021;
this.elements=_1022;
this.visible=null;
};
Jacuba.Chart.Interface.Tab.prototype.setVisible=function(_1023){
if(this.visible==_1023){
return;
}
this.visisble=_1023;
for(var x=0;x<this.elements.length;x++){
this.elements[x].setVisible(_1023);
}
};
Jacuba.Chart.Interface.Tab.prototype.setSelected=function(_1024){
this.setVisible(_1024);
document.getElementById(this.linkid).className=_1024?"selected":"deselected";
};
Jacuba.Chart.Interface.Table.HeadingContext=function(_1025,_1026){
this.table=_1025;
this.iface=_1025.iface;
this.column_heading_row=parseInt(this.iface.criteria.get("column-heading-row"));
this.row_heading_column=parseInt(this.iface.criteria.get("row-heading-column"));
this.excluded_rows=new Jacuba.Chart.Util.NumberSet(this.iface.criteria.get("excluded-rows"));
this.excluded_columns=new Jacuba.Chart.Util.NumberSet(this.iface.criteria.get("excluded-columns"));
this.selected_columns=new Jacuba.Chart.Util.NumberSet(this.iface.criteria.get("columns"));
this.selected_rows=new Jacuba.Chart.Util.NumberSet(this.iface.criteria.get("rows"));
this.plot=this.iface.criteria.get("plot");
this.color_index=0;
this.palette=_1026;
};
Jacuba.Chart.Interface.Table.Heading=function(cell,isrow,row,_1028,_1029){
this.table=_1029.table;
this.iface=_1029.table.iface;
this.isrow=isrow;
var _1030=_1029.column_heading_row;
var _1031=_1029.row_heading_column;
var _1032=_1029.selected_columns;
var _1033=_1029.selected_rows;
var plot=_1029.plot;
var _1034=_1029.palette;
var nobr=Jacuba.Chart.Util.getFirstNamedDescendent(cell,"NOBR");
if(nobr==null){
return;
}
this.html=nobr;
var hr=row==_1030;
var hc=_1028==_1031;
var _1037=null;
if((hr||hc)&&!(hr&&hc)){
var label=document.createElement("LABEL");
_1037=document.createElement("INPUT");
_1037.setAttribute("type","CHECKBOX");
_1037.className="heading-select";
label.appendChild(_1037);
while(nobr.firstChild!=null){
var node=nobr.firstChild;
node.parentNode.removeChild(node);
label.appendChild(node);
}
nobr.appendChild(label);
if(hr){
_1037.name="column"+_1028;
if(_1032.contains(_1028)){
_1037.setAttribute("checked","checked");
}
}else{
_1037.name="row"+row;
if(_1033.contains(row)){
_1037.setAttribute("checked","checked");
}
}
_1037.id=Jacuba.Chart.Util.getId(_1037.name);
label.htmlFor=_1037.id;
this.iface.registerInputElement(_1037);
_1037.onchange=hc?this.table.makeRowSelectionFunction(_1037,row):this.table.makeColumnSelectionFunction(_1037,_1028);
_1037.onclick=_1037.onchange;
_1037.onchange();
this.label=label;
}
this.checkbox=_1037;
this.fill_selector=null;
if(plot=="rows"&&isrow){
var _1039=_1029.excluded_rows;
if(_1028==_1031&&row!=_1030&&!_1039.contains(row)){
var _1040=_1029.color_index++;
this.checkbox.className="heading-select-colored";
var color=_1034.getColor(_1040);
if(!color){
alert("BAD COLOR IN PALETTE AT INDEX "+_1040+": "+_1034);
}
var stub=Jacuba.Chart.Interface.FillSelector.createStub(color,11,11);
this.stub=stub;
nobr.insertBefore(stub,nobr.firstChild);
this.fill_selector=new Jacuba.Chart.Interface.FillSelector(stub,this.iface);
this.fill_selector.setValue(color);
}
}else{
if(plot=="columns"&&!isrow){
var _1042=_1029.excluded_columns;
if(_1028!=_1031&&!_1042.contains(_1028)){
var _1040=_1029.color_index++;
this.checkbox.className="heading-select-colored";
var color=_1034.getColor(_1040);
var stub=Jacuba.Chart.Interface.FillSelector.createStub(color,11,11);
this.stub=stub;
nobr.insertBefore(stub,nobr.firstChild);
this.fill_selector=new Jacuba.Chart.Interface.FillSelector(stub,this.iface);
this.fill_selector.setValue(color);
}
}
}
if(this.fill_selector!=null){
var t=this;
var _1043=function(){
var _1044=t.iface.getCriteria();
var ctype=_1044.get("chart-type");
return ctype=="bar";
};
this.fill_selector.setMaySetGradientFunction(_1043);
var color=this.iface.criteria.get("plot-color-"+(isrow?row:_1028));
if(color!=null){
this.fill_selector.setValue(color);
}
}
this.update();
};
Jacuba.Chart.Interface.Table.Heading.prototype.max_width=0;
Jacuba.Chart.Interface.Table.Heading.prototype.update=function(){
var _1046=this.iface.criteria.get((this.isrow?"row":"column")+"-heading-width");
if(!_1046){
_1046=this.max_width;
}
if(_1046>0&&this.html.offsetWidth>_1046){
var table=document.createElement("TABLE");
var tbody=document.createElement("TBODY");
table.appendChild(tbody);
table.style.width=_1046+"px";
table.cellPadding=0;
table.cellSpacing=0;
table.border=0;
table.style.border="0px";
var tr=document.createElement("TR");
tbody.appendChild(tr);
var td;
if(this.fill_selector!=null){
td=document.createElement("TD");
td.style.border="0px";
tr.appendChild(td);
td.style.width="0%";
var tmp=this.fill_selector.ohtml;
tmp.parentNode.removeChild(tmp);
td.appendChild(tmp);
}
var _1048;
if(this.checkbox!=null){
_1048=this.checkbox.checked;
td=document.createElement("TD");
td.style.border="0px";
tr.appendChild(td);
td.style.width="0%";
this.checkbox.parentNode.removeChild(this.checkbox);
td.appendChild(this.checkbox);
}
var _1049=this.html.parentNode;
while(_1049.firstChild!=null){
_1049.removeChild(_1049.firstChild);
}
this.html=table;
_1049.appendChild(table);
if(this.checkbox){
this.checkbox.checked=_1048;
}
var _1050;
if(this.label!=null){
td=document.createElement("TD");
td.style.border="0px";
td.style.width="100%";
td.style.verticalAlign="bottom";
tr.appendChild(td);
var div=document.createElement("DIV");
div.style.overflow="hidden";
div.style.width=td.offsetWidth+"px";
td.appendChild(div);
nobr=document.createElement("NOBR");
div.appendChild(nobr);
nobr.appendChild(this.label);
_1050=new Jacuba.Tooltip(td,Jacuba.Chart.Util.nodeTextValue(this.label),"tooltip",false,true);
}
td=document.createElement("TD");
td.style.width="0%";
td.style.border="0px";
tr.appendChild(td);
var arrow=document.createElement("IMG");
arrow.src=Jacuba.Chart.TRANSP_IMG;
arrow.style.width="5px";
arrow.style.height="9px";
td.appendChild(arrow);
Jacuba.Chart.ImageManager.setClassName(arrow,"label-tooltip-arrow");
_1050.addElement(td);
}
};
Jacuba.Chart.Util.RadioGroup=function(){
this.members=new Object();
this.value=null;
};
Jacuba.Chart.Util.RadioGroup.prototype.addRadio=function(radio){
var value=radio.getValue();
this.disabled=false;
if(this.members[value]){
Jacuba.debug("Duplicate value in radio group!!");
return;
}
this.members[value]=radio;
if(radio.isChecked()){
this.setValue(value);
}
radio.associateWithGroup(this);
};
Jacuba.Chart.Util.RadioGroup.prototype.init=function(){
};
Jacuba.Chart.Util.RadioGroup.prototype.setValue=function(value){
if(value==this.value){
return;
}
if(this.value){
var _1053=this.members[this.value];
if(_1053&&_1053.isChecked()){
_1053.setChecked(false);
}
}
if(value){
var _1053=this.members[value];
if(_1053&&!_1053.isChecked()){
_1053.setChecked(true);
}
}
this.value=value;
this.broadcastChange();
};
Jacuba.Chart.Util.RadioGroup.prototype.getValue=function(){
return this.value;
};
Jacuba.Chart.Util.RadioGroup.prototype.getInputs=function(){
return new Array();
};
Jacuba.Chart.Util.RadioGroup.prototype.setDisabled=function(_1054){
this.disabled=_1054;
for(var x=0;x<this.members.length;x++){
this.members[x].setDisabled(_1054);
}
};
Jacuba.Chart.Util.RadioGroup.prototype.isDisabled=function(){
return this.disabled;
};
Jacuba.Chart.Util.RadioGroup.prototype.modalBlock=function(block){
this.setDisabled(block);
};
Jacuba.Chart.Util.RadioGroup.prototype.addListener=Jacuba.Chart.Interface.Field.COMMON.addListener;
Jacuba.Chart.Util.RadioGroup.prototype.removeListener=Jacuba.Chart.Interface.Field.COMMON.removeListener;
Jacuba.Chart.Util.RadioGroup.prototype.broadcastChange=Jacuba.Chart.Interface.Field.COMMON.broadcastChange;
Jacuba.Chart.Util.Radio=function(value,node,_1056){
this.value=value;
this.groups=new Array();
var t=this;
this.toggle_fn=function(){
t.onToggle();
return false;
};
if(!node){
node=document.createElement("INPUT");
node.setAttribute("type","RADIO");
}
this.setContentNode(node,_1056);
};
Jacuba.Chart.Util.Radio.prototype.associateWithGroup=function(group){
this.groups[this.groups.length]=group;
};
Jacuba.Chart.Util.Radio.prototype.setContentNode=function(node,_1058){
this.html=node;
this.boolean_inputs=this.getBooleanInputs();
node.onclick=this.toggle_fn;
this.unchecked_className=node.className;
if(_1058){
this.checked_className=_1058;
}
this.setChecked(this.checked);
};
Jacuba.Chart.Util.Radio.prototype.onToggle=function(){
if(this.disabled){
return true;
}
this.setChecked(!this.checked);
};
Jacuba.Chart.Util.Radio.prototype.setChecked=function(_1059){
this.checked=_1059;
for(var x=0;x<this.boolean_inputs.length;x++){
this.boolean_inputs[x].checked=_1059;
}
if(_1059&&this.checked_className){
this.html.className=this.checked_className;
}else{
if(!_1059){
this.html.className=this.unchecked_className;
}
}
for(var x=0;x<this.groups.length;x++){
this.groups[x].setValue(this.value);
}
};
Jacuba.Chart.Util.Radio.prototype.isChecked=function(){
return this.checked;
};
Jacuba.Chart.Util.Radio.prototype.getValue=function(){
return this.value;
};
Jacuba.Chart.Util.Radio.prototype.setDisabled=function(_1060,start){
this.disabled=_1060;
if(!start){
start=this.html;
}
if(start.nodeName=="INPUT"){
start.disabled=_1060;
}else{
if(start.nodeName=="SELECT"){
start.disabled=_1060;
}else{
for(var n=start.firstChild;n!=null;n=n.nextSibling){
this.setDisabled(_1060,n);
}
}
}
};
Jacuba.Chart.Util.Radio.prototype.getBooleanInputs=function(start,array){
if(!start){
start=this.html;
}
if(!array){
array=new Array();
}
if(start.nodeName=="INPUT"){
var type=start.type.toUpperCase();
if(type=="CHECKBOX"||type=="RADIO"){
array[array.length]=start;
}
}else{
for(var n=start.firstChild;n!=null;n=n.nextSibling){
this.getBooleanInputs(n,array);
}
}
return array;
};
Jacuba.Chart.Util.Radio.prototype.modalBlock=function(block){
this.setDisabled(block);
};
Jacuba.Chart.Util.Anchor=function(elem){
this.html=elem;
this.href=elem.href;
this.onclick=elem.onclick;
this.color=elem.style.color;
if(this.color==null){
this.color="";
}
};
Jacuba.Chart.Util.Anchor.noOp=function(){
return false;
};
Jacuba.Chart.Util.Anchor.prototype.setDisabled=function(_1064){
if(_1064){
this.html.href="javascript:void(0)";
this.html.onclick=Jacuba.Chart.Util.Anchor.noOp;
this.html.style.color="#999999";
}else{
this.html.href=this.href;
this.html.onclick=this.onclick;
this.html.style.color=this.color;
}
};
Jacuba.Chart.Util.Anchor.prototype.modalBlock=function(block){
this.setDisabled(block);
};
Jacuba.Chart.Util.populateRowArray=function(tr,array){
var _1065=0;
for(var curr=tr.firstChild;curr!=null;curr=curr.nextSibling){
if(curr.nodeName=="TD"||curr.nodeName=="TH"){
array[_1065]=curr;
_1065++;
}
}
};
Jacuba.Chart.Util.HTMLTableAccess=function(table){
this.html=table;
this.trs=new Array();
Jacuba.Chart.Util.getTRs(table,this.trs);
this.cells=new Array();
for(var tri=0;tri<this.trs.length;tri++){
var tr=this.trs[tri];
this.cells[tri]=new Array();
Jacuba.Chart.Util.populateRowArray(tr,this.cells[tri]);
}
};
Jacuba.Chart.Util.HTMLTableAccess.prototype.getTR=function(index){
if(index<0){
throw "row index to low ("+index+")";
}
if(index>this.cells.length-1){
throw "row index to high ("+index+"), maximum "+(this.cells.length-1);
}
return this.trs[index];
};
Jacuba.Chart.Util.HTMLTableAccess.prototype.getCell=function(row,_1067){
if(row==null){
throw "A row index must be supplied";
}
if(_1067==null){
throw "A column index must be supplied";
}
if(row<0){
throw "row index to low ("+row+")";
}
if(row>this.cells.length-1){
throw "row index to high ("+row+"), maximum "+(this.cells.length-1);
}
if(this.cells[row]==null){
throw "Malformed table access row "+row+" has no array!";
}
return this.cells[row][_1067];
};
Jacuba.Chart.Util.HTMLTableAccess.prototype.appendTR=function(tr){
this.insertTR(this.trs.length,tr);
};
Jacuba.Chart.Util.HTMLTableAccess.prototype.removeLastTR=function(){
var tr=this.trs[this.trs.length-1];
tr.parentNode.removeChild(tr);
this.trs.length=this.trs.length-1;
this.cells.length=this.cells.length-1;
};
Jacuba.Chart.Util.HTMLTableAccess.prototype.insertTR=function(index,tr){
var next=index+1<this.trs.length?this.trs[index+1]:null;
if(next!=null){
next.parentNode.insertBefore(tr,next);
}else{
var _1069=this.trs.length>0?this.trs[this.trs.length-1].parentNode:Jacuba.Chart.Util.getFirstNamedDescendent(this.html,"TBODY");
_1069.appendChild(tr);
}
for(var x=this.trs.length;x>index;x--){
this.trs[x]=this.trs[x-1];
this.cells[x]=this.cells[x-1];
}
this.trs[index]=tr;
this.cells[index]=new Array();
Jacuba.Chart.Util.populateRowArray(tr,this.cells[index]);
};
Jacuba.Chart.Util.HTMLTableAccess.prototype.numRows=function(){
return this.trs.length;
};
Jacuba.Chart.Util.HTMLTableAccess.prototype.numColumns=function(){
return this.cells[0].length;
};
Jacuba.Chart.Util.Map=function(){
this.keys=new Array();
this.values=new Array();
};
Jacuba.Chart.Util.Map.prototype.getIndexForKey=function(key){
for(var x=0;x<this.keys.length;x++){
if(this.keys[x]==key){
return x;
}
}
return -1;
};
Jacuba.Chart.Util.Map.prototype.put=function(key,value){
var index=this.getIndexForKey(key);
if(index==-1){
index=this.keys.length;
}
this.keys[index]=key;
this.values[index]=value;
};
Jacuba.Chart.Util.Map.prototype.get=function(key){
var index=this.getIndexForKey(key);
return index==-1?null:this.values[index];
};
Jacuba.Chart.Util.Map.prototype.remove=function(key){
var index=this.getIndexForKey(key);
this.keys[index]=null;
this.values[index]=null;
};
Jacuba.Chart.Util.List=function(){
this.head=null;
this.tail=null;
this.length=0;
};
Jacuba.Chart.Util.List.prototype.append=function(obj){
this.insert(obj,this.length);
};
Jacuba.Chart.Util.List.prototype.get=function(index){
if(index<0||index>this.length-1){
Jacuba.debug("get: Illegal index, must be 0-"+(this.length-1));
throw "get: Illegal index, must be 0-"+(this.length-1);
}
var curr=this.head;
for(var x=1;x<=index;x++){
curr=curr.next;
}
return curr.content;
};
Jacuba.Chart.Util.List.prototype.remove=function(index){
if(index<0||index>this.length-1){
Jacuba.debug("remove: Illegal index, must be 0-"+(this.length-1));
throw "remove: Illegal index, must be 0-"+(this.length-1);
}
if(this.length==1){
this.head=null;
this.tail=null;
}else{
if(index==0){
this.head=this.head.next;
this.head.prev=null;
}else{
if(index==this.length-1){
this.tail=this.tail.prev;
this.tail.next=null;
}else{
var curr=this.head;
for(var x=1;x<=index;x++){
curr=curr.next;
}
var nxt=curr.next;
var prev=curr.prev;
prev.next=nxt;
nxt.prev=prev;
}
}
}
this.length--;
Jacuba.debug("remove complete, length"+this.length+": "+this);
};
Jacuba.Chart.Util.List.prototype.insert=function(obj,index){
if(index<0||index>this.length){
Jacuba.debug("insert: Illegal index, must be 0-"+this.length);
throw "insert: Illegal index, must be 0-"+this.length;
}
var node=new Jacuba.Chart.Util.List.Node(obj);
if(this.head==null){
this.head=node;
this.tail=node;
}else{
if(this.length==index){
this.tail.next=node;
node.prev=this.tail;
this.tail=node;
}else{
if(index==0){
node.next=this.head;
this.head.prev=node;
this.head=node;
}else{
var curr=this.head;
for(var x=1;x<=index;x++){
curr=curr.next;
}
var prev=curr.prev;
node.next=curr;
curr.prev=node;
prev.next=node;
node.prev=prev;
}
}
}
this.length++;
Jacuba.debug("Insert complete, length "+this.length+": "+this);
};
Jacuba.Chart.Util.List.prototype.contains=function(obj){
return this.indexOf(obj)!=-1;
};
Jacuba.Chart.Util.List.prototype.indexOf=function(obj){
var index=-1;
var curr=this.head;
while(curr!=null){
index++;
if(curr.content==obj){
return index;
}
curr=curr.next;
}
return -1;
};
Jacuba.Chart.Util.List.prototype.toString=function(){
var s="{";
var curr=this.head;
while(curr!=null){
if(curr!=this.head){
s+=",";
}
s+=curr.content;
curr=curr.next;
}
s+="}";
return s;
};
Jacuba.Chart.Util.List.Node=function(obj){
this.content=obj;
};
Jacuba.Chart.Aggregator=function(chart){
this.id="Aggregator"+(Jacuba.Chart.Aggregator.counter++);
if(!Jacuba.Chart.aggregators){
Jacuba.Chart.aggregators=new Object();
}
Jacuba.Chart.aggregators[this.id]=this;
this.chart=chart;
this.entries=new Array();
this.merge_options=new Array();
this.registered_inputs=new Array();
this.registered_selectboxes=new Array();
this.registered_anchors=new Array();
};
Jacuba.Chart.Aggregator.counter=0;
Jacuba.Chart.Aggregator.MERGE_EITHER=0;
Jacuba.Chart.Aggregator.MERGE_FIRST=1;
Jacuba.Chart.Aggregator.MERGE_SECOND=2;
Jacuba.Chart.Aggregator.MERGE_SUM=3;
Jacuba.Chart.Aggregator.prototype.addChart=function(table,_1073,_1074,_1075,_1076){
if(this.result){
this.result=null;
}
var tab=new Jacuba.Chart.Table(table);
var crit=new Jacuba.Chart.Criteria(_1073,true);
this.entries[this.entries.length]=new Jacuba.Chart.Aggregator.Entry(tab,crit);
if(this.entries.length!=1){
this.merge_options[this.merge_options.length]=new Jacuba.Chart.Aggregator.MergeOptions(_1074,_1075,_1076);
}
if(this.html){
this.refreshInterface();
}
};
Jacuba.Chart.Aggregator.prototype.removeChartAt=function(index){
if(this.result){
this.result=null;
}
for(var x=index;x<this.entries.length-1;x++){
this.entries[x]=this.entries[x+1];
}
this.entries.length=this.entries.length-1;
var start=Math.max(index-1,0);
for(var x=start;x<this.merge_options.length-1;x++){
this.merge_options[x]=this.merge_options[x+1];
}
this.merge_options.length=this.merge_options.length-1;
if(this.html){
this.refreshInterface();
}
};
Jacuba.Chart.Aggregator.prototype.getTable=function(){
if(!this.result){
this.result=this.combine();
}
return this.result.table;
};
Jacuba.Chart.Aggregator.prototype.getCriteria=function(){
if(!this.result){
this.result=combine();
}
return this.result.criteria;
};
Jacuba.Chart.Aggregator.prototype.combineFirst=function(num){
var table=this.entries[0].table;
var _1078=this.entries[0].criteria.clone();
for(var x=1;x<Math.min(this.entries.length,num+1);x++){
var entry=this.entries[x];
var ci=this.combine(table,_1078,entry.table,entry.criteria,this.merge_options[x-1]);
table=ci.table;
_1078=ci.criteria;
}
return new Jacuba.Chart.Aggregator.Entry(table,_1078);
};
Jacuba.Chart.Aggregator.prototype.combine=function(_1080,_1081,_1082,_1083,_1084){
if(!_1080){
var table=this.entries[0].table;
var _1085=this.entries[0].criteria.clone();
for(var x=1;x<this.entries.length;x++){
var entry=this.entries[x];
var ci=this.combine(table,_1085,entry.table,entry.criteria,this.merge_options[x-1]);
table=ci.table;
_1085=ci.criteria;
}
return new Jacuba.Chart.Aggregator.Entry(table,_1085);
}else{
var rows1=this.copyRows(_1080);
var _1087=_1081.get("row-heading-column");
if(!_1087){
_1087=0;
}
var _1088=_1081.get("column-heading-row");
if(!_1088){
_1088=0;
}
var rows2=this.copyRows(_1082);
var _1090=_1083.get("row-heading-column");
if(!_1090){
_1090=0;
}
var _1091=_1083.get("column-heading-row");
if(!_1091){
_1091=0;
}
var _1092=this.rowIndexMap(rows1,_1087);
var _1093=this.columnIndexMap(rows1,_1088);
var _1094=this.columnLabelArray(rows2,_1091);
var _1095=_1083.get("excluded-rows");
var _1096=_1095?new Jacuba.Chart.Util.NumberSet(_1095):null;
var _1097=_1083.get("excluded-columns");
var _1098=_1097?new Jacuba.Chart.Util.NumberSet(_1097):null;
var _1099=_1081.get("rows");
var _1100=_1099?new Jacuba.Chart.Util.NumberSet(_1099):null;
var _1101=_1083.get("rows");
var _1102=_1101?new Jacuba.Chart.Util.NumberSet(_1101):null;
if(!_1100){
var _1103=_1081.get("excluded-rows");
var _1104=_1103?new Jacuba.Chart.Util.NumberSet(_1103):null;
_1100=Jacuba.Chart.Aggregator.createNumberSet(_1088,_1104,rows1.length);
}
if(!_1102){
_1102=Jacuba.Chart.Aggregator.createNumberSet(_1091,_1096,rows2.length);
}
var _1105=_1081.get("columns");
var _1106=_1105?new Jacuba.Chart.Util.NumberSet(_1105):null;
var _1107=_1083.get("columns");
var _1108=_1107?new Jacuba.Chart.Util.NumberSet(_1107):null;
if(!_1106){
var _1109=_1081.get("excluded-columns");
var _1110=_1103?new Jacuba.Chart.Util.NumberSet(_1109):null;
_1106=Jacuba.Chart.Aggregator.createNumberSet(_1087,_1110,rows1[0].length);
}
if(!_1108){
_1108=Jacuba.Chart.Aggregator.createNumberSet(_1090,_1098,rows2[0].length);
}
rows1[_1088]=this.combineRows(rows1[_1088],rows2[_1091],_1092,_1093,_1094,_1081,_1083,_1087,_1090,_1098,_1084,true,_1106,_1108);
for(var y=0;y<rows2.length;y++){
if(y!=_1091&&(_1096==null||!_1096.contains(y))){
var label=rows2[y][_1090];
var _1111=_1092[label];
if(_1084.merge_rows&&_1111!=null){
var row1=rows1[_1111];
rows1[_1111]=this.combineRows(row1,rows2[y],_1092,_1093,_1094,_1081,_1083,_1087,_1090,_1098,_1084,false,_1106,_1108);
}else{
var index=rows1.length;
if(_1081.get("plot")!="columns"){
var c=_1083.get("plot-color-"+y);
if(c){
_1081.set("plot-color-"+index,c);
}
}
var tmp=_1083.get("row-label-"+y);
if(tmp){
_1081.set("row-label-"+index,tmp);
}
if(_1102.contains(y)){
if(!_1100.contains(index)){
_1100.add(index);
}
}
rows1[index]=this.combineRows(new Array(_1080.columnCount()),rows2[y],_1092,_1093,_1094,_1081,_1083,_1087,_1090,_1098,_1084,false,_1106,_1108);
}
}
}
if(_1100){
_1081.set("rows",_1100.toString());
}
if(_1106){
_1081.set("columns",_1106.toString());
}
var _1113=0;
for(var x=0;x<rows1.length;x++){
var _1114=rows1[x].length;
_1113=Math.max(_1113,_1114);
}
for(var x=0;x<rows1.length;x++){
if(rows1[x].length<_1113){
for(var i=rows1[x].length;i<_1113;i++){
rows1[x][i]="";
}
}
}
var table=new Jacuba.Chart.Table();
table.rows=rows1;
return new Jacuba.Chart.Aggregator.Entry(table,_1081);
}
};
Jacuba.Chart.Aggregator.createNumberSet=function(_1115,_1116,num){
var ns=new Jacuba.Chart.Util.NumberSet();
for(var x=0;x<num;x++){
if((_1116==null||!_1116.contains(x))&&x!=_1115){
ns.add(x);
}
}
return ns;
};
Jacuba.Chart.Aggregator.prototype.combineRows=function(row1,row2,_1118,_1119,_1120,_1121,_1122,_1123,_1124,_1125,_1126,_1127,_1128,_1129){
if(row1[_1123]==null){
var val=row2[_1124];
if(_1118[val]!=null){
var count=2;
while(true){
val=row2[_1124]+" ("+count+")";
count++;
if(_1118[val]==null){
break;
}
}
}
row1[_1123]=val;
}
for(var x=0;x<row2.length;x++){
if(x!=_1124&&(_1125==null||!_1125.contains(x))){
var label=_1120[x];
var _1131=_1119[label];
if(_1126.merge_columns&&_1131!=null){
var cell1=row1[_1131];
row1[_1131]=this.combineCells(cell1,row2[x],_1126);
}else{
var index=row1.length;
if(_1121.get("plot")=="columns"){
var c=_1122.get("plot-color-"+x);
if(c){
var key="plot-color-"+index;
if(!_1121.get(key)){
_1121.set(key,c);
}
}
}
var tmp=_1122.get("column-label-"+x);
if(tmp){
var key="column-label-"+index;
if(!_1121.get(key)){
_1121.set(key,tmp);
}
}
if(_1129.contains(x)){
if(!_1128.contains(index)){
_1128.add(index);
}
}
var val=row2[x];
if(_1127&&_1131!=null){
var count=2;
while(true){
val=row2[x]+" ("+count+")";
count++;
if(_1119[val]==null){
break;
}
}
}
row1[index]=val;
}
}
}
return row1;
};
Jacuba.Chart.Aggregator.prototype.combineCells=function(cell1,cell2,_1134){
if(_1134.on_collision==Jacuba.Chart.Aggregator.MERGE_FIRST){
return cell1;
}
if(_1134.on_collision==Jacuba.Chart.Aggregator.MERGE_SECOND){
return cell2;
}
if(_1134.on_collision==Jacuba.Chart.Aggregator.MERGE_SUM){
var val1=parseFloat(cell1);
var val2=parseFloat(cell2);
if(!isNaN(val1)&&!isNaN(val2)){
return val1+val2;
}
}
if(cell1==null){
return cell2;
}
if(cell2==null){
return cell1;
}
return cell1;
};
Jacuba.Chart.Aggregator.prototype.copyRows=function(table){
var rows=new Array();
for(var x=0;x<table.rows.length;x++){
rows[x]=new Array();
for(var y=0;y<table.rows[x].length;y++){
rows[x][y]=table.rows[x][y];
}
}
return rows;
};
Jacuba.Chart.Aggregator.prototype.rowIndexMap=function(rows,_1137){
var map=new Object();
for(var x=0;x<rows.length;x++){
var key=rows[x][_1137];
map[key]=x;
}
return map;
};
Jacuba.Chart.Aggregator.prototype.columnIndexMap=function(rows,_1139){
var map=new Object();
for(var x=0;x<rows[_1139].length;x++){
var key=rows[_1139][x];
map[key]=x;
}
return map;
};
Jacuba.Chart.Aggregator.prototype.columnLabelArray=function(rows,_1140){
var a=new Array();
for(var x=0;x<rows[_1140].length;x++){
var key=rows[_1140][x];
a[x]=key;
}
return a;
};
Jacuba.Chart.Aggregator.prototype.setParentInterface=function(iface){
this.iface=iface;
};
Jacuba.Chart.Aggregator.prototype.setInterfaceContainer=function(elem){
this.html=elem;
this.html.className="aggregator-panel";
this.refreshInterface();
};
Jacuba.Chart.Aggregator.prototype.refreshInterface=function(){
Jacuba.Chart.Util.clearNode(this.html);
this.deregisterAll();
var _1142=new Array();
var _1143=new Array();
var _1144=new Array();
var _1145=new Array();
var _1146=new Array();
var _1147=new Array();
var html="<DIV class='aggregator'";
if(Jacuba.BROWSER_NAME!="IE"){
html+=" style=\"position: relative\"><DIV style=\"position: absolute; width: 100%;\"";
}
html+=">";
for(var x=0;x<this.entries.length;x++){
var entry=this.entries[x];
var title=entry.criteria.get("title");
if(title==null||title.length==0){
title=entry.table.caption;
}
if(title==null||title.length==0){
title="Annonymous";
}
if(x>0){
var index=x-1;
_1145[index]=Jacuba.Chart.Util.getId("merge-summary-"+x);
_1144[index]=Jacuba.Chart.Util.getId("merge-rows-"+x);
_1146[index]=Jacuba.Chart.Util.getId("merge-columns-"+x);
_1147[index]=Jacuba.Chart.Util.getId("merge-collision-"+x);
html+="<DIV class='merge-options'><TABLE cellpadding='0' cellspacing='0' border='0'><TBODY><TR>";
html+="<TD class='merge-summary-"+(index%2==0?"even":"odd")+"' id='"+_1145[index]+"'></TD>";
html+="<TD class='merge-rows'><NOBR><INPUT type='CHECKBOX' id='"+_1144[index]+"'> <LABEL for='"+_1144[index]+"'>"+Jacuba.Chart.Util.getText("merge_rows")+"</LABEL></NOBR></TD>";
html+="<TD class='merge-columns'><NOBR><INPUT type='CHECKBOX' id='"+_1146[index]+"'> <LABEL for='"+_1146[index]+"'>"+Jacuba.Chart.Util.getText("merge_columns")+"</LABEL></NOBR></TD>";
html+="<TD class='merge-collision'><NOBR>"+Jacuba.Chart.Util.getText("merge_collision");
html+=" <SELECT id='"+_1147[index]+"'>";
html+="<OPTION value='"+Jacuba.Chart.Aggregator.MERGE_EITHER+"'>"+Jacuba.Chart.Util.getText("Either")+"</OPTION>";
html+="<OPTION value='"+Jacuba.Chart.Aggregator.MERGE_FIRST+"'>"+Jacuba.Chart.Util.getText("First")+"</OPTION>";
html+="<OPTION value='"+Jacuba.Chart.Aggregator.MERGE_SECOND+"'>"+Jacuba.Chart.Util.getText("Second")+"</OPTION>";
html+="<OPTION value='"+Jacuba.Chart.Aggregator.MERGE_SUM+"'>"+Jacuba.Chart.Util.getText("Sum")+"</OPTION>";
html+="</SELECT></NOBR></TD></TR></TBODY></TABLE></DIV>";
}
_1143[x]=Jacuba.Chart.Util.getId("show-chart-"+x);
html+="<DIV class='chart-label'>";
if(this.entries.length>1){
_1142[x]=Jacuba.Chart.Util.getId("remove-chart-"+x);
html+="<A href='javascript:void(0)' id='"+_1142[x]+"'>"+Jacuba.Chart.Util.getText("remove")+"</A>";
}
html+="<A href='javascript:void(0)' id='"+_1143[x]+"'>"+Jacuba.Chart.Util.escapeHTML(title)+"</A>";
html+="<DIV style='clear: both'></DIV>";
html+="</DIV>";
}
if(this.entries.length<2){
html+="<DIV class='help-pane' style='margin-right: 20px'><DIV class='heading'>"+Jacuba.Chart.Util.getText("quick_help")+"</DIV><DIV class='body'><DIV class='title'><SPAN>"+Jacuba.Chart.Util.getText("Aggregation")+"</SPAN>:</DIV><DIV>"+Jacuba.Chart.Util.getText("aggregation_help")+"</DIV></DIV><DIV>";
}
if(Jacuba.BROWSER_NAME!="IE"){
html+="</DIV>";
}
html+="</DIV>";
this.html.innerHTML=html;
for(var x=0;x<_1142.length;x++){
var elem=document.getElementById(_1142[x]);
Jacuba.Chart.ImageManager.setClassName(elem,"remove-button");
elem.onclick=this.makeOnRemoveFunction(x);
this.registerAnchorElement(elem);
}
for(var x=0;x<_1143.length;x++){
var elem=document.getElementById(_1143[x]);
Jacuba.Chart.ImageManager.setClassName(elem,"chart-label-link-"+(x%2==0?"even":"odd"));
elem.onclick=this.makeShowFunction(x);
this.registerAnchorElement(elem);
}
this.merge_summaries=new Array();
for(var x=0;x<_1144.length;x++){
var _1149=this.merge_options[x];
var _1150=document.getElementById(_1145[x]);
var _1151=document.getElementById(_1144[x]);
var _1152=document.getElementById(_1146[x]);
var _1153=document.getElementById(_1147[x]);
var _1154=document.createElement("A");
_1154.href="javascript:void(0)";
_1154.onclick=this.makeShowResultFunction(x);
_1150.appendChild(_1154);
this.registerAnchorElement(_1154);
this.merge_summaries[x]=_1154;
_1151.checked=_1149.merge_rows;
_1152.checked=_1149.merge_columns;
_1153.value=_1149.on_collision;
_1151.onclick=this.makeOnChangeFunction(x,0,_1151);
_1152.onclick=this.makeOnChangeFunction(x,1,_1152);
_1153.onchange=this.makeOnChangeFunction(x,2,_1153);
this.registerInputElement(_1151);
this.registerInputElement(_1152);
this.registerInputElement(_1153);
this.updateMergeSummary(x);
}
};
Jacuba.Chart.Aggregator.prototype.makeOnRemoveFunction=function(index){
var t=this;
return function(){
t.removeChartAt(index);
t.doLoad();
return false;
};
};
Jacuba.Chart.Aggregator.prototype.makeShowFunction=function(index){
var t=this;
return function(e){
var x,y;
if(navigator.appName.indexOf("Microsoft")!=-1){
e=window.event;
x=e.clientX;
y=e.clientY;
}else{
x=e.pageX;
y=e.pageY;
}
x-=Jacuba.Chart.Util.getOffsetX(t.iface.html);
y-=Jacuba.Chart.Util.getOffsetY(t.iface.html);
x+=10;
var _1155=t.iface.html.offsetWidth;
var _1156=300;
if(x+_1156>_1155-10){
x-=_1156+10;
if(x<0){
x=_1155-10-_1156;
}
}
var _1157=t.iface.html.offsetHeight;
var _1158=220;
if(y+_1158>_1157-10){
y-=_1158+10;
if(y<0){
y=_1157-10-_1158;
}
}
var entry=t.entries[index];
var table=entry.table.toHTML();
var title=entry.criteria.get("title");
if(title==null||title.length==0){
title=entry.table.caption;
}
if(title==null||title.length==0){
title="Annonymous";
}
t.showTable(table,title,_1156,_1158,x,y);
return false;
};
};
Jacuba.Chart.Aggregator.prototype.makeShowResultFunction=function(index){
var t=this;
return function(e){
var x,y;
if(navigator.appName.indexOf("Microsoft")!=-1){
e=window.event;
x=e.clientX;
y=e.clientY;
}else{
x=e.pageX;
y=e.pageY;
}
x-=Jacuba.Chart.Util.getOffsetX(t.iface.html);
y-=Jacuba.Chart.Util.getOffsetY(t.iface.html);
x+=10;
var _1159=t.iface.html.offsetWidth;
var _1160=300;
if(x+_1160>_1159-10){
x-=_1160+10;
if(x<0){
x=_1159-10-_1160;
}
}
var _1161=t.iface.html.offsetHeight;
var _1162=220;
if(y+_1162>_1161-10){
y-=_1162+10;
if(y<0){
y=_1161-10-_1162;
}
}
var table=t.combineFirst(index+1).table.toHTML();
var title="Merge Result";
t.showTable(table,title,_1160,_1162,x,y);
return false;
};
};
Jacuba.Chart.Aggregator.prototype.showTable=function(table,title,width,_1164,x,y){
var win=new Jacuba.Chart.Interface.Window(width);
var div=document.createElement("DIV");
div.style.overflow="auto";
div.style.width=(width-10)+"px";
div.style.height="170px";
div.style.border="1px solid black";
div.style.backgroundColor="#FFFFFF";
div.appendChild(table);
win.setTitle(title);
win.setContentNode(div);
win.bind(this.iface.html);
win.addButton(Jacuba.TextManager.getText(Jacuba.Chart.LANGUAGE_MODULE,"Close"));
var t=this;
win.setCloseHandler(function(win){
win.dispose();
t.iface.modalBlock(false);
});
this.iface.modalBlock(true);
win.open(this.iface.html,y,x);
return win;
};
Jacuba.Chart.Aggregator.prototype.makeOnChangeFunction=function(_1165,box,elem){
var fn;
var t=this;
if(box==0){
fn=function(){
t.mergeRowsChanged(_1165,elem);
};
}else{
if(box==1){
fn=function(){
t.mergeColumnsChanged(_1165,elem);
};
}else{
if(box==2){
fn=function(){
t.mergeCollisionChanged(_1165,elem);
};
}
}
}
return fn;
};
Jacuba.Chart.Aggregator.prototype.updateMergeSummary=function(index){
var _1167=this.merge_options[index];
var _1168=this.merge_summaries[index];
var _1169,text,tip;
if(_1167.merge_rows&&_1167.merge_columns){
_1169="summary-merge-both";
text="merged_both";
}else{
if(_1167.merge_rows){
_1169="summary-merge-rows";
text="merged_rows";
}else{
if(_1167.merge_columns){
_1169="summary-merge-columns";
text="merged_columns";
}else{
_1169="summary-merge-neither";
text="merged_neither";
}
}
}
tip=text+"_tip";
var _1170;
if(_1167.on_collision==Jacuba.Chart.Aggregator.MERGE_FIRST){
_1170="collision_first_tip";
}else{
if(_1167.on_collision==Jacuba.Chart.Aggregator.MERGE_SECOND){
_1170="collision_second_tip";
}else{
if(_1167.on_collision==Jacuba.Chart.Aggregator.MERGE_SUM){
_1170="collision_sum_tip";
}else{
_1170="collision_either_tip";
}
}
}
Jacuba.Chart.ImageManager.setClassName(_1168,_1169);
_1168.innerHTML=Jacuba.Chart.Util.getText(text);
_1168.title=Jacuba.Chart.Util.getText(tip)+"  "+Jacuba.Chart.Util.getText(_1170);
};
Jacuba.Chart.Aggregator.prototype.mergeRowsChanged=function(index,elem){
var _1171=this.merge_options[index];
_1171.merge_rows=elem.checked;
if(this.result){
this.result=null;
}
this.updateMergeSummary(index);
if(this.chart){
this.delayedLoad();
}
};
Jacuba.Chart.Aggregator.prototype.mergeColumnsChanged=function(index,elem){
var _1172=this.merge_options[index];
_1172.merge_columns=elem.checked;
if(this.result){
this.result=null;
}
this.updateMergeSummary(index);
if(this.chart){
this.delayedLoad();
}
};
Jacuba.Chart.Aggregator.prototype.mergeCollisionChanged=function(index,elem){
var _1173=this.merge_options[index];
_1173.on_collision=elem.value;
if(this.result){
this.result=null;
}
if(this.chart){
this.delayedLoad();
}
};
Jacuba.Chart.Aggregator.prototype.delayedLoad=function(delay){
if(delay==null||delay<0){
delay=1000;
}
if(this.iface){
this.iface.setReady("aggregator",false);
}
if(this.load_timer){
window.clearTimeout(this.load_timer);
}
this.load_timer=window.setTimeout("Jacuba.Chart.aggregators['"+this.id+"'].doDelayedLoad()",delay);
};
Jacuba.Chart.Aggregator.prototype.doDelayedLoad=function(){
this.load_timer=null;
this.doLoad();
if(this.iface){
this.iface.setReady("aggregator",true);
}
};
Jacuba.Chart.Aggregator.prototype.doLoad=function(){
this.chart.load();
};
Jacuba.Chart.Aggregator.prototype.registerAnchorElement=function(elem){
this.registered_anchors[this.registered_anchors.length]=elem;
if(this.iface){
this.iface.registerAnchorElement(elem);
}
};
Jacuba.Chart.Aggregator.prototype.registerInputElement=function(elem){
this.registered_inputs[this.registered_inputs.length]=elem;
if(this.iface){
this.iface.registerInputElement(elem);
}
};
Jacuba.Chart.Aggregator.prototype.registerSelectbox=function(elem){
this.registered_selectboxes[this.registered_selectboxes.length]=elem;
if(this.iface){
this.iface.registerSelectbox(elem);
}
};
Jacuba.Chart.Aggregator.prototype.deregisterAll=function(){
if(this.iface){
for(var x=0;x<this.registered_inputs.length;x++){
this.iface.deregisterInputElement(this.registered_inputs[x]);
}
for(var x=0;x<this.registered_selectboxes.length;x++){
this.iface.deregisterSelectbox(this.registered_selectboxes[x]);
}
for(var x=0;x<this.registered_anchors.length;x++){
this.iface.deregisterAnchorElement(this.registered_anchors[x]);
}
}
this.registered_inputs.length=0;
this.registered_selectboxes.length=0;
this.registered_anchors.length=0;
};
Jacuba.Chart.Aggregator.Entry=function(table,_1175){
this.table=table;
this.criteria=_1175;
};
Jacuba.Chart.Aggregator.MergeOptions=function(_1176,_1177,_1178){
this.merge_rows=_1176!=null?_1176:true;
this.merge_columns=_1177!=null?_1177:true;
this.on_collision=_1178!=null?_1178:Jacuba.Chart.Aggregator.MERGE_SUM;
};
Jacuba.Chart.ImageManager=new Object();
Jacuba.Chart.ImageManager.queue=null;
Jacuba.Chart.ImageManager.images=new Object();
Jacuba.Chart.ImageManager.block=function(){
if(!Jacuba.Chart.ImageManager.queue){
Jacuba.Chart.ImageManager.queue=new Array();
}
};
Jacuba.Chart.ImageManager.release=function(){
if(!Jacuba.Chart.ImageManager.queue){
Jacuba.debug("no image queue");
return;
}
var a=Jacuba.Chart.ImageManager.queue;
Jacuba.Chart.ImageManager.queue=null;
Jacuba.debug(a.length+" images in queue");
for(var x=0;x<a.length;x++){
var entry=a[x];
if(entry.property=="src"){
Jacuba.Chart.ImageManager.setSrc(entry.elem,entry.value);
}else{
Jacuba.Chart.ImageManager.setClassName(entry.elem,entry.value);
}
}
};
Jacuba.Chart.ImageManager.setSrc=function(_1179,src,_1181){
if(Jacuba.BROWSER_NAME!="IE"){
_1179.src=src;
}else{
if(Jacuba.Chart.ImageManager.queue){
var qe=new Jacuba.Chart.ImageManager.QueueEntry(_1179,"src",src);
if(_1181){
Jacuba.Chart.ImageManager.queue.unshift(qe);
}else{
Jacuba.Chart.ImageManager.queue[Jacuba.Chart.ImageManager.queue.length]=qe;
}
}else{
var _1183=Jacuba.Chart.ImageManager.images[src];
if(_1183==null){
_1183=new Jacuba.Chart.ImageManager.ManagedImage(src);
Jacuba.Chart.ImageManager.images[src]=_1183;
}
if(_1183.isLoaded()){
_1179.src=src;
}else{
var fn=function(){
_1179.src=src;
};
_1183.doWhenLoaded(fn);
_1183.load();
}
}
}
};
Jacuba.Chart.ImageManager.setClassName=function(_1184,_1185){
if(Jacuba.BROWSER_NAME!="IE"){
_1184.className=_1185;
}else{
if(Jacuba.Chart.ImageManager.queue){
Jacuba.Chart.ImageManager.queue[Jacuba.Chart.ImageManager.queue.length]=new Jacuba.Chart.ImageManager.QueueEntry(_1184,"className",_1185);
}else{
if(!Jacuba.Chart.ImageManager.class_images){
Jacuba.Chart.ImageManager.class_images=Jacuba.Chart.ImageManager.privateMethods.compileBGImages();
}
var _1186=Jacuba.Chart.ImageManager.class_images[_1185];
if(_1186){
var _1187=new Array();
for(var x=0;x<_1186.length;x++){
var _1188=_1186[x];
var _1189=Jacuba.Chart.ImageManager.images[_1188];
if(_1189==null){
_1189=new Jacuba.Chart.ImageManager.ManagedImage(_1188);
Jacuba.Chart.ImageManager.images[_1188]=_1189;
}
if(!_1189.isLoaded()){
_1187[_1187.length]=_1189;
}
}
if(_1187.length==0){
_1184.className=_1185;
}else{
var fn=function(){
for(var i=0;i<_1187.length;i++){
if(!_1187[i].isLoaded()){
return;
}
}
_1184.className=_1185;
};
for(var x=0;x<_1187.length;x++){
_1187[x].doWhenLoaded(fn);
_1187[x].load();
}
}
}else{
_1184.className=_1185;
}
}
}
};
Jacuba.Chart.ImageManager.privateMethods=new Object();
Jacuba.Chart.ImageManager.privateMethods.compileBGImages=function(_1190,_1191){
if(!_1191){
_1191=new Object();
}
for(var x in Jacuba.cssimages){
var a=new Array();
_1191[x]=a;
var s=Jacuba.cssimages[x];
for(var y=0;y<s.length;y++){
var _1192=s[y];
if(_1192.indexOf("http:")!=0&&_1192.indexOf("https:")!=0){
var base=Jacuba.Chart.PROTOCOL+"://"+Jacuba.Chart.HOST;
if(Jacuba.Chart.PORT!="80"){
base+=":"+Jacuba.Chart.PORT;
}
_1192=base+_1192;
}
a[y]=_1192;
}
}
return _1191;
};
Jacuba.Chart.ImageManager.ManagedImage=function(src){
this.src=src;
this.loaded=false;
this.loading=false;
};
Jacuba.Chart.ImageManager.ManagedImage.prototype.isLoaded=function(){
return this.loaded;
};
Jacuba.Chart.ImageManager.ManagedImage.prototype.load=function(){
if(this.loading||this.loaded){
return;
}
this.image=new Image();
var t=this;
this.image.onload=function(){
t.imageLoaded();
};
this.image.onerror=function(){
t.imageError();
};
this.loading=true;
this.image.src=this.src;
Jacuba.debug("loading "+this.src);
};
Jacuba.Chart.ImageManager.ManagedImage.prototype.doWhenLoaded=function(fn){
if(this.loaded){
fn();
}else{
if(!this.pending){
this.pending=new Array();
}
this.pending[this.pending.length]=fn;
}
};
Jacuba.Chart.ImageManager.ManagedImage.prototype.imageLoaded=function(){
this.loaded=true;
this.loading=false;
this.width=this.image.width;
this.height=this.image.height;
if(this.pending){
for(var x=0;x<this.pending.length;x++){
this.pending[x]();
}
this.pending=null;
}
};
Jacuba.Chart.ImageManager.ManagedImage.prototype.imageError=function(){
this.loaded=false;
this.loading=false;
Jacuba.debug("Failed to load image: "+this.src);
};
Jacuba.Chart.ImageManager.QueueEntry=function(elem,prop,val){
this.elem=elem;
this.property=prop;
this.value=val;
};
Jacuba.Tooltip=function(elem,text,_1194,wrap,_1196){
this.elem=elem;
this.zIndex=100;
var tip=document.createElement("DIV");
this.tip=tip;
tip.style.display="none";
tip.style.zIndex=this.zIndex;
tip.style.position="absolute";
if(_1194){
tip.className=_1194;
}
var inner=tip;
if(!wrap){
var nobr=document.createElement("NOBR");
inner.appendChild(nobr);
inner=nobr;
}
inner.innerHTML=text;
if(_1196){
this.dropshadow=document.createElement("DIV");
this.dropshadow.className="drop-shadow";
this.dropshadow.style.position="absolute";
this.dropshadow.style.zIndex=this.zIndex-1;
this.dropshadow.style.display="none";
document.body.appendChild(this.dropshadow);
}
var t=this;
elem.onmouseover=function(e){
var x,y;
if(navigator.appName.indexOf("Microsoft")!=-1){
e=window.event;
x=e.clientX;
y=e.clientY;
}else{
x=e.pageX;
y=e.pageY;
}
x+=10;
t.setPosition(x,y);
t.setVisible(true);
};
elem.onmouseout=function(){
t.setVisible(false);
};
if(!Jacuba.Tooltip.tooltips){
Jacuba.Tooltip.tooltips=new Array();
Jacuba.Tooltip.tooltips[Jacuba.Tooltip.tooltips.length]=this;
}
document.body.appendChild(tip);
};
Jacuba.Tooltip.prototype.addElement=function(elem){
elem.onmouseover=this.elem.onmouseover;
elem.onmouseout=this.elem.onmouseout;
};
Jacuba.Tooltip.prototype.setPosition=function(x,y){
var _1199=document.body.offsetWidth;
var _1200=this.getWidth();
if(x+_1200>_1199){
x=_1199-_1200;
if(x<0){
x=_1199-_1200;
}
}
var _1201=document.body.offsetHeight;
var _1202=this.getHeight();
if(y+_1202>_1201){
y=_1201-_1202;
if(y<0){
y=_1201-_1202;
}
}
this.tip.style.top=y+"px";
this.tip.style.left=x+"px";
this.dropshadow.style.top=y+"px";
this.dropshadow.style.left=x+"px";
};
Jacuba.Tooltip.prototype.isVisible=function(){
return this.tip.style.display!="none"&&this.tip.style.visibility!="hidden";
};
Jacuba.Tooltip.prototype.getWidth=function(){
var width;
if(this.isVisible()){
width=this.tip.offsetWidth;
}else{
this.tip.style.visibility="hidden";
width=this.tip.offsetWidth;
this.tip.style.visibility="";
}
return width;
};
Jacuba.Tooltip.prototype.getHeight=function(){
var _1203;
if(this.isVisible()){
_1203=this.tip.offsetHeight;
}else{
this.tip.style.visibility="hidden";
_1203=this.tip.offsetHeight;
this.tip.style.visibility="";
}
return _1203;
};
Jacuba.Tooltip.prototype.setVisible=function(_1204){
if(_1204){
this.tip.style.display="";
if(this.dropshadow){
this.dropshadow.style.width=this.tip.offsetWidth;
this.dropshadow.style.height=this.tip.offsetHeight;
this.dropshadow.style.display="";
}
}else{
this.tip.style.display="none";
if(this.dropshadow){
this.dropshadow.style.display="none";
}
}
};
Jacuba.Chart.installCoding=function(){
if(!Jacuba.Coding){
alert("Coding framework not available");
return;
}
Jacuba.Coding.applyToClass("Chart");
Jacuba.Coding.applyToClass("Chart.Criteria");
Jacuba.Coding.applyToClass("Chart.Table");
Jacuba.Coding.applyToClass("Chart.Theme");
Jacuba.Coding.applyToClass("Chart.Interface");
Jacuba.Coding.applyToClass("Chart.Interface.ArrayPalette");
Jacuba.Coding.applyToClass("Chart.Interface.Button");
Jacuba.Coding.applyToClass("Chart.Interface.FieldGroup");
Jacuba.Coding.applyToClass("Chart.Interface.Element");
Jacuba.Coding.applyToClass("Chart.Interface.Field");
Jacuba.Coding.applyToClass("Chart.Interface.Card");
Jacuba.Coding.applyToClass("Chart.Interface.CriteriaTheme");
Jacuba.Coding.applyToClass("Chart.Interface.Window");
Jacuba.Coding.applyToClass("Chart.Interface.Table");
Jacuba.Coding.applyToClass("Chart.Interface.Table.Heading");
Jacuba.Coding.applyToClass("Chart.Interface.FillSelector");
Jacuba.Coding.applyToClass("Chart.Interface.ColorSelector");
Jacuba.Coding.applyToClass("Chart.Interface.ColorSelector.Window");
Jacuba.Coding.applyToClass("Chart.Interface.FillSelector");
Jacuba.Coding.applyToClass("Chart.Interface.FillSelector.Window");
Jacuba.Coding.applyToClass("Chart.Interface.FillSelector.Value");
Jacuba.Coding.applyToClass("Chart.ImageManager.ManagedImage");
Jacuba.Coding.applyToClass("Chart.ImageManager.QueueEntry");
Jacuba.Coding.applyToClass("Chart.Aggregator");
Jacuba.Coding.applyToClass("Chart.Util.HTMLTableAccess");
Jacuba.Coding.applyToClass("Chart.Util.List");
Jacuba.Coding.applyToClass("Chart.Util.RadioGroup");
Jacuba.Coding.applyToClass("Chart.Util.Radio");
Jacuba.Coding.applyToClass("Chart.Util.Cache");
Jacuba.Coding.applyToClass("Chart.Util.Map");
Jacuba.Coding.applyToClass("Chart.Util.NumberSet");
Jacuba.Coding.applyToObject("Chart.FontManager",Jacuba.Chart.FontManager);
Jacuba.Coding.applyToObject("Chart.Interface.ThemeMonitor",Jacuba.Chart.Interface.ThemeMonitor);
Jacuba.Coding.applyToObject("Chart.ImageManager",Jacuba.Chart.ImageManager);
Jacuba.Chart.Util.getFirstNamedDescendent=Jacuba.Coding.defineFunction("Chart.Util.getFirstNamedDescendent",Jacuba.Chart.Util.getFirstNamedDescendent);
};

