/*
 * Project: 3BIMonitoring2
 * Author: Pierpaolo Rebecchi - 3BI Consulting. SA
 * Version: 1.0
 * 
 * Copyright © 2007-2008 3BI Consulting. SA. All rights reserved.
 * 
 * Contact: info@3-bi.ch http:\\www.3-bi.ch
 * 
 * 
 */


Ext.data.Connection.prototype.doFormUpload=function(o,ps,url){var id=Ext.id();var frame=document.createElement('iframe');frame.id=id;frame.name=id;frame.className='x-hidden';if(Ext.isIE){frame.src=Ext.SSL_SECURE_URL;}
document.body.appendChild(frame);if(Ext.isIE){document.frames[id].name=id;}
var form=Ext.getDom(o.form);form.target=id;form.method='POST';form.enctype=form.encoding='multipart/form-data';if(url){form.action=url;}
var hiddens,hd;if(ps){hiddens=[];ps=Ext.urlDecode(ps,false);for(var k in ps){if(ps.hasOwnProperty(k)){hd=document.createElement('input');hd.type='hidden';hd.name=k;hd.value=ps[k];form.appendChild(hd);hiddens.push(hd);}}}
function cb(){if(frame.readyState=='interactive'){var r={responseText:'',responseXML:null};r.argument=o?o.argument:null;try{var doc;if(Ext.isIE){doc=frame.contentWindow.document;}else{doc=(frame.contentDocument||window.frames[id].document);}
if(doc&&doc.body){r.responseText=doc.body.innerHTML;}
if(doc&&doc.XMLDocument){r.responseXML=doc.XMLDocument;}else{r.responseXML=doc;}}
catch(e){alert('error');}
Ext.EventManager.removeListener(frame,'readystatechange',cb,this);this.fireEvent("requestcomplete",this,r,o);Ext.callback(o.success,o.scope,[r,o]);Ext.callback(o.callback,o.scope,[o,true,r]);setTimeout(function(){Ext.removeNode(frame);},100);}}
Ext.EventManager.on(frame,'readystatechange',cb,this);form.submit();if(hiddens){for(var i=0,len=hiddens.length;i<len;i++){Ext.removeNode(hiddens[i]);}}};

ThreeBI.SCRB.Utils=function(){};(function(){ThreeBI.SCRB.Utils.objectDump=function(obj){var output='';for(var el in obj){if(typeof obj[el]!='function')
output+=el+'='+obj[el]+';\n\n';}};ThreeBI.SCRB.Utils.gup=function(name)
{name=name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS="[\\?&]"+name+"=([^&#]*)";var regex=new RegExp(regexS);var results=regex.exec(window.location.href);if(results==null)
return"";else
return results[1];};})();

ThreeBI.SCRB.Application=function(){};(function(){ThreeBI.SCRB.Application.build=function(){document.getElementById('WaitMsg').style.display='none';var token=ThreeBI.SCRB.Comm.updateToken();window.open("flex/browser.html#token="+escape(token),"","resizable=yes,scrollbars=yes,status=yes,location=no,toolbar=no,menubar=no,alwaysRaised=true");};ThreeBI.SCRB.Application.buildDebug=function(){document.getElementById('WaitMsg').style.display='none';var token=ThreeBI.SCRB.Comm.updateToken();alert(ThreeBI.SCRB.Comm.getEntryPointVariables('SCRB-001'));var xmlstr='<DataSet>  <Action>    <Source>ThemeGroup</Source>    <Command>INSERT</Command>      </Action>    <Parameter>    <Attribute>Name_ThemeGroup</Attribute>    <Value>The New Name</Value>  </Parameter> <Parameter>    <Attribute>ID_Survey</Attribute>    <Value>SUR00001</Value>  </Parameter> <Class>    <Status>Filled</Status>    <ClassName>Request</ClassName>    <Table>Request</Table>  </Class>  <Class>    <Status>Filled</Status>    <ClassName>Attribute</ClassName>    <Table>Attribute</Table>  </Class>  </DataSet>';alert(ThreeBI.SCRB.Comm.updateStats('SCRB-001'));};})();

