// Copyright 2008 Cloud Engines

if(!CE)var CE={};if(!CE.rTimer){CE.rTimer=function(func,timeout){return window.setTimeout(func,timeout);};CE.uTimer=function(tid){return window.clearTimeout(tid);};CE.rInterval=function(func,timeout){return window.setInterval(func,timeout);};CE.cInterval=function(tid){return window.clearInterval(tid);};}
if(!CE.dce){CE.$=function(n){if(typeof(n)=='string'){return document.getElementById(n)||(CE.CEROOT?CE.CEROOT.$(n):null);}else{return n;}}
CE.dce=function(t,i,c){var el=document.createElement(t);if(t=='a')el.href='#';if(i)el.id=i;if(c)el.className=c;return el;};CE.dcd=function(c,ch,i){return CE.dce('div',i,c,ch);}
CE.dcc=function(i,c,checked){var el=CE.dce('input',i,c);el.type='checkbox';el.checked=checked?true:false;return el;}
CE.dcr=function(i,c,n,checked){var el=CE.dce('input',i,c);el.type='radio';el.name=n;el.checked=checked?true:false;return el;}
CE.dca=function(oc,i,c,t){var a=CE.dce('a',i,c);if(oc)CE.CEU.attachEvent(a,'click',oc);if(t)a.title=t;return a;};CE.dci=function(u,i,c,a){var im=CE.dce('img',i,c);im.border='0';if(a)im.alt=a;if(u)im.src=u;return im;};CE.dcib=function(i,c,a){return CE.dci(CE.STRTAB.lookup('imgbase')+'blank.gif',i,c,a);};CE.dctn=function(t){return document.createTextNode(t);};CE.dco=function(l,v,i,c){var o=CE.dce('option',i,c);o.value=v;o.appendChild(CE.dctn(l));return o;};CE.dcl=function(fid,c){var l=CE.dce('label',null,c);l.htmlFor=fid;return l;};CE.rac=function(e,removeEl){var f=CE.$(e);if(f){while(f.hasChildNodes()){var c=f.firstChild;CE.CEU.releaseAllEvents(c,null,true);f.removeChild(c);}
if(removeEl){CE.CEU.releaseAllEvents(f,null,true);if(f.parentNode)
f.parentNode.removeChild(f);}}
f=null;};CE.trims=function(s,l,r){if(s){if(s.length>l){if(r){s="..."+s.substr(s.length-l);}else{s=s.substr(0,l)+"...";}}}
return s;};CE.trims2=function(s,l,r){if(l<3)
l=3;if(s){if(s.length>l){if(r){s="..."+s.substr(s.length-l-3);}else{s=s.substr(0,l-3)+"...";}}}
return s;};}
if(!CE.aCN){CE.lCN=function(el){var cnl;if(el.className){cnl=el.className.split(' ');}else{cnl=[];}
return cnl;};CE.irCN=function(el,cn,cnl){if(cnl===undefined||cnl===null){cnl=CE.lCN(el);}
for(var i=0;i<cnl.length;i++){if(cnl[i]==cn){cnl.splice(i,1);i--;}}
return cnl;};CE.hCN=function(e,cn){var r=false;var el=CE.$(e);if(el){var cnl=CE.lCN(el,cn);for(var i=0;i<cnl.length;i++){if(cnl[i]==cn){r=true;break;}}}
el=null;return r;};CE.dis=function(evt){if(!evt)evt=window.event;var targ=evt.target;if(!targ)targ=evt.srcElement;if(targ.nodeType==3||targ.nodeName.toLowerCase()=='span')targ=targ.parentNode;if(CE.hCN(targ,'cedisabled'))
return true;targ=targ.parentNode;return(targ&&CE.hCN(targ,'cedisabled'));};CE.aCN=function(e,cn){var el=CE.$(e);if(el){var cnl=CE.irCN(el,cn);cnl[cnl.length]=cn;el.className=cnl.join(' ');}
el=null;}
CE.rCN=function(e,cn){var el=CE.$(e);if(el){var cnl=CE.irCN(el,cn);el.className=cnl.join(' ');}
el=null;};CE.mCN=function(e,cn,add){if(add)
CE.aCN(e,cn);else
CE.rCN(e,cn);};CE.tCN=function(e,cn){var el=CE.$(e);if(el){var cnl=CE.lCN(el,cn);var found=false;for(var i=0;i<cnl.length;i++){if(cnl[i]==cn){cnl.splice(i,1);i--;found=true;}}
if(!found){cnl[cnl.length]=cn;}
el.className=cnl.join(' ');}
el=null;};CE.getByClass=function(parent,tag,cls,onlyIfAllClasses){var result=[];if(!parent)return result;var clses=(typeof(cls)==='string')?[cls]:cls;var tgs=(typeof(tag)==='string')?[tag]:tag;for(var t=0;t<tgs.length;++t){var all=parent.getElementsByTagName(tgs[t]);for(var i=0;i<all.length;++i){if(!onlyIfAllClasses){for(var j=0;j<clses.length;++j){if(CE.hCN(all[i],clses[j])){result.push(all[i]);break;}}}else{var hasAll=true;for(var j=0;j<clses.length;++j){if(!CE.hCN(all[i],clses[j])){hasAll=false;break;}}
if(hasAll)
result.push(all[i]);}}}
return result;};}
CE.STRTAB=new function(){var that=this;this.ltable={};this.locale='default';this.load=function(locale,src){};function rawLookup(key,a1,a2,a3,a4,a5){if(that.locale in that.ltable){var tbl=that.ltable[that.locale];if(key in tbl){return tbl[key];}else{CE.CEDBG.println("CEU: ERROR: Locale '"+that.locale+"' does not define string '"+key+"'");}}else{CE.CEDBG.println("CEU: ERROR: Locale '"+that.locale+"' not defined");}
var m='---{'+key;if(a1!==undefined){m+='(%1';if(a2){m+=',%2';}
if(a3){m+=',%3';}
if(a4){m+=',%4';}
if(a5){m+=',%5';}
m+=')';}
return m+'}---';}
this.lookup=function(key,a1,a2,a3,a4,a5){var m=rawLookup(key,a1,a2,a3,a4,a5);if(a1!==undefined){m=m.replace(/%1/g,a1);}
if(a2!==undefined){m=m.replace(/%2/g,a2);}
if(a3!==undefined){m=m.replace(/%3/g,a3);}
if(a4!==undefined){m=m.replace(/%4/g,a4);}
if(a5!==undefined){m=m.replace(/%5/g,a5);}
return m;};this.lookupdb=function(key,a1,a2,a3,a4,a5){if(key.substr(0,9)=='%%SQI18N:'){return that.lookup(key.substr(9),a1,a2,a3,a4,a5);}else{return key;}};this.lookupel=function(key,a1,a2,a3,a4,a5){return that.lookupeldoc(document,key,a1,a2,a3,a4,a5);};this.lookupeldoc=function(doc,key,a1,a2,a3,a4,a5,ishtml){var m=rawLookup(key,a1,a2,a3,a4,a5);var s=m.split('%');var sl=s.length;if(sl<=1){if(ishtml){var span=doc.createElement('span');span.innerHTML=m;return span;}else{return doc.createTextNode(m);}}else{var a=[a1,a2,a3,a4,a5];var i;var span=doc.createElement('span');var html='';if(ishtml)
html=s[0];else
span.appendChild(doc.createTextNode(s[0]));for(i=1;i<sl;i++){var ai=parseInt(s[i].substring(0,1));if(isNaN(ai)){if(ishtml)
html+=s[i];else
span.appendChild(doc.createTextNode(s[i]));}else{ai--;var av=a[ai];if(typeof(av)=='function'){av=av();}
if(typeof(av)=='object'){span.appendChild(a[ai]);}else if(av){if(ishtml)
html+=av;else
span.appendChild(doc.createTextNode(av));}else{span.appendChild(doc.createTextNode('--(A'+(ai+1)+')--'));}
var r=s[i].substring(1);if(r){if(ishtml)
html+=r;else
span.appendChild(doc.createTextNode(r));}}}
if(ishtml)
span.innerHTML=html;return span;}};this.lookupelh=function(key,a1,a2,a3,a4,a5){return that.lookupeldoc(document,key,a1,a2,a3,a4,a5,true);};}();CE.CEU=new function(){var that=this;var emailregex=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".\"))@(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,})$/;this.__evts={lasteid:0,ehandlers:{}};if(CE.CEROOT)
this.__evts=CE.CEROOT.CEU.__evts;var evts=that.__evts;this.user=null;this.svc=null;function emsg(e,m,a1,a2,a3,a4,a5){var el=CE.CEU.$(e);if(el){CE.rCN(el,'hidden');CE.rac(el);el.appendChild(CE.STRTAB.lookupel(m,a1,a2,a3,a4,a5));}
el=null;}
function getval(x){var e;if(typeof(x)==='string'){e=x;}else{e=x.value;}
return e.replace(/^\s*(.*?)\s*$/,"$1");}
function onGetUserSuccess(r,data){if(r&&r.user){var localeCookie=CE.CEU.getCookie('localetmp');if(localeCookie&&localeCookie!=''&&localeCookie!=r.user.locale){r.user.locale=localeCookie;CE.CEU.svc.asyncRPC('POST','updateUser',['locale',localeCookie]);}
var loc=r.user.locale;that.user=r.user;that.checkUserLocale(loc);if(data){if(data[0]){var usernameel=CE.$(data[0]);if(usernameel){CE.rac(usernameel);if(navigator.platform=='iPad')
usernameel.appendChild(document.createTextNode(CE.trims2(r.user.screenname,11)));else
usernameel.appendChild(document.createTextNode(r.user.screenname));}
usernameel=null;}
if(data[1]){var useropsel=CE.$(data[1]);if(useropsel){CE.rac(useropsel);}
useropsel=null;}
if(typeof(data[2])=='function'){data[2]('success',that.user,r);}}}else{onGetUserFailure(r,data);}}
function onGetUserFailure(r,data){CE.CEDBG.println('CEU: Failed to get user object: '+r);if(data){if(typeof(data[2])=='function'){return data[2]('failure');}}
that.logoutUser(data);}
function onForgotPasswordSuccess(r,data){if(r){if(data){if(data[0]){var el=CE.$(data[0]);if(el){CE.rac(el);}
el=null;}
if(typeof(data[1])=='function'){return data[1]('success',that.user);}}}}
function onForgotPasswordFailure(r,data){var reason=null;if(r&&r['HB-EXCEPTION']){reason=r['HB-EXCEPTION'];}
CE.CEDBG.println('CEU: Failed to login user: '+r);if(data){if(data[0]){emsg(data[0],'ceu.pwresetfail');}
if(typeof(data[1])=='function'){return data[1]('failure',reason);}}}
function onLoginUserSuccess(r,data){if(r&&r.user){that.user=r.user
if(r.valtoken){var ma='';if(data&&data[2]){if(data[2].checked){var date=new Date();date.setTime(date.getTime()+(14*24*60*60*1000));ma=";expires="+date.toGMTString();}}
var domain=';domain='+CE.CEU.getDomain(true);var ck='valtoken='+r.valtoken+ma+';path=/'+domain;CE.CEDBG.println("CEu: Login success: -- Cookie set for: "+ck);document.cookie=ck;}
var localeCookie=CE.CEU.getCookie('localetmp');if(localeCookie&&CE.LOCALES)
that.checkUserLocale(localeCookie);else if(r.user.locale&&CE.LOCALES)
that.checkUserLocale(r.user.locale);if(data){if(data[0]){var el=CE.$(data[0]);if(el){CE.rac(el);}
el=null;}
if(typeof(data[1])=='function'){return data[1]('success',that.user,r.albumid);}}}}
function onLoginUserFailure(r,data){var reason=null;if(r&&r['HB-EXCEPTION']){reason=r['HB-EXCEPTION'];}
if(reason.ecode==811){window.location.replace("almost.html");return;}
CE.CEDBG.println('CEU: Failed to login user: '+r);if(data){if(data[0]){emsg(data[0],'ceu.loginfail');}
if(typeof(data[1])=='function'){return data[1]('failure',reason);}}}
function dispatchEvent(event){var e=event||window.event;var tel;if(e.target){tel=that.$(e.target);}else{tel=that.$(e.srcElement);}
if(tel.nodeType==3){if(tel.parentNode){tel=that.$(tel.parentNode);}}
while(tel&&typeof(tel.__EID)==='undefined'&&tel.parentNode){tel=that.$(tel.parentNode);}
if(tel&&tel.__EID){var h=evts.ehandlers[tel.__EID][e.type];if(h){this.__EH=h.onEvent;var ret=this.__EH(h,e,tel);this.__EH=null;return ret;}}else{CE.CEDBG.println('CEU: Failed to get target of event!');}
tel=null;}
function kpKeyHelper(p,e,t){var k;k=e.keyCode;if(k==p.ecode){if(typeof(p.eobj)==='function'){p.eobj();}else{p.eobj.onEvent(p.eobj,e,t);}}}
this.stopevt=function(evt){evt.cancelBubble=true;if(evt.stopPropagation)evt.stopPropagation();};this.$=function(n){return CE.$(n);}
this.getDomain=function(dotForCookie){var dparts=window.location.host.split('.');if(dparts.length==4){try{if(parseInt(dparts[dparts.length-1])==dparts[dparts.length-1])
return window.location.host;}catch(e){}}
var domain='';if(dparts.length>1)
domain+=(dotForCookie?'.':'')+dparts[dparts.length-2]+'.';domain+=dparts[dparts.length-1];return domain;};this.getCookie=function(n){var ca=document.cookie.split(';');var i;for(i=0;i<ca.length;i++){var c=ca[i];c=c.replace(" ","");if(c.indexOf(n+'=')===0){return c.substring((n+'=').length,c.length);}}
return null;}
this.setCookie=function(n,v,d){var date=new Date();date.setTime(date.getTime()+(14*24*60*60*1000));ma=";expires="+date.toGMTString();var ck=n+"="+v+ma+";path=/";if(d)ck+=';domain='+d;document.cookie=ck;};this.setCookieTemp=function(n,v,d){var ck=n+'='+v+';path=/';if(d)ck+=';domain='+d;document.cookie=ck;};this.expireCookie=function(name,domain){var date=new Date();date.setTime(date.getTime()+((-1)*24*60*60*1000));document.cookie=name+'=;expires='+date.toGMTString()+';path=/';if(domain)
document.cookie=name+'=;expires='+date.toGMTString()+';domain='+domain+';path=/';};this.getValtoken=function(){return this.getCookie("valtoken");}
this.isLoggedIn=function(){if(this.getValtoken()){return true;}
return false;}
this.validateEmail=function(e){if(!e){return false;}
if(emailregex.test(e)){return true;}else{CE.CEDBG.println('CEU:   +++ Invalid Email "'+e+'" '+emailregex);return false;}};this.parseNormalizeEmails=function(str,skipAddrs){var ar=str.toLowerCase().split(/;|,/);var addrs=[];for(var q=0;q<ar.length;++q){var begPos=ar[q].indexOf('<');var endPos=ar[q].indexOf('>',begPos);if(begPos!=-1&&endPos!=-1){ar[q]=ar[q].substr(begPos+1,endPos-begPos-1);}
ar[q]=ar[q].replace(/^\s*/,"").replace(/\s*$/,"");if(CE.CEU.validateEmail(ar[q])){var skip=false;if(skipAddrs){for(var i=0;i<skipAddrs.length;++i){if(skipAddrs[i].toLowerCase()==ar[q]){skip=true;break;}}}
if(!skip)
addrs.push(ar[q]);}}
return addrs;};this.errorstrings={"606":"ceu.usererror","801":"ceu.nodevice","806":"ceu.alreadyreg","810":"ceu.userexists","listFiles":"ceu.err.listfiles","searchFiles":"ceu.err.serchfiles"};this.notifyError=function(data,ctx,a1,a2,a3,a4,a5){var pane=document.createElement('div');switch(ctx){case null:case undefined:case'MSG':CE.rac(pane);if(typeof(data)=='object'){pane.appendChild(data);}else{pane.appendChild(document.createTextNode(data));}
break;case'RPC':var reason=null;if(data&&data['HB-EXCEPTION']){reason=data['HB-EXCEPTION'];}
if(reason){var errstr=that.errorstrings[""+reason.ecode];if(errstr){emsg(pane,errstr,a1);}else{errstr=a1?that.errorstrings[a1]:null;emsg(pane,errstr||"ceu.rpcexcept",reason.ecode,reason.message,a1);}}else{emsg(pane,'ceu.rpcerror',CE.CEDBG.serialize(data),a1);}
break;default:emsg(pane,'ceu.unknownerror',CE.CEDBG.serialize(ctx),CE.CEDBG.serialize(data));break;}
var dlg=new CE.CEU.Dialog(CE.STRTAB.lookup('ceu.error.title'),pane,[{name:'ok',label:CE.STRTAB.lookup('button.ok')}]);dlg.show();dlg=null;CE.CEU.showLoadingAni(false);}
this.getCalendarDate=function(aDate){var m=aDate.getMonth();var mn=CE.STRTAB.lookup('ceu.month'+m);var d=aDate.getDate();var y=aDate.getYear();if(y<1000){y=y+1900;}
return CE.STRTAB.lookup('ceu.datefmt',mn,d,y);}
this.getDateTimeStr=function(date){var y=date.getYear();if(y<1000){y=y+1900;}
var str=CE.CEU.padInt(date.getMonth()+1,2)+'/'+CE.CEU.padInt(date.getDate(),2)+'/'+CE.CEU.padInt(y,4)+' ';var hour=date.getHours();var ampm=' AM';if(hour<1){hour=12;}else if(hour==12){ampm=' PM';}else if(hour>12){hour-=12;ampm=' PM';}
str+=hour+':'+CE.CEU.padInt(date.getMinutes(),2)+':'+CE.CEU.padInt(date.getSeconds(),2)+ampm;return str;}
this.trimstring=function(string,maxchars){return CE.trims(string,maxchars-3);}
this.shallowCopy=function(obj){var copy={};for(var i in obj){copy[i]=obj[i];}
return copy;}
this.shallowCopyInto=function(dest,obj){for(var i in obj){dest[i]=obj[i];}};this.attachEvent=function(element,type,eobj){if(typeof(eobj.__EID)==='undefined'){if(typeof(element.__EID)==='undefined'){eobj.__EID=''+(++evts.lasteid);}else{eobj.__EID=element.__EID;}}
if(!evts.ehandlers[eobj.__EID])
evts.ehandlers[eobj.__EID]={};evts.ehandlers[eobj.__EID][type]=eobj;element.__EID=eobj.__EID;element['on'+type]=dispatchEvent;}
this.getEventObj=function(element,type){if(typeof(element.__EID)==='undefined')
return null;return evts.ehandlers[element.__EID][type];};this.triggerEvent=function(element,type){var evt=CE.CEU.getEventObj(element,type);if(evt&&evt.onEvent)
evt.onEvent(evt,{});};this.releaseEvent=function(element,type,eobj){if(eobj&&typeof(eobj.__EID)!=='undefined'){try{delete evts.ehandlers[eobj.__EID][type];}catch(e){};evts.ehandlers[eobj.__EID][type]=null;try{delete eobj.__EID;}catch(e){};}
if(element&&typeof(element.__EID)!=='undefined'){try{delete evts.ehandlers[element.__EID][type];}catch(e){};evts.ehandlers[element.__EID][type]=null;try{delete element.__EID;}catch(e){};element['on'+type]=null;}};this.releaseEvents=function(element){if(element&&element.__EID){for(var type in evts.ehandlers[element.__EID]){element['on'+type]=null;try{delete evts.ehandlers[element.__EID][type];}catch(e){};}
evts.ehandlers[element.__EID]={};try{delete element.__EID;}catch(e){};}};this.releaseAllEvents=function(element,type,removeel,cb){var doit=false;element=CE.$(element);if(element){doit=true;if(cb)doit=cb(element);if(doit){if(type)
this.releaseEvent(element,type,null);else
this.releaseEvents(element);}
if(element.hasChildNodes()){var children=element.childNodes;for(var i=children.length-1;i>=0;i--){var e=children[i];var r=true;if(e.nodeType==1){r=this.releaseAllEvents(e,type,removeel,cb);if(removeel&&r){element.removeChild(e);}}else{if(removeel&&doit){element.removeChild(e);}}}}}
element=null;return doit;};this.attachEnterPressedEvent=function(element,eobj){this.attachEvent(element,'keydown',{onEvent:kpKeyHelper,eobj:eobj,ecode:13});};this.attachEscapePressedEvent=function(element,eobj){this.attachEvent(element,'keydown',{onEvent:kpKeyHelper,eobj:eobj,ecode:27});};this.attachKeyPressedEvent=function(element,eobj,keyCode){this.attachEvent(element,'keydown',{onEvent:kpKeyHelper,eobj:eobj,ecode:keyCode});};this.getAbsPos=function(el){if(el.getBoundingClientRect){var rect=el.getBoundingClientRect();return{x:rect.left,y:rect.top};}else{var bo=document.getBoxObjectFor(el);return{x:bo.x,y:bo.y};}};this.getDocHeight=function(el){return Math.max(Math.max(document.body.scrollHeight,document.documentElement.scrollHeight),Math.max(document.body.offsetHeight,document.documentElement.offsetHeight),Math.max(document.body.clientHeight,document.documentElement.clientHeight));};this.getScrollTop=function(){return document.documentElement.scrollTop||document.body.scrollTop;};this.setScrollTop=function(y){document.documentElement.scrollTop=y;document.body.scrollTop=y;};this.getScrollLeft=function(){return document.documentElement.scrollLeft||document.body.scrollLeft;};this.init=function(){CE.CEU.user=null;if(!CE.CEU.svc){CE.CEU.svc=new CE.CERPC();}
var l=that.getSearchParam("locale");if(l){l=that.getLocale(l);if(l){that.switchToLocale(l);}}};this.getSearchParam=function(name,decode,hash){var ret=null;if((hash&&window.location.hash)||window.location.search){var ts=hash?window.location.hash:window.location.search;var idx=ts.indexOf((hash?"#":"?")+name+"=");if(idx==-1){idx=ts.indexOf("&"+name+"=");}
if(idx!=-1){ret=ts.slice(idx+name.length+2);idx=ret.indexOf("&");if(idx!=-1){ret=ret.slice(0,idx);}}}
if(ret&&decode)
return decodeURIComponent(ret);else
return ret;};this.logoutUser=function(data){CE.CEDBG.println("CEU: Logging out user");CE.CEU.user=null;that.expireCookie('valtoken',CE.CEU.getDomain(true));if(data){if(data[0]){var usernameel=CE.$(data[0]);if(usernameel){CE.rac(usernameel);}
usernameel=null;}
if(data[1]){var useropsel=CE.$(data[1]);if(useropsel){CE.rac(useropsel);}
useropsel=null;}
if(typeof(data[2])=='function'){data[2]('logout');}else if(data[2]){if(data[2].indexOf('index.html')==0){window.location.replace('/signin#signout');}else{window.location.replace(data[2]);}}}};this.isExperimental=function(){return(CE.CEU.user&&CE.CEU.user.flags&&CE.CEU.user.flags.indexOf("experimental")!=-1);};this.getVersion=function(svc){var ver={major:0,minor:0,rev:0};if(!svc||!svc.version)
return ver;var start=svc.version.indexOf(' - ');if(start==-1)
return ver;start+=3;ver.major=parseInt(svc.version.substr(start));var dot=svc.version.indexOf('.',start);if(dot==-1)
return ver;ver.minor=parseInt(svc.version.substr(dot+1));dot=svc.version.indexOf('.',dot+1);if(dot==-1)
return ver;ver.rev=parseInt(svc.version.substr(dot+1));return ver;};this.getUser=function(usernamedomel,useropsdomel,require){CE.CEU.svc.getUser(onGetUserSuccess,onGetUserFailure,[usernamedomel,useropsdomel,require]);};this.loginUser=function(email,pw,errordomel,cb,remember){var e;var p;var el=CE.$(errordomel);if(el){CE.rac(el);}
el=null;e=getval(email);p=getval(pw);if(!e||e==""||!p||p==""){emsg(errordomel,'ceu.reqarg.userpass');}else if(!that.validateEmail(e)){emsg(errordomel,'ceu.invalidemail');}else{CE.CEU.svc.loginUser(e,p,onLoginUserSuccess,onLoginUserFailure,[errordomel,cb,remember]);}};this.forgotPassword=function(email,errordomel,cb){var e;var el=CE.$(errordomel);if(el){CE.rac(el);}
el=null;e=getval(email);if(!e||e==""){emsg(errordomel,'ceu.reqarg');}else if(!that.validateEmail(e)){emsg(errordomel,'ceu.invalidemail');}else{CE.CEU.svc.asyncRPC("POST","initiatePasswordReset",["email",e],onForgotPasswordSuccess,onForgotPasswordFailure,[errordomel,cb]);}};function onUpdatePasswordFailure(r,data){var reason=null;if(r&&r['HB-EXCEPTION']){reason=r['HB-EXCEPTION'];}
if(reason&&reason.ecode&&reason.ecode=="606"){if(data[0]){var a=document.createElement("a");a.innerHTML=CE.STRTAB.lookup("ceu.clickhere");a.href='forgot.html';emsg(data[0],"ceu.reseterror",a);}}else{onLoginUserFailure(r,data);}
if(data.cbf)
data.cbf();}
this.updatePassword=function(pwtoken,shtoken,pw1,pw2,errordomel,cb,cbf){var e;var p;var p2;var el=CE.$(errordomel);if(el){CE.rac(el);}
el=null;p=getval(pw1);p2=getval(pw2);if(((!pwtoken||pwtoken=="")&&(!shtoken||shtoken==""))||!p||p==""){emsg(errordomel,'ceu.reqarg');if(cbf)cbf();}else if(p!=p2){emsg(errordomel,'ceu.pwmatch');if(cbf)cbf();}else{var args=[];if(pwtoken){args.push("passtoken");args.push(pwtoken);}else if(shtoken){args.push("sharetoken");args.push(shtoken);}
args.push("password");args.push(p);CE.CEU.svc.asyncRPC("POST","updatePassword",args,onLoginUserSuccess,onUpdatePasswordFailure,[errordomel,cb,cbf]);}};this.getLocale=function(localeid){if(!localeid||!CE.LOCALES)
return null;for(var i=0;i<CE.LOCALES.length;i++){if(CE.LOCALES[i].id==localeid){return CE.LOCALES[i];}}
return null;}
function switchToLocale(locale){if(locale==null)return;var a=CE.CEU.$("celocaledisplay");if(a){CE.rac(a);a.appendChild(CE.dctn(locale.name));if(locale.beta&&eval(locale.beta)){var beta=CE.dce('span',null,'cebetatag');beta.appendChild(CE.dctn(' beta'));a.appendChild(beta)}}
a=null;locale=locale.path;var pa=window.location.pathname.split("/");var pn="";var prefix='';if(pa.length>2&&pa[1]=='a'){prefix='/a/'+pa[2];pa.splice(1,2);}
if(pa.length>2){if(pa[1]==locale){return;}
for(var i=2;i<pa.length;i++){pn+="/"+pa[i];}}else if(locale==""){return;}else if(pa.length>1){for(var i=1;i<pa.length;i++){pn+="/"+pa[i];}}
if(locale!=""){pn="/"+locale+pn;}
pn=(pn.length==0)?prefix+'/':prefix+pn;window.location.replace(pn+window.location.search);}
this.switchToLocale=function(l){return switchToLocale(l);}
function onUpdateUserLocaleSuccess(r,l){updateLocaleCookie(l.id);switchToLocale(l);}
function updateLocaleCookie(locale){if(locale){CE.CEU.expireCookie('locale');CE.CEU.setCookie('locale',locale,CE.CEU.getDomain(true));}else{CE.CEU.expireCookie('locale');CE.CEU.expireCookie('locale',CE.CEU.getDomain(true));}}
function updateUserLocale(ev){CE.CEU.expireCookie('localetmp');CE.CEU.setCookieTemp('localetmp',ev.locale.id,CE.CEU.getDomain(true));if(that.getCookie("locale")==ev.locale.id){if(ev.dialog){ev.dialog.hide();ev.dialog=null;}
return false;}
if(that.getValtoken()){if(ev&&ev.locale){CE.CEU.svc.asyncRPC("POST","updateUser",["locale",ev.locale.id],onUpdateUserLocaleSuccess,null,ev.locale);}}else{updateLocaleCookie(ev.locale.id);switchToLocale(ev.locale);}
return false;}
this.populateLocaleList=function(elid,clsname,showcur,dlg,numPerLine,sepLocId){var curLocale=that.getCookie("locale");if(!curLocale)
curLocale='';var el=CE.CEU.$(elid);if(el){var num=0;for(var i=0;i<CE.LOCALES.length;i++){if(CE.LOCALES[i].name&&(CE.LOCALES[i].experimental!='1'||CE.CEU.isExperimental())){var useClass=clsname;if(showcur&&((curLocale==CE.LOCALES[i].id)||(curLocale==''&&i==0)))
useClass+=' '+'bold';var spn=CE.dce('span',null,useClass);var a=CE.dca({onEvent:updateUserLocale,locale:CE.LOCALES[i],dialog:dlg});a.appendChild(CE.dctn(CE.LOCALES[i].name));spn.appendChild(a)
if(CE.LOCALES[i].beta&&eval(CE.LOCALES[i].beta)){var beta=CE.dce('span',null,'cebetatag');beta.appendChild(CE.dctn(' beta'));spn.appendChild(beta)}
if(numPerLine&&num&&(num%numPerLine==0)){el.appendChild(sepLocId?CE.STRTAB.lookupel(sepLocId):CE.dce('br'));}
++num;el.appendChild(spn);}}}
el=null;}
this.checkUserLocale=function(localeid){var l=that.getLocale(localeid);if(l){updateLocaleCookie(localeid);switchToLocale(l);}}
this.ensureCurrentLocale=function(){var localeid=that.getCookie("locale");if(localeid){var l=that.getLocale(localeid);if(l){switchToLocale(l);}}}
this.getStyle=function(el,styleName){if(el.currentStyle)
return el.currentStyle[styleName];else if(window.getComputedStyle)
return document.defaultView.getComputedStyle(el,null).getPropertyValue(styleName);return null;};this.fade=function(objs,steps,fadeDurMs,cbIsCancelled,cbComplete){var opacity=[];for(var i=0;i<objs.length;++i){opacity.push(parseFloat(CE.CEU.getStyle(objs[i].el,'opacity'))||(objs[i].fadeIn?0.0:1.0));}
var delay=fadeDurMs/steps;var inc=1.0/steps;var timer=setInterval(step,delay);function step(){if(cbIsCancelled&&cbIsCancelled())
return clearInterval(timer);;--steps;for(var i=0;i<objs.length;++i){opacity[i]+=objs[i].fadeIn?inc:(-inc);objs[i].el.style.opacity=opacity[i];if(!steps||(objs[i].fadeIn&&opacity[i]>=1)||(!objs[i].fadeIn&&opacity[i]<=0)){clearInterval(timer);for(var i=0;i<objs.length;++i){objs[i].el.style.opacity=objs[i].fadeIn?1:0;}
if(cbComplete)
cbComplete();return;}}}};this.fadeStyle=function(objs,steps,fadeDurMs,cbComplete){var delay=fadeDurMs/steps;for(var i=0;i<objs.length;++i){objs[i].cur=objs[i].from;objs[i].inc=(objs[i].to-objs[i].from)/steps;}
var timer=setInterval(step,delay);function step(){--steps;if(!steps)
clearInterval(timer);for(var i=0;i<objs.length;++i){if(steps)
objs[i].cur+=objs[i].inc;else
objs[i].cur=objs[i].to;objs[i].el.style[objs[i].style]=(objs[i].prefix||'')+objs[i].cur+objs[i].type;}
if(!steps&&cbComplete)
cbComplete();}};this.showTermsDlg=function(checkId,force,path){window.open('http://pogoplug.com/legal.html#terms');return false;};this.showMessage=function(title,message,cb){var dlg=new CE.CEU.Dialog(title,(typeof(message)=='string')?CE.dctn(message):message,[{name:'ok',label:CE.STRTAB.lookup('button.ok'),callback:cb}],null,null,null,null,null,cb);dlg.show();};this.promptYesNo=function(title,message,cbYes,cbNo){var dlg=new CE.CEU.Dialog(title,(typeof(message)=='string')?CE.dctn(message):message,[{name:'yes',label:CE.STRTAB.lookup('button.yes'),callback:cbYes},{name:'no',label:CE.STRTAB.lookup('button.no'),callback:cbNo}],null,null,null,null,null,cbNo);dlg.show();};this.promptOkCancel=function(title,message,cbYes,cbNo){var dlg=new CE.CEU.Dialog(title,(typeof(message)=='string')?CE.dctn(message):message,[{name:'yes',label:CE.STRTAB.lookup('button.ok'),callback:cbYes},{name:'no',label:CE.STRTAB.lookup('button.cancel'),callback:cbNo}],null,null,null,null,null,cbNo);dlg.show();};this.showInputDialog=function(title,message,inputcls,inputid,inputtype,btntext,cb,dflt){var root=CE.dce("div");var cnt=CE.dce("div");var sd=CE.dce("div","","label");root.appendChild(cnt);sd.appendChild(CE.dctn(CE.STRTAB.lookup(message)));cnt.appendChild(sd);sd=CE.dce("div","ceinputdlg_error","dlgerr2 hidden");cnt.appendChild(sd);sd=CE.dce("div");var input=CE.dce("input",inputid,inputcls+" extramarginbottom");input.type=inputtype;if(dflt)input.value=dflt;sd.appendChild(input);cnt.appendChild(sd);var dlg=new CE.CEU.Dialog(CE.STRTAB.lookup(title),root,[{name:'ok',label:CE.STRTAB.lookup(btntext),callback:cb},{name:'cancel',label:CE.STRTAB.lookup('ceui.cancel')}],null,false,"widish");dlg.show();CE.$(inputid).focus();CE.CEU.attachEnterPressedEvent(CE.$(inputid),function(){if(cb())dlg.hide();});}
this.showMultiInputDialog=function(title,inputs,btntext,cbOk,cbCancel,noCancel){var root=CE.dce("div");var cnt=CE.dce("div");var sd=CE.dce("div","ceinputdlg_error","dlgerr2 hidden");cnt.appendChild(sd);for(var i=0;i<inputs.length;++i){if(inputs[i].inputtype=='div'){cnt.appendChild(inputs[i].div);}else{sd=CE.dce("div","","dlglabel");root.appendChild(cnt);sd.appendChild(CE.dctn(CE.STRTAB.lookup(inputs[i].message)));if(inputs[i].twoline){cnt.appendChild(sd);sd=CE.dce("div");}
var input;if(inputs[i].inputtype=='select'){input=CE.dce("select",inputs[i].inputid,inputs[i].inputcls+" extramarginbottom");}else{input=CE.dce("input",inputs[i].inputid,inputs[i].inputcls+" extramarginbottom");input.type=inputs[i].inputtype;}
if(inputs[i].dflt){if(inputs[i].inputtype!='checkbox'){input.value=inputs[i].dflt;}}
if(inputs[i].disabled){input.disabled=true;}
sd.appendChild(input);if(inputs[i].dflt&&inputs[i].inputtype=='checkbox'){if(inputs[i].lnk){var lnk=CE.dca({onEvent:function(eh){window.open(eh.lnk);return false;},lnk:inputs[i].lnk},"","extramarginbottom");lnk.appendChild(CE.dctn(inputs[i].dflt));sd.appendChild(CE.dctn(' '));sd.appendChild(lnk);}else{var spn=CE.dce("span","","extramarginbottom");spn.appendChild(CE.dctn(' '+inputs[i].dflt));sd.appendChild(spn);}}
cnt.appendChild(sd);}}
var buttons=[{name:'ok',label:CE.STRTAB.lookup(btntext),callback:cbOk}];if(!noCancel)
buttons.push({name:'cancel',label:CE.STRTAB.lookup('ceui.cancel'),callback:cbCancel});var dlg=new CE.CEU.Dialog(CE.STRTAB.lookup(title),root,buttons,null,noCancel,"widish",null,null,cbCancel);dlg.show();var focused=false;for(var i=0;i<inputs.length;++i){if(inputs[i].inputtype!='div'){CE.CEU.attachEnterPressedEvent(CE.$(inputs[i].inputid),function(){if(cbOk())dlg.hide();});if(!focused||inputs[i].focus){CE.$(inputs[i].inputid).focus();focused=true;}}}
return dlg;}
this.isImageFile=function(file){if(file.mimetype){return(file.mimetype.indexOf("image")!=-1&&file.mimetype.indexOf("bmp")==-1);}else if(file.name){var ext=file.name.substr(file.name.length-4);if(ext){ext=ext.toLowerCase();if(ext.match(".png")||ext.match(".jpg")||ext.match("jpeg")||ext.match(".gif")){return true;}}}
return false;};this.isDescendant=function(parent,child,cbYes,cbNo){if(parent.svc.serviceid!=child.svc.serviceid||parent.svc.deviceid!=child.svc.deviceid)
return cbNo();if(parent.file.fileid==child.file.fileid||parent.file.fileid=='0')
return cbYes();if(child.file.fileid=='0')
return cbNo();var seenIds={};seenIds[child.file.fileid]=true;var getParent=function(parentId){var args=['deviceid',child.svc.deviceid,'serviceid',child.svc.serviceid,'fileid',parentId];CE.CEU.svc.asyncRPC('POST','getFile',args,function(r){if(r.file.fileid==parent.file.fileid){cbYes();}else if(r.file.fileid=='0'||seenIds[r.file.fileid]){cbNo();}else{seenIds[r.file.fileid]=true;getParent(r.file.parentid);}},function(){cbNo();});};getParent(child.file.parentid);};this.disableLoadingAni=function(disable){if(CE.CEROOT){return CE.CEROOT.CEU.disableLoadingAni(disable);}
CE.mCN('celoading','hidden2',disable);CE.mCN('celoadingfg','hidden2',disable);CE.mCN('cetoolbar_loading','hidden2',disable);CE.mCN('cehead_loading','hidden2',disable);};this.makeLoadingAniInvisible=function(invis){if(CE.CEROOT){return CE.CEROOT.CEU.makeLoadingAniInvisible(invis);}else if(invis){CE.aCN('celoading','ceinvisible');CE.aCN('celoadingfg','ceinvisible');CE.aCN('cetoolbar_loading','ceinvisible');CE.aCN('cehead_loading','ceinvisible');}else{CE.rCN('celoading','ceinvisible');CE.rCN('celoadingfg','ceinvisible');CE.rCN('cetoolbar_loading','ceinvisible');CE.rCN('cehead_loading','ceinvisible');}}
this.showLoadingAni=function(show){if(CE.CEROOT){return CE.CEROOT.CEU.showLoadingAni(show);}else if(show){CE.rCN('celoading','hidden');CE.rCN('celoadingfg','hidden');CE.rCN('cetoolbar_loading','hidden');CE.rCN('cehead_loading','hidden');}else{CE.aCN('celoading','hidden');CE.aCN('celoadingfg','hidden');CE.aCN('cetoolbar_loading','hidden');CE.aCN('cehead_loading','hidden');}}
this.cancelAsyncOp=function(){CE.CEU.svc.abortPendingRPCs();CE.CEU.showLoadingAni(false);return false}
this.xmlEncode=function(text)
{var result=text;var amp=/&/gi;var gt=/>/gi;var lt=/</gi;var quot=/"/gi;var apos=/'/gi;var helpemacs=/"/gi;var xml_gt="&#62;";var xml_lt="&#38;#60;";var xml_amp="&#38;#38;";var xml_quot="&#34;";var xml_apos="&#39;";result=result.replace(amp,xml_amp);result=result.replace(quot,xml_quot);result=result.replace(lt,xml_lt);result=result.replace(gt,xml_gt);result=result.replace(apos,xml_apos);return result;}
this.jsEncode=function(str){return(str+'').replace(/([\\"'])/g,"\\$1").replace(/\0/g,"\\0");};this.getFlashMovieElement=function(movieName){if(navigator.appName.indexOf("Microsoft")!=-1){return window[movieName];}else{return document[movieName];}};this.getFlashVersion=function(){var version=[0,0,0];if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){version=x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split(".")}}else{var axo=null;try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");version=[6,0,21];axo.AllowScriptAccess="always";}catch(e){if(version[0]==6){axo=null;return version;}}}
if(axo!=null){version=axo.GetVariable("$version").split(" ")[1].split(",");}
axo=null;}
return version;}
this.getFlashUpgradeHTML=function(){var div=CE.dce('div');div.className='flashupgrade';var a=CE.dce('a');a.className='sq';a.href=CE.STRTAB.lookup('flashurl');a.appendChild(CE.STRTAB.lookupel('getithere'));div.appendChild(CE.STRTAB.lookupel('flashupgrade',a));return div;}
this.padInt=function(n,len){s=n.toString();if(s.length<len){s=('0000000000'+n.toString()).slice(-len);}
return s;}
this.getSizeStr=function(numbytes){var KILOBYTE=(1000);var MEGABYTE=(1000*1000);var GIGABYTE=(1000*1000*1000);var size='';var suffix='';if((numbytes/GIGABYTE)>.8){size=((Math.round((numbytes/GIGABYTE)*10))/10);suffix=CE.STRTAB.lookup('ceui.gigabytes');}else if((numbytes/MEGABYTE)>.8){size=((Math.round((numbytes/MEGABYTE)*10))/10);suffix=CE.STRTAB.lookup('ceui.megabytes');}else{size=((Math.round((numbytes/KILOBYTE)*10))/10);suffix=CE.STRTAB.lookup('ceui.kilobytes');}
if(size==Infinity||isNaN(size)){size='';suffix='';}
return size+suffix;};this.stripBadFnChars=function(badName){var str=badName;if(!str)
str='';str=str.replace(/^\s*(.*?)\s*$/,"$1");str=str.replace(/\"/g,"");str=str.replace(/\\/g,"");str=str.replace(/\//g,"");str=str.replace(/\:/g,"");if(str.length==4){var pref=str.substr(0,3);if(pref=='COM'||pref=='LPT'){var num=str.substr(3,1);for(var i=0;i<=9;++i){if(num==i){str=str+'-';break;}}}}
return str;};this.createInlineHint=function(strid,cls){var span=CE.dce('span',null,'cehint_inline_icon '+(cls||''));span.appendChild(CE.STRTAB.lookupelh('view.space.h'));var cont=span.appendChild(CE.dce('div',null,'cehintcont'));CE.CEU.attachEvent(span,'mouseover',{onEvent:function(d,e){CE.CEU.onShowInlineHint(e,strid,null,null,cont);}});CE.CEU.attachEvent(span,'mouseout',{onEvent:function(d,e){CE.CEU.onHideInlineHint(e,cont);}});return span;};this.onShowInlineHint=function(evt,strid,str1,left,cont){if(!evt)evt=window.event;if(!evt.target)evt.target=evt.srcElement;if(!cont)cont=evt.target;CE.rac(cont);evt.target.style.zIndex=500;var div=CE.dce('div');div.innerHTML=CE.STRTAB.lookup(strid,str1);var hintDiv=cont.appendChild(CE.dce('div',null,'cehintbubble'+(left?' celeft':'')));hintDiv.appendChild(div);var pos=CE.CEU.getAbsPos(hintDiv);var viewHeight=window.innerHeight||document.documentElement.clientHeight;if((pos.y+hintDiv.offsetHeight)>viewHeight){var top=hintDiv.offsetTop;top-=((pos.y+hintDiv.offsetHeight)-viewHeight);hintDiv.style.top=top+'px';}
var viewWidth=window.innerWidth||document.documentElement.clientWidth;if((pos.x+hintDiv.offsetWidth)>viewWidth){hintDiv.style.left='-'+(hintDiv.offsetWidth+8)+'px';}};this.onHideInlineHint=function(evt,cont){if(!evt)evt=window.event;if(!evt.target)evt.target=evt.srcElement;if(!cont)cont=evt.target;CE.rac(cont);evt.target.style.zIndex='';};this.showDlHint=function(){window.open('downloads');return false;};this.structlen=function(obj){var len=0;if(obj){for(var k in obj){++len;}}
return len;};this.structhead=function(obj){if(obj){for(var k in obj){return obj[k];}}
return null;};this.CLOUD_TYPES=[{name:'facebook',type:'xce:plugfs:cloud:facebook'},{name:'google',type:'xce:plugfs:cloud:gdocs'}];
this.RegisterDeviceDialog=function(cb){var that=this;var m_pane=CE.dce('div');var m_pendingsearch=false;var m_device=null;var m_dlg=new CE.CEU.Dialog(CE.STRTAB.lookup("ces.register.title"),m_pane,[{name:'cancel',label:CE.STRTAB.lookup('ceui.cancel')}],null,true);function onDeviceRegisterComplete(){CE.rac(m_pane);m_pane.appendChild(CE.STRTAB.lookupel("settings.register.success"));m_dlg.removeButton('ok');m_dlg.removeButton('cancel');m_dlg.addButton('ok',CE.STRTAB.lookup('ceui.ok'),function(){if(cb)cb();return true;});}
function onDeviceRegisterSuccess(r,d){CE.CEU.svc.asyncRPC('POST','checkUpgrade',['deviceid',d.deviceid],function(r,d){if(r.available=='1'){CE.rac(m_pane);m_pane.appendChild(CE.STRTAB.lookupel('activate.upgrading'));m_pane.appendChild(CE.dce('br'));m_pane.appendChild(CE.STRTAB.lookupel('activate.takeaminute'));var aniPane=CE.dce('div',null,'ceaniwait');m_pane.appendChild(aniPane);aniPane.appendChild(CE.dci(CE.STRTAB.lookup('imgbase')+'loading.gif'));m_dlg.removeButton('cancel');CE.CEU.svc.asyncRPC('POST','checkUpgrade',['deviceid',d.deviceid,'perform','1'],function(r,d){var devId=d.deviceid;var waitTillDeviceVisible=function(){setTimeout(function(){CE.CEU.svc.asyncRPC("POST","getDevice",['deviceid',devId],function(r){if(r.device){onDeviceRegisterComplete();}else{waitTillDeviceVisible();}},waitTillDeviceVisible);},5000);};waitTillDeviceVisible();},onDeviceRegisterComplete,d);}else{onDeviceRegisterComplete();}},onDeviceRegisterComplete,d);}
function assembleDevId(){var devid="",l=null;var oneinput=CE.CEU.$("devid");if(oneinput){var oneInputValue=oneinput.value.toUpperCase();oneinput=null;return oneInputValue;}
for(var i=1;i<6;i++){l=document.getElementById("devid"+i);if(l.value.length<l.maxLength){l.style.backgroundColor='red';}else{l.style.backgroundColor='';}
devid+=l.value.toUpperCase();}
return devid;}
function onDeviceRegisterFailure(r,data,method){var reason=null;if(r&&r['HB-EXCEPTION']){reason=r['HB-EXCEPTION'];}
if(reason){m_dlg.hide();var pane=CE.dce('div');if(reason.ecode==801){var bdy=CE.dce("div",null,"dlgmsg");pane.appendChild(bdy);var msg=CE.dce("div",null,"sec");msg.appendChild(CE.STRTAB.lookupel('settings.notfound.devid'));bdy.appendChild(msg);msg=CE.dce("span",null,"cedevconfirm sec");var t=data.deviceid.substr(0,6)+'-'+
data.deviceid.substr(6,6)+'-'+
data.deviceid.substr(12,2)+'-'+
data.deviceid.substr(14,6)+'-'+
data.deviceid.substr(20,6);msg.appendChild(document.createTextNode(t));bdy.appendChild(msg);var blts=CE.dce("div",null,"dlgmsg");var ul=CE.dce("ul",null,"ceul");var li=CE.dce("li",null,"bullet");li.appendChild(CE.STRTAB.lookupel('settings.notfound.power'));ul.appendChild(li);li=CE.dce("li",null,"bullet");li.appendChild(CE.STRTAB.lookupel('settings.notfound.connected'));ul.appendChild(li);li=CE.dce("li",null,"bullet");li.appendChild(CE.STRTAB.lookupel('settings.notfound.dhcp'));ul.appendChild(li);li=CE.dce("li",null,"bullet");li.appendChild(CE.STRTAB.lookupelh('settings.notfound.udp.html'));ul.appendChild(li);blts.appendChild(ul);bdy.appendChild(blts);var sec=CE.dce("div",null,"sec");var p=CE.dce("p");p.appendChild(CE.STRTAB.lookupel('settings.notfound.unplug'));sec.appendChild(p);blts.appendChild(sec)
var p=CE.dce("p");p.appendChild(CE.STRTAB.lookupel('settings.notfound.probcont'));var a=CE.dce('a');a.href=CE.STRTAB.lookup("activate.supporturl");a.target="_blank";a.appendChild(CE.STRTAB.lookupel('view.clickspace'));p.appendChild(a);p.appendChild(CE.STRTAB.lookupel('view.problems.contact'));sec.appendChild(p);}else if(reason.ecode==806){var title=CE.dce("div",null,"dlgtitle");title.appendChild(CE.STRTAB.lookupel('settings.error.already'));pane.appendChild(title);var msg=CE.dce("div",null,"dlgmsg");var p=CE.dce("p");p.appendChild(CE.STRTAB.lookupel('settings.error.correct'));msg.appendChild(p);p=CE.dce("p");p.appendChild(CE.STRTAB.lookupel("settings.error.addlhelp"));var a=CE.dce("a");a.href=CE.STRTAB.lookup('supporturl');a.target="_blank";a.appendChild(CE.STRTAB.lookupel('view.clickspace'));p.appendChild(a);p.appendChild(CE.STRTAB.lookupel('view.problems.contact'));msg.appendChild(p);pane.appendChild(msg);}
dlg=new CE.CEU.Dialog(CE.STRTAB.lookup('ces.register.title'),pane,[{name:'cancel',label:CE.STRTAB.lookup('ceui.cancel')}]);dlg.show();}}
function onAddDeviceRegClick(){var devid=null;if(m_device){devid=m_device.deviceid;}else{devid=assembleDevId();}
if(!devid||devid.length!=26){CE.CEU.showMessage(CE.STRTAB.lookup('ces.register.title'),CE.STRTAB.lookup('ces.register.inval'));}else{m_dlg.removeButton('ok');CE.CEU.svc.asyncRPC("POST","registerDevice",["devtoken",devid],onDeviceRegisterSuccess,onDeviceRegisterFailure,{deviceid:devid});}}
function checkDevId(eh){var l=document.getElementById(eh.devid);if(l&&l.value.length!=l.maxLength){l.style.backgroundColor='red';}else{l.style.backgroundColor="";}}
function skipTo(eh){var l=document.getElementById(eh.devid1);if(l&&l.value){if(l.value.length==l.maxLength){l=document.getElementById(eh.devid2);if(l){l.focus();}}}}
function addDeviceIDInputs(iddivname){var iddiv=CE.CEU.$(iddivname);var input=CE.dce("input","devid1","dev6");input.type="text";input.maxLength="6";CE.CEU.attachEvent(input,"blur",{onEvent:checkDevId,devid:'devid1'});CE.CEU.attachEvent(input,"keyup",{onEvent:skipTo,devid1:'devid1',devid2:'devid2'});iddiv.appendChild(input);iddiv.appendChild(CE.dctn(" - "));input=CE.dce("input","devid2","dev6");input.type="text";input.maxLength="6";CE.CEU.attachEvent(input,"blur",{onEvent:checkDevId,devid:'devid2'});CE.CEU.attachEvent(input,"keyup",{onEvent:skipTo,devid1:'devid2',devid2:'devid3'});iddiv.appendChild(input);iddiv.appendChild(CE.dctn(" - "));input=CE.dce("input","devid3","dev2");input.type="text";input.maxLength="2";CE.CEU.attachEvent(input,"blur",{onEvent:checkDevId,devid:'devid3'});CE.CEU.attachEvent(input,"keyup",{onEvent:skipTo,devid1:'devid3',devid2:'devid4'});iddiv.appendChild(input);iddiv.appendChild(CE.dctn(" - "));input=CE.dce("input","devid4","dev6");input.type="text";input.maxLength="6";CE.CEU.attachEvent(input,"blur",{onEvent:checkDevId,devid:'devid4'});CE.CEU.attachEvent(input,"keyup",{onEvent:skipTo,devid1:'devid4',devid2:'devid5'});iddiv.appendChild(input);iddiv.appendChild(CE.dctn(" - "));input=CE.dce("input","devid5","dev6");input.type="text";input.maxLength="6";CE.CEU.attachEvent(input,"blur",{onEvent:checkDevId,devid:'devid5'});iddiv.appendChild(input);input=null;iddiv=null;}
function toggleDeviceIDEnterFormat(){var ip=CE.CEU.$("devid");CE.CEU.releaseAllEvents("iddiv",'click',true);if(ip){addDeviceIDInputs("iddiv");}else{ip=CE.dce("input","devid","field idfield");ip.maxLength=26;var d=CE.CEU.$("iddiv");d.appendChild(ip);d=null;}
ip=null;}
function tryManualEntry(){if(m_timer){CE.uTimer(m_timer);m_timer=null;m_pendingsearch=false;}
m_device=null;CE.rac(m_pane);var lbl=CE.dce("div",null,"extramarginbottom");lbl.appendChild(CE.STRTAB.lookupel('settings.notfound'));m_pane.appendChild(lbl);lbl=CE.dce("div",null,"label");lbl.appendChild(CE.STRTAB.lookupel("ces.register.msg"));m_pane.appendChild(lbl);CE.CEU.attachEvent(lbl,"click",{onEvent:toggleDeviceIDEnterFormat});m_pane.appendChild(lbl);var iddiv=CE.dce("div","iddiv");addDeviceIDInputs(iddiv);m_pane.appendChild(iddiv);m_dlg.removeButton('ok');m_dlg.addButton('ok',CE.STRTAB.lookup('ceui.register'),onAddDeviceRegClick);}
function foundIt(d){CE.rac(m_pane);m_pane.appendChild(CE.STRTAB.lookupel("settings.foundlocal"));m_device=d;m_dlg.removeButton('ok');m_dlg.addButton('ok',CE.STRTAB.lookup('ceui.register'),onAddDeviceRegClick);}
function onGetLocalDeviceSuccess(r){if(m_pendingsearch){m_pendingsearch=false;if(r.device&&r.device.deviceid){foundIt(r.device);}else{tryManualEntry();}}}
function onGetLocalDeviceFailure(r){tryManualEntry();}
function startLocalDeviceSearch(){m_timer=null;m_pendingsearch=true
CE.CEU.svc.asyncRPC("POST","getLocalDevice",[],onGetLocalDeviceSuccess,onGetLocalDeviceFailure);}
this.show=function(){m_device=null;var pane=m_pane;CE.rac(pane);var div=CE.dce("div");div.appendChild(CE.STRTAB.lookupel("settings.waitlocate"));pane.appendChild(div);div=CE.dce("div",null,"buttons");div.appendChild(CE.dci(CE.STRTAB.lookup("imgbase")+"loading.gif"));var a=CE.dca({onEvent:tryManualEntry},null,"rename");a.appendChild(CE.STRTAB.lookupel("settings.cancel"));div.appendChild(a);pane.appendChild(div);m_timer=CE.rTimer(startLocalDeviceSearch,3000);m_dlg.show();};};this.showCheckSpeedDlg=function(titleId,applyCb){var pane=CE.dce('div');pane.appendChild(CE.dce('div','linequalitytest'));var voipDiv=pane.appendChild(CE.dce('div'));var buttons=pane.appendChild(CE.dce('div',null,'extramargintop'));(buttons.appendChild(CE.dca({onEvent:function(){dlg.hide();return false;}},null,'ceredbut'))).appendChild(CE.STRTAB.lookupel(applyCb?'button.cancel':'ceui.close'));if(applyCb){(buttons.appendChild(CE.dca({onEvent:applyCb},'ceapplyspeed','ceredbut right-float hidden'))).appendChild(CE.STRTAB.lookupel('cexcode.speedcheck.apply'));}
var dlg=new CE.CEU.Dialog(CE.STRTAB.lookup(titleId||'linetest.title'),pane,null,null,null,'CEUDialog_wide662');dlg.show();var flashvars={configExtension:"xml"};var params={quality:"high",bgcolor:"#ffffff",allowScriptAccess:"always"};var attributes={id:"flashtest",name:"flashtest"};swfobject.embedSWF("/flash/line/linequalitytest.swf?v=2.1.8","linequalitytest","640","400","8.0.0","/flash/line/expressInstall.swf",flashvars,params,attributes);var voip='<applet code="VoipApplet.class" archive="/flash/line/VoipApplet.jar?v=1.1" width="1" height="1" mayscript id="VoipApplet" name="VoipApplet">'
+'<param name="bgcolor" value="ffffff">'
+'<param name="packetlosslength" value="100">'
+'<param name="tcpport" value="443">'
+'<param name="udpport" value="4365">'
+'<param name="debug" value="false">'
+'<param name="latencylength" value="10">'
+'<param name="latencypause" value="20">'
+'<param name="packetlosspause" value="20">'
+'</applet>';voipDiv.innerHTML=voip;return dlg;};this.checkOpt=function(opt){var opt=CE.CEU.$(opt);if(opt){var parent=opt.parentNode;while(!CE.hCN(parent,'ceopts')&&!CE.hCN(parent,'ceopt-group')){parent=parent.parentNode;}
var tags=['div','a'];for(var t=0;t<tags.length;++t){var opts=CE.getByClass(parent,tags[t],'ceopt');for(var i=0;i<opts.length;++i){CE.rCN(opts[i],'selected');}}
CE.aCN(opt,'selected');opt=null;}};this.hasAncestor=function(childEl,parentId){while(childEl){if(childEl.id==parentId)
return true;childEl=childEl.parentNode;}
return false;};this.poll=function(intervalMs,isDoneCb,doneCb,noQuickCheck){var checkNow=function(){if(isDoneCb())
doneCb();else
setTimeout(checkNow,intervalMs);};if(noQuickCheck)
setTimeout(checkNow,intervalMs);else
checkNow();};}();CE.CEU.Dialog=function(header,message,buttonlist,doSetFocus,noclose,extraclass,ech,quickClose,cancelCb,nonModal,smallClose,keepTopBar,noDestroyOnHide){if(CE.CEROOT){return new CE.CEROOT.CEU.Dialog(header,message,buttonlist,doSetFocus,noclose,extraclass,ech,quickClose,cancelCb,nonModal,smallClose,keepTopBar,noDestroyOnHide);}
var that=this;var hidediv,dlghldr,dlgdiv,hdrdiv,hdrmsg,msgscroll,msgdiv,btndiv,btnafter,shown=false;var buttons=[];var focushelper=doSetFocus;var cancelcb=cancelCb;var hdrclear=null;var drag_dlgstart,drag_mousestart;function onDragStart(d,evt)
{if((!evt.which||evt.which==1)&&(!evt.button||evt.button==1)){drag_dlgstart={x:dlgdiv.offsetLeft,y:dlgdiv.offsetTop};drag_mousestart={x:evt.clientX,y:evt.clientY};if(CE.CEUI&&CE.CEUI.addMouseHandler)
CE.CEUI.addMouseHandler(onDragMove);else
document.onmousemove=onDragMove;hdrdiv.ondragstart=function(){return false;};document.onselectstart=function(){return false;};hdrdiv.focus();}}
function onDragStop()
{if(CE.CEUI&&CE.CEUI.removeMouseHandler)
CE.CEUI.removeMouseHandler(onDragMove);else
document.onmousemove=null;document.onselectstart=null;hdrdiv.focus();}
function onDragMove(evt)
{if(!evt)evt=window.event;dlgdiv.style.left=drag_dlgstart.x+(evt.clientX-drag_mousestart.x)+'px';dlgdiv.style.top=drag_dlgstart.y+(evt.clientY-drag_mousestart.y)+'px';hdrdiv.focus();}
function onButtonClick(btn){if(btn.callback==undefined){that.hide();}else{if(btn.callback(btn.name)){that.hide();}}}
hidediv=document.createElement('div');hidediv.className="CEUDialog_hide"+(keepTopBar?" CEUDialog_hide_keeptopbar":"");var padNum=0;if(CE.CEU.$('CEUDialog_hide_div')){padNum=2;}
if(CE.CEU.$('CEUDialog_hide_div2')){padNum=4;}
if(CE.CEU.$('CEUDialog_hide_div4')){padNum=6;}
hidediv.id="CEUDialog_hide_div"+(padNum?padNum:'');if(padNum)
hidediv.style.zIndex=100+padNum;if(quickClose){hidediv.onclick=function(){var abort=false;if(cancelcb){abort=(cancelcb()=='abort');}
if(!abort)
that.hide();return false;};}
dlghldr=document.createElement('div');if(ech){dlghldr.className="CEUDialog_holder "+ech;}else{dlghldr.className="CEUDialog_holder";}
dlgdiv=document.createElement('div');if(extraclass){dlgdiv.className="CEUDialog "+extraclass;}else{dlgdiv.className="CEUDialog";}
if(padNum)
dlgdiv.style.zIndex=101+padNum;dlghldr.appendChild(dlgdiv);var dlginner=CE.dce('div',null,'CEUDialog_inner');dlgdiv.appendChild(dlginner);hdrdiv=document.createElement('div');hdrdiv.className='CEUDialog_hdr';if(!noclose){hdrclear=document.createElement('a');hdrclear.className=smallClose?'CEUDialog_hdrbutton_small':'CEUDialog_hdrbutton';hdrclear.href='#';(function(h,t){h.onclick=function(){var abort=false;if(cancelcb){abort=(cancelcb()=='abort');}if(!abort)t.hide();return false;}})(hdrclear,that);var im=document.createElement('img');im.src=CE.STRTAB.lookup('imgbase')+(smallClose?'close-12px.png':'corner-close-26px.png');im.alt=CE.STRTAB.lookup('ceu.close');hdrclear.appendChild(im);im=null;hdrdiv.appendChild(hdrclear);}
hdrmsg=document.createElement('span');hdrdiv.appendChild(hdrmsg);dlginner.appendChild(hdrdiv);el=document.createElement('div');el.className='CEUDialog_msg';msgscroll=el;msgdiv=document.createElement('div');el.appendChild(msgdiv);dlginner.appendChild(el);el=null;btndiv=document.createElement('div');btndiv.className='CEUDialog_btn hidden';btnafter=document.createElement('div');btnafter.className='afterclear';btndiv.appendChild(btnafter);dlginner.appendChild(btndiv);this.onhide=null;this.addButton=function(bname,blabel,bcallback,extracls){if(blabel==undefined)blabel=bname;var bel=document.createElement('a');bel.className='ceredbut'+(extracls?' '+extracls:'');if(bname=='ok'||bname=='yes')
CE.aCN(bel,'cerightfloat');bel.href='#';var bspan=document.createElement('span');bel.appendChild(bspan);var btxt=document.createTextNode(blabel);bspan.appendChild(btxt);var b={name:bname,label:blabel,callback:bcallback,element:bel};buttons.push(b);bel.onclick=function(){onButtonClick(b);return false;};if(btnafter){btndiv.insertBefore(bel,btnafter);}else{btndiv.appendChild(bel);}
CE.rCN(btndiv,'hidden');}
this.removeButton=function(bname){for(i=0;i<buttons.length;i++){if(buttons[i]['name']==bname){if(btndiv)btndiv.removeChild(buttons[i].element);buttons.splice(i,1);break;}}}
this.getButton=function(bname){for(i=0;i<buttons.length;i++){if(buttons[i]['name']==bname){return buttons[i].element;}}
return null;};if(typeof(buttonlist)=='string'){this.addButton(buttonlist);}else if(buttonlist){for(i=0;i<buttonlist.length;i++){if(typeof(buttonlist[i])=='object'){this.addButton(buttonlist[i].name,buttonlist[i].label,buttonlist[i].callback,buttonlist[i].cls);}else{this.addButton(buttonlist[i]);}}}
this.setHeader=function(header){if(header){hdrmsg.innerHTML=header;}else{hdrmsg.innerHTML='';CE.aCN(hdrdiv,'squashed');}}
this.setHeader(header);this.setMessage=function(message){CE.rac(msgdiv);if(typeof(message)=='string'){msgdiv.appendChild(document.createTextNode(message));}else if(message){msgdiv.appendChild(message);}}
this.setMessage(message);this.isShowing=function(){return shown;}
this.center=function(){dlgdiv.style.left=Math.floor(hidediv.offsetWidth/2-dlgdiv.offsetWidth/2)+'px';dlgdiv.style.top=Math.floor(hidediv.offsetHeight/2-dlgdiv.offsetHeight/2)+'px';};this.show=function(persistOnHide){noDestroyOnHide=persistOnHide;if(!shown){shown=true;hidediv.style.visibility='hidden';dlghldr.style.visibility='hidden';document.body.appendChild(hidediv);document.body.appendChild(dlghldr);if((dlgdiv.offsetHeight+24)>hidediv.offsetHeight){var diff=(dlgdiv.offsetHeight+24)-hidediv.offsetHeight;msgscroll.style.maxHeight=(msgscroll.offsetHeight-diff)+'px';msgscroll.style.overflow='auto';}
that.center();hidediv.style.visibility='visible';dlghldr.style.visibility='visible';if(nonModal){CE.aCN(hidediv,'hidden');}else{}
if(typeof(focushelper)=='function'){focushelper();}else{if(hdrclear){hdrclear.focus();hdrclear.blur();}}}
return dlgdiv;}
this.hide=function(){if(shown){if(that.onhide){if(typeof that.onhide=='function'){that.onhide(that);}}
document.body.removeChild(dlghldr);document.body.removeChild(hidediv);if(parent&&parent.document&&parent.document.body&&document!=parent.document){}
shown=false;}
if(!noDestroyOnHide){that.destroy();}}
this.destroy=function(){if(shown)
this.hide();if(buttons){for(i=0;i<buttons.length;i++){buttons[i].element.onclick=null;buttons[i].element=null;}}
CE.rac(msgdiv,true);focushelper=null;buttons=null;btndiv=null;msgdiv=null;hdrmsg=null;hdrdiv=null;dlgdiv=null;dlghldr=null;hidediv=null;}};CE.CEU.Joiner=function(count){var that=this;var cbAllJoined;this.count=count||0;this.finish=function(cb){if(that.count==0&&cb){cb();}else{cbAllJoined=cb;}};this.join=function(){--that.count;if(that.count==0&&cbAllJoined){cbAllJoined();}};};var dateFormat=function(){var token=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,timezone=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,timezoneClip=/[^-+\dA-Z]/g,pad=function(val,len){val=String(val);len=len||2;while(val.length<len)val="0"+val;return val;};return function(date,mask,utc){var dF=dateFormat;if(arguments.length==1&&Object.prototype.toString.call(date)=="[object String]"&&!/\d/.test(date)){mask=date;date=undefined;}
date=date?new Date(date):new Date;if(isNaN(date))
throw SyntaxError("invalid date");mask=String(dF.masks[mask]||mask||dF.masks["default"]);if(mask.slice(0,4)=="UTC:"){mask=mask.slice(4);utc=true;}
var _=utc?"getUTC":"get",d=date[_+"Date"](),D=date[_+"Day"](),m=date[_+"Month"](),y=date[_+"FullYear"](),H=date[_+"Hours"](),M=date[_+"Minutes"](),s=date[_+"Seconds"](),L=date[_+"Milliseconds"](),o=utc?0:date.getTimezoneOffset(),flags={d:d,dd:pad(d),ddd:CE.STRTAB.lookup('ceu.day'+D),dddd:CE.STRTAB.lookup('ceu.dayfull'+D),m:m+1,mm:pad(m+1),mmm:CE.STRTAB.lookup('ceu.month'+m),mmmm:CE.STRTAB.lookup('ceu.monthfull'+m),yy:String(y).slice(2),yyyy:y,h:H%12||12,hh:pad(H%12||12),H:H,HH:pad(H),M:M,MM:pad(M),s:s,ss:pad(s),l:pad(L,3),L:pad(L>99?Math.round(L/10):L),t:H<12?"a":"p",tt:H<12?"am":"pm",T:H<12?"A":"P",TT:H<12?"AM":"PM",Z:utc?"UTC":(String(date).match(timezone)||[""]).pop().replace(timezoneClip,""),o:(o>0?"-":"+")+pad(Math.floor(Math.abs(o)/60)*100+Math.abs(o)%60,4),S:["th","st","nd","rd"][d%10>3?0:(d%100-d%10!=10)*d%10]};return mask.replace(token,function($0){return $0 in flags?flags[$0]:$0.slice(1,$0.length-1);});};}();dateFormat.masks={"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"};Date.prototype.format=function(mask,utc){return dateFormat(this,mask,utc);};if(!Array.prototype.indexOf){Array.prototype.indexOf=function(elt){var len=this.length>>>0;var from=Number(arguments[1])||0;from=(from<0)?Math.ceil(from):Math.floor(from);if(from<0)
from+=len;for(;from<len;from++){if(from in this&&this[from]===elt)
return from;}
return-1;};}
var hexcase=0;var b64pad="";function hex_md5(s){return rstr2hex(rstr_md5(str2rstr_utf8(s)));}
function b64_md5(s){return rstr2b64(rstr_md5(str2rstr_utf8(s)));}
function any_md5(s,e){return rstr2any(rstr_md5(str2rstr_utf8(s)),e);}
function hex_hmac_md5(k,d)
{return rstr2hex(rstr_hmac_md5(str2rstr_utf8(k),str2rstr_utf8(d)));}
function b64_hmac_md5(k,d)
{return rstr2b64(rstr_hmac_md5(str2rstr_utf8(k),str2rstr_utf8(d)));}
function any_hmac_md5(k,d,e)
{return rstr2any(rstr_hmac_md5(str2rstr_utf8(k),str2rstr_utf8(d)),e);}
function md5_vm_test()
{return hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72";}
function rstr_md5(s)
{return binl2rstr(binl_md5(rstr2binl(s),s.length*8));}
function rstr_hmac_md5(key,data)
{var bkey=rstr2binl(key);if(bkey.length>16)bkey=binl_md5(bkey,key.length*8);var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++)
{ipad[i]=bkey[i]^0x36363636;opad[i]=bkey[i]^0x5C5C5C5C;}
var hash=binl_md5(ipad.concat(rstr2binl(data)),512+data.length*8);return binl2rstr(binl_md5(opad.concat(hash),512+128));}
function rstr2hex(input)
{try{hexcase}catch(e){hexcase=0;}
var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var output="";var x;for(var i=0;i<input.length;i++)
{x=input.charCodeAt(i);output+=hex_tab.charAt((x>>>4)&0x0F)
+hex_tab.charAt(x&0x0F);}
return output;}
function rstr2b64(input)
{try{b64pad}catch(e){b64pad='';}
var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var output="";var len=input.length;for(var i=0;i<len;i+=3)
{var triplet=(input.charCodeAt(i)<<16)|(i+1<len?input.charCodeAt(i+1)<<8:0)|(i+2<len?input.charCodeAt(i+2):0);for(var j=0;j<4;j++)
{if(i*8+j*6>input.length*8)output+=b64pad;else output+=tab.charAt((triplet>>>6*(3-j))&0x3F);}}
return output;}
function rstr2any(input,encoding)
{var divisor=encoding.length;var i,j,q,x,quotient;var dividend=Array(Math.ceil(input.length/2));for(i=0;i<dividend.length;i++)
{dividend[i]=(input.charCodeAt(i*2)<<8)|input.charCodeAt(i*2+1);}
var full_length=Math.ceil(input.length*8/(Math.log(encoding.length)/Math.log(2)));var remainders=Array(full_length);for(j=0;j<full_length;j++)
{quotient=Array();x=0;for(i=0;i<dividend.length;i++)
{x=(x<<16)+dividend[i];q=Math.floor(x/divisor);x-=q*divisor;if(quotient.length>0||q>0)
quotient[quotient.length]=q;}
remainders[j]=x;dividend=quotient;}
var output="";for(i=remainders.length-1;i>=0;i--)
output+=encoding.charAt(remainders[i]);return output;}
function str2rstr_utf8(input)
{var output="";var i=-1;var x,y;while(++i<input.length)
{x=input.charCodeAt(i);y=i+1<input.length?input.charCodeAt(i+1):0;if(0xD800<=x&&x<=0xDBFF&&0xDC00<=y&&y<=0xDFFF)
{x=0x10000+((x&0x03FF)<<10)+(y&0x03FF);i++;}
if(x<=0x7F)
output+=String.fromCharCode(x);else if(x<=0x7FF)
output+=String.fromCharCode(0xC0|((x>>>6)&0x1F),0x80|(x&0x3F));else if(x<=0xFFFF)
output+=String.fromCharCode(0xE0|((x>>>12)&0x0F),0x80|((x>>>6)&0x3F),0x80|(x&0x3F));else if(x<=0x1FFFFF)
output+=String.fromCharCode(0xF0|((x>>>18)&0x07),0x80|((x>>>12)&0x3F),0x80|((x>>>6)&0x3F),0x80|(x&0x3F));}
return output;}
function str2rstr_utf16le(input)
{var output="";for(var i=0;i<input.length;i++)
output+=String.fromCharCode(input.charCodeAt(i)&0xFF,(input.charCodeAt(i)>>>8)&0xFF);return output;}
function str2rstr_utf16be(input)
{var output="";for(var i=0;i<input.length;i++)
output+=String.fromCharCode((input.charCodeAt(i)>>>8)&0xFF,input.charCodeAt(i)&0xFF);return output;}
function rstr2binl(input)
{var output=Array(input.length>>2);for(var i=0;i<output.length;i++)
output[i]=0;for(var i=0;i<input.length*8;i+=8)
output[i>>5]|=(input.charCodeAt(i/8)&0xFF)<<(i%32);return output;}
function binl2rstr(input)
{var output="";for(var i=0;i<input.length*32;i+=8)
output+=String.fromCharCode((input[i>>5]>>>(i%32))&0xFF);return output;}
function binl_md5(x,len)
{x[len>>5]|=0x80<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i<x.length;i+=16)
{var olda=a;var oldb=b;var oldc=c;var oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936);d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);b=md5_ff(b,c,d,a,x[i+15],22,1236535329);a=md5_gg(a,b,c,d,x[i+1],5,-165796510);d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);b=md5_gg(b,c,d,a,x[i+12],20,-1926607734);a=md5_hh(a,b,c,d,x[i+5],4,-378558);d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);b=md5_hh(b,c,d,a,x[i+2],23,-995338651);a=md5_ii(a,b,c,d,x[i+0],6,-198630844);d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);b=md5_ii(b,c,d,a,x[i+9],21,-343485551);a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd);}
return Array(a,b,c,d);}
function md5_cmn(q,a,b,x,s,t)
{return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b);}
function md5_ff(a,b,c,d,x,s,t)
{return md5_cmn((b&c)|((~b)&d),a,b,x,s,t);}
function md5_gg(a,b,c,d,x,s,t)
{return md5_cmn((b&d)|(c&(~d)),a,b,x,s,t);}
function md5_hh(a,b,c,d,x,s,t)
{return md5_cmn(b^c^d,a,b,x,s,t);}
function md5_ii(a,b,c,d,x,s,t)
{return md5_cmn(c^(b|(~d)),a,b,x,s,t);}
function safe_add(x,y)
{var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF);}
function bit_rol(num,cnt)
{return(num<<cnt)|(num>>>(32-cnt));}
function isWhitespaceChar(a)
{var charCode;charCode=a.charCodeAt(0);if(charCode<=32)
{return true;}
else
{return false;}}
function isDigitChar(a)
{var charCode;charCode=a.charCodeAt(0);if(charCode>=48&&charCode<=57)
{return true;}
else
{return false;}}
function compareRight(a,b)
{var bias=0;var ia=0;var ib=0;var ca;var cb;for(;;ia++,ib++){ca=(ia<a.length)?a.charAt(ia):' ';cb=(ib<b.length)?b.charAt(ib):' ';if(!isDigitChar(ca)&&!isDigitChar(cb)){return bias;}else if(!isDigitChar(ca)){return-1;}else if(!isDigitChar(cb)){return+1;}else if(ca<cb){if(bias==0){bias=-1;}}else if(ca>cb){if(bias==0)
bias=+1;}}}
function natcompare(a,b){var ia=0,ib=0;var nza=0,nzb=0;var ca,cb;var result;while(true)
{nza=nzb=0;ca=a.charAt(ia);cb=b.charAt(ib);while(isWhitespaceChar(ca)||ca=='0'){if(ca=='0'){nza++;}else{nza=0;}
ca=a.charAt(++ia);}
while(isWhitespaceChar(cb)||cb=='0'){if(cb=='0'){nzb++;}else{nzb=0;}
cb=b.charAt(++ib);}
if(isDigitChar(ca)&&isDigitChar(cb)){if((result=compareRight(a.substring(ia),b.substring(ib)))!=0){return result;}}
if(ca==0&&cb==0){return nza-nzb;}
if(ca<cb){return-1;}else if(ca>cb){return+1;}
++ia;++ib;}}
function createCSSClass(selector,style)
{if(!document.styleSheets)return;if(document.getElementsByTagName("head").length==0)return;var stylesheet;var mediaType;if(document.styleSheets.length>0)
{for(i=0;i<document.styleSheets.length;i++)
{if(document.styleSheets[i].disabled)continue;var media=document.styleSheets[i].media;mediaType=typeof media;if(mediaType=="string")
{if(media==""||media.indexOf("screen")!=-1)
{styleSheet=document.styleSheets[i];}}
else if(mediaType=="object")
{if(media.mediaText==""||media.mediaText.indexOf("screen")!=-1)
{styleSheet=document.styleSheets[i];}}
if(typeof styleSheet!="undefined")break;}}
if(typeof styleSheet=="undefined")
{var styleSheetElement=document.createElement("style");styleSheetElement.type="text/css";document.getElementsByTagName("head")[0].appendChild(styleSheetElement);for(i=0;i<document.styleSheets.length;i++)
{if(document.styleSheets[i].disabled)continue;styleSheet=document.styleSheets[i];}
var media=styleSheet.media;mediaType=typeof media;}
if(mediaType=="string")
{for(i=0;i<styleSheet.rules.length;i++)
{if(styleSheet.rules[i].selectorText.toLowerCase()==selector.toLowerCase())
{styleSheet.rules[i].style.cssText=style;return;}}
styleSheet.addRule(selector,(style!='')?style:'IE_FAKE:none');}
else if(mediaType=="object")
{for(i=0;i<styleSheet.cssRules.length;i++)
{if(styleSheet.cssRules[i].selectorText&&styleSheet.cssRules[i].selectorText.toLowerCase()==selector.toLowerCase())
{styleSheet.cssRules[i].style.cssText=style;return;}}
styleSheet.insertRule(selector+"{"+style+"}",styleSheet.cssRules.length);}}
function thumbnailer(elem,img,sx,sy,lobes,cbDone){this.cbDone=cbDone;this.canvas=elem;elem.width=img.width;elem.height=img.height;this.ctx=elem.getContext("2d");this.ctx.drawImage(img,0,0);this.img=img;this.src=this.ctx.getImageData(0,0,img.width,img.height);this.dest={width:sx,height:sy};this.dest.data=new Array(this.dest.width*this.dest.height*3);this.lanczos=this.lanczosCreate(lobes);this.ratio=img.width/sx;this.rcp_ratio=2/this.ratio;this.range2=Math.ceil(this.ratio*lobes/2);this.cacheLanc={};this.center={};this.icenter={};setTimeout(this.process1,0,this,0);}
thumbnailer.prototype.lanczosCreate=function(lobes){return function(x){if(x>lobes)
return 0;x*=Math.PI;if(Math.abs(x)<1e-16)
return 1
var xx=x/lobes;return Math.sin(x)*Math.sin(xx)/x/xx;}}
thumbnailer.prototype.process1=function(self,u){self.center.x=(u+0.5)*self.ratio;self.icenter.x=Math.floor(self.center.x);for(var v=0;v<self.dest.height;v++){self.center.y=(v+0.5)*self.ratio;self.icenter.y=Math.floor(self.center.y);var a,r,g,b;a=r=g=b=0;for(var i=self.icenter.x-self.range2;i<=self.icenter.x+self.range2;i++){if(i<0||i>=self.src.width)
continue;var f_x=Math.floor(1000*Math.abs(i-self.center.x));if(!self.cacheLanc[f_x])
self.cacheLanc[f_x]={};for(var j=self.icenter.y-self.range2;j<=self.icenter.y+self.range2;j++){if(j<0||j>=self.src.height)
continue;var f_y=Math.floor(1000*Math.abs(j-self.center.y));if(self.cacheLanc[f_x][f_y]==undefined)
self.cacheLanc[f_x][f_y]=self.lanczos(Math.sqrt(Math.pow(f_x*self.rcp_ratio,2)+Math.pow(f_y*self.rcp_ratio,2))/1000);weight=self.cacheLanc[f_x][f_y];if(weight>0){var idx=(j*self.src.width+i)*4;a+=weight;r+=weight*self.src.data[idx];g+=weight*self.src.data[idx+1];b+=weight*self.src.data[idx+2];}}}
var idx=(v*self.dest.width+u)*3;self.dest.data[idx]=r/a;self.dest.data[idx+1]=g/a;self.dest.data[idx+2]=b/a;}
if(++u<self.dest.width)
self.process1(self,u);else
self.process2(self);};thumbnailer.prototype.process2=function(self){self.canvas.width=self.dest.width;self.canvas.height=self.dest.height;self.ctx.drawImage(self.img,0,0);self.src=self.ctx.getImageData(0,0,self.dest.width,self.dest.height);var idx,idx2;for(var i=0;i<self.dest.width;i++){for(var j=0;j<self.dest.height;j++){idx=(j*self.dest.width+i)*3;idx2=(j*self.dest.width+i)*4;self.src.data[idx2]=self.dest.data[idx];self.src.data[idx2+1]=self.dest.data[idx+1];self.src.data[idx2+2]=self.dest.data[idx+2];}}
self.ctx.putImageData(self.src,0,0);if(self.cbDone)
self.cbDone();}
