
var TenTen={path:(function(){var path=$$('script').map(function(tag){return tag.src;}).filter(function(src){var path=src.toLowerCase().split('\/'),dir=path[path.length-2],file=path[path.length-1],built_files=['complete.js','complete-debug.js','tenten.js','tenten-debug.js','login.js','login-debug.js','standalone.js','standalone-debug.js'];return dir==='build'&&built_files.inject(false,function(acc,str){return acc||file.startsWith(str);});})[0].split('\/');var full_path=path[0].toLowerCase()in{http:null,https:null};if(full_path)
return'\/'+path.slice(3,path.length-2).join('\/');else
return path.slice(0,path.length-2).join('\/');})()};TenTen.Util=new function(){var resource_path=TenTen.path+'/resources/Util/';var images={'file':'file.png','folder':'folder.png','merged':'merged.png','quick_query_param':'quick_query_param.png','quick_query_view':'quick_query_view.png','table':'table.png','uploaded_query':'uploaded_query.png'};$H(images).each(function(image){var temp_img=new Image();temp_img.src=resource_path+'images/'+image.value;});this.Date=new function(){var k_zero=Math.floor(new Date('Jan 1 2035').getTime()/1000);this.kts_to_date=function(kts){return new Date(k_zero*1000+((kts-0)*1000));};this.date_to_kts=function(date){return Math.floor(date.getTime()/1000)-k_zero;};};this.Number=new function(){this.format=function(n){var decimal=(n+'').indexOf('.')>-1?'.'+(n.toFixed(2)).split('.')[1]:'';return(n.floor()+'').split('').reverse().join('').gsub(/(\d\d\d)(?!$)/,function(m){return m[0]+',';}).split('').reverse().join('')+decimal;};};this.String=new function(){this.crc32=function(){var table='00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 '+'0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 '+'1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 '+'136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 '+'3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B '+'35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 '+'26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F '+'2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D '+'76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 '+'7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 '+'6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 '+'65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 '+'4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB '+'4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 '+'5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F '+'5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD '+'EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 '+'E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 '+'F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 '+'FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 '+'D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B '+'D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 '+'CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F '+'C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D '+'9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 '+'95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 '+'86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 '+'88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 '+'A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB '+'AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 '+'BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF '+'B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D';return function(str,crc){if(typeof crc==='undefined')var crc=0;var n=0;var x=0;crc=crc^(-1);for(var i=0,iTop=str.length;i<iTop;i++){n=(crc^str.charCodeAt(i))&0xFF;x='0x'+table.substr(n*9,8);crc=(crc>>>8)^x;}
return crc^(-1);};}();};this.Cookie=new function(){this.set=function(name,value,days,domain,path,secure,do_not_delete){if(typeof do_not_delete==='undefined'||!do_not_delete){this.del(name);return this.set(name,value,days,domain,path,secure,true);};var expiration='';var security='';var domain_value='';var path_value='';var security='';if(days){var date_expire=new Date();date_expire=new Date(date_expire.getTime()+(days*24*60*60*1000));expiration=';expires='+date_expire.toGMTString();};if(domain)
domain_value='; domain='+domain;if(path)
path_value='; path='+path;else
path_value='; path = /';if(secure)security='; secure';document.cookie=name+'='+encodeURIComponent(value)+expiration+domain_value+path_value+security;};this.get=function(name){return decodeURIComponent(document.cookie.toQueryParams(/;\s*/)[name]||'');};this.del=function(name){var host=document.location.host.split('.').reverse();var domain=['',host[1],host[0]].join('.');var path=(function(str){var match=str.match(/(.*)(\/.*$)/);return match?(match[1]||match[2]):'/';})(document.location.pathname);path+=(path.match(/\/$/)?'':'/');this.set(name,'',-1,null,null,null,true);this.set(name,'',-1,domain,null,null,true);this.set(name,'',-1,null,path,null,true);this.set(name,'',-1,domain,path,null,true);};this.get_json=function(name){var ck=TenTen.Util.Cookie.get(name);try{ck=eval('('+ck+')');return ck;}catch(e){return null;}};this.set_json=function(name,obj,days,domain,path,secure){if(name&&obj)TenTen.Util.Cookie.set(name,Object.toJSON(obj),days||null,domain||null,path||null,secure||null);};};this.Object=new function(){var fingerprint=function(obj){var print=[],keys=[],self=arguments.callee;for(var key in obj){keys.push(key);};keys.sort().each(function(key){print.push(key);if(typeof obj[key]==='object'&&obj[key]&&!Object.isArray(obj[key])&&$H(obj[key]).size())
print.push(self(obj[key]));});return print;};this.same_type=function(obj1,obj2){return fingerprint(obj1).toJSON()===fingerprint(obj2).toJSON();};};this.Queue=function(){var queue=[];var flag=true;var execute=function(){flag=false;queue.shift()();};this.bulk=function(arr){arr.each(this.push);};this.empty=function(){queue=[];flag=true;};this.free=function(){return flag&&!queue.length;};this.push=function(fn){queue.push(fn);if(flag)execute();};this.shift=function(){flag=true;if(queue.length)execute();};this.debug=function(){return queue;};};this.File=new function(){var item_types={'dir':'folder','REAL':'table','UQ':'uploaded_query','VIEW':'quick_query_view','PARAM':'quick_query_param','MERGED':'merged'};this.icon=function(item){var type=('numchild'in item)?'dir':item.system_type||item.type;return resource_path+'images/'+images[item_types[type]||'file'];};this.icon_class=function(item){var type=('numchild'in item)?'dir':item.system_type||item.type;return'app_icon_'+(item_types[type]||'file');};};this.DOM=new function(){this.array_to_dropdown=function(val_text_pairs,select_elem){$(select_elem).childElements().invoke('remove');val_text_pairs.each(function(pair){var opt=document.createElement('option');select_elem.appendChild(opt);opt.value=pair[0];opt.text=pair.last();});};this.find=function(obj){var handler=obj.handler,id=obj.id,timeout=obj.timeout||5,interval=0.25,tries=0,node=$(id),max=Math.floor(timeout/interval);if(node)return handler(node);var check=function(){if((node=$(id))||++tries>=max)return handler(node);check.delay(interval);};check.delay(interval);};this.listdir_to_dropdown=function(args){$(args.select_elem).childElements().invoke('remove');var opt=document.createElement('option');args.select_elem.appendChild(opt);opt.text='retrieving lists...';var handler=args.handler||function(){};TenTen.API.listdir({path:args.dir,include:['id','title'],handler:function(result){if(result.rc.value!='0'){alert('Failed to retrieve lists: '+args.dir);handler();return;}
var arr=[];if(typeof result.dir.value.children.value==='undefined')
arr.push(['','no lists available']);else result.dir.value.children.value.each(function(child){if('tab'in child)arr.push([child.tab.attributes.id,child.tab.attributes.title]);});arr.sort(function(a,b){var x=a[1].toUpperCase();var y=b[1].toUpperCase();return x<y?-1:Number(x>y);});TenTen.Util.DOM.array_to_dropdown(arr,args.select_elem);handler.defer();}});};};};TenTen.XML=new function(){var jsonify=function(element){var temp={};temp[element.nodeName]={};$A(element.attributes).each(function(att){if(typeof temp[element.nodeName].attributes==='undefined')temp[element.nodeName]['attributes']={};temp[element.nodeName]['attributes'][att.nodeName]=att.nodeValue;});$A(element.childNodes).each(function(child){if(child.nodeType===3&&!/\S/.test(child.nodeValue))return;if(child.nodeType===3){temp[element.nodeName]['value']=child.nodeValue;}else{if(typeof temp[element.nodeName].value==='undefined')temp[element.nodeName].value=[];temp[element.nodeName].value.push(jsonify(child));};});return temp;};var doc_handler=function(xmldom,handler){try{var doc=xmldom.documentElement;var json=jsonify(doc);handler(json);}catch(error){throw{name:'ParserError',message:'jsonify failed trying to iterate'};handler({});};};var doc_from_str=function(str,handler){var xmldom=function(){return Try.these(function(){return(new DOMParser()).parseFromString(str,'text/xml');},function(){var xml=new ActiveXObject('MSXML2.DOMDocument.6.0');xml.loadXML(str);return xml;},function(){var xml=new ActiveXObject('MSXML2.DOMDocument.3.0');xml.loadXML(str);return xml;})||false;}();if(!xmldom){throw{name:'ParserError',message:'This browser does not seem to have an XML parser or it failed trying to parse this: \n'+str};return handler({});};doc_handler(xmldom,handler);};var doc_from_url=function(url,handler){TenTen.API.ajax(url,{method:'GET',failure_handler:handler.curry({}),success_handler:function(response){doc_from_str(response.transport.responseText,handler);}});};this.xml_to_json=function(obj){try{if(typeof obj.handler!=='function')throw{name:'ParamError',message:'obj.handler must be a function.'};if(!(typeof obj.url==='string'||typeof obj.string==='string'))throw{name:'ParamError',message:'obj.url or obj.string must be defined.'};var handler=obj.handler;if(typeof obj.url==='string'){doc_from_url(obj.url,handler);}else{doc_from_str(obj.string,handler);}}catch(error){TenTen.API.error_log(error);handler({});};};this.xml_to_html=function(node){if(node.nodeType===Node.TEXT_NODE)return!/\S/.test(node.nodeValue)?false:document.createTextNode(node.nodeValue);var attributes=$A(node.attributes).inject({},function(acc,attribute){acc[attribute.nodeName]=attribute.nodeValue;return acc;});var element=new Element(node.tagName,attributes);$A(node.childNodes).each(function(child){var child_clone=this.xml_to_html(child);if(child_clone)element.appendChild(child_clone);}.bind(this));return element;};};TenTen.API=new function(){this.resource_path=TenTen.path+'/resources/API/';var api=this;var id=0;TenTen.Util.Cookie.del('login_post');this.debug='debug'in document.location.search.toQueryParams()?!!(document.location.search.toQueryParams().debug-0):false;var debug=function(output){if(typeof console!=='undefined')
console.log(output);};var log=[];this.log=function(str,br){if(typeof str!=='undefined'&&!str)return log;var line=br||'<br />';var output=log.map(function(error){return error.name+': '+error.message+line+error.time;});return output.length&&output.join(line+line)||'No errors have been logged.';};this.queue=new TenTen.Util.Queue();var d_accum_queue=new TenTen.Util.Queue();var logout_queue=new TenTen.Util.Queue();this.logged_out=false;this.rc={'-1':'Unclassified client-side error','0':'Success (no error)','1':'Unclassified server-side error','2':'XML error','3':'Missing user identification','4':'Invalid user identification','5':'Already logged in','6':'Missing transaction type','7':'Invalid transaction type','8':'Missing element','9':'Invalid element value','10':'Invalid element contents','11':'Missing attribute','12':'Invalid attribute name','13':'Invalid attribute value','14':'Invalid directory name','15':'No such directory','16':'Invalid table name','17':'No such table','18':'No such directory or table','19':'Directory already exits','20':'Table already exits','21':'No query specified','22':'Not currently implemented for Quick Queries','23':'Too many values','24':'Empty table','25':'Problem saving table','26':'Cannot save into \'uploads\' directory','27':'Problem deleting table','28':'Problem saving file','29':'Duplicate column names','30':'Duplicate table names','31':'No FTP permission','32':'Not enough available space left in your account.','33':'Problem moving table or directory','34':'Problem modifying table or directory attributes','35':'Not logged in.','36':'<cols> contains columns that do not appear in result','37':'You do not own the specified group','38':'System is busy','39':'You are not at an authorized IP address.','40':'Not a user on this system but may be valid on another system.'};this.handlers=new function(){this.busy=function(){};this.free=function(){};};var internal_handlers={'35':function(result){api.logged_out=true;if('35'in api.handlers)
return api.handlers['35'](result);else
return result;}};var api_handlers=function(code,result,post_id){if(0!==+code){try{var description=post_id in requests?requests[post_id].config.description||'No further information available.':'No further information available.';var message=new Template('Request ID: #{id}, Error code #{code}: #{value} Info: #{description}');api.error_log({name:'APIError',message:message.evaluate({id:post_id,code:result.rc.value,value:result.msg.value,description:description})});}catch(error){api.error_log(error);};};if(code in internal_handlers)return internal_handlers[code](result);if(code in api.handlers)return api.handlers[code](result);return result;};this.homepage=function(){return'http://'+((document.t&&document.t.domain&&document.t.domain.value)||document.location.host)+'/'+
((document.t&&document.t.homepage&&document.t.homepage.value)||'');};this.timeout=600;var net_healthy=true;this.net_healthy=function(){return net_healthy;};var credentials;this.credentials=function(){if(typeof credentials==='undefined'){var query_string=window.location.search.parseQuery();var uid,sid,pswd;uid=query_string.uid||document.t&&document.t.uid&&document.t.uid.value;sid=query_string.sid||document.t&&document.t.sid&&document.t.sid.value;pswd=query_string.pswd||document.t&&document.t.pswd&&document.t.pswd.value;credentials={uid:{value:uid},sid:{value:sid},pswd:{value:pswd}};};return Object.clone(credentials);};this.reset_credentials=function(cred){credentials=cred;if(document.t&&document.t.uid)document.t.uid.value=cred.uid.value;if(document.t&&document.t.sid)document.t.sid.value=cred.sid.value;if(document.t&&document.t.pswd)document.t.pswd.value=cred.pswd.value;};this.error_log=function(error){error.time=new Date();log.push(error);if(api.debug)debug(error);return null;};var JSONIF=new function(){var intermediate_format=function(obj,key){var value;var attributes=function(atts){var coll=[];var temp={};for(var att in atts){temp[att]=atts[att];coll.push(temp);temp={};};return coll.length&&coll||undefined;}(obj.attributes);value=Object.isArray(obj.value)?function(arr){var coll=[];arr.each(function(obj){for(var key in obj){var temp=intermediate_format(obj[key],key);coll.push([key,temp.attributes,temp.value]);};});return coll;}(obj.value):(typeof obj.value==='object')?function(obj){var coll=[];for(var key in obj){var temp=intermediate_format(obj[key],key);coll.push([key,temp.attributes,temp.value]);};return coll;}(obj.value):obj.value;return{'key':key,'attributes':attributes,'value':value};};this.json_to_if=function(json){if(typeof json==='undefined')throw{name:'ParamError',message:'json must be supplied to json_to_if'};var result=[];for(var key in json){var temp=intermediate_format(json[key],key);result.push([key,temp.attributes,temp.value]);};return result;};var collectibles={th:null,tr:null,td:null,user:null,file:null,col:null,dir:null,tab:null,status:null,dependency:null,merged_table:null,group:null,datum:null,comp:null};var process_array=function(arr){var val,temp,push_value,lcv,len=arr.length;if(!len)return undefined;var first_element=arr[0][0];if(first_element in collectibles){val=[];for(lcv=0;lcv<len;lcv+=1){temp=jsonify(arr[lcv]);push_value={};push_value[temp.key]={value:temp.value,attributes:temp.attributes};val.push(push_value);};return val;};val={};for(lcv=0;lcv<len;lcv+=1){temp=jsonify(arr[lcv]);val[temp.key]={value:temp.value,attributes:temp.attributes};};return val;};var jsonify=function(obj){var key=obj[0],attributes_collection=obj[1],attributes={},len,lcv,property,att;if(Object.isArray(attributes_collection)){len=attributes_collection.length;for(lcv=0;lcv<len;lcv+=1){att=attributes_collection[lcv];for(property in att)attributes[property]=att[property];};};return{key:key,value:Object.isArray(obj[2])?process_array(obj[2]):obj[2],attributes:attributes};};this.if_to_json=function(str){if(typeof str==='undefined')throw{name:'ParamError',message:'str must be supplied to if_to_json'};eval('var json = ('+str+').result;');var result={},len=json.length,lcv,temp;for(lcv=0;lcv<len;lcv+=1){temp=jsonify(json[lcv]);result[temp.key]={value:temp.value,attributes:temp.attributes};};return result;};};Array.prototype.______array='______array';var JSON={org:'http://www.JSON.org',copyright:'(c)2005 JSON.org',license:'http://www.crockford.com/JSON/license.html',stringify:function(arg){var c,i,l,s='',v;switch(typeof arg){case'object':if(arg){if(arg.______array=='______array'){for(i=0;i<arg.length;++i){v=this.stringify(arg[i]);if(s){s+=',';}
s+=v;}
return'['+s+']';}else if(typeof arg.toJsonString!='undefined'){return arg.toJsonString();}else if(typeof arg.toString!='undefined'){for(i in arg){v=arg[i];if(typeof v!='undefined'&&typeof v!='function'){v=this.stringify(v);if(s){s+=',';}
s+=this.stringify(i)+':'+v;}}
return'{'+s+'}';}}
return'undefined';case'number':return isFinite(arg)?String(arg):'undefined';case'string':l=arg.length;s='"';for(i=0;i<l;i+=1){c=arg.charAt(i);if(c>=' '){if(c=='\\'||c=='"'){s+='\\';}
s+=c;}else{switch(c){case'\b':s+='\\b';break;case'\f':s+='\\f';break;case'\n':s+='\\n';break;case'\r':s+='\\r';break;case'\t':s+='\\t';break;default:c=c.charCodeAt();s+='\\u00'+Math.floor(c/16).toString(16)+
(c%16).toString(16);}}}
return s+'"';case'boolean':return String(arg);default:return'undefined';}},tableToArray:function(table){var ret=new Object();var keys=table[0][2];var vals=table[1][2];for(var i=0;i<keys.length;i++){ret[keys[i][2]]=vals[i][2][0][2];}
return ret;},get:function(obj,key){var ary=obj['result']
if(ary==undefined)
ary=obj;for(var i=0;i<ary.length;i++)
{if(ary[i][0]==key)
return ary[i][2];}
return null;},getAttr:function(obj,key,attr){var ary=obj['result']
if(ary==undefined)
ary=obj[2][1];else
ary=ary[2][1];for(m=0;m<ary.length;m++)
{if(ary[m][attr]!=undefined)
return ary[m][attr];}
return null;},parse:function(text,ctors){var at=0;var ch=' ';function error(m){throw{name:'JSONError',message:m,at:at-1,text:text};}
function next(){ch=text.charAt(at);at+=1;return ch;}
function white(){while(ch!=''&&ch<=' '){next();}}
function str(){var i,s='',t,u;if(ch=='"'){outer:while(next()){if(ch=='"'){next();return s;}else if(ch=='\\'){switch(next()){case'b':s+='\b';break;case'f':s+='\f';break;case'n':s+='\n';break;case'r':s+='\r';break;case't':s+='\t';break;case'u':u=0;for(i=0;i<4;i+=1){t=parseInt(next(),16);if(!isFinite(t)){break outer;}
u=u*16+t;}
s+=String.fromCharCode(u);break;default:s+=ch;}}else{s+=ch;}}}
error("Bad string");}
function arr(){var a=[];if(ch=='['){next();white();if(ch==']'){next();return a;}
while(ch){a.push(val());white();if(ch==']'){next();return a;}else if(ch!=','){break;}
next();white();}}
error("Bad array");}
function obj(){var k,o={};if(ch=='{'){next();white();if(ch=='}'){next();return o;}
while(ch){k=str();white();if(ch!=':'){break;}
next();o[k]=val();white();if(ch=='}'){next();return o;}else if(ch!=','){break;}
next();white();}}
error("Bad object");}
function num(){var n='',v;if(ch=='-'){n='-';next();}
while(ch>='0'&&ch<='9'){n+=ch;next();}
if(ch=='.'){n+='.';while(next()&&ch>='0'&&ch<='9'){n+=ch;}}
if(ch=='e'||ch=='E'){n+='e';next();if(ch=='-'||ch=='+'){n+=ch;next();}
while(ch>='0'&&ch<='9'){n+=ch;next();}}
v=+n;if(!isFinite(v)){error("Bad number");}else{return v;}}
function word(){switch(ch){case't':if(next()=='r'&&next()=='u'&&next()=='e'){next();return true;}
break;case'f':if(next()=='a'&&next()=='l'&&next()=='s'&&next()=='e'){next();return false;}
break;case'n':if(next()=='u'&&next()=='l'&&next()=='l'){next();return null;}
break;}
error("Syntax error");}
function ctor(){var name='';if(ch=='@'){next();while(ch=='.'||(ch.toUpperCase()>='A'&&ch.toUpperCase()<='Z')){name+=ch;next();}
var arg=val();if(name in ctors){return ctors[name](arg);}else{error("Unknown ctor "+name);}}
error("Bad ctor");}
function val(){white();switch(ch){case'@':return ctor();case'{':return obj();case'[':return arr();case'"':return str();case'-':return num();default:return ch>='0'&&ch<='9'?num():word();}}
return val();}};var make_trans_id=function(post_id){return post_id+'_'+(new Date()).getTime();};var pre_post=function(obj){var post_id='id'in obj&&typeof obj.id in{'string':null,'number':null}?obj.id:++id;var queue=obj.queue||api.queue;if(obj.loading)obj.loading(post_id);if(!obj.suppress_busy&&!queue.free())api.handlers.busy();var config={method:obj.method,api_params:obj.api_params,handler:obj.handler,post_id:post_id,async:obj.async,queue:queue,use_prototype_ajax:!!(obj.use_prototype_ajax)};queue.push(function(){var submit_transaction=function(){post.apply(api,[config]);};submit_transaction();});};var api_url=document.location.pathname+'?'+
Object.toQueryString({ajax:true,apiversion:3,protocol:'json-rpc'});this.version=function(){var file=(api.url||api_url).split('/').last().toLowerCase();if(file.match(/test/))return'test';if(file.match(/beta/))return'beta';if(file.match(/old/))return'old';return'prod';};this.uniq_id=(function(){var uniq_id=0;var uniq_prefix='api'+(''+(new Date).getTime()).split('').reverse().slice(0,3).join('');return function(){return uniq_prefix+(uniq_id++);};})();var post=function(obj){var method=obj.method,api_params=obj.api_params,handler=obj.handler,post_id=obj.post_id,async=typeof obj.async==='undefined'?true:obj.async,queue=obj.queue,use_prototype_ajax=obj.use_prototype_ajax;var url=api.url||api_url;var post_arguments=$A(arguments);try{var post_params={method:method,params:JSONIF.json_to_if(api_params),id:post_id};}catch(error){return api.error_log(error);};post_params=JSON.stringify(post_params);if(api.debug)debug(post_params);var content_failure=function(response,post_id,total_time){var msg='An error has occurred. It was recorded in TenTen.API.';try{msg+=' The server said:\n'+response.transport.responseText;}catch(error){msg+=('name'in error)?'\n'+error.name+': ':'';msg+=('message'in error)?'\n'+error.message:'';msg+=('lineNumber'in error)?'\nline: '+error.lineNumber:'';msg+=('fileName'in error)?'\nfile: '+error.fileName:'';api.error_log(error);};var result={rc:{value:'-1'},msg:{value:msg}};queue.shift();if(queue===api.queue&&queue.free())api.handlers.free();return handler(api_handlers(result.rc.value,result,post_id),post_id,total_time);};var response_success=function(response,post_id,total_time){if(response.transport.readyState!==4)return response_success.curry(response,post_id,total_time).delay(0.1);try{var text=response.transport.responseText;var processed_response=JSONIF.if_to_json(text).out.value;}catch(error){content_failure(response,post_id,total_time);return api.error_log(error);};queue.shift();if(queue===api.queue&&queue.free())api.handlers.free();handler(api_handlers(processed_response.rc.value,processed_response,post_id),post_id,total_time);};if(api.logged_out){queue.shift();handler(api_handlers('35',{rc:{value:'35'},msg:{value:'You are not logged in.'}},post_id),post_id,0);return;};var start_time;if(use_prototype_ajax)
new Ajax.Request(url+=(url.match(/\?/)?'&':'?')+'trans_id='+make_trans_id(post_id),{evalJS:false,evalJSON:false,sanitizeJSON:false,onCreate:function(){start_time=(new Date).getTime();if(obj.create_handler)obj.create_handler(post_id);},onSuccess:function(response){var self=arguments.callee;if(response.transport.readyState!==4)return self.curry(response).delay(1);var total_time=(new Date).getTime()-start_time;response_success(response,post_id,total_time);},onFailure:function(response){var transport=response.transport;var message=new Template('Request ID: #{id}, HTTP Status #{status} for #{url}: #{text} Info: #{description}');api.error_log({name:'APIError',message:message.evaluate({id:post_id,status:transport.status,text:transport.statusText,url:url,description:obj.description||'No further information is available.'})});},method:'POST',asynchronous:async,postBody:encodeURIComponent(post_params)});else
api.ajax(url,{id:post_id,add_trans_id:true,success_handler:response_success,async:async,parameters:encodeURIComponent(post_params),method:'POST',description:post_params});};this.requests={};var requests=this.requests;this.abort=function(post_id){if(typeof post_id==='undefined')return;if(post_id in requests)return abort_request(post_id,2);if(post_id==='all'){for(var request in requests){abort_request(request,2);};};};var net_retry=function(){};this.net_retry=function(){net_retry();};this.net_failure=function(){};this.net_recovery=function(){};var net_failure=function(status){return[0,1223,12002,12029,12030,12031,12152].include(+status);};var abort_request=function(post_id,abort_value){if(!(post_id in requests))return;if(requests[post_id].delay_id)window.clearTimeout(requests[post_id].delay_id);var ajax=requests[post_id].ajax;if(ajax===null)return;try{if(!ajax.aborted){ajax.aborted=abort_value||1;(function(){ajax.transport.abort();}).defer();};}catch(error){api.error_log(error);};};this.ajax_cancel_loading=function(){};this.ajax_cancel_handler=function(){};this.ajax=function(url,obj){var post_id='id'in obj&&typeof obj.id in{'string':null,'number':null}?obj.id:++id;if(obj.add_trans_id)url+=(url.match(/\?/)?'&':'?')+'trans_id='+make_trans_id(post_id);var start_time;var create_handler=function(post_id){start_time=(new Date).getTime();if(obj.create_handler)obj.create_handler(post_id);};var success_handler=function(response,post_id){var total_time=(new Date).getTime()-start_time;if(obj.success_handler)obj.success_handler(response,post_id,total_time);};var failure_handler=function(response,post_id){var total_time=(new Date).getTime()-start_time;if(obj.failure_handler)obj.failure_handler(response,post_id,total_time);};var async='async'in obj?obj.async:true;var method=obj.method||'POST';var timeout=obj.timeout||api.timeout;var parameters=obj.parameters||'';if(!(post_id in requests))requests[post_id]={ajax:null,delay_id:null,repost:null,count:0,config:obj};var succeeded=false,created=false;var request=function(){if(!(post_id in requests))return;var returned=false;var repost=function(no_delay){returned=false;if(requests[post_id].delay_id)window.clearTimeout(requests[post_id].delay_id);var message=new Template('The API transaction has timed out or failed. It has been aborted and re-posted. '+'Request ID: #{id} has been posted #{count} times so far. Info: #{description}');var api_error={name:'APIError',message:message.evaluate({id:post_id,count:requests[post_id].count,description:obj.description||'No further information is available.'})};api.error_log(api_error);var stop_reposting=function(){var message=new Template('This transaction has been reposted #{count} times. '+'Click OK to continue waiting for a response or cancel to stop.');return!window.confirm(message.evaluate({count:requests[post_id].count}));};if(requests[post_id].count&&requests[post_id].count%20===0&&stop_reposting())
return api.stop({loading:api.ajax_cancel_loading,handler:api.ajax_cancel_handler,suppress_busy:true});request.delay(no_delay?0:timeout);};requests[post_id].repost=repost;returned=false;abort_request(post_id,1);var delay_id=null;requests[post_id].delay_id=delay_id=(function(){if(!(post_id in requests))return;if(!returned)repost(true);}).delay(timeout);var net_failure_handler=function(orig_response){var test_interval=30;net_healthy=false;var handler=function(){net_healthy=true;api.net_recovery();requests[post_id].repost(true);};var status=orig_response.getStatus();var message=new Template('Request ID: #{id}, HTTP Status #{status} for #{url}: #{text} Info: #{description}');api.error_log({name:'APIError',message:message.evaluate({id:post_id,status:status,text:'Connection Failure',url:url,description:obj.description||'No further information is available.'})});if(requests[post_id].delay_id)window.clearTimeout(requests[post_id].delay_id);var test_connection=function(callback){var retry=function(){var delay=(function(){test_connection(callback);}).delay(test_interval);net_retry=function(){net_retry=function(){};if(delay)window.clearTimeout(delay);test_connection(callback);};};new Ajax.Request(api.resource_path+'html/connection.html?time='+(new Date).getTime(),{method:'GET',onSuccess:function(response){if(net_failure(response.getStatus()))retry();else callback();},onFailure:retry});};api.net_failure();test_connection(handler);};var ajax_request=null;ajax_request=new Ajax.Request(url,{evalJS:false,evalJSON:false,sanitizeJSON:false,onCreate:function(){if(!created){created=true;create_handler(post_id);};},onSuccess:function(response){returned=true;var self=arguments.callee,status=response.getStatus();if(ajax_request&&ajax_request.aborted){if(ajax_request.aborted===2){if(delay_id)window.clearTimeout(delay_id);return repost(true);};return;};if(net_failure(status))return net_failure_handler(response);if(response.transport.readyState!==4){return(function(){var recover=function(){if(delay_id)window.clearTimeout(delay_id);repost(true);};if(response.transport.readyState!==4)return recover();self(response);}).delay(1);};if(!succeeded){succeeded=true;if(delay_id)window.clearTimeout(delay_id);success_handler(response,post_id);(function(){delete requests[post_id];}).delay(3);};},onFailure:function(response){var status=response.getStatus(),text=response.getStatusText();if(net_failure(status))return net_failure_handler(response);var message=new Template('Request ID: #{id}, HTTP Status #{status} for #{url}: #{text} Info: #{description}');api.error_log({name:'APIError',message:message.evaluate({id:post_id,status:status,text:text,url:url,description:obj.description||'No further information is available.'})});if(delay_id)window.clearTimeout(delay_id);failure_handler(response,post_id);(function(){delete requests[post_id];}).delay(3);},method:method,asynchronous:async,postBody:parameters});ajax_request.time=(new Date).getTime();requests[post_id].ajax=ajax_request;requests[post_id].count+=1;};request();};this.addops=function(obj){try{if(!TenTen.App)throw{name:'APIError',message:'TenTen.API.addops can only be used inside a GUI session'};}catch(error){api.error_log(error);};var tab=obj.tab,params=TenTen.App.getAllParams(tab);params.addops=obj.ops;params.refresh=(obj.refresh&&1)||0;TenTen.App.updateTabWithParams(tab,params);};this.clear=function(obj){pre_post({method:'clear',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:api.credentials(),handler:obj.handler,loading:obj.loading,async:obj.async});};this.cms_link=function(obj){var cred=api.credentials(),post_params={uid:cred.uid.value,sid:cred.sid.value,pswd:cred.pswd.value,host:window.location.host},url=obj.link.href;var form=new Element('form',{method:'post',action:url,target:(obj||{})['window']||'_blank'});for(var input in post_params)form.appendChild(new Element('input',{type:'hidden',name:input,value:post_params[input]}));document.body.appendChild(form);form.submit();(function(){document.body.removeChild(form);}).delay(3);return false;};this.dbmapi=function(obj){var params=api.credentials();var simple=!!obj.simple;var flat_types={'sym':null,'int':null,'float':null,'char_vector':null,'fun':null,'char':null,'null':null};var vectors={'sym_vector':'sym','int_vector':'int','float_vector':'float'};var process_input=function(input){var result={};var convert=function(value){var type=value.type,attributes=value.attr,result,attr;if(type in flat_types){result={val:{attributes:{type:type},value:value.value}};if(attributes)result.attr=convert(attributes).val;return result;};if(type==='dict'){result={val:{attributes:{type:'dict'}}};for(var att in value.value){if(!('value'in result.val))result.val.value={};result.val.value[att]={value:convert(value.value[att])};};if(attributes)result.attr=convert(attributes).val;return result;};if(type in vectors){var vector={attributes:{type:type}};if(value.value.length)vector.value=value.value.map(function(value){return{datum:{attributes:{type:vectors[type]},value:value}}});result={val:vector};if(attributes)result.attr=convert(attributes).val;return result;};if(type==='list'){var list={attributes:{type:type}};if(value.value.length)list.value=value.value.map(function(value){return{datum:convert(value).val};});result={val:list};if(attributes)result.attr=convert(attributes).val;return result;};try{var message=new Template('Unsupported type: "#{type}" passed into convert in process_input.');throw{name:'APIError',message:message.evaluate({type:type})};}catch(error){api.error_log(error);};};for(var att in input)result[att]={value:convert(input[att])};return result;};var process_output=function(output){var result={rc:output.rc,msg:output.msg};var convert=function(value){var type=value.value.val.attributes.type,contents=value.value.val.value,attributes=value.value.attr,result={type:type};if(type in flat_types){if(type==='float'||type==='int')
result.value=contents&&contents-0;else
result.value=contents;if(attributes)result.attr=convert({value:{val:attributes}});return result;};if(type in vectors){result.value=(contents||[]).map(function(datum){if(type==='float_vector'||type==='int_vector')
return datum.datum.value&&datum.datum.value-0;else
return datum.datum.value;});if(attributes)result.attr=convert({value:{val:attributes}});return result;};if(type==='list'){result.value=(contents||[]).map(function(value){return convert({value:{val:value.datum}});});if(attributes)result.attr=convert({value:{val:attributes}});return result;};if(type==='dict'){result.value={};for(var att in contents)result.value[att]=convert(contents[att]);if(attributes)result.attr=convert({value:{val:attributes}});return result;};try{var message=new Template('Unsupported type: "#{type}" passed into convert in process_output');throw{name:'APIError',message:message.evaluate({type:type})};}catch(error){api.error_log(error);};};if('dbmout'in output)result.dbmout=convert(output.dbmout);return result;};var handler=function(result,post_id,total_time){obj.handler(simple&&process_output(result)||result,post_id,total_time);};params.trans={value:obj.trans};params.params={value:simple&&process_input(obj.params)||obj.params};pre_post({method:'dbmapi',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:handler,loading:obj.loading,async:obj.async});};this.dbstatus=function(obj){pre_post({method:'dbstatus',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:api.credentials(),handler:obj.handler,loading:obj.loading,async:obj.async,queue:d_accum_queue,use_prototype_ajax:true});};this.dir=function(obj){var params=api.credentials();params.name={value:obj.path};pre_post({method:'dir',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.drop=function(obj){var params=api.credentials();params.objects={value:obj.objects.map(function(name){return{name:{value:name}};})};pre_post({method:'drop',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.dropdir=function(obj){var params=api.credentials();params.name={value:obj.name};pre_post({method:'dropdir',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.dropgroup=function(obj){var params=api.credentials();params.gid={value:obj.gid};pre_post({method:'dropgroup',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.droptable=function(obj){var params=api.credentials();params.name={value:obj.name};pre_post({method:'droptable',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.favorites=function(obj){pre_post({method:'favorites',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:api.credentials(),handler:obj.handler,loading:obj.loading,async:obj.async});};this.feed_url;this.fileupload=function(obj){var params=api.credentials();params.mode={value:'upload'};var post_id=++id;var url=api.upload_url||document.location.pathname+'?'+Object.toQueryString({sid:params.sid.value,trans_id:make_trans_id(post_id)});if(!('trans_id'in url.toQueryParams()))url+=(url.match(/\?/)&&'&'||'?')+'trans_id='+make_trans_id(post_id);var blank_path=api.resource_path+'html/upload.html';return function(event){event.stop();var form=this;if('warning'in obj&&!obj.warning())return;if(form.upload.value==='')return(obj.pre_post_error||function(){alert('No file was selected to be uploaded.');})();$(form).stopObserving();try{if(!form.tagName||form.tagName.toLowerCase()!=='form')throw{name:'InstanceError',message:'Instances of TenTen.API.fileupload must be set as submit handlers for forms only.'};}catch(error){return api.error_log(error);};var frame_name=form.id+'_frame';var frame_load=function(){var response=window.frames[frame_name].document.body.innerHTML;if(!response)return;try{$(frame_name).stopObserving();obj.handler(JSONIF.if_to_json(response).out.value);}catch(error){return api.error_log(error);};};if(!$(frame_name)){var iframe=new Element('iframe',{id:frame_name,name:frame_name,style:'display: none;visibility: hidden;z-index: -1;',src:blank_path});document.body.appendChild(iframe);};$(frame_name).observe('load',frame_load);form.method='post';form.target=frame_name;form.action=url;form.enctype='multipart/form-data';form.encoding='multipart/form-data';for(var credential in params){form.appendChild(new Element('input',{name:credential,type:'hidden',value:params[credential].value}));};var submit=function(){form.submit();if(obj.loading)obj.loading(post_id);}.bind(form);submit.defer();};};var simple_handler=function(handler,result,post_id){if(+result.rc.value)return handler(result,post_id);var simple={table:{cols:result.table.value.cols.value&&result.table.value.cols.value.map(function(col){var th=col.th;var column={label:th.value};for(var att in th.attributes){column[att]=th.attributes[att];};return column;}),data:result.table.value.data.value&&result.table.value.data.value.map(function(row){return row.tr.value.map(function(cell){return cell.td.value;});})},rc:result.rc,msg:result.msg};if('nrows'in result)simple.nrows=result.nrows.value;['ldesc','link','sdesc','title'].each(function(att){if(att in result.table.value)simple.table[att]=result.table.value[att].value;});if('name'in result.table.attributes)simple.table.name=result.table.attributes.name;handler(simple,post_id);};this.findcomps=function(obj){var params=api.credentials();params.comp={attributes:obj.attributes};pre_post({method:'findcomps',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.findgroups=function(obj){var params=api.credentials();params.group={attributes:obj.attributes};pre_post({method:'findgroups',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.findrow=function(obj){var params=api.credentials();params.find={attributes:{row:'row'in obj?obj.row:0,exp:obj.exp,direction:obj.direction||'next'}};if(obj.label)params.label={value:obj.label};pre_post({method:'findrow',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.findusers=function(obj){var params=api.credentials();params.user={attributes:obj.attributes};pre_post({method:'findusers',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.getdata=function(obj){var handler=obj.simple&&simple_handler.curry(obj.handler)||obj.handler;var params=api.credentials();if(typeof obj.rows in{'string':null,'number':null}){params.rows={value:{next:{value:obj.rows}},attributes:{mode:'1'}};}else{params.rows={value:{from:{value:obj.rows.from},to:{value:obj.rows.to}},attributes:{mode:'2'}};};if(obj.cols){if(obj.cols.constructor===Array){if(typeof obj.cols[0]==='string')
params.cols={value:obj.cols.map(function(col){return{col:{value:col}};})};else
params.cols={attributes:{mode:'3'},value:{indices:{value:obj.cols.join(',')}}};}else{params.cols={value:{from:{value:obj.cols.from},to:{value:obj.cols.to}},attributes:{mode:'2'}};};};if(obj.format)params.format=obj.format;if(obj.label)params.label={value:obj.label};pre_post({method:'getdata',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:handler,loading:obj.loading,async:obj.async});};this.getdir=function(obj){var params=api.credentials();params.name={value:obj.name};if(typeof obj.include!=='undefined'&&obj.include.length)
params.include={value:obj.include.map(function(name){return{name:{value:name}};})};pre_post({method:'getdir',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.getgroups=function(obj){pre_post({method:'getgroups',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:api.credentials(),handler:obj.handler,loading:obj.loading,async:obj.async});};this.getotheruser=function(obj){var params=api.credentials();params.user={value:obj.user};pre_post({method:'getotheruser',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.gettab=function(obj){var params=api.credentials();params.name={value:obj.name};if(typeof obj.include!=='undefined'&&obj.include.length)
params.include={value:obj.include.map(function(name){return{name:{value:name}};})};pre_post({method:'gettab',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.gettabordir=function(obj){var params=api.credentials();params.name={value:obj.name};pre_post({method:'gettabordir',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.getuser=function(obj){pre_post({method:'getuser',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:api.credentials(),handler:function(result,post_id){var no_errors=0===+result.rc.value;if(no_errors)api.user=Object.clone(result.user.attributes);obj.handler(result,post_id);},loading:obj.loading,async:obj.async});};this.hashget=function(obj){var params=api.credentials();params.name={value:obj.name};pre_post({method:'hashget',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.hashput=function(obj){var params=api.credentials();params.name={value:obj.name};if(obj.persist)params.name.attributes={mode:'persist'};params.value={value:obj.value};pre_post({method:'hashput',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler||function(){},loading:obj.loading,async:obj.async});};this.listdir=function(obj){var params=api.credentials();params.name={value:obj.path};if(typeof obj.include!=='undefined'&&obj.include.length){params.include={value:obj.include.map(function(name){return{name:{value:name}};})};if('include_mode'in obj)params.include.attributes={mode:obj.include_mode};};params.descendants={value:!!obj.descendants?1:0};pre_post({method:'listdir',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};var login_handler={};var default_login_handler=function(url,params){var form=new Element('form',{method:'post',action:url});delete params.submit;for(var param in params)
form.insert(new Element('input',{type:'hidden',name:param,value:params[param]}));document.body.appendChild(form);(function(){form.submit();}).delay(1);};this.default_login_handler;this.login=function(obj){if(obj.loading)obj.loading();var handler_id=++id,host=(obj.host||window.location.host),url='https://'+host+'/cgi-bin/login?',obey_error_40=!!obj.obey_error_40,gw={prod:'',beta:'_beta',test:'_test',old:'_old'}[obj.gw||'prod'];gw='/cgi-bin/gw'+gw+'?ptype=login';var handler=obj.handler||function(){};var query_string,login_post,script;system_healthy_handler=function(){query_string={handler:'TenTen.API.login_handler.curry('+handler_id+')',gw:gw,random:Math.random()};if(obj.use_qs){login_post={};for(var param in obj.params)
login_post[param]=obj.params[param];query_string.login_post=Object.toQueryString(login_post);}else{TenTen.Util.Cookie.set('login_post',Object.toQueryString(obj.params),null,'.1010data.com',null,true);};api.default_login_handler=default_login_handler.curry('https://'+host+gw,obj.params);script=new Element('script',{type:'text/javascript',src:url+Object.toQueryString(query_string)});login_handler['login_'+handler_id]=function(response){script.remove();TenTen.Util.Cookie.del('login_post');if(response.error===3){api.error_log({name:'APIError',message:response.msg.value});delete obj.loading;obj.use_qs=true;return api.login(obj);};if(obey_error_40&&response.error===40){api.error_log({name:'APIError',message:response.msg.value});delete obj.loading;obj.host='nyx.1010data.com';return api.login(obj);};if(response.error===1||(response.error===0&&response.location===null)){return api.default_login_handler();};var result={rc:{value:response.error}};result.msg={value:response.msg};var message=(new Element('div')).update(result.msg.value).select('.error');if(message.length)result.msg.value=message.first().innerHTML;if(response.location){result.location={value:response.location};var cred=response.location.match(/\?(.*)$/);cred=cred&&cred[1].toQueryParams();cred={uid:{value:cred.uid},pswd:{value:cred.pswd},sid:{value:cred.sid}};api.reset_credentials(cred);};handler(result);};$$('head')[0].appendChild(script);};TenTen.XML.xml_to_json({url:'/status?random='+Math.random(),handler:function(xml){if(!('system'in xml))return system_healthy_handler();var status=xml.system.value.filter(function(obj){return obj.status.attributes.host===host;})[0].status;var system_is_up=status.value.filter(function(node){return'up'in node;})[0].up.value==='true';if(system_is_up)return system_healthy_handler();var message=status.value.filter(function(node){return'message'in node;})[0].message.value;return handler({rc:{value:1},msg:{value:message}});}});};this.login_handler=function(handler_id,response){var id='login_'+handler_id;if(id in login_handler){login_handler[id](response);(function(){delete login_handler[id];}).delay(3);};};this.logout=function(obj){var handler=function(result,post_id){console.log('running logout handler');console.log(result,post_id);if(+result.rc.value)api.logged_out=true;obj.handler(result,post_id);};var params=api.credentials();if('kill'in obj)params.kill={value:obj.kill&&'yes'||'no'};console.log('params.kill:');console.log(params.kill);pre_post({method:'logout',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:handler,loading:obj.loading,async:obj.async,queue:logout_queue});};this.merge=function(obj){var params=api.credentials();params.users={value:obj.users.map(function(user){return{user:{value:user}};})};params.tabs={value:obj.tabs.map(function(tab){return{tab:{value:tab}};})};if(obj.title&&obj.title.length)params.title={value:obj.title};if('name'in obj)
params.name=obj.name;else
params.parent={value:obj.parent};pre_post({method:'merge',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.mkdir=function(obj){var params=api.credentials();params.users={value:obj.users.map(function(user){return{user:{value:user}};})};params.upload={value:obj.upload.map(function(user){return{user:{value:user}};})};params.title={value:obj.title};if(obj.name)
params.name={value:obj.name};else
params.parent={value:obj.parent};pre_post({method:'mkdir',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.move=function(obj){var params=api.credentials();params.source={value:obj.source.map(function(src){return{name:{value:src}};})};params.target={value:obj.target};pre_post({method:'move',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.multiquery=function(obj){var multi_queue=new TenTen.Util.Queue(),break_on_error='break_on_error'in obj?obj.break_on_error:true;var responses=[],rc=0,msg='multiquery success',failed=[],failed_msg=new Template('multiquery failure, the following queries failed: #{failed}');var queries=obj.queries.map(function(config,index){var loading=index?null:obj.loading;var query_config=Object.clone(config);query_config.loading=loading;query_config.suppress_busy=!!obj.suppress_busy;query_config.handler=function(result){var no_errors=0===+result.rc.value;responses.push(result);if(no_errors){multi_queue.shift();}else{if(break_on_error){obj.handler({rc:{value:1},msg:{value:failed_msg.evaluate({failed:index})},responses:{value:responses}});}else{rc=1;failed.push(index);multi_queue.shift();};};};return api.query.curry(query_config);});queries.push(function(){obj.handler({rc:{value:rc},msg:{value:rc&&failed_msg.evaluate({failed:failed.join(', ')})||msg},responses:{value:responses}});});multi_queue.bulk(queries);};this.newstuff=function(obj){var params=api.credentials();if('num'in obj)params.num={value:obj.num};if('type'in obj)params.type={value:obj.type};pre_post({method:'newstuff',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.order=function(obj){var params=api.credentials();if(obj.tabs.length)params.tabs={value:obj.tabs.map(function(src){return{name:{value:src}};})};if(obj.dirs.length)params.dirs={value:obj.dirs.map(function(src){return{name:{value:src}};})};params.name={value:obj.name};pre_post({method:'order',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.putdir=function(obj){var params=api.credentials();params.dir={attributes:{}};for(var att in obj.attributes){params.dir.attributes[att]=obj.attributes[att];};pre_post({method:'putdir',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.putgroup=function(obj){var params=api.credentials();params.group={attributes:{}};for(var att in obj.attributes){params.group.attributes[att]=obj.attributes[att];};pre_post({method:'putgroup',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.puttab=function(obj){var params=api.credentials();params.tab={attributes:{}};for(var att in obj.attributes){params.tab.attributes[att]=obj.attributes[att];};pre_post({method:'puttab',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.putuser=function(obj){var params=api.credentials();params.user={attributes:obj.attributes};params.user.attributes.uid=params.uid.value;pre_post({method:'putuser',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:function(result,post_id){var no_errors=0===+result.rc.value;if(no_errors)api.user=Object.clone(result.user.attributes);obj.handler(result,post_id);},loading:obj.loading,async:obj.async});};var remove_ops=function(str){return str.replace(/^\<ops\>|\<\/ops\>$/gi,'');};this.query=function(obj){var params=api.credentials();params.name={value:obj.name||obj.table};if('macro'in obj)
params.macro={value:remove_ops(obj.macro)};else
params.ops={value:obj.query};if(obj.label)params.label={value:obj.label};pre_post({method:'query',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.querydata=function(obj){var params=api.credentials();params.name={value:obj.name||obj.table};if('rows'in obj){if(typeof obj.rows in{'string':null,'number':null}){params.rows={value:{next:{value:obj.rows}},attributes:{mode:'1'}};}else{params.rows={value:{from:{value:obj.rows.from},to:{value:obj.rows.to}},attributes:{mode:'2'}};};};if(obj.cols){if(obj.cols.constructor===Array){if(typeof obj.cols[0]==='string')
params.cols={value:obj.cols.map(function(col){return{col:{value:col}};})};else
params.cols={attributes:{mode:'3'},value:{indices:{value:obj.cols.join(',')}}};}else{params.cols={value:{from:{value:obj.cols.from},to:{value:obj.cols.to}},attributes:{mode:'2'}};};};var handler=obj.simple&&simple_handler.curry(obj.handler)||obj.handler;if('macro'in obj)
params.macro={value:remove_ops(obj.macro)};else
params.ops={value:obj.query};if(obj.format)params.format=obj.format;if(obj.label)params.label={value:obj.label};pre_post({method:'querydata',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:handler,loading:obj.loading,async:obj.async});};this.querytable=function(obj){var params=api.credentials();params.name={value:obj.name||obj.table};params.savetable_name={value:obj.savetable_name.value,attributes:{}};if('attributes'in obj.savetable_name&&'mode'in obj.savetable_name.attributes)
params.savetable_name.attributes.mode=obj.savetable_name.attributes.mode;['title','sdesc','ldesc','link','maxdown'].each(function(att){if(att in obj)params[att]={value:obj[att]};});params.merge={value:obj.merge||'1'};if('users'in obj)params.users={value:obj.users.map(function(user){return{user:{value:user}};})};if('modcol'in obj){params.modcol={attributes:{name:obj.modcol.name}};if('value'in obj.modcol)params.modcol.value=obj.modcol.value;if('format'in obj.modcol)params.modcol.attributes.format=obj.modcal.format;if('title'in obj.modcol)params.modcol.attributes.title=obj.modcal.title;};if('macro'in obj)
params.macro={value:remove_ops(obj.macro)};else
params.ops={value:obj.query};pre_post({method:'querytable',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.restore=function(obj){pre_post({method:'restore',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:api.credentials(),handler:obj.handler,loading:obj.loading,async:obj.async});};this.savetable=function(obj){var params=api.credentials();params.name={value:obj.name.value,attributes:{}};if('attributes'in obj.name&&'mode'in obj.name.attributes)params.name.attributes.mode=obj.name.attributes.mode;['title','sdesc','ldesc','link','maxdown'].each(function(att){if(att in obj)params[att]={value:obj[att]};});params.merge={value:obj.merge||'1'};if('users'in obj)params.users={value:obj.users.map(function(user){return{user:{value:user}};})};if('modcol'in obj){params.modcol={attributes:{name:obj.modcol.name}};if('value'in obj.modcol)params.modcol.value=obj.modcol.value;if('format'in obj.modcol)params.modcol.attributes.format=obj.modcal.format;if('title'in obj.modcol)params.modcol.attributes.title=obj.modcal.title;};pre_post({method:'savetable',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.stop=function(obj){pre_post({method:'stop',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:api.credentials(),handler:obj.handler,loading:obj.loading,async:obj.async,queue:d_accum_queue,use_prototype_ajax:true});};this.support=function(obj){var params=api.credentials();params.type={value:obj.type};params.subject={value:obj.subject};params.message={value:obj.message};if('email'in obj)params.email={value:obj.email};pre_post({method:'support',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.tabinfo=function(obj){var params=api.credentials();params.name={value:obj.name};var handler=obj.simple&&simple_handler.curry(obj.handler)||obj.handler;pre_post({method:'tabinfo',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:handler,loading:obj.loading,async:obj.async});};this.upload=function(obj){var params=api.credentials();var table=obj.table;params.table={value:{},attributes:{}};for(var att in table){if(att!=='name')params.table.value[att]={value:table[att]};};if('name'in table)params.table.attributes.name=table.name;params.table.value.cols={value:table.cols.map(function(c){var column={th:{value:c.label,attributes:{name:c.name,type:c.type}}};if('format'in c)column.attributes.format=c.format;return column;})};params.table.value.data={value:table.data.map(function(r){var row={tr:{value:[]}};r.each(function(cell){row.tr.value.push({td:{value:cell}});});return row;})};if('name'in obj){params.name={value:obj.name.value,attributes:{}};if('attributes'in obj.name&&'mode'in obj.name.attributes)params.name.attributes.mode=obj.name.attributes.mode;};params.merge={value:obj.merge||'1'};if('users'in obj)params.users={value:obj.users.map(function(user){return{user:{value:user}};})};pre_post({method:'upload',suppress_busy:'suppress_busy'in obj&&obj.suppress_busy,api_params:params,handler:obj.handler,loading:obj.loading,async:obj.async});};this.upload_url;this.url;var welcome_handler={};this.welcome=function(obj){var handler_id=++id;var url=api.feed_url||'https://blog.1010data.com/blog/?feed=json';var callback=(url.match(/\?/)&&'&'||'?')+'callback=TenTen.API.welcome_handler.curry('+handler_id+')';var tags='&tag='+(obj.tags||[]).join(',');var wanted_tags=('tags'in obj)&&obj.tags.inject({},function(acc,tag){acc[tag]='';return acc;})||{};var script=new Element('script',{type:'text/javascript',src:url+callback+tags});welcome_handler['welcome_'+handler_id]=function(feed){var items=feed.items.filter(function(item){if(!('tags'in item))return false;return item.tags.inject(false,function(acc,tag){return acc||tag in wanted_tags});});script.remove();obj.handler(items);};if(obj.loading)obj.loading();$$('head')[0].appendChild(script);};this.welcome_handler=function(handler_id,feed){var id='welcome_'+handler_id;if(id in welcome_handler){welcome_handler[id](feed);(function(){delete welcome_handler[id];}).delay(3);};};};TenTen.Browser=function(config){Position.includeScrollOffsets=true;var resource_path=TenTen.path+'/resources/Browser/';var render_block_size=50;var load_event=function(){(config.onload||function(){}).defer();};var children_suffix='^children';var event_namespace='TenTenBrowser:';var images={'addfolder':'addfolder.png','arrow':'left-arrow.png','asterisk':'asterisk.png','blank':'blank.png','chart':'chart_spec.png','delete':'delete.png','excel':'excel.png','exclamation':'exclamation.png','file':'file.png','folder':'folder.png','help':'help.png','merge':'merge.png','merged':'merged.png','move':'move.png','own':'own.png','pdf':'pdf.png','quick_query_param':'quick_query_param.png','quick_query_view':'quick_query_view.png','reorder':'reorder.png','report':'report_spec.png','reportchart':'report_chart_spec.png','spinner':'spinner.gif','success':'success.png','table':'table.png','text':'text.png','triangle_collapsed':'triangle_collapsed.png','triangle_expanded':'triangle_expanded.png','upload':'upload.png','upload_permission':'upload_permission.png','uploaded_query':'uploaded_query.png','xml':'xml.png'};var listdir_include=['bytes','chart','display','favorite','id','name','numchild','own','owner','report','rows','sdesc','title','tstat','type','update','upload'];var include_mode=2;var queue=new TenTen.Util.Queue();var hash_method=function(n){return TenTen.Util.String.crc32(n+'')};var browser={};var remember=function(path){if(!path.length)return;var index=browser.state.indexOf(browser.state.find(function(stored_path){return stored_path===path;}));if(index===-1)
browser.state.push(path);else
browser.state=browser.state.select(function(stored_path){return stored_path.indexOf(path+'.')!==0&&stored_path!==path;}).clone();};var opener=function(event,callback){if(event)event.stop();if(browser.cancel_opens&&browser.cancel_opens.indexOf(this.id)===0)return;var path=this.id.replace(browser.name,'');var item=browser.map[path];item.open=!item.open;if(browser.type==='query'){if(!item.has_children)return queue.shift();var level=path===browser.path?0:path.split('.').length-(browser.path.length&&browser.path.split('.').length);var query_obj=Object.clone(browser.queries[level]);$R(0,level-1).each(function(x){var mapped_value=path.split('.').slice(0,x+1).join('.');query_obj.replace_token(new RegExp('\\$'+browser.queries[x].col),browser.map[mapped_value].value);});};var render=browser.type==='query'?query_render:file_render;var handler=function(result){var no_errors=result.rc.value-0===0;if(!no_errors)return status_update({message:result.msg.value.escapeHTML(),graphics:['exclamation']});if(browser.type==='file')item.numchild=result.dir.attributes.numchild-0;if(browser.type==='file'&&'ldesc'in result.dir.attributes)item.ldesc=result.dir.attributes.ldesc;if(browser.type==='file'&&'gif'in result.dir.attributes)item.gif=result.dir.attributes.gif;if(!$(this.id+'_triangle')&&result.dir.attributes.numchild-0){$(this.id+'_blank').id=this.id+'_triangle';item.has_children=true;if(!$(this.id+children_suffix))
this.appendChild(new Element('ul',{id:this.id+children_suffix,'class':'browser_ul'}));$(this.id+'_triangle').observe('click',function(event){event.stop();if('src'in this&&this.src.match(images['spinner']))return;opener.apply($(browser.name+path),[event]);});};if(browser.type==='file'){var item_div=$(browser.name+path).select('div.browser_item').first();update_right_hand_info(item_div,item);};render(result,path,function(){if($(this.id+'_triangle'))$(this.id+'_triangle').src=browser.image_path+images['triangle_expanded'];if(callback)callback();}.bind(this));browser.onopen(item);queue.shift();}.bind(this);var loading=function(){if($(this.id+'_triangle'))$(this.id+'_triangle').src=browser.image_path+images['spinner'];}.bind(this);if(item.open){switch(browser.type){case'query':TenTen.API.querydata({query:query_obj.query.ops.value,table:query_obj.table,handler:handler,loading:loading});break;case'file':TenTen.API.listdir({path:item.value,include:listdir_include,include_mode:include_mode,handler:handler,loading:loading});break;};}else{remember(path);for(var key in browser.map)if(key.indexOf(path+'.')===0&&key.length>path.length)delete browser.map[key];if($(this.id+'_triangle'))$(this.id+'_triangle').src=browser.image_path+images['triangle_collapsed'];var children=$(this.id+children_suffix);if(children)children.remove();var ul=new Element('ul',{id:this.id+children_suffix,'class':'browser_ul'});this.appendChild(ul);browser.onclose(item);if(callback)callback();};};var blank_icon_cache=null;var blank_icon=function(name,str){if(!blank_icon_cache){blank_icon_cache=document.createElement('img');blank_icon_cache.src=browser.image_path+images['blank'];blank_icon_cache.alt='';};if(str)return'<img src="'+browser.image_path+images['blank']+'" alt=""'+((name&&' id="'+name+'"')||'')+' />';var img=blank_icon_cache.cloneNode(false);if(name)img.id=browser.name+name+'_blank';return img;};var spinner_icon_cache=null;var spinner_icon=function(name){if(!spinner_icon_cache){spinner_icon_cache=document.createElement('img');spinner_icon_cache.src=browser.image_path+images['spinner'];};var img=spinner_icon_cache.cloneNode(false);if(name)img.id=name;return img;};var own_icon_cache=null;var own_icon=function(){if(!own_icon_cache){own_icon_cache=document.createElement('img');own_icon_cache.src=browser.image_path+images['own'];own_icon_cache.alt='You own this item.';};return own_icon_cache.cloneNode(false);};var upload_icon_cache=null;var upload_icon=function(){if(!upload_icon_cache){upload_icon_cache=document.createElement('img');upload_icon_cache.src=browser.image_path+images['upload_permission'];upload_icon_cache.alt='You can upload to this folder.';};return upload_icon_cache.cloneNode(false);};var triangle_icon=function(name){var el=new Element('img',{id:browser.name+name+'_triangle',src:browser.image_path+images['triangle_collapsed']});(function(){el.observe('click',function(event){event.stop();if('src'in this&&this.src.match(images['spinner']))return;opener.apply($(browser.name+name),[event]);});}).defer();return el;};var intercept=function(){return false;};var remove_selects=function(id){var el=$(id),children=$(id+children_suffix);if(el){if(has_class(el,'browser_selected'))el.removeClassName('browser_selected');if(has_class(el,'browser_deselected'))el.removeClassName('browser_deselected');};if(children){children.select('li.browser_selected').invoke('removeClassName','browser_selected');children.select('li.browser_deselected').invoke('removeClassName','browser_deselected');};};var item_parent=function(id){return id.split('.').slice(0,id.split('.').length-1).join('.');};var has_class_memo={};var has_class=function(node,search_class){var class_name=node.className;if(!(class_name in has_class_memo))
has_class_memo[class_name]=class_name.split(' ').inject({},function(acc,str){acc[str]='';return acc;});return search_class in has_class_memo[class_name];};var is_selected=function(id){var node=$(id);return!!node&&!has_class(node,'browser_deselected')&&(has_class(node,'browser_selected')||is_selected(item_parent(id)));};var is_intermediate=function(id){return!!id.length&&!!$(id)&&($(id).hasClassName('browser_intermediate')||is_intermediate(item_parent(id)));};var update_sdesc=function(item,div){var item_div=div||$(browser.name+item.name).select('div.browser_item').first();var id=browser.name+item.name+'sdesc';var span_sdesc=document.getElementById(id);if(span_sdesc===null){span_sdesc=document.createElement('span');span_sdesc.className='browser_sdesc';};span_sdesc.id=id;if('sdesc'in item&&item.sdesc.length){var blank='&nbsp;'+blank_icon(null,true);span_sdesc.innerHTML='<br />'+(blank).times(item.graphics.length);var sdesc=new Element('a',{href:'#','class':'browser_sdesc'});try{sdesc.innerHTML='&nbsp;'+item.sdesc;}catch(error){sdesc.insert('&nbsp;'+item.sdesc);};span_sdesc.appendChild(sdesc);}else{if(browser.type==='file')
span_sdesc.innerHTML='<br />&nbsp;';else
span_sdesc.innerHTML='';};item_div.appendChild(span_sdesc);};var update_title=function(item){var title=$(browser.name+item.name).select('div.browser_item a').first();title.update(item.title.length?'&nbsp;'+item.title:'&nbsp;'+item.value);};var update_owner=function(item){var icon=item.graphics.last();var replacement=blank_icon();if(item.own)
replacement=own_icon();else
if(item.upload)replacement=upload_icon();if(replacement){icon.src=replacement.src;icon.alt=replacement.alt;};};var update_dom_copy=function(item){[update_title,update_owner,update_sdesc].each(function(fn){fn(item);});};var select=function(id){var item=browser.map[id.replace(browser.name,'')];if(!browser.multiple_select)
remove_selects(browser.name);else
remove_selects(id);show_file_meta(item,false);if(!is_selected(id))$(id).addClassName('browser_selected');browser.onselect(item);};var deselect=function(id){var item=browser.map[id.replace(browser.name,'')];if(!browser.multiple_select)
remove_selects(browser.name);else
remove_selects(id);if(item)show_file_meta(item,true);if(!browser.deselect)return browser.ondeselect(item);var parent_selected=false;if(is_selected(id)){parent_selected=true;document.getElementById(id).className+=' browser_deselected';};if(browser.type==='file'&&parent_selected){var items=browser.flatten();remove_selects(browser.name);var selected_memo={};var selected=function(id){return(function(id){if(id in selected_memo)return selected_memo[id];var node=document.getElementById(id);return(selected_memo[id]=!!node&&(has_class(node,'browser_selected')||arguments.callee(item_parent(id))));})(id);};items.each(function(item){var id=browser.name+item.name;if(selected(id))return;document.getElementById(id).className+=' browser_selected';});};browser.ondeselect(item);};var selector=function(event){var item=browser.map[this.id.replace(browser.name,'')];if(event)event.stop();this.blur();if(browser.intercept(item))return;if(is_selected(this.id))
deselect(this.id);else
select(this.id);};var update_right_hand_info=function(item_div,item){var rows=item.rows;var updated=('update'in item)&&item.type==='browser_file'?item.update:'';var numchild=item.numchild;var id=browser.name+item.name+'right_hand';var right_hand_div=$(id);var blank=blank_icon(null,true);if(right_hand_div===null){right_hand_div=new Element('div',{'class':'browser_size',style:'position: absolute;right: 2px;top: 2px;',id:id});}else{right_hand_div.update('');};var html=[];if(rows||typeof numchild==='number'){html=[blank,(rows&&TenTen.Util.Number.format(rows-0)+(rows-0===1?' row&nbsp;&nbsp;<br />':' rows&nbsp;&nbsp;<br />'))||(typeof numchild==='number'&&numchild+(numchild-0===1?' item&nbsp;&nbsp;<br />':' items&nbsp;&nbsp;<br />')),blank,updated,'&nbsp;&nbsp;'];}else{html=[blank,'&nbsp;',blank,'<br />',updated,'&nbsp;&nbsp;'];};right_hand_div.innerHTML=html.join('');item_div.appendChild(right_hand_div);};var item_render=function(item,index){if(item===null)return;if(document.getElementById(item.name))$(item.name).remove();var item_li=new Element('li',{id:browser.name+item.name,'class':'browser_li '+browser.name+'level'+item.level+' '+item.type});var item_div=new Element('div',{'class':'browser_item',style:'position: relative; margin-left: '+(item.level*25)+'px'});item_li.appendChild(item_div);if(browser.type==='file'){item.title=item.title.escapeHTML();update_right_hand_info.curry(item_div,item).defer();};var item_link=new Element('a',{href:'#','class':'browser_link'});item_link.innerHTML='&nbsp;'+item.title;var graphics=item.graphics;var graphics_len=graphics.length
for(var lcv=0;lcv<graphics_len;lcv+=1){item_div.appendChild(graphics[lcv]);item_div.appendChild(document.createTextNode('\u00a0'));};item_div.appendChild(item_link);update_sdesc(item,item_div);item_li.observe('dblclick',function(event){window.getSelection?window.getSelection().removeAllRanges():document.selection.empty();if('dblclick_handler'in item)item.dblclick_handler(event);});item_li.observe('click',selector);if(item.has_children){var children_ul=new Element('ul',{id:item_li.id+children_suffix,'class':'browser_ul'}).hide();item_li.appendChild(children_ul);};var children=$(browser.name+item.path+children_suffix);if(children){if(index===0)children.show();}else{return false;};children.appendChild(item_li);return true;};var file_render=function(result,path,callback){var level=path===browser.path?0:path.split('.').length-(browser.path.length?browser.path.split('.').length:0);remember(path);if(result.dir)
result.dir.value.children.value=result.dir.value.children.value||[];else
result.dir={value:{children:{value:[]}}};var dirs=[],tabs=[];result.dir.value.children.value.each(function(item){if('dir'in item)
dirs.push(item);else
tabs.push(item);});var folder_icon_cache=document.createElement('img');folder_icon_cache.src=browser.image_path+images['folder'];var process_dir=function(item,index){var dir=item.dir.attributes;dir.path=path;dir.level=level;dir.own=dir.own-0;dir.upload=dir.upload-0;dir.numchild=dir.numchild-0;dir.open=false;dir.system_type=dir.type;dir.type='browser_dir';dir.value=dir.name;dir.main_graphic='folder';var folder_icon=folder_icon_cache.cloneNode(false);dir.dblclick_handler=function(event){event.stop();var triangle=$(browser.name+dir.name+'_triangle');if(triangle===null)return;if('src'in triangle&&triangle.src.match(images['spinner']))return;browser.toggle(dir.name);};dir.graphics=dir.numchild?[triangle_icon(dir.name),folder_icon]:[blank_icon(dir.name),folder_icon];if(dir.own){dir.graphics.push(own_icon());}else{if(dir.upload)
dir.graphics.push(upload_icon());else
dir.graphics.push(blank_icon());};dir.has_children=!!(dir.numchild);browser.map[dir.name]=dir;return dir;};var file_types={'REAL':'table','UQ':'uploaded_query','VIEW':'quick_query_view','PARAM':'quick_query_param','MERGED':'merged'};var file_icon_cache=document.createElement('img');var process_tab=function(item,index){var tab=item.tab.attributes;tab.path=path;tab.level=level;tab.own=tab.own-0;tab.system_type=tab.type;tab.type='browser_file';tab.value=tab.name;tab.name=path+'.'+tab.name.split('.').last();tab.main_graphic=file_types[tab.system_type]||'file';var file_icon=file_icon_cache.cloneNode(false);file_icon.src=browser.image_path+images[tab.main_graphic];tab.dblclick_handler=function(event){event.stop();browser.ondblclick(browser.map[tab.name]);};tab.graphics=[blank_icon(),file_icon,tab.own?own_icon():blank_icon()];tab.has_children=false;browser.map[tab.name]=tab;return tab;};dirs=dirs.map(process_dir);tabs=tabs.map(process_tab);var items=dirs.concat(tabs);var item_len=items.length;var blocks=(item_len/render_block_size).ceil();var interval=0.075;var renderers=blocks>1&&[function(){var individual_height=$(browser.name+path)&&$(browser.name+path).getDimensions().height||43;if($(browser.name+path+children_suffix))
$(browser.name+path+children_suffix).setStyle({height:blocks*individual_height});else
return arguments.callee.delay(0.25);renderers.shift().delay(interval);}]||[];var stop=false;for(var i=0;i<blocks;i+=1){renderers.push(function(i){var start=i*render_block_size;var end=Math.min((i*render_block_size)+render_block_size,item_len);for(var j=start;j<end;j+=1)stop=!item_render(items[j],j);if(stop)renderers=[];if(renderers.length)return renderers.shift().delay(interval);}.curry(i));};renderers.push(function(){if(blocks>1)$(browser.name+path+children_suffix).setStyle({height:'auto'});if(callback)callback();});renderers.shift()();if(path.length){queue.push(function(){if($(browser.name+path)){$(browser.name+path).fire(event_namespace+'open');$(browser.name+path).addClassName('browser_ie_hack').removeClassName('browser_ie_hack');};queue.shift();});};queue.shift();};browser.queue=queue;var reset_item_classes=function(classes){classes.each(function(cl){$(browser.element).select('li.'+cl).invoke('removeClassName',cl);});};var cancel=function(event){if(event)event.stop();browser.intercept=intercept;reset_item_classes(['browser_intermediate','browser_destination']);browser.status.update('&nbsp;');browser.clear_selections.defer();browser.onresizetoolbar();browser.enable_toolbar();return false;};var status_update=function(obj){var toolbar=$(browser.toolbar_element);if(!toolbar)return;browser.status.update(obj.message);if(obj.graphics){var span_graphics=new Element('span');browser.status.insert({top:span_graphics});obj.graphics.each(function(graphic){span_graphics.insert(new Element('img',{src:browser.image_path+images[graphic]}));});span_graphics.insert('&nbsp;');};if(obj.cancel){$(obj.cancel).observe('click',cancel);};if(obj.more_link){$(obj.more_link).observe('click',function(event){event.stop();if($(browser.name+'_div_info'))return $(browser.name+'_div_info').remove();var div_info=new Element('div',{id:browser.name+'_div_info','class':'browser_toolbar_more_info'}).setStyle({display:'none',width:$(toolbar).getDimensions().width+'px',height:'200px',position:'absolute',top:$(toolbar).getDimensions().height+$(toolbar).cumulativeOffset().top+'px',left:$(toolbar).cumulativeOffset().left+1+'px',zIndex:'9999'});var close_link=new Element('a',{href:'#','class':'browser_toolbar_more_info_close'}).observe('click',function(event){event.stop();$(browser.name+'_div_info').remove();}).update('X');div_info.update(new Element('div',{'class':'browser_toolbar_more_info_text'}).update(obj.more_message));div_info.appendChild(close_link);document.body.appendChild(div_info);Effect.BlindDown(browser.name+'_div_info',{duration:0.3});return false;});};browser.status.insert({top:spinner_icon(browser.name+'status_spinner')});$(browser.name+'status_spinner').hide();browser.onresizetoolbar();};var breakout_close=function(event){if(event)event.stop();browser.enable_toolbar();if(browser.showing&&browser.map[browser.showing]){browser.map[browser.showing].show_info=false;browser.map[browser.showing].edit_info=false;browser.intercept=intercept;};if($(browser.name+'_div_breakout'))$(browser.name+'_div_breakout').remove();};var breakout_form=function(obj){var content,height,callback,close_method,submit_handler;content=obj.form;height=obj.height;callback=obj.handler;close_method=obj.close_method;submit_handler=obj.submit_handler;var toolbar=$(browser.toolbar_element);if($(browser.name+'_div_breakout'))$(browser.name+'_div_breakout').remove();var style={display:'none',width:$(toolbar).getDimensions().width+'px',position:'absolute',top:$(toolbar).getDimensions().height+$(toolbar).cumulativeOffset().top+'px',left:$(toolbar).cumulativeOffset().left+1+'px',zIndex:'9999'};if(height)style.height=height+'px';var div_breakout=new Element('div',{id:browser.name+'_div_breakout','class':'browser_toolbar_breakout'}).setStyle(style);var close_link=new Element('a',{href:'#','class':'browser_toolbar_breakout_close'}).observe('click',close_method||breakout_close).update('X');div_breakout.update(new Element('div',{'class':'browser_toolbar_breakout_text'}).update(content.show()));div_breakout.appendChild(close_link);div_breakout.observe('click',function(event){event.stop();var element=event.element();if(element.tagName.toLowerCase()==='a'){if('href'in element){if(element.href.toLowerCase().indexOf('javascript')===0)
document.location.href=element.href;else
window.open(element.href,element.target||'_blank');};};(function(){if('checked'in element)element.checked=!element.checked;if(element.type==='submit'&&submit_handler)submit_handler();}).delay(0.1);});document.body.appendChild(div_breakout);var duration=0.3;Effect.BlindDown(browser.name+'_div_breakout',{duration:duration});var fn_handler=function(){var contents_height=$(browser.element).getDimensions().height;if(div_breakout.getDimensions().height>contents_height)div_breakout.style.height=contents_height+'px';if(callback)callback();};(fn_handler).delay(duration+0.1);};var show_file_meta=function(item,is_deselection){if(!this.advanced_view)return;if(is_deselection&&item.name===browser.showing){browser.showing='';browser.status.update('&nbsp;');return;};if(is_deselection)return;browser.showing=item.name;var favorite_handler=function(item,event){event.stop();var spinner=$(browser.name+'status_spinner');spinner.show();TenTen.API.getuser({handler:function(result){var no_errors=result.rc.value-0===0;if(!no_errors){spinner.hide();status_update({message:'Favorites were not updated. (<a href="#" class="browser_toolbar_text_link" id="'+
browser.name+'_more_info">More Info</a>)',graphics:['exclamation'],more_link:browser.name+'_more_info',more_message:result.msg.value.escapeHTML()});return;};var favorites=result.user.attributes.favorites.split(' ');if(item.favorite-0){favorites=favorites.without(item.id).uniq();}else{favorites.push(item.id);favorites=favorites.uniq();};favorites=favorites.join(' ');TenTen.API.putuser({attributes:{favorites:favorites},handler:function(result){var no_errors=result.rc.value-0===0;spinner.hide();if(no_errors){item.favorite=!(item.favorite-0);show_file_meta(item,false);browser.onfavchange();}else{status_update({message:'Favorites were not updated. (<a href="#" class="browser_toolbar_text_link" id="'+
browser.name+'_more_info">More Info</a>)',graphics:['exclamation'],more_link:browser.name+'_more_info',more_message:result.msg.value.escapeHTML()});};}});}});};var static_row=function(name,value){var row=new Element('tr');var name_cell=new Element('th',{'class':'browser_breakout_th'}).update(name+':');var value_cell=new Element('td',{'class':'browser_breakout_td'}).update(value);[name_cell,value_cell].each(function(cell){row.appendChild(cell);});return{node:row,id:''};};var editable_row=function(config){var row,name_cell,id,label,value_cell,form_element,inputs;inputs={button:null,checkbox:null,hidden:null,radio:null,submit:null,text:null};row=new Element('tr');name_cell=new Element('th');id=browser.name+'item_editor'+config.id;label=new Element('label',{'for':id}).update(config.name+':');value_cell=new Element('td');form_element;if(config.type in inputs){var element_atts={id:id,type:config.type};if(config.type==='text')element_atts['class']='x-form-text x-form-field';if(config.value)element_atts.value=config.value;if(config.style)element_atts.style=config.style;form_element=new Element('input',element_atts).observe('keydown',function(event){if(event.keyCode===Event.KEY_ESC)breakout_close();});}else{form_element=new Element('textarea',{id:id,rows:5,style:'width: 300px','class':'x-form-textarea x-form-field'}).observe('keydown',function(event){if(event.keyCode===Event.KEY_ESC)breakout_close();});(function(){form_element.innerHTML=config.value.escapeHTML();}).defer();};if('handlers'in config){for(var event_name in config.handlers){form_element.observe(event_name,config.handlers[event_name]);};};name_cell.appendChild(label);value_cell.appendChild(form_element);(function(){if(config.disabled)form_element.disable();}).defer();if(config.checked)form_element.checked='checked';if(config.pre)value_cell.insert({top:config.pre});[name_cell,value_cell].each(function(cell){row.appendChild(cell);});return{node:row,id:id};};var submit_row=function(submit_handler){var row=new Element('tr');var cell=new Element('td',{colspan:2,'class':'browser_submit_cell'});var cancel=new Element('input',{type:'button',value:'Cancel changes'}).observe('click',breakout_close);var submit=new Element('input',{type:'submit',value:'Save changes'});[cancel,'&nbsp;',submit].each(function(content){cell.insert({bottom:content});});row.appendChild(cell);return{node:row,id:''};};var update_local_copy=function(local,remote){var relevant_attributes=listdir_include.inject({},function(acc,att){acc[att]=null;return acc;});var numbers={'bytes':null,'chart':null,'numchild':null,'own':null,'report':null,'rows':null,'tstat':null,'upload':null}
for(var att in remote){if(!(att in relevant_attributes))continue;if(att==='name'){local.value=remote.name;continue;};if(att==='title'||att==='sdesc'){local[att]=remote[att].escapeHTML();continue;};if(att==='type'){local.system_type=remote.type;continue;};if(att in numbers){local[att]=remote[att]-0;continue;};local[att]=remote[att];};};var breakout=function(edit,event){event.stop();if($(browser.name+'_div_info'))$(browser.name+'_div_info').remove();var spinner=$(browser.name+'status_spinner');if((edit&&item.edit_info)||(!edit&&item.show_info)){spinner.hide();return breakout_close();};spinner.show();browser.disable_toolbar();switch(item.type){case'browser_dir':TenTen.API.getdir({name:item.value,handler:function(result){var no_errors=(result.rc.value-0)===0;if(!no_errors)return;if(edit){item.edit_info=true;item.show_info=false;}else{item.show_info=true;item.edit_info=false;};browser.intercept=function(){return true;}
var dir=Object.clone(result.dir.attributes);var dir_name,dir_path;dir_name=dir.name.split('.').last();dir_path=(function(arr){arr.pop();return arr.join('.');})(dir.name.split('.'));dir_path=dir_path.length?dir_path+'.':'';update_local_copy(item,dir);var submit_handler=function(event){if(event)event.stop();var keys=rows.compact().filter(function(row){return!/^inherit/.match(row.id.replace(browser.name+'item_editor',''));}).map(function(row){return row.id.replace(browser.name+'item_editor','');}).filter(function(id){return id.length;});var values=keys.map(function(name){return $(browser.name+'item_editor'+name).value;});var params={};keys.map(function(key,index){params[key]=values[index];});params.id=item.id;params.name=dir_path+params.name;var cred=TenTen.API.credentials();if(!$(browser.name+'item_editorinherit').checked&&params.users==='')params.users=cred.uid.value;if(!$(browser.name+'item_editorinherit_uploaders').checked&&params.uploaders==='')params.uploaders=cred.uid.value;if($(browser.name+'item_editorinherit').checked)params.users='';if($(browser.name+'item_editorinherit_uploaders').checked)params.uploaders='';TenTen.API.putdir({attributes:params,loading:status_update.curry({graphics:['spinner'],message:'Submitting new directory information...'}),handler:function(result){var no_errors=result.rc.value-0===0;if(no_errors){breakout_close();status_update({message:'Success! This folder\'s information was modified.',graphics:['success']});update_local_copy(item,result.dir.attributes);update_dom_copy(item);remove_selects(browser.name+item.name);browser.refresh_folder(item.name);}else{breakout_close();status_update({message:'The folder was not updated. (<a href="#" class="browser_toolbar_text_link" id="'+
browser.name+'_more_info">More Info</a>)',graphics:['exclamation'],more_link:browser.name+'_more_info',more_message:result.msg.value.escapeHTML()});};}});};var form_breakout=new Element('form',{method:'post',action:'#'}).observe('submit',submit_handler);var table=new Element('table',{'class':'browser_toolbar_breakout'});var tbody=new Element('tbody');table.appendChild(tbody);form_breakout.appendChild(table);var rows=edit?[editable_row({name:'Title',value:dir.title,id:'title',type:'text',style:'width: 300px'}),editable_row({name:'Name',value:dir_name,id:'name',pre:dir_path,type:'text'}),static_row('ID',dir.id),editable_row({name:'Owner',value:dir.owner,id:'owner',type:'text',style:'width: 300px'}),static_row('Last Updated',dir.update),editable_row({name:'Users',value:dir.users,id:'users',type:'textarea',disabled:!dir.users.length}),editable_row({name:'Inherit Users',checked:!dir.users.length,id:'inherit',type:'checkbox',handlers:{'click':function(event){var users_textarea=$(this.id.replace(/inherit$/,'')+'users');if(this.checked)
users_textarea.disable();else
users_textarea.enable();}}}),editable_row({name:'Uploaders',value:dir.uploaders,id:'uploaders',type:'textarea',disabled:!dir.uploaders.length}),editable_row({name:'Inherit Uploaders',checked:!dir.uploaders.length,id:'inherit_uploaders',type:'checkbox',handlers:{'click':function(event){var uploaders_textarea=$(this.id.replace(/inherit_uploaders$/,'')+'uploaders');if(this.checked)
uploaders_textarea.disable();else
uploaders_textarea.enable();}}}),editable_row({name:'Short Description',value:dir.sdesc,id:'sdesc',type:'text',style:'width: 300px'}),editable_row({name:'Long Description',value:dir.ldesc,id:'ldesc',type:'textarea'}),submit_row()]:[static_row('Title',dir.title.escapeHTML()),static_row('Name',dir.name),static_row('ID',dir.id),static_row('Owner',dir.owner),static_row('Last Updated',dir.update),dir.own-0?static_row('Users',dir.users):null,dir.own-0?static_row('Uploaders',dir.uploaders):null,static_row('Short Description',dir.sdesc),static_row('Long Description',dir.ldesc)];rows.each(function(row){if(row)tbody.appendChild(row.node);});var height=null;var callback=edit?function(){(function(){$(rows.first().id).focus();}).defer();}:null;breakout_form({form:form_breakout,height:height,handler:callback,submit_handler:submit_handler});spinner.hide();}});break;case'browser_file':TenTen.API.gettab({name:item.value,handler:function(result){var no_errors=(result.rc.value-0)===0;if(!no_errors)return;if(edit){item.edit_info=true;item.show_info=false;}else{item.show_info=true;item.edit_info=false;};browser.intercept=function(){return true;}
var tab=Object.clone(result.tab.attributes);var tab_name,tab_path,in_my_data;tab_name=tab.name.split('.').last();tab_path=(function(arr){arr.pop();return arr.join('.');})(tab.name.split('.'));in_my_data=tab_path==='uploads';tab_path=tab_path.length?tab_path+'.':'';update_local_copy(item,tab);var process_dependencies=function(dependencies){var indent='&nbsp;&nbsp;&nbsp;&nbsp;';var headings={'merged':'<span class="browser_dependency_heading">merged tables:</span>','link':'<span class="browser_dependency_heading">linked to:</span>','source':'<span class="browser_dependency_heading">applied to:</span>'};var process_dependency_list=function(arr,level){return arr.map(function(obj){var dependency=obj.dependency;var temp=[];temp.push(indent.times(level)+headings[dependency.attributes.type]+' '+
dependency.attributes.name);if(typeof dependency.value!=='undefined')
return temp.concat(process_dependency_list(dependency.value,level+1));return temp;});};var process_merge_list=function(arr){var temp=[headings['merged']];return temp.concat(arr.map(function(obj){return indent+obj.merged_table.value;}));};if(Object.isArray(dependencies)){if(dependencies.first().dependency.attributes.type==='merged')
return process_merge_list(dependencies.first().dependency.value,0).flatten().join('<br />');else
return process_dependency_list(dependencies,0).flatten().join('<br />');}else{return dependencies;};};var submit_handler=function(event){if(event)event.stop();var keys=rows.compact().filter(function(row){return row.id.replace(browser.name+'item_editor','')!=='inherit';}).map(function(row){return row.id.replace(browser.name+'item_editor','');}).filter(function(id){return id.length;});var values=keys.map(function(name){return $(browser.name+'item_editor'+name).value;});var params={};keys.each(function(key,index){params[key]=values[index];});params.id=item.id;params.name=tab_path+params.name;var cred=TenTen.API.credentials();if(!$(browser.name+'item_editorinherit').checked&&params.users==='')params.users=cred.uid.value;if($(browser.name+'item_editorinherit').checked)params.users='';TenTen.API.puttab({attributes:params,loading:status_update.curry({graphics:['spinner'],message:'Submitting new file information...'}),handler:function(result){var no_errors=result.rc.value-0===0;if(no_errors){breakout_close();status_update({message:'Success! This file\'s information was modified.',graphics:['success']});update_local_copy(item,result.tab.attributes);update_dom_copy(item);remove_selects(browser.name+item.name);}else{breakout_close();status_update({message:'The file was not updated. (<a href="#" class="browser_toolbar_text_link" id="'+
browser.name+'_more_info">More Info</a>)',graphics:['exclamation'],more_link:browser.name+'_more_info',more_message:result.msg.value.escapeHTML()});};}});}
var form_breakout=new Element('form',{method:'post',action:'#'}).observe('submit',submit_handler);var table=new Element('table',{'class':'browser_toolbar_breakout'});var tbody=new Element('tbody');table.appendChild(tbody);form_breakout.appendChild(table);var rows=edit?[editable_row({name:'Title',value:tab.title,id:'title',type:'text',style:'width: 300px'}),editable_row({name:'Name',value:tab_name,id:'name',pre:tab_path,type:'text',disabled:in_my_data}),static_row('ID',tab.id),(tab.bytes?static_row('Size',(parseInt(tab.bytes,10)/(1024*1024)).toFixed(2)+' MB'):null),editable_row({name:'Owner',value:tab.owner,id:'owner',type:'text',style:'width: 300px',disabled:in_my_data}),static_row('Last Updated',tab.update),editable_row({name:'Users',value:tab.users,id:'users',type:'textarea',disabled:!tab.users.length}),editable_row({name:'Inherit Users',checked:!tab.users.length,id:'inherit',type:'checkbox',handlers:{'click':function(event){var users_textarea=$(this.id.replace(/inherit$/,'')+'users');if(this.checked)
users_textarea.disable();else
users_textarea.enable();}},disabled:in_my_data}),editable_row({name:'Short Description',value:tab.sdesc,id:'sdesc',type:'text',style:'width: 300px;'}),editable_row({name:'Long Description',value:tab.ldesc,id:'ldesc',type:'textarea'}),submit_row(submit_handler)]:[static_row('Title',tab.title.escapeHTML()),static_row('Name',tab.name),static_row('ID',tab.id),(tab.bytes?static_row('Size',(parseInt(tab.bytes,10)/(1024*1024)).toFixed(2)+' MB'):null),static_row('Owner',tab.owner),static_row('Last Updated',tab.update),(typeof result.tab.value!=='undefined'&&'dependencies'in result.tab.value?static_row('References',process_dependencies(result.tab.value.dependencies.value)):null),static_row('Short Description',tab.sdesc),static_row('Long Description',tab.ldesc)];rows.each(function(row){if(row)tbody.appendChild(row.node);});var height=null;var callback=edit?function(){(function(){$(rows.first().id).focus();}).defer();}:null;breakout_form({form:form_breakout,height:height,handler:callback,submit_handler:submit_handler});spinner.hide();}});break;};};var status_graphics=[item.main_graphic];var display_types={'XML':'xml','CHART':'pdf','REPORT':'pdf','EXCEL':'excel','TEXT':'text'};if(item.display in display_types)status_graphics.push(display_types[item.display]);var report=item.report-0,chart=item.chart-0;if(report&&chart){status_graphics.push('reportchart');}else{if(report)status_graphics.push('report');if(chart)status_graphics.push('chart');};status_update({message:'&nbsp;'+item.value+' (<a href="#" class="browser_toolbar_text_link" id="'+browser.name+
item.name+'_more_info">view info</a>'+
((item.own-0)?', <a href="#" class="browser_toolbar_text_link" id="'+browser.name+item.name+'_edit_info">edit info</a>':'')+
(browser.edit_query&&item.system_type in{VIEW:null,PARAM:null}?', <a href="#" class="browser_toolbar_text_link" id="'+browser.name+item.name+'_edit_query">edit query</a>':'')+
(browser.download_query&&item.system_type in{VIEW:null,PARAM:null}?', <a href="#" class="browser_toolbar_text_link" id="'+browser.name+item.name+'_download_query">download query</a>':'')+', <a href="#" class="browser_toolbar_text_link" id="'+browser.name+item.name+'_favorite">'+(item.favorite-0?'remove favorite':'add favorite')+'</a>'+')',graphics:status_graphics});(function(){$(browser.name+item.name+'_more_info').observe('click',breakout.curry(false));if($(browser.name+item.name+'_edit_info'))
$(browser.name+item.name+'_edit_info').observe('click',breakout.curry(true));if($(browser.name+item.name+'_edit_query'))
$(browser.name+item.name+'_edit_query').observe('click',function(event){event.stop();browser.edit_query(item);});if($(browser.name+item.name+'_download_query'))
$(browser.name+item.name+'_download_query').observe('click',function(event){event.stop();var spinner=$(browser.name+'status_spinner');spinner.show();browser.download_query(item);TenTen.API.getuser({handler:function(){spinner.hide();}});});$(browser.name+item.name+'_favorite').observe('click',favorite_handler.curry(item));}).defer();}.bind(browser);var query_render=function(result,path,callback){var level=path===browser.path?0:path.split('.').length-(browser.path.length?browser.path.split('.').length:0);remember(path);var system_type=(typeof result.table==='undefined')?[]:result.table.value.cols.value[0].th.attributes.type;var items=(typeof result.table==='undefined')?[]:result.table.value.data.value.map(function(item,index){var temp={};temp.value=item.tr.value[0].td.value;temp.system_type=system_type;if(typeof temp.value==='undefined')temp.value='';temp.name=(path.length?path+'.':'')+hash_method(temp.value);temp.title=item.tr.value.length>1?item.tr.value[1].td.value:(temp.value.length?temp.value:browser.na);temp.path=path;temp.level=level;temp.open=false;temp.type='browser_queryitem';temp.graphics=level<browser.queries.length-1?[triangle_icon(temp.name)]:[];temp.has_children=!!temp.graphics.length;temp.dblclick_handler=function(event){event.stop();var item=browser.map[temp.name];var dblclick_result=browser.ondblclick(item);if(dblclick_result===false)return;var triangle=$(browser.name+item.name+'_triangle');if(triangle===null)return;if('src'in triangle&&triangle.src.match(images['spinner']))return;browser.toggle(item.name);};browser.map[temp.name]=Object.clone(temp);return temp;});items.each(item_render);(function(){if(path.length&&$(browser.name+path).select('li').length===0&&$(browser.name+path+'_triangle')){$(browser.name+path+'_triangle').insert({before:blank_icon(path)});$(browser.name+path+'_triangle').remove();};if(callback)callback();}).defer();};var initialize=function(){this.element=config.element;if(!$(this.element))return;this.image_path=resource_path+'images/';this.type=config.type;this.remember=('remember'in config)?(typeof config.remember==='boolean'?config.remember:config.remember.length?config.remember:false):false;this.go=config.go||null;this.advanced_view=('toolbar_element'in config&&$(config.toolbar_element)!==null);this.intercept=intercept;this.map={};this.state=[];this.path=config.path||'';this.na=config.na||'[N/A]';$H(images).each(function(image){var temp_img=new Image();temp_img.src=this.image_path+image.value;}.bind(this));this.name=config.name;$(this.element).addClassName('browser_global');this.onclose=config.onclose||function(){};this.onopen=config.onopen||function(){};this.onselect=config.onselect||function(){};this.ondeselect=config.ondeselect||function(){};this.ondblclick=config.ondblclick||function(){};this.onfavchange=config.onfavchange||function(){};this.onresizetoolbar=config.onresizetoolbar||function(){};this.multiple_select=config.multiple_select||false;this.deselect='deselect'in config?config.deselect:true;this.scroll_element=config.scroll_element||null;var ul=new Element('ul').addClassName('browser_top_ul');ul.id=browser.name+browser.path+children_suffix;$(this.element).appendChild(ul);var query_load_browser=(this.type==='query')&&function(result){var saved=process_state(result);var loaders=saved.state.map(function(path,index){return function(){var level=path.split('.').length;var query_obj=Object.clone(browser.queries[level]);$R(0,level-1).each(function(x){var mapped_value=path.split('.').slice(0,x+1).join('.');query_obj.replace_token(new RegExp('\\$'+browser.queries[x].col),browser.map[mapped_value].value);});TenTen.API.querydata({query:query_obj.query.ops.value,table:query_obj.table,handler:function(result){var no_errors=(result.rc.value-0)===0;if(!no_errors)return status_update({message:result.msg.value.escapeHTML(),graphics:['exclamation']});$(browser.name+path+'_triangle').src=browser.image_path+images['triangle_expanded'];browser.map[path].open=true;query_render(result,path);queue.shift();}});};});loaders.push(function(){set_selections(saved.selections,saved.deselections);queue.shift();load_event();});var querydata=TenTen.API.querydata.curry({query:browser.queries[0].query.ops.value,table:browser.queries[0].table,handler:function(result){var no_errors=(result.rc.value-0)===0;if(!no_errors)return status_update({message:result.msg.value.escapeHTML(),graphics:['exclamation']});query_render(result,'');queue.shift();}});loaders=[querydata].concat(loaders);queue.bulk(loaders);};var file_load_browser=(this.type==='file')&&function(result){var saved=process_state(result);var loaders=[];var loaders=saved.state.map(function(path,index){return TenTen.API.listdir.curry({path:path,include:listdir_include,include_mode:include_mode,loading:TenTen.Util.DOM.find.curry({id:browser.name+path+'_triangle',handler:function(triangle){triangle.src=browser.image_path+images['spinner'];}}),handler:function(result){var no_errors=(result.rc.value-0)===0;if(!no_errors)return status_update({message:result.msg.value.escapeHTML(),graphics:['exclamation']});var render_callback=function(){var item=browser.map[path]
item.open=true;TenTen.Util.DOM.find({id:browser.name+path+'_triangle',handler:function(el){if(el)el.src=browser.image_path+images['triangle_expanded'];}});if(index===saved.state.length-1){if('ldesc'in result.dir.attributes)item.ldesc=result.dir.attributes.ldesc;if('gif'in result.dir.attributes)item.gif=result.dir.attributes.gif;browser.onopen(item);browser.scroll(item)};};file_render(result,path,render_callback);}});});loaders.push(load_event);var listdir=TenTen.API.listdir.curry({path:browser.path,include:listdir_include,include_mode:include_mode,handler:function(result){var no_errors=(result.rc.value-0)===0;if(!no_errors)return status_update({message:result.msg.value.escapeHTML(),graphics:['exclamation']});file_render(result,browser.path);queue.shift();}});loaders=[listdir].concat(loaders);queue.bulk(loaders);};var load_browser=query_load_browser||file_load_browser;var set_selections=function(selections,deselections){[selections,deselections].flatten().each(this.select);}.bind(this);var process_state=function(result){if(result&&result.value&&result.value.value){eval('var saved_state = ('+result.value.value+');');return saved_state;}else{var saved_state={state:(config.state||[]).filter(function(str){return typeof str==='string'&&str.length;}),selections:(config.selections||[]).filter(function(str){return typeof str==='string'&&str.length;}),deselections:(config.deselections||[]).filter(function(str){return typeof str==='string'&&str.length;})};return saved_state;};};this.close_breakouts=function(){breakout_close();if($(browser.name+'_div_info'))$(browser.name+'_div_info').remove();};this.select=function(item){var li=(typeof item==='string')?$(browser.name+item):$(browser.name+item.name);if(li)selector.apply(li,[]);};this.snapshot=function(){return{state:browser.state,selections:$(browser.element).select('li.browser_selected').map(function(li){return li.id.replace(browser.name,'')}),deselections:$(browser.element).select('li.browser_deselected').map(function(li){return li.id.replace(browser.name,'')})};};var retrieve_state=function(){TenTen.API.hashget({name:(typeof config.remember==='string'?config.remember:browser.name),handler:load_browser});};this.save_state=function(event,async){TenTen.API.hashput({name:(typeof config.remember==='string'?config.remember:browser.name),value:Object.toJSON(browser.snapshot()),async:false});};var exceptions=function(item,levels,get_path,get_path_titles,get_path_types){var excepts=$R(0,levels).map(function(){return[];});$R(item.level,item.level===levels?0:levels).each(function(i){excepts[i]=$(browser.name+item.name).select('li.'+browser.name+'level'+i).select(function(node){return $(node).hasClassName('browser_deselected');}).map(function(node){var temp=browser.map[node.id.replace(browser.name,'')];var obj={title:temp.title,value:temp.value,system_type:temp.system_type,path:get_path(temp),path_titles:get_path_titles(temp)};if(get_path_types)obj.path_types=get_path_types(temp);return obj;});});return excepts;};this.clear_selections=remove_selects.curry(this.name);this.clear_history=function(){browser.state=[];};this.collapse_all=function(){var opened_items=[];for(var item in browser.map)if(browser.map[item].open)opened_items.push(item);opened_items.filter(function(item){return item.indexOf('.')===-1}).each(function(item){browser.toggle(item);});};this.flash=function(item){var element=$(browser.name+item.name);$$('img.app_pointer_arrow').invoke('remove');var arrow=new Element('img',{'class':'app_pointer_arrow',style:'position: absolute;',src:browser.image_path+images['arrow']}).hide();if(element){var scroll=$(browser.scroll_element)?$(browser.scroll_element).scrollTop:0;var toolbar=$(browser.toolbar_element)?$(browser.toolbar_element).getDimensions().height:0;var top=element.cumulativeOffset().top-scroll-toolbar+25;var left=$(browser.element).getDimensions().width+8;arrow.setStyle({left:left+'px',top:top+'px'});document.body.appendChild(arrow);arrow.show();(function(){try{arrow.remove();}catch(e){};}).delay(2);};};this.scroll=function(item){if(!browser.scroll_element||!$(browser.name+item.name))return;if(browser.scroll_element===window)
window.scroll(0,$(browser.name+item.name).cumulativeOffset().last());else
$(browser.scroll_element).scrollTop=$(browser.name+item.name).positionedOffset().last();};this.open=function(name,handler){if(name.length===0)return;var ancestors=name.split('.').inject([],function(acc,x){return acc.concat(acc.length?[acc.last(),x].join('.'):x);}).filter(function(path){return!(browser.map[path]&&browser.map[path].open);});var last=ancestors.length-1;var scroll=function(){if(!(name in browser.map))return arguments.callee.delay(0.25);if(browser.scroll_element)browser.scroll(browser.map[name]);var item=browser.map[name];if(typeof handler==='function')handler.curry(item).delay(0.25);};var loaders=browser.loaders=ancestors.map(function(path,index){return function(){if(!(path in browser.map))return arguments.callee.delay(0.25);if(browser.map[path].type==='browser_file')return loaders.shift()();opener.apply($(browser.name+path),[null,loaders.shift()]);};});loaders.push(scroll);loaders.shift()();};this.toggle=function(name){opener.apply($(browser.name+name),[]);};this.reset=function(){browser.clear_selections();browser.clear_history()};this.destroy=function(){browser.reset();browser.save_state(null,true);if(browser.remember)Event.stopObserving(window,'unload',browser.save_state);$(browser.element).update('');for(var key in browser)delete browser[key];};var continue_loading=function(){var state=(config.state||[]).filter(function(str){return typeof str==='string'&&str.length;});var selections=(config.selections||[]).filter(function(str){return typeof str==='string'&&str.length;});var deselections=(config.deselections||[]).filter(function(str){return typeof str==='string'&&str.length;});var simulated_hashget=(state.length+selections.length+deselections.length)?{value:{value:'{state: '+state.toJSON()+', selections: '+selections.toJSON()+', deselections: '+deselections.toJSON()+'}'}}:null;if(browser.remember)
retrieve_state();else
load_browser(simulated_hashget);};var query_build_browser=(this.type==='query')&&function(){queue.shift();this.queries=new Array(config.queries.length);var queries_loaded=0;var load_query=function(browser,query,index){var params=Object.clone(query);var replace_token=function(token,value){this.query=Object.clone(eval('('+Object.toJSON(this.query).replace(token,value.replace(/\"/g,'\\\\\"').replace(/\'/g,'\\\\\''))+')'));};params.handler=function(json){queue.shift();browser.queries[index]={query:json,replace_token:replace_token,table:query.table||config.table};if(config.queries[index].col)browser.queries[index].col=config.queries[index].col;if(++queries_loaded===config.queries.length)continue_loading();};TenTen.XML.xml_to_json(params);};config.queries.each(function(query,index){queue.push(load_query.curry(browser,query,index));});}.bind(this);var file_build_browser=(this.type==='file')&&function(){queue.shift();this.toolbar_element=config.toolbar_element;this.edit_query=config.edit_query||null;this.download_query=config.download_query||null;if(this.advanced_view){var toolbar_methods={'go':function(event){if('stop'in event)event.stop();this.blur();if(typeof browser.go==='function')browser.go();},'addfolder':function(event){if('stop'in event)event.stop();this.blur();if(browser.intercept!==intercept)return;var target=browser.flatten();target=target.length===1&&target.first()&&browser.map[target.first().name].type==='browser_dir'&&browser.map[target.first().name];browser.clear_selections();var make_addform=function(target){var form_addfolder=new Element('form',{action:'#',method:'post',id:browser.name+'form_addfolder'}).observe('submit',function(event){event.stop();var target=$(browser.name+'input_addfolder_target');var cred=TenTen.API.credentials();var refresh_folder=null;var addfolder_params={title:$(browser.name+'input_addfolder_title').value.length&&$(browser.name+'input_addfolder_title').value||$(browser.name+'input_addfolder_name').value.length&&$(browser.name+'input_addfolder_name').value.split('.').last()||'New Folder',users:[cred.uid.value],upload:[cred.uid.value],loading:status_update.curry({graphics:['spinner'],message:'Creating new folder...'}),handler:function(result){var no_errors=result.rc.value-0===0;browser.enable_toolbar();if(no_errors){status_update({message:'Success! Your subfolder was created.',graphics:['success']});}else{status_update({message:'Your subfolder was not created. (<a href="#" class="browser_toolbar_text_link" id="'+
browser.name+'_more_info">More Info</a>)',graphics:['exclamation'],more_link:browser.name+'_more_info',more_message:result.msg.value.escapeHTML()});};if(item_parent(refresh_folder).length)
refresh_folders=[item_parent(refresh_folder),refresh_folder];else
refresh_folders=[refresh_folder];browser.refresh_folders(refresh_folders);}};var name=$(browser.name+'input_addfolder_name').value.length&&$(browser.name+'input_addfolder_name').value;if(name){addfolder_params.name=target.value.length?target.value+'.'+name:name;refresh_folder=addfolder_params.name;}else{addfolder_params.parent=target.value.length?target.value:'';refresh_folder=addfolder_params.parent;};reset_item_classes(['browser_intermediate']);TenTen.API.mkdir(addfolder_params);browser.intercept=intercept;});var input_target=new Element('input',{type:'hidden',id:browser.name+'input_addfolder_target',value:target?target.value:''});var label_title=new Element('label',{'for':browser.name+'input_addfolder_title'}).update('Title:');var input_title=new Element('input',{type:'text','class':'x-form-text x-form-field',id:browser.name+'input_addfolder_title',style:'width: 300px'}).observe('keydown',function(event){if(event.keyCode===Event.KEY_ESC)cancel();});var label_name=new Element('label',{'for':browser.name+'input_addfolder_name'}).update('Full Path:');var input_name=new Element('input',{type:'text','class':'x-form-text x-form-field',id:browser.name+'input_addfolder_name'}).observe('keydown',function(event){if(event.keyCode===Event.KEY_ESC)cancel();});var button_add=new Element('input',{type:'submit',id:browser.name+'button_addfolder_add',value:'Add'});var button_cancel=new Element('input',{type:'button',id:browser.name+'button_addfolder_cancel',value:'Cancel'});var span_addfolder=new Element('span',{'class':'browser_toolbar_form'});span_addfolder.update('Please enter a title and a name (path) for your folder. Both are optional.<br />');var span_path=new Element('span').update(target&&target.value.length?target.value+'.':'');[input_target,label_title,'&nbsp;',input_title,'<br />',label_name,'&nbsp;',span_path,input_name,'<br />',button_add,button_cancel].each(function(content){span_addfolder.insert(content);});form_addfolder.appendChild(span_addfolder);status_update({message:form_addfolder,cancel:button_cancel.id});browser.intercept=function(target){var in_my_data=target.value==='uploads';if(!in_my_data&&target.type==='browser_dir'){reset_item_classes(['browser_intermediate']);$(browser.name+target.name).addClassName('browser_intermediate');input_target.value=target.value;span_path.update(target.value+'.');};return true;};(function(){$(browser.name+'input_addfolder_title').focus()}).defer();};browser.disable_toolbar();var in_my_data=target.value==='uploads';if(!in_my_data&&(target.own||target.upload)){if(target)$(browser.name+target.name).addClassName('browser_intermediate');make_addform(target);}else{browser.clear_selections();var message=!target?'You cannot create a root-level folder.':in_my_data?'You cannot create a subfolder in My Data.':'You do not have permission to create a folder here.';status_update({message:message+' Please choose a different parent folder or <a href="#" class="browser_toolbar_text_link" id="'+
browser.name+'_addfolder_cancel">cancel</a>.',graphics:['asterisk'],cancel:browser.name+'_addfolder_cancel'});browser.intercept=function(target){var in_my_data=target&&target.value==='uploads';if(!in_my_data&&(target.own||target.upload)){if(target)$(browser.name+target.name).addClassName('browser_intermediate');make_addform(target);}else{status_update({message:(in_my_data?'You cannot create a subfolder in My Data.':'You do not have permission to create a folder here. ')+' Please choose a different parent folder or <a href="#" class="browser_toolbar_text_link" id="'+
browser.name+'_addfolder_cancel">cancel</a>.',graphics:['asterisk'],cancel:browser.name+'_addfolder_cancel'});};return true;};};},'upload':function(event){if('stop'in event)event.stop();this.blur();if(browser.intercept!==intercept)return;browser.disable_toolbar();var target=browser.flatten();target=target.length===1&&target.first()&&target.first();var make_upload_form_1=function(target,folder){var in_my_data=folder==='uploads';var input_parent=new Element('input',{type:'hidden',id:browser.name+'input_upload_parent',value:folder&&browser.map[folder].value||''});var label_title=new Element('label',{'for':browser.name+'input_upload_title'}).update('Title:');var input_title=new Element('input',{type:'text','class':'x-form-text x-form-field',value:(target&&browser.map[target.name].type==='browser_file')?target.title:'',id:browser.name+'input_upload_title',style:'width: 300px'}).observe('keydown',function(event){if(event.keyCode===Event.KEY_ESC)cancel();});var label_name=new Element('label',{'for':browser.name+'input_upload_name'}).update('Full Path:');var input_name=new Element('input',{type:'text',id:browser.name+'input_upload_name','class':'x-form-text x-form-field',value:(target&&browser.map[target.name].type==='browser_file')?target.value.split('.').last():'',disabled:in_my_data}).observe('keydown',function(event){if(event.keyCode===Event.KEY_ESC)cancel();});var button_next=new Element('input',{type:'submit',id:browser.name+'button_upload_next',value:'Next'});var button_cancel=new Element('input',{type:'button',id:browser.name+'button_upload_cancel',value:'Cancel'});var div_upload=new Element('div',{'class':'browser_toolbar_form'});div_upload.update('Please pick a folder and enter a title and a name (path) for your upload. '+'Title and name are optional.<br />');var span_warning=new Element('span');var div_warning=new Element('div').insert(new Element('img',{src:browser.image_path+images['exclamation']})).hide();div_warning.insert(span_warning);var form_upload=new Element('form',{action:'#',method:'post',id:browser.name+'form_upload'}).observe('submit',function(event){event.stop();if(input_parent.value.length||input_name.value.indexOf('.')>0){var path=input_parent.value.length?[input_parent.value]:[];if(input_name.value.indexOf('.')>0)path.push(item_parent(input_name.value));path=path.join('.');input_parent.value=path;input_name.value=input_name.value.split('.').last();if(browser.map[path]&&!(browser.map[path].own||browser.map[path].upload)){span_warning.update('You do not have permission to write to this folder.');div_warning.show();browser.onresizetoolbar();return;};status_update({message:'Loading...',graphics:['spinner']});TenTen.API.listdir({include:['name','title'],path:path,handler:function(result){var no_errors=result.rc.value-0===0;if(!no_errors){reset_item_classes(['browser_intermediate']);browser.intercept=intercept;browser.enable_toolbar();status_update({message:'An error occurred while while trying to complete this request. '+'(<a href="#" class="browser_toolbar_text_link" '+'id="'+browser.name+'_more_info">More Info</a>)',graphics:['exclamation'],more_link:browser.name+'_more_info',more_message:result.msg.value.escapeHTML()});return;};var target_path=[input_parent.value,input_name.value].join('.').replace(/\.$/,'');var tab_title;var children=result.dir.value.children.value||[];var tab_exists=children.inject(false,function(acc,item){if('tab'in item){if(item.tab.attributes.name===target_path){tab_title='title'in item.tab.attributes&&item.tab.attributes.title.length?item.tab.attributes.title:item.tab.attributes.name;};return acc||item.tab.attributes.name===target_path;};return acc;});var dir_exists=children.inject(false,function(acc,item){if('dir'in item)return acc||item.dir.attributes.name===target_path;return acc;});if(dir_exists){reset_item_classes(['browser_intermediate']);browser.intercept=intercept;browser.enable_toolbar();status_update({graphics:['exclamation'],message:'A folder with the name: '+target_path+' already exists so a table cannot have this name.'});return;};make_upload_form_2(input_parent.value,input_title.value,input_name.value,tab_exists,tab_title);}});}else{span_warning.update('Please select a parent folder before hitting next.');div_warning.show();browser.onresizetoolbar();};});var span_path=new Element('span').update(input_parent.value.length?input_parent.value+'.':'');[input_parent,label_title,'&nbsp;',input_title,'<br />',label_name,'&nbsp;',span_path,input_name,'<br />',button_next,'&nbsp;',button_cancel].each(function(content){$(div_upload).insert(content);});form_upload.appendChild(div_upload);form_upload.appendChild(div_warning);status_update({message:form_upload,cancel:button_cancel.id});browser.intercept=function(item){var folder=item.type==='browser_file'?item_parent(item.name):item.name;reset_item_classes(['browser_intermediate']);var set_name=item.type==='browser_file'?function(){$(input_name.id).value=item.value.split('.').last();$(input_title.id).value=item.title;Effect.Pulsate(browser.name+item.name,{duration:1,pulses:2});}:function(){};(function(){var in_my_data=folder==='uploads';$(input_parent.id).value=browser.map[folder].value;if(in_my_data){$(input_name.id).value='';$(input_name.id).disable();}else{$(input_name.id).enable();};$(browser.name+folder).addClassName('browser_intermediate');span_path.update(folder+'.');set_name();}).defer();return true;};(function(){$(input_title.id).focus()}).defer();};var make_upload_form_2=function(target,title,name,tab_exists,tab_title){browser.intercept=function(){return true;};var form_upload=new Element('form',{action:'#',method:'post',encType:'multipart/form-data',id:browser.name+'form_upload'}).observe('submit',TenTen.API.fileupload({warning:function(){if(tab_exists){var replace=window.confirm('Are you sure you want to replace the existing item: '+tab_title+'?');if(replace){return true;}else{reset_item_classes(['browser_intermediate']);browser.intercept=intercept;browser.enable_toolbar();status_update({message:'&nbsp;'});return false;};};return true;},handler:function(result){var no_errors=result.rc.value-0===0;browser.enable_toolbar();if(no_errors){var parent=item_parent(result.path.value);if(browser.map[parent]&&browser.map[parent].open)browser.toggle(parent);status_update({graphics:['success'],message:'Your upload was successful!'});browser.open(result.path.value);}else{status_update({message:'The upload did not complete successfully. (<a href="#" class="browser_toolbar_text_link" '+'id="'+browser.name+'_more_info">More Info</a>)',graphics:['exclamation'],more_link:browser.name+'_more_info',more_message:result.msg.value.escapeHTML()});};reset_item_classes(['browser_intermediate']);browser.intercept=intercept;},pre_post_error:function(){div_warning.show();browser.onresizetoolbar();},loading:function(){$(div_upload).hide();$(span_loading).show();browser.onresizetoolbar();}}));var input_name=new Element('input',{type:'hidden',id:browser.name+'input_upload_name',name:'name',value:name});var input_title=new Element('input',{type:'hidden',id:browser.name+'input_upload_title',name:'title',value:title});var input_path=new Element('input',{type:'hidden',id:browser.name+'input_upload_path',name:'path',value:target});var label_file=new Element('label',{'for':browser.name+'input_upload_file'}).update('File:');var input_file=new Element('input',{type:'file',id:browser.name+'input_upload_file',name:'upload'}).observe('keydown',function(event){if(event.keyCode===Event.KEY_ESC)cancel();});var button_upload=new Element('input',{type:'submit',id:browser.name+'button_upload_upload',value:'Upload'});var button_cancel=new Element('input',{type:'button',id:browser.name+'button_upload_cancel',value:'Cancel'});var div_upload=new Element('div',{'class':'browser_toolbar_form'});div_upload.update('Please choose a file and click upload.<br />');var span_loading=new Element('span');span_loading.update(spinner_icon());span_loading.insert({bottom:'Your file is uploading...'});span_loading.hide();var div_warning=new Element('div').update('Please select a file to upload.').insert({top:new Element('img',{src:browser.image_path+images['exclamation']})}).hide();[input_name,input_title,input_path,label_file,input_file,button_upload,button_cancel].each(function(el){div_upload.appendChild(el);$(div_upload).insert({bottom:'&nbsp;'});});[div_upload,span_loading,div_warning].each(function(el){form_upload.appendChild(el);});status_update({message:form_upload,cancel:button_cancel.id});};browser.clear_selections();var folder=false;if(target){folder=browser.map[target.name].type==='browser_file'?item_parent(target.name):target.name;$(browser.name+folder).addClassName('browser_intermediate');};make_upload_form_1(target,folder);},'move':function(event){if('stop'in event)event.stop();this.blur();if(browser.intercept!==intercept)return;var movables=browser.flatten();browser.clear_selections();if(!movables.length)
return status_update({message:'Please make a selection and click the move button.',graphics:['exclamation']});var own_all=movables.inject(true,function(acc,item){return acc&&!!(browser.map[item.name].own-0)});if(!own_all)
return status_update({message:'You do not have permission to move some or all of this selection.',graphics:['exclamation']});browser.disable_toolbar();status_update({message:'Where would you like to move '+(movables.length>1?'these items':'this item')+' to? (Click a folder below or <a href="#" class="browser_toolbar_text_link" id="'+
browser.name+'_move_cancel">cancel</a>.)',graphics:['asterisk'],cancel:browser.name+'_move_cancel'});movables.each(function(item){$(browser.name+item.name).addClassName('browser_intermediate');});browser.intercept=function(target){if(is_intermediate(browser.name+target.name)||target.type!=='browser_dir')return true;var actual_movables=movables.filter(function(movable){return item_parent(movable.name)!==target.name});if(actual_movables.length===0){status_update({message:'The selection is already in this folder. (Click a different folder below or '+'<a href="#" class="browser_toolbar_text_link" id="'+browser.name+'_move_cancel">cancel</a>.)',graphics:['exclamation'],cancel:browser.name+'_move_cancel'});return true;};if(!(target.own||target.upload)){status_update({message:'You do not have permission to move items into this folder. (Click a different folder below or '+'<a href="#" class="browser_toolbar_text_link" id="'+browser.name+'_move_cancel">cancel</a>.)',graphics:['exclamation'],cancel:browser.name+'_move_cancel'});return true;};$(browser.name+target.name).addClassName('browser_destination');$(browser.name+target.name).select('li.browser_intermediate').each(function(item){item.removeClassName('browser_intermediate');item.addClassName('browser_intermediate');});var move_confirm=window.confirm('Please confirm that you want to move the selected '+
(movables.length>1?'items':'item')+' (in green) to:\n'+target.title+'  ['+target.value+']');if(move_confirm){reset_item_classes(['browser_intermediate','browser_destination']);TenTen.API.move({source:movables.map(function(src){return src.value;}),target:target.value,loading:status_update.curry({graphics:['spinner'],message:'Moving...'}),handler:function(result){var no_errors=result.rc.value-0===0;browser.enable_toolbar();if(no_errors){status_update({message:'Success! The '+(movables.length>1?'items were':'item was')+' moved.',graphics:['success']});}else{var errors=(!('statuses'in result))?[result.msg.value]:result.statuses.value.filter(function(obj){return obj.status.value.rc.value-0!==0}).map(function(obj){return browser.map[obj.status.attributes.name].title+' ('+obj.status.attributes.name+')'+': '+obj.status.value.msg.value;});status_update({message:'Some items did not move successfully. (<a href="#" class="browser_toolbar_text_link"'+' id="'+browser.name+'_more_info">More Info</a>)',graphics:['exclamation'],more_link:browser.name+'_more_info',more_message:errors.map(function(e){return e.escapeHTML();}).join('<br />')});};var refresh_folders=movables.map(function(movable){var ancestors=movable.name.split('.').inject([],function(acc,x){return acc.concat(acc.length?[acc.last(),x].join('.'):x);});return ancestors.slice(0,ancestors.length-1);}).concat(target.name.split('.').inject([],function(acc,x){return acc.concat(acc.length?[acc.last(),x].join('.'):x);})).flatten().uniq().sort();browser.refresh_folders(refresh_folders);}});browser.intercept=intercept;}else{$(browser.name+target.name).removeClassName('browser_destination');};return true;};},'delete':function(event){if('stop'in event)event.stop();this.blur();if(browser.intercept!==intercept)return;var deletables=browser.flatten();if(!deletables.length)
return status_update({message:'Please select one or more items and click the delete button.',graphics:['exclamation']});var own_all=deletables.inject(true,function(acc,item){return acc&&!!(browser.map[item.name].own-0)});var has_folders=deletables.inject(false,function(acc,item){return acc||browser.map[item.name].type==='browser_dir'});if(!own_all){browser.clear_selections();status_update({message:'You do not have permission to delete some or all of this selection.',graphics:['exclamation']});return;};browser.intercept=function(target){return true;};var contains_favorite=deletables.inject(false,function(acc,item){return acc||!!(browser.map[item.name].favorite-0);});var folder_message=has_folders?' Please note that all the items inside selected folders will also be deleted.':'';var delete_confirm=window.confirm('Please confirm that you want to delete the following '+
(deletables.length>1?deletables.length+' items.'+folder_message+'\n':'item.'+folder_message+'\n')+
deletables.map(function(src){return src.title;}).join('\n'));if(delete_confirm){TenTen.API.drop({objects:deletables.map(function(src){return src.value;}),loading:status_update.curry({graphics:['spinner'],message:'Deleting...'}),handler:function(result){var no_errors=result.rc.value-0===0;if(no_errors){status_update({message:'Success! The '+(deletables.length>1?'items were':'item was')+' deleted.',graphics:['success']});}else{var errors=(!('statuses'in result))?[result.msg.value]:result.statuses.value.filter(function(obj){return obj.status.value.rc.value-0!==0;}).map(function(obj){return browser.map[obj.status.attributes.name].title+' ('+obj.status.attributes.name+')'+': '+obj.status.value.msg.value;});status_update({message:'Some items were not deleted successfully. (<a href="#" class="browser_toolbar_text_link"'+' id="'+browser.name+'_more_info">More Info</a>)',graphics:['exclamation'],more_link:browser.name+'_more_info',more_message:errors.map(function(e){return e.escapeHTML();}).join('<br />')});return;};var refresh_folders=deletables.map(function(deletable){return item_parent(deletable.name);}).filter(function(folder){return folder.length;}).flatten().uniq().sort();browser.refresh_folders(refresh_folders);deletables.each(function(deletable){if($(browser.name+deletable.name)){delete browser.map[deletable.name];$(browser.name+deletable.name).remove();};});browser.onfavchange();}});};browser.intercept=intercept;},'reorder':function(event){if('stop'in event)event.stop();this.blur();if(browser.intercept!==intercept)return;var target=browser.flatten();target=target.length===1&&target.first()&&browser.map[target.first().name].type==='browser_dir'&&browser.map[target.first().name].has_children&&target.first();browser.clear_selections();var prepare_reorder=function(target){browser.intercept=function(target){return true;};var parent=$(browser.name+target.name+children_suffix);var dirs=parent.select('li[class~='+browser.name+'level'+(target.level+1)+'][class~=browser_dir]');var files=parent.select('li[class~='+browser.name+'level'+(target.level+1)+'][class~=browser_file]');var dirs_ul=new Element('ul',{id:browser.name+target.name+'^dir_children','class':'browser_ul',style:'display: block'});var files_ul=new Element('ul',{id:browser.name+target.name+'^file_children','class':'browser_ul',style:'display: block'});dirs.each(function(dir){dirs_ul.appendChild(dir.remove());});files.each(function(file){files_ul.appendChild(file.remove());});parent.insert({after:files_ul});parent.insert({after:dirs_ul});var scroll_params={};if(dirs.length){scroll_params={ghosting:false,format:new RegExp(browser.name+'(.*)')};if('scroll_element'in browser)scroll_params.scroll=browser.scroll_element;Sortable.create(dirs_ul.id,scroll_params);};if(files.length){scroll_params={ghosting:false,format:new RegExp(browser.name+'(.*)')};if('scroll_element'in browser)scroll_params.scroll=browser.scroll_element;Sortable.create(files_ul.id,scroll_params);};browser.cancel_opens=parent.id.replace(children_suffix,'');var reset_reorder=function(only_destroy){browser.cancel_opens=false;[dirs_ul,files_ul].each(function(el){Sortable.destroy(el.id);el.remove();});if(!only_destroy)[dirs,files].flatten().each(function(item){parent.appendChild(item);});};var form_reorder=new Element('form',{action:'#',method:'post'}).observe('submit',function(event){event.stop();var dir_sequence=dirs.length?Sortable.sequence(dirs_ul.id).map(function(id){return browser.map[id].value;}):[];var tab_sequence=files.length?Sortable.sequence(files_ul.id).map(function(id){return browser.map[id].value;}):[];reset_item_classes(['browser_intermediate']);TenTen.API.order({dirs:dir_sequence,tabs:tab_sequence,name:target.value,loading:status_update.curry({message:'Reordering...',graphics:['spinner']}),handler:function(result){var no_errors=result.rc.value-0===0;browser.enable_toolbar();if(no_errors){status_update({message:'Success! Your folder was reordered.',graphics:['success']});}else{status_update({message:'The reorder operation failed. (<a href="#" class="browser_toolbar_text_link" id="'+
browser.name+'_more_info">More Info</a>)',graphics:['exclamation'],more_link:browser.name+'_more_info',more_message:result.msg.value.escapeHTML()});};reset_reorder(true);browser.refresh_folder(target.name);}});browser.intercept=intercept;});var div_form=new Element('div');var span_reorder=new Element('span',{'class':'browser_toolbar_form'});span_reorder.update('Drag and drop the contents of this folder to reorder, then save: ');var button_save=new Element('input',{type:'submit',id:browser.name+'button_reorder_save',value:'Save'});var button_cancel=new Element('input',{type:'button',id:browser.name+'button_reorder_cancel',value:'Cancel'}).observe('click',function(){reset_reorder();});[button_save,button_cancel].each(function(el){span_reorder.appendChild(el);$(span_reorder).insert({bottom:'&nbsp;'});});form_reorder.appendChild(span_reorder);status_update({message:form_reorder,cancel:button_cancel.id});};if(target&&!browser.map[target.name].own)
return status_update({message:'You do not have permission to reorder this folder.',graphics:['exclamation']});browser.disable_toolbar();if(target){$(browser.name+target.name).addClassName('browser_intermediate');browser.intercept=function(target){return true;};if(browser.map[target.name].open)
prepare_reorder(browser.map[target.name]);else
browser.open(target.name,prepare_reorder.curry(browser.map[target.name]));}else{browser.clear_selections();status_update({message:'Please choose a folder that is not empty or <a href="#" class="browser_toolbar_text_link" id="'+
browser.name+'_reorder_cancel">cancel</a>.',graphics:['asterisk'],cancel:browser.name+'_reorder_cancel'})
browser.intercept=function(target){if(target.type==='browser_dir'&&!browser.map[target.name].own){status_update({message:'You do not have permission to reorder this folder. Please select another folder or <a '+'class="browser_toolbar_text_link" href="#" id="'+browser.name+'_reorder_cancel">cancel</a>.',graphics:['exclamation'],cancel:browser.name+'_reorder_cancel'});return true;};if(target.type==='browser_dir'&&target.has_children){$(browser.name+target.name).addClassName('browser_intermediate');if(target.open){prepare_reorder(target);}else{opener.apply($(browser.name+target.name),[]);prepare_reorder_target=prepare_reorder.curry(browser.map[target.name]);$(browser.name+target.name).observe(event_namespace+'open',prepare_reorder_target);};}else{status_update({message:'You did not select a folder with items in it. Please select one or <a '+'class="browser_toolbar_text_link" href="#" id="'+browser.name+'_reorder_cancel">cancel</a>.',graphics:['asterisk'],cancel:browser.name+'_reorder_cancel'});};return true;};};},'merge':function(event){if('stop'in event)event.stop();this.blur();if(browser.intercept!==intercept)return;var get_mergeables=function(){var flat=browser.flatten().map(function(item){return{name:item.name,value:item.value,type:item.type,title:item.title};});var folders=flat.filter(function(item){return browser.map[item.name].type==='browser_dir'&&browser.map[item.name].open;});var reals=flat.filter(function(item){return browser.map[item.name].system_type==='REAL';});var mergeables=[],should_not_merge=false;mergeables=mergeables.concat(reals);if(folders.length&&(reals.length+folders.length===flat.length)){folders.each(function(folder){$(browser.name+folder.name).select('li').each(function(li){var item=browser.map[li.id.replace(browser.name,'')];if(item.system_type==='REAL'){mergeables.push({name:item.name,value:item.value,title:item.title});}else{should_not_merge=true;throw $break;};});if(should_not_merge)throw $break;});if(should_not_merge)mergeables=[];}else{mergeables=mergeables.length===flat.length?mergeables:[];};return mergeables;};var pick_mergeform=function(second){browser.disable_toolbar();mergeables.each(function(item){$(browser.name+item.name).addClassName('browser_intermediate');});if(second)
make_mergeform_2();else
make_mergeform_1();};var mergeables=get_mergeables();var mergeable_map={};var make_mergeform_1=function(){var original_multiple_select=browser.multiple_select;mergeables=[];browser.multiple_select=true;browser.intercept=function(item){if(item.system_type==='REAL'){if($(browser.name+item.name).hasClassName('browser_intermediate'))
$(browser.name+item.name).removeClassName('browser_intermediate');else
$(browser.name+item.name).addClassName('browser_intermediate');};if(item.type==='browser_dir'){$(browser.name+item.name).select('li.browser_file').each(function(li){$(li).removeClassName('browser_intermediate');if(browser.map[li.id.replace(browser.name,'')].system_type==='REAL')
$(li).addClassName('browser_intermediate');});};return true;};var form_merge=new Element('form',{method:'post',action:'#'}).observe('submit',function(event){event.stop();});var div_merge=new Element('div');var img_asterisk=new Element('img',{src:browser.image_path+images['asterisk'],style:'vertical-align: middle'});var span_img=new Element('span').update(img_asterisk).insert({bottom:'&nbsp;'});var span_message=new Element('span').update('Please select some tables to continue.');var button_next=new Element('input',{type:'button',value:'Next'}).observe('click',function(event){event.stop();mergeables=$(browser.element).select('li.browser_intermediate').map(function(li){var item=browser.map[li.id.replace(browser.name,'')];return{name:item.name,value:item.value,type:item.type,title:item.title};});browser.multiple_select=original_multiple_select;pick_mergeform(!!mergeables.length);});var button_cancel=new Element('input',{type:'button',value:'Cancel'}).observe('click',function(){browser.multiple_select=original_multiple_select;});[span_img,span_message,button_next,button_cancel].each(function(el){div_merge.appendChild(el);$(div_merge).insert({bottom:'&nbsp;'});});form_merge.appendChild(div_merge);status_update({message:form_merge,cancel:button_cancel});};var make_mergeform_2=function(){var input_order=new Element('input',{type:'hidden',id:browser.name+'input_merge_order',value:mergeables.map(function(table){return table.name;}).join(',')});mergeable_map=mergeables.inject({},function(acc,item){acc[item.name]=item;return acc;});var input_target=new Element('input',{type:'hidden',id:browser.name+'input_merge_target',value:''});var label_title=new Element('label',{'for':browser.name+'input_merge_title'}).update('Title:');var input_title=new Element('input',{type:'text','class':'x-form-text x-form-field',id:browser.name+'input_merge_title'}).observe('keydown',function(event){if(event.keyCode===Event.KEY_ESC){breakout_close();cancel();}});var label_name=new Element('label',{'for':browser.name+'input_merge_name'}).update('Full Path:');var input_name=new Element('input',{type:'text',id:browser.name+'input_merge_name','class':'x-form-text x-form-field'}).observe('keydown',function(event){if(event.keyCode===Event.KEY_ESC){breakout_close();cancel();}});var button_merge=new Element('input',{type:'submit',id:browser.name+'button_merge_merge',value:'Merge'});var button_cancel=new Element('input',{type:'button',id:browser.name+'button_merge_cancel',value:'Cancel'});var div_merge=new Element('div',{'class':'browser_toolbar_form'});div_merge.update('Please choose a destination folder, enter an optional title (human-readable) '+'and a name (path) for your merged table.'+' You may also <a href="#" id="'+
browser.name+'_merge_order_link" class="browser_toolbar_text_link">'+'change the default merge order</a> of the tables (advanced).<br />');var span_warning=new Element('span');var div_warning=new Element('div').insert(new Element('img',{src:browser.image_path+images['exclamation']})).hide();div_warning.insert(span_warning);var span_loading=new Element('span');span_loading.update(spinner_icon());span_loading.insert({bottom:'Your selection is merging...'});span_loading.hide();var form_merge=new Element('form',{action:'#',method:'post',id:browser.name+'form_merge'}).observe('submit',function(event){event.stop();if(!(input_target.value.length||input_name.value.indexOf('.')>0)){span_warning.update('Please select a destination folder for your merged table first.');div_warning.show();browser.onresizetoolbar();return;};var name=input_name.value.length?(input_target.value.length?input_target.value+'.':'')+input_name.value:'';var parent=name.length?item_parent(name):input_target.value;var title=input_title.value;var tabs=input_order.value.split(',').map(function(name){return mergeable_map[name].value;});var cred=TenTen.API.credentials();if(browser.map[parent]&&!(browser.map[parent].own||browser.map[parent].upload)){span_warning.update('You do not have permission to merge into this folder.');div_warning.show();browser.onresizetoolbar();return;};var merge_params={tabs:tabs,users:[cred.uid.value],title:title,loading:status_update.curry({message:'Merging...',graphics:['spinner']}),handler:function(result){var no_errors=result.rc.value-0===0;browser.enable_toolbar();if(no_errors){status_update({message:'Success! Your merged table was created.',graphics:['success']});}else{var overwrite=false;if(result.rc.value-0===20)
overwrite=window.confirm('Are you sure you want to replace '+merge_params.name.value+'?');if(overwrite){merge_params.name.attributes.mode='replace';return TenTen.API.merge(merge_params);};status_update({message:'Your merged table was not created. (<a href="#" class="browser_toolbar_text_link" '+'id="'+browser.name+'_more_info">More Info</a>)',graphics:['exclamation'],more_link:browser.name+'_more_info',more_message:result.msg.value.escapeHTML()});};reset_item_classes(['browser_destination','browser_intermediate']);browser.refresh_folder(parent);queue.push(function(){browser.scroll(browser.map[name.length?name:parent]);queue.shift();});},loading:function(){div_merge.hide();div_warning.hide();span_loading.show();browser.onresizetoolbar();}};if(name.length)
merge_params.name={value:name,attributes:{}};else
merge_params.parent=parent;browser.intercept=intercept;TenTen.API.merge(merge_params);});var span_path=new Element('span');browser.intercept=function(item){if(item.type==='browser_dir'){reset_item_classes(['browser_destination']);var in_my_data=item.value==='uploads';(function(){$(browser.name+item.name).addClassName('browser_destination');input_target.value=item.value;span_path.update(item.value+'.');if(in_my_data){input_name.disable();input_name.value='';}else{if(input_name.value.match(/\.(.[^\.]*)$/))input_name.value=RegExp.$1;input_name.enable();};}).defer();};if(item.system_type==='REAL'){reset_item_classes(['browser_destination']);(function(){var parent=item_parent(item.name);if(parent)$(browser.name+parent).addClassName('browser_destination');span_path.update('');input_target.value='';input_name.value=item.value;}).defer();};return true;};[input_order,'&nbsp;',label_title,'&nbsp;',input_title,'<br />',label_name,'&nbsp;',span_path,input_name,'<br />',button_merge,'&nbsp;',button_cancel].each(function(content){div_merge.insert(content);});form_merge.appendChild(div_merge);form_merge.appendChild(div_warning);form_merge.appendChild(span_loading);status_update({message:form_merge,cancel:button_cancel.id});(function(){$(input_title).focus();$(browser.name+'_merge_order_link').observe('click',function(event){event.stop();var sort=function(element,direction,fn_callback){var config={up:{placement:'before',condition:function(i){return i;},index:function(i){return i;}},down:{placement:'after',condition:function(i){return i+1<element.select('option').length;},index:function(i){return i+2;}}};var callback=typeof fn_callback==='function'?fn_callback:function(){};var value=element.value;if(value.length){var option=element.select('option[value='+value+']').first();var index;element.select('option').find(function(o,i){if(o===option)index=i;return o===option;});if(config[direction].condition(index)){var clone=option.cloneNode(true);var reference_option=element.select('option:nth-child('+
config[direction].index(index)+')').first();var param={};param[config[direction].placement]=clone;(function(){reference_option.insert(param);(function(){option.remove();clone.selected='selected';if(typeof element.options.remove!=='undefined'){element.options.add(new Element('option'));element.options.remove(element.options.length-1);};callback.defer();}).defer();}).defer();};};};var div_breakout=new Element('div',{style:'text-align: center;'}).update('Reorder by selecting an item and using the up and down buttons.<br />');var form_breakout=new Element('form',{method:'post',action:'#'}).observe('submit',function(event){event.stop();});var select=new Element('select',{size:mergeables.length<10?mergeables.length+1:10,id:browser.name+'select_merge_order'});input_order.value.split(',').each(function(name){var item=mergeable_map[name];select.appendChild(new Element('option',{value:item.name}).update(item.title));});var update_order=function(){var order=select.select('option').map(function(option){return option.value;});input_order.value=order.join(',');};var button_up=new Element('input',{type:'button',value:'[\u2191]'}).observe('click',sort.curry(select,'up',update_order));var button_down=new Element('input',{type:'button',value:'[\u2193]'}).observe('click',sort.curry(select,'down',update_order));[select,new Element('br'),button_up,button_down].each(function(item){div_breakout.insert({bottom:'&nbsp;&nbsp;'});div_breakout.appendChild(item);});form_breakout.appendChild(div_breakout);breakout_form({form:form_breakout,height:200,handler:function(){},close_method:function(event){if(event)event.stop();if($(browser.name+'_div_breakout'))$(browser.name+'_div_breakout').remove();}});});}).defer();};browser.clear_selections();pick_mergeform(false);},'multi':function(event){browser.multiple_select=!browser.multiple_select;this.setText(browser.multiple_select?'Single-Select':'Multiple-Select');}};if(typeof Ext!=='undefined'&&'Toolbar'in Ext){var toolbar_element=$(this.toolbar_element).addClassName('browser_toolbar');var toolbar_items=[{text:'Add Subfolder',iconCls:'browser_toolbar_addfolder',handler:toolbar_methods['addfolder']},{text:'Upload',iconCls:'browser_toolbar_upload',handler:toolbar_methods['upload']},{text:'Merge',iconCls:'browser_toolbar_merge',handler:toolbar_methods['merge']},{text:'Reorder',iconCls:'browser_toolbar_reorder',handler:toolbar_methods['reorder']},{text:'Move',iconCls:'browser_toolbar_move',handler:toolbar_methods['move']},{text:'Delete',iconCls:'browser_toolbar_delete',handler:toolbar_methods['delete']},'-',{text:browser.multiple_select?'Single-Select':'Multiple-Select',iconCls:'browser_toolbar_multi',handler:toolbar_methods['multi']}];if(typeof browser.go==='function')
toolbar_items.unshift({text:'Go',iconCls:'browser_toolbar_go',handler:toolbar_methods['go']});var toolbar=new Ext.Toolbar({items:toolbar_items});browser.disable_toolbar=function(){toolbar.items.each(function(button){button.disable();});};browser.enable_toolbar=function(){toolbar.items.each(function(button){button.enable();});};toolbar.render(this.toolbar_element);var status_div=new Element('div',{'class':'browser_toolbar_status_ext'});browser.status=status_div.update('&nbsp;');toolbar_element.appendChild(status_div);}else{throw{name:'BrowserError',message:'Ext must be included if you need a toolbar'};};};continue_loading();}.bind(this);var build_browser=query_build_browser||file_build_browser;this.refresh_folder=function(path,callback){var cleanup=function(path){var folder=browser.map[path];if(folder&&folder.open&&folder.has_children&&$(browser.name+path+children_suffix)&&$(browser.name+path+children_suffix).select('li').length===0){if($(browser.name+path+'_triangle')){browser.map[path].numchild=0;browser.map[path].has_children=false;$(browser.name+path+'_triangle').insert({before:blank_icon(path)});(function(){$(browser.name+path+'_triangle').remove();}).defer();};};if(callback)callback();};var refresh=function(path){if(!browser.map[path])return;var open_again=browser.map[path].open;opener.apply($(browser.name+path),[null,function(){if(open_again)
opener.apply($(browser.name+path),[null,cleanup.curry(path)]);else
cleanup(path);}]);};refresh(path);};this.refresh_folders=function(sequence,callback){var refreshers=sequence.map(function(path){return function(){browser.refresh_folder(path,function(){var refresher=refreshers.shift();if(refresher)refresher();});};});refreshers.push(callback||function(){});refreshers.shift()();};this.selections=function(){var item_path=function(attribute,item){var path=item.path;var crumbs=[];(path.length&&path.split('.').length).times(function(i){crumbs.push(browser.map[(new RegExp('(.[^\.]+){'+(i+1)+'}')).exec(path)[0]][attribute]);});return crumbs;};var root=$(browser.element);switch(browser.type){case'query':return browser.queries.map(function(q,index){return root.select('li.'+browser.name+'level'+index).select(function(node){return has_class(node,'browser_selected');}).map(function(node){var item=browser.map[node.id.replace(browser.name,'')];return{title:item.title,value:item.value,path:item_path('value',item),path_types:item_path('system_type',item),name:item.name,system_type:item.system_type,exceptions:exceptions(item,browser.queries.length-1,item_path.curry('value'),item_path.curry('title'),item_path.curry('system_type'))};});});case'file':var levels=root.select('li[class*='+browser.name+'level]').map(function(node){return node.className.match(/level(\d+)/)[1]-0;}).max();return $R(0,levels).map(function(index){return root.select('li.'+browser.name+'level'+index).select(function(node){return has_class(node,'browser_selected');}).map(function(node){var item=browser.map[node.id.replace(browser.name,'')];return{title:item.title,value:item.value,path:item.path,name:item.name,exceptions:exceptions(item,levels,function(item){return item.path;},item_path.curry('title'))};});});};};this.flatten=function(){var selected_memo={};var selected=function(id){return(function(id){if(id in selected_memo)return selected_memo[id];var node=document.getElementById(id);return(selected_memo[id]=!!node&&!has_class(node,'browser_deselected')&&(has_class(node,'browser_selected')||arguments.callee(item_parent(id))));})(id);};return browser.selections().map(function(level){return level.map(function(selection){return selection.exceptions.flatten().length===0?{value:selection.value,name:selection.name,title:selection.title,system_type:selection.system_type}:$(browser.name+selection.name).select('li').filter(function(li){return selected(li.id)&&!li.select('li.browser_deselected').length;}).map(function(li){var item=browser.map[li.id.replace(browser.name,'')];return{value:item.value,name:item.name,title:item.title,system_type:item.system_type};});});}).flatten().uniq();};if(this.advanced_view){this.disable_toolbar=function(){};this.enable_toolbar=function(){};this.refresh_status=function(name){if(name&&browser.map[name]&&browser.showing===name)show_file_meta(browser.map[name],false);};};if(this.type==='query'){this.logic_expr=function(lexicon){var cols=browser.queries.map(function(query){return query.col}).filter(function(col){return typeof col!=='undefined'});if(cols.length!==browser.queries.length)return'The wrong number of column names were provided during instantiation.';var noquotes={'i':null,'f':null};var expressions=[],or=(lexicon&&lexicon.or)||' | ',and=(lexicon&&lexicon.and)||' & ',quote=(lexicon&&lexicon.quote)||'\'',equals=(lexicon&&lexicon.equals)||'=',not=(lexicon&&lexicon.not)||'<>';browser.selections().each(function(level,i){level.each(function(item,j){var path=[];item.path.each(function(crumb,k){path.push([cols[k],equals,(item.path_types[k]in noquotes?'':quote),crumb,(item.path_types[k]in noquotes?'':quote),and].join(''));});var exceptions=[];item.exceptions.each(function(exception_level,k){exception_level.each(function(exception,l){exceptions.push([and,cols[k],not,(exception.system_type in noquotes?'':quote),exception.value,(exception.system_type in noquotes?'':quote)].join(''));});});expressions.push(['(',path.join(''),cols[i],equals,(item.system_type in noquotes?'':quote),item.value,(item.system_type in noquotes?'':quote),exceptions.join(''),')'].join(''));});});return expressions.join(or);};this.path_to_name=function(arr){return arr.inject([],function(acc,value){return acc.concat(hash_method(value));}).join('.');};};if(browser.remember)Event.observe(window,'unload',browser.save_state);queue.push(build_browser);return this;};return initialize.apply(browser,[]);};TenTen.Macro=new function(){var macro=this;this.tags={'break':{name:function(atts){return'Sort';},description:function(atts){return'Sort '+atts.col+('sort'in atts?' '+atts.sort.toUpperCase():'');},self_closing:true,attributes:{col:null,sort:null},required:{col:null},defaults:{col:null}},'col':{name:function(atts){return'Adjust Column';},description:function(atts){return'see attributes for details'},self_closing:true,attributes:{name:null,label:null,format:null,fixed:null},required:{name:null},defaults:{name:null}},'colord':{name:function(atts){return'Rearrange Columns';},description:function(atts){return'Showing Only '+atts.cols;},self_closing:true,attributes:{cols:null},required:{},defaults:{cols:null}},'link':{name:function(atts){return'Link';},description:function(atts){return'To '+atts.table2;},self_closing:false,attributes:{table2:null,col:null,col2:null,label:null,suffix:null,type:null,shift:null},required:{table2:null,col:null},defaults:{table2:null,col:null}},'note':{name:function(atts){return'Note';},description:function(atts){return'';},self_closing:false,attributes:{type:null},required:{},defaults:{}},'sel':{name:function(atts){return'Select Rows';},description:function(atts){return atts.value;},self_closing:true,attributes:{value:null,spflag:null,keeporder:null,expand:null},required:{value:null},defaults:{value:null}},'sort':{name:function(atts){return'Sort';},description:function(atts){return'Column '+atts.col+('dir'in atts?' '+atts.dir.toUpperCase():'');},self_closing:true,attributes:{col:null,dir:null},required:{col:null},defaults:{col:null}},'tabu':{name:function(atts){return'cbreaks'in atts?'Cross Tabulation':'Tabulation';},description:function(atts){return('cbreaks'in atts)?'Group By '+atts.breaks+' VS '+atts.cbreaks:('breaks'in atts)?'Group By '+atts.breaks:'';},self_closing:false,attributes:{label:null,breaks:null,cbreaks:null,clabels:null},required:{},defaults:{breaks:null}},'tcol':{name:function(atts){return'Summary';},description:function(atts){return atts.fun+' '+atts.source;},self_closing:true,attributes:{name:null,source:null,fun:null,weight:null,label:null,format:null},required:{source:null,fun:null},defaults:{source:null,fun:null}},'willbe':{name:function(atts){return'New Column';},description:function(atts){return(('label'in atts)?atts.label:atts.name)+': '+atts.value;},self_closing:true,attributes:{name:null,value:null,spflag:null,label:null,format:null},required:{name:null,value:null},defaults:{name:null,value:null}}};this.tag_to_obj=function(tag){var code=tag;var tag_name=code.match(/^<(\S+)/)[1];tag_name=tag_name.replace('>','');code=code.replace('<','');var self_closing=!!(code.match(/[\/]?>$/).first().length-1);code=code.replace(/[\/]?>$/,'').replace(tag_name,'');var key_vals=code.match(/(\w+)\=(\".*?\")/g)||[];key_vals=key_vals.map(function(key_val){var match=key_val.match(/(\w+)\=\"(.+)??\"/);return{key:match[1],value:match[2]||''};});var obj={name:tag_name,attributes:{},self_closing:self_closing};key_vals.each(function(key_val){obj.attributes[key_val.key]=key_val.value;});return obj;};this.obj_to_tag=function(obj){var tag='<'+obj.name;$H(obj.attributes).each(function(att){tag+=' '+att.key+'="'+att.value+'"';});tag+=('self_closing'in obj?obj.self_closing:macro.tags[obj.name].self_closing)?' />':'>';return tag;};this.obj_to_eng=function(obj){return{name:macro.tags[obj.name].name(obj.attributes),description:macro.tags[obj.name].description(obj.attributes)};};this.tag_to_eng=function(tag){return macro.obj_to_eng(macro.tag_to_obj(tag));};};TenTen.UQM=new function(){this.libs={};this.uqs={};};TenTen.UQ=function(code){var UQM=TenTen.UQM;var uq=this;var new_system='App'in TenTen;var microsite=!!UQM.microsite;var tab=new_system?TenTen.App.tabpanel.getActiveTab():null;this.prefix=tab?tab.id.replace('tab_',''):'t';this.height=function(){return $(uq.prefix+'_page_content').getHeight();};this.width=function(){return $(uq.prefix+'_page_content').getWidth();};this.unload=function(){};var unload_method=function(){uq.unload();};if(new_system)
tab.on('beforedestroy',unload_method);else
Event.observe(window,'unload',function(){uq.unload();});if(TenTen.API.debug)UQM.uqs[this.prefix]=this;var load_worksheet=function(params){var cred=TenTen.API.credentials(),min_params={'uid':cred.uid.value,'sid':cred.sid.value,'pswd':cred.pswd.value,'form':'t'+UQM.tcnt++,'action':'opennew','goto':UQM.current_id,'dwidth':100,'dheight':100,'nohead':1,'page':UQM.page++},url=TenTen.API.url.split('?')[0];TenTen.API.getuser({handler:function(result){var no_errors=0===+result.rc.value;if(!no_errors)return;TenTen.API.ajax(url,{add_trans_id:true,parameters:Object.toQueryString(min_params),success_handler:function(result){['action','goto','page'].each(function(key){delete min_params[key];});min_params.page=UQM.page;for(var key in min_params)params[key]=min_params[key];external_download(params);}});}});};var external_download=function(params){var cred=TenTen.API.credentials();var frame_name='downframe';var form_name='downform';var form,frame,url=TenTen.API.url.split('?')[0];form=$(form_name)||new Element('form',{id:form_name,action:url+'?sid='+cred.sid.value,method:'post',target:frame_name});frame=$(frame_name)||new Element('iframe',{id:frame_name,name:frame_name,style:'display: none;visibility: hidden;z-index: -1;'});form.innerHTML='';params.dheight=0;params.dwidth=0;for(var key in params){if(Object.isArray(params[key])){params[key].each(function(item){form.appendChild(new Element('input',{name:key,type:'hidden',value:item}));});}else{form.appendChild(new Element('input',{name:key,type:'hidden',value:params[key]}));};};if(!$(frame_name))document.body.appendChild(frame);if(!$(form_name))document.body.appendChild(form);form.submit();};this.load=function(paths,callback){if(paths.length===0)return callback();var js_libs_loaded=0;var extension=function(str){return str.match(/\.(\w*)$/)[1].toLowerCase();};var js_paths=paths.filter(function(path){return extension(path)==='js'});var css_paths=paths.filter(function(path){return extension(path)==='css'});var head=$$('head')[0];js_paths.each(function(path){if(TenTen.API.debug)
if(path in UQM.libs)delete UQM.libs[path];if(path in UQM.libs&&(UQM.libs[path].loading||UQM.libs[path].loaded)){if(UQM.libs[path].loaded){js_libs_loaded+=1;if(js_libs_loaded===js_paths.length)return callback();};return;};var js_path=path+(path.indexOf('?')>-1?'&':'?');js_path+='random='+Math.random();var tag=new Element('script',{src:js_path,type:'text/javascript'});UQM.libs[path]={loaded:false,loading:true};var tag_load=function(event){if('readyState'in tag&&tag.readyState==='loading')return;if(UQM.libs[path].loaded)return;var loaded=event.type==='load'||('readyState'in this)&&/complete|loaded/.test(this.readyState);if(loaded){UQM.libs[path].loaded=true;UQM.libs[path].loading=false;js_libs_loaded+=1;if(js_libs_loaded===js_paths.length)return callback();};};tag.observe('readystatechange',tag_load);tag.observe('load',tag_load);tag.observe('error',TenTen.API.error_log.curry({name:'LoadError',message:path+' failed to load.'}));head.insert(tag);});css_paths.each(function(path){if(TenTen.API.debug){if(path in UQM.libs)delete UQM.libs[path];$$('link[href='+path+']').invoke('remove');};if(path in UQM.libs)return;var css_path=path+(path.indexOf('?')>-1?'&':'?');css_path+='random='+Math.random();var tag=new Element('link',{type:'text/css',href:css_path,rel:'stylesheet'});UQM.libs[path]={loaded:true,loading:false};head.insert(tag);});};this.spinner_on=function(){if(!tab)return;tab.setIconClass('app_icon_spinner');};this.spinner_off=function(){if(!tab)return;tab.setIconClass('app_icon_uploaded_query');};this.multiquery_submit=function(config){if(!(new_system||microsite))
return alert('This report has failed. Please contact support@1010data.com for further assistance.');if(!('display'in config.params)||!(config.params.display in{xlsx:null,data:null}))
return alert('This report has failed. Please contact support@1010data.com for further assistance.');var loading=function(post_id){uq.spinner_on();if('handlers'in config&&'loading'in config.handlers)config.handlers.loading();};var loaded=function(){uq.spinner_off();if('handlers'in config&&'loaded'in config.handlers)config.handlers.loaded();};var error_handler=function(err){uq.spinner_off();return('handlers'in config&&'error'in config.handlers)&&!!config.handlers.error(err)||false;};var spec_template=new Template('<region>#{title}#{subtitle}#{footnote}<dest>#{destination}</dest><name>#{name}</name><ops>#{macro}</ops></region>'),optional_tags=['title','subtitle','footnote'].inject({},function(acc,tag){acc[tag]=new Template('<'+tag+'>#{'+tag+'}</'+tag+'>');return acc;});var queries=config.queries.map(function(query){var values={destination:query.destination,name:query.table,macro:query.macro};$H(optional_tags).each(function(tag){if(!(tag.key in query))return values[tag.key]='';var value={};value[tag.key]=query[tag.key];values[tag.key]=tag.value.evaluate(value)});query.spec=spec_template.evaluate(values);return query;});var break_on_error='break_on_error'in config?config.break_on_error:true;var submit=function(result){var params=function(starting_obj){var temp=starting_obj||{};temp.action='query';temp.spec='<opslist>'+queries.map(function(query){return query.spec;}).join('')+'</opslist>';['subtitle','title','footnote','templatefile','hidetemplatecols','display'].each(function(key){if(key in config.params)temp[key]=config.params[key];});if(temp.hidetemplatecols)temp.hidetemplatecols=temp.hidetemplatecols.join(',');if(!temp.display)temp.display='data';return temp;};var environment=new_system?'new_gui':microsite?'external':'old_gui';if(!environment)return;switch(environment){case'new_gui':var update_params=params(TenTen.App.getMinParams(uq.prefix));if(update_params.display!=='data'){loaded();return TenTen.App.downloadFileWithParams(update_params);}else{var new_tab_queue=uq.new_tab_queue=new TenTen.Util.Queue();var tab_loaders=queries.map(function(query,index){return function(){var query_result=result.responses.value[index];if(+query_result.rc.value)return new_tab_queue.shift();delete update_params.spec;update_params.spec='<name>'+query.table+'</name><ops>'+query.macro+'</ops>';['subtitle','title','footnote','display'].each(function(key){if(key in query)update_params[key]=query[key];});TenTen.API.gettab({name:query.table,handler:function(result){var no_errors=0===+result.rc.value;if(!no_errors){var error={name:'UQError',message:result.msg.value};TenTen.API.error_log(error);return error_handler(error);};var tab=TenTen.App.newBlankTab(result.tab.attributes,true).id.replace('tab_','');update_params.form=tab;TenTen.App.updateTabWithParams(tab,update_params,new_tab_queue.shift);}});};});tab_loaders.push(function(){loaded();new_tab_queue.shift();});new_tab_queue.bulk(tab_loaders);};break;case'external':var update_params=params();if(update_params.display!=='data'){loaded();return load_worksheet(update_params);};break;};};var multiquery_handler=function(result){var no_errors=0===+result.rc.value;if(!no_errors){var error={name:'UQError',message:result.msg.value};TenTen.API.error_log(error);if(!error_handler(result))return;};submit(result);};if(new_system)TenTen.App.progress.delay(1);TenTen.API.multiquery({queries:queries,handler:multiquery_handler,loading:loading,break_on_error:break_on_error,suppress_busy:true});};this.submit=function(config){var loading=function(post_id){uq.spinner_on();if('handlers'in config&&'loading'in config.handlers)config.handlers.loading(post_id);};var loaded=function(){uq.spinner_off();if('handlers'in config&&'loaded'in config.handlers)config.handlers.loaded();};var error_handler=function(err){uq.spinner_off();if('handlers'in config&&'error'in config.handlers)config.handlers.error(err);};var new_tab='new_tab'in config?config.new_tab:false;var table,macro,spec;if('spec'in config.params){spec=config.params.spec;table=spec.match(/\<name\>([\s\S]*)\<\/name\>/i)[1];macro=spec.match(/\<ops\>([\s\S]*)\<\/ops\>/i)[1];}else{if('macro'in config.params&&'table'in config.params){table=config.params.table;macro=config.params.macro;spec='<name>'+table+'</name><ops>'+macro+'</ops>';}else{var error={name:'UQError',message:'Either config.params.spec or BOTH config.params.macro and config.params.table must be specified.'};TenTen.API.error_log(error);return error_handler(error);};};var query_handler=function(result){var no_errors=result.rc.value-0===0;if(!no_errors){var error={name:'UQError',message:result.msg.value};TenTen.API.error_log(error);return error_handler(error);};var params=function(starting_obj){var temp={};if(starting_obj)temp=starting_obj;temp.action='query';temp.spec=spec;if('subtitle'in config.params)temp.subtitle=config.params.subtitle;if('title'in config.params)temp.title=config.params.title;if('footnote'in config.params)temp.footnote=config.params.footnote;if('display'in config.params)
temp.display=config.params.display;else
temp.display='data';return temp;};var environment=new_system?'new_gui':microsite?'external':'old_gui';if(!environment)return;switch(environment){case'new_gui':var update_params=params(TenTen.App.getMinParams(uq.prefix));if(update_params.display!=='data'){loaded();return TenTen.App.downloadFileWithParams(update_params);};if(new_tab){return TenTen.API.gettab({name:table,handler:function(result){var no_errors=result.rc.value-0===0;if(!no_errors){var error={name:'UQError',message:result.msg.value};TenTen.API.error_log(error);return error_handler(error);};loaded();var tab=TenTen.App.newBlankTab(result.tab.attributes,true).id.replace('tab_','');update_params.form=tab;TenTen.App.updateTabWithParams(tab,update_params);}});};loaded();uq.unload();tab.un('beforedestroy',unload_method);TenTen.App.updateTabWithParams(uq.prefix,update_params,function(){});break;case'old_gui':var uq_params=params();var form=$(document.t);$H(uq_params).each(function(obj){form.select('input[name='+obj.key+']').invoke('remove');});var action_qs=form.getAttribute('action').toQueryParams();action_qs.rndm=Math.random();form.setAttribute('action',form.getAttribute('action').match(/(.+)(?=\?)/)[1]+'?'+Object.toQueryString(action_qs));$H(uq_params).each(function(obj){form.appendChild(new Element('input',{type:'hidden',name:obj.key,value:obj.value}));});loaded();form.submit();break;case'external':var uq_params=params();loaded();var content=$(UQM.microsite.content);var dimensions=content.getDimensions();if(uq_params.display!=='data')return load_worksheet(uq_params);content.innerHTML='<div id="microsite_table"></div>';TenTen.Util.DOM.find({id:'microsite_table',handler:function(element){new TenTen.Grid({table:table,macro:macro,element:'microsite_table',height:500,width:dimensions.width-20});}});return;break;};};var progress=function(){if(new_system)TenTen.App.progress.delay(1);TenTen.API.queue.shift();};var query=function(){TenTen.API.query({table:table,macro:macro,handler:query_handler,suppress_busy:true});TenTen.API.queue.shift();};loading();TenTen.API.queue.bulk([progress,query]);};var initialize=function(){code.apply(uq,[]);};if(new_system||microsite)
initialize();else
Event.observe(window,'load',initialize);};TenTen.Widget=new function(){var resource_path=TenTen.path+'/resources/Widget/';this.TextField=function(config){config.handler=config.handler||function(){};config.offset=config.offset||{left:0,top:0};config.id=config.id||'TenTenWidgetTextField'+(new Date()).getTime();config.width=config.width||250;config.height=config.height||35;var close=function(event){if(event)event.stop();form.remove();};var submit=function(event){config.handler(input.value);close();}
var form=new Element('form',{method:'post',action:'.'}).observe('submit',function(event){event.stop();return false;});var div=new Element('div',{id:config.id,'class':'widget_textfield'}).setStyle({width:config.width+'px',height:config.height+'px',position:'absolute',top:config.offset.top+'px',left:config.offset.left+'px',zIndex:'5'});var inner=new Element('div').setStyle({position:'absolute',top:'2px',left:'4px'});var input=new Element('input',{type:'text',value:config.text||'','class':'widget_textfield_input',size:config.size&&config.size.toString()||'25'}).observe('keydown',function(event){if(event.keyCode===Event.KEY_ESC)close();if(event.keyCode===Event.KEY_RETURN)submit();});var button=new Element('button',{type:'button','class':'widget_textfield_button'}).update(config.button||'Go.').observe('click',submit);var close_link=new Element('a',{href:'#','class':'widget_textfield_close'}).update('X').observe('click',close).setStyle({position:'absolute',top:'1px',right:'3px'});inner.appendChild(input);inner.appendChild(button)
div.appendChild(close_link);div.appendChild(inner);form.appendChild(div);document.body.appendChild(form);input.focus();};this.Bar=function(config){var graphic_cache=null;var graphic=function(name){if(!graphic_cache){graphic_cache=new Element('img',{src:resource_path+'images/bar-blank.png','class':'widget_bar_graphic'});};var img=graphic_cache.cloneNode(false);return img;};var random_color=function(){var rand=function(){return(256*Math.random()).floor().toString()};return['rgb(',[rand(),rand(),rand()].join(','),')'].join('');};var element=$(config.element).update('');var dimensions=element.getDimensions();var border=config.border||0;var total=config.total;var sort='sort'in config?config.sort:true;var stack='stack'in config?config.stack:true;var parts=config.parts;parts.each(function(part){part.width=((part.value/total)*100).round();});if(sort)parts=parts.sort(function(a,b){return a.value-b.value;}).reverse();if(stack)element.absolutize();parts.each(function(part){var img=graphic();var style={width:part.width+'%',height:dimensions.height-(border*2)+'px',backgroundColor:part.color||random_color()};if(stack){style.position='absolute';style.left='0px';style.top='0px';};img.setStyle(style);element.appendChild(img);});this.destroy=function(){element.update('');};};this.Progress=function(config){var element=$(config.element);var dimensions=element.getDimensions();element.setStyle({textAlign:'center',lineHeight:dimensions.height-(2*(config.border||0))+'px',color:'white'});var part={value:config.value||0,color:config.color};var bar={};var draw=function(){if('destroy'in bar)bar.destroy();bar=new TenTen.Widget.Bar({element:config.element,parts:[part],border:config.border,total:100});var span=new Element('span',{style:'z-index: 9999;'}).update(part.value+'%');element.insert(span);span.absolutize().setStyle({top:'0px'});};this.update=function(number){part.value=number;draw();};draw();};this.Login=function(config){var element=$(config.element);var login=this,api=TenTen.API,state={},handler=config.handler,obey_error_40=!!config.obey_error_40;var load_state=function(){state=(TenTen.Util.Cookie.get('login_state')||'{}').evalJSON();};var save_state=function(values){TenTen.Util.Cookie.set('login_state',Object.toJSON(values),30,'.1010data.com');};this.hide=function(){element.hide();};this.show=function(){element.show();};var onload=config.onload||function(){};var initialize=function(){load_state();var show_kill_select=!!config.show_kill_select
default_no_kill=!!config.default_no_kill,show_host=!!config.show_host,show_gw=!!config.show_gw
template=config.template||resource_path+'html/login.html';var html_specs=login.html_specs={width:config.width||300,spinner_src:resource_path+'images/login-spinner.gif',pfrom:config.pfrom||'home',domain:config.domain||document.location.hostname,homepage:config.homepage||document.location.pathname.replace(/^\//,''),dir:config.dir||0};if(config.postprocess)html_specs.postprocess=config.postprocess;['form_id','error','uid','pswd','host_row','host','gw_row','gw','kill_select_row','kill_select','kill_radio_1','kill_radio_2','kill_yes','kill_no','spinner','submit_button','submit_disabled','kill_links','default_kill'].each(function(key){html_specs[key]=api.uniq_id();});api.ajax(template,{method:'GET',success_handler:function(response,post_id,total_time){var html=new Template(response.responseText).evaluate(html_specs);var holder=new Element('div');holder.innerHTML=html;holder.select('#'+html_specs.spinner).invoke('hide');if(show_kill_select){holder.select('#'+html_specs.kill_radio_1).invoke('remove');holder.select('#'+html_specs.kill_radio_2).invoke('remove');}else{if(!default_no_kill){holder.select('#'+html_specs.kill_select_row).invoke('remove');}};if(!show_host)holder.select('#'+html_specs.host_row).invoke('remove');if(!show_gw)holder.select('#'+html_specs.gw_row).invoke('remove');if(html_specs.postprocess){holder.select('input[name=postprocess]')[0].value=html_specs.postprocess;}else{holder.select('input[name=postprocess]').invoke('remove');}
var show_error=function(message){$(html_specs.error).addClassName('widget_login_error_showing').update(message);};var hide_error=function(){$(html_specs.error).removeClassName('widget_login_error_showing').update('');};element.innerHTML=holder.innerHTML;TenTen.Util.DOM.find({id:html_specs.form_id,handler:function(form){var submit_handler=function(event){if(event){event.stop();}else{var e=window.event;e.cancelBubble=true;e.returnValue=false;}
hide_error();var form_values=form.serialize(true);var login_params={},host=form_values.host,gw=form_values.gw;['uid','pswd','kill','pfrom','domain','homepage'].each(function(name){login_params[name]=form_values[name];});if(default_no_kill){if($('new_login').style.display!=='none'){login_params['kill']=this.id;}}
if(form_values.dir)login_params.dir=form_values.dir;if(form_values.postprocess)login_params.postprocess=form_values.postprocess;if(!login_params.uid||!login_params.pswd)return show_error('Please enter valid credentials.');api.login({host:host,gw:gw,params:login_params,obey_error_40:obey_error_40,loading:function(){hide_error();if($(html_specs.spinner))$(html_specs.spinner).show();$(html_specs.pswd).blur();if($(html_specs.submit_disabled)){$(html_specs.submit_disabled).show();$(html_specs.submit_button).hide();}else{if($(html_specs.submit_button))$(html_specs.submit_button).disable();};},handler:function(result){var no_errors=0===+result.rc.value;if($(html_specs.submit_disabled)){$(html_specs.submit_disabled).hide();$(html_specs.submit_button).show();}else{if($(html_specs.submit_button))$(html_specs.submit_button).enable();};if($(html_specs.spinner))$(html_specs.spinner).hide();if(!no_errors){if(5===+result.rc.value){$('new_login').show();}
else{return show_error(result.msg.value);}}else{state.kill=login_params.kill;if(host)state.host=host;if(gw)state.gw=gw;save_state(state);if(handler)return handler(result.location.value);document.location.href=result.location.value;};}});};if(show_kill_select){if('kill'in state){$A($(html_specs.kill_select).options).each(function(option){if(option.value===state.kill)option.selected='selected';});}}else if(default_no_kill){$(html_specs.default_kill).value='no';}else{if('kill'in state&&state.kill==='yes'){$(html_specs.kill_yes).checked='checked';}else{$(html_specs.kill_no).checked='checked';}};if(show_host&&'host'in state)
$A($(html_specs.host).options).each(function(option){if(option.value===state.host)option.selected='selected';});if(show_gw&&'gw'in state)
$A($(html_specs.gw).options).each(function(option){if(option.value===state.gw)option.selected='selected';});form.observe('submit',submit_handler);$('possess').onclick=submit_handler;$('yes').onclick=submit_handler;onload();}});}});};initialize();};};TenTen.Editor=function(element){Position.includeScrollOffsets=true;this.element=$(element);this.name=this.element.id;this.code=function(){return this.element.select('div.qe_root input[type=hidden]').pluck('value').join('\n');}.bind(this);this.edit=false;var all_accepts=[];this.save=function(){all_accepts.each(function(fn){fn();});};var editor=this;var root=this.element.select('div.qe_root').first().makePositioned();var resource_path=TenTen.path+'/resources/Editor/';var root_tags=$H(TenTen.Macro.tags).map(function(item){return item.first();}).filter(function(tag){return!(tag in{note:'','break':'',tcol:''});});var tabu_tags=['break','tcol'];var allowed_tags={'break':tabu_tags,colord:root_tags,link:root_tags,sel:root_tags,sort:root_tags,tabu:root_tags,tcol:tabu_tags,willbe:root_tags};var insertable_tags={tabu:'',link:''};var images={'accept':'accept.png','add':'add.png','blank':'blank.png','cancel':'cross.png','delete':'delete.png','edit':'edit.png','minus':'minus.png','plus':'plus.png','spinner':'spinner.gif'};var indent=25;var levels=this.element.select('div[class*=qe_level]').map(function(node){return node.className.match(/level(\d+)/)[1]-0;}).max();var parents=$R(0,levels).map(function(level){return this.element.select('div[class=qe_level'+level+']').pluck('parentNode').map(function(element){return Object.toJSON({id:element.id,level:level});}).uniq();}.bind(this)).flatten().map(function(obj){eval('var o = '+obj+';');return o;});$H(images).each(function(image){var temp_img=new Image();temp_img.src=resource_path+'images/'+image.value;});var image_cache={};var image=function(name,alt){var img;if(typeof image_cache[name]==='undefined'){image_cache[name]=new Element('img',{src:resource_path+'images/'+images[name],alt:alt,'class':'qe_edit_img'});};img=image_cache[name].cloneNode(false);if(typeof alt!=='undefined')img.alt=alt;return img;};var link=function(img,text,handler,do_not_highlight){var img=image(img,text);var img_link=(new Element('a',{href:'#',title:text})).observe('click',handler).insert(img);var text_link=(new Element('a',{href:'#',title:text})).observe('click',handler).insert(text);var div=new Element('div').observe('click',handler);if(!do_not_highlight){div.observe('mouseover',function(){div.addClassName('qe_menu_over');}).observe('mouseout',function(event){div.removeClassName('qe_menu_over');});};[img_link,'&nbsp;',text_link].each(function(content){div.insert(content);});return div;};var addnew_widget=function(tags,referent,tag,position,from_scratch_id){var div=new Element('div',{'class':'qe_addnew'});var select=new Element('select',{id:parent.id+'_select_addnew','class':'qe_input'});var option=document.createElement('option');option.innerHTML='Pick an action to add:';option.value='';select.appendChild(option);tags.each(function(tag){var option=document.createElement('option');option.innerHTML=TenTen.Macro.tags[tag].name({});option.value=tag;select.appendChild(option);});var accept_handler=function(event,callback){var tag_name=select.value;if(tag_name.length===0)return;var level=0;if(referent!==null){level=referent.className.split(' ').filter(function(cl){return cl.indexOf('qe_level')===0;}).first();level=level.replace('qe_level','')-0;};var index,id,children,referent_index;if(referent)referent_index=referent.id.match(/\_(\d+)$/,'')[1]-0;if(referent!==null&&position==='bottom'){level=level+1;children=referent.select('div.qe_level'+level);index=children.length?children.map(function(div){return div.id.match(/\_(\d+)$/).last()-0;}).max()+1:0;id=editor.name+'_level'+level+'_'+referent_index+'_'+index;}else{if(referent===null){children=editor.element.select('div.qe_level0');var children_indices=children.map(function(div){return div.id.match(/\_(\d+)$/).last()-0;});index=children_indices.length?children_indices.max()+1:0;id=editor.name+'_level0'+'_'+index;}else{children=level===0?editor.element.select('div.qe_level'+level):editor.element.select('div[id^='+referent.id.replace(/\_\d+$/,'')+']');index=children.map(function(div){return div.id.match(/\_(\d+)$/).last()-0;}).max()+1;id=level===0?editor.name+'_level'+level+'_'+index:editor.name+'_level'+level+'_'+referent_index+'_'+index;};};var new_tag={name:tag_name,attributes:{}};$H(TenTen.Macro.tags[tag_name].defaults).each(function(att){new_tag.attributes[att.first()]='';});new_tag=TenTen.Macro.obj_to_tag(new_tag);var div=new Element('div',{id:id,'class':'qe_level'+level,style:'position: relative'});var title=new Element('strong',{'class':'qe_title'});var description=new Element('span',{'class':'qe_desc'});var input=new Element('input',{type:'hidden',value:new_tag,id:id+'_value'});var contents=['\n',title,description,input];if(!TenTen.Macro.tags[tag_name].self_closing)
contents.push(new Element('input',{type:'hidden',value:'</'+tag_name+'>'}))
contents.each(function(content){div.insert(content);});var end_tag=false;if(referent&&position==='bottom'){end_tag=referent.select('input[type=hidden]').last().remove();};var insert_params={};insert_params[position]=div;(referent||root).insert(insert_params);if(end_tag)(referent||root).insert({bottom:end_tag});var make_sortable=false;(function(){var sortable_div=referent&&position==='bottom'?referent.id:referent?referent.parentNode.id:root.id;var finish=function(){Sortable.create(sortable_div,{scroll:editor.name,tag:'div',only:'qe_level'+level});initialize_line(div,null,div);if(referent)initialize_line(referent,null,null);};if(tag_name==='tabu')
make_sortable=finish;else
finish();if(typeof callback==='function')callback();}).defer();if($(this.parentNode))$(this.parentNode).remove();(function(){if(tag_name==='tabu'){select={value:'tcol'};position='bottom';referent=$(div.id);accept_handler(null,make_sortable);};}).defer();};var cancel_handler=function(event){event.stop();$(this.parentNode).remove();};var accept_button=new Element('input',{type:'button',value:'Add New Action'}).observe('click',accept_handler);var cancel_button=new Element('input',{type:'button',value:'Cancel'}).observe('click',cancel_handler);['Add a new line to your query or cancel.<br />',select,'<br />',accept_button,'&nbsp;',cancel_button].each(function(content){div.insert(content);});return div;};this.element.observe('submit',function(event){event.stop();return false;});parents.reverse().each(function(parent){var only='qe_level'+parent.level;return Sortable.create(parent.id,{scroll:editor.name,tag:'div',only:only});}.bind(this));var expand_handler=function(event){var collapse_text,collapse_link,collapse_img;collapse_text='minimize these statements';event.stop();var line=$(this.parentNode.parentNode);var level=line.className.split(' ').filter(function(cl){return cl.indexOf('qe_level')===0;}).first();level=level.replace('qe_level','')-0;var children=line.select('div.qe_level'+(level+1));children.invoke('show');collapse_img=image('minus',collapse_text);collapse_link=(new Element('a',{href:'#',title:collapse_text})).observe('click',collapse_handler).insert(collapse_img);$(this).insert({after:collapse_link});$(this).remove();};var collapse_handler=function(event){var expand_text,expand_link,expand_img;expand_text='expand these statements';if(event)event.stop();var line=$(this.parentNode.parentNode);var level=line.className.split(' ').filter(function(cl){return cl.indexOf('qe_level')===0;}).first();level=level.replace('qe_level','')-0;var children=line.select('div.qe_level'+(level+1));children.invoke('hide');expand_img=image('plus',expand_text);expand_link=(new Element('a',{href:'#',title:expand_text})).observe('click',expand_handler).insert(expand_img);$(this).insert({after:expand_link});$(this).remove();};var links=function(expandable,line_div){var arr_links=[];var menu_link,menu_text,menu_img,collapse_text,collapse_link,collapse_img;editor.edit=editor.edit||function(div){var menu_link=$(div).select('a.qe_links').first();menu_handler.apply(menu_link,['edit',null,div]);};var menu_handler=function(intercept,event,line_div){if(event)event.stop();editor.element.select('div.qe_menu').invoke('remove');var menu_arr=[];var line=(this.parentNode&&$(this.parentNode.parentNode))||line_div;var code=$(line.id+'_value').value;var tag=TenTen.Macro.tag_to_obj(code);var root_offset=root.cumulativeOffset();var offset=line.cumulativeOffset();offset={top:offset.top-root_offset.top+1,left:offset.left-root_offset.left+18};var edit_handler=function(){var first_attribute=false;var level=line.className.split(' ').filter(function(cl){return cl.indexOf('qe_level')===0;}).first();level=level.replace('qe_level','')-0;var span_text=line.select('span.qe_desc').first();var span_buttons=line.select('span.qe_links').first();[span_text,span_buttons].invoke('hide');var div_edit=new Element('div',{id:line.id+'_div_edit','class':'qe_edit',style:'margin-left: '+
(level*indent)+'px;'});var accept_handler=(function(div_holder,event){if(event)event.stop();var div_edit=$(div_holder.id+'_div_edit');if($(div_edit)===null)return;var attributes=div_edit.select('input.qe_final').inject({},function(acc,input){acc[input.id.replace(div_holder.id+'_input_','')]=input.value;return acc;});tag.attributes=attributes;span_text.update(TenTen.Macro.obj_to_eng(tag).description.escapeHTML());$(line.id+'_value').value=TenTen.Macro.obj_to_tag(tag);div_edit.remove();[span_text,span_buttons].invoke('show');}).curry(line);all_accepts.push(accept_handler);var cancel_handler=function(event){event.stop();div_edit.remove();[span_text,span_buttons].invoke('show');};var attribute_input=function(key,value){var span_attribute=new Element('span');var input=new Element('input',{id:line.id+'_input_'+key,value:value,type:'text','class':'qe_input qe_final x-form-text x-form-field'}).observe('keydown',function(event){if(event.keyCode===Event.KEY_RETURN)accept_handler(event);if(event.keyCode===Event.KEY_ESC)cancel_handler(event);});if(!first_attribute)first_attribute=input;var label=new Element('label',{'for':input.id,'class':'qe_label'}).update(key+':');var delete_link,delete_img,delete_text,delete_handler;delete_handler=function(event){event.stop();span_attribute.remove();var option=document.createElement('option');option.value=key;option.text=key;$(line.id+'_input_select_attribute').options.add(option);};delete_text='delete this attribute';delete_img=image('delete',delete_text);delete_link=new Element('a',{href:'#',title:delete_text}).observe('click',delete_handler).insert(delete_img);[label,'&nbsp;',input,'&nbsp;',delete_link,'<br />'].each(function(content){span_attribute.insert(content);});return span_attribute;};var edit_contents=$H(tag.attributes).inject([],function(acc,att){return acc.concat(new attribute_input(att.key,att.value));});var accept_cancel=function(){var accept_button,cancel_button;accept_button=new Element('input',{type:'button',value:'Accept Changes'}).observe('click',accept_handler);cancel_button=new Element('input',{type:'button',value:'Cancel Changes'}).observe('click',cancel_handler);var div_accept_cancel=new Element('div',{'class':'qe_accept_cancel'});[accept_button,'&nbsp;',cancel_button].each(function(content){div_accept_cancel.insert(content);});return div_accept_cancel;};var add_attribute=function(){var add_img,add_link,add_text;var span_add=new Element('span');var select;var add_handler=function(event){event.stop();var key=select.value;if(key.length===0)return;span_add.insert({before:new attribute_input(key,'')});(function(){$(line.id+'_input_'+key).focus();$(select).select('option[value='+key+']').first().remove();if(typeof select.options.remove!=='undefined'){select.options.add(new Element('option'));select.options.remove(select.options.length-1);};}).defer();};add_text='add attribute';add_img=image('add',add_text);add_link=(new Element('a',{href:'#',title:add_text})).observe('click',add_handler).insert(add_img);select=new Element('select',{id:line.id+'_input_select_attribute','class':'qe_input'});var option=document.createElement('option');option.innerHTML='Add Attribute:';option.value='';select.appendChild(option);$H(TenTen.Macro.tags[tag.name].attributes).each(function(att){var key=att.first();if(key in tag.attributes)return;var option=document.createElement('option');option.innerHTML=key;option.value=key;select.appendChild(option);});select.observe('change',add_handler);var label=new Element('label',{'for':select.id,'class':'qe_label'}).update(add_text+':');[select,'<br />'].each(function(content){span_add.insert(content);});return span_add;};edit_contents.push(add_attribute());edit_contents.push(accept_cancel());edit_contents.each(function(content){div_edit.insert(content);});span_text.insert({after:div_edit});(function(){if(first_attribute)first_attribute.focus();}).defer();};var delete_handler=function(){(function(){var confirm=window.confirm('Are you sure you want to delete this line?');if(!confirm)return;line.remove();}).delay(0.5);};var addnew_handler=function(position,expandable,tags){var div_addnew=new addnew_widget(tags,line,tag,position);div_addnew.id='addnew_'+line.id;if($(div_addnew.id))return;line.insert({after:div_addnew});};if(intercept){switch(intercept){case'edit':edit_handler();return;}};var menu_items=[{iconCls:'qe_icon_edit',text:'edit this line',handler:edit_handler},{iconCls:'qe_icon_add',text:'insert a new statement BEFORE this line',handler:addnew_handler.curry('before',expandable,allowed_tags[tag.name])},{iconCls:'qe_icon_add',text:'insert a new statement AFTER this line',handler:addnew_handler.curry('after',expandable,allowed_tags[tag.name])}];if(tag.name in insertable_tags){menu_items.push({iconCls:'qe_icon_add',text:'insert a new statement INTO this line',handler:addnew_handler.curry('bottom',expandable,tag.name==='tabu'?tabu_tags:root_tags)});};menu_items.push({iconCls:'qe_icon_delete',text:'delete this line',handler:delete_handler});var menu=new Ext.menu.Menu({shadow:false,items:menu_items});menu.show(this);};collapse_text='minimize these statements';menu_text='show options for this line';if(expandable){collapse_img=image('minus',collapse_text);collapse_link=(new Element('a',{href:'#',title:collapse_text})).observe('click',collapse_handler).insert(collapse_img);arr_links=[collapse_link,'&nbsp;'];}else{arr_links=[image('blank',''),'&nbsp;'];};menu_img=image('edit',menu_text);menu_link=(new Element('a',{href:'#',title:menu_text})).observe('click',function(event){event.stop();menu_handler.apply(this,[null,event]);}).insert(menu_img);arr_links=arr_links.concat([menu_link,'&nbsp;']);if(line_div)(function(){menu_handler.apply(menu_link,['edit',null,line_div]);}).delay(0.25);return arr_links;};var initialize_line=function(line,index,line_div){var tag=$(line.id+'_value').value;var eng_tag=TenTen.Macro.tag_to_eng(tag);var title=line.select('strong.qe_title').first();title.update('');var description=line.select('span.qe_desc').first();description.update('');var link_span=$('links_'+line.id)||new Element('span',{id:'links_'+line.id,'class':'qe_links'});link_span.update('');var level=line.className.split(' ').filter(function(cl){return cl.indexOf('qe_level')===0;}).first();level=level.replace('qe_level','')-0;var expandable=line.select('strong.qe_title').length>1;title.update(eng_tag.name+': ');description.update(eng_tag.description);line.insert({top:link_span});title.setStyle({marginLeft:level*indent+'px'});links(expandable,line_div).each(function(link){link_span.insert({bottom:link});});};var make_editable=function(){editor.edit(this.parentNode);};var descriptions=this.element.select('span.qe_desc');var titles=this.element.select('strong.qe_title');this.element.select('span.qe_links').invoke('remove');this.element.select('div.qe_edit').invoke('remove');this.element.select('div.qe_add_top').invoke('remove');descriptions.invoke('stopObserving','dblclick');titles.invoke('stopObserving','dblclick');titles.invoke('observe','dblclick',make_editable);descriptions.invoke('observe','dblclick',make_editable);descriptions.invoke('show');this.element.select('div.qe_root div[class*=qe_level]').each(initialize_line);var div_add_top=new Element('div',{'class':'qe_add_top'});var add_link=link('add','insert a new statement here',function(event){var tags=root_tags;event.stop();var id=editor.name+'level0_'+root.select('div.qe_level0').length;if($(id))return;var div_addnew=new addnew_widget(root_tags,null,'','top',id);div_addnew.id='addnew_'+editor.name+'level0_'+root.select('div.qe_level0').length;if($(div_addnew.id))return;root.insert({top:div_addnew});},true);add_link.insert({top:'&nbsp;'});add_link.insert({top:image('blank','')});div_add_top.insert(add_link);root.insert({before:div_add_top});};TenTen.GridStatic=new function(){var grid_static=this;grid_static.block_context_menu=false;grid_static.grids={};if(!TenTen.App){$(document).observe('contextmenu',function(event){if(grid_static.block_context_menu)event.stop();grid_static.block_context_menu=false;});};};TenTen.Grid=function(config){var grid=this,api=TenTen.API;grid.debug=api.debug;grid.bottom_scroll=function(){return bottom_scroll_exists};grid.row_count=function(){return row_count};grid.row_height=function(){return row_height};grid.header_height=function(){return header_height;};grid.element=$(config.element);if(grid.debug)TenTen.GridStatic.grids[config.element]=grid;(function(){var grid_dimensions=grid.element.getDimensions();grid.width=(config.width||grid_dimensions.width);grid.height=(config.height||grid_dimensions.height||500);})();var original_config=config,scrollbar_width=40,buffer_multiplier=3,min_col_width=30,gui_tab=config.tab||null,query_label=api.uniq_id(),fixed_container=new Element('div',{'class':'grid_fixed_container'}).hide(),fixed_container_width=0,fixed=new Element('div',{'class':'grid_fixed'}),normal_container=new Element('div',{id:api.uniq_id(),'class':'grid_normal_container'}),normal_container_width=grid.width-scrollbar_width,normal_id=api.uniq_id(),normal=new Element('div',{id:normal_id,'class':'grid_normal'}),scratch=new Element('div'),table=config.table,macro=config.macro||'',meta=grid.meta={},font_width=0,header_padding_width=11,header_border=3,header_height=39,bottom_scroll_exists=false,smallest_normal=150,default_col_count=1,row_count=40,row_height=0,row_padding=6+(Prototype.Browser.Gecko&&1||0),cbreaks_height=0,cbreaks_spacer_height=0,cbreaks_fixed_header_height=0,state=grid.state={current:{col_start:null,col_count:null,width_n:null,width_f:null},previous:{col_start:null,col_count:null,width_n:null,width_f:null},fixed_visible:false,element_width:null,drag:false,draggable:null},scroll_height=16,empty_function=function(){},onmacro=config.onmacro||empty_function,ondatamove=config.ondatamove||empty_function,load_row=config.row,load_col=config.column,loading=config.loading||empty_function,loaded=config.loaded||empty_function,onload=function(){if(typeof load_row!=='undefined')
grid.row_jump(load_row,function(){if(typeof load_col!=='undefined')grid.col_jump(load_col);});else
if(typeof load_col!=='undefined')grid.col_jump(load_col);if(config.onload)config.onload();},reverse_fixed=false;scratch.style.visibility='hidden';var grid_element_id=grid.element.id;grid.data={};grid.size=config.size||13;row_height=grid.size+row_padding;grid.resource_path=TenTen.path+'/resources/Grid/';grid.scrollbar=null;var images={'abs_handle':'abs_handle.png','auto_handle':'auto_handle.png','auto_marker':'auto_marker.png','menu':'menu.png','empty_square':'empty_square.png'};var cache_images=function(callback){var image_cache=$H(images),image_counter=0,cache_size=image_cache.size();image_cache.each(function(image){var temp_img=new Image();temp_img.onload=function(){image_counter+=1;if(image_counter===cache_size)callback();};temp_img.src=grid.resource_path+'images/'+image.value;});};var get_scrollbar_width=function(){return grid.scrollbar&&(grid.scrollbar.display_field<grid.meta.rows)&&scrollbar_width||0;};var image_gen=function(img,cls){var image_prefix='<img class="'+cls+'" src="'+grid.resource_path+'images/'+images[img]+'"';return function(alt){return image_prefix+' alt="'+(alt||'')+'"/>';};};var menu_image=image_gen('menu','grid_m_b');var empty_image=image_gen('empty_square','grid_m_e');var Status=function(config){var status=this;var parent=config.parent;parent.element.select('div.grid_status').invoke('remove');var offset=parent.element.positionedOffset();if(config.alternate_update){status.update=config.alternate_update;status.hide=config.alternate_update.curry('');return;};var width=300,height=32;var visible=true;var element=new Element('div',{'class':'grid_status'}).setStyle({position:'absolute',top:offset.top+'px',left:((parent.width-width)/2).floor()+offset.left+'px',width:width+'px',height:height+'px'});status.hide=function(){if(visible){element.hide();visible=false;};};status.update=function(str){if(!visible){element.show();visible=true;};element.innerHTML=str;};status.hide();parent.element.appendChild(element);};var scrolling_message=function(index){return'jumping to row '+TenTen.Util.Number.format(index+1)+' of '+TenTen.Util.Number.format(grid.data.meta.rows);};var Scrollbar=function(config){var scrollbar=this;var total_width=40;var parent=config.parent;parent.element.select('.grid_scroll').invoke('remove');var scroll=config.scroll||function(){};scrollbar.current_index=config.current_index;scrollbar.bounds=config.bounds;scrollbar.scroll_stop=config.scroll_stop;scrollbar.status_update=config.status_update||function(){};scrollbar.jump=config.jump;scrollbar.display_field=config.display_field;var total=config.rows;scrollbar.exists=scrollbar.display_field<total;if(!scrollbar.exists)return;var parent_offset=parent.element.positionedOffset();var scrollable_height=parent.height;var min_abs_height=25;var element=scrollbar.element=new Element('div',{'class':'grid_scroll'});element.unselectable='on';var ignore_click=false;var auto_handle_position=null,auto_handle_dimensions=null,auto_handle_offset=null;var abs_handle_position={top:0,left:3},abs_handle_dimensions=null,abs_handle_offset=null;var clone=null;scrollbar.hide=function(){element.hide();};scrollbar.show=function(){element.show();};var loop=new function(){var loop=this;var kill=false;var loop_interval=50;var remainder=0;var last_time=null;var scrolling=false;this.speed_limit=5;this.speed=0;var move_per_ms=function(interval,direction,ms_elapsed){remainder+=ms_elapsed/interval;var remainder_floor=remainder.floor();if(!remainder_floor||scrolling)return;var current_index=scrollbar.current_index();var new_index=Math.min(scrollbar.bounds.high,Math.max(scrollbar.bounds.low,current_index+remainder_floor*direction));remainder-=remainder_floor.abs();if(new_index!==current_index){scrolling=true;scroll(new_index,function(){scrollbar.set_abs(new_index);scrolling=false;});};};var render=[function(){},move_per_ms.curry(500),move_per_ms.curry(250),move_per_ms.curry(100),move_per_ms.curry(Math.min(1000/(scrollbar.bounds.high/7),100)),move_per_ms.curry(Math.min(1000/(scrollbar.bounds.high/3),100))];var loop_method=function(){var now=(new Date).getTime(),ms_elapsed=(now-(last_time||now));last_time=now;render[loop.speed.abs()](loop.speed/loop.speed.abs(),ms_elapsed);return kill||setTimeout(loop_method,loop_interval);};this.start=function(){kill=false;remainder=0;loop_method();};this.stop=function(){loop.speed=0;kill=true;setTimeout(scrollbar.scroll_stop,loop_interval);};};var abs_handle_atts={width:14,border:1};if(scrollbar.display_field)
abs_handle_atts.height=Math.max(((scrollbar.display_field/scrollbar.bounds.high)*scrollable_height).floor(),min_abs_height);var abs_handle=new Element('img',abs_handle_atts);var abs_handle_img=new Image();abs_handle_img.onload=function(){abs_handle.src=abs_handle_img.src;(function(){abs_handle_dimensions=abs_handle.getDimensions();abs_handle.setStyle({position:'absolute',left:abs_handle_position.left+'px',top:abs_handle_position.top+'px'});abs_handle_offset=abs_handle.viewportOffset();}).defer();};abs_handle_img.src=parent.resource_path+'images/'+images.abs_handle;var document_abs_mousemove,document_abs_mouseup;(function(){var delay_threshold=0.2;var delay_id=null,last_move=null;document_abs_mousemove=function(event){var y=Math.min(scrollable_height-abs_handle_dimensions.height,Math.max(0,event.pointerY()-parent.offset.top-(abs_handle_dimensions.height/2))).floor();var position=((y/(scrollable_height-abs_handle_dimensions.height))*scrollbar.bounds.high).floor();abs_handle_position.top=y;abs_handle.style.top=y+'px';if(last_move===position)return;scrollbar.status_update(scrolling_message(position));if(delay_id)window.clearTimeout(delay_id);last_move=position;delay_id=(function(){scrollbar.jump(position,function(){});}).delay(delay_threshold);};document_abs_mouseup=function(event){if(event)event.stop();last_move=null;setTimeout(function(){ignore_click=false;},50);Event.stopObserving(document,'mousemove',document_abs_mousemove);Event.stopObserving(document,'mouseup',document_abs_mouseup);};})();abs_handle.observe('click',function(event){event.stop();});abs_handle.observe('mousedown',function(event){if(!event.isLeftClick())return;event.stop();ignore_click=true;Event.observe(document,'mousemove',document_abs_mousemove);Event.observe(document,'mouseup',document_abs_mouseup);});var auto_handle_marker=new Element('img',{src:parent.resource_path+'images/'+images.auto_marker});var auto_handle=new Element('img');var auto_handle_img=new Image();auto_handle_img.onload=function(){auto_handle.src=auto_handle_img.src;auto_handle_dimensions=auto_handle.getDimensions();auto_handle_position={top:((scrollable_height/2)-(auto_handle_dimensions.height/2)).floor(),left:22};auto_handle.setStyle({position:'absolute',width:'14px',left:auto_handle_position.left+'px',top:auto_handle_position.top+'px',zIndex:2});auto_handle_offset=auto_handle.viewportOffset();auto_handle_marker.setStyle({position:'absolute',left:auto_handle_position.left+'px',top:(auto_handle_position.top+(auto_handle_dimensions.height/2)).floor()+'px',zIndex:1});};auto_handle_img.src=parent.resource_path+'images/'+images.auto_handle;var document_auto_mousemove=function(event){var y=Math.min(scrollable_height-auto_handle_dimensions.height,Math.max(0,event.pointerY()-parent.offset.top-(auto_handle_dimensions.height/2))).floor();var speed=(loop.speed_limit*(y-auto_handle_position.top)/((scrollable_height/2)-(auto_handle_dimensions.height/2)));var sign=speed/speed.abs();if(speed)speed+=sign;loop.speed=sign>0?Math.min(speed.floor(),loop.speed_limit):Math.max(speed.ceil(),-(loop.speed_limit));auto_handle.style.top=y+'px';};var document_auto_mouseup=function(event){if(event)event.stop();auto_handle.style.top=auto_handle_position.top+'px';setTimeout(function(){ignore_click=false;},50);Event.stopObserving(document,'mousemove',document_auto_mousemove);Event.stopObserving(document,'mouseup',document_auto_mouseup);loop.stop();};auto_handle.observe('click',function(event){event.stop()});auto_handle.observe('mousedown',function(event){if(!event.isLeftClick())return;event.stop();ignore_click=true;Event.observe(document,'mousemove',document_auto_mousemove);Event.observe(document,'mouseup',document_auto_mouseup);loop.start();});scrollbar.set_abs=function(index){var y=Math.min(Math.max(((index/scrollbar.bounds.high)*(scrollable_height-abs_handle_dimensions.height)).ceil(),0),scrollable_height-abs_handle_dimensions.height);abs_handle_position.top=y;abs_handle.style.top=abs_handle_position.top+'px';};scrollbar.reorient=function(parent_width,parent_height){if(parent_width)parent.width=parent_width;if(parent_height)parent.height=parent_height;if(scrollbar.display_field>=total)return parent.element.select('.grid_scroll').invoke('remove');element.setStyle({left:(parent.width-total_width)+'px',height:parent.height+'px'});scrollable_height=parent.height;abs_handle_atts.height=Math.max(((scrollbar.display_field/scrollbar.bounds.high)*scrollable_height).floor(),min_abs_height);if(abs_handle_dimensions)abs_handle_dimensions.height=abs_handle_atts.height;abs_handle.style.height=abs_handle_atts.height+'px';};element.appendChild(auto_handle_marker);element.appendChild(auto_handle);element.appendChild(abs_handle);element.observe('click',function(event){event.stop();if(ignore_click)return ignore_click=false;document_abs_mousemove(event);document_abs_mouseup(null);});element.setStyle({position:'absolute',left:(parent.width-total_width)+'px',height:parent.height+'px',width:(total_width/2).floor()+'px'});abs_handle.unselectable='on';auto_handle.unselectable='on';parent.element.appendChild(element);};var update_state=function(config){var name;for(name in state.current)
state.previous[name]=state.current[name];for(name in config)
if(name in state.current)state.current[name]=config[name]};var update_segments=function(){if(state.current.width_n!==state.previous.width_n)
normal.style.width=state.current.width_n+'px';if(state.current.width_f){var new_fixed_container_width=Math.min(state.current.width_f,original_config.width-Math.min(smallest_normal,state.current.width_n)-get_scrollbar_width());if(fixed_container_width!==new_fixed_container_width){fixed_container_width=new_fixed_container_width;fixed_container.style.width=fixed_container_width+'px';};if(!state.fixed_visible){fixed_container.show();state.fixed_visible=true;};}else{if(state.fixed_visible){fixed_container.hide();state.fixed_visible=false;};};state.previous.width_n=state.current.width_n;state.previous.scan_width_n=grid.data.cols.normal.inject([],function(acc,x,i){acc.push(i&&acc.last()+x.meta.width||x.meta.width);return acc;});state.previous.width_f=state.current.width_f;state.previous.scan_width_f=grid.data.cols.fixed.inject([],function(acc,x,i){acc.push(i&&acc.last()+x.meta.width||x.meta.width);return acc;});};var process_display=function(display){if(typeof display==='object')return display;return display.split(';').inject({},function(acc,str){if(str.length===0)return acc;var keyval=str.split(':');acc[keyval[0]]=keyval[1];return acc;});};var process_data=function(config,result){var query=config.query;if(0!==+result.rc.value)return data_error(result,'process_data');var data=config.spoofed?result.json.value:eval('('+result.json.value+')');if(!config.buffer)update_state(config);var buffer={meta:{row_start:query.row_start,rows:meta.rows,row_count:result.numrows.value-0},cols:{fixed:[],normal:[]}};var pre_cols=[],post_cols=[],fixed_length=grid.data.cols.fixed.length,meta_length=meta.cols.length,normal_length=grid.data.cols.normal.length,lcv,data_length=data.cols.length,local_index;for(lcv=0;lcv<data_length;lcv+=1)
for(var data_lcv=0;data_lcv<data.cols[lcv].data.length;data_lcv+=1)
data.cols[lcv].data[data_lcv]=data.cols[lcv].data[data_lcv].trim();for(lcv=0;lcv<fixed_length;lcv+=1){local_index=meta.fixed_indices[lcv];if('total'in data.cols[local_index].meta)meta.cols[lcv].total=data.cols[local_index].meta.total.trim();data.cols[local_index].meta=meta.cols[lcv];buffer.cols.fixed.push(data.cols[local_index]);};for(lcv=0;lcv<fixed_length;lcv+=1)data.cols.splice(meta.fixed_indices[lcv]-lcv,1);data_length=data.cols.length;if(query.col_count){for(lcv=fixed_length;lcv<query.col_start+fixed_length;lcv+=1)
pre_cols.push({data:[],meta:{}});for(lcv=fixed_length+query.col_start+query.col_count;lcv<meta_length;lcv+=1)
post_cols.push({data:[],meta:{}});buffer.cols.normal=pre_cols.concat(data.cols).concat(post_cols);}else{buffer.cols.normal=data.cols;};for(lcv=0;lcv<normal_length;lcv+=1){if('total'in buffer.cols.normal[lcv].meta)
meta.cols[lcv+fixed_length].total=buffer.cols.normal[lcv].meta.total;buffer.cols.normal[lcv].meta=meta.cols[lcv+fixed_length];};if(meta.cbreaks)buffer.cols.fixed[fixed_length-1].meta.cbreaks=true;if(config.buffer)
buffers[config.buffer]=buffer;else
grid.data=buffer;config.handler();};var data_error=function(result,label){throw{name:'GridError',message:'request made by ['+label+'] received a result with rc: '+result.rc.value+' and msg: '+result.msg.value};};var find_row=function(obj){var expression=obj.expression,direction=obj.direction,row_index=obj.row_index,col_index=obj.col_index;grid.status.update('searching...');get_datum(row_index,col_index,function(raw_value){api.findrow({row:row_index,exp:(new Template(expression)).evaluate({raw_value:raw_value}),direction:direction,handler:function(result){if(0!==+result.rc.value)return data_error(result,'findrow');var new_row=+result.row.value;if(new_row<0)return grid.status.hide();grid.status.update(scrolling_message(new_row));grid.scrollbar.jump(new_row,function(){grid.status.hide.delay(0.5);if(grid.scrollbar.set_abs)grid.scrollbar.set_abs.curry(new_row).delay(0.25);});}});});};var get_datum=function(x,y,callback){api.querydata({loading:loading,handler:function(result){loaded();if(0!==+result.rc.value)return data_error(result,'get_datum');callback(eval('('+result.json.value+')').cols[0].data[0]);},suppress_busy:true,rows:{from:x,to:x},cols:[y],format:{attributes:{type:'json',values:'raw'}},macro:macro,name:table});};var get_data=function(config){var query={col_start:state.current.col_start=config.col_start||0,col_count:state.current.col_count=Math.min(Math.max(config.col_count||default_col_count,default_col_count),meta.cols.length),cols:[],row_start:Math.max(config.row_start||0,0),row_count:row_count*buffer_multiplier};var row_from=query.row_start+1,row_to=Math.max(row_from,Math.min(query.row_start+query.row_count,meta.rows));var col_from=query.col_start+1,col_to=Math.max(query.col_start+query.col_count,1);var fixed_length=grid.data.cols.fixed.length,normal_length=grid.data.cols.normal.length;for(var lcv=0;lcv<fixed_length;lcv+=1)query.cols.push(lcv+1);if(normal_length)for(lcv=col_from;lcv<col_to+1;lcv+=1)query.cols.push(lcv+fixed_length);api.getdata({label:query_label,suppress_busy:true,rows:{from:row_from,to:row_to},format:{attributes:{type:'json',values:'formatted'}},cols:query.cols,loading:loading,handler:function(result){loaded();process_data({handler:config.handler,buffer:config.buffer,query:query},result);}});};var calculate_font=function(callback){var chars=100;var span=new Element('span',{'class':'grid_d',style:'padding: 0px; border: 0px'});span.innerHTML='A'.times(chars);scratch.appendChild(span);(function(){var dimensions=span.getDimensions();var width=dimensions.width;scratch.innerHTML='';font_width=(width/chars).ceil();callback();}).defer();};var stall_render_callback=false;var calculate_row_count=(function(){var header_style='span.grid_h_h',last_normal,header_config={name:normal_id,display:{},title:'Sample Header'},handler,called=0;var finish_calculating=function(){if((last_normal+1)&&$(normal_id+'_n_'+last_normal)){var last_header=$$('#'+normal_id+'_n_'+last_normal+' '+header_style);if(!last_header.length)return setTimeout(finish_calculating,25);header_height=last_header[0].offsetHeight;}else{if(called>2)stall_render_callback=true;};calculate_bottom_scroll_exists();var data_height=grid.height-header_height-((bottom_scroll_exists&&scroll_height||0));row_count=data_height/row_height;row_count=(row_count%1>0.9)?row_count.ceil():row_count.floor();if(grid.scrollbar){grid.scrollbar.display_field=row_count;grid.scrollbar.bounds.high=grid.data.meta.rows-row_count;};if(handler)handler();};return function(callback){called+=1;last_normal=grid.data.cols&&(grid.data.cols.normal.length-1);handler=callback;setTimeout(finish_calculating,100);}})();var render_cbreaks=function(){var cbreaks=meta.cbreaks.map(function(cbreak){return'<a href="#" title="'+(cbreak.title||cbreak.name)+'">'+cbreak.name
+'</a>&nbsp;'+((gui_tab||onmacro!==empty_function)&&menu_image(cbreak.name)||empty_image());}).join('&nbsp;&nbsp;<br />');return'<div class="grid_cbreaks">'+empty_image()+'&nbsp;&nbsp;<br />'+cbreaks
+'&nbsp;&nbsp;<a href="#" class="grid_r" unselectable="on" style="height: '+(cbreaks_height+cbreaks_spacer_height)+'px;">&nbsp;</a></div>';};var render_header=function(header,recalc_width,longest_string){if(recalc_width){var width=(7*Math.max(3,header.longest_header_line)).floor()+header_padding_width+16;if(!('width'in header)){if('width'in header.display){header.display.width=+header.display.width;width=Math.max(width,(Math.max(header.display.width,longest_string)*font_width)+header_padding_width);}else{width=Math.max(width,(longest_string*font_width)+header_padding_width);};}else{width=header.width;};header.width=Math.max(width,min_col_width);};var total_exists='total'in header,total_has_text=total_exists&&header.total||header.total===0,header_div,total_div,html=[];html.push('<span class="grid_h_h">');if(!header.total_col){html.push('<div ');if(header.fixed&&meta.cbreaks&&!header.total_col){if(cbreaks_fixed_header_height){html.push(' style="height:',cbreaks_fixed_header_height,'px;"');};html.push('class="grid_h_c">');}else{html.push('class="grid_h">');};var resizer_height=(header.fixed&&meta.cbreaks&&!header.total_col&&cbreaks_fixed_header_height)||(!total_exists&&header_height-header_border)||(header_height-row_height-header_border);resizer_height=Math.max(0,resizer_height);html.push(header.title,'&nbsp;&nbsp;<a href="#" class="grid_r" unselectable="on" style="height:',resizer_height,'px;">&nbsp;</a></div>');};if(total_exists){if(header.total_col)
html.push('<div class="grid_c_s" style="height:',cbreaks_spacer_height,'px;">',header.title,'</div>');if(total_has_text)
total_div=html.push('<div class="grid_t" title="',header.total,'">',header.total,'</div>');else
total_div=html.push('<div class="grid_t" title="">&nbsp;</div>');};html.push('</span>');return html.join('');};var render_data=function(data,col_index){var html=[],length=data.length,last=length-1,lcv,div,datum,row_start=state.current.row_start,first_col=col_index===0;for(lcv=0;lcv<length;lcv+=1){datum=data[lcv];if(lcv===last){if(first_col)
div='<div class="g_c_l g_c_f"';else
div='<div class="g_c_l"';}else{if(first_col)
div=((row_start+lcv)%2)?'<div class="g_c_f g_c_o"':'<div class="g_c_f g_c_e"';else
div=((row_start+lcv)%2)?'<div class="g_c_o"':'<div class="g_c_e"';};if(datum&&!/^\s+$/.match(datum)||datum===0)
html.push(div,' title="',datum,'">',datum,'</div>');else
html.push(div,' title="">&nbsp;</div>');};return html.join('');};var buffers=grid.buffers={start:null,end:null,retrieving:0,memo:{}};var populate_buffer=function(name,have,direction){if(have===1)return;if(have+direction<0||have+direction>grid.data.meta.rows)return;if(buffers.retrieving>1)return;var memo_name=name+'|'+have+'|'+direction;if(memo_name in buffers.memo)return;buffers.memo[memo_name]=null;buffers.retrieving+=1;get_data({label:'populate_buffer: '+memo_name,buffer:name,col_start:state.current.col_start,col_count:state.current.col_count,row_start:direction<0?have-(row_count*buffer_multiplier):have,handler:function(){buffers.retrieving-=1;delete buffers.memo[memo_name];}});};var reset_buffers=function(){buffers.start=null;buffers.end=null;};var splice_buffers=function(a,b,c){var local_index=a.index-a.buffer.meta.row_start,lcv;var length=null,buffer_length;var result=c||grid.data;if((a.buffer.meta.row_start+a.buffer.meta.row_count)>b.buffer.meta.row_start)return false;buffer_length=a.buffer.cols.fixed.length;for(lcv=0;lcv<buffer_length;lcv+=1){if((local_index<0)||(local_index>a.buffer.meta.row_count))return false;if(result.cols.fixed[lcv].data.length){result.cols.fixed[lcv].data=a.buffer.cols.fixed[lcv].data.slice(local_index).concat(b.buffer.cols.fixed[lcv].data.slice(0,local_index));};if(!length)length=Math.max(result.cols.fixed[lcv].data.length,length);};buffer_length=a.buffer.cols.normal.length;for(lcv=0;lcv<buffer_length;lcv+=1){if((local_index<0)||(local_index>a.buffer.meta.row_count))return false;if(result.cols.normal[lcv].data.length){result.cols.normal[lcv].data=a.buffer.cols.normal[lcv].data.slice(local_index).concat(b.buffer.cols.normal[lcv].data.slice(0,local_index));};if(!length)length=Math.max(result.cols.normal[lcv].data.length,length);};result.meta.row_start=a.index;result.meta.row_count=length;return true;};var longest=function(arr){var len=arr.length,longest=0;for(var lcv=0;lcv<len;lcv+=1)longest=Math.max(arr[lcv].length,longest);return longest;};var render=(function(){var fixed_div_prefix='<div id="'+normal_id+'_f_',normal_div_prefix='<div id="'+normal_id+'_n_',normal_children=null;return function(config){var first_load=!!config.first_load,redraw_fixed=!!config.redraw_fixed,start_index=config.start_index,recalc_width='recalc_width'in config?config.recalc_width:false,width_f=0,width_n=0,have={start:grid.data.meta.row_start};have.end=have.start+grid.data.meta.row_count;var show={start:typeof start_index==='number'?start_index:have.start};show.end=show.start+row_count;var local_index=show.start&&show.start-have.start,splice_success;if(buffers.start&&(show.start<have.start)){if(buffers.end){splice_success=splice_buffers({index:show.end+1,buffer:grid.data},{buffer:buffers.end},buffers.end);if(!splice_success)buffers.end=null;};splice_success=splice_buffers({index:show.start-(buffers.start.meta.row_count-(show.end-show.start+1)),buffer:buffers.start},{buffer:grid.data},grid.data);buffers.start=null;return render(config);};if(buffers.end&&(show.end>have.end)){if(buffers.start){splice_success=splice_buffers({index:show.start-grid.data.meta.row_count,buffer:buffers.start},{buffer:grid.data},buffers.start);};if(!splice_success)buffers.start=null;splice_success=splice_buffers({index:show.start,buffer:grid.data},{buffer:buffers.end},grid.data);buffers.end=null;return render(config);};if(!first_load&&((show.end>have.end&&have.end<grid.data.meta.rows)||show.start<have.start)){reset_buffers();return get_data({label:'render',col_start:state.current.col_start,col_count:state.current.col_count,row_start:show.start-row_count,handler:function(){render({redraw_fixed:true,recalc_width:false,start_index:show.start,handler:config.handler});}});};state.current.row_start=show.start;var i,data,col_styles,col_length,data_length,col,header,longest_string=0,slice,slice_length,extra_rows;var fixed_temp=meta.cbreaks&&[render_cbreaks()]||[];if(redraw_fixed){col_length=grid.data.cols.fixed.length;for(i=0;i<col_length;i+=1){col=grid.data.cols.fixed[i];col_styles='grid_col_f g_t_'+col.meta.type;if(col.meta.cbreaks)col_styles+=' grid_col_t';if(i===col_length-1)col_styles+=' grid_col_f_l';if(first_load)delete col.meta.width;if(first_load&&recalc_width)longest_string=longest(col.data.concat(col.meta.total||''))+1;header=render_header(col.meta,recalc_width,longest_string);if(!recalc_width&&state.current.widths_f)col.meta.width=state.current.widths_f[i];width_f+=col.meta.width;slice=col.data.slice(local_index,local_index+row_count);slice_length=slice.length;if(slice_length){extra_rows=((slice_length<row_count&&row_count-slice_length)||0)+1;slice=slice.concat(' '.times(extra_rows-1).split(' '));};fixed_temp.push(fixed_div_prefix,i,'" class="',col_styles,'" style="width:',col.meta.width,'px">',header,render_data(slice,i),'</div>');};};var normal_temp=[],partial,cols,no_data;col_length=grid.data.cols.normal.length;for(i=0;i<col_length;i+=1)if(!grid.data.cols.normal[i].data.length)break;partial=i<col_length;if(partial&&!normal_children)normal_children=normal.childNodes;for(i=0;i<col_length;i+=1){col=grid.data.cols.normal[i],no_data=!col.data.length;if(partial&&no_data&&!col.meta.rendered){width_n+=col.meta.width;continue;};if(first_load)delete col.meta.width;if(first_load&&recalc_width)longest_string=longest(col.data.concat(col.meta.total||''))+1;header=render_header(col.meta,recalc_width,longest_string);if(!recalc_width&&state.current.widths_n)col.meta.width=state.current.widths_n[i];width_n+=col.meta.width;if(no_data&&col.meta.rendered){normal_children[i].innerHTML=header;col.meta.rendered=false;continue;};slice=col.data.slice(local_index,local_index+row_count);slice_length=slice.length;if(slice_length){extra_rows=((slice_length<row_count&&row_count-slice_length)||0)+1;slice=slice.concat(' '.times(extra_rows-1).split(' '));};if(partial){col.meta.rendered=true;normal_children[i].innerHTML=[header,render_data(slice,i)].join('');}else{if(first_load&&!(slice_length===row_count||slice_length>1)){normal_temp.push(normal_div_prefix,i,'" class="g_t_',col.meta.type,'" style="width:',col.meta.width,'px">',header,'</div>');}else{normal_temp.push(normal_div_prefix,i,'" class="g_t_',col.meta.type,'" style="width:',col.meta.width,'px">',header,render_data(slice,i),'</div>');};};};state.current.width_n=width_n;state.current.widths_n=[];state.current.scan_width_n=grid.data.cols.normal.inject([],function(acc,x,i){state.current.widths_n.push(x.meta.width);acc.push(i&&acc.last()+x.meta.width||x.meta.width);return acc;});state.current.width_f=redraw_fixed?width_f:state.previous.width_f;if(redraw_fixed)state.current.widths_f=[];state.current.scan_width_f=redraw_fixed?grid.data.cols.fixed.inject([],function(acc,x,i){state.current.widths_f.push(x.meta.width);acc.push(i&&acc.last()+x.meta.width||x.meta.width);return acc;}):state.previous.scan_width_f;update_segments();if(recalc_width){(function(){var full_width=state.current.width_n+state.current.width_f+get_scrollbar_width()+(state.current.width_f&&1||0);if(full_width===grid.width)return;if(full_width<grid.width||full_width<original_config.width){grid.width=full_width;normal_container_width=state.current.width_n;grid.element.style.width=full_width+'px';normal_container.style.width=(normal_container_width+4)+'px';update_segments();return rebuild();};normal_container_width=original_config.width-fixed_container_width-get_scrollbar_width()-(state.current.width_f&&1||0);normal_container_width=Math.max(0,normal_container_width);grid.width=fixed_container_width+normal_container_width+get_scrollbar_width()+(state.current.width_f&&1||0);grid.element.style.width=grid.width+'px';normal_container.style.width=normal_container_width+'px';return rebuild();})();};if(redraw_fixed)fixed.innerHTML=fixed_temp.join('');if(!partial){normal_temp.push('<div style="float: none;"></div>');normal.innerHTML=normal_temp.join('');};if(config.handler){setTimeout(config.handler,stall_render_callback?100:0);stall_render_callback=false;};ondatamove({start:show.start,count:row_count,total:grid.meta.rows});if(buffers.start===null)populate_buffer('start',have.start,-1);if(buffers.end===null)populate_buffer('end',have.end,1);};})();var calculate_viewport=function(first_load){var scroll_left=first_load?0:normal_container.scrollLeft;var col_count=1,col_start=0,lcv,sum=0,len=grid.data.cols.normal.length;var normal_viewable_width=grid.width-fixed_container_width-get_scrollbar_width();if(scroll_left!==0){while(sum<scroll_left){sum+=grid.data.cols.normal[col_start].meta.width;col_start+=1;};col_start-=1;}else{if(grid.data.cols.normal.length)sum=grid.data.cols.normal[0].meta.width;};sum-=scroll_left;while(sum<normal_viewable_width){if(grid.data.cols.normal[col_start+col_count])
sum+=grid.data.cols.normal[col_start+col_count++].meta.width;else break;};return state.viewport={col_start:col_start,col_count:col_count};};grid.col_jump=function(col_index,handler){var index=col_index-1,fixed=index<grid.data.cols.fixed.length;if(fixed)
fixed_container.scrollLeft=index&&state.current.scan_width_f[index-1]||0;else
normal_container.scrollLeft=index-grid.data.cols.fixed.length&&state.current.scan_width_n[index-grid.data.cols.fixed.length-1]||0;horizontal_scroll(handler,null,null);};grid.row_jump=function(row_index,handler){var index=row_index-1,index=meta.rows-index<row_count?meta.rows-row_count:index;grid.scrollbar.jump(index,function(){if(grid.scrollbar.set_abs)grid.scrollbar.set_abs.curry(index).delay(0.25);if(handler)handler();});};var horizontal_scroll=(function(){var last_position=null;return function(callback,first_load,redraw_fixed){if(state.drag||state.resizer)return;var range=calculate_viewport(first_load);var current_position=range.col_start+'|'+range.col_count;var scroll_exists=normal_container_width<state.current.width_n||fixed_container_width<state.current.width_f;if(bottom_scroll_exists!==scroll_exists)bottom_scroll_exists=scroll_exists;if(last_position===current_position){if(first_load)return render({handler:(callback||function(){}),redraw_fixed:true,recalc_width:true,first_load:true});return;};last_position=current_position;reset_buffers();get_data({label:'horizontal_scroll',row_start:state.current.row_start,col_start:range.col_start,col_count:range.col_count,handler:function(){render({handler:(callback||function(){}),redraw_fixed:(!!first_load||!!redraw_fixed),recalc_width:false});}});};})();var calculate_bottom_scroll_exists=function(){bottom_scroll_exists=(normal_container_width<state.current.width_n&&state.current.width_n>original_config.width-fixed_container_width-get_scrollbar_width())||(fixed_container_width<state.current.width_f&&state.current.width_f>original_config.width-normal_container_width-get_scrollbar_width());};var set_observers=function(){var scroll_delay=null;normal_container.observe('scroll',function(event){if(scroll_delay)window.clearTimeout(scroll_delay);scroll_delay=horizontal_scroll.delay(0.2);});var start_scrolling=function(left,speed,iterator){stop_scrolling();var scroll_speed=speed||10,interval=20,direction=left&&-1||1;var scroll=function(){normal_container.scrollLeft+=direction*scroll_speed;if(iterator)iterator();};state.scroller=setInterval(scroll,interval);};var stop_scrolling=function(){if(state.scroller){clearInterval(state.scroller);delete state.scroller;};};var calculate_marker_left=function(draggable_left){var current=state.current,left=state.offset.left,current_index=state.draggable.current_index,fixed_length=current.scan_width_f.length;var calc=function(scan,offset,cols){var lcv,len=scan.length,over_col,over_delta,full_scan=current.scan_width_f.concat(current.scan_width_n).map(function(x){return offset+x;});for(lcv=0;lcv<len;lcv+=1)if(offset+scan[lcv]>draggable_left)break;lcv=Math.min(lcv,len-1);over_col=cols[lcv];over_delta=draggable_left-offset-(lcv&&scan[lcv-1]);if(over_delta>over_col.meta.width/2)
return{index:full_scan.indexOf(scan[lcv]+offset),left:scan[lcv]+offset};else
return{index:full_scan.indexOf((lcv&&scan[lcv-1])+offset),left:(lcv&&scan[lcv-1])+offset};};var calc_temp,new_index;if(draggable_left<current.width_f){calc_temp=calc(current.scan_width_f,left,grid.data.cols.fixed);if(calc_temp.index>current_index){if(current_index>=fixed_length)
new_index=calc_temp.index-2;else
new_index=calc_temp.index;}else{new_index=calc_temp.index+1;};return{index:new_index,left:calc_temp.left};}else{calc_temp=calc(current.scan_width_n,left+current.width_f-normal_container.scrollLeft,grid.data.cols.normal);return{index:calc_temp.index>=current_index?calc_temp.index:calc_temp.index+1,left:calc_temp.left<=grid.width+left-get_scrollbar_width()&&calc_temp.left>=current.width_f+left&&calc_temp.left};};};var quantize_width=function(pixels){return(((pixels-header_padding_width)/font_width).ceil()*font_width)+header_padding_width;};var document_mousemove=function(event){var draggable_left;if(!state.drag){if(!state.resizer||(state.resizer.skip=!!!state.resizer.skip))return;draggable_left=Math.max(event.pointerX(),state.offset.left)-state.offset.left;var before_width=grid.width;var delta=draggable_left-state.resizer.ref.meta.width-state.resizer.offset;if(state.resizer.is_fixed){var width_f=state.current.width_f-state.resizer.ref.meta.width;state.resizer.ref.meta.width=Math.max(min_col_width,quantize_width(state.resizer.ref.meta.width+delta));state.current.width_f=width_f+=state.resizer.ref.meta.width
fixed_container_width=Math.min(width_f,original_config.width-smallest_normal-get_scrollbar_width());normal_container_width=Math.min(normal_container_width,Math.max(smallest_normal,original_config.width-fixed_container_width-1-get_scrollbar_width()));grid.width=Math.min(fixed_container_width+normal_container_width+get_scrollbar_width()+1,original_config.width);grid.element.style.width=grid.width+'px';normal_container.style.width=normal_container_width+'px';fixed_container.style.width=fixed_container_width+'px';fixed.style.width=width_f+'px';state.resizer.element.style.width=state.resizer.ref.meta.width+'px';}else{var width_n=state.current.width_n-state.resizer.ref.meta.width;delta+=(normal_container.scrollLeft-fixed_container_width);state.resizer.ref.meta.width=Math.max(min_col_width,quantize_width(state.resizer.ref.meta.width+delta));state.current.width_n=width_n+=state.resizer.ref.meta.width;normal_container_width=Math.min(width_n,original_config.width-fixed_container_width-get_scrollbar_width()-(state.current.width_f&&1||0));grid.width=Math.min((fixed_container_width&&fixed_container_width+1||0)+width_n+get_scrollbar_width(),original_config.width);grid.element.style.width=grid.width+'px';normal_container.style.width=normal_container_width+'px';normal.style.width=state.current.width_n+'px';state.resizer.element.style.width=state.resizer.ref.meta.width+'px';};if(grid.scrollbar.exists&&grid.width!==before_width)grid.scrollbar.reorient(grid.width);return;};draggable_left=Math.max(Math.min(event.pointerX(),state.offset.left+grid.width)-get_scrollbar_width(),state.offset.left);if(draggable_left===state.offset.left+grid.width-get_scrollbar_width())
start_scrolling(false);else
if(draggable_left===state.offset.left)
start_scrolling(true);else
stop_scrolling();var draggable=state.draggable;draggable.element.setStyle({left:draggable_left+'px'});var marker_position=calculate_marker_left(draggable_left);marker_left=marker_position.left;draggable.new_index=marker_position.index;if(!marker_left){draggable.marker.element.hide();}else{if(draggable.marker.left!==marker_left){draggable.marker.element.show();draggable.marker.left=marker_left;draggable.marker.element.setStyle({left:marker_left+'px'});};};if(!draggable.visible){document.body.appendChild(draggable.element.setStyle({position:'absolute',top:state.offset.top-35+'px'}));draggable.dimensions=draggable.element.getDimensions();draggable.visible=true;};if(!draggable.marker.visible){document.body.appendChild(draggable.marker.element);draggable.marker.visible=true;};};var document_mouseup=function(event){var el=event.element();Event.stopObserving(document,'mousemove',document_mousemove);Event.stopObserving(document,'mouseup',document_mouseup);stop_scrolling();if(state.resizer){grid.element.removeClassName('grid_resizing');var format=Object.clone(state.resizer.ref.meta.display||{});format.width=((state.resizer.ref.meta.width-header_padding_width)/font_width).floor();format=$H(format).inject([],function(acc,obj){return acc.concat(obj.key+':'+obj.value);}).join(';');var macro=TenTen.Macro.obj_to_tag({name:'col',attributes:{name:state.resizer.ref.meta.name,format:format}});if(gui_tab)
api.addops({tab:gui_tab,ops:macro});else
onmacro(macro);state.resizer=null;calculate_bottom_scroll_exists();var calculate_row_count_handler=function(){render({start_index:state.current.row_start,redraw_fixed:true,recalc_width:true,handler:horizontal_scroll.curry(null,null,true)});};return calculate_row_count(calculate_row_count_handler);}else{var current_colord=meta.cols.map(function(col){return col.name;}),left=state.draggable.marker.left,current_col=state.draggable.ref.meta.name,old_index=state.draggable.current_index,new_index=state.draggable.new_index;if(typeof new_index!=='undefined'&&old_index!==new_index){var macro='',new_colord=current_colord.reject(function(col){return col===current_col});new_colord=[].concat(new_colord.slice(0,new_index),current_col,new_colord.slice(new_index,new_colord.length));var fixed=state.draggable.ref.meta.fixed,fixed_length=state.current.widths_f.length,normal_length=state.current.widths_n.length;if((fixed&&new_index>=fixed_length)||(!fixed&&new_index<fixed_length)){fixed=fixed?0:1;macro+=TenTen.Macro.obj_to_tag({name:'col',attributes:{name:current_col,fixed:fixed}});};macro+=TenTen.Macro.obj_to_tag({name:'colord',attributes:{cols:new_colord.join(',')}});if(gui_tab)
api.addops({tab:gui_tab,ops:macro,refresh:true});else
onmacro(macro);};};state.drag=false;state.draggable=null;$$('div.'+grid_element_id+'_drag').invoke('remove');};var wheel_observer=function(event){};var document_click=function(event){event.stop();};var context_menu;var has_selection=function(element){var selected_text='getSelection'in window&&window.getSelection()&&window.getSelection().toString()||document.selection&&document.selection.type.toLowerCase()==='text'&&document.selection.createRange().text;if(typeof selected_text!=='string')return false;return element.innerHTML.indexOf(selected_text.match(/\w+/))>-1;};var render_context_menu=function(event){var el=event.element();if(has_selection(el))return(TenTen.App||TenTen.GridStatic)['block_context_menu']=false;event.stop();(TenTen.App||TenTen.GridStatic)['block_context_menu']=true;var immediate_ancestor=el.tagName.toLowerCase()==='div'&&el||el.up('div'),menu_type=(el.hasClassName('grid_m_b')&&(immediate_ancestor.hasClassName('grid_h_c')||immediate_ancestor.hasClassName('grid_c_s')||immediate_ancestor.hasClassName('grid_h')))?'column':immediate_ancestor.hasClassName('grid_cbreaks')?'cbreaks':(immediate_ancestor.hasClassName('grid_h')||immediate_ancestor.hasClassName('grid_h_c')||immediate_ancestor.hasClassName('grid_c_s'))?'column':'data',menu_items=[];if(menu_type==='cbreaks'&&!el.hasClassName('grid_m_b'))return;if(immediate_ancestor.hasClassName('grid_t'))return;if(!gui_tab&&onmacro===empty_function)return;switch(menu_type){case'column':var col_ref=immediate_ancestor.up('div').id.match(/(f|n)\_(\d+)/),col_ref=grid.data.cols[col_ref[1]==='f'&&'fixed'||'normal'][+col_ref[2]];if(gui_tab){menu_items.push({text:'Column information',handler:function(){var params=TenTen.App.getMinParams(gui_tab);params.chelp=col_ref.meta.name;pophelp('https://'+document.location.hostname+document.location.pathname+'?'+Object.toQueryString(params));}});};menu_items=menu_items.concat([{text:'Sort up',handler:function(){var macro=TenTen.Macro.obj_to_tag({name:'sort',attributes:{col:col_ref.meta.name,dir:'up'}});return gui_tab&&api.addops({tab:gui_tab,ops:macro,refresh:true})||onmacro(macro);}},{text:'Sort down',handler:function(){var macro=TenTen.Macro.obj_to_tag({name:'sort',attributes:{col:col_ref.meta.name,dir:'down'}});return gui_tab&&api.addops({tab:gui_tab,ops:macro,refresh:true})||onmacro(macro);}},{text:'Hide column',handler:function(){var cols=meta.cols.map(function(col){return col.name;}).filter(function(col){return col!==col_ref.meta.name;});var macro=TenTen.Macro.obj_to_tag({name:'colord',attributes:{cols:cols.join(',')}});return gui_tab&&api.addops({tab:gui_tab,ops:macro,refresh:true})||onmacro(macro);}},{text:'Show only this column',handler:function(){var macro=TenTen.Macro.obj_to_tag({name:'colord',attributes:{cols:col_ref.meta.name}});return gui_tab&&api.addops({tab:gui_tab,ops:macro,refresh:true})||onmacro(macro);}}]);if(!col_ref.meta.total_col){menu_items.push({text:'Make this column '+(reverse_fixed||col_ref.meta.fixed?'unfixed':'fixed'),handler:function(){var cols=meta.cols.map(function(col){return col.name;}).filter(function(col){return col!==col_ref.meta.name;});var new_index;if(col_ref.meta.fixed){new_index=grid.data.cols.fixed.length-1;}else{new_index=meta.cbreaks?grid.data.cols.fixed.length-1:grid.data.cols.fixed.length;};cols.splice(new_index,0,col_ref.meta.name);var macro=TenTen.Macro.obj_to_tag({name:'col',attributes:{name:col_ref.meta.name,fixed:col_ref.meta.fixed?0:1}});macro+=TenTen.Macro.obj_to_tag({name:'colord',attributes:{cols:cols.join(',')}});return gui_tab&&api.addops({tab:gui_tab,ops:macro,refresh:true})||onmacro(macro);}});};break;case'cbreaks':var cbreak=meta.cbreaks.filter(function(cbreak){return cbreak.name===el.alt;})[0];var reordered_cols=function(dir){var reordered_cbreaks;if(cbreak.type==='i'||cbreak.type==='f'){reordered_cbreaks=cbreak.data.map(function(d,i){return{value:+d,col_name:meta.cbreaks_cols[i]};}).sort(function(a,b){return a.value-b.value;});}else{reordered_cbreaks=cbreak.data.map(function(d,i){return{value:d,col_name:meta.cbreaks_cols[i]};}).sort(function(a,b){var x=a.value,y=b.value;return x===y?0:x>y?1:-1;});};if(dir==='down')reordered_cbreaks.reverse();return meta.cols.map(function(col){return meta.cbreaks_cols.indexOf(col.name)>-1?reordered_cbreaks.shift().col_name:col.name;});};menu_items=[{text:'Sort cbreaks up',handler:function(){var cols=reordered_cols('up'),macro=TenTen.Macro.obj_to_tag({name:'colord',attributes:{cols:cols.join(',')}});return gui_tab&&api.addops({tab:gui_tab,ops:macro,refresh:true})||onmacro(macro);}},{text:'Sort cbreaks down',handler:function(){var cols=reordered_cols('down'),macro=TenTen.Macro.obj_to_tag({name:'colord',attributes:{cols:cols.join(',')}});return gui_tab&&api.addops({tab:gui_tab,ops:macro,refresh:true})||onmacro(macro);}}];break;case'data':var col_ref=immediate_ancestor.up('div').id.match(/(f|n)\_(\d+)/),col_index=+col_ref[2],col_ref=grid.data.cols[col_ref[1]==='f'&&'fixed'||'normal'][col_index],col_index=col_ref.meta.fixed?col_index+1:grid.data.cols.fixed.length+col_index+1;var row_index=immediate_ancestor.previousSiblings().length+grid.state.current.row_start;var row_value=immediate_ancestor.innerHTML;menu_items=[{text:'Select rows where '+col_ref.meta.raw_title+' has the value '+row_value,handler:function(){get_datum(row_index,col_index,function(raw_value){var quote=(col_ref.meta.type==='a'&&'\''||'');var macro=TenTen.Macro.obj_to_tag({name:'sel',attributes:{value:col_ref.meta.name+'='+quote+raw_value+quote}});return gui_tab&&api.addops({tab:gui_tab,ops:macro,refresh:true})||onmacro(macro);});}},{text:'Select rows where '+col_ref.meta.raw_title+' does not have the value '+row_value,handler:function(){get_datum(row_index,col_index,function(raw_value){var quote=(col_ref.meta.type==='a'&&'\''||'');var macro=TenTen.Macro.obj_to_tag({name:'sel',attributes:{value:col_ref.meta.name+'<>'+quote+raw_value+quote}});return gui_tab&&api.addops({tab:gui_tab,ops:macro,refresh:true})||onmacro(macro);});}}];if(row_index<meta.rows){menu_items.push({text:'Find the next row where '+col_ref.meta.raw_title+' has the value '+row_value,handler:function(){var quote=(col_ref.meta.type==='a'&&'\''||'');find_row({expression:col_ref.meta.name+'='+quote+'#{raw_value}'+quote,direction:'next',row_index:row_index,col_index:col_index});}});menu_items.push({text:'Find the next row where '+col_ref.meta.raw_title+' does not have the value '+row_value,handler:function(){var quote=(col_ref.meta.type==='a'&&'\''||'');find_row({expression:col_ref.meta.name+'<>'+quote+'#{raw_value}'+quote,direction:'next',row_index:row_index,col_index:col_index});}});};if(row_index>1){menu_items.push({text:'Find the previous row where '+col_ref.meta.raw_title+' has the value '+row_value,handler:function(){var quote=(col_ref.meta.type==='a'&&'\''||'');find_row({expression:col_ref.meta.name+'='+quote+'#{raw_value}'+quote,direction:'previous',row_index:row_index,col_index:col_index});}});menu_items.push({text:'Find the previous row where '+col_ref.meta.raw_title+' does not have the value '+row_value,handler:function(){var quote=(col_ref.meta.type==='a'&&'\''||'');find_row({expression:col_ref.meta.name+'<>'+quote+'#{raw_value}'+quote,direction:'previous',row_index:row_index,col_index:col_index});}});};if(gui_tab){menu_items.push({text:'View this row in one row at a time mode',handler:function(){TenTen.App.openWindowAndFill({mode:'form',row:row_index},'One Row at a Time...',gui_tab);}});};break;};context_menu=new Ext.menu.Menu({shadow:false,items:menu_items});context_menu.showAt([event.clientX,event.clientY]);};var document_mousedown=function(event){var el=event.element();if(!event.isLeftClick()||el.hasClassName('grid_m_b'))return render_context_menu(event);if(context_menu)try{context_menu.destroy();}catch(error){};$$('div.'+grid_element_id+'_drag').invoke('remove');var is_header=el.hasClassName('grid_h')||el.hasClassName('grid_h_c');var is_resizer=el.hasClassName('grid_r');if(is_header||is_resizer){event.stop();grid.element.onselectstart=function(){return false;};Event.observe(document,'mousemove',document_mousemove);Event.observe(document,'mouseup',document_mouseup);if(is_header){state.drag=true;var element_dimensions=el.getDimensions();var parent=el.parentNode.parentNode;var ref=parent.id.replace(normal_id,'').match(/\_([f|n])\_(\d+)/),current_index=ref[1]==='f'?(+ref[2]):grid.data.cols.fixed.length+(+ref[2]);ref=ref[1]==='f'?grid.data.cols.fixed[+ref[2]]:grid.data.cols.normal[+ref[2]];state.draggable={current_index:current_index,ref:ref,element:$(el.cloneNode(true)).addClassName(grid_element_id+'_drag').setStyle({width:element_dimensions.width+'px',height:Math.max(35,grid.size+5)+'px',fontSize:grid.size+'px'}),marker:{element:new Element('div',{'class':'grid_marker '+grid_element_id+'_drag',style:'top: '+(state.offset.top+header_height)+'px; height: '+(grid.height-header_height)+'px;'}),visible:false},visible:false};return;};if(is_resizer){grid.element.addClassName('grid_resizing');var parent;if(meta.cbreaks&&$(el.parentNode).hasClassName('grid_cbreaks')){parent=fixed.select('div.grid_col_f:last-child').first();}else{parent=el.parentNode.parentNode.parentNode;};var is_fixed;var ref=parent.id.replace(normal_id,'').match(/\_([f|n])\_(\d+)/);ref=(is_fixed=ref[1]==='f')&&grid.data.cols.fixed[ref[2]]||grid.data.cols.normal[ref[2]];state.resizer={ref:ref,is_fixed:is_fixed,width:ref.meta.width,element:parent,offset:$(parent).positionedOffset().left};};}else{grid.element.onselectstart=function(){};Event.stopObserving(document,'mousemove',document_mousemove);Event.stopObserving(document,'mouseup',document_mouseup);};};grid.element.observe('mousewheel',wheel_observer);grid.element.observe('DOMMouseScroll',wheel_observer);grid.element.observe('dblclick',function(event){event.stop();});grid.element.observe('click',document_click);grid.element.observe('mousedown',document_mousedown);return true;};var initialize_element=function(callback){grid.element.addClassName('grid_main');grid.element.innerHTML='';grid.element.absolutize();fixed_container.appendChild(fixed);normal_container.appendChild(normal);normal_container.appendChild(scratch);grid.element.setStyle({width:grid.width+'px',height:grid.height+'px',overflow:'hidden'});grid.element.appendChild(fixed_container.setStyle({height:grid.height+'px',fontSize:grid.size+'px',lineHeight:grid.size+'px',overflowX:'auto',overflowY:'hidden',position:'relative'}));grid.element.appendChild(normal_container.setStyle({width:normal_container_width+'px',height:grid.height+'px',overflowX:'auto',overflowY:'hidden',fontSize:grid.size+'px',lineHeight:grid.size+'px','float':'left',position:'relative'}));state.offset=grid.element.cumulativeOffset();if(!grid.observers_set)grid.observers_set=set_observers();if(callback)callback();};var query_cache=null;var rebuild;var render_scrollbar=(function(){var scrollbar_config;return function(){var scrollbar_bounds={low:0,high:grid.data.meta.rows-row_count+1};scrollbar_config={parent:{height:grid.height,width:grid.width,element:grid.element,resource_path:grid.resource_path,offset:state.offset},display_field:row_count,rows:grid.data.meta.rows,current_index:function(){return state.current.row_start;},bounds:scrollbar_bounds};var display_threshold=10,status_interval=2;var last_rendered=state.current.row_start,last_scrolled=0,scroll_count=0;scrollbar_config.scroll=function(index,callback){if(index===scrollbar_bounds.low||index===scrollbar_bounds.high)scroll_count=0;last_scrolled=index;if((last_rendered-last_scrolled).abs()>display_threshold){state.current.row_start=index;if(scroll_count++%status_interval===0)grid.status.update(scrolling_message(index));return callback();};grid.status.hide();last_rendered=index;render({handler:callback,start_index:index,redraw_fixed:true,recalc_width:false});};scrollbar_config.scroll_stop=function(){scroll_count=0;if(last_rendered!==last_scrolled){render({handler:function(){grid.status.hide();grid.scrollbar.set_abs(last_scrolled);},start_index:last_scrolled,redraw_fixed:true,recalc_width:false});};last_rendered=last_scrolled;};scrollbar_config.status_update=function(message){grid.status.update(message);};scrollbar_config.jump=function(index,callback){render({handler:function(){last_rendered=index;last_scrolled=index;grid.status.hide();if(callback)callback();},start_index:index,redraw_fixed:true,recalc_width:false});};if(grid.scrollbar&&grid.scrollbar.reorient)
grid.scrollbar.reorient(grid.width);else
grid.scrollbar=new Scrollbar(scrollbar_config);};})();var query=function(callback){var query_config={row_start:0,row_count:1};var query_handler=function(result){query_cache=result;if(0!==+result.rc.value)return data_error(result,'query');meta.rows=result.nrows.value-0;meta.row_start=0;meta.row_count=0;var fixed_length=0,normal_length=0;meta.subtotals='totals'in result.table.value&&!!(result.table.value.totals.value-0);meta.cbreaks=null;var total_column_exists=result.table.value.cols.value.inject(false,function(acc,col){return acc||'total'in col.th.attributes&&!!+col.th.attributes.total});if(total_column_exists&&result.table.value.cbreaks_vals&&result.table.value.cbreaks_vals.value){meta.cbreaks=result.table.value.cbreaks_vals.value.table.value.cols.value.map(function(col){return{name:col.th.attributes.name,title:col.th.value,type:col.th.attributes.type,data:[]};});result.table.value.cbreaks_vals.value.table.value.data.value.each(function(row_cells){row_cells.tr.value.each(function(cell,index){meta.cbreaks[index].data.push(cell.td.value);});});meta.cbreaks_cols=result.table.value.cbreaks_cols.value.table.value.data.value.map(function(row){return row.tr.value[0].td.value;});};meta.cols=result.table.value.cols.value.map(function(col,i){var fixed='fixed'in col.th.attributes&&!!+col.th.attributes.fixed;fixed=fixed||'total'in col.th.attributes&&!!+col.th.attributes.total;if(fixed)fixed_length+=1;else normal_length+=1;var title=empty_image()+(col.th.value||col.th.attributes.name).replace(/\n/g,'\n'+empty_image()),longest_header_line=(col.th.value||col.th.attributes.name).split('\n').inject(0,function(acc,line){return Math.max(acc,line.length)});var col={name:col.th.attributes.name,type:col.th.attributes.type,display:process_display(col.th.attributes.format||''),raw_title:(col.th.value||col.th.attributes.name).replace(/\n/g,' '),title:((gui_tab||onmacro!==empty_function)&&menu_image()||empty_image())+'\n'+title,header_lines:(title.match(/\n/g)||[]).length+1,longest_header_line:longest_header_line,total_col:'cbreaks_cols'in meta&&'total'in col.th.attributes&&!!+col.th.attributes.total,fixed:fixed};if(meta.subtotals)col.total='0';return col;});if(fixed_length===meta.cols.length){meta.cols=meta.cols.map(function(col){col.fixed=false;return col;});normal_length=fixed_length;fixed_length=0;reverse_fixed=true;};var temp_fixed=[];meta.fixed_indices=[];meta.cols=meta.cols.filter(function(col,index){if(col.fixed){temp_fixed.push(col);meta.fixed_indices.push(index);};return!col.fixed;});meta.cols=temp_fixed.concat(meta.cols);var header_lines=meta.cols.map(function(h){return h.header_lines;}).max();var fixed_header_lines=0;if(meta.cbreaks){(function(){var total_column=meta.cols[fixed_length-1];var tallest_fixed=meta.cols.slice(0,fixed_length-1).inject(null,function(acc,col){if(!acc)return col;return(col.header_lines>acc.header_lines)&&col||acc;})||meta.cols[fixed_length-1];var delta=(total_column.header_lines+1)-tallest_fixed.header_lines;if(tallest_fixed.header_lines<=total_column.header_lines){tallest_fixed.header+='\n'.times(delta);tallest_fixed.header_lines+=delta;header_lines=Math.max(tallest_fixed.header_lines,header_lines)};})();fixed_header_lines=meta.cols.slice(0,fixed_length).map(function(h){return h.header_lines}).max();header_lines=Math.max(header_lines,fixed_header_lines+meta.cbreaks.length+1);};meta.cols.each(function(h,i){var spacer='';if(meta.cbreaks&&h.fixed&&i!==fixed_length-1){spacer=('\n'+empty_image()).times(fixed_header_lines-h.header_lines);h.title=(h.title+spacer).replace(/\n/g,'&nbsp;&nbsp;<br />');}else{spacer=('\n'+empty_image()).times(header_lines-h.header_lines);h.title=(h.title+spacer).replace(/\n/g,'&nbsp;&nbsp;<br />');};delete h.header_lines;});var spoofed_result={cols:[]};for(var lcv=0;lcv<result.table.value.cols.value.length;lcv+=1)spoofed_result.cols.push({meta:meta.cols[lcv],data:['']});grid.data.cols={fixed:new Array(fixed_length),normal:new Array(normal_length)};spoofed_result={rc:{value:0},json:{value:spoofed_result},numrows:{value:1}};process_data({handler:callback,query:query_config,spoofed:true},spoofed_result);};if(query_cache)return query_handler(query_cache);api.query({label:query_label,suppress_busy:true,table:table,macro:macro,loading:loading,handler:function(result){loaded();query_handler(result);}});};var initialize=function(){if(!grid.debug)grid.element.style.visibility='hidden';var build=function(callback,no_render){grid.status=new Status({parent:{height:grid.height,width:grid.width,element:grid.element,resource_path:grid.resource_path},alternate_update:config.status_update});render_scrollbar();var old_row_count=row_count;calculate_row_count(function(){if(no_render)return callback();if(old_row_count!==row_count||!no_render){render({first_load:true,redraw_fixed:true,recalc_width:true,handler:function(){var total=grid.data.meta.rows;if(normal_container_width>state.current.width_n){normal_container_width=state.current.width_n;grid.width=fixed_container_width+normal_container_width+get_scrollbar_width();return initialize();};calculate_bottom_scroll_exists();var potential_height=(total*row_height)+header_height+(bottom_scroll_exists&&scroll_height||0);if(potential_height<grid.height||potential_height>grid.height&&potential_height<original_config.height){grid.height=potential_height;return initialize();}else{return callback();};}})};});};rebuild=function(){build(function(){},true);};grid.resize=function(width,height){grid.height=height;grid.width=width;if(!grid.debug)grid.element.style.visibility='hidden';if(grid.scrollbar.element)grid.scrollbar.element.remove();var row_start=state.current.row_start;var scroll_left=normal_container.scrollLeft;initialize_element();rebuild();grid.scrollbar=null;render_scrollbar();calculate_row_count(function(){render({redraw_fixed:true,recalc_width:false,first_load:true,handler:function(){grid.element.style.visibility=''
normal_container.scrollLeft=scroll_left;grid.scrollbar.jump(row_start,function(){if(grid.scrollbar.set_abs)grid.scrollbar.set_abs.curry(row_start).delay(0.25);horizontal_scroll(null,true,true);});}});});};initialize_element(function(){calculate_font(function(){query(function(){build(function(){horizontal_scroll(function(){if(meta.cbreaks){var fixed_headers=fixed.select('span.grid_h_h > div.grid_h_c'),fixed_resizers=fixed.select('a.grid_r'),len,lcv;cbreaks_height=grid.element.select('.grid_cbreaks')[0].offsetHeight;cbreaks_spacer_height=header_height-cbreaks_height-row_height-header_border;cbreaks_fixed_header_height=header_height-cbreaks_height-row_height-header_border;len=fixed_headers.length;for(lcv=0;lcv<len;lcv+=1)fixed_headers[lcv].style.height=cbreaks_fixed_header_height+'px';fixed_resizers[0].style.height=(cbreaks_height+cbreaks_spacer_height)+'px';len=fixed_resizers.length;for(lcv=1;lcv<len;lcv+=1)fixed_resizers[lcv].style.height=cbreaks_fixed_header_height+'px';fixed.select('span.grid_h_h > div.grid_c_s')[0].style.height=cbreaks_spacer_height+'px';};calculate_bottom_scroll_exists();var correct_height=header_height+(bottom_scroll_exists&&scroll_height||0)+(row_count*row_height);if(correct_height!==grid.height){grid.height=correct_height;normal_container.style.height=correct_height+'px';fixed_container.style.height=correct_height+'px';};if(grid.scrollbar&&grid.scrollbar.reorient)grid.scrollbar.reorient(null,grid.height);grid.element.style.visibility='';onload();},true);});});});});};cache_images(initialize);};TenTen.Microsite=function(config){if(document.location.protocol.toLowerCase()!=='https:')
return document.location.href=document.location.href.replace(/^(.*?)\:/,'https:');var resource_path=TenTen.path+'/resources/Microsite/',uqs=config.uqs,dir=config.dir,api=TenTen.API,header,footer,content,uq_list,list_element;var templates={wrapper:config.templates&&config.templates.wrapper||resource_path+'html/wrapper.html',header:config.templates&&config.templates.header||resource_path+'html/header.html',login:config.templates&&config.templates.login||resource_path+'html/login.html',uq_list:config.templates&&config.templates.uq_list||resource_path+'html/uq-list.html',footer:config.templates&&config.templates.footer||resource_path+'html/footer.html'};var uq_click_handler=config.handlers&&config.handlers.uq_click||function(){};TenTen.UQM.microsite={content:'microsite_content'};if(!dir&&(!uqs||!uqs.length))return alert('A list of UQs (paths or IDs) or a dir must be specified at instantiation.');var render_login=function(){var logged_in_handler=function(url){api.logged_out=false;api.url=url.replace(/\?.*$/,'')+'?'+Object.toQueryString({ajax:true,apiversion:3,protocol:'json-rpc'});TenTen.API.restore({handler:function(result){var no_errors=0===+result.rc.value;if(!no_errors)return;TenTen.UQM.tcnt=+result.total_worksheets.value+1;TenTen.UQM.page=+result.max_pagecount.value+1;TenTen.API.ajax(url,{method:'GET',success_handler:function(){}});if(dir||uqs.length>1)return render_uq_list();render_uq(uqs.first());}});};var querystring=document.location.search.toQueryParams(),cred=['uid','sid','pswd'];if(cred.inject(true,function(acc,key){return acc&&key in querystring;})){cred=cred.inject({},function(acc,key){acc[key]={value:querystring[key]};return acc;});api.reset_credentials(cred);return logged_in_handler('https://'+document.location.host+'/cgi-bin/gw?'+Object.toQueryString(querystring));};new TenTen.Widget.Login({element:'microsite_content',template:templates.login,handler:logged_in_handler});};var render_uq_list=function(){list_element.innerHTML=uq_list;var uq_template=$('microsite_uq_template');var list=uq_template.parentNode;uq_template=uq_template.remove();var render_li=function(tab){var element=uq_template.cloneNode(true);element.id='microsite_'+tab.name;element.innerHTML=(new Template(element.innerHTML)).evaluate({title:tab.title||tab.name,sdesc:tab.sdesc,name:tab.name,id:tab.id});element.select('.microsite_uq_link').invoke('observe','click',function(event){event.stop();render_uq(tab.name);uq_click_handler(tab);});list.appendChild(element);};content.innerHTML='';if(dir){api.listdir({path:dir,include:['id','name','title','sdesc','type'],handler:function(result){var no_errors=0===+result.rc.value;if(!no_errors)return;var uqs=result.dir.value.children.value.filter(function(child){return'tab'in child&&child.tab.attributes.type==='UQ';}).map(function(uq){return uq.tab.attributes;});if(uqs.length===1){list_element.remove();return render_uq(uqs.first().name);}else{uqs.each(render_li);};}});return;};uqs.each(function(uq){api.gettab({name:uq,include:['id','name','title','sdesc'],handler:function(result){var no_errors=0===+result.rc.value;if(!no_errors)return;render_li(result.tab.attributes);}});});};var render_uq=function(uq){var display_uq=function(markup,id){var div=new Element('div');div.innerHTML=markup;var scripts=div.select('script').map(function(script){return script.remove();});content.innerHTML=div.innerHTML;if(scripts.length)
scripts.each(function(script){eval(script.innerHTML);});else
markup.evalScripts();TenTen.UQM.current_id=id;};api.gettab({name:uq,handler:function(result){var no_errors=0===+result.rc.value;if(!no_errors)return;var markup=result.tab.attributes.form,id=result.tab.attributes.id;if(/(\<info(.+?)\>)/i.match(markup)){var info_tag=RegExp.$1;TenTen.XML.xml_to_json({string:info_tag.toLowerCase(),handler:function(obj){var atts=obj.info.attributes;if(atts.type&&atts.type==='guiversion'&&atts.name&&atts.name==='guiversion'){var markup_template=new Template(markup.replace(info_tag,''),/(^|.|\r|\n)(\<%\s*(\w+)\s*%\>)/);display_uq(markup_template.evaluate({prefix:'t'}),id);}else{alert('this UQ does not appear to have a guiversion info tag');};}});}else{alert('no <info> tag was found in this UQ');};}});};var initialize=function(){var logout_handler=(config.handlers&&config.handlers.logout)||function(){content.innerHTML='Your session has timed out, please log in again ...';render_login.delay(1);};api.handlers['35']=function(response){logout_handler();return response;};api.ajax(templates.wrapper,{method:'GET',success_handler:function(response){document.body.innerHTML=response.responseText;var begin_render=function(){TenTen.Util.DOM.find({id:'microsite_content',handler:function(element){content=element;if(dir||uqs.length>1)list_element=$('microsite_list');render_login();}});};api.ajax(templates.header,{method:'GET',success_handler:function(response){TenTen.Util.DOM.find({id:'microsite_header',handler:function(element){header=element;header.innerHTML=response.responseText;}});}});api.ajax(templates.footer,{method:'GET',success_handler:function(response){TenTen.Util.DOM.find({id:'microsite_footer',handler:function(element){footer=element;footer.innerHTML=response.responseText;}});}});if(dir||uqs.length>1){return api.ajax(templates.uq_list,{method:'GET',success_handler:function(response){uq_list=response.responseText;begin_render();}});};begin_render();}});};initialize();};
