var OpenHandle=OpenHandle||{Library:null,Common:null,Handle:null,HandleValue:null,AdminRecord:null,ParseHandle:null,ServerInfo:null,SiteInfo:null,Util:null,ValueReference:null};OpenHandle.Library=function(args){var fields={"name":"OpenHandle JavaScript Client Library","version":"0.2.3","contact":"mailto:tony.hammond@gmail.com",};if(args!=null&&args!=undefined&&args!='undefined'){for(var f in fields){if(args[f]!=null&&args[f]!=undefined&&args[f]!='undefined'){fields[f]=args[f];}}} var getContact=function(){return fields.contact;};var getName=function(){return fields.name;};var getVersion=function(){return fields.version;};var toString=function(){return this.getName()+", v."+this.getVersion();};var listClasses=function(){var a=[];for(name in OpenHandle){a.push(name);}return a;};var listMethods=function(){var a=[];for(method in this){a.push(method);}return a;};var showClassMethods=function(args){if(args){switch(typeof args){case"string":var args={"name":args};break;case"object":var args=args;break;default:var args={};break;}} else{var args={};} var s="";var a=[];var name=args.name;var delim1=args.delim1?args.delim1:':\n';var delim2=args.delim2?args.delim2:', ';var delim3=args.delim3?args.delim3:'\n\n* OpenHandle.';if(name){s=delim3.replace(/^\s*/,"")+ name+delim1+eval("(new OpenHandle."+name+"()).listMethods().join('"+delim2+"')");} else{for(name in OpenHandle){a.push(name+delim1+eval("(new OpenHandle."+name+"()).listMethods().join('"+delim2+"')"));} s=delim3.replace(/^\s*/,"")+a.join(delim3);} return s;};return{getContact:getContact,getName:getName,getVersion:getVersion,listClasses:listClasses,listMethods:listMethods,showClassMethods:showClassMethods,toString:toString}};OpenHandle.Common=function(){var fields={"MAX_RECOGNIZED_TTL":86400*2,"SUBTYPE_SEPARATOR":".","TTL_TYPE_RELATIVE":0,"TTL_TYPE_ABSOLUTE":1,"OPENHANDLE_SERVER":"http://nascent.nature.com/openhandle/handle"};var getConstant=function(constant){return fields[constant];};var listConstants=function(){var a=[];for(constant in fields){a.push(constant);}return a;};var listMethods=function(){var a=[];for(method in this){a.push(method);}return a;};return{getConstant:getConstant,listConstants:listConstants,listMethods:listMethods}};OpenHandle.Handle=function(args){var fields={comment:null,handle:null,handleStatus:null,handleValues:null};if(args!=null&&args!=undefined&&args!='undefined'){for(var f in fields){if(args[f]!=null&&args[f]!=undefined&&args[f]!='undefined'){fields[f]=args[f];}}} var getHandleValuesByQuery=function(query){var hv=fields.handleValues;if(!query){return hv;} var hv_=[];var matched=false;for(var i=0;i0?fields.data:"??";break;default:return'??';break;}};var setData=function(data){return(fields.data=data);};var getPermission=function(){var o=fields.permission;switch(typeof o){case'object':var a=[];a.push((o.adminRead=="true")?"1":"0");a.push((o.adminWrite=="true")?"1":"0");a.push((o.publicRead=="true")?"1":"0");a.push((o.publicWrite=="true")?"1":"0");return a.join("");case'string':return o;default:return null;}};var setPermission=function(permission){var o=permission;switch(typeof o){case'object':var a=[];a.push((o.adminRead=="true")?"1":"0");a.push((o.adminWrite=="true")?"1":"0");a.push((o.publicRead=="true")?"1":"0");a.push((o.publicWrite=="true")?"1":"0");fields.permission=a.join("");return;case'string':fields.permission=o;return;default:return null;}};var getAdminCanRead=function(){return this.getPermission()[0]==1?true:false;};var getAdminCanWrite=function(){return this.getPermission()[1]==1?true:false;};var getAnyoneCanRead=function(){return this.getPermission()[2]==1?true:false;};var getAnyoneCanWrite=function(){return this.getPermission()[3]==1?true:false;};var setAdminCanRead=function(hasPermission){return(fields.permission[0]=hasPermission?1:0);};var setAdminCanWrite=function(hasPermission){return(fields.permission[1]=hasPermission?1:0);};var setAnyoneCanRead=function(hasPermission){return(fields.permission[2]=hasPermission?1:0);};var setAnyoneCanWrite=function(hasPermission){return(fields.permission[3]=hasPermission?1:0);};var getPermissionString=function(){var a=[];a.push(this.getAdminCanRead()?'r':'-');a.push(this.getAdminCanWrite()?'w':'-');a.push(this.getAnyoneCanRead()?'r':'-');a.push(this.getAnyoneCanWrite()?'w':'-');return a.join("");};var getPermissionStringLong=function(){var a=[];if(this.getAdminCanRead()){a.push('adminRead');} if(this.getAdminCanWrite()){a.push('adminWrite');} if(this.getAnyoneCanRead()){a.push('publicRead');} if(this.getAnyoneCanWrite()){a.push('publicWrite');} return a.join(", ");};var getTTL=function(){var o=fields.ttl;switch(typeof o){case'object':return o.ttlValue;case'string':return(o[0]=='+')?o.substr(1):o;default:return null;}};var getTTLType=function(){var o=fields.ttl;switch(typeof o){case'object':return(o.ttlType=='0')?'relative':'absolute';case'string':return(o[0]=='+')?'relative':'absolute';default:return null;}};var setTTL=function(ttl){return(fields.ttl=ttl);};var setTTLType=function(ttlType){return(fields.ttlType=ttlType);};var getTTLAsString=function(){return Math.round(100*this.getTTL()/3600)/100+'h';} var getTimestamp=function(){return fields.timestamp;};var getTimestampAsDate=function(){return this.getTimestampAsRFC822();};var getTimestampAsString=function(){return this.getTimestampAsRFC822();};var getNicerTimestampAsString=function(){return this.getTimestampAsRFC822();};var getTimestampAsRFC822=function(){var a=fields.timestamp.split(' ');if(a[4]=='BST'){var at=a[3].split(':');var t=at[0];if(t>1){t=t-1;} else{} at[0]=(t<10)?'0'+t.toString():t.toString();a[3]=at.join(':');a[4]='GMT';var s=a[0]+', '+a[2]+' '+a[1]+' '+a[5]+' '+a[3]+' '+a[4];} else{var s=a[0]+', '+a[2]+' '+a[1]+' '+a[5]+' '+a[3]+' '+a[4];} return s;};var getTimestampAsISO8601=function(){var m={'Jan':'01','Feb':'02','Mar':'03','Apr':'04','May':'05','Jun':'06','Jul':'07','Aug':'08','Sep':'09','Oct':'10','Nov':'11','Dec':'12'};var a=fields.timestamp.split(' ');var s=a[5]+'-'+m[a[1]]+'-'+a[2]+'T'+a[3];switch(a[4]){case'GMT':s+='Z';break;case'BST':s+='+01:00';break;case'EDT':s+='-05:00';break;case'EST':s+='-06:00';break;case'CDT':s+='-05:00';break;case'CST':s+='-06:00';break;case'MDT':s+='-05:00';break;case'MST':s+='-06:00';break;case'PDT':s+='-08:00';break;case'PST':s+='-09:00';break;default:} return s;};var setTimestamp=function(timestamp){return(fields.timestamp=timestamp);};var isExpired=function(now,timeRetrieved){};var getReferences=function(){var o=fields.reference;switch(typeof o){case'object':var a=[];return o.referenceList;case'array':return o;default:return null;}};var setReferences=function(reference){return(fields.reference=reference);};var getReferenceCount=function(){var o=fields.reference;switch(typeof o){case'object':var a=[];return o.referenceList;case'array':return o;default:return"0";}};var toString=function(){var s='';s+='index='+fields.index;s+=' type='+fields.type;s+=' data='+fields.data;return s;};var toStringArray=function(){var a=[];a.push('index = '+fields.index);a.push('type = '+fields.type);if(typeof(fields.data)=='object'){a.push('data = {...}');} else{a.push('data = '+fields.data);} a.push('permission = '+this.getPermissionStringLong());a.push('ttl = '+this.getTTLType()+', '+Math.round(100*this.getTTL()/3600)/100+'h');a.push('timestamp = '+this.getTimestampAsRFC822());a.push('reference = '+'[]');return a;};var duplicate=function(value){var o={};for(field in value){o.field=value.field;} return o;};var listMethods=function(){var a=[];for(method in this){a.push(method)}return a;};var getFields=function(){return fields;};var getFieldByName=function(name){switch(name){case'index':return this.getIndex();case'type':return this.getType();case'data':return this.getData();case'permission':return this.getPermission();case'ttl':return this.getTTL();case'timestamp':return this.getTimestamp();case'reference':return this.getReference();default:return null;}};return{getAdminCanRead:getAdminCanRead,getAdminCanWrite:getAdminCanWrite,getAnyoneCanRead:getAnyoneCanRead,getAnyoneCanWrite:getAnyoneCanWrite,getData:getData,getDataAsString:getDataAsString,getIndex:getIndex,getNicerTimestampAsString:getNicerTimestampAsString,getPermissionString:getPermissionString,getReferences:getReferences,getTimestamp:getTimestamp,getTimestampAsDate:getTimestampAsDate,getTimestampAsString:getTimestampAsString,getTTL:getTTL,getTTLType:getTTLType,getType:getType,getTypeAsString:getTypeAsString,getPermission:getPermission,getPermissionStringLong:getPermissionStringLong,getReference:getReferences,getReferenceCount:getReferenceCount,getTimestampAsRFC822:getTimestampAsRFC822,getTimestampAsISO8601:getTimestampAsISO8601,getTTLAsString:getTTLAsString,getFields:getFields,getFieldByName:getFieldByName,setAdminCanRead:setAdminCanRead,setAdminCanWrite:setAdminCanWrite,setAnyoneCanRead:setAnyoneCanRead,setAnyoneCanWrite:setAnyoneCanWrite,setData:setData,setIndex:setIndex,setReferences:setReferences,setTimestamp:setTimestamp,setTTL:setTTL,setTTLType:setTTLType,setType:setType,setPermission:setPermission,duplicate:duplicate,hasType:hasType,isExpired:isExpired,toString:toString,hasSystemType:hasSystemType,listMethods:listMethods,toStringArray:toStringArray};};OpenHandle.AdminRecord=function(args){var fields={"adminRef":"","adminPermission":"111111111111"};if(args!=null&&args!=undefined&&args!='undefined'){for(var f in fields){if(args[f]!=null&&args[f]!=undefined&&args[f]!='undefined'){fields[f]=args[f];}}} var getAdminRef=function(){var o=fields.adminRef;switch(typeof o){case'object':return o.handle+'?index='+o.handleValueIndex;case'string':return o;default:return null;}};var getAdminPermission=function(){var o=fields.adminPermission;switch(typeof o){case'object':var a=[];a.push((o.readValue=="true")?"1":"0");a.push((o.addNa=="true")?"1":"0");a.push((o.deleteHandle=="true")?"1":"0");a.push((o.addAdmin=="true")?"1":"0");a.push((o.removeValue=="true")?"1":"0");a.push((o.deleteNa=="true")?"1":"0");a.push((o.addValue=="true")?"1":"0");a.push((o.addHandle=="true")?"1":"0");a.push((o.listHandles=="true")?"1":"0");a.push((o.removeAdmin=="true")?"1":"0");a.push((o.modifyValue=="true")?"1":"0");a.push((o.modifyAdmin=="true")?"1":"0");return a.join("");case'string':return o;default:return null;}};var AdminPerms=['readValue','addNa','deleteHandle','addAdmin','removeValue','deleteNa','addValue','addHandle','listHandles','removeAdmin','modifyValue','modifyAdmin'];var getAdminPerm=function(perm){return this.getAdminPermission()[perm]==1?true:false;};var setAdminPerm=function(perm){return(fields.permission[perm]=1);};var getAdminPermissionString=function(){var a=[];var getAdminPerm=function(perm){return getAdminPermission()[perm]==1?true:false;};for(var i=0;i/g,">");};var entifyStringArray=function(sa){var a=[];for(var i=0;i has "+hv.length+" values:\n\n";;for(var i=0;i