ThreeBI.SCRB.GridRenderers=function(){};(function(){ThreeBI.SCRB.GridRenderers.money=function(v,cell,row,rowIndex,colIndex,store,cryLbl){if((v==null||v=='')&&String(v)!='0')return v;if(cryLbl==null)cryLbl='MCHF';v=ThreeBI.SCRB.GridRenderers.round(v,2);return v+' '+cryLbl;};ThreeBI.SCRB.GridRenderers.percentage=function(v,cell,row,rowIndex,colIndex,store){if((v==null||v=='')&&String(v)!='0')return v;v=ThreeBI.SCRB.GridRenderers.round(v,1);return v+' %';};ThreeBI.SCRB.GridRenderers.round=function(v,ndgts){if((v==null||v=='')&&String(v)!='0')return v;var rdx=1;var rdxs='';for(var i=1;i<=ndgts;i++){rdx*=10;if(i==1)rdxs='.';rdxs+='0';}
v=(Math.round((v-0)*rdx))/rdx;v=(v==Math.floor(v))?v+rdxs:((v*(rdx/10)==Math.floor(v*(rdx/10)))?v+"0":v);v=String(v);var ps=v.split('.');var whole=ps[0];var sub=ps[1]?'.'+ps[1]:rdxs;var r=/(\d+)(\d{3})/;while(r.test(whole)){whole=whole.replace(r,'$1'+','+'$2');}
v=whole+sub;return v;};ThreeBI.SCRB.GridRenderers.Fill=function(v,ndgts){v=v.toString();var n0=ndgts
if(v.indexOf('.')>=0){var dpart=v.substring(v.indexOf('.')+1);n0=ndgts-dpart.length;}else v=v+'.';for(var i=0;i<n0;i++)v=v+'0';return v;}})();

ThreeBI.SCRB.BIError=function(message){Error.call(this,message);this.message=message;this.name='3BI Error';};

ThreeBI.SCRB.ToastMsg=function(){var msgCt;function createBox(t,s){return['<div class="msg">','<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>','<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><h3>',t,'</h3>',s,'</div></div></div>','<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>','</div>'].join('');}
return{msg:function(title,format){if(!msgCt){msgCt=Ext.DomHelper.insertFirst(document.body,{id:'msg-div'},true);}
msgCt.alignTo(document,'t-t');var s=String.format.apply(String,Array.prototype.slice.call(arguments,1));var m=Ext.DomHelper.append(msgCt,{html:createBox(title,s)},true);m.slideIn('t').pause(4).ghost("t",{remove:true});},init:function(){}};}();

