if(!window.Jacuba){
window.Jacuba=new Object();
}
if(!window.Jacuba.I18N){
window.Jacuba.I18N=new Object();
}
//Converting properties to en_US
Jacuba.I18N.LANG = "en_US";
//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");
};
}

//Converting properties to en_US
Jacuba.I18N.MSG = {invalid_locale: "Invalid locale specified for \"${0}\": ${1}", input_missing_value: "No value for property \"${0}\".", input_bad_numberset_number: "The value for property \"${0}\" is invalid, found \"${1}\" where a number was expected", no_link_criteria: "The id of the form containing the chart criteria must be supplied in anchor tag's href attribute", input_bad_color: "The value for the property \"${0}\" should be of the form #RRGGBB: ${1}", loading: "Loading...", input_bad_fill: "Illegal value for property \"${0}\": ${1}", input_missing_date_format: "To supply values for property \"${0}\" a \"date-format\" form input is also required", excluded_column_conflict: "Cannot select column ${0} as it has been excluded", input_bad_number: "The value for property \"${0}\" should be numeric: \"${1}\"", input_bad_natural: "The value for property \"${0}\" should be a whole number greater or equal to 0: \"${1}\"", input_bad_positive: "The value for property \"${0}\" should be a whole number greater than 0: \"${1}\"", not_chart_link: "Cannot convert link into a Jacuba Chart link, wrong href: ${0}", not_form: "The tag for supplied id is a \"${0}\", not a form", input_bad_boolean: "The value for the property \"${0}\" should be either \"true\" or \"false\": ${1}", input_bad_numberset_range: "The value for property \"${0}\" is invalid, end of range cannot be smaller than start: ${1}", input_bad_linear: "Invalid gradient fill declaration for \"${0}\": ${1}", no_criteria_id: "The id of a chart criteria form must be supplied", no_criteria_elem: "There is no chart criteria form with the id \"${0}\"", no_table_field: "A \"table\" property is needed which has the value matching the id of a table tag", bad_index: "Bad value for property \"${0}\", the index ${1} is not permitted, should be: ${2}", no_such_property: "Unrecognised proeprty name: ${0}", table_wrong_elem: "The tag with id \"${0}\" is a \"${1}\" tag, not a TABLE tag", excluded_row_conflict: "Cannot select row ${0} as it has been excluded", input_bad_enum: "Illegal value for the property \"${0}\": ${1}", window_title: "Jacuba Charts"};
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_link"]=Jacuba.I18N.MSG;
Jacuba.ChartLinker=function(_32,_33){
if(_33==null){
_33=true;
}
if(_32==null){
alert(Jacuba.TextManager.getText("chart_link","no_criteria_id"));
return;
}
var _34=document.getElementById(_32);
if(_34==null){
alert(Jacuba.TextManager.getText("chart_link","no_criteria_elem",_32));
return;
}
if(_34.nodeName!="FORM"){
alert(Jacuba.TextManager.getText("chart_link","not_form",_34.nodeName));
return;
}
var _35;
for(var x=0;x<_34.elements.length;x++){
if(_34.elements[x].name=="table"){
var _35=_34.elements[x].value;
break;
}
}
if(_35==null){
alert(Jacuba.TextManager.getText("chart_link","no_table_field"));
return;
}
var _36=document.getElementById(_35);
if(_36==null){
alert("There is no table tag with the id \""+_35+"\"");
return;
}
if(_36.nodeName!="TABLE"){
alert(Jacuba.TextManager.getText("chart_link","table_wrong_elem",_35,_36.nodeName));
return;
}
var _37=Jacuba.ChartLinker.Util.getTableInformation(_36);
var msg=Jacuba.ChartLinker.validateForm(_34,_37);
if(msg!=null){
alert(msg);
return;
}
var _39=null;
var _40=null;
var _41=null;
var _42=null;
var _43="<FORM id="+_32+" style='display: none'>";
var _44=false;
for(var x=0;x<_34.elements.length;x++){
var _45=_34.elements[x];
if(_45.name=="group"){
_39=_45.value;
}else{
if(_45.name=="merge-rows"){
_40=_45.value!="false";
}else{
if(_45.name=="merge-columns"){
_41=_45.value!="false";
}else{
if(_45.name=="merge-collision"){
var val=_45.value;
if(val=="first"){
_42=1;
}else{
if(val=="second"){
_42=2;
}else{
if(val=="sum"){
_42=3;
}else{
_42=0;
}
}
}
}else{
_43+="<INPUT type='HIDDEN' name='"+_45.name+"' value=\""+Jacuba.ChartLinker.Util.encodeAttributeValue(_45.value)+"\">";
if(_45.name=="may-edit"){
_44=true;
}
}
}
}
}
}
if(!_44){
_43+="<INPUT type='HIDDEN' name='may-edit' value='true'>";
}
_43+="</FORM>";
var _47="<TABLE id='"+_35+"' style='display: none'>";
_47+=_36.innerHTML;
_47+="</TABLE>";
var _48="";
_48+="<TITLE>"+Jacuba.TextManager.getText("chart_link","window_title")+"</TITLE>";
if(Jacuba.DEBUG){
_48+="<SCRIPT language='JavaScript'>if(!window.Jacuba)window.Jacuba = new Object(); Jacuba.DEBUG = true;</SCRIPT>";
}
_48+="<SCRIPT language='JavaScript' type='text/javascript' src=\""+Jacuba.ChartLinker.INTERFACE_INCLUDE+"\"></SCRIPT>";
_48+="<LINK href=\""+Jacuba.ChartLinker.STYLESHEET+"\" rel='stylesheet' type='text/css'>";
if(Jacuba.ChartLinker.FAVICON.length!=0){
_48+="<link rel=\"icon\" href=\""+Jacuba.ChartLinker.FAVICON+"\">";
}
if(_39!=null){
_48+="<SCRIPT language='JavaScript'>";
_48+="function addChart(table,criteria,merge_rows,merge_columns,merge_collision){";
_48+="if(chart)chart.addChart(table,criteria,merge_rows,merge_columns,merge_collision);";
_48+="}";
_48+="</SCRIPT>";
}
var _49="window.chart = new Jacuba.Chart(document.getElementById('"+_32+"'),'chart'";
if(_39!=null){
_49+=",'"+_39+"'";
}
_49+=");";
var _50="<HTML><HEAD>"+_48+"</HEAD><BODY onload=\""+_49+"\" style='padding: 0; margin: 0;'>"+_47+_43;
_50+="<DIV id='chart'></DIV>";
_50+="</BODY></HTML>";
if(_33){
var _51=Jacuba.ChartLinker.WINDOW_WIDTH;
var _52=Jacuba.ChartLinker.WINDOW_HEIGHT;
var _53=Math.round((screen.height-_52)/2);
var _54=Math.round((screen.width-_51)/2);
var _55=Jacuba.DEBUG?"":"resizable=yes,scrollbars=no,width="+_51+",height="+_52+",left="+_54+",top="+_53;
if(_39!=null){
var _56=window.location.href;
var pos=_56.indexOf("//");
pos+=2;
var _58=_56.indexOf("/",pos);
if(_58==-1){
_58=_56.length;
}
var _59=_56.substring(0,_58);
_59=_59.replace(/\./g,"");
_59=_59.replace(/:/g,"");
_59=_59.replace(/\//g,"");
_39=_59+_39;
var url="javascript:window.insert || window.addChart ? void(0) : \"<HTML><HEAD><SCR"+"IPT>function insert(txt){document.write(txt);document.close();}</SCR"+"IPT></HEAD><BODY>"+Jacuba.TextManager.getText("chart_link","loading")+"</BODY></HTML>\"";
var win=window.open(url,_39,_55);
if(win.addChart){
win.addChart(_36,_34,_40,_41,_42);
win.focus();
}else{
if(win.insert){
win.insert(_50);
}else{
window.setTimeout("Jacuba.ChartLinker(\""+_32+"\","+_33+")",500);
}
}
}else{
var url="javascript: \"<HTML><HEAD></HEAD><BODY>"+Jacuba.TextManager.getText("chart_link","loading")+"</BODY></HTML>\"";
var win=window.open(url,"_blank",_55);
win.document.write(_50);
win.document.close();
}
return void (0);
}else{
return _50;
}
};
Jacuba.ChartLinker.SERVER_CRITERIA_NAMES=new Array("title","plot","orientation");
//Converting properties to en_US
Jacuba.ChartLinker.HOST = "www.jacuba.com";
Jacuba.ChartLinker.PORT = "80";
Jacuba.ChartLinker.URI = "/service/chartlink/";
Jacuba.ChartLinker.STYLESHEET = "http://www.jacuba.com:80/styles/chart.css";
Jacuba.ChartLinker.INTERFACE_INCLUDE = "http://www.jacuba.com:80/service/chart/-/en_US/";
Jacuba.ChartLinker.WINDOW_WIDTH = 700;
Jacuba.ChartLinker.WINDOW_HEIGHT = 500;
Jacuba.ChartLinker.FAVICON = "http://www.jacuba.com/favicon.ico";
Jacuba.ChartLinker.activate=function(){
var as=document.links;
var url="http://"+Jacuba.ChartLinker.HOST+Jacuba.ChartLinker.URI;
var _63="http://"+Jacuba.ChartLinker.HOST+":"+Jacuba.ChartLinker.PORT+Jacuba.ChartLinker.URI;
for(var i=0;i<as.length;i++){
var a=as[i];
if(a.href.indexOf(url)==0||a.href.indexOf(_63)==0){
Jacuba.ChartLinker.applyTo(a);
}
}
};
Jacuba.ChartLinker.applyTo=function(a){
var url="http://"+Jacuba.ChartLinker.HOST+Jacuba.ChartLinker.URI;
var _66="http://"+Jacuba.ChartLinker.HOST+":"+Jacuba.ChartLinker.PORT+Jacuba.ChartLinker.URI;
if(a.href.indexOf(url)!=0&&a.href.indexOf(_66)!=0){
return alert(Jacuba.TextManager.getText("chart_link","not_chart_link",a.href));
}
var pos=a.href.indexOf("?");
var ext=pos!=-1?a.href.substring(pos):"";
var _68=null;
if(ext.indexOf("?")==0){
var _69=Jacuba.ChartLinker.Util.querystringDecode(ext);
_68=_69["form"];
if(_68!=null){
var _70=false;
for(var x in _69){
if(x!="form"){
_70=true;
break;
}
}
if(_70){
var _71=document.getElementById(_68);
var _72=_71.elements;
for(var x=0;x<_72.length;x++){
var _73=_72[x].name;
if((typeof _69[_73])=="undefined"){
_69[_73]=_72[x].value;
}
}
var del=new Array();
for(var x in _69){
if(x.indexOf("remove-")==0){
var _75=x.substring(7);
del[del.length]=x;
del[del.length]=_75;
}
}
for(var x=0;x<del.length;x++){
delete _69[del[x]];
}
_68=null;
delete _69["form"];
}
}
if(_68==null&&_69["table"]!=null){
var _71=document.createElement("FORM");
_71.style.display="none";
_68=_69["table"]+"-chart";
var tmp=document.getElementById(_68);
var _77=0;
while(tmp!=null){
_77++;
_68=_69["table"]+"-chart"+_77;
tmp=document.getElementById(_68);
}
_71.setAttribute("id",_68);
_71.id=_68;
var _78=document.createElement("INPUT");
_78.type="HIDDEN";
_78.name="generated-form";
_78.value="true";
_71.appendChild(_78);
for(var x in _69){
var _78=document.createElement("INPUT");
_78.type="HIDDEN";
_78.name=x;
_78.value=_69[x];
_71.appendChild(_78);
}
document.getElementsByTagName("BODY")[0].appendChild(_71);
}
}
if(_68==null){
var _79=document.forms;
for(var x=0;x<_79.length;x++){
if(_79[x].getAttribute("id")!=""){
for(var y=0;y<_79[x].elements.length;y++){
if(_79[x].elements[y].name=="table"){
_68=_79[x].getAttribute("id");
}else{
if(_79[x].elements[y].name=="generated-form"){
_68=null;
break;
}
}
}
}
}
}
if(_68==null){
alert(Jacuba.TextManager.getText("chart_link","no_link_criteria"));
return;
}
a.href="javascript:Jacuba.ChartLinker('"+_68+"')";
var _81=a.getAttribute("target");
if(_81!=null&&_81.length!=0&&_81!="_self"){
a.target="_self";
}
if(a.onclick&&Jacuba.ChartLinker.Util.isReturnFalse(a.onclick.toString())){
a.onclick=null;
}
};
Jacuba.ChartLinker.CriteriaEntry=function(_82,_83,def){
this.name=_82;
this.type=_83;
this.def=def;
if(_83.indexOf("enum:")==0){
this.type="enum";
var s=_83.substring(5);
this.enum_values=s.split(",");
}
};
Jacuba.ChartLinker.CriteriaEntry.prototype.getDefault=function(){
return this.def;
};
Jacuba.ChartLinker.CriteriaEntry.prototype.toString=function(){
return "[CriteriaEntry "+this.name+" "+this.type+"]";
};
Jacuba.ChartLinker.CriteriaEntry.prototype.matches=function(_86,_87){
if(_86==this.name){
return true;
}
if(_87!=null){
var _88=Jacuba.ChartLinker.Util.substitute(this.name,_87);
var lft=_88.indexOf("<");
if(lft!=-1){
var pre=_88.substring(0,lft);
if(_86.indexOf(pre)!=0){
return false;
}
var rht=_88.indexOf(">",lft+1);
if(rht!=-1){
var _92=_88.substring(rht+1);
if(_86.lastIndexOf(_92)!=_86.length-_92.length){
return false;
}
var _93=_86.substring(pre.length,_86.length-_92.length);
_93=parseInt(_93);
if(isNaN(_93)){
return false;
}
return true;
var _94=_88.substring(lft+1,rht);
var _95=new Jacuba.ChartLinker.NumberSet(_94);
if(_95.contains(_93)){
return true;
}else{
return Jacuba.TextManager.getText("chart_link","bad_index",_86,_93,_94);
}
}
}
return _88==_86;
}
};
Jacuba.ChartLinker.CriteriaEntry.prototype.checkIndex=function(_96,_97){
if(this.name.indexOf("<")==-1){
return null;
}
var _98=Jacuba.ChartLinker.Util.substitute(this.name,_97);
var lft=_98.indexOf("<");
if(lft!=-1){
var pre=_98.substring(0,lft);
var rht=_98.indexOf(">",lft+1);
if(rht!=-1){
var _99=_98.substring(rht+1);
var _100=_96.indexOf(pre)+pre.length;
var _101=_96.substring(_100,_96.length-_99.length);
_101=parseInt(_101);
if(isNaN(_101)){
return "Not for this criteria entry!";
}
var _102=_98.substring(lft+1,rht);
var _103=new Jacuba.ChartLinker.NumberSet(_102);
if(!_103.contains(_101)){
return Jacuba.TextManager.getText("chart_link","bad_index",_96,_101,_102);
}
}
}
return null;
};
Jacuba.ChartLinker.CriteriaEntry.prototype.validate=function(name,val,_105){
var msg=this.checkIndex(name,_105);
if(msg!=null){
return msg;
}
if(val==null||val.length==0){
return null;
}
var type=Jacuba.ChartLinker.Util.substitute(this.type,_105);
return this.checkType(name,val,type);
};
Jacuba.ChartLinker.CriteriaEntry.prototype.checkType=function(name,val,type){
if(type=="number"){
var tmp=parseFloat(val);
if(isNaN(tmp)){
return Jacuba.TextManager.getText("chart_link","input_bad_number",name,val);
}
}else{
if(type=="enum"){
var _107=false;
for(var x=0;x<this.enum_values.length;x++){
if(this.enum_values[x]==val){
_107=true;
break;
}
}
if(!_107){
return Jacuba.TextManager.getText("chart_link","input_bad_enum",name,val);
}
}else{
if(type=="natural"){
var tmp=parseInt(val);
if(isNaN(tmp)||tmp<0){
return Jacuba.TextManager.getText("chart_link","input_bad_natural",name,val);
}
}else{
if(type=="positive"){
var tmp=parseInt(val);
if(isNaN(tmp)||tmp<1){
return Jacuba.TextManager.getText("chart_link","input_bad_positive",name,val);
}
}else{
if(type=="number-set"){
var a=val.split(",");
for(var x=0;x<a.length;x++){
var pos=a[x].indexOf("-");
if(pos==-1){
var tmp=parseInt(a[x]);
if(isNaN(tmp)||tmp<0){
return Jacuba.TextManager.getText("chart_link","input_bad_numberset_number",name,tmp);
}
}else{
var _108=a[x].substring(0,pos);
var end=a[x].substring(pos+1);
var tmp=parseInt(_108);
if(isNaN(tmp)){
return Jacuba.TextManager.getText("chart_link","input_bad_numberset_number",name,tmp);
}
_108=tmp;
tmp=parseInt(end);
if(isNaN(tmp)){
return Jacuba.TextManager.getText("chart_link","input_bad_numberset_number",name,tmp);
}
end=tmp;
if(end<_108){
return Jacuba.TextManager.getText("chart_link","input_bad_nuberset_range",name,a[x]);
}
}
}
}else{
if(type=="boolean"){
if(val!="true"&&val!="false"){
return Jacuba.TextManager.getText("chart_link","input_bad_boolean",name,val);
}
}else{
if(type=="color"){
var _110=val.indexOf("#")==0&&(val.length==7||val.length==9);
if(!_110){
return Jacuba.TextManager.getText("chart_link","input_bad_color",name,val);
}
}else{
if(type=="date"){
if(!props.hasProperty("date-format")){
return Jacuba.TextManager.getText("chart_link","input_missing_date_format",name);
}
}else{
if(type=="locale"){
var a=val.splt("_");
if(a.length>3){
return Jacuba.TextManager.getText("chart_link","invalid_locale",name,val);
}
for(var x=0;x<a.length;x++){
if(a[x].length!=2){
return Jacuba.TextManager.getText("chart_link","invalid_locale",name,val);
}
}
}else{
if(type=="fill"){
if(val.indexOf("#")==0){
return this.checkType(name,val,"color");
}else{
if(val.indexOf("linear(")==0){
var pos=val.lastIndexOf(")");
if(pos==-1){
return Jacuba.TextManager.getText("chart_link","input_bad_linear",name,val);
}
var a=val.substring(7,pos).split(",");
if(a.length!=3){
Jacuba.TextManager.getText("chart_link","input_bad_linear",name,val);
}
var tmp;
tmp=this.checkType(name,a[0],"color");
if(tmp!=null){
return tmp;
}
tmp=this.checkType(name,a[1],"color");
if(tmp!=null){
return tmp;
}
tmp=parseInt(a[2]);
if(isNaN(tmp)){
return Jacuba.TextManager.getText("chart_link","input_bad_linear",name,val);
}
}else{
Jacuba.TextManager.getText("chart_link","input_bad_fill",name,val);
}
}
}
}
}
}
}
}
}
}
}
}
};
Jacuba.ChartLinker.CLIENT_CRITERIA=new Array(new Jacuba.ChartLinker.CriteriaEntry("table","text"),new Jacuba.ChartLinker.CriteriaEntry("open-on","enum:data-options,settings,chart","chart"),new Jacuba.ChartLinker.CriteriaEntry("may-edit","boolean"),new Jacuba.ChartLinker.CriteriaEntry("may-save","boolean"),new Jacuba.ChartLinker.CriteriaEntry("may-print","boolean"),new Jacuba.ChartLinker.CriteriaEntry("excluded-columns","number-set"),new Jacuba.ChartLinker.CriteriaEntry("excluded-rows","number-set"),new Jacuba.ChartLinker.CriteriaEntry("image","text"),new Jacuba.ChartLinker.CriteriaEntry("group","text"),new Jacuba.ChartLinker.CriteriaEntry("merge-rows","boolean"),new Jacuba.ChartLinker.CriteriaEntry("merge-columns","boolean"),new Jacuba.ChartLinker.CriteriaEntry("merge-collision","enum:either,first,second,sum"));
Jacuba.ChartLinker.SERVER_CRITERIA=new Array(new Jacuba.ChartLinker.CriteriaEntry("title","text","${caption}"),new Jacuba.ChartLinker.CriteriaEntry("plot","enum:rows,columns","rows"),new Jacuba.ChartLinker.CriteriaEntry("orientation","enum:normal,reverse","normal"),new Jacuba.ChartLinker.CriteriaEntry("columns-label","text"),new Jacuba.ChartLinker.CriteriaEntry("row-heading-column","natural"),new Jacuba.ChartLinker.CriteriaEntry("column-heading-row","natural"),new Jacuba.ChartLinker.CriteriaEntry("row-heading-width","natural"),new Jacuba.ChartLinker.CriteriaEntry("column-heading-width","natural"),new Jacuba.ChartLinker.CriteriaEntry("rows-label","text"),new Jacuba.ChartLinker.CriteriaEntry("values-label","text"),new Jacuba.ChartLinker.CriteriaEntry("width","positive"),new Jacuba.ChartLinker.CriteriaEntry("height","positive"),new Jacuba.ChartLinker.CriteriaEntry("rows","number-set"),new Jacuba.ChartLinker.CriteriaEntry("columns","number-set"),new Jacuba.ChartLinker.CriteriaEntry("row-label-<${rows-indices}>","text"),new Jacuba.ChartLinker.CriteriaEntry("column-label-<${columns-indices}>","text"),new Jacuba.ChartLinker.CriteriaEntry("chart-type","enum:line,area,bar,pie"),new Jacuba.ChartLinker.CriteriaEntry("datatype","enum:number,date,currency","number"),new Jacuba.ChartLinker.CriteriaEntry("locale","text"),new Jacuba.ChartLinker.CriteriaEntry("start-value","${datatype}"),new Jacuba.ChartLinker.CriteriaEntry("end-value","${datatype}"),new Jacuba.ChartLinker.CriteriaEntry("show-legend","boolean"),new Jacuba.ChartLinker.CriteriaEntry("font-family","enum:Arial,Courier,SansSerif,Times New Roman,Verdana"),new Jacuba.ChartLinker.CriteriaEntry("text-size","positive"),new Jacuba.ChartLinker.CriteriaEntry("text-color","color"),new Jacuba.ChartLinker.CriteriaEntry("font-style","enum:plain,italic,bold,bold-italic"),new Jacuba.ChartLinker.CriteriaEntry("label-font-family","text"),new Jacuba.ChartLinker.CriteriaEntry("label-text-size","positive"),new Jacuba.ChartLinker.CriteriaEntry("label-text-color","color"),new Jacuba.ChartLinker.CriteriaEntry("label-font-style","enum:plain,italic,bold,bold-italic"),new Jacuba.ChartLinker.CriteriaEntry("title-hidden","boolean"),new Jacuba.ChartLinker.CriteriaEntry("title-font-family","text"),new Jacuba.ChartLinker.CriteriaEntry("title-text-size","positive"),new Jacuba.ChartLinker.CriteriaEntry("title-text-color","color"),new Jacuba.ChartLinker.CriteriaEntry("title-font-style","enum:plain,italic,bold,bold-italic"),new Jacuba.ChartLinker.CriteriaEntry("legend-font-family","text"),new Jacuba.ChartLinker.CriteriaEntry("legend-text-size","positive"),new Jacuba.ChartLinker.CriteriaEntry("legend-text-color","color"),new Jacuba.ChartLinker.CriteriaEntry("legend-font-style","enum:plain,italic,bold,bold-italic"),new Jacuba.ChartLinker.CriteriaEntry("background-color","fill"),new Jacuba.ChartLinker.CriteriaEntry("plot-color-<${${plot}-indices}>","fill"),new Jacuba.ChartLinker.CriteriaEntry("line-draw-shapes","boolean"),new Jacuba.ChartLinker.CriteriaEntry("bar-style","enum:plain,plain_3d,stacked,stacked_3d,overlapped"),new Jacuba.ChartLinker.CriteriaEntry("pie-elliptic","boolean"),new Jacuba.ChartLinker.CriteriaEntry("pie-3d","boolean"),new Jacuba.ChartLinker.CriteriaEntry("date-locale","locale"),new Jacuba.ChartLinker.CriteriaEntry("date-format","text"),new Jacuba.ChartLinker.CriteriaEntry("currency-locale","locale"),new Jacuba.ChartLinker.CriteriaEntry("currency-format","text"),new Jacuba.ChartLinker.CriteriaEntry("theme","text"),new Jacuba.ChartLinker.CriteriaEntry("themes","text"),new Jacuba.ChartLinker.CriteriaEntry("fonts","text"));
Jacuba.ChartLinker.validateForm=function(form,info){
var _113=new Jacuba.ChartLinker.Properties(form);
var _114=document.getElementById(_113.getProperty("table"));
_113.setProperty("rows-indices","0-"+(info.rows-1));
_113.setProperty("columns-indices","0-"+(info.columns-1));
_113.setProperty("caption",info.caption);
for(var i=0;i<Jacuba.ChartLinker.SERVER_CRITERIA.length;i++){
var ce=Jacuba.ChartLinker.SERVER_CRITERIA[i];
var def=ce.getDefault();
if(!_113.hasProperty(ce.name)&&def!=null){
_113.setProperty(ce.name,def);
}
}
for(var i=0;i<form.elements.length;i++){
var _116=form.elements[i];
var name=_116.name;
if(name.indexOf("may-set-")==0){
if(name.indexOf("may-set-advanced")==0){
var ok=name.length==16;
if(!ok&&name.length>17){
var sub=name.substring(17);
ok=sub=="general"||sub=="chart-type"||sub=="title"||sub=="legend"||sub=="axes";
}
if(!ok){
return Jacuba.TextManager.getText("chart_link","no_such_property",name);
}
if(_116.value!="true"&&_116.value!="false"){
return Jacuba.TextManager.getText("chart_link","input_bad_boolean",name,_116.value);
}
}else{
if(name.indexOf("may-set-bar-style-to-")==0){
var _119=name.substring(21);
var ok=_119=="plain"||_119=="plain_3d"||_119=="stacked"||_119=="stacked_3d"||_119=="overlapped";
if(!ok){
return Jacuba.TextManager.getText("chart_link","no_such_property",name);
}
}else{
var _119=name.substring(8);
var ce=Jacuba.ChartLinker.getCriteriaEntryFor(_119,_113);
if(ce==null){
return Jacuba.TextManager.getText("chart_link","no_such_property",name);
}
var msg=ce.checkIndex(name,_113);
if(msg!=null){
return msg;
}
if(_116.value!="true"&&_116.value!="false"){
return Jacuba.TextManager.getText("chart_link","input_bad_boolean",name,_116.value);
}
}
}
}else{
var _120=Jacuba.ChartLinker.getCriteriaEntryFor(name,_113);
if(_120==null&&name!="generated-form"){
return Jacuba.TextManager.getText("chart_link","no_such_property",name);
}
var msg=_120!=null?_120.validate(name,_116.value,_113):null;
if(msg!=null){
return msg;
}
}
}
var _121=_113.getProperty("rows");
if(_121!=null){
var rows=new Jacuba.ChartLinker.NumberSet(_121);
var _123=rows.containsHigher(info.rows-1);
if(_123!=-1){
return Jacuba.TextManager.getText("chart_link","bad_index","rows",_123+"","0-"+(info.rows-1));
}
var _124=_113.getProperty("excluded-rows");
if(_124!=null){
var _125=new Jacuba.ChartLinker.NumberSet(_124);
for(var x=0;x<info.rows;x++){
if(rows.contains(x)&&_125.contains(x)){
return Jacuba.TextManager.getText("chart_link","excluded_row_conflict",x+"");
}
}
}
}
var _126=_113.getProperty("columns");
if(_126!=null){
var _127=new Jacuba.ChartLinker.NumberSet(_126);
var _123=_127.containsHigher(info.columns-1);
if(_123!=-1){
return Jacuba.TextManager.getText("chart_link","bad_index","columns",_123+"","0-"+(info.columns-1));
}
var _128=_113.getProperty("excluded-columns");
if(_128!=null){
var _129=new Jacuba.ChartLinker.NumberSet(_128);
for(var x=0;x<info.columns;x++){
if(_127.contains(x)&&_129.contains(x)){
return Jacuba.TextManager.getText("chart_link","excluded_column_conflict",x+"");
}
}
}
}
return null;
};
Jacuba.ChartLinker.getCriteriaEntryFor=function(name,_130){
for(var i=0;i<Jacuba.ChartLinker.CLIENT_CRITERIA.length;i++){
var ce=Jacuba.ChartLinker.CLIENT_CRITERIA[i];
if(ce.matches(name,_130)){
return ce;
}
}
for(var i=0;i<Jacuba.ChartLinker.SERVER_CRITERIA.length;i++){
var ce=Jacuba.ChartLinker.SERVER_CRITERIA[i];
if(ce.matches(name,_130)){
return ce;
}
}
return null;
};
Jacuba.ChartLinker.Util=new Object();
Jacuba.ChartLinker.Util.querystringDecode=function(str){
if(str.indexOf("?")==0){
str=str.substring(1);
}
var _132=new Object();
var _133=str.split("&");
for(var x=0;x<_133.length;x++){
var pos=_133[x].indexOf("=");
var key=pos!=-1?_133[x].substring(0,pos):_133[x];
var val=pos!=-1?_133[x].substring(pos+1):null;
if(key!=null){
key=Jacuba.ChartLinker.Util.querystringPartDecode(key);
}
if(val!=null){
val=Jacuba.ChartLinker.Util.querystringPartDecode(val);
}
_132[key]=val;
}
return _132;
};
Jacuba.ChartLinker.Util.querystringPartDecode=function(str){
str=str.replace(/\+/g," ");
str=str.replace(/\%20/g," ");
str=str.replace(/\%23/g,"#");
return str;
};
Jacuba.ChartLinker.Util.substitute=function(str,_135){
var done=false;
var last=str;
var _138;
while(!done){
_138="";
done=true;
var _139=0;
var pos=last.indexOf("${",_139);
while(pos!=-1){
var pos2=last.indexOf("}",pos+1);
if(pos2!=-1){
var name=last.substring(pos+2,pos2);
if(_135.hasProperty(name)){
var _141=_135.getProperty(name);
_138+=last.substring(_139,pos)+_141;
_139=pos2+1;
pos=str.indexOf("${",_139);
done=false;
}else{
pos=str.indexOf("${",pos+2);
}
}else{
pos=str.indexOf("${",pos+2);
}
}
_138+=last.substring(_139);
last=_138;
}
return _138;
};
Jacuba.ChartLinker.Util.isReturnFalse=function(_142){
var pos1=_142.indexOf("{");
var pos2=_142.lastIndexOf("}");
var _144=_142.substring(pos1+1,pos2);
_144=_144.replace(/\n/g,"");
_144=_144.replace(/\r/g,"");
_144=_144.replace(/\s/g,"");
return _144=="returnfalse"||_144=="returnfalse;";
};
Jacuba.ChartLinker.Util.getTableInformation=function(_145){
var trs=new Array();
Jacuba.ChartLinker.Util.getTRLevelElements(_145,trs);
var rows=0;
var _147=0;
var _148=null;
for(var i=0;i<trs.length;i++){
var y=trs[i];
if(y.nodeName=="TR"){
rows++;
var _149=0;
for(var x=y.firstChild;x!=null;x=x.nextSibling){
if(x.nodeName=="TD"||x.nodeName=="TH"){
var cs=x.getAttribute("colspan");
if(cs==null||cs.length==0){
_149++;
}else{
_149+=parseInt(cs);
}
}
}
if(_149>_147){
_147=_149;
}
}
if(y.nodeName=="CAPTION"){
_148=Jacuba.ChartLinker.Util.nodeTextValue(y);
}
}
return new Jacuba.ChartLinker.TableInformation(rows,_147,_148);
};
Jacuba.ChartLinker.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.ChartLinker.Util.getTRLevelElements(x,list);
}
}
};
Jacuba.ChartLinker.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;
}
for(var x=elem.firstChild;x!=null;x=x.nextSibling){
s+=Jacuba.ChartLinker.Util.nodeTextValue(x);
}
return s;
}
};
Jacuba.ChartLinker.Util.encodeAttributeValue=function(str){
return str.replace(/"/g,"&quot;");
};
Jacuba.ChartLinker.Properties=function(form){
this.props=new Object();
if(form!=null){
var _154=form.elements;
for(var x=0;x<_154.length;x++){
this.props[_154[x].name]=_154[x].value;
}
}
};
Jacuba.ChartLinker.Properties.prototype.setProperty=function(name,_155){
this.props[name]=_155;
};
Jacuba.ChartLinker.Properties.prototype.hasProperty=function(name){
return (typeof this.props[name])!="undefined";
};
Jacuba.ChartLinker.Properties.prototype.getProperty=function(name){
return this.props[name];
};
Jacuba.ChartLinker.TableInformation=function(rows,_156,_157){
this.rows=rows;
this.columns=_156;
this.caption=_157;
};
Jacuba.ChartLinker.NumberSet=function(str){
this.a=new Array();
if(str!=null){
var _158=str.split(",");
for(var i=0;i<_158.length;i++){
var pos=_158[i].indexOf("-");
if(pos==-1){
this.a[parseInt(_158[i])]=true;
}else{
var _159=parseInt(_158[i].substring(0,pos));
var _160=parseInt(_158[i].substring(pos+1));
for(var x=_159;x<=_160;x++){
this.a[x]=true;
}
}
}
}
};
Jacuba.ChartLinker.NumberSet.prototype.contains=function(num){
if(num<0||num>=this.a.length){
return false;
}
return this.a[num]==true;
};
Jacuba.ChartLinker.NumberSet.prototype.add=function(num){
this.a[num]=true;
};
Jacuba.ChartLinker.NumberSet.prototype.remove=function(num){
this.a[num]=false;
};
Jacuba.ChartLinker.NumberSet.prototype.containsHigher=function(num){
for(var _162=num+1;_162<this.a.length;_162++){
var _163=this.a[_162];
if(_163){
return _162;
}
}
return -1;
};
Jacuba.ChartLinker.NumberSet.prototype.toString=function(){
var _164=0;
var s="";
var _165=false;
var _166=false;
for(var _164=0;_164<this.a.length;_164++){
var _167=this.a[_164];
if(_167){
if(!_165){
if(s.length>0){
s+=",";
}
s+=_164;
_165=true;
}else{
_166=true;
}
}else{
if(_166){
s+="-"+(_164-1);
_166=false;
}
_165=false;
}
}
if(_166){
s+="-"+(_164-1);
_166=false;
}
return s;
};
Jacuba.ChartLinker.installCoding=function(){
if(!Jacuba.Coding){
alert("Coding framework not available");
return;
}
Jacuba.Coding.applyToClass("ChartLinker.NumberSet");
Jacuba.Coding.applyToClass("ChartLinker.TableInformation");
Jacuba.Coding.applyToClass("ChartLinker.Properties");
Jacuba.Coding.applyToClass("ChartLinker.CriteriaEntry");
Jacuba.Coding.applyToObject("ChartLinker",Jacuba.ChartLinker);
Jacuba.Coding.applyToObject("ChartLinker.Util",Jacuba.ChartLinker.Util);
};

