/* Begin file: namespace.js */
if(typeof console=='undefined'){var console=(function(){if(console!=undefined){return console;}
var noop=function(){};var names=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"];var consoleT={};for(var i=0;i<names.length;++i){consoleT[names[i]]=noop;}
return consoleT;}());}
var namespace=(function(){try{if(namespace!=undefined){return namespace;}}
catch(e){}
function Namespace(parent,name){if(name){name=name.replace(/-/g,'_');}
this._isDefined=false;this._referenced=[];this._parent=parent;if(this._parent){this._parent[name]=this;this._path=this._parent._path;if(this._path!==''){this._path+='.';}
this._path+=name;}else{this._path='';}}
var namespaceT=new Namespace(null);namespaceT.logLevel=2;var enumBug=!{toString:true}.propertyIsEnumerable('toString');var internalNames=['toString','toLocaleString','valueOf','constructor','isPrototypeOf'];function extendObject(dest,args){var i,j;var source;var prop;if(dest===undefined){dest={};}
for(i=1;i<arguments.length;i++){source=arguments[i];for(prop in source){if(source.hasOwnProperty(prop)){dest[prop]=source[prop];}}
if(!enumBug){continue;}
for(j=0;j<internalNames.length;j++){prop=internalNames[j];if(source.hasOwnProperty(prop)){dest[prop]=source[prop];}}}
return dest;}
function copyArray(arg){return Array.prototype.slice.call(arg,0);}
Function.prototype.methods=function(obj){extendObject(this.prototype,obj);};Function.methods({fnMethod:function(obj){var _fn=this;return function(){return _fn.apply(obj,arguments);};},fnArgs:function(){var _fn=this;var _args=copyArray(arguments);return function(){var args=copyArray(arguments).concat(_args);var self=this;return _fn.apply(self,args);};},fnWrap:function(fn){var _fn=this;return function(){var self=this;return _fn(self,fn,arguments);};}});Namespace.methods({define:function(closure){this._isDefined=true;this._closure=closure;if(namespaceT.logLevel<=1){console.info("Namespace '"+this._path+"' defined.");}
if(closure){Namespace.defining=this;closure(this);Namespace.defining=undefined;}
return this;},defineOnce:function(callback){if(this._isDefined){if(namespaceT.logLevel<=2){console.warn("Namespace '"+this._path+"' redefinition.");}
return this;}
return this.define(callback);},extend:function(){var args=[this].concat(copyArray(arguments));return extendObject.apply(undefined,args);},nameOf:function(symbol){symbol=symbol.replace(/-/g,'_');return'namespace.'+this._path+'.'+symbol;}});extendObject(namespaceT,{_isDefined:true,lookup:function(path){var fCreated=false;path=path.replace(/-/g,'_');var parts=path.split('.');var cur=namespaceT;for(var i=0;i<parts.length;i++){var name=parts[i];if(name==''){continue;}
if(cur[name]===undefined){cur=new Namespace(cur,name);fCreated=true;}
else{cur=cur[name];}}
if(Namespace.defining){Namespace.defining._referenced.push(cur);if(fCreated){if(namespaceT.logLevel<=2){console.warn("Forward reference from "+
Namespace.defining._path+" to "+
path+".");}}}
return cur;}});namespaceT.lookup('util').extend({extendObject:extendObject,copyArray:copyArray}).defineOnce();return namespaceT;}());
/* Begin file: base.js */
namespace.lookup('org.startpad.base').defineOnce(function(ns){var util=namespace.util;function Enum(args){var j=0;for(var i=0;i<arguments.length;i++){if(typeof arguments[i]=="string"){this[arguments[i]]=j++;}
else{j=arguments[i];}}}
Enum.methods({getName:function(value){for(var prop in this){if(this.hasOwnProperty(prop)){if(this[prop]==value){return prop;}}}}});function StBuf(){this.clear();this.append.apply(this,arguments);}
StBuf.methods({append:function(){for(var ist=0;ist<arguments.length;ist++){this.rgst.push(arguments[ist].toString());}
return this;},clear:function(){this.rgst=[];},toString:function(){return this.rgst.join("");}});function extendIfMissing(oDest,var_args){if(oDest==undefined){oDest={};}
for(var i=1;i<arguments.length;i++){var oSource=arguments[i];for(var prop in oSource){if(oSource.hasOwnProperty(prop)&&oDest[prop]==undefined){oDest[prop]=oSource[prop];}}}
return oDest;}
function extendDeep(dest){for(var i=1;i<arguments.length;i++){var src=arguments[i];for(var prop in src){if(src.hasOwnProperty(prop)){if(src[prop]instanceof Array){dest[prop]=[];ns.extendDeep(dest[prop],src[prop]);}
else if(src[prop]instanceof Object){dest[prop]={};ns.extendDeep(dest[prop],src[prop]);}
else{dest[prop]=src[prop];}}}}}
function randomInt(n){return Math.floor(Math.random()*n);}
function strip(s){return(s||"").replace(/^\s+|\s+$/g,"");}
function project(obj,asProps){var objT={};for(var i=0;i<asProps.length;i++){var name=asProps[i];if(obj&&obj.hasOwnProperty(name)){objT[name]=obj[name];}}
return objT;}
function keys(map){var list=[];for(var prop in map){if(map.hasOwnProperty(prop)){list.push(prop);}}
return list;}
function isArguments(a){return typeof a=='object'&&a.length!=undefined&&a.callee!=undefined;}
function uniqueArray(a){if(!(a instanceof Array)){return;}
a.sort();for(var i=1;i<a.length;i++){if(a[i-1]==a[i]){a.splice(i,1);}}}
function generalType(o){var t=typeof(o);if(t!='object'){return t;}
if(o instanceof String){return'string';}
if(o instanceof Number){return'number';}
return t;}
function isEqual(a,b){if(a===b){return true;}
if(generalType(a)!=generalType(b)){return false;}
if(a==b){return true;}
if(typeof a!='object'){return false;}
if(a instanceof Object!=b instanceof Object){return false;}
if(a instanceof Date||b instanceof Date){if(a instanceof Date!=b instanceof Date||a.getTime()!=b.getTime()){return false;}}
var allKeys=[].concat(keys(a),keys(b));uniqueArray(allKeys);for(var i=0;i<allKeys.length;i++){var prop=allKeys[i];if(!isEqual(a[prop],b[prop])){return false;}}
return true;}
function extendIfChanged(dest,last,latest){var f=false;for(var prop in latest){if(latest.hasOwnProperty(prop)){var value=latest[prop];if(value==undefined){continue;}
if(!isEqual(last[prop],value)){last[prop]=value;dest[prop]=value;f=true;}}}
return f;}
function ensureArray(a){if(a==undefined){a=[];}else if(isArguments(a)){a=util.copyArray(a);}else if(!(a instanceof Array)){a=[a];}
return a;}
function indexOf(value,a){a=ensureArray(a);for(var i=0;i<a.length;i++){if(value==a[i]){return i;}}
return-1;}
function map(a,fn){a=ensureArray(a);var aRes=[];for(var i=0;i<a.length;i++){aRes.push(fn(a[i]));}
return aRes;}
function filter(a,fn){a=ensureArray(a);var aRes=[];for(var i=0;i<a.length;i++){if(fn(a[i])){aRes.push(a[i]);}}
return aRes;}
function reduce(a,fn){a=ensureArray(a);if(a.length<2){return a[0];}
var res=a[0];for(var i=1;i<a.length;i++){res=fn(res,a[i]);}
return res;}
function forEach(a,fn){var ret;if(a instanceof Array||a.length!=undefined){for(var i=0;i<a.length;i++){if(a[i]!=undefined){ret=fn(a[i],i);if(ret===false){return;}}}
return;}
for(var prop in a){if(a.hasOwnProperty(prop)){ret=fn(a[prop],prop);if(ret===false){return;}}}}
function dictFromArray(a,keyName){var d={};for(var i=0;i<a.length;i++){if(a[i]===undefined||!(keyName in a[i])){continue;}
d[a[i][keyName]]=a[i];}
return d;}
ns.extend({'extendObject':util.extendObject,'Enum':Enum,'StBuf':StBuf,'extendIfMissing':extendIfMissing,'extendIfChanged':extendIfChanged,'extendDeep':extendDeep,'randomInt':randomInt,'strip':strip,'project':project,'uniqueArray':uniqueArray,'indexOf':indexOf,'map':map,'filter':filter,'reduce':reduce,'keys':keys,'forEach':forEach,'ensureArray':ensureArray,'isEqual':isEqual,'dictFromArray':dictFromArray});});
/* Begin file: cookies.js */
namespace.lookup('org.startpad.cookies').define(function(ns){var base=namespace.lookup('org.startpad.base');function setCookie(name,value,days,path){var expires='';if(days){var date=new Date();date.setTime(date.getTime()+days*24*60*60*1000);expires='; expires='+date.toGMTString();}
path='; path='+(path||'/');document.cookie=encodeURIComponent(name)+'='+
encodeURIComponent(value)+expires+path;}
function getCookie(name){return ns.getCookies()[name];}
function getCookies(name){var st=document.cookie;var rgPairs=st.split(";");var obj={};for(var i=0;i<rgPairs.length;i++){rgPairs[i]=base.strip(rgPairs[i]);var rgC=rgPairs[i].split("=");var val=decodeURIComponent(rgC[1]);var rg=val.match('^"(.*)"$');if(rg){val=rg[1].replace('\\"','"');}
obj[decodeURIComponent(rgC[0])]=val;}
return obj;}
ns.extend({setCookie:setCookie,getCookie:getCookie,getCookies:getCookies});});
/* Begin file: random.js */
namespace.lookup("org.startpad.random").defineOnce(function(ns){ns.upper='ABCDEFGHIJKLMNOPQRSTUVWXYZ';ns.lower='abcdefghijklmnopqrstuvwxyz';ns.digits='0123456789';ns.base64=ns.upper+ns.lower+ns.digits+'+/';ns.base64url=ns.upper+ns.lower+ns.digits+'-_';ns.hexdigits=ns.digits+'abcdef';ns.randomString=function(len,chars){if(typeof chars=='undefined'){chars=ns.base64url;}
var radix=chars.length;var result=[];for(var i=0;i<len;i++){result[i]=chars[0|Math.random()*radix];}
return result.join('');};});
/* Begin file: crypto.js */
(function(){var C=namespace.lookup('com.googlecode.crypto-js');var types=C.types={};var WordArray=types.WordArray={getSigBytes:function(words){if(words["_Crypto"]&&words["_Crypto"].sigBytes!=undefined){return words["_Crypto"].sigBytes;}else{return words.length*4;}},setSigBytes:function(words,n){words["_Crypto"]={sigBytes:n};},cat:function(w1,w2){return ByteStr.decode(ByteStr.encode(w1)+ByteStr.encode(w2));}};var enc=C.enc={};var ByteStr=enc.ByteStr={encode:function(words){var sigBytes=WordArray.getSigBytes(words);var str=[];for(var i=0;i<sigBytes;i++){str.push(String.fromCharCode((words[i>>>2]>>>(24-(i%4)*8))&0xFF));}
return str.join("");},decode:function(str){var words=[];for(var i=0;i<str.length;i++){words[i>>>2]|=str.charCodeAt(i)<<(24-(i%4)*8);}
WordArray.setSigBytes(words,str.length);return words;}};enc.UTF8={encode:function(words){return decodeURIComponent(escape(ByteStr.encode(words)));},decode:function(str){return ByteStr.decode(unescape(encodeURIComponent(str)));}};enc.Words={encode:function(words){return words;},decode:function(words){return words;}};})();(function(){var C=namespace.lookup('com.googlecode.crypto-js');var WordArray=C.types.WordArray;C.enc.Hex={encode:function(words){var sigBytes=WordArray.getSigBytes(words);var hex=[];for(var i=0;i<sigBytes;i++){var bite=(words[i>>>2]>>>(24-(i%4)*8))&0xFF;hex.push((bite>>>4).toString(16));hex.push((bite&0xF).toString(16));}
return hex.join("");},decode:function(hex){var words=[];for(var i=0;i<hex.length;i+=2){words[i>>>3]|=parseInt(hex.substr(i,2),16)<<(24-(i%8)*4);}
WordArray.setSigBytes(words,hex.length/2);return words;}};})();(function(){var C=namespace.lookup('com.googlecode.crypto-js');var WordArray=C.types.WordArray;var b64map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";C.enc.Base64={encode:function(words){var sigBytes=WordArray.getSigBytes(words);var b64str=[];for(var i=0;i<sigBytes;i+=3){var triplet=(((words[(i)>>>2]>>>(24-((i)%4)*8))&0xFF)<<16)|(((words[(i+1)>>>2]>>>(24-((i+1)%4)*8))&0xFF)<<8)|((words[(i+2)>>>2]>>>(24-((i+2)%4)*8))&0xFF);for(var j=0;j<4;j++){if(i+j*0.75<=sigBytes){b64str.push(b64map.charAt((triplet>>>(6*(3-j)))&0x3F));}else{b64str.push("=");}}}
return b64str.join("");},decode:function(b64str){b64str=b64str.replace(/=+$/,"");var words=[];for(var i=0,bites=0;i<b64str.length;i++){if(i%4){words[bites>>>2]|=(((b64map.indexOf(b64str.charAt(i-1))<<((i%4)*2))|(b64map.indexOf(b64str.charAt(i))>>>(6-(i%4)*2)))&0xFF)<<(24-(bites%4)*8);bites++;}}
WordArray.setSigBytes(words,bites);return words;}};})();(function(){var C=namespace.lookup('com.googlecode.crypto-js');var UTF8=C.enc.UTF8;var WordArray=C.types.WordArray;var SHA1=C.SHA1=function(message,options){var digestWords=SHA1.digest(message);var output=options&&options.output||C.enc.Hex;return output.encode(digestWords);};SHA1.digest=function(message){var m=message.constructor==String?UTF8.decode(message):message;var l=WordArray.getSigBytes(m)*8;m[l>>>5]|=0x80<<(24-l%32);m[(((l+64)>>>9)<<4)+15]=l;var w=[];var H0=0x67452301;var H1=0xEFCDAB89;var H2=0x98BADCFE;var H3=0x10325476;var H4=0xC3D2E1F0;for(var i=0;i<m.length;i+=16){var a=H0;var b=H1;var c=H2;var d=H3;var e=H4;for(var j=0;j<80;j++){if(j<16)w[j]=m[i+j];else{var n=w[j-3]^w[j-8]^w[j-14]^w[j-16];w[j]=(n<<1)|(n>>>31);}
var t=((H0<<5)|(H0>>>27))+H4+(w[j]>>>0)+(j<20?((H1&H2)|(~H1&H3))+0x5A827999:j<40?(H1^H2^H3)+0x6ED9EBA1:j<60?((H1&H2)|(H1&H3)|(H2&H3))-0x70E44324:(H1^H2^H3)-0x359D3E2A);H4=H3;H3=H2;H2=(H1<<30)|(H1>>>2);H1=H0;H0=t;}
H0+=a;H1+=b;H2+=c;H3+=d;H4+=e;}
return[H0,H1,H2,H3,H4];};SHA1.blockSize=16;})();(function(){var C=namespace.lookup('com.googlecode.crypto-js');var UTF8=C.enc.UTF8;var Words=C.enc.Words;var WordArray=C.types.WordArray;C.HMAC=function(hasher,message,key,options){var m=message.constructor==String?UTF8.decode(message):message;var k=key.constructor==String?UTF8.decode(key):key;if(k.length>hasher.blockSize){k=hasher(k,{output:Words});}
var oKey=k.slice(0);var iKey=k.slice(0);for(var i=0;i<hasher.blockSize;i++){oKey[i]^=0x5C5C5C5C;iKey[i]^=0x36363636;}
var hmacWords=hasher(WordArray.cat(oKey,hasher(WordArray.cat(iKey,m),{output:Words})),{output:Words});var output=options&&options.output||C.enc.Hex;return output.encode(hmacWords);};})();
/* Begin file: forms.js */
namespace.lookup('com.pageforest.forms').define(function(ns){function showValidatorResults(fields,errors,options){var ignoreEmpty=options&&options.ignoreEmpty;for(var index=0;index<fields.length;index++){var name=fields[index];var html=errors[name];if(ignoreEmpty&&$("#id_"+name).val()===''){html='';}else if(html){html='<span class="error">'+html+'</span>';}else{html='<span class="success">OK</span>';}
$("#validate_"+name).html(html);}}
function postFormData(url,data,onSuccess,onValidate,onError){$.ajax({type:"POST",url:url,data:data,dataType:"json",success:function(message,status,xhr){if(message.status==200){if(onSuccess){onSuccess(message,status,xhr);}}else{if(onValidate){onValidate(message,status,xhr);}}},error:onError});}
ns.extend({showValidatorResults:showValidatorResults,postFormData:postFormData});});
/* Begin file: sign-up.js */
namespace.lookup('com.pageforest.auth.sign-up').define(function(ns){var cookies=namespace.lookup('org.startpad.cookies');var crypto=namespace.lookup('com.googlecode.crypto-js');var forms=namespace.lookup('com.pageforest.forms');function validatePassword(){var password=$("#id_password").val();var repeat=$("#id_repeat").val();if(!password.length){return{password:"This field is required."};}
if(password.length<6){return{password:"Ensure this value has at least 6 characters (it has "+
password.length+")."};}
if(password!=repeat){return{repeat:"Password and repeat are not the same."};}
return false;}
function onValidate(message,status,xhr,options){var passwordErrors=validatePassword();for(var error in passwordErrors){if(passwordErrors.hasOwnProperty(error)){message[error]=passwordErrors[error];}}
var fields=['username','password','repeat','email'];if(!options||!options.ignoreEmpty){fields.push('tos');}
forms.showValidatorResults(fields,message,options);}
function onValidateIgnoreEmpty(message,status,xhr){onValidate(message,status,xhr,{ignoreEmpty:true});}
function onSuccess(message,status,xhr){window.location='/sign-in/';}
function onError(xhr,status,message){console.error(xhr);}
function getFormData(){var username=$("#id_username").val();var lower=username.toLowerCase();var password=$("#id_password").val();return{username:username,password:crypto.HMAC(crypto.SHA1,lower,password),email:$("#id_email").val(),tos:$("#id_tos").attr('checked')?'checked':''};}
function isChanged(){var username=$("#id_username").val();var password=$("#id_password").val();var repeat=$("#id_repeat").val();var email=$("#id_email").val();var oneline=[username,password,repeat,email].join('|');if(oneline==ns.previous){return false;}
ns.previous=oneline;return true;}
function validateIfChanged(){if(!isChanged()){return;}
var data=getFormData();data.validate=true;forms.postFormData('/sign-up/',data,null,onValidateIgnoreEmpty,onError);}
function onSubmit(){var errors=validatePassword();if(errors){forms.showValidatorResults(['password','repeat'],errors);}else{forms.postFormData('/sign-up/',getFormData(),onSuccess,onValidate,onError);}
return false;}
function resend(){console.log("resend");$.ajax({type:"POST",url:"/email-verify/",data:{resend:true},dataType:"json",success:function(){$('span#result').css('color','#0A0').html("A new verification email was sent.");},error:function(){$('span#result').css('color','#F00').html("Sorry, please try again later.");}});return false;}
function onReady(){$('#enablejs').hide();$('input').removeAttr('disabled');if(cookies.getCookie('httponly')){$('#httponly').show();}
isChanged();setInterval(validateIfChanged,1000);$('#id_tos').click(function(){$('#validate_tos').html('');});}
ns.extend({onReady:onReady,onSubmit:onSubmit,resend:resend});});
/* Begin file: sign-in.js */
namespace.lookup('com.pageforest.auth.sign-in').define(function(ns){var cookies=namespace.lookup('org.startpad.cookies');var crypto=namespace.lookup('com.googlecode.crypto-js');var forms=namespace.lookup('com.pageforest.forms');function getAppDomain(appId){var parts=window.location.host.split('.');if(parts[0]=='www'){parts[0]=appId;}else{parts.splice(0,0,appId);}
return parts.join('.');}
function getJSONP(url,fn){$.ajax({type:"GET",url:url,dataType:"jsonp",success:fn,error:function(){fn({status:500});}});}
function closeForm(){if(ns.appId){$(".have_app").show();}
$(".want_app").hide();setTimeout(window.close,2000);}
function transferSession(sessionKey,fn){var url=ns.appAuthURL+"set-session/"+sessionKey;getJSONP(url,function(message){if(typeof(message)!='string'){return;}
if(fn){fn();}
if(sessionKey){closeForm();}});return false;}
function onSuccess(message,status,xhr){if(message.sessionKey){transferSession(message.sessionKey,function(){window.location.reload();});return;}
window.location.reload();}
function onError(xhr,status,message){var text=xhr.responseText;if(text.substr(0,19)=='Invalid signature: '){text=text.substr(19);}
if(/(user|account)/i.test(text)){forms.showValidatorResults(['username','password'],{username:text,password:' '});}else{forms.showValidatorResults(['username','password'],{password:text});}}
function onChallenge(challenge,status,xhr){var username=$('#id_username').val();var lower=username.toLowerCase();var password=$('#id_password').val();var userpass=crypto.HMAC(crypto.SHA1,lower,password);var signature=crypto.HMAC(crypto.SHA1,challenge,userpass);var reply=lower+'|'+challenge+'|'+signature;$.ajax({url:'/auth/verify/'+reply,success:onSuccess,error:onError});}
function onSubmit(){$.ajax({url:'/auth/challenge',success:onChallenge,error:onError});return false;}
function onReady(username,appId){$('#enablejs').hide();$('input').removeAttr('disabled');if(cookies.getCookie('httponly')){$('#httponly').show();}
ns.appId=appId;ns.appAuthURL='http://'+getAppDomain(appId)+'/auth/';if(!username){return;}
var url=ns.appAuthURL+"username/";getJSONP(url,function(username){if(typeof(username)=='string'){closeForm();return;}});}
function signOut(){if(ns.appId){transferSession('expired',function(){window.location='/sign-out/'+ns.appId;});return;}
window.location='/sign-out/';}
ns.extend({'onReady':onReady,'onSubmit':onSubmit,'transferSession':transferSession,'signOut':signOut});});
/* Begin file: profile.js */
namespace.lookup('com.pageforest.auth.profile').define(function(ns){var cookies=namespace.lookup('org.startpad.cookies');var crypto=namespace.lookup('com.googlecode.crypto-js');var forms=namespace.lookup('com.pageforest.forms');function validatePassword(){var password=$("#id_password").val();var repeat=$("#id_repeat").val();if(!password.length){return{password:"This field is required."};}
if(password.length<6){return{password:"Ensure this value has at least 6 characters (it has "+
password.length+")."};}
if(password!=repeat){return{repeat:"Password and repeat are not the same."};}
return false;}
function onValidate(message,status,xhr,options){var passwordErrors=validatePassword();for(var error in passwordErrors){if(passwordErrors.hasOwnProperty(error)){message[error]=passwordErrors[error];}}
var fields=['username','password','repeat','email'];if(!options||!options.ignoreEmpty){fields.push('tos');}
forms.showValidatorResults(fields,message,options);}
function onValidateIgnoreEmpty(message,status,xhr){onValidate(message,status,xhr,{ignoreEmpty:true});}
function onSuccess(message,status,xhr){window.location='/sign-in/';}
function onError(xhr,status,message){console.error(xhr);}
function getFormData(){var username=$("#id_username").val();var lower=username.toLowerCase();var password=$("#id_password").val();return{username:username,password:crypto.HMAC(crypto.SHA1,lower,password),email:$("#id_email").val(),tos:$("#id_tos").attr('checked')?'checked':''};}
function isChanged(){var username=$("#id_username").val();var password=$("#id_password").val();var repeat=$("#id_repeat").val();var email=$("#id_email").val();var oneline=[username,password,repeat,email].join('|');if(oneline==ns.previous){return false;}
ns.previous=oneline;return true;}
function validateIfChanged(){if(!isChanged()){return;}
var data=getFormData();data.validate=true;forms.postFormData('/sign-up/',data,null,onValidateIgnoreEmpty,onError);}
function onSubmit(){var errors=validatePassword();if(errors){forms.showValidatorResults(['password','repeat'],errors);}else{forms.postFormData('/sign-up/',getFormData(),onSuccess,onValidate,onError);}
return false;}
function resend(){console.log("resend");$.ajax({type:"POST",url:"/email-verify/",data:{resend:true},dataType:"json",success:function(){$('span#result').css('color','#0A0').html("A new verification email was sent.");},error:function(){$('span#result').css('color','#F00').html("Sorry, please try again later.");}});return false;}
function onReady(){$('#enablejs').hide();$('input').removeAttr('disabled');if(cookies.getCookie('httponly')){$('#httponly').show();}
isChanged();setInterval(validateIfChanged,1000);$('#id_tos').click(function(){$('#validate_tos').html('');});}
ns.extend({onReady:onReady,onSubmit:onSubmit,resend:resend});});

