/*
  * US and international patents pending.
  * copyright 2009 NextDB LLC All rights reserved.
  * contact: info@nextdb.net
 */
(function(){if(window.net&&window.net.nextdb){return}if(!window.net){window.net={}}if(!window.net.nextdb){window.net.nextdb={}}if(!window.net.nextdb.admin){window.net.nextdb.admin={}}if(!window.net.nextdb.html){window.net.nextdb.html={}}net.nextdb.Column=function(e,d,c,f,b,a){if(d!="TEXT"&&d!="LONGTEXT"&&d!="DATE"&&d!="INTEGER"&&d!="LONGINTEGER"&&d!="PASSWORD"&&d!="DECIMAL"&&d!="BINARY"&&d!="LONGBINARY"){alert("invalid xdb.Column typeuse TEXT, LONGTEXT, INTEGER, LONGINTEGER, DECIMAL, BINARY, LONGBINARY");return}this.name=e;this.type=d;this.unique=c;this.defaultValue=f;this.nullable=b;this.owner=a};net.nextdb.Column.prototype.toString=function(){return this.name};net.nextdb.Connection=function(a,b){if(arguments.length>=2){this.companyName=a;this.schema=b}else{if(arguments.length==1){try{this.companyName=a.companyName;this.schema=a.databaseName}catch(c){alert("bad connection parameters")}}}};net.nextdb.Connection.prototype.setURL=function(a){net.nextdb.CONSTANTS.url=a};net.nextdb.Connection.prototype.setTimeout=function(a){net.nextdb.CONSTANTS.requestTimeout=a};net.nextdb.Connection.prototype.getURL=function(a,b){var c=net.nextdb.CONSTANTS.url+"/"+this.companyName+"/"+this.schema+"/"+a+"?"+b;return c};net.nextdb.Connection.prototype.createRelationship=function(d,a,b,c){var e=this.getURL("RELATE_ROWS",net.nextdb.CONSTANTS.generalCallback);e+="&relationshipName="+d;e+="&pk1="+net.nextdb.Util.escape(a);e+="&pk2="+net.nextdb.Util.escape(b);net.nextdb.Request.send(e,c,true)};net.nextdb.Connection.prototype.removeRelationship=function(d,a,b,c){var e=this.getURL("REMOVE_RELATIONSHIP",net.nextdb.CONSTANTS.generalCallback);e+="&relationshipName="+d;e+="&pk1="+net.nextdb.Util.escape(a);e+="&pk2="+net.nextdb.Util.escape(b);net.nextdb.Request.send(e,c,true)};net.nextdb.Connection.prototype.getUploadURL=function(b,a){var c=net.nextdb.CONSTANTS.uploadUrl+"/"+this.companyName+"/"+this.schema+"/post?table="+a+"&uploadID="+b;return c};net.nextdb.Connection.prototype.describeTable=function(a,b){var c=this.getURL("DESCRIBE_TABLE",net.nextdb.CONSTANTS.describeTablesCallback);if(!a){alert("net.nextdb.Connection.prototype.describeTable\n\nplease supply table name")}c+="&name="+a;net.nextdb.Request.send(c,b)};net.nextdb.Connection.prototype.describeQuery=function(c,b){if(!c){alert("net.nextdb.Connection.prototype.describeQueries\n\nplease supply query name");return}var a=this.getURL("DESCRIBE_QUERY",net.nextdb.CONSTANTS.describeQueryCallback);a+="&name="+c;net.nextdb.Request.send(a,b)};net.nextdb.Connection.prototype.uploadProgress=function(c,b){var a=this.getURL("PROGRESS",net.nextdb.CONSTANTS.uploadProgressCallback);a+="&uploadID="+c;net.nextdb.Request.send(a,b)};net.nextdb.Connection.prototype.executeQuery=function(d,b){var a="EXECUTE_QUERY";if(d.admin){a="ADMIN_QUERY"}var e=this.getURL(a,net.nextdb.CONSTANTS.queryCallback);if(d.admin){e+="&table="+d.name}else{e+="&name="+d.name}if(d.pageSize!=null){e+="&pageSize="+d.pageSize}if(d.startAfter!=null){e+="&startAfterPK="+net.nextdb.Util.escape(d.startAfter)}if(d.startAfterValue!=null){e+="&startAfterValue="+net.nextdb.Util.escape((d.startAfterValue))}if(d.orderBy!=null){e+="&orderBy="+d.orderBy}if(d.map){for(var c in d.map){if(d.map.hasOwnProperty(c)){e+=("&"+net.nextdb.Util.escape("${"+c+"}")+"="+net.nextdb.Util.escape(d.map[c])+"")}}}net.nextdb.Request.send(e,b)};net.nextdb.Connection.prototype.executeInsert=function(d,b){var a=this.getURL("INSERT",net.nextdb.CONSTANTS.insertCallback);a+="&_table="+d.table;for(var c in d.map){if(d.map.hasOwnProperty(c)){a+=("&"+c+"="+net.nextdb.Util.escape((d.map[c])))}}if(d.relationshipName&&d.rowId){a+="&_relationshipName="+d.relationshipName;a+="&_FK="+net.nextdb.Util.escape(d.rowId)}if(d.permalinkHandler){net.nextdb.Request.send(a,b,true,d.permalinkHandler)}else{net.nextdb.Request.send(a,b,true)}};net.nextdb.Connection.prototype.executeUpdate=function(b,c){var a=this.getURL("UPDATE",net.nextdb.CONSTANTS.updateCallback);a+="&_table="+b.table;a+="&_PK="+net.nextdb.Util.escape(b.rowId);if(b.map){for(var d in b.map){if(b.map.hasOwnProperty(d)){a+=("&"+d+"="+net.nextdb.Util.escape(b.map[d]))}}}net.nextdb.Request.send(a,c,true)};net.nextdb.Connection.prototype.describeQueries=function(b){var a=this.getURL("DESCRIBE_QUERY",net.nextdb.CONSTANTS.describeQueriesCallback);net.nextdb.Request.send(a,b)};net.nextdb.Connection.prototype.executeDelete=function(a,b){var c=this.getURL("DELETE",net.nextdb.CONSTANTS.generalCallback);c+="&table="+a.tableName;c+="&PK="+net.nextdb.Util.escape(a.rowId);net.nextdb.Request.send(c,b)};net.nextdb.Connection.prototype.executeGenericRequest=function(a,d,b){var e=this.getURL(a,net.nextdb.CONSTANTS.generalDataCallback);if(d){for(var c in d){if(d.hasOwnProperty(c)){e+=("&"+c+"="+net.nextdb.Util.escape(d[c]))}}}net.nextdb.Request.send(e,b)};net.nextdb.CONSTANTS={};net.nextdb.CONSTANTS.logging=1;net.nextdb.CONSTANTS.requestTimeout=90;net.nextdb.CONSTANTS.url="http://www.nextdb.net/nextdb/service";net.nextdb.CONSTANTS.uploadUrl="http://www.nextdb.net/nextdb/upload";net.nextdb.CONSTANTS.captchaUrl="http://www.nextdb.net/nextdb/captcha";net.nextdb.CONSTANTS.generalCallback="callback=net.nextdb.Request.generalCallback";net.nextdb.CONSTANTS.generalDataCallback="callback=net.nextdb.Request.generalDataCallback";net.nextdb.CONSTANTS.queryCallback="callback=net.nextdb.Request.queryCallback";net.nextdb.CONSTANTS.insertCallback="_callback=net.nextdb.Request.insertCallback";net.nextdb.CONSTANTS.updateCallback="_callback=net.nextdb.Request.updateCallback";net.nextdb.CONSTANTS.describeTablesCallback="callback=net.nextdb.Request.describeTablesCallback";net.nextdb.CONSTANTS.pingCallback="callback=net.nextdb.Request.pingCallback";net.nextdb.CONSTANTS.uploadProgressCallback="callback=net.nextdb.Request.uploadProgressCallback";net.nextdb.CONSTANTS.describeQueryCallback="callback=net.nextdb.Request.describeQueryCallback";net.nextdb.Delete=function(a,b){this.tableName=a;this.rowId=b};net.nextdb.Delete.prototype.setTableName=function(a){this.tableName=a};net.nextdb.Delete.prototype.setRowId=function(a){this.rowId=a};net.nextdb.Insert=function(a){this.table=a;this.map={};this.relationshipName;this.rowId;this.permalinkHandler};net.nextdb.Insert.prototype.setParameters=function(a){this.map=a};net.nextdb.Insert.prototype.setPermalinkHandler=function(a){this.permalinkHandler=a};net.nextdb.Insert.prototype.setRelationship=function(b,a){if(!b||!a){alert("development time bug:\n\nbe sure to pass in both the rowId and the relationshipName when calling insert.setRelationship()")}this.rowId=b;this.relationshipName=a};net.nextdb.Query=function(a){this.name=a;this.map;this.startAfterValue="now";this.admin=false;this.startAfter=0;this.pageSize=10000;this.orderBy=null};net.nextdb.Query.prototype.setParameters=function(a){this.map=a};net.nextdb.Query.prototype.setStartAfter=function(a){this.startAfter=a};net.nextdb.Query.prototype.setStartAfterValue=function(a){this.startAfterValue=(a)};net.nextdb.Query.prototype.setPageSize=function(a){this.pageSize=a};net.nextdb.Request=function(){};net.nextdb.Request.scriptId=1;net.nextdb.Request.callbackFunctions=[];net.nextdb.Request.additionalCallbackFunctions=[];net.nextdb.Request.checkExceptions=function(b){var a=undefined;if(b.hasOwnProperty("ApplicationException")){a=new net.nextdb.Error();a.message=b.ApplicationException.message;a.exceptionClass=b.ApplicationException.exceptionClass;if(a.message=="request cannot be completed because user is not logged in."){net.nextdb.Util.createCookie("timeout","true",1);window.location="./index.html";return}a.causedBy=b.ApplicationException.causedBy;if(b.ApplicationException.code==null){a.code=-1}else{a.code=parseInt(b.ApplicationException.code)}}if(b.hasOwnProperty("InternalException")){a=new net.nextdb.Error();a.message=b.InternalException.message;a.exceptionClass=b.InternalException.exceptionClass;a.causedBy=b.InternalException.causedBy;if(b.InternalException.code==null){a.code=-1}else{a.code=parseInt(b.InternalException.code)}}return a};net.nextdb.Request.queryCallback=function(b){var a=net.nextdb.Request.checkExceptions(b);net.nextdb.Request.callbackFunctions[b.id](b.rs,a,b.datatypes);net.nextdb.Request.clearCallback(b.id)};net.nextdb.Request.describeQueryCallback=function(b){var a=net.nextdb.Request.checkExceptions(b);net.nextdb.Request.callbackFunctions[b.id](b,a);net.nextdb.Request.clearCallback(b.id)};net.nextdb.Request.insertCallback=function(b){var a=net.nextdb.Request.checkExceptions(b);var c=null;if(b.hasOwnProperty("generatedPK")){c=b.generatedPK}if(net.nextdb.Request.additionalCallbackFunctions[b.id]){net.nextdb.Request.additionalCallbackFunctions[b.id](b.permalink)}net.nextdb.Request.callbackFunctions[b.id](c,a);net.nextdb.Request.clearCallback(b.id)};net.nextdb.Request.updateCallback=function(b){var a=net.nextdb.Request.checkExceptions(b);net.nextdb.Request.callbackFunctions[b.id](a);net.nextdb.Request.clearCallback(b.id)};net.nextdb.Request.describeTablesCallback=function(c){var a=net.nextdb.Request.checkExceptions(c);var f=[];if(c.Tables){for(var g=0;g<c.Tables.length;g++){var d=new net.nextdb.Table(c.Tables[g].name);d.captcha=c.Tables[g].captcha;var h=c.Tables[g].Columns;for(var b=0;b<h.length;b++){var e=new net.nextdb.Column(h[b].name,h[b].type,h[b].unique,h[b].defaultValue,h[b].nullable,h[b].owner);d.addColumn(e)}f[g]=d}}net.nextdb.Request.callbackFunctions[c.id](f,a);net.nextdb.Request.clearCallback(c.id)};net.nextdb.Request.uploadProgressCallback=function(b){var a=net.nextdb.Request.checkExceptions(b);net.nextdb.Request.callbackFunctions[b.id](b,a);net.nextdb.Request.clearCallback(b.id)};net.nextdb.Request.generalCallback=function(b){var a=net.nextdb.Request.checkExceptions(b);net.nextdb.Request.callbackFunctions[b.id](a);net.nextdb.Request.clearCallback(b.id)};net.nextdb.Request.generalDataCallback=function(b){var a=net.nextdb.Request.checkExceptions(b);net.nextdb.Request.callbackFunctions[b.id](b,a);net.nextdb.Request.clearCallback(b.id)};net.nextdb.Request.send=function(b,e,m,c){var s=net.nextdb.Request.scriptId++;net.nextdb.Request.callbackFunctions[s]=e;if(c){net.nextdb.Request.additionalCallbackFunctions[s]=c}if(b.length<2000){var l=document.createElement("script");l.setAttribute("type","text/javascript");if(m){l.setAttribute("src",b+"&_id="+s)}else{l.setAttribute("src",b+"&id="+s)}l.setAttribute("id",s);document.getElementsByTagName("head").item(0).appendChild(l);setTimeout("net.nextdb.Request.checkTimeout("+s+")",net.nextdb.CONSTANTS.requestTimeout*1000)}else{var j=b.substring(0,b.indexOf("?")+1);var k=b.substring(b.indexOf("?")+1);var d=Math.ceil(Math.random()*10000000);var h=1500;var q=1;while(j.length+k.length>h){q++;if(j.length+(k.length/q)<h){break}}var n=[];var g=Math.ceil(k.length/q);for(var o=0;o<q;o++){var a=Math.round(o*g);var r=Math.round((o*g)+g);if(o+1==q){var f=(net.nextdb.Util.escape((k.substring(a))))}else{var f=(net.nextdb.Util.escape((k.substring(a,r))))}var b=j+"rId="+d+"&chunkNum="+(o)+"&chunkCallback=net.nextdb.Request.multiPartCallback&numChunks="+q+"&chunk="+f;n.push(b)}for(var o=0;o<n.length;o++){var l=document.createElement("script");l.setAttribute("type","text/javascript");l.setAttribute("id",s);l.rid=d;l.cn=o;if(m){l.setAttribute("src",n[o]+"&_id="+s)}else{l.setAttribute("src",n[o]+"&id="+s)}document.getElementsByTagName("head").item(0).appendChild(l)}setTimeout("net.nextdb.Request.checkTimeout("+s+")",net.nextdb.CONSTANTS.requestTimeout*1000)}};net.nextdb.Request.multiPartCallback=function(b){var a=document.getElementsByTagName("script");for(var c=0;c<a.length;c++){if(document.getElementsByTagName("script")[c].rid==b.reqId&&document.getElementsByTagName("script")[c].cn==b.chunkNum){document.getElementsByTagName("head").item(0).removeChild(document.getElementsByTagName("script")[c])}}};net.nextdb.Request.clearCallback=function(a){if(a){net.nextdb.Request.callbackFunctions[a]=null;document.getElementsByTagName("head").item(0).removeChild(document.getElementById(a))}};net.nextdb.Request.checkTimeout=function(b){if(net.nextdb.Request.callbackFunctions[b]){if(!net.nextdb.Request.timeoutError){net.nextdb.Request.timeoutError=new net.nextdb.Error();net.nextdb.Request.timeoutError.message="This request has timed out.  The server might be having problems.  Please try again later."}var d=net.nextdb.Request.callbackFunctions[b].toString();var a=(d.substring(d.indexOf("(")+1,d.indexOf(")")));var c=(a.split(",")).length;if(c==1){net.nextdb.Request.callbackFunctions[b](net.nextdb.Request.timeoutError)}else{if(c==2){net.nextdb.Request.callbackFunctions[b](null,net.nextdb.Request.timeoutError)}else{if(c==3){net.nextdb.Request.callbackFunctions[b](null,null,net.nextdb.Request.timeoutError)}else{if(c==4){net.nextdb.Request.callbackFunctions[b](null,null,null,net.nextdb.Request.timeoutError)}}}}net.nextdb.Request.callbackFunctions[b]=null;net.nextdb.Request.clearCallback(b)}};net.nextdb.Request.timeoutError=undefined;net.nextdb.Table=function(a){this.name=a;this.captcha=false;this.columns=[]};net.nextdb.Table.prototype.addColumn=function(a){this.columns.push(a)};net.nextdb.Table.prototype.removeColumn=function(c){var b=[];for(var a=0;a<this.columns.length;a++){if(this.columns[a].name!=c){b.push(this.columns[a])}}this.columns=b};net.nextdb.Table.prototype.getColumns=function(){return this.columns};net.nextdb.Table.prototype.test=function(){alert(this.name)};net.nextdb.Update=function(a){this.table=a;this.map;this.rowId};net.nextdb.Update.prototype.setParameters=function(a){this.map=a};net.nextdb.Update.prototype.setRowId=function(a){this.rowId=a};net.nextdb.html.FileUpload=function(n,e,b,d,a){this.table=e;this.div=document.createElement("div");this.rowSet;this.conn=n;this.callbackStart=b;this.callbackFinish=d;this.formId="XDBForm"+Math.round(Math.random()*100000000000);this.progress=a;this.uploadID;this.formFieldId="XDBFormField"+Math.round(Math.random()*100000000000);var j=this;var c=document.createElement("form");this.form=c;c.action="";c.method="post";c.id=this.formId;c.name="upLoadForm";c.onsubmit=f;c.enctype="multipart/form-data";c.encoding="multipart/form-data";var m=document.createElement("input");m.type="file";m.name="form[file]";m.id=j.formFieldId;m.onchange=function(){g.click()};c.appendChild(m);this.addClassName=function(r){m.className=r;c.className=r};var g=document.createElement("input");g.type="submit";g.style.display="none";c.appendChild(g);var o;function f(){h();j.callbackStart();return net.nextdb.html.AIM.submit(c,{onStart:q,onComplete:l},j.div)}function h(){var r=Math.round(Math.random()*100000000000);j.uploadID=r;o=j.conn.getUploadURL(r,j.table);document.getElementById(j.formId).action=o}function q(){k();return true}function k(){if(!j.progress){return}j.conn.uploadProgress(j.uploadID,function(r,s){if(s){return s}else{if(!r.rx){setTimeout(k,100);return}if(r.rx<r.totalRX){j.progress(r);setTimeout(k,100)}else{j.progress(r);return}}})}function l(s){var r=(o.replace(/post/,"view"));j.callbackFinish(r);return}};net.nextdb.html.FileUpload.prototype.getElement=function(){return this.form};net.nextdb.html.AIM={frame:function(b){var c="f"+Math.floor(Math.random()*99999);var d=document.createElement("div");d.innerHTML=d.innerHTML+'<iframe style="display:none;" id="'+c+'" name="'+c+'" onload="net.nextdb.html.AIM.loaded(\''+c+"');\"></iframe>";d.id="div_"+c;document.body.appendChild(d);var a=document.getElementById(c);self.frames[c].name=c;if(b&&typeof(b.onComplete)=="function"){a.onComplete=b.onComplete}return c},form:function(b,a){b.setAttribute("target",a)},submit:function(a,b){net.nextdb.html.AIM.form(a,net.nextdb.html.AIM.frame(b));if(b&&typeof(b.onStart)=="function"){return b.onStart()}else{return true}},loaded:function(b){try{var a=document.getElementById(b);if(typeof(a.onComplete)=="function"){a.onComplete(b)}}catch(c){alert(c)}}};net.nextdb.Error=function(){this.code=0;this.message="";this.causedBy="";var a=this;this.exceptionClass="";this.toString=function(){return a.code+" : "+a.message+" : "+a.causedBy};var a=this;this.getMessage=function(){if(a.code==120&&a.causedBy){return"The column "+a.causedBy+" is unique and the value you entered is already taken.  Please try again."}else{return a.message}}};net.nextdb.Util=function(){};net.nextdb.Util.fitTextArea=function(a){return;var b=a.target||window.event.srcElement;if(document.all){b.style.overflow="visible";return}while(b.rows>1&&b.scrollHeight<b.offsetHeight){b.rows--}while(b.scrollHeight>b.offsetHeight){b.rows++}return};net.nextdb.Util.addEvent=function(b,c,a){if(b.attachEvent){b["e"+c+a]=a;b[c+a]=function(){b["e"+c+a](window.event)};b.attachEvent("on"+c,b[c+a])}else{b.addEventListener(c,a,false)}};net.nextdb.Util.removeEvent=function(b,c,a){if(b.detachEvent){b.detachEvent("on"+c,b[c+a]);b[c+a]=null}else{b.removeEventListener(c,a,false)}};net.nextdb.Util.shareDataModel=function(a){return"http://www.nextdb.net/nextdb/service/"+a.companyName+"/"+a.schema+"/EXPORT"};net.nextdb.Util.monthNames=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"];net.nextdb.Util.shortDateFormat=function(c){var a=((c.getHours()+"").length==1?"0"+c.getHours():c.getHours());var b=((c.getMinutes()+"").length==1?"0"+c.getMinutes():c.getMinutes());return net.nextdb.Util.monthNames[c.getMonth()]+" "+c.getDate()+",  "+c.getFullYear()+" "+a+":"+b};net.nextdb.Util.convertToServerDateFormat=function(a){var b=a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate()+" "+a.getHours()+":"+a.getMinutes()+":"+a.getSeconds()+".000 "+c();return b;function c(){var f=a.toString();var d="";var g;var e=f.indexOf("(");if(e>-1){d=f.substring(++e,f.indexOf(")"))}else{var h=/([A-Z\/]+) \d{4}$/;if((g=f.match(h))){d=g[1]}else{f=dateObject.toLocaleString();h=/ ([A-Z\/]+)$/;if((g=f.match(h))){d=g[1]}}}return(d=="AM"||d=="PM")?"":d}};net.nextdb.Util.convertFromServerDateFormat=function(d){try{var f=d.split(" ");var c=f[0].split("-");var g=f[1].split(":");var a=new Date();a.setUTCFullYear(c[0]);var e=a.setUTCMonth(parseInt(c[1],10)-1);a.setUTCDate(c[2],10);a.setUTCHours(g[0]);a.setUTCMinutes(g[1]);a.setUTCSeconds(g[2]);return a}catch(b){throw ("invalid date string from server : "+d)}};net.nextdb.Util.convertFromLocalServerDateFormat=function(d){try{var f=d.split(" ");var c=f[0].split("-");var g=f[1].split(":");var a=new Date();a.setFullYear(c[0]);var e=a.setMonth(parseInt(c[1],10)-1);a.setDate(c[2],10);a.setHours(g[0]);a.setMinutes(g[1]);a.setSeconds(g[2]);return a}catch(b){throw ("invalid date string from server : "+d)}};net.nextdb.Util.isServerDateFormat=function(b){var a=/^(19|20)\d\d[-](0[1-9]|[1-9]|1[012])[-](0[1-9]|[1-9]|[12][0-9]|3[01]).*GMT$/;if(a.test(b)==false){return false}return true};net.nextdb.Util.printAll=function(c){var e=c.attributes,d,a,b;if(e){a=e.length;for(d=0;d<a;d+=1){b=e[d];if(b.name=="id"){net.nextdb.Util.p(b.value)}}}e=c.childNodes;if(e){a=e.length;for(d=0;d<a;d+=1){net.nextdb.Util.printAll(c.childNodes[d])}}};net.nextdb.Util.purge=function(c){var e=c.attributes,d,a,b;if(e){a=e.length;for(d=0;d<a;d+=1){b=e[d].name;if(typeof c[b]==="function"){c[b]=null}}}e=c.childNodes;if(e){a=e.length;for(d=0;d<a;d+=1){net.nextdb.Util.purge(c.childNodes[d])}}};net.nextdb.Util.getAbsoluteLeft=function(b){var c=b.offsetLeft;var a=b.offsetParent;while(a!=null){c+=a.offsetLeft;a=a.offsetParent}return c};net.nextdb.Util.getAbsoluteTop=function(b){var c=b.offsetTop;var a=b.offsetParent;while(a!=null){c+=a.offsetTop;a=a.offsetParent}return c};net.nextdb.Util.validateEmail=function(a){var b=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;if(b.test(a)==false){return false}return true};net.nextdb.Util.googleAPI=null;net.nextdb.Util.visualizeQuery=function(c,b){if(net.nextdb.Util.googleAPI==null){net.nextdb.Util.googleAPI=document.createElement("script");net.nextdb.Util.googleAPI.setAttribute("type","text/javascript");net.nextdb.Util.googleAPI.setAttribute("src","http://www.google.com/jsapi");document.getElementsByTagName("head").item(0).appendChild(net.nextdb.Util.googleAPI);net.nextdb.Util.googleAPI.onload=function(){net.nextdb.Util.visualizeQuery(c,b)}}else{var a=function(){var d=new google.visualization.DataTable();d.addRows(c.length);for(var f in c[0]){for(var h in c[0][f]){if(net.nextdb.Util.isServerDateFormat(c[0][f][h])){d.addColumn("date",h)}else{d.addColumn("string",h)}}}var g=0;for(var j=0;j<c.length;j++){for(var f in c[j]){for(var h in c[j][f]){if(net.nextdb.Util.isServerDateFormat(c[j][f][h])){d.setCell(j,g,net.nextdb.Util.convertFromServerDateFormat(c[j][f][h]))}else{d.setCell(j,g,""+c[j][f][h])}g++}g=0}}var e=new google.visualization.Table(b);e.draw(d,{showRowNumber:true})};google.load("visualization","1",{packages:["table"],callback:a})}};net.nextdb.Util.formParser=function(a){return net.nextdb.Util.parseForm(a)};net.nextdb.Util.parseForm=function(d){var c={};if(!d||!d.hasChildNodes()){alert("illegal argument to net.nextdb.Util.parseForm\n\nBe sure to pass in a valid HTML DOM node with child input elements to be parsed.");return}a(d);function a(e){b(e);if(e.hasChildNodes()){for(var f=0;f<e.childNodes.length;f++){a(e.childNodes[f])}}}function b(e){if(e.nodeName.toLowerCase()=="input"&&e.type.toLowerCase()=="text"){c[e.name]=e.value}else{if(e.nodeName.toLowerCase()=="input"&&e.type.toLowerCase()=="password"){c[e.name]=e.value}else{if(e.nodeName.toLowerCase()=="input"&&e.type.toLowerCase()=="hidden"){c[e.name]=e.value}else{if(e.nodeName.toLowerCase()=="input"&&e.type.toLowerCase()=="checkbox"){c[e.name]=e.checked}else{if(e.nodeName.toLowerCase()=="input"&&e.type.toLowerCase()=="radio"){c[e.name]=e.checked}else{if(e.nodeName.toLowerCase()=="textarea"){c[e.name]=e.value}else{if(e.nodeName.toLowerCase()=="select"&&e.name&&e.name!=""){c[e.name]=e[e.selectedIndex].value}}}}}}}}return c};net.nextdb.Util.c=function(){if(document.getElementById("nextdb:console")){document.getElementById("nextdb:console").innerHTML=""}};net.nextdb.Util.p=function(a,b){if(b&&b<net.nextdb.CONSTANTS.logging){return}if(document.getElementById("nextdb:console")){document.getElementById("nextdb:console").innerHTML+="<br/>"+a}else{var c=document.createElement("div");c.style.position="absolute";c.style.top="10px";c.style.left="10px";c.style.scrolling="on";c.style.width="800px";c.style.height="500px";c.style.overflow="auto";c.style.zIndex="300";c.style.padding="10px";c.style.border="4px solid #cccccc";c.style.opacity="0.65";c.style.filter="alpha(opacity=65)";c.style.fontSize="9pt";c.style.fontFamily="verdana";c.style.border="3px inset #008F00";c.style.color="#CCFF66";c.style.backgroundColor="#333333";c.id="nextdb:console";document.body.appendChild(c);c.innerHTML+="<br/>"+a}document.getElementById("nextdb:console").style.display="block";document.getElementById("nextdb:console").onclick=function(){document.getElementById("nextdb:console").style.display="none"}};net.nextdb.Util.escape=function(k){k=k+"";var e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.~";var c="!*'();:@&=+$,/?%#[]";var g=e+c;var h="0123456789ABCDEFabcdef";function f(l){return"%"+h.charAt(l>>4)+h.charAt(l&15)}var b="";for(var a=0;a<k.length;a++){var d=k.charAt(a);if(e.indexOf(d)!=-1){b=b+d}else{var j=k.charCodeAt(a);if(j<128){b=b+f(j)}if(j>127&&j<2048){b=b+f((j>>6)|192);b=b+f((j&63)|128)}if(j>2047&&j<65536){b=b+f((j>>12)|224);b=b+f(((j>>6)&63)|128);b=b+f((j&63)|128)}if(j>65535){b=b+f((j>>18)|240);b=b+f(((j>>12)&63)|128);b=b+f(((j>>6)&63)|128);b=b+f((j&63)|128)}}}return b};net.nextdb.Util.escapeBraces=function(a){for(var b in a){a[b]=a[b].replace(/\]/g,">").replace(/\[/g,"<")}return a};net.nextdb.Util.escapeBrakets=function(a){return a.replace(/\>/g,"&gt;").replace(/\</g,"&lt;")};net.nextdb.Util.yellowerize=function(a){a.onfocus=function(b){if(document.all){window.event.srcElement.style.backgroundColor="#ffffcc"}else{b.target.style.backgroundColor="#ffffcc"}};a.onblur=function(b){if(document.all){window.event.srcElement.style.backgroundColor="#eeeeee"}else{b.target.style.backgroundColor="#eeeeee"}}};net.nextdb.Util.what=function(a){net.nextdb.Util.inspect(a)};net.nextdb.Util.inspect=function(b){var a="object inspection:\n\n";for(p in b){a+="\t"+p+" = "+b[p]+"\n"}alert(a)};net.nextdb.Util.trim=function(a){return a.replace(/^\s+|\s+$/g,"")};net.nextdb.Util.byId=function(a){return document.getElementById(a)};net.nextdb.Util.sourceCaptchaImg=function(d,a,b){var c=net.nextdb.CONSTANTS.captchaUrl+"?width=175&height=80";if(a){c+="&fg="+a.replace("#","")}if(b){c+="&bg="+b.replace("#","")}c+="&cruft="+Math.random();d.src=c};net.nextdb.Util.createCookie=function(d,c,b){if(b){var e=new Date();e.setTime(e.getTime()+(b*24*60*60*1000));var a="; expires="+e.toGMTString()}else{var a=""}document.cookie=d+"="+c+a+"; path=/"};net.nextdb.Util.readCookie=function(e){var c=e+"=";var a=document.cookie.split(";");for(var d=0;d<a.length;d++){var b=a[d];while(b.charAt(0)==" "){b=b.substring(1,b.length)}if(b.indexOf(c)==0){return b.substring(c.length,b.length)}}return null};net.nextdb.Util.eraseCookie=function(a){net.nextdb.Util.createCookie(a,"",-1)};net.nextdb.Util.print=function(a,b){net.nextdb.Util.p(a,b)};net.nextdb.Util.parseDate=function(a){return net.nextdb.Util.convertFromServerDateFormat(a)};net.nextdb.Util.getCaptchaURL=function(a){a.src=net.nextdb.CONSTANTS.captchaUrl+"?width=175&height=80&cruft="+Math.random()};net.nextdb.Util.uc=function(){if(document.getElementById("nextdb:usage-console")){document.getElementById("nextdb:usage-console").innerHTML=""}};net.nextdb.Util.up=function(a,b){if(document.getElementById("nextdb:usage-console")){document.getElementById("nextdb:usage-console").innerHTML+="<br/>"+a}else{var c=document.createElement("div");c.style.position="absolute";c.style.top="10px";c.style.left="10px";c.style.scrolling="on";c.style.width="600px";c.style.height="300px";c.style.overflow="auto";c.style.zIndex="300";c.style.padding="10px";c.style.border="4px solid #cccccc";c.style.fontSize="9pt";c.style.fontFamily="verdana";c.style.border="3px inset #008F00";c.style.color="#CCFF66";c.style.backgroundColor="#ffffff";c.id="nextdb:usage-console";document.body.appendChild(c);c.innerHTML+="<br/>"+a}document.getElementById("nextdb:usage-console").style.display="block";document.getElementById("nextdb:usage-console").onclick=function(){document.getElementById("nextdb:usage-console").style.display="none"}};net.nextdb.Util.view=function(a){net.nextdb.Util.p(a)};net.nextdb.Util.createElement=function(a){if(document.all){return document.createElement("<"+a+">")}else{return document.createElement(a)}};net.nextdb.Util.buildForm=function(a){};net.nextdb.validate={};net.nextdb.validate.EMAIL={regex:/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,message:"valid email required"};net.nextdb.validate.REQUIRED={regex:/./,message:"? required"};net.nextdb.validate.NUMERIC={regex:/^\d+$/,message:"? must be numeric"};net.nextdb.validate.STRONG_PASSWORD={regex:/(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/,message:"? must be at least 8 mixed case alphanumeric characters"};net.nextdb.validate.OPTIONAL={regex:null,message:""};net.nextdb.html.Calendar=function(av,az){var n=n;var ak=av||new Date();var az=az||{border:"rgb(200, 200, 200)",font:"rgb(8, 8, 8)",background:"rgb(255, 255, 255)",selectedBackground:"rgb(0, 88, 0)",selectedFont:"rgb(255, 255, 255)",mouseoverBackground:"rgb(200, 200, 200)",mouseoverFont:"rgb(0, 0, 0)"};var ar=["January","February","March","April","May","June","July","August","September","October","November","December"];var t=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var ai=[31,28,31,30,31,30,31,31,30,31,30,31];if(al()){ai[1]=29}this.date=function(){return ak};var aj=new RegExp(/\s/g);this.input=w("input");if(av){this.input.value=net.nextdb.Util.convertToServerDateFormat(av)}this.selectType="BUTTON";this.body=w("div");var z=this.body;var an=this.input;z.style.backgroundColor=az.background;z.style.color=az.font;z.style.position="absolute";z.style.zIndex="100000";z.style.display="none";z.style.width="150px";z.style.border="3px solid "+az.border;z.style.textAlign="center";z.style.padding="4px";z.style.fontFamily="arial";z.style.fontSize="8pt";var ag=w("div");ag.style.position="relative";ag.style.height="24px";var v=w("span");v.style.position="absolute";v.style.left="6px";v.style.color=az.font;v.style.fontFamily="verdana";v.style.fontSize="8pt";v.style.fontWeight="bold";v.style.textAlign="center";v.innerHTML="&lt;&lt;";v.onclick=ax;v.id="nextdb:cal-back-arrow";var q=w("span");q.innerHTML="&gt;&gt;";q.style.position="absolute";q.style.fontFamily="verdana";q.style.color=az.font;q.style.fontSize="8pt";q.style.fontWeight="bold";q.style.left="120px";q.style.textAlign="center";q.onclick=aa;q.id="nextdb:cal-forward-arrow";var aA=w("span");aA.style.position="absolute";aA.style.left="30px";aA.style.minWidth="80px";aA.style.fontFamily="arial";aA.style.fontWeight="bold";aA.style.fontSize="8pt";aA.style.color=az.font;aA.style.backgroundColor=az.background;aA.style.textAlign="center";aA.innerHTML=ar[ak.getMonth()]+" "+ak.getFullYear();aA.id="nextdb:cal-month-view";ag.appendChild(v);ag.appendChild(aA);ag.appendChild(q);z.appendChild(ag);var ap=w("td");ap.style.width="10px";ap.style.height="8px";ap.style.padding="3px";ap.style.fontSize="7pt";ap.style.border="1px solid "+az.border;ap.style.textAlign="center";ap.style.cursor="hand";var ao=w("table");var r=w("tBody");var x=w("tr");for(aw=0;aw<7;aw++){var y=ap.cloneNode(false);y.innerHTML=t[aw].substr(0,1);x.appendChild(y)}r.appendChild(x);z.style.align="center";ao.appendChild(r);z.appendChild(ao);var aq=w("table");ac();z.appendChild(aq);var s=w("select");s.onchange=am;s.style.color=az.font;s.style.backgroundColor=az.background;s.style.fontSize="8pt";for(var aw=0;aw<24;aw++){var o=w("option");o.style.backgroundColor=az.background;if((aw==ak.getHours())){o.selected="true"}o.value=aw;if(aw==0){o.text="12 AM"}else{if(aw<12){o.text=aw+" AM"}else{if(aw==12){o.text="12 PM"}else{o.text=Math.abs(12-aw)+" PM"}}}if(document.all){s.add(o,aw)}else{s.appendChild(o)}}z.appendChild(s);var au=w("select");au.onchange=ah;au.style.color=az.font;au.style.backgroundColor=az.background;au.style.fontFamily="arial";au.style.fontSize="8pt";for(var aw=0;aw<60;aw++){var o=w("option");if((aw==ak.getMinutes())){o.selected="true"}o.value=aw<10?"0"+aw:aw;o.text=o.value;o.style.backgroundColor=az.background;if(document.all){au.add(o,aw)}else{au.appendChild(o)}}z.appendChild(au);var ae=w("input");ae.type="button";ae.onclick=ab;ae.value="set";ae.style.fontFamily="arial";ae.style.fontSize="8pt";z.appendChild(ae);function ac(){if(u("nextdb:cal-table")){aq.removeChild(u("nextdb:cal-table"))}var e=w("tBody");e.id="nextdb:cal-table";var g=w("tr");e.appendChild(g);var a=new Date(ak.getFullYear(),ak.getMonth());a.setDate(1);var c=a.getDay();var d=1;for(var j=0;j<7;j++){var f=ap.cloneNode(false);if(j<c){f.innerHTML="&nbsp;"}else{if(ak.getDate()==d){f.innerHTML=d;f.style.backgroundColor=az.selectedBackground;f.style.color=az.selectedFont}else{f.innerHTML=d}f.onmouseover=ay;f.onmouseout=af;f.onclick=at;d++}g.appendChild(f)}var g=w("tr");e.appendChild(g);var b=0;var h=ai[ak.getMonth()]-d;for(var j=0;j<=h;j++){var f=ap.cloneNode(false);if(ak.getDate()==d){f.innerHTML=d;f.style.backgroundColor=az.selectedBackground;f.style.color=az.selectedFont}else{f.innerHTML=d}f.onmouseover=ay;f.onmouseout=af;f.onclick=at;g.appendChild(f);d++;b++;if(b==7){b=0;g=w("tr");e.appendChild(g)}}aq.appendChild(e)}function ay(a){if(document.all){var b=window.event.srcElement}else{var b=a.target}if(b.style.backgroundColor.replace(aj,"")!=az.selectedBackground.replace(aj,"")){b.style.backgroundColor=az.mouseoverBackground;b.style.color=az.mouseoverFont}}function af(a){if(document.all){var b=window.event.srcElement}else{var b=a.target}if(b.style.backgroundColor.replace(aj,"")!=az.selectedBackground.replace(aj,"")){b.style.backgroundColor=az.background;b.style.color=az.font}}function at(b){if(document.all){var a=window.event.srcElement}else{var a=b.target}var c=u("nextdb:cal-table").getElementsByTagName("td");for(var d=0;d<c.length;d++){c[d].style.backgroundColor=az.background;c[d].style.color=az.font}ak.setDate(a.innerHTML);ab();a.style.backgroundColor=az.selectedBackground;a.style.color=az.selectedFont}function ad(){ak.setYear(yearSelect[yearSelect.selectedIndex].value);if(al()){ai[1]=29}ac()}function ax(){ak.setMonth(ak.getMonth()-1);ac();u("nextdb:cal-month-view").innerHTML=ar[ak.getMonth()]+" "+ak.getFullYear()}function aa(){ak.setMonth(ak.getMonth()+1);ac();u("nextdb:cal-month-view").innerHTML=ar[ak.getMonth()]+" "+ak.getFullYear()}function am(){ak.setHours(s[s.selectedIndex].value)}function ah(){ak.setMinutes(au[au.selectedIndex].value)}function ab(){z.style.display="none";var a=net.nextdb.Util.convertToServerDateFormat(ak);an.value=a;if(an.callback){an.callback(a)}}function al(){if((ak.getFullYear()%4)==0){if((ak.getFullYear()%100==0)&&(ak.getFullYear()%400)!=0){return false}else{return true}}else{return false}}function u(a){return document.getElementById(a)}function w(a){if(document.all){var b=document.createElement("<"+a+">")}else{var b=document.createElement(a)}return b}};net.nextdb.html.Calendar.prototype.getElement=function(){this.input.type="text";var a=this;this.input.onfocus=function(){a.input.parentNode.appendChild(a.body);a.body.style.display="block"};return this.input};net.nextdb.html.Calendar.prototype.setCallback=function(a){this.input.callback=a};net.nextdb.html.Calendar.prototype.setSelectType=function(a){if(!a||a!="BUTTON"||a!="DAYCLICK"){alert("invalid value in setting Calendar.setSelectType() \n\n entered : "+a);return}this.selectType=a};net.nextdb.html.Reflector=function(){Array.prototype.___isArray=true;var g=0;var c="";var j=false;var l=-1;var m=this;this.reflect=function(o){g++;if(j){l++;if(typeof(o)==="number"||typeof(o)==="string"){b(k()+((typeof(o)==="number")?d(o):e(o)));g--;return}}for(var n in o){var q;if(o[n]==null||o[n]==undefined){b(f("object "+n+"= null"));continue}if(typeof(o[n])==="object"){if((o[n].___isArray)){j=true;b(f("array ")+n+" ("+o[n].length+")");for(var r=0;r<o[n].length;r++){m.reflect(o[n][r])}j=false;l=-1}else{b(f("object ")+n);m.reflect(o[n])}}else{if(typeof(o[n])==="string"){b(f("string ")+n+k()+e(o[n]))}else{if(typeof(o[n])==="number"){b(f("number ")+n+k()+d(o[n]))}}}}g--};this.getHTML=function(){return"<style>span{font-size:9pt} pre{font-size:9pt} .s { color: green } .t { color: blue } .n { color: red } .r { color: #DD7777; font-weight:bold } .literal { color: #5555FF }</style><pre>"+c+"</pre>"};this.show=function(){var n;if(document.getElementById("nextdb:reflector")){n=document.getElementById("nextdb:reflector");n.innerHTML+="<style>span{font-size:9pt} pre{font-size:9pt} .s { color: green } .t { color: blue } .n { color: red } .r { color: #DD7777; font-weight:bold } .literal { color: #5555FF }</style>";n.innerHTML+="<pre>"+c+"</pre>"}else{n=document.createElement("div");n.style.position="relative";n.style.width="768px";n.style.padding="8px";n.style.backgroundColor="#ffffff";n.style.fontSize="14pt";n.style.border="1px inset #cccccc";n.id="nextdb:reflector";document.body.appendChild(n);n.innerHTML+="<style>span{font-size:9pt} pre{font-size:9pt} .s { color: green } .t { color: blue } .n { color: red } .r { color: #DD7777; font-weight:bold } .literal { color: #5555FF }</style>";n.innerHTML+="<pre>"+c+"</pre>"}};function e(n){return"<span class='s'>\""+n+'"</span>'}function k(){return"<span class='r'>=</span>"}function f(n){return"<img src='http://www.nextdb.net/admin/img/arrow.png'><span class='t'>"+n+"</span>"}function d(n){return"<span class='n'>"+n+"</span>"}function h(){var n="";for(var o=0;o<g;o++){n+="\t"}return n}function b(n){if(l!=-1){c+=h()+"["+l+"]"+n+"\n"}else{c+=h()+n+"\n"}}function a(n){n.target.parent.style.display="none"}};net.nextdb.html.Form=function(){this.form;this.columns;this._interceptor;this._hiddenColumns=[];this._omitFields=[];this._defaultValues={};this._options={};this._expandable=[];this._confirmFields=[];this._obscureFields=[];this._cancelCallback=null;this._validation={};this._layout=1};net.nextdb.html.Form.prototype.interceptor=function(a){this._interceptor=a;return this};net.nextdb.html.Form.prototype.cancelCallback=function(a){this._cancelCallback=a;return this};net.nextdb.html.Form.prototype.layout=function(a){this._layout=a;return this};net.nextdb.html.Form.prototype.expandFields=function(a){this._expandable=a;return this};net.nextdb.html.Form.prototype.omitFields=function(a){this._omitFields=a;return this};net.nextdb.html.Form.prototype.confirmFields=function(a){this._confirmFields=a;return this};net.nextdb.html.Form.prototype.setMessageId=function(a){this.errorId=a;return this};net.nextdb.html.Form.prototype.message=function(b,a){var c=document.getElementById(this.errorId);if(a){c.style.color=a}else{c.style.color="#cc0000"}c.innerHTML=b;return this};net.nextdb.html.Form.prototype.obscureFields=function(a){this._obscureFields=a;return this};net.nextdb.html.Form.prototype.options=function(a){this._options=a;return this};net.nextdb.html.Form.prototype.defaultValues=function(a){this._defaultValues=a;return this};net.nextdb.html.Form.prototype.validation=function(a){this._validation=a;return this};net.nextdb.html.Form.prototype.destroy=function(){if(document.getElementById(this.objectId)){net.nextdb.Util.purge(document.getElementById(this.objectId));document.getElementById(this.objectId).parentNode.removeChild(document.getElementById(this.objectId))}return this};net.nextdb.html.Form.prototype.render=function(a){};net.nextdb.html.Form.prototype.doAction=function(){};net.nextdb.html.QueryForm=function(a,b){this.objectId=Math.round(Math.abs(Math.random()*10000000));this.errorId="nextdb-form-msg-"+this.objectId;this.type="QUERY";this.conn=a;this.queryName=b;this.callback;return this};net.nextdb.html.QueryForm.prototype=new net.nextdb.html.Form;net.nextdb.html.QueryForm.prototype.queryCallback=function(a){this.callback=a;return this};net.nextdb.html.QueryForm.prototype.describeQuery=function(){var a=this;this.conn.describeQuery(this.queryName,function(b,c){if(c){alert(c)}else{a.columns={};for(var d in b[a.queryName.toString()].whereParameters){a.columns[d.toString()]={};var e=b[a.queryName.toString()].whereParameters[d.toString()];if(e.indexOf("SURID")==0){a.columns[d.toString()].dataType="TEXT"}else{if(e=="INTEGER"){a.columns[d.toString()].dataType="LONGINTEGER"}else{a.columns[d.toString()].dataType=e}}if(e=="INTEGER"){a.columns[d.toString()].validate=net.nextdb.validate.NUMERIC}else{a.columns[d.toString()].validate=net.nextdb.validate.REQUIRED}}}a.div.appendChild(a.build())})};net.nextdb.html.QueryForm.prototype.doAction=function(){var a=new net.nextdb.Query(this.queryName);var b=net.nextdb.Util.parseForm(document.getElementById(this.objectId));a.setParameters(b);if((typeof this.callback=="function")){this.conn.executeQuery(a,this.callback)}else{this.conn.executeQuery(a,function(){})}};net.nextdb.html.QueryForm.prototype.render=function(a){this.div=a;this.describeQuery()};net.nextdb.html.InsertForm=function(b,a){this.objectId=Math.round(Math.abs(Math.random()*10000000));this.errorId="nextdb-form-msg-"+this.objectId;this.type="INSERT";this.conn=b;this.tableName=a;this.linkId;this.callback;this.captchaStyle={bg:"#FFFFFF",fg:"#333333"};return this};net.nextdb.html.InsertForm.prototype=new net.nextdb.html.Form;net.nextdb.html.InsertForm.prototype.insertAndLink=function(b,a){this.relationshipName=a;this.linkId=b};net.nextdb.html.InsertForm.prototype.insertCallback=function(a){this.callback=a;return this};net.nextdb.html.InsertForm.prototype.captchaColors=function(a){if(!a.fg||!a.bg){alert('invalid call to captchaColors\n\n please use this object literal format: {bg:"#FFFFFF",fg:"#333333"}');return}this.captchaStyle=a;return this};net.nextdb.html.InsertForm.prototype.describeTable=function(){var a=this;this.conn.describeTable(this.tableName,function(c,e){if(e){alert(e)}else{a.columns={};var b=c[0];for(var d=0;d<b.columns.length;d++){if(b.columns[d].owner==null){var f=b.columns[d].type=="INTEGER"?net.nextdb.validate.NUMERIC:net.nextdb.validate.REQUIRED;a.columns[b.columns[d].name]={dataType:b.columns[d].type,validate:f}}}if(b.captcha=="true"){a.captcha=true}}a.div.appendChild(a.build())})};net.nextdb.html.InsertForm.prototype.doAction=function(){var c=this;var a=new net.nextdb.Insert(this.tableName);var b=net.nextdb.Util.parseForm(document.getElementById(this.objectId));if(this.relationshipName&&this.linkId){a.setRelationship(this.linkId,this.relationshipName)}if(this._interceptor){this._interceptor(b,a)}a.setParameters(b);if((typeof this.callback=="function")){this.conn.executeInsert(a,this.callback)}else{this.conn.executeInsert(a,function(e,f){if(f){var d;if(f.code==120){d="field "+f.causedBy+" must be unique, the value you entered is already taken"}else{if(f.code==130){d="field "+f.causedBy+" threw a data format exception, please check data format"}else{if(f.code==110){d="incorrect security CAPTCHA word";c.columns.captcha.node.style.border="1px solid #cc0000"}else{d=f.message}}}error="insert failed. "+d;c.message(error,"red")}else{error="insert succeeded";c.message(error,"green");if(document.getElementById("nextdb-captcha"+c.objectId)){net.nextdb.Util.sourceCaptchaImg(document.getElementById("nextdb-captcha"+c.objectId))}}})}};net.nextdb.html.InsertForm.prototype.render=function(a){this.div=a;this.describeTable()};net.nextdb.html.UpdateForm=function(b,a){this.objectId=Math.round(Math.abs(Math.random()*10000000));this.errorId="nextdb-form-msg-"+this.objectId;this.type="UPDATE";this.conn=b;this.callback;this.tableName=a;return this};net.nextdb.html.UpdateForm.prototype=new net.nextdb.html.Form;net.nextdb.html.UpdateForm.prototype.setRowId=function(a){this.rowId=a;return this};net.nextdb.html.UpdateForm.prototype.updateCallback=function(a){this.callback=a;return this};net.nextdb.html.UpdateForm.prototype.describeTable=function(){var a=this;this.conn.describeTable(this.tableName,function(c,e){if(e){alert(e)}else{a.columns={};var b=c[0];for(var d=0;d<b.columns.length;d++){if(b.columns[d].owner==null){var f=b.columns[d].type=="INTEGER"?net.nextdb.validate.NUMERIC:net.nextdb.validate.REQUIRED;a.columns[b.columns[d].name]={dataType:b.columns[d].type,validate:f}}}a.div.appendChild(a.build())}})};net.nextdb.html.UpdateForm.prototype.doAction=function(a){if(!this.rowId){alert("you must pass in a valid updatePK to the UpdateForm in order to identify the row you wish to update.");return}var d=new net.nextdb.Update(this.tableName);d.setRowId(this.rowId);var b=net.nextdb.Util.parseForm(document.getElementById(this.objectId));if(this.interceptor){this.interceptor(b,d)}d.setParameters(b);var c=this;if((typeof this.callback=="function")){this.conn.executeUpdate(d,this.callback)}else{this.conn.executeUpdate(d,function(f){if(f){var e;if(f.code==120){e="field "+f.causedBy+" must be unique, the value you entered is already taken"}else{if(f.code==130){e="field "+f.causedBy+" threw a data format exception, please check data format"}else{e=f.message}}error="update failed. "+e;c.message(error,"red")}else{c.message("update succeeded","green")}if(this.callback){this.callback(f)}})}};net.nextdb.html.UpdateForm.prototype.render=function(a){this.div=a;this.describeTable();return this};net.nextdb.html.Form.prototype.build=function(){for(var au=0;au<this._expandable.length;au++){if(this.columns[this._expandable[au].toString()]){this.columns[this._expandable[au].toString()].expandable=true}}for(var au=0;au<this._obscureFields.length;au++){if(this.columns[this._obscureFields[au].toString()]){this.columns[this._obscureFields[au].toString()].dataType="PASSWORD"}}for(var au=0;au<this._omitFields.length;au++){if(this.columns[this._omitFields[au].toString()]){delete this.columns[this._omitFields[au].toString()]}}for(var ae in this._defaultValues){if(this.columns[ae]){this.columns[ae].defaultValue=this._defaultValues[ae]}}for(var af in this._options){if(this.columns[af]){this.columns[af].options=this._options[af]}}for(var t in this._validation){if(this.columns[t]){this.columns[t].validate=this._validation[t]}}var aB=this;function at(){var d="";for(var g in aB.columns){if(aB.columns[g].validate&&aB.columns[g].node){var f=aB.columns[g].validate.regex.test(aB.columns[g].node.value);if(aB.columns[g].node2){if(aB.columns[g].node2.value!=aB.columns[g].node.value){d+=" "+(aB.columns[g].node.name).replace(/_/g," ")+" fields must match, ";aB.columns[g].node.style.border=az;aB.columns[g].node2.style.border=az;continue}else{if(!f){aB.columns[g].node2.style.border=az}else{aB.columns[g].node2.style.border=""}}}if(!f){var a=(aB.columns[g].node.name).replace(/_/g," ");var e=aB.columns[g].validate.message.replace("?",a);d+=e+", ";aB.columns[g].node.style.border=az}else{aB.columns[g].node.style.border=""}}}if(d!=""){d=d.substring(0,d.length-2);aB.message(d)}else{aB.message("");aB.doAction()}}function am(e,a){var f;var d=new net.nextdb.html.FileUpload(aB.conn,aB.table,function(){f=aC.value;aC.value="loading...";e.firstChild.style.display="none";e.appendChild(s("div"));aC.disabled=true},function(g){aC.value=f;aC.disabled=false;e.innerHTML="<input type='hidden' name='"+a+"' value='"+g+"'><img src='http://www.nextdb.net/img/file.png'> File loaded and ready for "+aB.type},function(k){var h=k.rx;var g=k.totalRX;var j=(Math.round((h/g)*100))+"%";e.lastChild.innerHTML=j;if(j=="100%"){aC.value=f}});return d}var s=net.nextdb.Util.createElement;var u="&nbsp;";var az="1px solid #CC0000";var b=s("form");var ag=s("table");ag.className="form";b.appendChild(ag);b.id=this.objectId;var ab=s("tBody");ag.appendChild(ab);var aa=s("tr");var ak=s("td");if(this._layout==net.nextdb.html.Form.BOX_LAYOUT){ak.colSpan="2"}else{if(this._layout==net.nextdb.html.Form.HORIZONTAL_LAYOUT){ak.colSpan="5"}}if(this.errorId){ak.id=this.errorId}ak.innerHTML="&nbsp;";ak.style.margin="4px";ak.style.padding="4px";aa.appendChild(ak);ab.appendChild(aa);var y=true;var ai;function c(d,g){if(aB._layout==net.nextdb.html.Form.BOX_LAYOUT){var a=s("tr");a.appendChild(d);a.appendChild(g);ab.appendChild(a)}else{if(aB._layout==net.nextdb.html.Form.HORIZONTAL_LAYOUT){if(y){ai=s("tr");ai.appendChild(d);ai.appendChild(g);ab.appendChild(ai);y=false}else{ai.appendChild(d);ai.appendChild(g)}}else{if(aB._layout==net.nextdb.html.Form.VERTICAL_LAYOUT){var e=s("tr");var f=s("tr");e.appendChild(d);f.appendChild(g);ab.appendChild(e);ab.appendChild(f)}}}}for(var al in this.columns){var z=s("td");var ac=s("td");z.innerHTML=al.replace(/_/g," ");if(this.columns[al].dataType=="LONGBINARY"){var ad=document.createElement("div");ad.name=al;ac.appendChild(ad);var aq=am(ac,al);ad.appendChild(aq.form);c(z,ac);this.columns[al].node=ad}else{if(this.columns[al].dataType=="DATE"){var ar=new net.nextdb.html.Calendar();var an=ar.getElement();an.type="text";an.name=al;z.innerHTML+="<br>[click to open]";an.value=this.columns[al].defaultValue||"";ac.appendChild(an);c(z,ac);this.columns[al].node=an}else{if(this.columns[al].dataType=="TEXT"||this.columns[al].dataType=="HIDDEN"||this.columns[al].dataType=="PASSWORD"||this.columns[al].dataType=="LONGINTEGER"||this.columns[al].dataType=="DECIMAL"){if(this.columns[al].options){var ay=s("select");ay.name=al;for(var af in this.columns[al].options){var aA=s("option");aA.value=this.columns[al].options[af];aA.text=this.columns[al].options[af];if(document.all){ay.add(aA)}else{ay.appendChild(aA)}}ac.appendChild(ay);c(z,ac);this.columns[al].node=ay}else{if(this.columns[al].expandable){var an=s("textarea");an.value=this.columns[al].defaultValue||"";an.name=al;ac.appendChild(an);c(z,ac);this.columns[al].node=an}else{var an=s("input");if(this.columns[al].password||this.columns[al].dataType=="PASSWORD"){an.type="password"}else{an.type="text"}an.name=al;an.value=this.columns[al].defaultValue||"";ac.appendChild(an);c(z,ac);this.columns[al].node=an;for(var au=0;au<this._confirmFields.length;au++){if(this._confirmFields[au]==al){var w=an.cloneNode(true);w.name="_"+w.name;w.value="";var av=s("td");var aw=s("td");av.innerHTML="confirm "+al.replace(/_/g," ");aw.appendChild(w);c(av,aw);this.columns[al].node2=w}}}}}}}}if(this.captcha){var ah=s("td");var aj=s("td");var ao=s("td");var ax=s("td");aj.innerHTML="<img onclick='net.nextdb.Util.sourceCaptchaImg(this,\""+this.captchaStyle.fg+'","'+this.captchaStyle.bg+"\")' id='nextdb-captcha' src='"+net.nextdb.CONSTANTS.captchaUrl+"?fg="+(this.captchaStyle.fg.replace("#",""))+"&bg="+(this.captchaStyle.bg.replace("#",""))+"&width=175&height=80&cruft="+Math.random()+"'><br/>";ah.innerHTML="word verification:<br>[click image to reload]";var an=s("input");this.columns.captcha={};this.columns.captcha.node=an;this.columns.captcha.validate=net.nextdb.validate.REQUIRED;an.type="text";an.name="captcha";ax.appendChild(an);ao.innerHTML="type the characters <br>you see in the picture";c(ah,aj);c(ao,ax)}var v=s("td");var x=s("td");var aC=s("input");var ap=s("input");var r=s("input");aC.type="button";ap.type="button";r.type="reset";aC.value="submit";if(this._cancelCallback!=null&&(typeof this._cancelCallback=="function")){net.nextdb.Util.addEvent(ap,"click",this._cancelCallback)}ap.value="cancel";r.value="reset";x.appendChild(aC);x.appendChild(r);x.appendChild(ap);c(v,x);net.nextdb.Util.addEvent(aC,"click",at);return b};net.nextdb.html.Form.BOX_LAYOUT=1;net.nextdb.html.Form.HORIZONTAL_LAYOUT=2;net.nextdb.html.Form.VERTICAL_LAYOUT=3})();AccountManager={initialized:false,init:function(){if(!admin.user.schema){if(DatabaseManager.databases){admin.user.schema=DatabaseManager.databases[0].name}else{alert("You must first create at least one database");return}}if(AccountManager.initialized){$("#account_dialog").dialog("open")}else{AccountManager.initialized=true;$("#account_dialog").dialog({bgiframe:false,resizable:false,height:600,width:800,left:150,top:130,title:"Your NextDB.net Account",modal:true,overlay:{backgroundColor:"#000",opacity:0.7},buttons:{Done:function(){$(this).dialog("close")}}});$("#account_dialog").load("account.html",null,function(){$("#account_usage_reporting").val(""+admin.user.emailReport);$("#account_password_button").click(function(){var b="account_error_password";if($("#account_new_password").val()&&$("#account_new_password").val()==$("#account_confirm_password").val()){a({password:$("#account_new_password").val()},b);$("#account_new_password").empty();$("#account_confirm_password").empty()}else{$("#"+b).html("The password fields must be complete and matching.").fadeIn();setTimeout(function(){$("#"+b).fadeOut().html()},3000)}});$("#account_email_button").click(function(){var b="account_error_email";if($("#account_new_email").val()&&$("#account_new_email").val()==$("#account_confirm_email").val()&&net.nextdb.Util.validateEmail($("#account_confirm_email").val())){a({email:$("#account_new_email").val()},b);$("#account_new_email").empty();$("#account_confirm_email").empty()}else{$("#"+b).html("The email fields must be valid, complete and matching.").fadeIn();setTimeout(function(){$("#"+b).fadeOut().html()},3000)}});$("#account_reporting_button").click(function(){var b="account_error_usage_reporting";var c=$("#account_usage_reporting").val();a({emailReport:c},b)});AccountManager.showAccount()})}AccountManager.showAccount();function a(b,c){admin.executeGenericRequest("UPDATE_USER",b,function(e,d){if(d){$("#"+c).html(d.getMessage()).fadeIn();setTimeout(function(){$("#"+c).fadeOut().html()},3000)}else{admin.user.emailReport=e.emailReport;AccountManager.showAccount();$("#"+c).html("<span style='color:green'>Success!</span>").fadeIn();setTimeout(function(){$("#"+c).fadeOut().html()},3000)}})}},showAccount:function(){var a="<table><tr><td>real name: </td><td><b>"+admin.user.firstName+" "+admin.user.lastName+"</b></td></tr><tr><td>account name: </td><td><b>"+admin.user.domain+"</b></td></tr><tr><td>user name: </td><td><b>"+admin.user.userName+"</b></td></tr><tr><td>email: </td><td><b>"+admin.user.email+"</b></td></tr><tr><td>creation date: </td><td><b>"+admin.user.creationDate+"</b></td></tr><tr><td>status: </td><td><b>"+admin.user.status+"</b></td></tr><tr><td>email reporting: </td><td><b>"+admin.user.emailReport+"</b></td></tr></table>";$("#account_summary").html(a)}};net.nextdb.admin.Admin=function(){net.nextdb.Request.lock=false};net.nextdb.admin.Admin.generalDataCallback=function(c){var b=net.nextdb.Request.checkExceptions(c);net.nextdb.Request.callbackFunctions[c.id](c,b);var a=(new Date())-net.nextdb.Request.timer["network_"+c.id];$("#network_"+c.id).html("<i> "+a+" ms</i>");net.nextdb.Request.clearCallback(c.id)};net.nextdb.admin.Admin.forgotPassword=function(c,b,d){var a=net.nextdb.CONSTANTS.url+("/RESET_PWD?");a+=net.nextdb.CONSTANTS.generalCallback+"&username="+c+"&captcha="+b;net.nextdb.Request.send(a,d)};net.nextdb.admin.Admin.user=undefined;net.nextdb.admin.Admin.prototype.getURL=function(a){var b=net.nextdb.CONSTANTS.url+"/"+admin.user.domain+"/"+admin.user.schema+"/"+a+admin.user.session+"?";return b};net.nextdb.admin.Admin.prototype.createSchema=function(b,d,c){net.nextdb.admin.Admin.schema=d;var a=net.nextdb.CONSTANTS.url+"/"+admin.user.domain+"/CREATE_SCHEMA"+admin.user.session+"?"+net.nextdb.CONSTANTS.generalCallback;a+="&userName="+b;a+="&schemaName="+d;a+="&dom="+net.nextdb.admin.Admin.companyName;net.nextdb.Request.send(a,c)};net.nextdb.admin.Admin.prototype.getSchemas=function(b){var a=net.nextdb.CONSTANTS.url+"/"+admin.user.domain+"/DESCRIBE_SCHEMAS"+admin.user.session+"?"+net.nextdb.CONSTANTS.generalDataCallback;net.nextdb.Request.send(a,b)};net.nextdb.admin.Admin.prototype.executeGenericRequest=function(a,c,f){Logger.network(a);var b;if(a=="LOGIN"){b=net.nextdb.CONSTANTS.url+"/LOGIN?"}else{b=this.getURL(a)}b+="callback=net.nextdb.admin.Admin.generalDataCallback";if(c){for(var e in c){if(c.hasOwnProperty(e)){b+=("&"+e+"="+net.nextdb.Util.escape(c[e]))}}}var d=net.nextdb.Request.send(b,f);net.nextdb.Request.timer["network_"+d]=new Date();$("#network_console").css("top",((parseInt($("#network_console").css("top"))-14)+"px"));$("#network_console").append(a+" <span id='network_"+d+"' style='height:12px'><img src='img/ajax-loader-square.gif' style='height:10px; width:30px;'></span><br/>")};net.nextdb.Request=function(){};net.nextdb.Request.timer={};net.nextdb.Request.scriptId=1;net.nextdb.Request.callbackFunctions=[];net.nextdb.Request.additionalCallbackFunctions=[];net.nextdb.Request.checkExceptions=function(b){var a=undefined;if(b.hasOwnProperty("ApplicationException")){a=new net.nextdb.Error();a.message=b.ApplicationException.message;a.exceptionClass=b.ApplicationException.exceptionClass;if(a.message=="request cannot be completed because user is not logged in."){net.nextdb.Util.createCookie("timeout","true",1);window.location="./index.html";return}a.causedBy=b.ApplicationException.causedBy;if(b.ApplicationException.code==null){a.code=-1}else{a.code=parseInt(b.ApplicationException.code)}}if(b.hasOwnProperty("InternalException")){a=new net.nextdb.Error();a.message=b.InternalException.message;a.exceptionClass=b.InternalException.exceptionClass;a.causedBy=b.InternalException.causedBy;if(b.InternalException.code==null){a.code=-1}else{a.code=parseInt(b.InternalException.code)}}return a};net.nextdb.Request.queryCallback=function(b){var a=net.nextdb.Request.checkExceptions(b);net.nextdb.Request.callbackFunctions[b.id](b.rs,a,b.datatypes);net.nextdb.Request.clearCallback(b.id)};net.nextdb.Request.describeQueryCallback=function(b){var a=net.nextdb.Request.checkExceptions(b);net.nextdb.Request.callbackFunctions[b.id](b,a);net.nextdb.Request.clearCallback(b.id)};net.nextdb.Request.insertCallback=function(c){var a=net.nextdb.Request.checkExceptions(c);var b=null;if(c.hasOwnProperty("generatedPK")){b=c.generatedPK}if(net.nextdb.Request.additionalCallbackFunctions[c.id]){net.nextdb.Request.additionalCallbackFunctions[c.id](c.permalink)}if(net.nextdb.Request.callbackFunctions[c.id]){net.nextdb.Request.callbackFunctions[c.id](b,a);net.nextdb.Request.clearCallback(c.id)}};net.nextdb.Request.updateCallback=function(b){var a=net.nextdb.Request.checkExceptions(b);net.nextdb.Request.callbackFunctions[b.id](a);net.nextdb.Request.clearCallback(b.id)};net.nextdb.Request.describeTablesCallback=function(h){var a=net.nextdb.Request.checkExceptions(h);var e=[];if(h.Tables){for(var d=0;d<h.Tables.length;d++){var g=new net.nextdb.Table(h.Tables[d].name);g.captcha=h.Tables[d].captcha;var b=h.Tables[d].Columns;for(var j=0;j<b.length;j++){var f=new net.nextdb.Column(b[j].name,b[j].type,b[j].unique,b[j].defaultValue,b[j].nullable,b[j].owner);g.addColumn(f)}e[d]=g}}net.nextdb.Request.callbackFunctions[h.id](e,a);net.nextdb.Request.clearCallback(h.id)};net.nextdb.Request.uploadProgressCallback=function(b){var a=net.nextdb.Request.checkExceptions(b);net.nextdb.Request.callbackFunctions[b.id](b,a);net.nextdb.Request.clearCallback(b.id)};net.nextdb.Request.generalCallback=function(b){var a=net.nextdb.Request.checkExceptions(b);net.nextdb.Request.callbackFunctions[b.id](a);net.nextdb.Request.clearCallback(b.id)};net.nextdb.Request.generalDataCallback=function(c){var b=net.nextdb.Request.checkExceptions(c);net.nextdb.Request.callbackFunctions[c.id](c,b);var a=(new Date())-net.nextdb.Request.timer["network_"+c.id];var d="<i> "+a+" ms</i>";$("#network_"+c.id).html(d);net.nextdb.Request.clearCallback(c.id)};net.nextdb.Request.send=function(c,s,k,b){var e=net.nextdb.Request.scriptId++;net.nextdb.Request.callbackFunctions[e]=s;if(b){net.nextdb.Request.additionalCallbackFunctions[e]=b}if(c.length<2000){var l=document.createElement("script");l.setAttribute("type","text/javascript");if(k){l.setAttribute("src",c+"&_id="+e)}else{l.setAttribute("src",c+"&id="+e)}l.setAttribute("id",e);document.getElementsByTagName("head").item(0).appendChild(l);setTimeout("net.nextdb.Request.checkTimeout("+e+")",20000)}else{var n=c.substring(0,c.indexOf("?")+1);var m=c.substring(c.indexOf("?")+1);var a=Math.ceil(Math.random()*10000000);var o=1500;var g=1;while(n.length+m.length>o){g++;if(n.length+(m.length/g)<o){break}}var j=[];var q=Math.ceil(m.length/g);for(var h=0;h<g;h++){var d=Math.round(h*q);var f=Math.round((h*q)+q);if(h+1==g){var r=(net.nextdb.Util.escape((m.substring(d))))}else{var r=(net.nextdb.Util.escape((m.substring(d,f))))}var c=n+"rId="+a+"&chunkNum="+(h)+"&chunkCallback=net.nextdb.Request.multiPartCallback&numChunks="+g+"&chunk="+r;j.push(c)}for(var h=0;h<j.length;h++){var l=document.createElement("script");l.setAttribute("type","text/javascript");l.setAttribute("id",e);l.rid=a;l.cn=h;if(k){l.setAttribute("src",j[h]+"&_id="+e)}else{l.setAttribute("src",j[h]+"&id="+e)}document.getElementsByTagName("head").item(0).appendChild(l)}setTimeout("net.nextdb.Request.checkTimeout("+e+")",20000)}return e};net.nextdb.Request.multiPartCallback=function(c){var a=document.getElementsByTagName("script");for(var b=0;b<a.length;b++){if(document.getElementsByTagName("script")[b].rid==c.reqId&&document.getElementsByTagName("script")[b].cn==c.chunkNum){document.getElementsByTagName("head").item(0).removeChild(document.getElementsByTagName("script")[b])}}};net.nextdb.Request.clearCallback=function(a){if(a){net.nextdb.Request.callbackFunctions[a]=null;document.getElementsByTagName("head").item(0).removeChild(document.getElementById(a))}};net.nextdb.Request.checkTimeout=function(d){if(net.nextdb.Request.callbackFunctions[d]){if(!net.nextdb.Request.timeoutError){net.nextdb.Request.timeoutError=new net.nextdb.Error();net.nextdb.Request.timeoutError.message="This request has timed out.  The server might be having problems.  Please try again later."}var b=net.nextdb.Request.callbackFunctions[d].toString();var a=(b.substring(b.indexOf("(")+1,b.indexOf(")")));var c=(a.split(",")).length;if(c==1){net.nextdb.Request.callbackFunctions[d](net.nextdb.Request.timeoutError)}else{if(c==2){net.nextdb.Request.callbackFunctions[d](null,net.nextdb.Request.timeoutError)}else{if(c==3){net.nextdb.Request.callbackFunctions[d](null,null,net.nextdb.Request.timeoutError)}else{if(c==4){net.nextdb.Request.callbackFunctions[d](null,null,null,net.nextdb.Request.timeoutError)}}}}net.nextdb.Request.callbackFunctions[d]=null;net.nextdb.Request.clearCallback(d)}};net.nextdb.Request.timeoutError=undefined;DatabaseManager={selectedDB:null,selectedTable:null,tables:null,databases:null,relationships:null,usage:undefined,easeFlag:true,easeFactor:80,columnEasing:undefined,tableEasing:undefined,forceReloadOfTables:false,selectTable:function(){if(DatabaseManager.selectedTable==$(this).attr("tree_table_name")&&!DatabaseManager.forceReloadOfTables){$(this).parent().parent().find("LI").removeClass("ext_nextdb_tbl_expanded");$(this).parent().parent().find("UL").slideUp({duration:DatabaseManager.columnEasing,easing:"swing"});DatabaseManager.selectedTable=undefined;DatabaseTab.selectedDB=undefined;PanelManager.loadPanel("database");return}else{DatabaseManager.forceReloadOfTables=false}DatabaseManager.selectedTable=$(this).attr("tree_table_name");if($(this).attr("tree_table_name")=="_create"){$(this).parent().parent().find("LI").removeClass("ext_nextdb_tbl_expanded");$(this).parent().parent().find("UL").slideUp({duration:DatabaseManager.columnEasing,easing:"swing"});DatabaseManager.selectedTable=undefined;DatabaseTab.selectedDB=undefined;PanelManager.loadPanel("database");$(this).parent().parent().find("LI").removeClass("ext_nextdb_tbl_expanded");$(this).parent().addClass("ext_nextdb_tbl_expanded");DatabaseManager.openTableCreator();return}else{$(this).parent().parent().find("LI").removeClass("ext_nextdb_tbl_expanded");$(this).parent().addClass("ext_nextdb_tbl_expanded");PanelManager.loadPanel("table");$(this).parent().insertAfter($("[tree_table_name='_create']").parent());DatabaseManager.scrollTreeUp();$(this).parent().find("UL").remove();$(this).parent().parent().find("LI.file").find("UL").remove();$(this).parent().find("LI").removeClass("ext_nextdb_col_expanded");var b='<ul class="jqueryFileTree" style="display: none;">';var d=DatabaseManager.getTable();b+='<li class="file ext_nextdb_col_plus"><a tree_column_name="_create_column" href="#">CREATE COLUMN</a></li>';for(var e=0;e<d.Columns.length;e++){if(!d.Columns[e].owner){b+='<li class="ext_nextdb_col"><a href="#" tree_column_name="'+d.Columns[e].name+'">'+d.Columns[e].name+"</a></li>"}}b+="</ul>";var a=$("#db_tree");a.find(".ext_nextdb_tbl_expanded").append(b);DatabaseManager.columnEasing=d.Columns.length*DatabaseManager.easeFactor;DatabaseManager.columnEasing=DatabaseManager.columnEasing>555?555:DatabaseManager.columnEasing;if(DatabaseManager.easeFlag){$(this).parent().find("UL:hidden").slideDown({duration:DatabaseManager.columnEasing,easing:"swing"})}else{DatabaseManager.easeFlag=true;$(this).parent().find("UL:hidden").show()}$("[tree_column_name='_create_column']").unbind("click");$("[tree_column_name='_create_column']").click(function(){DatabaseManager.openTableCreator(true)});$(".ext_nextdb_col a:first-child").unbind("click");$(".ext_nextdb_col a:first-child").click(DatabaseManager.openColumnEditor);return false}},selectDatabase:function(){DatabaseManager.selectedTable=null;var a=$("#db_tree");$("#selected_database").html($(this).attr("tree_database_name"));if($(this).parent().hasClass("collapsed")){$(this).parent().parent().find("UL").slideUp({duration:DatabaseManager.tableEasing,easing:"swing"});$(this).parent().parent().find("LI.directory").removeClass("expanded").addClass("collapsed");$(this).parent().find("UL").remove();$(this).parent().parent().prepend($(this).parent());DatabaseManager.scrollTreeUp();$(this).parent().removeClass("collapsed").addClass("waitspin");admin.user.schema=$(this).attr("tree_database_name");DatabaseManager.selectedDB=$(this).attr("tree_database_name");DatabaseManager.loadTables($(this).parent())}else{DatabaseTab.selectedDB=null;$(this).parent().find("LI").removeClass("ext_nextdb_tbl_expanded");$(this).parent().find("UL").slideUp({duration:DatabaseManager.tableEasing,easing:"swing"});PanelManager.loadPanel("welcome");$(this).parent().removeClass("expanded").addClass("collapsed")}a.find("LI A").bind("click",function(){return false});return false},createDatabase:function(){DatabaseTab.selectedDB=null;if($("#database_create_text").val()==""||$("#database_create_text").val().length>15||$("#database_create_text").val().indexOf(" ")>-1){$("#database_create_errors").empty().hide().html("Please enter a legal name for new database").slideDown();return false}admin.createSchema(admin.user.userName,$("#database_create_text").val(),function(a){if(a){$("#database_create_errors").empty().hide().html(a.getMessage()).slideDown();return false}else{DatabaseManager.newDatabase=$("#database_create_text").val();$("#database_create_text").val("");$("#database_create_errors").empty().hide().slideUp();$("#database_create_form").hide();$("#database_create_new_button").show();DatabaseManager.loadDatabases()}})},tableEditor:false,openTableCreator:function(a){$("#table_create_editor_form")[0].reset();$("#table_create_errors").html("");if(a){$("#table_create_columns_form").show();$("#table_create_table_form").hide()}else{$("#table_create_columns_form").hide();$("#table_create_table_form").show()}if(DatabaseManager.tableEditor){$("#table_create_editor").dialog("open")}else{$("#table_create_table_name").empty().focus();$("#table_create_button").click(function(){if($("#table_create_table_name").val()==""){$("#table_create_errors").empty().hide().html("Please enter a legal name for new table").slideDown();return false}if(DatabaseManager.getTableByName($("#table_create_table_name").val())){$("#table_create_errors").empty().hide().html("That name is already taken.  Please enter a unique name.").slideDown();return false}admin.executeGenericRequest("CREATE_TABLE",{name:$("#table_create_table_name").val()},function(d,b){if(b){var c="You have entered a table name with invalid characters and/or formatting.\n\nTable names must be uppercase and they can contain (but not start with) underscores and/or numbers.\n\nHere are some examples of legal table names:\n\n\tTABLENAME\n\tTABLE_NAME\n\tTABLE_NAME2";$("#table_create_errors").empty().hide().html(c).slideDown();return false}else{DatabaseManager.selectedTable=$("#table_create_table_name").val();DatabaseManager.reloadTablesForSeletectedDatabase(DatabaseManager.selectedTable);$("#table_create_table_name").val("");$("#table_create_errors").html("<span style='color:green'>Add columns to table: "+DatabaseManager.selectedTable+"</span>");$("#table_create_table_form").hide();$("#table_create_columns_form").show()}})});$("#column_add_button").click(function(){$("#table_create_errors").empty();var b={action:"ADD",table:DatabaseManager.selectedTable,column:$("#column_name").val(),type:$("#column_datatype").val(),nullable:$("#column_not_null")[0].checked?"false":"true","default":$("#column_default_value").val()};if(!b["default"]){delete b["default"]}admin.executeGenericRequest("ALTER_TABLE",b,function(f,c){if(c){$("#table_create_errors").html(""+c.getMessage());$("#table_create_editor_form")[0].reset();$("#column_name").focus()}else{$("#table_create_errors").html("<span style='color:green'>Successfully added '"+$("#column_name").val()+"'.  Add another or click 'OK'");for(var d=0;d<DatabaseManager.tables.length;d++){if(DatabaseManager.tables[d].name==DatabaseManager.selectedTable){var e={name:$("#column_name").val(),type:$("#column_datatype").val(),nullable:($("#column_not_null")[0].checked?"false":"true"),defaultValue:$("#column_default_value").val(),unique:"false"};DatabaseManager.tables[d].Columns.push(e)}}DatabaseManager.addColumnToTree($("#column_name").val());TableTab.appendColumnToTable(e);$("#table_create_editor_form")[0].reset();$("#column_name").focus()}})});DatabaseManager.tableEditor=true;$("#table_create_editor").dialog({bgiframe:false,resizable:false,height:260,left:150,top:130,title:"Table Editor",modal:true,close:function(b,c){},overlay:{backgroundColor:"#000",opacity:0.5},buttons:{OK:function(){$(this).dialog("close")}}})}},reloadTablesForSeletectedDatabase:function(b){var a=$("[tree_database_name='"+DatabaseManager.selectedDB+"']");a.removeClass("expanded").addClass("waiting");a.parent().find("UL").remove();DatabaseManager.loadTables(a.parent(),b)},getTable:function(){for(var a=0;a<DatabaseManager.tables.length;a++){if(DatabaseManager.tables[a].name==DatabaseManager.selectedTable){return DatabaseManager.tables[a]}}},getTableByName:function(a){for(var b=0;b<DatabaseManager.tables.length;b++){if(DatabaseManager.tables[b].name==a){return DatabaseManager.tables[b]}}return false},createRelationship:function(){},loadDatabases:function(a){admin.getSchemas(function(f,d){var c=f.Schemas;if(a&&c.length==0){admin.createSchema(admin.user.userName,"SAMPLE_DATABASE",function(g){if(g){return false}else{admin.user.schema="SAMPLE_DATABASE";DatabaseManager.selectedDB="SAMPLE_DATABASE";admin.executeGenericRequest("IMPORT",{url:"http://www.nextdb.net/nextdb/service/brenthamby/demo1/EXPORT"},function(j,h){if(h){alert(h.getMessage())}else{DatabaseManager.loadDatabases()}})}});return}DatabaseManager.databases=c;var e='<ul class="jqueryFileTree" style="display: none;">';for(i=0;i<c.length;i++){e+='<li class="directory collapsed"><a href="#" tree_database_name="'+c[i].name+'">'+c[i].name+"</a></li>"}e+="</ul>";var b=$("#db_tree");b.html('<ul class="jqueryFileTree start"><li class="wait">loading...<li></ul>');b.addClass("wait");$(".jqueryFileTree.start").remove();b.find(".start").html("");b.removeClass("wait").append(e);b.find("UL:hidden").show();b.find("LI A").bind("click",DatabaseManager.selectDatabase);if(DatabaseManager.newDatabase){$("[tree_database_name='"+DatabaseManager.newDatabase+"']").click();DatabaseManager.newDatabase=undefined}else{PanelManager.loadPanel("welcome")}})},loadTables:function(a,b){admin.executeGenericRequest("DESCRIBE_TABLE",{},function(h,e){$(a).removeClass("waitspin").addClass("expanded");if(e){alert("error returned to executeGenericRequest:DESCRIBE_TABLE\n\n "+e)}else{DatabaseManager.tables=[];for(var g=0;g<h.Tables.length;g++){DatabaseManager.tables.push(h.Tables[g])}var c=0;var f='<ul class="jqueryFileTree" style="display: none;"><li class="file ext_nextdb_tbl_plus"><a tree_table_name="_create" href="#">CREATE TABLE</a></li>';for(var d=0;d<DatabaseManager.tables.length;d++){f+='<li class="file ext_nextdb_tbl"><a href="#" tree_table_name="'+DatabaseManager.tables[d].name+'">'+DatabaseManager.tables[d].name+"</a></li>";c++}f+="</ul>";$(a).append(f);DatabaseManager.tableEasing=DatabaseManager.tables.length*DatabaseManager.easeFactor;DatabaseManager.tableEasing=DatabaseManager.tableEasing>555?555:DatabaseManager.tableEasing;$(a).find("UL:hidden").slideDown({duration:DatabaseManager.tableEasing,easing:"swing"});$(a).find("LI A").bind("click",DatabaseManager.selectTable);$(a).find("LI A").bind("click",function(){return false});if(b){DatabaseManager.forceReloadOfTables=true;$("[tree_table_name='"+DatabaseManager.selectedTable+"']").click()}else{PanelManager.loadPanel("database")}}})},loadRelationships:function(){},importDatabaseDefinition:function(a){if(a.indexOf("http://")<0&&a.indexOf("https://")<0){alert("Please enter valid URL...");return}if(DatabaseManager.importDBLock){return}else{DatabaseManager.importDBLock=true}$("#database_import_button").attr("value","please wait...");$("#database_import_url_button").attr("value","please wait...");admin.executeGenericRequest("IMPORT",{url:a},function(c,b){$("#database_import_button").attr("value","Import Database");$("#database_import_url_button").attr("value","Import Database");DatabaseManager.importDBLock=false;if(b){alert(b.getMessage())}else{DatabaseTab.selectedDB=null;DatabaseManager.reloadTablesForSeletectedDatabase()}})},deleteColumn:function(){var a=this;DatabaseManager.deletableColumn=$(this).attr("delete");dialogDeleteConfirm("Column: "+DatabaseManager.deletableColumn,function(b){if(b){admin.executeGenericRequest("ALTER_TABLE",{action:"DROP",table:DatabaseManager.selectedTable,column:DatabaseManager.deletableColumn},function(g,d){if(d){alert("error returned to executeGenericRequest:\n\n "+d)}else{for(var e=0;e<DatabaseManager.tables.length;e++){if(DatabaseManager.tables[e].name==DatabaseManager.selectedTable){var f=[];for(var h=0;h<DatabaseManager.tables[e].Columns.length;h++){if(DatabaseManager.tables[e].Columns[h].name==DatabaseManager.deletableColumn){DatabaseManager.tables[e].Columns[h]==null}else{f.push(DatabaseManager.tables[e].Columns[h])}}DatabaseManager.tables[e].Columns=f;$("[tree_column_name='"+DatabaseManager.deletableColumn+"']").parent().remove();break}}$(a).parent().parent().hide();DatabaseManager.deletableColumn=null}})}else{}});return false},deleteTable:function(){dialogDeleteConfirm("Table: "+DatabaseManager.selectedTable,function(a){if(a){admin.executeGenericRequest("DROP_TABLE",{name:DatabaseManager.selectedTable},function(c,b){if(b){$("#delete_table_errors").html("<span class='errors'>"+b.getMessage()+"</span><br/><br/>")}else{DatabaseTab.selectedDB=undefined;DatabaseManager.reloadTablesForSeletectedDatabase()}})}else{}})},deleteDatabase:function(){dialogDeleteConfirm("Database: "+DatabaseManager.selectedDB,function(a){if(a){admin.executeGenericRequest("DROP_SCHEMA",{},function(c,b){if(b){alert("error returned to executeGenericRequest:\n\n "+b)}else{DatabaseManager.loadDatabases()}})}else{}})},getDatabaseReferrers:function(){$("#referrer_URLs").empty().html("<center><img style='padding:10px' src='img/ajax-loader-square.gif'></center>");admin.executeGenericRequest("MANAGE_REFERRER",{action:"list"},function(d,b){if(b){$("#database_referrer_errors").html(b.getMessage())}else{$("#database_referrer_errors").html("");var a=d.message.substring(d.message.indexOf("[")+1,d.message.indexOf("]"));a=a.split(",");$("#referrer_URLs").empty();for(var c=0;c<a.length;c++){if(a[c]){$("#referrer_URLs").append(a[c]+" <a href='#' id='"+a[c]+"' class='database_remove_referrer'>remove</a><br/>")}}$(".database_remove_referrer").unbind("click");$(".database_remove_referrer").click(function(){admin.executeGenericRequest("MANAGE_REFERRER",{action:"remove",url:net.nextdb.Util.trim($(this).attr("id"))},function(f,e){if(e){$("#database_referrer_errors").html(e.getMessage())}else{$("#database_referrer_errors").html("");DatabaseManager.getDatabaseReferrers()}})});if(a.length==1&&!a[0]){$("#referrer_URLs").empty().html("<i>no referrers registered...</i>")}}})},publish:function(){admin.executeGenericRequest("PUBLISH",{model:"ALL"},function(c,b){if(b){alert("error returned to executeGenericRequest:\n\n "+b)}else{var a=net.nextdb.CONSTANTS.url+"/"+admin.user.domain+"/"+admin.user.schema+"/EXPORT";window.open(a,"EXPORT XDB XML","menubar=no,scrollbars=2,toolbar=no,width=800,location=yes")}})},reIndexDatabase:function(){$("#database_reindex_dropped_container").fadeOut();$("#database_reindex_created_container").fadeOut();$("#database_reindex_dropped").fadeOut();$("#database_reindex_created").fadeOut();admin.executeGenericRequest("MAINTENANCE",{},function(b,a){if(a){alert("error returned to executeGenericRequest:\n\n "+a)}else{$("#database_reindex_dropped").html("Dropped "+b.Dropped.length+" indexes").fadeIn();$("#database_reindex_dropped_container").fadeIn();$("#database_reindex_created").html("Created "+b.Created.length+" indexes").fadeIn();$("#database_reindex_created_container").fadeIn()}})},addReferrer:function(){if($("referrerURL").val()==""){return}admin.executeGenericRequest("MANAGE_REFERRER",{action:"add",url:$("#referrerURL").val()},function(b,a){if(a){$("#database_referrer_errors").html(a.getMessage())}else{$("referrerURL").html("");$("#database_referrer_errors").html("");DatabaseManager.getDatabaseReferrers()}})},scrollTreeUp:function(){$("#left_pane")[0].scrollTop=0},addColumnToTree:function(b){var c='<li class="ext_nextdb_col"><a href="#" tree_column_name="'+b+'">'+b+"</a></li>";var a=$("#db_tree");a.find(".ext_nextdb_tbl_expanded ul").append(c);$(".ext_nextdb_col a:first-child").unbind("click");$(".ext_nextdb_col a:first-child").click(DatabaseManager.openColumnEditor)},openColumnEditor:function(){var a="#"+DatabaseManager.selectedTable+"__"+($(this).attr("tree_column_name"));$(a).css("background-color","#ffffcc");$("#column_dialog").empty().append($("#columns_table")).dialog({modal:true,width:400,close:function(b,c){$("#columns_table tr").css("background-color","");$("#columns_table tr").css("background-color","");$("#table_columns").append($("#columns_table"))},buttons:{close:function(){$(this).dialog("close")}}}).dialog("open")}};PanelManager={welcomePanelLoaded:false,databasePanelLoaded:false,tablePanelLoaded:false,loadPanel:function(a){PanelManager.hideAll();switch(a){case"welcome":if(!PanelManager.welcomePanelLoaded){PanelManager.initWelcomePanel()}else{PanelManager.resetWelcomePanel()}break;case"database":if(!PanelManager.databasePanelLoaded){PanelManager.initDatabasePanel()}else{PanelManager.resetDatabasePanel()}break;case"table":if(!PanelManager.tablePanelLoaded){PanelManager.initTablePanel()}else{PanelManager.resetTablePanel()}break}},hideAll:function(){$("#welcome_panel").hide();$("#database_panel").hide();$("#table_panel").hide();$("#loading_panel").show()},initWelcomePanel:function(){$("#welcome_panel").load("welcome.html",function(a){$(".new_window").click(function(){window.open(this.href,"","width=1000,height=700,toolbar=yes,status=yes,location=yes,menubar=yes,resizable=yes,scrollbars=yes");return false}).end();$("#loading_panel").hide();$("#welcome_panel").show();PanelManager.welcomePanelLoaded=true})},initTablePanel:function(){$("#table_panel").load("table.html",function(a){$("#table_tabs").tabs().bind("tabsselect",function(b,c){if(c.panel.id=="table_overview_tab"){TableTab.init()}else{if(c.panel.id=="email_triggers_tab"){TriggerTab.init()}else{if(c.panel.id=="captcha_tab"){CaptchaTab.init()}else{if(c.panel.id=="data_edit_tab"){DataEditorTab.init()}else{if(c.panel.id=="delete_table_tab"){DeleteTableTab.init()}else{if(c.panel.id=="page_viewer_tab"){PageViewerTab.init()}}}}}}});TableTab.init();PanelManager.tablePanelLoaded=true})},initDatabasePanel:function(){$("#database_panel").load("database.html",function(a){$("#database_tabs").tabs().bind("tabsselect",function(b,c){if(c.panel.id=="database_tab"){DatabaseTab.init()}else{if(c.panel.id=="query_tab"){$("#queries").hide();QueryTab.init()}else{if(c.panel.id=="relationships_tab"){RelationshipsTab.init()}else{if(c.panel.id=="usage_tab"){UsageTab.init()}else{if(c.panel.id=="security_tab"){SecurityTab.init()}else{if(c.panel.id=="indexing_tab"){IndexingTab.init()}else{if(c.panel.id=="import_tab"){ImportTab.init()}else{if(c.panel.id=="export_tab"){ExportTab.init()}else{if(c.panel.id=="code_help_tab"){CodeHelpTab.init()}else{if(c.panel.id=="rest_tab"){RESTTab.init()}else{if(c.panel.id=="delete_database_tab"){DeleteDatabaseTab.init()}}}}}}}}}}}});DatabaseTab.init();PanelManager.databasePanelLoaded=true})},resetWelcomePanel:function(){$("#loading_panel").hide();$("#welcome_panel").show()},resetTablePanel:function(){$("#table_tabs").tabs("select",0);TableTab.init()},resetDatabasePanel:function(){$("#database_tabs").tabs("select",0);DatabaseTab.init()}};var emailTriggerTemplate='<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<TableMetaInf xmlns="http://nextdb.net/MetaInf">\n<Notifications>\n\t    <Email to="SOME_EMAIL_ADDRESS" onInsert="true" from="SOME_EMAIL_ADDRESS">\n\t    <Subject>SUBJECT</Subject>\n\t    <Body>\n\t    This is a sample template to help get you started using email notification triggers.\n\t    You can add variables from the new row with this syntax: ${COLUMN_NAME}.\n\t    The column variables can be used in the "to" and "from" or the Subject or Body. \n\t    </Body>\n\t    </Email>\n</Notifications>\n</TableMetaInf>';function getCheckBox(c,a,d){var b="<input type='checkbox' ";if(c&&c=="true"){b+="checked='true' "}if(d){b+="id='"+d+"' "}if(a){b+="class='"+a+"' "}b+=">";return b}var nextdbDeleteDialogInit=false;function dialogDeleteConfirm(a,b){$("#delete_confirm_dialog_body").html(a);if(nextdbDeleteDialogInit){$("#delete_confirm_dialog").dialog("option","buttons",{Delete:function(){b(true);$(this).dialog("close")},Cancel:function(){b(false);$(this).dialog("close")}});$("#delete_confirm_dialog").dialog("open")}else{nextdbDeleteDialogInit=true;$("#delete_confirm_dialog").dialog({bgiframe:false,resizable:false,height:180,left:150,top:130,title:"Confirm Delete",modal:true,overlay:{backgroundColor:"red",opacity:0.9},buttons:{Delete:function(){b(true);$(this).dialog("close")},Cancel:function(){b(false);$(this).dialog("close")}}})}}function createTableSelect(e,a,d){if(!DatabaseManager.tables){admin.executeGenericRequest("DESCRIBE_TABLE",{},function(g,f){if(f){alert("error returned to executeGenericRequest:\n\n "+f)}else{DatabaseManager.tables=g.Relationships;createTableSelect(e,a,d)}});return}var c="<select id='"+e+"'><option value='-1'>choose table...</option>";for(var b=0;b<DatabaseManager.tables.length;b++){c+=("<option value='"+DatabaseManager.tables[b].name+"'>"+DatabaseManager.tables[b].name+"</option>")}c+="</select>";if(a){c+="<input type='button' value='"+a+"'/>"}d.append(c)}function createRelationshipSelect(e,a,d){if(!DatabaseManager.relationships){admin.executeGenericRequest("DESCRIBE_RELATIONSHIP",{},function(g,f){if(f){alert("error returned to executeGenericRequest:\n\n "+f)}else{DatabaseManager.relationships=g.Relationships;createRelationshipSelect(e,a,d)}});return}var c="<select id='"+e+"'><option value='-1'>choose relationship...</option>";for(var b=0;b<DatabaseManager.relationships.length;b++){c+=("<option value='"+DatabaseManager.relationships[b].name+"'>"+DatabaseManager.relationships[b].name+"</option>")}c+="</select>";if(a){c+="<input type='button' value='"+a+"'/>"}d.append(c)}function addButton(c,a,b){c.html("<div id='"+b+"' class='ui-state-default ui-corner-all small_button'><span class='ui-icon ui-icon-"+a+"'></span></div>");$("#"+b).hover(function(){$(this).addClass("ui-state-hover");$(this).removeClass("ui-state-default")},function(){$(this).addClass("ui-state-default");$(this).removeClass("ui-state-hover")})}net.nextdb.html.DataTable=function(div,query,conn,callback){this.div=div;this.div.style.position="relative";this.query=query;this.conn=conn;this.callback=callback;this.updatable=false;this.deletable=false;this.textHandler;this.dateHandler;this.binaryHandler;this.binaryHandlerDiv;this.handlingType;this.updateNewValue;this.dark="#333";this.light="#999";this.rowSet;this.rows;this.cols;this.sortIndex;this.sortOrder="ascending";this.sortedHeader;this.pageNumber=0;this.start=0;this.next;this.prev;this.pageSize;this.PK=[];this.prevStartAfter;this.tableName;this.pkIndex=null;this.fidIndex=null;this.insert;this.deleteFlag=false;this.xy;this.node;var that=this;var lockHandler=false;this.setDeletable=function(b){that.deletable=b};this.setUpdatable=function(b){that.updatable=b};this.deleteRow=function(e){var node=document.all?window.event.srcElement:e.target;var del=new net.nextdb.Delete(that.tableName);del.setRowId(node.pk);conn.executeDelete(del,function(error){if(error){reportError(error.message)}else{$("#table_row_count").html((parseInt($("#table_row_count").html())-1));if(that.rows.length==1){if(!that.prev.disabled){that.prev.click()}else{that.render()}}else{that.PK=that.PK.slice(0,(parseInt(that.PK.length)-(parseInt(that.pageSize))));that.render()}}})};this.update=function(e){var splt=that.cols[that.xy.x].alias.split(".");var update=new net.nextdb.Update(that.cols[that.xy.x].table);var map={};map[splt[1]]=that.updateNewValue;update.setRowId(that.rows[that.xy.y][that.pkIndex]);update.setParameters(map);var dataType=that.cols[that.xy.x].type;conn.executeUpdate(update,function(error){if(!error){if(dataType=="TEXT"){that.node.innerHTML=styleText(that.textHandler.firstChild.value);that.rows[that.xy.y][that.xy.x]=that.textHandler.firstChild.value;that.node.innerHTML=styleText(that.updateNewValue)}else{if(dataType=="INTEGER"||dataType=="LONGINTEGER"||dataType=="DECIMAL"){that.node.innerHTML=styleText(that.numberHandler.firstChild.value);that.rows[that.xy.y][that.xy.x]=that.numberHandler.firstChild.value;that.node.innerHTML=styleText(that.updateNewValue)}else{if(dataType=="DATE"){var date=net.nextdb.Util.convertFromLocalServerDateFormat(that.updateNewValue);that.node.innerHTML=net.nextdb.Util.shortDateFormat(date)}}}}else{if(error.code==120){reportError("field "+error.causedBy+" must be unique, the value you entered is already taken")}else{if(error.code==130){reportError("field "+error.causedBy+" threw a data format exception, please check data format")}else{reportError(error.message)}}}})};this.updateBinary=function(col,url){var splt=col.split(".");var update=new net.nextdb.Update(splt[0]);var map={};map[splt[1]]=url;update.setRowId(that.rows[that.xy.y][that.pkIndex]);update.setParameters(map);conn.executeUpdate(update,function(error){if(!error){that.binaryHandlerDiv.style.display="none";that.render()}else{reportError(error)}})};this.viewBinary=function(e){e=e||event;e.stoppropagation?e.stoppropagation():e.cancelBubble=true;var node=document.all?window.event.srcElement:e.target;var index=eval(node.id);window.open(that.rows[index.y][index.x],"popwin","width=800,height=500,resizable=yes,scrolling=yes,scrollbars=yes")};this.render=function(){that.conn.executeQuery(that.query,function(rowSet,error,dataTypes){if(error){that.callback(error);that.div.innerHTML="<br/><br/>There was an error executing your query<br/><br/>"+error.message;return false}if(rowSet.length==0){if(that.pageNumber>0){that.pageNumber--;buttonDisable(that.next);that.next.disabled=true;byId("nextdb-paging-loader").src="img/single.gif";that.query.startAfter=that.prevStartAfter;reportError("no more records");return false}else{}}that.rowSet=rowSet;that.sortIndex=-1;that.sortOrder="ascending";that.sortedHeader=null;that.cols=[];that.rows=[];var ownedIndexes=[];for(var x in dataTypes){if(dataTypes[x].owner){ownedIndexes.push(x);continue}dataTypes[x]["alias"]=x;that.cols.push(dataTypes[x])}function owned(col){for(var i=0;i<ownedIndexes.length;i++){if(ownedIndexes[i].substring(ownedIndexes[i].indexOf(".")+1)==col){return true}}return false}if(that.cols[0].forDelete){that.deletable=true}if(that.cols[0].forUpdate){that.updatable=true}for(var i=0;i<rowSet.length;i++){var row=[];for(var x in rowSet[i]){var t=x;that.tableName=t;for(var y in rowSet[i][x]){if(owned(y)){continue}if(net.nextdb.Util.isServerDateFormat(rowSet[i][x][y])){row.push(net.nextdb.Util.convertFromServerDateFormat(rowSet[i][x][y]))}else{row.push(rowSet[i][x][y])}}}that.rows.push(row)}drawTable()})};function byId(id){return document.getElementById(id)}function reportError(txt){byId("nextdb-errors-panel").style.opacity="1.0";errorOpacity=1;byId("nextdb-errors-panel").innerHTML=txt;setTimeout(clearError,3000)}var errorOpacity=1;function clearError(){errorOpacity=errorOpacity*0.9;byId("nextdb-errors-panel").style.opacity=errorOpacity;if(errorOpacity<0.05){errorOpacity=1;byId("nextdb-errors-panel").innerHTML="";return}setTimeout(clearError,50)}function handle(e){if(lockHandler){return}else{lockHandler=true}var node=document.all?window.event.srcElement:e.target;if(!node.id){return}var index=eval(node.id);var dataType=that.cols[index.x].type;that.xy=index;that.node=node;if(that.cols[index.x].owner){return}if(dataType=="TEXT"){if(!that.textHandler){initTextHandler()}that.textHandler.style.display="block";that.textHandler.firstChild.value=that.rows[index.y][index.x];node.appendChild(that.textHandler)}else{if(dataType=="INTEGER"||dataType=="LONGINTEGER"||dataType=="DECIMAL"){if(!that.numberHandler){initNumberHandler()}that.numberHandler.style.display="block";that.numberHandler.firstChild.value=that.rows[index.y][index.x];node.appendChild(that.numberHandler)}else{if(dataType=="LONGBINARY"){var table=that.cols[index.x].table;var b=new net.nextdb.html.FileUpload(that.conn,table,function(){},function(url){lockHandler=false;that.updateBinary(that.cols[index.x].alias,url)},function(progress){var uploadedBytes=progress.rx/1000;var totalBytes=progress.totalRX/1000;var perct=(Math.round((uploadedBytes/totalBytes)*100))+"%";var message="&nbsp;&nbsp;loading ... "+perct+" ("+Math.round(uploadedBytes)+" of "+Math.round(totalBytes)+" kb)";byId("nextdb-binary-update-progress").innerHTML=message});var div=document.createElement("div");div.id="nextdb-binary-update-handler";div.style.height="50px";div.style.width="280px";div.style.padding="5px";div.style.border="3px solid #aaaaaa";div.style.position="absolute";div.style.backgroundColor=that.dark;div.style.zIndex="300";that.binaryHandler=b.getElement();that.binaryHandler.style.zIndex="300";div.appendChild(that.binaryHandler);that.binaryHandlerDiv=div;var cancelButton=document.createElement("input");cancelButton.type="button";cancelButton.value="cancel";styleEditButton(cancelButton);cancelButton.onclick=function(e){e=e||event;e.stoppropagation?e.stoppropagation():e.cancelBubble=true;node.removeChild(div);lockHandler=false};var span=document.createElement("span");span.id="nextdb-binary-update-progress";span.style.color="#333333";span.style.fontSize="8pt";div.appendChild(cancelButton);div.appendChild(span);node.appendChild(div)}else{if(dataType=="DATE"){var calendar=new net.nextdb.html.Calendar(that.rows[index.y][index.x]);calendar.setCallback(function(d,cancel){that.updateNewValue=d;calendar.input.style.display="none";if(!cancel){that.update()}lockHandler=false});var input=calendar.getElement();input.style.zIndex="222";input.style.height="17px";input.style.border="0px";input.style.fontSize="8pt";input.style.width="130px";input.style.position="absolute";input.style.left="0px";input.style.top="0px";input.style.backgroundColor="#ffffff";that.dateHandler=calendar;node.appendChild(that.dateHandler.getElement());that.dateHandler.getElement().focus()}}}}}var pagingDisplay=false;function drawTable(){if($$("table_"+that.query.name)){that.div.removeChild($("table_"+that.query.name))}var table=document.createElement("table");that.table=table;table.cellPadding="0px";table.cellSpacing="0px";table.style.marginBottom="10px";table.id="table_"+that.query.name;table.style.backgroundColor="#ffffff";table.style.border="3px solid #cccccc";table.style.padding="0px";var tBody=document.createElement("tbody");table.appendChild(tBody);tBody.cellSpacing="0px";var tr=document.createElement("tr");for(var i=0;i<that.cols.length;i++){if((that.cols[i]).type=="SURID"){that.pkIndex=i;continue}if(that.cols[i].owner&&that.cols[i].column.indexOf("_FID")>-1){that.fidIndex=i;continue}var th=document.createElement("th");th.id="nextdb-dt-col-idx-"+i;th.onclick=sort;styleHeader(th);th.innerHTML=that.cols[i].alias.substring(that.cols[i].alias.indexOf(".")+1);th.unselectable="on";th.onselectstart="return false";tr.appendChild(th)}if(that.deletable){var th=document.createElement("th");styleHeader(th);tr.id="nextdb-dt-top-tr";tr.appendChild(th)}tBody.appendChild(tr);var odd=pagingDisplay?false:true;pagingDisplay=odd;that.pageSize=that.rows.length;for(var i=0;i<that.rows.length;i++){var tr=document.createElement("tr");tr.className="data_table_row";odd=odd?false:true;tr.style.backgroundColor=odd?that.dark:that.light;for(var ii=0;ii<that.rows[i].length;ii++){if(ii==that.pkIndex){tr.id=that.rows[i][ii];var thisPK=that.rows[i][ii];that.PK.push(that.rows[i][ii]);continue}if(ii==that.fidIndex){continue}var td=document.createElement("td");td.style.padding="0px";td.style.border="0px";td.style.spacing="0px";td.style.width="130px";td.style.height="18px";var div=document.createElement("div");if(that.cols[ii].type=="DATE"){if(that.rows[i][ii]){div.innerHTML=net.nextdb.Util.shortDateFormat(that.rows[i][ii])}else{div.innerHTML=""}}else{if(that.cols[ii].type=="LONGBINARY"){if(that.rows[i][ii]){var viewLink=document.createElement("a");viewLink.innerHTML="view  ";viewLink.id="({y:"+i+",x:"+ii+"})";viewLink.onclick=that.viewBinary;viewLink.href="#";viewLink.style.paddingLeft="4px";div.appendChild(viewLink)}else{var viewNull=document.createElement("span");viewNull.innerHTML="null  ";div.appendChild(viewNull)}var space=document.createElement("span");space.innerHTML=" - ";div.appendChild(space);var edit=document.createElement("a");edit.innerHTML="  edit";edit.id="({y:"+i+",x:"+ii+"})";edit.onclick=handle;edit.href="#";div.appendChild(edit)}else{if(that.rows[i][ii]!=null){div.innerHTML=styleText(that.rows[i][ii])}else{div.innerHTML=""}}}div.id="({y:"+i+",x:"+ii+"})";if(that.cols[ii].type!="LONGBINARY"&&that.updatable){div.onclick=handle}div.style.height="18px";div.style.padding="2px";div.style.spacing="0px";div.style.width="130px";div.style.position="relative";div.style.borderLeft="1px solid #cccccc";div.style.fontFamily="arial";div.style.fontSize="12px";td.appendChild(div);tr.appendChild(td)}if(that.deletable){var td=document.createElement("td");var input=document.createElement("input");input.type="button";styleButton(input,"delete");input.pk=thisPK;input.onclick=that.deleteRow;td.appendChild(input);tr.appendChild(td)}tBody.appendChild(tr)}if(that.rows.length==0&&that.pageNumber==0){var tr=document.createElement("tr");var td=document.createElement("td");td.colSpan=that.cols.length+1;var msg=document.createElement("div");msg.innerHTML="There were no rows returned, this table is empty.  To add data click the <img src='img/dt-plus.png' style='height:12px;width:12px'> button above and manually enter some new rows.";msg.style.width="200px";msg.style.padding="10px";td.appendChild(msg);tr.appendChild(td);tBody.appendChild(tr)}that.deleteFlag=false;var controls=document.createElement("div");controls.className="data_table_controls";var plus=document.createElement("input");plus.type="button";plus.onclick=null;plus.onclick=function(){$("#table_data_add").empty().html("<center><img style='padding:10px' src='img/ajax-loader-square.gif'></center>");$("#table_data_add").dialog("resize","auto");$("#table_data_add").dialog({title:"Table Data Entry",modal:true,width:450,top:10,left:10,overlay:{backgroundColor:"#000",opacity:0.9},close:function(){$("#table_data_add").empty().html("<center><img style='padding:10px' src='img/ajax-loader-square.gif'></center>");that.render();$("#table_data_add").dialog("destroy")},buttons:{Done:function(){$(this).dialog("close")}}});$("#table_data_add").dialog("open");var dataEntry=new net.nextdb.html.DataEntryWidget($("#table_data_add")[0],DatabaseManager.selectedTable,new net.nextdb.Connection(admin.user.domain,admin.user.schema),function(er){alert(er.message)});dataEntry.render()};var prev=document.createElement("input");prev.type="button";prev.onclick=function(){byId("nextdb-paging-loader").src="img/paging-loader.gif";that.pageNumber--;if(that.PK.length-(parseInt(that.query.pageSize)*2)<=0){var startAfter=0}else{var pkIndex=parseInt(that.PK.length)-1-(parseInt(that.query.pageSize)+parseInt(that.pageSize));var startAfter=that.PK[pkIndex]}that.query.setStartAfter(startAfter);that.PK=that.PK.slice(0,(parseInt(that.PK.length)-(parseInt(that.query.pageSize)+parseInt(that.pageSize))));this.disabled=true;that.render()};var next=document.createElement("input");next.type="button";next.onclick=function(){byId("nextdb-paging-loader").src="img/paging-loader.gif";that.pageNumber++;var pkIndex=that.PK.length-1;that.prevStartAfter=that.query.startAfter;that.query.setStartAfter(that.PK[pkIndex]);this.disabled=true;that.render()};var refresh=document.createElement("input");refresh.type="button";refresh.onclick=function(){that.PK=[];that.pageNumber=0;that.start=0;that.next;that.prev;that.query.startAfterValue="now";that.query.startAfter=0;that.pageSize;that.tableName;that.pkIndex=null;that.fidIndex=null;that.pageNumber=0;that.start=0;that.render()};refresh.style.marginRight="24px";styleButton(prev,"left");styleButton(next,"right");styleButton(refresh,"refresh");styleButton(plus,"plus");var tr=document.createElement("tr");tr.id="nextdb-dt-bottom-tr";tr.style.border="1px solid #000000";var td=document.createElement("td");td.colSpan=that.cols.length;styleFooter(td);var loading=document.createElement("img");loading.id="nextdb-paging-loader";loading.src="img/single.gif";loading.style.height="18px";loading.style.paddingTop="8px";loading.style.paddingLeft="8px";loading.style.width="18px";var errors=document.createElement("span");errors.innerHTML="";errors.id="nextdb-errors-panel";errors.style.height="18px";errors.style.fontSize="10pt";errors.style.color="#990000";errors.style.fontFamily="arial";errors.style.paddingRight="10px";errors.style.paddingLeft="12px";var pageSize=document.createElement("span");tr.appendChild(td);tBody.appendChild(tr);controls.appendChild(pageSize);controls.appendChild(prev);controls.appendChild(next);controls.appendChild(refresh);controls.appendChild(plus);controls.appendChild(loading);controls.appendChild(errors);that.next=next;that.prev=prev;that.div.innerHTML="";that.div.appendChild(controls);var frame=document.createElement("div");frame.appendChild(table);that.div.appendChild(frame);if(that.rows.length>0){}if(that.query.pageSize>that.rows.length){next.disabled=true;buttonDisable(next)}else{next.disabled=false}if(that.pageNumber==0){prev.disabled=true;buttonDisable(prev)}else{prev.disabled=false}}function sort(e){if(that.sortedHeader){that.sortedHeader.style.background="#ffffff url('img/dt-th-bg.png') repeat scroll 0% 0%"}that.start=new Date();var node;if(document.all){node=window.event.srcElement}else{node=e.target}that.sortedHeader=node;var rowIndex=node.id.substring(18);that.sortIndex=rowIndex;if(that.cols[that.sortIndex].type=="TEXT"){that.rows=that.rows.sort(sortAlpha)}else{if(that.cols[that.sortIndex].type=="DECIMAL"||that.cols[that.sortIndex].type=="INTEGER"){that.rows=that.rows.sort(sortNumeric)}else{that.rows=that.rows.sort(sortDate)}}if(that.sortOrder=="descending"){that.sortOrder="ascending"}else{that.sortOrder="descending"}sortTableRows();styleHeader(node)}function sortNumeric(a,b){if(that.sortOrder=="ascending"){return a[that.sortIndex]-b[that.sortIndex]}else{return b[that.sortIndex]-a[that.sortIndex]}}function sortAlpha(a,b){var _a=a[that.sortIndex]||"";var _b=b[that.sortIndex]||"";if(that.sortOrder=="ascending"){if(_a.toLowerCase()==_b.toLowerCase()){return 0}if(_a.toLowerCase()<_b.toLowerCase()){return -1}return 1}else{if(_a.toLowerCase()==_b.toLowerCase()){return 0}if(_a.toLowerCase()<_b.toLowerCase()){return 1}return -1}}function sortDate(a,b){if(that.sortOrder=="ascending"){if(a[that.sortIndex]==b[that.sortIndex]){return 0}if(a[that.sortIndex]<b[that.sortIndex]){return -1}return 1}else{if(a[that.sortIndex]==b[that.sortIndex]){return 0}if(a[that.sortIndex]<b[that.sortIndex]){return 1}return -1}}function sortTableRows(){var rows=that.table.getElementsByTagName("tr");var odd=that.light;for(var i=0;i<that.rows.length;i++){var tbl=document.getElementById("nextdb-dt-bottom-tr");odd=odd==that.dark?that.light:that.dark;document.getElementById(that.rows[i][that.pkIndex]).style.backgroundColor=odd;var currRow=document.getElementById(that.rows[i][that.pkIndex]);for(var j=0;j<currRow.childNodes.length;j++){var id=currRow.childNodes[j].firstChild.id;currRow.childNodes[j].firstChild.id=("({y:"+i+id.substring(id.indexOf(",")))}tbl.parentNode.insertBefore(document.getElementById(that.rows[i][that.pkIndex]),document.getElementById("nextdb-dt-bottom-tr"))}}function $$(x){var kids=that.div.childNodes;for(var i=0;i<kids.length;i++){if(kids[i]&&kids[i].id&&kids[i].id==x){return kids[i]}}return null}function styleButton(ele,type){ele.style.width="28px";ele.style.height="22px";ele.style.margin="4px";if(type=="delete"){ele.style.background="url('img/dt-delete.png') no-repeat scroll 0% 0%"}else{if(type=="refresh"){ele.style.background="url('img/dt-refresh.png') no-repeat scroll 0% 0%"}else{if(type=="right"){ele.style.background="url('img/dt-arrow-right.png') no-repeat scroll 0% 0%"}else{if(type=="left"){ele.style.background="url('img/dt-arrow-left.png') no-repeat scroll 0% 0%"}else{if(type=="plus"){ele.style.background="url('img/dt-plus.png') no-repeat scroll 0% 0%"}}}}}ele.style.borderTop="0px";ele.style.borderLeft="0px";ele.style.borderBottom="0px";ele.style.borderRight="0px"}function styleEditButton(ele){ele.style.marginTop="10px";ele.style.marginBottom="10px"}function styleText(txt){var ret=(txt.length>20?txt.substring(0,20)+"...":txt)+"";ret=ret.replace(/\>/g,"&gt;").replace(/\</g,"&lt;");return ret}function buttonOn(e){}function buttonOff(e){}function buttonFire(e){}function buttonEndFire(e){}function buttonDisable(node){node.style.background=node.style.background.replace(/.png/,"-disabled.png")}function styleFooter(ele){ele.style.padding="0px";ele.style.height="24px";ele.style.borderLeft="1px solid #cccccc";ele.style.textAlign="left";ele.style.background="#ffffff url('img/dt-th-bg.png') repeat scroll 0% 0%"}function styleHeader(ele){var rowIndex=ele.id.substring(18);if(that.sortIndex==rowIndex){if(that.sortOrder=="ascending"){ele.style.background="url('img/dt-th-bg-ascending.png') repeat scroll 0% 0%"}else{ele.style.background="url('img/dt-th-bg-descending.png') repeat scroll 0% 0%"}}else{ele.style.background="url('img/dt-th-bg.png') repeat scroll 0% 0%"}ele.style.paddingLeft="19px";ele.style.fontWeight="bold";ele.unselectable="on";ele.style.height="24px";ele.style.marginLeft="12px";ele.style.borderLeft="1px solid #cccccc";ele.style.fontSize="12px";ele.style.fontFamily="arial"}function removeKey(key){var newArr=[];for(var i=0;i<that.PK.length;i++){if(that.PK[i]!=key){newArr.push(that.PK[i])}else{}}that.PK=newArr}function initTextHandler(txt){var commitButton=document.createElement("input");commitButton.type="button";commitButton.value="save";var cancelButton=document.createElement("input");cancelButton.type="button";cancelButton.value="cancel";styleEditButton(cancelButton);styleEditButton(commitButton);var textarea=document.createElement("textarea");textarea.style.width="240px";textarea.style.top="0px";textarea.style.left="0px";textarea.style.fontFamily="verdana,arial";textarea.style.fontSize="12px";textarea.style.padding="4px";textarea.value=txt;textarea.style.zIndex="500";textarea.style.border="2px solid #aaaaaa";textarea.style.backgroundColor="#eeeeee";var popOutButton=document.createElement("input");popOutButton.style.display="inline";popOutButton.type="button";popOutButton.value="enlarge";styleEditButton(popOutButton);var editDiv=document.createElement("div");editDiv.style.top="0px";editDiv.style.left="0px";editDiv.style.padding="4px";editDiv.style.height="95px";editDiv.style.width="250px";editDiv.style.zIndex="2000";editDiv.style.border="3px solid #aaaaaa";editDiv.style.position="absolute";editDiv.style.backgroundColor=that.dark;editDiv.appendChild(textarea);editDiv.appendChild(commitButton);editDiv.appendChild(cancelButton);editDiv.appendChild(popOutButton);cancelButton.onclick=function(e){e=e||event;e.stoppropagation?e.stoppropagation():e.cancelBubble=true;lockHandler=false;if(popOutButton.style.display=="none"){popOutButton.style.display="inline"}textarea.style.height="50px";textarea.style.width="240px";editDiv.style.height="95px";editDiv.style.width="250px";editDiv.style.display="none"};commitButton.onclick=function(e){e=e||event;e.stoppropagation?e.stoppropagation():e.cancelBubble=true;if(popOutButton.style.display=="none"){popOutButton.style.display="inline"}lockHandler=false;textarea.style.height="50px";textarea.style.width="240px";editDiv.style.height="95px";editDiv.style.width="250px";editDiv.style.display="none";that.updateNewValue=textarea.value;that.update();return};popOutButton.onclick=function(e){e=e||event;e.stoppropagation?e.stoppropagation():e.cancelBubble=true;popOutButton.style.display="none";$("body").append(editDiv);editDiv.style.height="98%";editDiv.style.width="98%";textarea.style.height="400px";textarea.style.width="96%";return false};that.textHandler=editDiv}function initNumberHandler(txt){var input=document.createElement("input");input.type="text";var commitButton=document.createElement("input");commitButton.type="button";commitButton.value="save";var cancelButton=document.createElement("input");cancelButton.type="button";cancelButton.value="cancel";styleEditButton(commitButton);styleEditButton(cancelButton);var editDiv=document.createElement("div");editDiv.style.top="0px";editDiv.style.left="0px";editDiv.style.padding="4px";editDiv.style.width="140px";editDiv.style.zIndex="2000";editDiv.style.border="3px solid #aaaaaa";editDiv.style.position="absolute";editDiv.style.backgroundColor=that.dark;editDiv.appendChild(input);editDiv.appendChild(commitButton);editDiv.appendChild(cancelButton);cancelButton.onclick=function(e){e=e||event;e.stoppropagation?e.stoppropagation():e.cancelBubble=true;lockHandler=false;editDiv.style.display="none";return false};commitButton.onclick=function(e){e=e||event;e.stoppropagation?e.stoppropagation():e.cancelBubble=true;lockHandler=false;editDiv.style.display="none";that.updateNewValue=input.value;that.update();return false};that.numberHandler=editDiv}};FeedBack={init:function(){var b=document.createElement("div");var c=new net.nextdb.Connection("brenthamby","admin_pages");var a=new net.nextdb.html.InsertForm(c,"FEEDBACK");a.options({type:{comment:"comment",bug:"bug",question:"question",enhancemnet:"new feature request"}});a.omitFields(["date","user_name","full_name","email","status","log"]);a.interceptor(function(d){d.user_name=admin.user.userName;d.full_name=admin.user.firstName+" "+admin.user.lastName;d.email=admin.user.email});a.expandFields(["message"]);a.cancelCallback(function(){$(b).dialog("close")});a.insertCallback(function(){a.destroy();$(b).html("<br><br><br><center><span style='color:green'><b>Thanks for the feedback "+admin.user.firstName+"!</b></span></center>");setTimeout(function(){$(b).dialog("close")},1000)});a.render(b);$(b).dialog({title:"Send Feed Back"})}};net.nextdb.html.DataEntryWidget=function(f,d,c,e){f.style.paddingBottom="100px";this.div=f;this.message;this.id=Math.random()*10000;this.table=d;this.conn=c;this.callback=e;var b=this;this.count=0;this.values={};this.uploadLock=false;function a(j,h){var g=new net.nextdb.html.FileUpload(b.conn,b.table,function(){j.value="loading pic";j.disabled=true},function(k){j.value="insert";j.disabled=false;b.values[h.name]=k});return g}this.render=function(){b.div.style.position="relative";b.conn.describeTable(b.table,function(q,C){var r=$C("table");var F=$C("tBody");var h=$C("form");h.appendChild(r);h.id=b.id;r.appendChild(F);b.message=$C("span");b.message.style.padding="3px";var o=0;b.div.innerHTML="";b.div.appendChild(b.message);b.div.appendChild(h);var t=$C("input");var s=$C("input");for(var D=0;D<q.length;D++){if(b.table==q[D].name){for(var w=0;w<q[D].columns.length;w++){o=q[D].columns.length;if(q[D].columns[w].owner!=null){continue}var J=q[D].columns[w].name;var B=q[D].columns[w].defaultValue;var x=q[D].columns[w].nullable;var n=q[D].columns[w].type;var I=$C("tr");var m=$C("td");m.innerHTML="<b>"+J+"</b> : "+n;I.appendChild(m);var l=$C("td");if(n=="LONGBINARY"){var g=document.createElement("div");g.name=J;b.values[J]="";l.appendChild(g);I.appendChild(l);F.appendChild(I);var H=a(t,g);g.appendChild(H.form)}else{if(n=="DATE"){var G=new net.nextdb.html.Calendar();G.setCallback(function(K){b.values[this.name]=K});var u=G.getElement();u.type="text";u.name=J;b.values[J]="";l.appendChild(u);I.appendChild(l);F.appendChild(I)}else{var u=$C("input");u.type="text";u.name=J;u.onkeyup=function(){b.values[this.name]=this.value};b.values[J]="";l.appendChild(u);I.appendChild(l);F.appendChild(I);if(w==0){u.focus()}}}}if(q[D].captcha=="true"){var v=$C("tr");var m=$C("td");var l=$C("td");var A=$C("tr");var k=$C("td");var j=$C("td");m.innerHTML="click to refresh image";l.innerHTML="<img onclick='net.nextdb.Util.sourceCaptchaImg(this,\"333333\",\"ffffff\")' id='nextdb:captcha' src='"+net.nextdb.CONSTANTS.captchaUrl+"?fg=333333&bg=ffffff&width=175&height=80&cruft="+Math.random()+"'>";v.appendChild(m);v.appendChild(l);var J="captcha";var u=$C("input");u.type="text";u.name=J;u.onblur=function(){b.values[this.name]=this.value};b.values[J]="";k.innerHTML="enter letters on image";j.appendChild(u);A.appendChild(k);A.appendChild(j);F.appendChild(v);F.appendChild(A)}}}var E=$C("tr");var z=$C("td");var y=$C("td");y.style.paddingTop="12px";t.type="button";s.type="button";s.value="clear";t.value="insert";s.onclick=function(){for(var K in b.values){b.values[K]=""}document.getElementById(b.id).reset()};t.onclick=function(){var K=new net.nextdb.Insert(b.table);K.setParameters(b.values);c.executeInsert(K,function(M,L){b.count++;if(L){b.message.innerHTML="insert "+b.count+" failed. "+L.message}else{$("#table_row_count").html((parseInt($("#table_row_count").html())+1));b.message.innerHTML="insert "+b.count+" succeeded.  insert again or 'Done'."}})};if(o==0){b.message.innerHTML="There are no columns in this table. You need to add columns before adding data."}else{y.appendChild(t);y.appendChild(s)}E.appendChild(z);E.appendChild(y);F.appendChild(E)})};$C=function(g){var h=document.createElement(g);h.className="text";return h}};net.nextdb.html.Calendar=function(J,E){var C=C;var d=J||new Date();var E=E||{border:"rgb(200, 200, 200)",font:"rgb(8, 8, 8)",background:"rgb(255, 255, 255)",selectedBackground:"rgb(0, 88, 0)",selectedFont:"rgb(255, 255, 255)",mouseoverBackground:"rgb(200, 200, 200)",mouseoverFont:"rgb(0, 0, 0)"};var M=["January","February","March","April","May","June","July","August","September","October","November","December"];var x=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var f=[31,28,31,30,31,30,31,31,30,31,30,31];if(c()){f[1]=29}this.date=function(){return d};var e=new RegExp(/\s/g);this.input=u("input");if(J){this.input.value=net.nextdb.Util.convertToServerDateFormat(J)}this.selectType="BUTTON";this.body=u("div");var r=this.body;var a=this.input;r.style.backgroundColor=E.background;r.style.color=E.font;r.style.position="absolute";r.style.zIndex="100000";r.style.display="none";r.style.width="185px";r.style.border="2px solid "+E.border;r.style.textAlign="center";r.style.padding="4px";r.style.fontFamily="arial";r.style.fontSize="8pt";var j=u("div");j.style.position="relative";j.style.height="24px";var v=u("span");v.style.position="absolute";v.style.left="21px";v.style.color=E.font;v.style.fontFamily="verdana";v.style.fontSize="8pt";v.style.fontWeight="bold";v.style.textAlign="center";v.innerHTML="&lt;&lt;";v.onclick=H;v.id="nextdb-cal-back-arrow";var A=u("span");A.innerHTML="&gt;&gt;";A.style.position="absolute";A.style.fontFamily="verdana";A.style.color=E.font;A.style.fontSize="8pt";A.style.fontWeight="bold";A.style.left="135px";A.style.textAlign="center";A.onclick=q;A.id="nextdb-cal-forward-arrow";var D=u("span");D.style.position="absolute";D.style.left="45px";D.style.minWidth="80px";D.style.fontFamily="arial";D.style.fontWeight="bold";D.style.fontSize="8pt";D.style.color=E.font;D.style.backgroundColor=E.background;D.style.textAlign="center";D.innerHTML=M[d.getMonth()]+" "+d.getFullYear();D.id="nextdb-cal-month-view";j.appendChild(v);j.appendChild(D);j.appendChild(A);r.appendChild(j);var O=u("td");O.style.width="20px";O.style.height="8px";O.style.padding="3px";O.style.fontSize="7pt";O.style.border="1px solid "+E.border;O.style.MozBorderRadius="3px";O.style.WebkitBorderRadius="3px";O.style.textAlign="center";O.style.cursor="hand";var P=u("table");var z=u("tBody");var t=u("tr");for(I=0;I<7;I++){var s=O.cloneNode(false);s.innerHTML=x[I].substr(0,1);t.appendChild(s)}z.appendChild(t);r.style.align="center";P.appendChild(z);r.appendChild(P);var N=u("table");n();r.appendChild(N);var y=u("select");y.onchange=b;y.style.color=E.font;y.style.width="60px";y.style.backgroundColor=E.background;y.style.fontSize="8pt";for(var I=0;I<24;I++){var B=u("option");B.style.backgroundColor=E.background;if((I==d.getHours())){B.selected="true"}B.value=I;if(I==0){B.text="12 AM"}else{if(I<12){B.text=I+" AM"}else{if(I==12){B.text="12 PM"}else{B.text=Math.abs(12-I)+" PM"}}}if(document.all){y.add(B,I)}else{y.appendChild(B)}}r.appendChild(y);var K=u("select");K.onchange=g;K.style.color=E.font;K.style.width="40px";K.style.backgroundColor=E.background;K.style.fontFamily="arial";K.style.fontSize="8pt";for(var I=0;I<60;I++){var B=u("option");if((I==d.getMinutes())){B.selected="true"}B.value=I<10?"0"+I:I;B.text=B.value;B.style.backgroundColor=E.background;if(document.all){K.add(B,I)}else{K.appendChild(B)}}r.appendChild(K);var l=u("input");l.type="button";l.onclick=o;l.value="set";l.style.fontFamily="arial";l.style.fontSize="8pt";r.appendChild(l);var h=u("input");h.type="button";h.onclick=F;h.value="cancel";h.style.fontFamily="arial";h.style.fontSize="8pt";r.appendChild(h);function n(){if($("#nextdb-cal-table")){$("#nextdb-cal-table").remove()}var Y=u("tBody");Y.id="nextdb-cal-table";var W=u("tr");Y.appendChild(W);var T=new Date(d.getFullYear(),d.getMonth());T.setDate(1);var R=T.getDay();var Q=1;for(var U=0;U<7;U++){var X=O.cloneNode(false);if(U<R){X.innerHTML="&nbsp;"}else{if(d.getDate()==Q){X.innerHTML=Q;X.style.backgroundColor=E.selectedBackground;X.style.color=E.selectedFont}else{X.innerHTML=Q}X.onmouseover=G;X.onmouseout=k;X.onclick=L;Q++}W.appendChild(X)}var W=u("tr");Y.appendChild(W);var S=0;var V=f[d.getMonth()]-Q;for(var U=0;U<=V;U++){var X=O.cloneNode(false);if(d.getDate()==Q){X.innerHTML=Q;X.style.backgroundColor=E.selectedBackground;X.style.color=E.selectedFont}else{X.innerHTML=Q}X.onmouseover=G;X.onmouseout=k;X.onclick=L;W.appendChild(X);Q++;S++;if(S==7){S=0;W=u("tr");Y.appendChild(W)}}N.appendChild(Y)}function G(Q){if(document.all){var R=window.event.srcElement}else{var R=Q.target}if(R.style.backgroundColor.replace(e,"")!=E.selectedBackground.replace(e,"")){R.style.backgroundColor=E.mouseoverBackground;R.style.color=E.mouseoverFont}}function k(Q){if(document.all){var R=window.event.srcElement}else{var R=Q.target}if(R.style.backgroundColor.replace(e,"")!=E.selectedBackground.replace(e,"")){R.style.backgroundColor=E.background;R.style.color=E.font}}function L(S){if(S){S.stoppropagation?S.stoppropagation():S.cancelBubble=true}if(document.all){var T=window.event.srcElement}else{var T=S.target}var R=w("nextdb-cal-table").getElementsByTagName("td");for(var Q=0;Q<R.length;Q++){R[Q].style.backgroundColor=E.background;R[Q].style.color=E.font}d.setDate(T.innerHTML);o();T.style.backgroundColor=E.selectedBackground;T.style.color=E.selectedFont}function m(){d.setYear(yearSelect[yearSelect.selectedIndex].value);if(c()){f[1]=29}n()}function H(Q){Q.stopPropagation();d.setMonth(d.getMonth()-1);n();w("nextdb-cal-month-view").innerHTML=M[d.getMonth()]+" "+d.getFullYear();return false}function q(Q){Q.stopPropagation();d.setMonth(d.getMonth()+1);n();w("nextdb-cal-month-view").innerHTML=M[d.getMonth()]+" "+d.getFullYear();return false}function b(){d.setHours(y[y.selectedIndex].value)}function g(){d.setMinutes(K[K.selectedIndex].value)}function o(Q){if(Q){Q=Q||event;Q.stoppropagation?Q.stoppropagation():Q.cancelBubble=true}r.style.display="none";var R=net.nextdb.Util.convertToServerDateFormat(d);a.value=R;if(a.callback){a.callback(R)}}function F(Q){if(Q){Q=Q||event;Q.stoppropagation?Q.stoppropagation():Q.cancelBubble=true}r.style.display="none";a.value=d;if(a.callback){a.callback(d,"cancel")}}function c(){if((d.getFullYear()%4)==0){if((d.getFullYear()%100==0)&&(d.getFullYear()%400)!=0){return false}else{return true}}else{return false}}function w(Q){return document.getElementById(Q)}function u(Q){if(document.all){var R=document.createElement("<"+Q+">")}else{var R=document.createElement(Q)}return R}};net.nextdb.html.Calendar.prototype.getElement=function(){this.input.type="text";var a=this;this.input.onfocus=function(){a.input.parentNode.appendChild(a.body);a.body.style.display="block"};return this.input};net.nextdb.html.Calendar.prototype.setCallback=function(a){this.input.callback=a};net.nextdb.html.Calendar.prototype.setSelectType=function(a){if(!a||a!="BUTTON"||a!="DAYCLICK"){alert("invalid value in setting Calendar.setSelectType() \n\n entered : "+a);return}this.selectType=a};net.nextdb.html.FileUpload=function(g,q,c,a,d){this.table=q;this.div=document.createElement("div");this.rowSet;this.conn=g;this.callbackStart=c;this.callbackFinish=a;this.formId="XDBForm"+Math.round(Math.random()*100000000000);this.progress=d;this.uploadID;this.formFieldId="XDBFormField"+Math.round(Math.random()*100000000000);var l=this;var b=document.createElement("form");this.form=b;b.action="";b.method="post";b.id=this.formId;b.name="upLoadForm";b.onsubmit=o;b.enctype="multipart/form-data";b.encoding="multipart/form-data";var h=document.createElement("input");h.type="file";h.name="form[file]";h.id=l.formFieldId;h.onchange=function(){$(n).click();return false};b.appendChild(h);var n=document.createElement("input");n.type="submit";n.style.display="none";b.appendChild(n);var f;function o(){m();l.callbackStart();return net.nextdb.html.AIM.submit(b,{onStart:e,onComplete:j},l.div)}function m(){var r=Math.round(Math.random()*100000000000);l.uploadID=r;f=l.conn.getUploadURL(r,l.table);document.getElementById(l.formId).action=f}function e(){k();return true}function k(){if(!l.progress){return}l.conn.uploadProgress(l.uploadID,function(s,r){if(r){return r}else{if(!s.rx){setTimeout(k,100);return}if(s.rx<s.totalRX){l.progress(s);setTimeout(k,100)}else{l.progress(s);return}}})}function j(r){var s=(f.replace(/post/,"view"));l.callbackFinish(s);return}};net.nextdb.html.FileUpload.prototype.getElement=function(){return this.form};net.nextdb.html.AIM={frame:function(f){var e="f"+Math.floor(Math.random()*99999);var b=document.createElement("div");b.innerHTML=b.innerHTML+'<iframe style="display:none;" id="'+e+'" name="'+e+'" onload="net.nextdb.html.AIM.loaded(\''+e+"');\"></iframe>";b.id="div_"+e;document.body.appendChild(b);var a=document.getElementById(e);self.frames[e].name=e;if(f&&typeof(f.onComplete)=="function"){a.onComplete=f.onComplete}return e},form:function(b,a){b.setAttribute("target",a)},submit:function(a,b){net.nextdb.html.AIM.form(a,net.nextdb.html.AIM.frame(b));if(b&&typeof(b.onStart)=="function"){return b.onStart()}else{return true}},loaded:function(c){try{var a=document.getElementById(c);if(typeof(a.onComplete)=="function"){a.onComplete(c)}}catch(b){alert(b)}}};var loader="<center><img style='padding:10px' src='img/ajax-loader-square.gif'></center>";var Logger;Main={init:function(){Logger=new net.nextdb.Logger("DEBUG","console");$(window).unload(function(){if(localServer){return}var f="**********************************\nSESSION :\n";f+=navigator.userAgent+"\n";f+=admin.user.firstName+" "+admin.user.lastName+"\n";f+=admin.user.userName+" "+admin.user.email+"\n";for(var a=0;a<Logger.messages.length;a++){f+=Logger.messages[a]+"\n"}if((admin.user.firstName+" "+admin.user.lastName).toUpperCase()!="BRENT HAMBY"){try{var b=new net.nextdb.Connection("brenthamby","admin_pages");var c=new net.nextdb.Insert("SESSIONS");c.setParameters({data:f});b.executeInsert(c,function(){})}catch(d){alert(d)}}});$("#forgot_password").unbind("click");$("#forgot_password").click(function(){$("#forgot_password_form").slideDown();$("#forgot_password_login").val("");$("#forgot_password_captcha").val("");net.nextdb.Util.sourceCaptchaImg($("#captchaimg")[0],"#333333","#ffffff");$("#forgot_password_cancel").unbind("click");$("#forgot_password_cancel").click(function(){$("#forgot_password_message").empty();$("#forgot_password_form").slideUp()});$("#forgot_password_submit").unbind("click");$("#forgot_password_submit").click(function(){if($("#forgot_password_captcha").val()&&$("#forgot_password_login").val()){net.nextdb.admin.Admin.forgotPassword($("#forgot_password_login").val(),$("#forgot_password_captcha").val(),function(a){if(a){$("#forgot_password_message").empty().html(a.getMessage())}else{$("#forgot_password_message").html("<span style='color:green'>You have been sent an email</span>")}})}else{$("#forgot_password_message").html("Please complete the form")}})});$("#pane_splitter").css("height",$(window).height()-100);$(window).resize(function(){$("#pane_splitter").css("height",$(window).height()-100)});$("#pane_splitter").css("height",$("window").attr("outerHeight"));$("#login-username").val(net.nextdb.Util.readCookie("nextdb-login")||"");$("#login-password").val(net.nextdb.Util.readCookie("nextdb-password")||"");$(".main_frame").hide();$("#login").hide().fadeIn();$(".logo").hide().fadeIn();window.admin=new net.nextdb.admin.Admin();$("#login-password").keypress(function(a){if(a.which==13){$("#admin-login-button").click()}});$("#admin-login-button").unbind("click");$("#admin-login-button").click(function(){if(this.value=="checking..."){return}this.value="checking...";var a=this;admin.executeGenericRequest("LOGIN",{username:$("#login-username").val(),password:$("#login-password").val()},function(b,c){admin.user=b;a.value="login";if(c){$("#login-error-message").empty().html("<span style='color:red'>"+c.getMessage()+"</span>")}else{if($("#login-remember").attr("checked")){net.nextdb.Util.createCookie("nextdb-login",$("#login-username").val(),365);net.nextdb.Util.createCookie("nextdb-password",$("#login-password").val(),365)}$("#login").hide();$("#pane_splitter").show();$("#pane_splitter").splitter({type:"v",outline:true,minLeft:100,sizeLeft:235,minRight:200,resizeToWidth:true,cookie:"nextdb_splitters",accessKey:"I"});$("#network_panel").show();$("#network_opener").click(function(){if($(this).attr("src")=="img/minus.gif"){$(this).attr("src","img/plus.gif");$("#network_panel").css("height","14px");$("#network_console").hide()}else{$("#network_panel").css("height","36px");$("#network_console").show();$(this).attr("src","img/minus.gif")}});$("#db_tree").html(loader);$("#database_create_new_button").unbind("click");$("#database_create_new_button").click(function(){$("#database_create_form").show();$("#database_create_text").empty().focus();$(this).hide()});$("#database_cancel_button").unbind("click");$("#database_cancel_button").click(function(){$("#database_create_text").val("");$("#database_create_errors").empty().hide().slideUp();$("#database_create_form").hide();$("#database_create_new_button").show()});$("#database_create_button").click(DatabaseManager.createDatabase);$("#account_header").html("<a href='#' id='feedback_link'>Feed Back</a> | <a href='#' id='account_link'>My Account</a> | <a href='index.html'>Logout</a>");$("#account_link").unbind("click");$("#account_link").click(AccountManager.init);$("#feedback_link").unbind("click");$("#feedback_link").click(FeedBack.init);var d=true;DatabaseManager.loadDatabases(d)}})})}};Tab={loaded:false,init:function(){if(Tab.loaded){Tab.reset()}else{Tab.reset()}},reset:function(){}};DatabaseTab={loaded:false,selectedDB:null,init:function(){if(!DatabaseTab.loaded){$("#column_datatype").change(function(){if($(this).val()=="LONGINTEGER"||$(this).val()=="DECIMAL"){$("#column_default_value").val("0")}else{if($(this).val()=="DATE"){$("#column_default_value").val("CURRENT_TIMESTAMP")}else{$("#column_default_value").val("")}}});DatabaseTab.selectedDB=DatabaseManager.selectedDB;$("#database_icon").show();$("#database_import_button").click(function(){DatabaseManager.importDatabaseDefinition($("#database_import_select").val())});$("#database_import_url_button").click(function(){DatabaseManager.importDatabaseDefinition($("#database_import_field").val())});DatabaseTab.loaded=true;DatabaseTab.reset()}else{if(DatabaseTab.selectedDB!=DatabaseManager.selectedDB){DatabaseTab.selectedDB=DatabaseManager.selectedDB;DatabaseTab.reset()}}},reset:function(){$("#loading_panel").hide();$("#selected_database_header").empty().show().html(DatabaseManager.selectedDB);$("#database_summary").empty().html("<center><img style='padding:10px' src='img/ajax-loader-square.gif'></center>");admin.executeGenericRequest("USAGE",{},function(e,a){if(a){}else{DatabaseManager.usage=e.TableUsage||[];var d="<table id='usage_table' cellpadding='0px' cellspacing='0px' style='border:1px solid #ccc'><tr><td><b>Table</b></td><td><b>Rows</b></td><td><b>Binary Files (kilobytes)</b></td></tr>";var c="odd";for(var b=0;b<e.TableUsage.length;b++){d+="<tr class="+(c=="odd"?(c="even"):(c="odd"))+"><td>"+e.TableUsage[b].tableName+"</td><td>"+e.TableUsage[b].rowCount+"</td><td>"+(e.TableUsage[b].byteCount/1000)+"</td></tr>"}if(e.TableUsage.length==0){d+="<tr class="+(c=="odd"?(c="even"):(c="odd"))+"><td colspan='3'><center><i>no rows returned</i></center></td></tr>"}d+="</table>";$("#database_summary").empty().html(d)}});$("#loading_panel").hide();$("#database_panel").show();$("#database_mngt_accordion").accordion("activate",0)}};QueryTab={loaded:false,selectedQuery:undefined,editAreaLoader:undefined,queries:undefined,selectedDB:null,selectedQueryInitialLength:0,selectedQueryRealTimeLength:0,init:function(){if(QueryTab.loaded){$("#queries").show();if(QueryTab.selectedDB==DatabaseManager.selectedDB){return}QueryTab.selectedDB=DatabaseManager.selectedDB;$("#query_panel_left").html(loader);$("#query_errors").html("&nbsp;");setTimeout(function(){QueryTab.clearEditor();QueryTab.reset()},100);return}QueryTab.selectedDB=DatabaseManager.selectedDB;$("#queries").load("queries.html",function(a){QueryTab.loaded=true;$("#queries").html(a);$("#query_panel_left").html(loader);$("#query_tools_builder").hide();$("#queries").show();editAreaLoader.init({toolbar:"",id:"query_text_editor",syntax:"nextquery",start_highlight:true,word_wrap:true,replace_tab_by_spaces:3,toolbar:"*",language:"en"});$("#query_text_editor").addClass("query_text_editor");QueryTab.editAreaLoader=editAreaLoader;$("#query_test_button").click(function(){QueryTab.testQuery()});$("#query_template_button").click(function(){var d="NAME=STARTER_QUERY;";var c=DatabaseManager.tables;for(var b=0;b<c.length;b++){d+="\nROW "+c[b].name+" FROM "+c[b].name+";"}QueryTab.editAreaLoader.setValue("query_text_editor",d)});$("#query_create_button").click(function(){admin.executeGenericRequest("CREATE_QUERY",{src:editAreaLoader.getValue("query_text_editor")},function(e,k){if(e.error){$("#query_errors").html(e.error+" "+e.msg+" line: "+(parseInt(e.line))+" column: "+e.column);var j=QueryTab.editAreaLoader.getValue("query_text_editor");var m=1;var c=0;var b=-1;var d;if(e.column==-1){e.column=0}for(var g=0;g<j.length;g++){if(m==e.line){if(c==e.column){b=g}else{if(b>-1&&(j[g]=="\n"||j[g]==";"||g+1==j.length)){d=g}}if(b>-1&&d){editAreaLoader.setSelectionRange("query_text_editor",b,d);var h=$("#frame_query_text_editor")[0];var l=h.contentWindow?h.contentWindow.document:h.contentDocument?h.contentDocument:h.document;$("strong",l).css("background-color","red");break}c++}else{if(j[g]=="\n"){m++;c=0}}}}else{$("#query_errors").html("<span style='color:green'>Successful compilation of new query</span>");setTimeout(function(){$("#query_errors").html("&nbsp;")},2000);QueryTab.reset()}})});$("#query_tools_clear_button").click(QueryTab.clearEditor);QueryTab.reset()})},clearEditor:function(){QueryTab.editAreaLoader.setValue("query_text_editor","")},reset:function(){$("#query_panel_left").html(loader);admin.executeGenericRequest("DESCRIBE_QUERY",{},function(f,a){if(a){alert("error returned to executeGenericRequest:\n\n "+a)}else{var c="";var b=0;for(var e in f){if(e=="id"){continue}c+=("<div class='left_list' rel='"+e+"'><div name='name1' class='left_list_label'>"+e+"</div><div class='left_list_delete'><div class='ui-state-default ui-corner-all rel_delete_icon' delete='"+e+"'><span class='ui-icon ui-icon-trash'></span></div></div></div>");b++}if(!c){c="<br/><br/><i>NOTE:<br/><br/>there are no queries associated with this database</i>"}$("#query_panel_left").empty();$("#query_panel_left").html(c);$(".left_list","#query_page").hide();var d=0;$(".left_list","#query_page").slideDown(300,function(){d++;if(d==b){$(this).click()}});$(".left_list","#query_page").hover(function(){$(this).addClass("left_list_on")},function(){$(this).removeClass("left_list_on")});$(".left_list","#query_page").click(QueryTab.selectItem);$("#query_panel_left [delete]").click(QueryTab.deleteItem);$("#query_panel_left [delete]").hover(function(){$(this).addClass("ui-state-hover");$(this).removeClass("ui-state-default")},function(){$(this).addClass("ui-state-default");$(this).removeClass("ui-state-hover")})}QueryTab.queries=f})},deleteItem:function(b){b.stopPropagation();b.preventDefault();var a=$(this).attr("delete");dialogDeleteConfirm("Query: "+a,function(c){if(c){admin.executeGenericRequest("DELETE_QUERY",{name:a},function(e,d){if(d){alert("error returned to executeGenericRequest:\n\n "+d)}else{QueryTab.reset()}})}else{}});return false},selectItem:function(){$(".left_list","#query_page").removeClass("left_list_selected");$(".left_list","#query_page").removeClass("left_list_on");$(this).addClass("left_list_selected");for(var a in QueryTab.queries){if(a=="id"){continue}if($(this).attr("rel")==a){editAreaLoader.setValue("query_text_editor","");editAreaLoader.setValue("query_text_editor",QueryTab.queries[a].src);QueryTab.selectedQueryInitialLength=QueryTab.queries[a].src.length;QueryTab.selectedQuery=QueryTab.queries[a];QueryTab.selectedQuery.name=a;break}}},testQuery:function(){if(editAreaLoader.getValue("query_text_editor").length!=QueryTab.selectedQueryInitialLength){$("#query_errors").html("Warning!  It appears you have unsaved changes, please compile the query before testing in order to see the changes.");return}if(!QueryTab.selectedQuery){$("#query_errors").html("please select a compiled query to test");return}var g=QueryTab.selectedQuery.whereParameters;var r=0;var b=j("table");b.id="query_tester_form";b.style.padding="20px";var d=j("tBody");b.appendChild(d);var h=true;for(var a in g){r++;if(g[a]=="DATE"){var l=new net.nextdb.html.Calendar();var m=l.getElement()}else{var m=j("input")}m.type="text";m.name=a;m.className="text";var k=j("tr");var f=j("td");f.valign="top";var e=j("td");k.appendChild(f);k.appendChild(e);f.innerHTML=a;e.appendChild(m);d.appendChild(k);if(h){m.focus();h=false}}if(QueryTab.selectedQuery.orderBy!=null&&QueryTab.selectedQuery.orderBy!=""){var q=(""+QueryTab.selectedQuery.orderBy).split(".");var o=DatabaseManager.getTableByName(q[0]);if(o){for(var n=0;n<o.Columns.length;n++){if(o.Columns[n].name==q[1].substring(0,q[1].indexOf(" "))){if(o.Columns[n].type=="DATE"){var l=new net.nextdb.html.Calendar();var m=l.getElement()}else{var m=j("input")}m.type="text";m.name="startAfterValue";m.id="testQueryStartAfter";m.className="text";var k=j("tr");var f=j("td");f.valign="top";var e=j("td");k.appendChild(f);k.appendChild(e);f.innerHTML="ORDER BY starts after";e.appendChild(m);d.appendChild(k)}}}}$("#query_test_dialog").empty();$("#query_test_dialog").append("<h2>Testing Query: <i>'"+QueryTab.selectedQuery.name+"'</i></h2>");if(r){$("#query_test_dialog").append("Please supply parameters to the query, you can change the parameters and re-execute the query as many times as you need.<br/><br/>");$("#query_test_dialog").append(b)}$("#query_test_dialog").append("<input type='button' value='run query' id='query_tester_execute'>");$("#query_test_dialog").append("<input type='button' value='clear' id='query_tester_clear'>");$("#query_test_dialog").append("<div id='query_tester_results'></div>");$("#query_tester_clear").unbind("click");$("#query_tester_clear").click(function(){$("#query_tester_results").html("")});$("#query_tester_execute").unbind("click");$("#query_tester_execute").click(function(){$("#query_tester_results").html(loader);var c=new net.nextdb.Connection(admin.user.domain,DatabaseManager.selectedDB);var s=new net.nextdb.Query(QueryTab.selectedQuery.name);if($("#query_tester_form")[0]){s.setParameters(net.nextdb.Util.formParser($("#query_tester_form")[0]))}c.executeQuery(s,function(w,t){if(t){$("#query_tester_results").html(t.getMessage())}else{var u="";if(w.length==0){$("#query_tester_results").html("<center><div style='padding-top:30px'><i>no rows returned</i></div><center>")}else{var v=new net.nextdb.html.Reflector();v.reflect(w);var u=v.getHTML();$("#query_tester_results").html(u)}}})});$("#query_test_dialog").dialog({title:"Query Runner",modal:true,width:800,height:400,top:100,left:100,autoOpen:false,overlay:{backgroundColor:"#000",opacity:0.9}});$("#query_test_dialog").dialog("open");function j(c){return document.createElement(c)}}};UsageTab={data:null,loaded:false,type:null,selectedDB:null,showToolTip:function(a,c,b){$('<div id="tooltip" style="z-index:100000">'+b+"</div>").css({position:"absolute",display:"none",top:c-10,left:a+5,border:"3px solid #dfd",padding:"2px","background-color":"#efe",opacity:0.8}).appendTo("body").fadeIn(200)},init:function(){$("#usage_request_json").html("");$("#usage_response_json").html("");if(!UsageTab.loaded){$("#query_usage_button").click(UsageTab.selectCategory);$("#insert_usage_button").click(UsageTab.selectCategory);$("#update_usage_button").click(UsageTab.selectCategory);$("#delete_usage_button").click(UsageTab.selectCategory);UsageTab.loaded=true}$("#usage_graph").html('<div style="text-align:center;padding-top:30px;"><b>Please select one of the category buttons to view the system usage.</b></div>')},reset:function(){},selectCategory:function(){UsageTab.type=($(this).attr("id").substring(0,$(this).attr("id").indexOf("_"))).toUpperCase();if(UsageTab.data&&UsageTab.selectedDB==DatabaseManager.selectedDB){UsageTab.render();return}UsageTab.selectedDB=DatabaseManager.selectedDB;admin.executeGenericRequest("SERVICE_LOG",{},function(b,a){if(a){alert(a)}else{UsageTab.data=b;UsageTab.render()}})},render:function(){$("#usage_request_json").html("");$("#usage_response_json").html("");$("#usage_tool_tips").html("");var e=UsageTab.data;if(UsageTab.type=="QUERY"){UsageTab.type="EXECUTE_QUERY"}var d=UsageTab.type;if(!e[UsageTab.type]){$("#usage_graph").html('<div style="text-align:center;padding-top:30px;"><i>No results returned.</i></div>');return}var b=[];for(var a=0;a<e[UsageTab.type].exTimes.length;a++){b.push([a,e[UsageTab.type].exTimes[a]])}var f=$.plot($("#usage_graph"),[{label:d,color:"green",bars:{show:true},data:b}],UsageTab.options);var c=null;$("#usage_graph").unbind("plothover");$("#usage_graph").bind("plothover",function(j,l,h){$("#x").text(l.x.toFixed(2));$("#y").text(l.y.toFixed(2));if(h){if(c!=h.datapoint){c=h.datapoint;$("#tooltip").remove();var g=h.datapoint[0].toFixed(2),k=h.datapoint[1].toFixed(2);UsageTab.showToolTip(h.pageX,h.pageY,h.series.label+" execution time "+k+" milliseconds")}}else{$("#tooltip").remove();$("#usage_tool_tips").fadeOut(200);c=null}});$("#usage_graph").unbind("plotclick");$("#usage_graph").bind("plotclick",function(h,j,g){if(g){$("#usage_request_json").html(loader);$("#usage_response_json").html(loader);admin.executeGenericRequest("SERVICE_LOG",{action:"getLogEntry",index:g.dataIndex,serviceName:d},function(n,k){if(k){alert(k)}else{var m=new net.nextdb.html.Reflector();m.reflect(n.logEntry.req);var l=m.getHTML();$("#usage_request_json").html("<h3>request</h3>"+l);m.reflect(n.logEntry.resp);var l=m.getHTML();$("#usage_response_json").html("<h3>response</h3>"+l)}})}})},options:{series:{bars:{show:true}},grid:{backgroundColor:{colors:["#ccc","#fe2"]}},selection:{mode:"xy"},grid:{hoverable:true,clickable:true}}};SecurityTab={loaded:false,init:function(){if(!SecurityTab.loaded){$("#database_referrer_button").click(DatabaseManager.addReferrer);SecurityTab.loaded=true;SecurityTab.reset()}else{SecurityTab.reset()}},reset:function(){DatabaseManager.getDatabaseReferrers();$("#referrerURL").val("")}};IndexingTab={loaded:false,init:function(){if(!IndexingTab.loaded){$("#database_reindex_button").click(DatabaseManager.reIndexDatabase);IndexingTab.loaded=true;IndexingTab.reset()}else{IndexingTab.reset()}},reset:function(){$("#database_reindex_dropped_container").hide();$("#database_reindex_created_container").hide();$("#database_reindex_dropped").hide();$("#database_reindex_created").hide();$("#database_reindex_dropped").empty();$("#database_reindex_created").empty()}};ImportTab={loaded:false,init:function(){if(!ImportTab.loaded){$("#database_import_url_button").click(function(){DatabaseManager.importURL($("#database_import_field").val())});ImportTab.loaded=true;ImportTab.reset()}else{ImportTab.reset()}},reset:function(){}};ExportTab={loaded:false,init:function(){if(!ExportTab.loaded){$("#database_export_button").click(DatabaseManager.publish);ExportTab.loaded=true;ExportTab.reset()}else{ExportTab.reset()}},reset:function(){}};DeleteDatabaseTab={loaded:false,init:function(){if(!DeleteDatabaseTab.loaded){$("#database_delete_button").click(function(){DatabaseManager.deleteDatabase()});DeleteDatabaseTab.loaded=true;DeleteDatabaseTab.reset()}else{DeleteDatabaseTab.reset()}},reset:function(){}};RelationshipsTab={loaded:false,relationships:null,selectedDB:null,init:function(){$("#rels_panel_right").hide();if(RelationshipsTab.loaded){if(RelationshipsTab.selectedDB!=DatabaseManager.selectedDatabase){RelationshipsTab.reset()}else{RelationshipsTab.selectedDB=DatabaseManager.selectedDatabase}return}$("#relationships").load("relationships.html",function(b){$("#relationships").html(b);RelationshipsTab.selectedDB=DatabaseManager.selectedDatabase;RelationshipsTab.loaded=true;$("#rels_page #rels_panel_right_template").hide();$("#rels_page #create_button").click(RelationshipsTab.addItem);var a=false;$("#relation_dialog_open_button").unbind("click");$("#relation_dialog_open_button").click(function(){$("#rel_create_form").show();if(a){$("#relations_create_form").dialog("open")}else{a=true;$("#relations_create_form").dialog({bgiframe:false,resizable:false,height:300,width:500,left:150,top:130,title:"Relate Tables",modal:true,close:function(c,d){RelationshipsTab.reset();$("#relations_relateTableName").val("");$("#relations_errors").empty()},overlay:{backgroundColor:"#000",opacity:0.9},buttons:{Done:function(){$(this).dialog("close")}}})}$("#relations_create_button").unbind("click");$("#relations_create_button").click(function(){var c=$(this);c.attr("disabled","true");c.attr("value","relating...");if($("#relations_relateTableName").val()==""||$("#relations_from_table").val()==-1||$("#relations_to_table").val()==-1){$("#relations_errors").empty().html("please complete form");c.removeAttr("disabled");c.attr("value","relate tables");return}var d={relationshipName:$("#relations_relateTableName").val(),table1:$("#relations_from_table").val(),table1Cardinality:"ONE",table2:$("#relations_to_table").val(),table2Cardinality:$("#relations_relateTableCardinality").val().substring($("#relations_relateTableCardinality").val().indexOf("-")+1)};admin.executeGenericRequest("RELATE_TABLES",d,function(f,e){c.removeAttr("disabled");c.attr("value","relate tables");$("#relations_errors").empty();if(e){$("#relations_errors").empty().html(e.getMessage())}else{$("#relations_errors").empty().html("<span style='color:green'>Created new relationship, create another or click done.</span>")}})})});RelationshipsTab.reset()})},deleteItem:function(b){$("#rels_page #rels_panel_right").hide();b.stopPropagation();b.preventDefault();var a=$(this).attr("delete");dialogDeleteConfirm("Relationship: "+a,function(c){if(c){admin.executeGenericRequest("DELETE_RELATIONSHIP",{name:a},function(e,d){if(d){alert("error returned to executeGenericRequest:\n\n "+d)}else{RelationshipsTab.reset()}})}else{}});return false},selectItem:function(){var c=$(this).attr("rel");for(var b=0;b<RelationshipsTab.relationships.length;b++){if(RelationshipsTab.relationships[b].name==c){c=RelationshipsTab.relationships[b];break}}$("#rels_page #table1").html(c.table1);var a=c.table2Cardinality=="MANY"?"ONE TO MANY":"ONE TO ONE";$("#rels_page #cardinality").html(a);$("#rels_page #table2").html(c.table2);$("#rels_page #rels_panel_left .left_list").removeClass("left_list_selected");$("#rels_page #rels_panel_left .left_list").removeClass("left_list_on");$(this).addClass("left_list_selected");$("#rels_page #table2Img").attr("src",c.table2Cardinality=="MANY"?"img/table-many.png":"img/table-one.png");$("#rels_page #rels_panel_right_template").hide();$("#rels_page #rels_panel_right").append($("#rels_page #rels_panel_right_template").show()).effect("slide")},reset:function(){$("#rels_panel_right").hide();var b=0;var a="";admin.executeGenericRequest("DESCRIBE_RELATIONSHIP",{},function(f,d){if(d){alert("error returned to executeGenericRequest:\n\n "+d)}else{DatabaseManager.relationships=f.Relationships;RelationshipsTab.relationships=f.Relationships;$("#relations_relateTable1").empty();$("#relations_relateTable2").empty();(createTableSelect("relations_from_table",null,$("#relations_relateTable1")));(createTableSelect("relations_to_table",null,$("#relations_relateTable2")));var c=f.Relationships;for(var e=0;e<c.length;e++){a+="<div class='left_list' rel='"+c[e].name+"'><div name='name1' class='left_list_label'>"+c[e].name+"</div><div class='left_list_delete'><div class='ui-state-default ui-corner-all rel_delete_icon' delete='"+c[e].name+"'><span class='ui-icon ui-icon-trash'></span></div></div></div>";b++}if(!a){a="<br/><br/><i>NOTE:<br/><br/>there are no relationships associated with this database</i>"}$("#rels_page #rels_panel_left").empty();$("#rels_page #rels_panel_left").html(a);$("#rels_page .left_list").show();$("#rels_page #rels_panel_left .left_list").hover(function(){$(this).addClass("left_list_on")},function(){$(this).removeClass("left_list_on")});$("#rels_page #rels_panel_left .left_list").click(RelationshipsTab.selectItem);$("#rels_page #rels_panel_left [delete]").click(RelationshipsTab.deleteItem);$("#rels_page").show();$("#rels_page #rels_panel_left [delete]").hover(function(){$(this).addClass("ui-state-hover");$(this).removeClass("ui-state-default")},function(){$(this).addClass("ui-state-default");$(this).removeClass("ui-state-hover")})}})}};CodeHelpTab={loaded:false,init:function(){if(!CodeHelpTab.loaded){CodeHelpTab.loaded=true;CodeHelpTab.reset()}else{CodeHelpTab.reset()}},reset:function(){$("#code_help_insert_select_div").empty();createTableSelect("code_help_insert_select",null,$("#code_help_insert_select_div"));$("#code_help_insert_button").unbind("click");$("#code_help_insert_button").click(CodeHelpTab.generateInsertForm);$("#code_help_code").html("<center><i>Please select a table and click 'Generate'</i></center>")},generateInsertForm:function(){var b=$("#code_help_insert_select").val();if(b=="-1"){return}var f=DatabaseManager.getTableByName(b);if(f.Columns.length==0){$("#code_help_code").html("<center>There are no columns defined in "+b+"</center>");return}else{$("#code_help_code").html("<center>loading...</center>")}var e="";for(var g=0;g<f.Columns.length;g++){if(!f.Columns[g].owner){e+="'"+f.Columns[g].name+"'"}if(g<f.Columns.length-1){e+=","}}var a="nextdb_div_"+(Math.round(Math.random()*1000000));var d="&lt;!-- put these tags somewhere in the head of your HTML --&gt\n&lt;script type='text/javascript' src='http://www.nextdb.net/api.js'&gt&lt;/script&gt\n&lt;script type='text/javascript'&gt;\n\t/* make sure the page loads before running code */\n\twindow.onload = function(){\n\t\tvar conn = new net.nextdb.Connection('@ACCOUNT@','@DATABASE@');\n\t\tvar insertForm = new net.nextdb.html.InsertForm(conn,'@TABLE@');\n\t\t/* these are the columns that will appear on the form, you can re-order and omit as needed */\n\t\tinsertForm.orderFields([@COLUMNORDER@]);\n\t\t/* control the layout, other options: HORIZONTAL_LAYOUT, VERTICAL_LAYOUT */\n\t\tinsertForm.layout(net.nextdb.html.Form.BOX_LAYOUT);\n\t\tinsertForm.render(document.getElementById('@DIV@'));\n\t}\n&lt;/script&gt;\n\n&lt;!-- put this tag somewhere in your HTML page to hold the form --&gt\n&lt;div id='@DIV@'&gt&lt;/div&gt\n";d=d.replace(/@ACCOUNT@/g,admin.user.domain).replace(/@DATABASE@/g,DatabaseManager.selectedDB).replace(/@TABLE@/g,b).replace(/@COLUMNORDER@/g,e).replace(/@DIV@/g,a);$("#code_help_code").html(d);prettyPrint()}};RESTTab={database:null,loaded:false,init:function(){if(!RESTTab.loaded){RESTTab.loaded=true;RESTTab.reset()}else{if(RESTTab.database!=DatabaseManager.selectedDB){RESTTab.reset()}}},reset:function(){RESTTab.database=DatabaseManager.selectedDB;var a=net.nextdb.CONSTANTS.restUrl+"/"+admin.user.domain+"/"+DatabaseManager.selectedDB+"/";$("#rest_examples").empty();var d=DatabaseManager.tables;var c="";for(var b=0;b<d.length;b++){c+=("<a class='rest_url' href='"+a+d[b].name+"' target='whole'>"+a+d[b].name+"</a><br><br>")}$("#rest_examples").html(c)}};TableTab={loaded:false,table:null,init:function(){if(!TableTab.loaded){TableTab.loaded=true;$("#table_create_new_button").click(function(){$("#table_create_form").show();$("#table_create_text").empty().focus();$(this).hide()});TableTab.reset()}else{TableTab.reset()}},reset:function(){TableTab.table=DatabaseManager.selectedTable;PanelManager.hideAll();$("#selected_table_header").empty().html(DatabaseManager.selectedTable).fadeIn();$("#table_management").show();var html="<table id='columns_table' border='0' cellpadding='0px' cellspacing='0px' style='border:1px solid #ccc'><tr><td><b>Name</b></td><td><b>Type</b></td><td><b>Unique</b></td><td><b>Nullable</b></td><td>&nbsp;</td></tr>";TableTab.css="odd";var columns;var table=DatabaseManager.getTable();if(table.captcha=="true"){$("#table_captcha_status").html("<div class='ui-state-default ui-corner-all small_button' style='background-color:#ffffcc;background:#ffffcc;border-color:#ffff00'><span class='ui-icon ui-icon-locked'></span></div>")}else{$("#table_captcha_status").html("<div class='ui-state-default ui-corner-all small_button'><span class='ui-icon ui-icon-unlocked'></span></div>")}if(DatabaseManager.usage){for(var i=0;i<DatabaseManager.usage.length;i++){if(DatabaseManager.usage[i].tableName==DatabaseManager.selectedTable){$("#table_row_count").html(DatabaseManager.usage[i].rowCount);break}}}columns=table.Columns;for(var j=0;j<columns.length;j++){if(columns[j].owner){continue}html+="<tr id='"+DatabaseManager.selectedTable+"__"+columns[j].name+"' class="+(TableTab.css=="odd"?(TableTab.css="even"):(TableTab.css="odd"))+"><td>"+columns[j].name+"</td><td>"+columns[j].type+"</td><td>"+TableTab.getCheckBoxForColumn(columns[j].unique,"unique_column",columns[j].name)+"</td><td>"+TableTab.getCheckBoxForColumn(columns[j].nullable,"nullable_column",columns[j].name)+"</td><td><div delete='"+columns[j].name+"' class='ui-state-default ui-corner-all table_del_small_button'><span class='ui-icon ui-icon-trash'></span></div></td></tr>"}if(columns.length==0){html+="<tr id='no_columns_warning'><td colspan='4'><div><i>There are no columns in this table.  Click 'add columns' to create columns.</i></div></td></tr></table>"}else{html+="</table>"}var dataAccess;$("#table_access_status").html(loader);var key=DatabaseManager.selectedTable+".metainf";var stringArgs="({'"+key+"':'',action:'getMetaInf'})";admin.executeGenericRequest("ANNOTATE",eval(stringArgs),function(data,error){if(error){alert(error.getMessage())}else{var label=admin.user.domain+"__"+DatabaseManager.selectedDB;var xml=data[label]+"";if(xml=="null"||xml.indexOf('restPermission="public"')<0){dataAccess=false;$("#table_access_status").html("Public Data : <input type='checkbox' id='toggle_data_access'>")}else{dataAccess=true;$("#table_access_status").html("Public Data : <input type='checkbox' id='toggle_data_access' checked=true>")}}$("#toggle_data_access").click(toggle);function toggle(){if(dataAccess){xml=xml.replace('restPermission="public"',"")}else{if(xml==null||xml=="null"){xml='<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<TableMetaInf xmlns="http://nextdb.net/MetaInf" restPermission="public">\n\t<Notifications/>\n</TableMetaInf>'}else{xml=xml.replace('TableMetaInf xmlns="http://nextdb.net/MetaInf"','TableMetaInf xmlns="http://nextdb.net/MetaInf" restPermission="public"')}}var key=DatabaseManager.selectedTable+".metainf";var stringArgs=eval("({'"+key+"':''})");for(var k in stringArgs){if(stringArgs.hasOwnProperty(k)){stringArgs[k]=(xml)}}admin.executeGenericRequest("ANNOTATE",stringArgs,function(data,error){if(error){alert(error.getMessage())}else{if(dataAccess){dataAccess=false}else{dataAccess=true}}})}});$("#table_columns").empty().html(html).slideDown();TableTab.registerEvents();$("#loading_panel").hide();$("#table_panel").show();$("#table_mngt_accordion").accordion("activate",0)},appendColumnToTable:function(b){var a="<tr id='"+DatabaseManager.selectedTable+"__"+b.name+"' class="+(TableTab.css=="odd"?(TableTab.css="even"):(TableTab.css="odd"))+"><td>"+b.name+"</td><td>"+b.type+"</td><td>"+TableTab.getCheckBoxForColumn(b.unique,"unique_column",b.name)+"</td><td>"+TableTab.getCheckBoxForColumn(b.nullable,"nullable_column",b.name)+"</td><td><div delete='"+b.name+"' class='ui-state-default ui-corner-all table_del_small_button'><span class='ui-icon ui-icon-trash'></span></div></td></tr>";$("#no_columns_warning").remove();$("#columns_table").append(a);TableTab.registerEvents()},getCheckBoxForColumn:function(c,a,d){var b="<input type='checkbox' ";if(c&&c=="true"){b+="checked='true' "}if(d){b+="column='"+d+"' "}if(a){b+="class='"+a+"' "}b+=">";return b},registerEvents:function(){$(".unique_column").unbind("click");$(".unique_column").click(function(){var a=this;admin.executeGenericRequest("ALTER_TABLE",{table:DatabaseManager.selectedTable,column:$(this).attr("column"),action:"alter",unique:this.checked},function(c,b){if(b){if(a.checked){a.checked=false}else{a.checked=true}alert(b.getMessage())}else{}})});$(".nullable_column").unbind("click");$(".nullable_column").click(function(){var a=this;admin.executeGenericRequest("ALTER_TABLE",{table:DatabaseManager.selectedTable,column:$(this).attr("column"),action:"alter",nullable:this.checked},function(c,b){if(b){if(a.checked){a.checked=false}else{a.checked=true}alert(b.getMessage())}else{}})});$(".table_del_small_button").hover(function(){$(this).addClass("ui-state-hover");$(this).removeClass("ui-state-default")},function(){$(this).addClass("ui-state-default");$(this).removeClass("ui-state-hover")});$(".table_del_small_button").click(DatabaseManager.deleteColumn)}};DataEditorTab={loaded:false,init:function(){var b=new net.nextdb.Query(DatabaseManager.selectedTable);b.pageSize=12;b.admin=true;try{var a=new net.nextdb.html.DataTable($("#table_data_edit")[0],b,new net.nextdb.Connection(admin.user.domain,admin.user.schema),function(d){alert(d.message)})}catch(c){alert(c)}a.dark="#ccc";a.light="#eee";a.render();return false},reset:function(){}};CaptchaTab={loaded:false,table:null,init:function(){if(!CaptchaTab.loaded){CaptchaTab.loaded=true;CaptchaTab.reset()}else{CaptchaTab.reset()}},reset:function(){CaptchaTab.table=DatabaseManager.selectedTable;var a=DatabaseManager.getTable();if(a.captcha=="true"){$("#captcha_toggle_button").val("disable captcha protection")}else{$("#captcha_toggle_button").val("enable captcha protection")}$("#captcha_toggle_button").unbind("click");$("#captcha_toggle_button").click(function(){$("#captcha_toggle_button").attr("disabled","true");if(a.captcha=="true"){admin.executeGenericRequest("ALTER_TABLE",{table:DatabaseManager.selectedTable,captcha:"false",action:"alter"},function(c,b){$("#captcha_toggle_button").removeAttr("disabled");if(b){alert(b)}else{a.captcha="false";$("#captcha_toggle_button").val("enable captcha protection")}})}else{admin.executeGenericRequest("ALTER_TABLE",{table:DatabaseManager.selectedTable,captcha:"true",action:"alter"},function(c,b){$("#captcha_toggle_button").removeAttr("disabled");if(b){alert(b)}else{a.captcha="true";$("#captcha_toggle_button").val("disable captcha protection")}})}})}};PageViewerTab={loaded:false,init:function(){if(!PageViewerTab.loaded){PageViewerTab.reset()}else{PageViewerTab.reset()}},reset:function(){}};DeleteTableTab={loaded:false,init:function(){if(!DeleteTableTab.loaded){$("#delete_table").click(function(){DatabaseManager.deleteTable()});DeleteTableTab.loaded=true;DeleteTableTab.reset()}else{DeleteTableTab.reset()}},reset:function(){$("#delete_table_errors").html("")}};TriggerTab={loaded:false,table:null,blank:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<TableMetaInf xmlns="http://nextdb.net/MetaInf">\n\t<Notifications/>\n</TableMetaInf>',init:function(){if(!TriggerTab.loaded){$("#email_trigger_template_button").click(function(){editAreaLoader.setValue("email_trigger_editor","");editAreaLoader.setValue("email_trigger_editor",emailTriggerTemplate)});$("#email_trigger_add_button").click(function(){var key=DatabaseManager.selectedTable+".metainf";var stringArgs=eval("({'"+key+"':''})");for(var k in stringArgs){if(stringArgs.hasOwnProperty(k)){stringArgs[k]=(editAreaLoader.getValue("email_trigger_editor"))}}admin.executeGenericRequest("ANNOTATE",stringArgs,function(data,error){if(error){$("#email_trigger_errors").html(error.toString())}else{$("#email_trigger_errors").empty().html("<span style='color:green'>Saved!</span>");setTimeout(function(){$("#email_trigger_errors").html("&nbsp;")},3000)}})});$("#email_trigger_remove_button").click(function(){var key=DatabaseManager.selectedTable+".metainf";var stringArgs=eval("({'"+key+"':''})");for(var k in stringArgs){if(stringArgs.hasOwnProperty(k)){stringArgs[k]=TriggerTab.blank}}admin.executeGenericRequest("ANNOTATE",stringArgs,function(data,error){if(error){$("#email_trigger_errors").html(error.toString())}else{$("#email_trigger_errors").empty().html("<span style='color:green'>Removed triggers from server by passing empty XML file!</span>");editAreaLoader.setValue("email_trigger_editor",TriggerTab.blank);setTimeout(function(){$("#email_trigger_errors").html("&nbsp;")},3000)}})});$("#email_trigger_clear_button").click(function(){editAreaLoader.setValue("email_trigger_editor"," ")});TriggerTab.loaded=true;TriggerTab.reset()}else{TriggerTab.reset()}},triggerEditorLoaded:false,reset:function(){TriggerTab.table=DatabaseManager.selectedTable;if(!TriggerTab.triggerEditorLoaded){editAreaLoader.init({toolbar:"*",id:"email_trigger_editor",syntax:"xml",end_toolbar:"",language:"en",start_highlight:true,word_wrap:true,replace_tab_by_spaces:3});triggerEditorLoaded=true;editAreaLoader.setValue("email_trigger_editor","")}else{editAreaLoader.setValue("email_trigger_editor","")}var key=DatabaseManager.selectedTable+".metainf";var stringArgs="({'"+key+"':'',action:'getMetaInf'})";admin.executeGenericRequest("ANNOTATE",eval(stringArgs),function(data,error){if(data,error){$("#email_trigger_errors").empty().hide().html(message).slideDown()}else{var label=admin.user.domain+"__"+DatabaseManager.selectedDB;var xml=data[label]+"";if(xml=="null"){xml=TriggerTab.blank}else{xml=xml.replace(/\>\</g,">\n<")}editAreaLoader.setValue("email_trigger_editor",xml);$("#email_trigger_errors").empty()}});$("#email_trigger_editor").addClass("trigger_text_editor")}};net.nextdb.Logger=function(d,c){this.level;this.method;this.messages=[];var a=this;function b(){return net.nextdb.Util.shortDateFormat(new Date())}this.console=function(e){console.log(e)};this.debug=function(e){a.messages.push("DEBUG : "+b());a.messages.push(e)};this.info=function(e){a.messages.push("INFO : "+b());a.messages.push(e)};this.warn=function(e){a.messages.push("WARN : "+b());a.messages.push(e)};this.error=function(e){a.messages.push("ERROR : "+b());a.messages.push(e)};this.network=function(e){a.messages.push(e)};window.onerror=function(g,f,e){a.messages.push(g);a.messages.push(f);a.messages.push(e)}};