ThreeBI.SCRB.Comm=function()
{};(function(){ThreeBI.SCRB.Comm.ErrorReport=function(error){if(!ThreeBI.SCRB.Comm.winError){if(error=='EXPIRED'){var yesButton=new Ext.Button({text:'Yes',minWidth:80})
var loginMode=ThreeBI.SCRB.Utils.gup('mode');var we_height=450;if(loginMode=='usrreg')we_height=300;if(loginMode=='smllgn')we_height=200;ThreeBI.SCRB.Comm.winError=new Ext.Window({title:'Session expired',autoCreate:true,resizable:false,layout:'fit',width:420,height:we_height,closable:false,draggable:false,plain:false,modal:true,iconCls:'refreshNAV'});var plogin=new ThreeBI.Login.LoginPanel({loginType:'mainlogin',backgroundColor:'white',portalName:'3BIMonitoring2',loginMode:loginMode});ThreeBI.SCRB.Comm.winError.add(plogin);if(ThreeBI.SCRB.Application.rendered){Ext.MessageBox.alert('ERROR !','Session is expired.</br>Click to login again',function(){window.location.reload();});}else{ThreeBI.SCRB.Comm.winError.show(this.id);ThreeBI.SCRB.Comm.winError.setTitle('3BIMonitoring2 Login');plogin.externalLoginHandler=function(){ThreeBI.SCRB.Comm.winError.close();ThreeBI.SCRB.Comm.winError=null;ThreeBI.SCRB.Application.build();};plogin.initHandlers();plogin.initStatus();}}else if(error=='INMAINTENANCE'){ThreeBI.SCRB.Comm.winError=new Ext.Window({title:'System in maintenance',autoCreate:true,resizable:false,layout:'fit',width:255,height:110,closable:false,plain:false,modal:true,draggable:false});var msg=ThreeBI.SCRB.Comm.getMaintenanceMsg();ThreeBI.SCRB.Comm.winError.add(new Ext.Panel({frame:false,border:false,autoScroll:false,html:'<span style="padding-left:1px;color:red"><b>'+msg+'</b></span>',bodyStyle:'padding:5px;'}));ThreeBI.SCRB.Comm.winError.show(this.id);}
else{ThreeBI.SCRB.Comm.winError=new Ext.Window({title:'Error caught',autoCreate:true,resizable:true,layout:'fit',width:255,height:110,closable:false,plain:false,modal:true,draggable:true,maximizable:true});ThreeBI.SCRB.Comm.winError.add(new Ext.Panel({frame:false,border:false,autoScroll:false,layout:'fit',html:'<span style="padding-left:1px;color:red"><b>The following error has been caught:<br/></b></span><pre>'+error+'</pre>',bodyStyle:'padding:5px;'}))
ThreeBI.SCRB.Comm.winError.show(this.id);}}}
var mainHandler=new MainHandler();var xotree=new XML.ObjTree();ThreeBI.SCRB.Comm.checkStatus=function(){var status='';try{var obj=xotree.parseXML(mainHandler.getStatus());status=obj.DataSet.Message.MessageDescription;}catch(e)
{status='ERROR: ThreeBI.SCRB.Comm.checkStatus '+e.message;}
if(status!='OK')ThreeBI.SCRB.Comm.ErrorReport(status);return status;};ThreeBI.SCRB.Comm.getMaintenanceMsg=function(){var message='';try{var rspns=mainHandler.getMaintenanceMsg();var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null)message=obj.DataSet.Error.ErrorType;else message=obj.DataSet.Message.MessageDescription;}catch(e)
{message='ERROR: ThreeBI.SCRB.Comm.getMaintenanceMsg '+e.message;}
return message;};ThreeBI.SCRB.Comm.updateStats=function(idReport){mainHandler.updateStats(idReport,function(response){});};ThreeBI.SCRB.Comm.waitMsg=function(status){if(status){ThreeBI.SCRB.Application.gui.getEl().mask('Loading data...','x-mask-loading');}else{ThreeBI.SCRB.Application.gui.getEl().unmask();}};ThreeBI.SCRB.Comm.checkLoginCookie=function(){if(!ThreeBI.SCRB.Comm.cp){ThreeBI.SCRB.Comm.cp=new Ext.state.CookieProvider({expires:new Date(new Date().getTime()+(1000*60*60*24*30)),secure:Ext.isSecure});Ext.state.Manager.setProvider(ThreeBI.SCRB.Comm.cp);}
var id=ThreeBI.SCRB.Comm.cp.get('SCRBPar1',null);var token=ThreeBI.SCRB.Comm.cp.get('LoginToken',null);var retString='';try{var obj=xotree.parseXML(mainHandler.checkLoginCookie(id,token));retString=obj.DataSet.Error.ErrorType;}catch(e){retString='ERROR: ThreeBI.SCRB.Comm.checkLoginCookie '+e.message;}
return retString};ThreeBI.SCRB.Comm.updateLoginCookie=function(){var data='';try{var obj=xotree.parseXML(mainHandler.updateLoginCookie());if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else{ThreeBI.SCRB.Comm.cp.set('SCRBPar1',obj.DataSet.Cookie.userid);ThreeBI.SCRB.Comm.cp.set('LoginToken',obj.DataSet.Cookie.token);return'OK';}}catch(e)
{data='ERROR: ThreeBI.SCRB.Comm.updateLoginCookie '+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.updateToken=function(){var data='';try{var rspns=mainHandler.updateToken();var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else{return obj.DataSet.Token.token;}}catch(e)
{data='ERROR ThreeBI.SCRB.Comm.updateToken '+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.checkLoginToken=function(token){var data='';try{var rspns=mainHandler.checkLoginToken(token);var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.checkLoginToken '+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.getEntryPointVariables=function(report){var data='';try{var rspns=mainHandler.getEntryPointVariables(report);var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.checkLoginToken '+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.getEntryPoints=function(){var data='';try{var rspns=mainHandler.getEntryPoints();var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.getEntryPoints '+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.getStudy=function(){var data='';try{var rspns=mainHandler.getStudy();var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.getStudy '+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.getMatrices=function(){var data='';try{var rspns=mainHandler.getMatrices();var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.getMatrix '+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.getVariables=function(matrixid){var data='';try{var rspns=mainHandler.getVariables(matrixid);var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.getVariable '+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.getScale=function(variableid){var data='';try{var rspns=mainHandler.getScale(variableid);var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.getVariable '+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.getReport=function(variableid){var data='';try{var rspns=mainHandler.getReport(variableid);var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.getReport '+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.getThemeGroups=function(variableid){var data='';try{var rspns=mainHandler.getThemeGroups(variableid);var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.getThemeGroups'+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.getThemes=function(variableid){var data='';try{var rspns=mainHandler.getThemes(variableid);var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.getThemes'+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.getThemeVariables=function(variableid){var data='';try{var rspns=mainHandler.getThemeVariables(variableid);var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.getThemeVariables'+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.getCategoricalValues=function(variableid){var data='';try{var rspns=mainHandler.getResponseEntries(variableid);var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.getCategoricalValues'+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.manageThemes=function(variableid){var data='';try{var rspns=mainHandler.manageThemes(variableid);var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.getCategoricalValues'+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.getUserCountryZone=function(zone,country){var data='';try{var rspns=mainHandler.getUserZoneCountry(zone,country);var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.getUserZoneCountry'+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};ThreeBI.SCRB.Comm.updateStats=function(zone,country){var data='';try{var rspns=mainHandler.updateStats(zone,country);var obj=xotree.parseXML(rspns);if(obj.DataSet.Error!=null){data=obj.DataSet.Error.ErrorType;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}
else return rspns;}catch(e){data='ERROR: ThreeBI.SCRB.Comm.updateStats'+e.message;ThreeBI.SCRB.Comm.ErrorReport(data);return new String('ERROR');}};})();

Ext.QuickTips.init();Ext.onReady(function(){document.getElementById('WaitMsg').style.display='none';var status=ThreeBI.SCRB.Comm.checkStatus();});;

