// ==UserScript==
// @name		DeviantART Toolbox
// @namespace	http://aeonoftime.deviantart.com
// @description	The swiss army knife for DeviantART which bundles a number of useful utilities for everyday DA tasks, from a comprehensive navigation system to an integrated user tracking system and print management utilities.
// @include		http://*.deviantart.*
// @exclude		http://shout.deviantart.com/*
// @exclude		http://*.deviantart.com/friends/*
// ==/UserScript==

// Homepage..: http://sebastian.mordziol.com/deviantToolbox
// Version...: 1.0beta2, released 08.09.2006
// Author....: Sebastian Mordziol aka AeonOfTime
// Link......: http://aeonoftime.deviantart.com

var dto={'version':'1.0beta2','releaseDate':'08.09.2006','data':{},'prefix':'dto_','open':false,'openBtn':'<img src="http://i.deviantart.com/icons/favicon.png" style="float:left;"/>','closeBtn':'<img src="http://i.deviantart.com/icons/favicon.png" style="float:left;"/>','sections':['devs','user','prints','admin','tools','da'],'offset':[5,5],'baseZIndex':1000000,'tm':'Full','displayEl':null,'deviant':false,'deviation':false,'userToEdit':false,'listModes':['Full','Slim','UltraSlim','AvatarsOnly'],'screens':{'Options':{'id':'Options','created':false,'width':400,'priority':200,'element':null,'needsRefresh':true,'buttons':[['applyOptions','dto.applyOptions();dto.cs(\'TrackUser\');'],['btnCancel','dto.cs(\'Options\');']]},'About':{'id':'About','created':false,'width':330,'priority':100,'element':null,'needsRefresh':false},'CalcAspect':{'id':'CalcAspect','created':false,'width':330,'priority':0,'element':null,'needsRefresh':false,'buttons':[['btnCalcAspect','dto.calcAspect();']]},'StyleEditor':{'id':'StyleEditor','created':false,'width':450,'priority':0,'element':null,'needsRefresh':false},'TrackUser':{'id':'TrackUser','created':false,'width':450,'priority':50,'element':null,'needsRefresh':true,'buttons':[['btnTrack','dto.userTracker.saveUser();dto.cs(\'TrackUser\');'],['btnCancel','dto.cs(\'TrackUser\');']]},'TrackedList':{'id':'TrackedList','created':false,'width':500,'priority':0,'element':null,'needsRefresh':true,'init':function(){dto.trackedListDetails(GM_getValue('tm', dto.tm));}},},'bulletImage':'http://e.deviantart.com/emoticons/p/pointr.gif','dp':['http://comments.deviantart.com/emoticons','http://ads.deviantart.com','http://pagead2.googlesyndication'],'o':{'persistState':'yes','layout':'vertical','skin':'silver','displaySections':'devs,user,prints,admin,tools,da','displayWelcome':'yes','displayVanity':'yes','displayTitleText':'yes','enablePricingEnhancement':'yes','maxLinkLabelLength':40},'colorParts':['frame','frameText','borders','content','contentText','button','cbt','cba','cbx','footer','footerText','link','la','deleteText','screen'],'colors':{'daClassic':{'frame':'#88938d','frameText':'#dedede','borders':'#4a584a','content':'#bbc2bb','contentText':'#000','listHighlights':'#cad2ca','button':'#d6dbd6','cbt':'#000','cba':'#000','cbx':'#fff','footer':'#5e6a63','footerText':'#aaa','link':'#333','la':'#fff','deleteText':'#cc0000','screen':'#bbc2bb','message':'#faf29b','ff':'verdana'},'aeoncyan':{'frame':'#7dafbb','frameText':'#edfcff','borders':'#446770','content':'#c1dee4','contentText':'#000000','listHighlights':'#d8f0f5','button':'#e6f6fb','cbt':'#000000','cba':'#000000','cbx':'#ffffff','footer':'#a5cbd4','footerText':'#54808b','link':'#0285a0','la':'#ffffff','deleteText':'#cc0000','screen':'#c1dee4','message':'#faf29b','ff':'verdana'},'grey':{'frame':'#b7bfc4','frameText':'#ffffff','borders':'#444444','content':'#ffffff','contentText':'#000000','listHighlights':'#f3f6f7','button':'#ffffff','cbt':'#000000','cba':'#000000','cbx':'#ffffff','footer':'#dfe6ea','footerText':'#81898d','link':'#666666','la':'#000000','deleteText':'#cc0000','screen':'#ebedee','message':'#faf29b','ff':'verdana'},'silver':{'frame':'#b7bfc4','frameText':'#444444','borders':'#444444','content':'#ffffff','contentText':'#000000','listHighlights':'#f3f6f7','button':'#ffffff','cbt':'#000000','cba':'#000000','cbx':'#ffffff','footer':'#dfe6ea','footerText':'#666666','link':'#666666','la':'#000000','deleteText':'#cc0000','screen':'#ebedee','message':'#faf29b','ff':'verdana','ifb':'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAyCAMAAACqJUG4AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAA2UExURfz9/dPY2/Dy88DHy7jAxf///+Xo6u3v8Pn6+szS1cbM0PX297e/xOvt7rzDyL3EyeDj5dre4BJ1xroAAAAsSURBVHjapMdBAoAQAACwKVRE/P+z/KHdJrkEn1fUnYpnfxqy5lDdfloCDAAxLACbcRNKJgAAAABJRU5ErkJggg==','iob':'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAyCAMAAACqJUG4AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABUUExURbvDx/////z8/fHy88jO0uDj5urt7v7+//T19v7+/tjc37rCx7/Gy+nr7cbN0c7U1/r7++Dk5tfc3uTn6Pf4+cHIzLe/xPb3+O7w8dDV2Pj5+ufq6xvbKQkAAAA+SURBVHjajMvHDcAwAMPAc3rvPfvvGY8Q8UMQkCBzaHUGo8Wsl9okQqRUR5s8TlXsl8JrlWvc8bn7sU+AAQBkAwGGZ9s8+wAAAABJRU5ErkJggg==','ica':'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFTSURBVHjaYnRxcWEAAmcgjgZieQbc4BUQbwLi5SAOCxC7+vv793t5eUkrKSkJ4NL1/v37Hxs3bjScM2cOGycn50IGoI1L79279+E/GgCKowv9f/ny5VcnJ6fVQHNEmYCEhJi4BP/Xb98ZYNjV1RVsC4hGFmdmYWVjZGTkgmlkeP/xExwH+PuBNc1ftARMg/gwuQ+fPsNczgzyI8Prt+/hfunqnwymE+Ni4GyY/K9fv+DqwDa+/fARBZcV5oIlQTSy+LuPH1E1/vv7F447G2vAEqU1jWAaxEeWhwGQU9/8//Prs6iYOC9YYd8kuCQyGwQ+fvjwGxi432AaF1w6f1bb0clZWl5eHmc8vnv39vuJKxcfffz48QiQ+5cRaAKDtbW1PxsbWxALC4sMLo1///598+XLl5OnT5/eB+Q+BWsEAWD8CILiB4i58CS7nyDLQWkBIMAAP3XZlTDTHbMAAAAASUVORK5CYII=','iea':'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFVSURBVHjaYnRxcWEAAmcgjgZieQbc4BUQbwLi5SAOCxC7+vv793t5eUkrKSkJ4NL1/v37Hxs3bjScM2cOGycn50IGoI1L79279+E/EeDly5dfnZycVgPNEWUCEhJi4hL8X799ZwBhV1dXMEZngzAzCysbIyMjF0wjw/uPn+B4/qIlYKcF+PuBaRAfJvfh02eYy5nBGl+/fY+Cu/ong2VBNLL4m3cf4H4GBQ7D2w8f4QKdjTVgury+haGsMBfOBoHfv3/B1YFt/Pf3LxyX1jSiGADiI8sja3zz/8+vzyJCggww3Nk3CaIZSCOLc7Gz/wYG7jeYUxdcOn9W29HJWVpeXh4ej8tWrEKJx3fv3n4/ceXio48fPx4Bcv8yAk1gsLa29mdjYwtiYWGRwZUA/v79++bLly8nT58+vQ/IfQrWCALA+BEExQ8Qc+FJdj9BloPSAkCAAQCxydq0YyMmrAAAAABJRU5ErkJggg==','im':'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEbSURBVHjaYmQAAhcXF2cgFQ3E8gy4wSsg3rRnz57lQPUMLEDC1d/fv9/Ly0taSUlJAJeu9+/f/9i4caPh9+/f2YDchSDblt67d+/DfyLAy5cvvzo5Oa0GahRlARISYuIS/F+/fWcgBJhZWNkYGRm5YBoZ3n/8xEAM+PnzJ8IMEPn67Xu4ZFlhLoaGrv7JYPrXr19wMbDGtx8+wgXK61swNMLkf/9G0/jv71+inIqsDqTxzf8/vz6LionzEtL48cOH38DA/QbTuODS+bPajk7O0vLy8jjj8d27t99PXLn46OPHj0eA3L+MIEErKyt/Nja2IBYWFhlcGv/+/fvmy5cvJ0+fPr0PyH3KiCQnCIofIObCFyMgy0FpASDAABKClJloEo2YAAAAAElFTkSuQmCC','ip':'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE5SURBVHjaYnRxcWEAAmcgjgZieQbc4BUQbwLi5SAOCxC7+vv793t5eUkrKSkJ4NL1/v37Hxs3bjScM2cOGycn50IGoI1L79279+E/EeDly5dfnZycVgPNEWUCEhJi4hL8X799Z0DGrq6uDOhizCysbIyMjFwgjSxgZ3z8hN15aOI/f/6EMZnBGl+/fQ+XLCvMhbMT42LAdFf/ZDD969cvuBxY49sPH+EC5fUtYLqzsQbOhsn//o2m8d/fv1idii6OzAdpfPP/z6/PomLivMiKOvsmYRj08cOH38DA/QbTuODS+bPajk7O0vLy8jjj8d27t99PXLn46OPHj0eA3L+MQBMYrK2t/dnY2IJYWFhkcGn8+/fvmy9fvpw8ffr0PiD3KVgjCADjRxAUP0DMhSfZgeLjHSgtAAQYAHxStmD74nl4AAAAAElFTkSuQmCC','ib':'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAYAAACprHcmAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAACpSURBVHjaYmQAAhcXl70MeMDu3budGWAK58+ff+M/DgCSA6kBMiGK/xMAUJsNmECmf/32HY5BwNXVFUMMBMCK33/8BMdPnr8EuZEhwN8PLgYDLCDi9dv3KB6SkRRnwCYOVvz2w0e4gIuNOdgZ5fUtKOJwxf/+/oUL7Dp4jKG0phFFDEXxuZPHbrp5eqtjC+Nd27fehLEZiYmUPXv2FMMVQ4EBA35wASDAAHAKlR6KYN74AAAAAElFTkSuQmCC','id':'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGlSURBVHjadFJNSwJRFD2aaAU2Y2REmgYRiLOQNglFtIh2QiAUNELlSgj6Cy36AyFRawuyVS4i2hUEbcJNHyKEtDA06MOPURyVJuu+V4qbuXC595xzD+8+3jOAYhNYoBKidEM/3inPDoATBkxkWpwPh3dnVlcdDq9X1HNVPz4a17HYlBKNmo+BQxNxG7OhkHPU4xGK5TKes1k+aBMElBSF9xNuNwbt9t5ZWR47j0YDRF0w44hotQpqPo/XXA7TwSAf3pJl7MXjvH9MJNDrdMJQr5uNQD9RdiMTyqkUTyOZ9yMRPtw2Mcx4pivpdHvzHnYiCslk5y7uahVrPh+O7u95XZEkfJOhQJqmaZ05bizd3XFQISFJ9zzKZDhm5u3JSfyIIgZMJmitVsfIV201GjyVWg07/6bl4WFeGWZ8e6b7xE/j+HhVFARrT7OJeCDAhfW5uU7vopUFiwU1Vf1qPTyobWMsq6rSkN/vkFwuUdJ5x0qxWH+6vHyhX3BD8NvASBlY6gOCFsCp9wG+aLMicHsKXBHMG7o0G3sf/L2TXjQpyY+3XwEGACgwoKws4ATJAAAAAElFTkSuQmCC','ie':'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEaSURBVHjaYnRxcWEAAmcgjgZieQbc4BUQb9qzZ89yEIcFiF39/f37vby8pJWUlARw6Xr//v2PjRs3Gn7//p3t6NGjCxmANi69d+/eh/9EgJcvX351cnJaDTRHFGSjhJi4BP/Xb98ZCAFmFlY2RkZGLphGhvcfPzEQA37+/IkwA0S+fvueKI2/fv2Cs5lAxNsPH8G4rDAXL/vdx49wjWAb//39CxfAx0bmgzS++f/n12dRMXHezr5JcAls7I8fPvwGBu43mMYFl86f1XZ0cpaWl5fHGY/v3r39fuLKxUcfP348AuT+ZQQJWllZ+bOxsQWxsLDI4NL49+/fN1++fDl5+vTpfUDuU0YkOUFQ/AAxF74YAVkOxC8BAgwAHtatnL+ejwAAAAAASUVORK5CYII='}},'userTracker':{'users':[],'tbx':null,load:function(tbx){this.tbx=tbx;var stored=GM_getValue('Users','');var lines=stored.split('%u%');for(var i=0; i < lines.length; i++){var line=lines[i].split('%p%');if(line[0]==''){continue;}var user=this.createUser(line[0], line[1], line[2], line[3]);this.users.push(user);}},getCategories:function(){var temp={};var cats=[];for(var i=0; i < this.users.length; i++){var cat=this.users[i].category;if(!temp[cat]){temp[cat]=true;cats.push(cat);}}return cats;},getUser:function(name){for(var i=0; i < this.users.length; i++){if(this.users[i].name==name){return this.users[i];}}return false;},saveUser:function(){var name=this.tbx.g('TrackingName').value;var avatar=this.tbx.g('TrackingAvatar').value;var category=this.tbx.g('TrackingCategory').value;var notes=this.tbx.g('TrackingNotes').value;if(this.getUser(name)){var user=this.getUser(name);user.avatar=avatar;user.notes=notes;user.category=category;this.storeUsers();return true;}var user=this.createUser(name, avatar, category, notes);this.users.push(user);this.storeUsers();return true;},getUsers:function(){return this.users;},storeUsers:function(){var lines=[];for(var i=0; i < this.users.length; i++){lines.push(this.users[i].toString());}var toStore=lines.join('%u%');GM_setValue('Users', toStore);},createUser:function(name, avatar, category, notes){return {'name':name,'avatar':avatar,'category':category,'notes':notes,toString:function(){var els=[this.name,this.avatar,this.category,this.notes];return els.join('%p%');}};},untrack:function(name){var okToDelete=confirm('Delete user '+name+'?');if(!okToDelete){return;}this.tbx.g('TrackingRow'+name).style.display='none';var newUsers=[];for(var i=0; i < this.users.length; i++){if(this.users[i].name != name){newUsers.push(this.users[i]);}}this.users=newUsers;this.storeUsers();}},start:function(){if(!this.allowedHere()){return false;}if(!this.collectData()){return false;}if(!this.createDisplayElement()){return false;}if(GM_getValue('open')==true){this.expand();}this.runEnhancements();this.registerKeys();},collectData:function(){this.userTracker.load(this);if(!document.getElementById('deviantART-v5')){var metas=document.getElementsByTagName('meta');var loggedIn=false;for(var idx in metas){if(!metas[idx].getAttribute || metas[idx].getAttribute('name') != 'deviantMETA'){continue;}eval('this.data='+metas[idx].getAttribute('content'));loggedIn=true;}this.data.loggedIn=loggedIn;} else {this.data=unsafeWindow.deviantART.deviant;}if(!GM_getValue('defaultsSet', false)){this.revertToDefaults();} else {for(var option in this.o){if(GM_getValue(option)=='undefined'){GM_setValue(option, this.o[option]);}}}if(GM_getValue('persistState')=='yes'){this.open=GM_getValue('open', false);}if(GM_getValue('displayTitleText')=='yes'){this.openBtn += '&#160;'+this.s('openToolbox');this.closeBtn += '&#160;'+this.s('closeToolbox');if(this.hc('ip') && this.hc('im')){this.openBtn += '&#160;<img src="'+this.gc('ip')+'" align="absmiddle"/>';this.closeBtn += '&#160;<img src="'+this.gc('im')+'" align="absmiddle"/>';} else {this.openBtn += '&#160;<span style="font:bold 11px monospace;">[+]</span>';this.closeBtn += '&#160;<span style="font:bold 11px monospace;">[-]</span>';}}if(this.hc('ib')){this.bulletImage=this.gc('ib');}this.detectUser();return true;},detectUser:function(){var nodes=document.evaluate("//a[@class='u']", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);if(nodes.snapshotLength < 1){return false;}var linkNode=false;for(var i=0; i < nodes.snapshotLength; i++){var node=nodes.snapshotItem(i);if(node.firstChild && node.firstChild.nextSibling && node.firstChild.nextSibling.nodeName=='IMG'){linkNode=nodes.snapshotItem(i);break;}}if(!linkNode){return false;}var userName=linkNode.firstChild.data;var userAvatar=linkNode.firstChild.nextSibling.getAttribute('src');if(userName==this.data.username){return true;}this.deviant={'name':userName,'avatar':userAvatar};return true;},registerKeys:function(){document.addEventListener('keydown',function(event){dto.checkKey(event)},true);},checkKey:function(event){if(!event.ctrlKey || !event.altKey){return;}switch(event.keyCode){case 84:this.toggleScreen('TrackedList');break;case 79:this.toggleScreen('Options');break;case 65:this.toggleScreen('CalcAspect');break;case 88:this.toggle();break;case 85:this.toggleScreen('TrackUser');break;}},createDisplayElement:function(){var el=document.createElement('div');document.getElementsByTagName('body')[0].appendChild(el);el.style.position='fixed';el.style.top=this.offset[0]+'px';el.style.right=this.offset[1]+'px';el.style.border='solid 1px '+this.gc('borders');el.style.borderRightWidth='2px';el.style.borderBottomWidth='1px';el.style.backgroundColor=this.gc('frame');el.style.zIndex=this.baseZIndex+1;el.id=this.m('Element');var contentID=this.m('Content');if(this.hc('ifb')){el.style.backgroundRepeat='repeat-x';el.style.backgroundImage='url("'+this.gc('ifb')+'")';}var h='<div style="font:normal 11px '+this.gc('ff')+';color:'+this.gc('frameText')+';border-bottom:solid 1px '+this.gc('borders')+';padding:2px 6px;cursor:pointer;text-align:right;height:15px;" onclick="dto.toggle();" id="'+this.m('Toggler')+'">'+this.openBtn+'</div><div id="'+contentID+'" style="display:none;text-align:left;font:normal 11px '+this.gc('ff')+'"><style type="text/css">#'+contentID+' A:link, #'+contentID+' A:visited{text-decoration:none;color:'+this.gc('link')+';}#'+contentID+' A:active, #'+contentID+' A:hover{text-decoration:underline;color:'+this.gc('la')+';}</style><div style="background:'+this.gc('content')+';color:'+this.gc('contentText')+';padding:7px;">'+this.buildShortcutLinks()+this.buildWelcome()+this.bodevs()+this.bouser()+this.boprints()+this.boadmin()+this.botools()+this.boda()+this.bC()+'</div><div id="'+this.m('FrameFooter')+'" style="color:'+this.gc('footerText')+';background:'+this.gc('footer')+';font-size:10px;padding:2px 6px;text-align:center;border-top:solid 1px '+this.gc('borders')+';border-bottom:solid 1px '+this.gc('borders')+'">'+this.buildFooter()+'</div></div>';el.innerHTML=h;this.displayEl=el;if(this.hc('iob')){var el=this.g('FrameFooter');el.style.backgroundRepeat='repeat-x';el.style.backgroundImage='url("'+this.gc('iob')+'")';}return true;},g:function(id){return document.getElementById(this.m(id));},buildShortcutLinks:function(){var h='<div align="right" style="font-size:9px;padding:0 0 2px 0;">';if(this.hc('iea') && this.hc('ica')){h +=this.b('javascript:dto.expandAll();this.blur();','<img src="'+this.gc('iea')+'" style="margin-right:3px;"/>',{'title':this.s('btnExpandAllSections')})+this.b('javascript:dto.collapseAll();this.blur();','<img src="'+this.gc('ica')+'" style="margin-right:3px;"/>',{'title':this.s('btnCollapseAllSections')});} else {h +='['+this.b('javascript:dto.expandAll();this.blur();','++',{'title':this.s('btnExpandAllSections')})+'|'+this.b('javascript:dto.collapseAll();this.blur();','--',{'title':this.s('btnCollapseAllSections')})+']';}h += '</div>';return h;},buildFooter:function(){var h='';if(GM_getValue('displayVanity', this.o.displayVanity)=='yes'){h += 'deviantToolbox v'+this.version+' | ';}h +=this.b('javascript:dto.ds(\'Options\');',this.s('options'),{'style':'color:'+this.gc('footerText')})+' | '+this.b('javascript:dto.ds(\'About\');',this.s('aboutLinkTitle'),{'style':'color:'+this.gc('footerText')});return h;},buildWelcome:function(){var h='';if(!this.data.loggedIn){h += '<div style="padding:0 0 10px 0;"><i>'+this.s('pleaseLogIn')+'</i></div>';} else {if(GM_getValue('displayWelcome', this.o.displayWelcome)=='yes'){h += '<div style="padding:0 0 10px 0;">'+this.s('welcomeUser')+',&#160;';if(typeof(this.data.symbol) != 'undefined'){h += this.data.symbol;}h += this.data.username+'.</div>';}}return h;},bodevs:function(){if(!this.se('devs')){return '';}if(!this.data.loggedIn){return '';}var uBase=this.gu();var h='<div style="'+this.gt()+'">'+this.bl(uBase+'gallery/','devGallery')+this.bl(uBase+'scraps/','devScraps')+this.bl(uBase+'store/','devPrints')+this.bl(uBase+'wallpapers/','devWallpapers')+this.bl(uBase+'dds/','devDDS')+this.bl('http://www.deviantart.com/submit/','devSubmit')+'</div>';return this.buildSection('devs', h);},boda:function(){if(!this.se('da')){return '';}var h='<div style="'+this.gt()+'">'+this.bl('http://www.deviantart.com/random/deviant','daRandomDeviant')+this.bl('http://www.deviantart.com/random/deviation','daRandomDeviation')+this.bl('http://today.deviantart.com/','daToday')+this.bl('http://today.deviantart.com/features/','daTodaysFeaturedDeviations')+this.bl('http://dd.deviantart.com/','daArchivedFeaturedDeviations')+this.bl('http://shout.deviantart.com/popup','daShoutbox', {'onclick':'return popup(\'http://shout.deviantart.com/popup\', \'shoutbox\', 500, 600);'})+'</div>';return this.buildSection('da', h);},bouser:function(){if(!this.se('user')){return '';}if(!this.data.loggedIn){return '';}var uBase=this.gu();var h='<div style="'+this.gt()+'">'+this.bl(uBase, 'userHomepage')+this.bl(uBase+'favourites/','userFavourites')+this.bl('http://my.deviantart.com/messages/','userMessages')+this.bl(uBase+'friends/','userFriends', {'rel':'popup(name:friends,width:400,height:600)'})+this.bl('http://my.deviantart.com/devwatch/','userDevwatch')+this.bl('http://my.deviantart.com/notes/','userNotes')+this.bl(uBase+'journal/','userJournal')+this.bl(uBase+'wishlist/','userWishlist')+this.bl(uBase+'activity/','userActivity')+this.bl(uBase+'stats/gallery/','userGalleryStats')+'</div>';return this.buildSection('user', h);},boprints:function(){if(!this.se('prints')){return '';}if(!this.data.loggedIn){return '';}var h='<div style="'+this.gt()+'">'+this.bl('http://'+this.data.username+'.deviantart.com/store/','printHomepage')+this.bl('http://services.deviantart.com/prints/','printAdmin')+this.bl('http://store.deviantart.com/store/','printStorefront')+this.bl('http://store.deviantart.com/manage/','printProducts')+this.bl('http://store.deviantart.com/stats/','printStats')+this.bl('javascript:dto.ds(\'CalcAspect\');','printAspectCalc', {'onclick':'this.blur();'})+this.bl('http://www.deviantart.com/submit/sell/','printSubmit')+'</div>';return this.buildSection('prints', h);},botools:function(){if(!this.se('tools')){return '';}var h='<div style="'+this.gt()+'">'+this.bl('http://comments.deviantart.com/emoticons','toolsEmoticons', {'onclick':'return popup(\'http://comments.deviantart.com/emoticons\', \'emoticons\', 400, 600);' })+this.bl('javascript:dto.ds(\'CalcAspect\');','printAspectCalc', {'onclick':'this.blur();'})+this.bl('javascript:dto.ds(\'TrackedList\');','userTrackedList', {'onclick':'this.blur();'})+this.getTrackUserLink()+'</div>';return this.buildSection('tools', h);},boadmin:function(){if(!this.se('admin')){return '';}if(!this.data.loggedIn){return '';}var base='http://my.deviantart.com/';var h='<div style="'+this.gt()+'">'+this.bl(base+'account/','adminAccount')+this.bl(base+'journal/','adminJournal')+this.bl(base+'profile/','adminProfile')+this.bl(base+'settings/','adminSettings')+this.bl(base+'wishlist/','adminWishlist')+this.bl(base+'gallery/','adminGallery')+this.bl(base+'deviants/','adminFriends')+this.bl(base+'deviants/','adminDevwatch')+'</div>';return this.buildSection('admin', h);},buildSection:function(id, contentHTML){var display='block';if(GM_getValue('sectionCollapsed_'+id, false)==true){display='none';}var h='<div'+this.gy()+'><div style="font-weight:bold;cursor:pointer;" onclick="dto.toggleSection(\''+id+'\');" id="'+this.m('SectionToggler'+id)+'">'+this.gl(id)+'</div><div id="'+this.m('Section'+id)+'" style="display:'+display+';">'+contentHTML+'</div></div>';return h;},expandAll:function(){var sections=this.getSections();for(var idx in sections){this.expandSection(sections[idx]);}},collapseAll:function(){var sections=this.getSections();for(var idx in sections){this.collapseSection(sections[idx]);}},toggleSection:function(id){var el=this.g('Section'+id);if(GM_getValue('sectionCollapsed_'+id, false)==false){this.collapseSection(id);return true;}this.expandSection(id);return true;},expandSection:function(id){var el=this.g('Section'+id);var te=this.g('SectionToggler'+id);el.style.display='block';GM_setValue('sectionCollapsed_'+id, false);te.innerHTML=this.gl(id);this.repositionScreens();},collapseSection:function(id){var el=this.g('Section'+id);var te=this.g('SectionToggler'+id);el.style.display='none';GM_setValue('sectionCollapsed_'+id, true);te.innerHTML=this.gl(id);this.repositionScreens();},repositionSection:function(id){var el=this.g('Section'+id);},gl:function(id){var h='';var sign='&#45;';var imgName='im';if(GM_getValue('sectionCollapsed_'+id, false)){sign='&#43;';imgName='ip';}if(this.hc(imgName)){h='<img src="'+this.gc(imgName)+'" title="'+this.s('section_'+id)+'" align="absmiddle"/> ';} else {h='<span style="font:normal 11px monospace;" title="'+this.s('section_'+id)+'">['+sign+']</span> ';}if(GM_getValue('layout')=='vertical' || sign=='-'){h += '<span onmouseover="this.style.color=\''+this.gc('la')+'\';" onmouseout="this.style.color=\''+this.gc('contentText')+'\';">'+this.s('section_'+id)+'</span>';}return h;},se:function(id){sections=this.getSections();for(var idx in sections){if(sections[idx]==id){return true;}}return false;},getSections:function(){sections=GM_getValue('displaySections', this.o.displaySections).split(',');return sections;},getTrackUserLink:function(){if(!this.deviant){return '';}var title=this.iv('TrackUserLink','deviant', this.deviant.name);return this.bl('javascript:dto.ds(\'TrackUser\');', [title]);},so:function(optionID, values){var h='<tr><td align="right" style="font-size:11px;">'+this.s(optionID)+'</td><td width="150"><select id="'+this.m('F'+optionID)+'" style="'+this.getFieldStyle('select')+'">';for(var idx in values){h += '<option value="'+values[idx][0]+'" '+this.fieldSelected(GM_getValue(optionID, this.o[optionID]), values[idx][0])+'>'+this.s(values[idx][1])+'</option>';}h +='</select></td></tr>';return h;},opLayout:function(){var yesno=[['yes','yes'],['no','no']];var h='<table cellpadding="3" cellspacing="0" style="border:none;margin-bottom:8px;" width="100%">'+this.so('layout', [['horizontal','horizontal'],['vertical','vertical']])+this.so('displayTitleText', yesno)+this.so('displayWelcome', yesno)+this.so('displayVanity', yesno)+this.so('skin', [['daClassic','skinDAClassic'],['aeoncyan','skinAeonCyan'],['grey','skinGrey'],['silver','skinSilver']])+'<tr><td align="right" style="font-size:11px;">'+this.s('maxLinkLabelLength')+'</td><td><input type="text" id="'+this.m('FmaxLinkLabelLength')+'" style="'+this.getFieldStyle('select')+'" size="2" maxlength="3" value="'+GM_getValue('maxLinkLabelLength', this.o.maxLinkLabelLength)+'"></td></tr></table>';return this.buildSection('options_layout', h);},opSettings:function(){var h='<table cellpadding="3" cellspacing="0" style="border:none;margin-bottom:8px;" width="100%">'+this.so('persistState', [['yes','yes'],['no','no']])+'<tr><td valign="top" align="right" style="font-size:11px;">'+this.s('displaySections')+'</td><td>'+this.opdisplaySections()+'</td></tr></table>';return this.buildSection('options_settings', h);},opEnhancements:function(){var h='<table cellpadding="3" cellspacing="0" style="border:none;margin-bottom:8px;" width="100%">'+this.so('enablePricingEnhancement', [['yes','yes'],['no','no']])+'</table>';return this.buildSection('options_enhancements', h);},opdisplaySections:function(){var h='<table cellpadding="0" cellspacing="0" border="0" style="border:none;">';for(var idx in this.sections){var sectionID=this.sections[idx];var checked='';if(this.se(sectionID)){checked='checked';}var itemID=this.m('FdisplaySections_'+sectionID);h +='<tr valign="top"><td><input type="checkbox" id="'+itemID+'" '+checked+'></td><td style="padding:2px 0 0 2px;font-size:11px;"><label for="'+itemID+'">'+this.s('section_'+sectionID)+'</label></td></tr>';}h += '</table>';return h;},applyOptions:function(){for(var option in this.o){switch(option){case 'maxLinkLabelLength':var el=this.g('F'+option);var value=parseInt(el.value);if(!isNaN(value)){GM_setValue(option, value);}break;case 'displaySections':var newList=[];for(idx in this.sections){var sectionID=this.sections[idx];var el=this.g('FdisplaySections_'+sectionID);if(el.checked){newList.push(sectionID);}}GM_setValue(option, newList.join(','));break;default:var el=this.g('F'+option);if(!el || !el[el.selectedIndex] || !el[el.selectedIndex].value){alert('Option '+option+' has no value.');continue;}var value=el[el.selectedIndex].value;GM_setValue(option, value);break;}}location.reload();},revertToDefaults:function(){for(var option in this.o){GM_setValue(option, this.o[option]);}GM_setValue('defaultsSet', true);},s:function(stringID){if(typeof(this.strings[stringID])=='undefined'){return 'unknown';}return this.strings[stringID];},gu:function(){return 'http://'+this.data.username+'.deviantart.com/';},iv:function(stringID, varName, value){var reg=new RegExp('%'+varName);var lstring=this.s(stringID);lstring=lstring.replace(reg, value);return lstring;},focus:function(el){el.style.background=this.gc('cba');el.style.color=this.gc('cbx');},blur:function(el){el.style.background=this.gc('button');el.style.color=this.gc('cbt');},gy:function(){if(GM_getValue('layout', this.o.layout)=='vertical'){return '';}return ' style="float:left;margin:0 20px 0 0;"';},fieldSelected:function(value, expected){if(value==expected){return 'selected';}return '';},m:function(name){return this.prefix+name;},allowedHere:function(){var cnt=this.dp.length;var where=window.location.href;for(var i=0; i < cnt; i++){if(where.substring(0, this.dp[i].length)==this.dp[i]){return false;}}return true;},toggle:function(){if(this.open){this.collapse();return;}this.expand();},expand:function(){contentEl=this.g('Content');buttonEl=this.g('Toggler');contentEl.style.display='block';buttonEl.innerHTML=this.closeBtn;GM_setValue('open', true);this.open=true;},collapse:function(){contentEl=this.g('Content');buttonEl=this.g('Toggler');contentEl.style.display='none';buttonEl.innerHTML=this.openBtn;GM_setValue('open', false);this.open=false;},gc:function(name){var scheme=GM_getValue('skin', this.o.skin);if(typeof(this.colors[scheme])=='undefined'){scheme=this.o.skin;}return this.colors[scheme][name];},hc:function(name){var scheme=GM_getValue('skin', this.o.skin);if(typeof(this.colors[scheme])=='undefined'){scheme=this.o.skin;}if(typeof(this.colors[scheme][name]) != 'undefined'){return true;}return false;},buildButton:function(stringID, onclickAction){var h='<div style="text-align:center;cursor:pointer;padding:2px 12px;border:solid 1px '+this.gc('borders')+';color:'+this.gc('cbt')+';background:'+this.gc('button')+'" onclick="'+onclickAction+'" onmouseover="dto.focus(this);" onmouseout="dto.blur(this);">'+this.s(stringID)+'</div>';return h;},bl:function(target, stringID, attribs){return '<div><img src="'+this.bulletImage+'" style="float:left;margin:2px 4px 0 0;"/>'+this.bN(target, stringID, attribs)+'</div>';},b:function(target, label, attribs){var renderedAttribs='';if(typeof(attribs)=='undefined'){attribs={};}var styles='color:'+this.gc('link')+';text-decoration:none;';if(attribs.style){styles += attribs.style;attribs.style=null;}for(var attrib in attribs){if(attribs[attrib]==null){continue;}renderedAttribs += ' '+attrib+'="'+attribs[attrib]+'"';}var h='<a href="'+target+'" '+renderedAttribs+' style="'+styles+'">'+label+'</a>';return h;},bN:function(target, stringID, attribs){var title='';if(typeof(stringID)=='string'){title=this.s(stringID);} else if(typeof(stringID)=='object'){title=stringID[0];}title=this.al(title);return this.b(target, title, attribs);},bC:function(){return '<div style="clear:both;"></div>';},al:function(label){var maxlen=GM_getValue('maxLinkLabelLength', this.o.maxLinkLabelLength);if(label.length > maxlen){label=label.substring(0, maxlen)+'...';}return label;},gt:function(){return 'padding:3px 0 8px 20px;';},getFieldStyle:function(fieldType){var style='background:'+this.gc('button')+';color:'+this.gc('cbt')+';border:solid 1px '+this.gc('borders')+';font-size:11px;';return style;},getRandomQuote:function(){var rand=Math.round((Math.random() * (this.quotes.length)));if(rand==this.quotes.length){rand=rand-1;}var quote=this.quotes[rand];if(!quote[2]){quote[2]='c/community.gif';}var h='<table cellpadding="0" cellspacing="0" border="0" style="border:none;"><tr><td style="padding-right:10px;"><img src="http://e.deviantart.com/emoticons/'+quote[2]+'"/></td><td align="right"><i title="'+this.iv('QuoteBy','authorName', quote[1])+'" style="font-size:11px;">'+quote[0]+'</i></td></tr></table>';return h;},getOption:function(name){return GM_getValue(name, this.o[name]);},calcAspect:function(){var aspect;var w=parseInt(this.g('AspectWidth').value);var h=parseInt(this.g('AspectHeight').value);if (isNaN(w) || isNaN(h) || w < 1 || h < 1){aspect='??';} else {if (w > h){aspect=Math.round(w / h * 100) / 100;} else {aspect=Math.round(h / w * 100) / 100;}}this.g('AspectDisplay').innerHTML=aspect;},runEnhancements:function(){if(GM_getValue('enablePricingEnhancement')=='yes'){this.enhancement_priceCalculators();}},enhancement_priceCalculators:function(){var activateUrl='http://services.deviantart.com/prints/manage/details';if(window.location.href.substring(0, activateUrl.length) != activateUrl){return true;}var inputs=document.getElementsByTagName('input');var cnt=inputs.length;for(var i=0; i < cnt; i++){if(inputs[i].name.substring(0, 6) != 'prices'){continue;}var td=inputs[i].parentNode;if(!td.nextSibling.nextSibling || !td.nextSibling.nextSibling.nextSibling.nextSibling){alert('Cannot find price cells.\n\nThe HTML structure of the page has probably\nchanged, the Toolbox needs to be updated for\nthe pricing calculators to work.');return true;}var minimumEl=td.nextSibling.nextSibling;var profitEl=td.nextSibling.nextSibling.nextSibling.nextSibling;dpm.addPrice(inputs[i], minimumEl, profitEl);}dpm.setGain(GM_getValue('printsProfit'));dpm.enable();return true;},buildScreen:function(screen){var elementID=this.m('Screen'+screen.id);var footerID=this.m('ScreenFooter'+screen.id);var contentID=this.m('ScreenContent'+screen.id);var quoteID=this.m('ScreenQuote'+screen.id);var title=this.s('Screen_'+screen.id);var el=document.createElement('div');document.getElementsByTagName('body')[0].appendChild(el);el.style.position='absolute';el.style.top='5px';el.style.left='5px';el.style.visibility='hidden';el.style.border='solid 1px '+this.gc('borders');el.style.borderRightWidth='2px';el.style.borderBottomWidth='2px';el.style.width=screen.width+'px';el.style.backgroundColor=this.gc('frame');el.id=elementID;el.style.zIndex=this.baseZIndex+screen.priority;if(this.hc('ifb')){el.style.backgroundRepeat='repeat-x';el.style.backgroundImage='url("'+this.gc('ifb')+'")';}var closeLink='<span style="font:normal 11px monospace;">[-]</span>';if(this.hc('im')){closeLink='<img src="'+this.gc('im')+'" align="absmiddle"/>';}var h='<div style="padding:2px 6px;color:'+this.gc('frameText')+';text-align:right;cursor:pointer;" onclick="dto.cs(\''+screen.id+'\');">'+title+' '+closeLink+'</div><div id="'+contentID+'" style="background:'+this.gc('screen')+';color:'+this.gc('contentText')+';border-top:solid 1px '+this.gc('borders')+';padding:8px;">'+this.gsHTML(screen)+'</div>';if(screen.buttons){h +='<div style="border-top:solid 1px '+this.gc('borders')+';padding:11px;background:'+this.gc('frame')+'"><table cellpadding="2" cellspacing="0" style="border:none;margin-top:6px;"><tr>';var cnt=screen.buttons.length;for(var i=0; i < cnt; i++){h +='<td>'+this.buildButton(screen.buttons[i][0], screen.buttons[i][1])+'</td>';}h +='</tr></table></div>';}h +='<div style="border-top:solid 1px '+this.gc('borders')+';background:'+this.gc('footer')+';color:'+this.gc('footerText')+';padding:5px 6px;min-height:23px;font-size:11px;line-height:12px;" id="'+footerID+'"></div>';el.innerHTML=h;screen.created=true;screen.element=el;screen.content=document.getElementById(contentID);screen.footer=document.getElementById(footerID);if(this.hc('iob')){screen.footer.style.backgroundRepeat='repeat-x';screen.footer.style.backgroundImage='url("'+this.gc('iob')+'");';}if(screen.init){screen.init();}return true;},buildScreenMessage:function(stringID){var h='<div style="border:solid 1px '+this.gc('borders')+';background:'+this.gc('message')+';padding:13px;"><b>'+this.s('Information')+':</b> '+this.s(stringID)+'</div>';return h;},ds:function(screenID){var screen=this.gs(screenID);if(!screen){return;}this.css();if(!screen.created){this.buildScreen(screen);} else if(screen.needsRefresh){screen.content.innerHTML='';screen.content.innerHTML=this.gsHTML(screen);if(screen.init){screen.init();}}this.repositionScreen(screen);screen.active=true;screen.footer.innerHTML=this.getRandomQuote();},toggleScreen:function(screenID){var screen=this.gs(screenID);if(!screen){return;}if(screen.active){return this.cs(screenID);}this.ds(screenID);},repositionScreens:function(){for(var screenID in this.screens){if(!this.screens[screenID].element){continue;}if(this.screens[screenID].element.style.visibility=='visible'){this.repositionScreen(this.screens[screenID]);}}},repositionScreen:function(screen){var width=window.innerWidth;var height=window.innerHeight;var x=(width / 2) - (screen.element.offsetWidth / 2) + window.pageXOffset;var y=((height / 2) - (screen.element.offsetHeight / 2)) + window.pageYOffset;if(y < 1){y=this.offset[1];}screen.element.style.top=y+'px';screen.element.style.left=x+'px';screen.element.style.visibility='visible';},cs:function(screenID){var screen=this.gs(screenID);if(!screen){return;}if(screen.element){screen.element.style.visibility='hidden';}screen.active=false;},css:function(){for(var screenID in this.screens){this.cs(screenID);}},gs:function(screenID){if(!this.screens[screenID]){return false;}return this.screens[screenID];},gsHTML:function(screen){return eval('dto.bH'+screen.id+'();');},bHStyleEditor:function(){var h='<b>'+this.s('UnderConstruction')+'</b><br/><br/><table cellpadding="2" cellspacing="2" style="border:none;margin-bottom:8px;">';var cnt=this.colorParts.length;var reg=new RegExp('#');for(var i=0; i < cnt; i++){var value=this.gc(this.colorParts[i]).replace(reg, '');if(GM_getValue('colorPart_'+this.colorParts[i])){value=GM_getValue('colorPart_'+this.colorParts[i]);}h +='<tr><td align="right" style="background:'+this.gc('footer')+';color:'+this.gc('footerText')+'">'+this.colorParts[i]+'</td><td><input type="text" size="6" maxlength="6" id="'+this.m('colorPart'+this.colorParts[i])+'" value="'+value+'" style="'+this.getFieldStyle()+';font-family:monospace;"/></td><td><div style="background:#'+value+';width:14px;height:14px;overflow:hidden;border:solid 1px #000;">&#160;</div></td></tr>';}h += '</table>';return h;},bHAbout:function(){var lines={'Version':this.version,'ReleaseDate':this.releaseDate,'Deviation':this.b('http://www.deviantart.com/view/32751353/','#32751353'),'Website':this.b('http://deviantToolbox.aeonoftime.com','deviantToolbox.aeonoftime.com'),'Author':this.b('http://aeonoftime.deviantart.com','=AeonOfTime'),'Homepage':this.b('http://sebastian.mordziol.de','sebastian.mordziol.de')+' <small>(fr)</small>'};var h='<b>deviantToolbox</b><br/><br/><img src="http://a.deviantart.com/avatars/a/e/aeonoftime.gif" style="float:right;"/><table cellpadding="2" cellspacing="2" style="border:none;margin-bottom:8px;">';for(var stringID in lines){h += this.bHAbout_Line(stringID, lines[stringID]);}h += '</table>';return h;},bHAbout_Line:function(stringID, value){var h='<tr><td align="right" style="background:'+this.gc('footer')+';color:'+this.gc('footerText')+';white-space:nowrap;">'+this.s(stringID)+'</td><td>'+value+'</td></tr>';return h;},bHTrackUser:function(){var user, screenAbstract;if(this.userToEdit){screenAbstract=this.s('EditingTrackedUser');this.cs('TrackedList');user=this.userTracker.getUser(this.userToEdit);this.userToEdit=false;} else {if(this.userTracker.getUser(this.deviant.name)){screenAbstract=this.s('KnownTrackedUser');user=this.userTracker.getUser(this.deviant.name);} else {screenAbstract=this.s('TrackUserAbstract');user={'name':this.deviant.name,'avatar':this.deviant.avatar,'notes':'','category':''}}}if(typeof(user.name)=='undefined'){this.screens['TrackUser'].buttons=[['btnCancel','dto.cs(\'TrackUser\');']];return this.buildScreenMessage('TrackUserNotUserPage');}var h='<img src="'+user.avatar+'" style="float:right;border:solid 1px '+this.gc('borders')+';margin:0 0 10px 10px;"/><b>'+user.name+'</b><p style="font-size:11px;">'+screenAbstract+'</p><input type="hidden" id="'+this.m('TrackingName')+'" value="'+user.name+'"/><input type="hidden" id="'+this.m('TrackingAvatar')+'" value="'+user.avatar+'"/><p>'+this.s('Category')+':<br/>';var cats=this.userTracker.getCategories();if(cats.length >= 1){h +='<select style="float:right;'+this.getFieldStyle()+'" onchange="document.getElementById(\''+this.m('TrackingCategory')+'\').value=this[this.selectedIndex].value;"><option value="">'+this.s('ExistingCategories')+'...</option><option value=""></option>';for(var i=0; i < cats.length; i++){h += '<option value="'+cats[i]+'">'+cats[i]+'</option>';}h += '</select>';}h +='<input type="text" id="'+this.m('TrackingCategory')+'" value="'+user.category+'" maxlength="30" style="'+this.getFieldStyle()+'"/><br/></p><p>'+this.s('NotesAndComments')+':<br/><textarea id="'+this.m('TrackingNotes')+'" style="'+this.getFieldStyle()+';width:100%;" rows="4">'+user.notes+'</textarea></p>';return h;},editUser:function(name){this.userToEdit=name;this.ds('TrackUser');},trackedListDetails:function(detailLevel){GM_setValue('tm', detailLevel);var dS='[-]';if(this.hc('id')){dS='<img src="'+this.gc('id')+'" style="border:none;"/>';}var eS='[.]';if(this.hc('ie')){eS='<img src="'+this.gc('ie')+'" style="border:none;"/>';}var cats=this.userTracker.getCategories();var users=this.userTracker.getUsers();for(var j=0; j < cats.length; j++){var sectionID='TrackedUsers'+j;var sectionContentEl=this.g(sectionID+'Content');var sH='';var odd=false;var rowStyle='';for(var i=0; i < users.length; i++){if(users[i].category != cats[j]){continue;}change=true;if(odd){change=false;odd=false;} else if (change){odd=true;}sH += this.tlCommon(detailLevel, cats[j], users[i], odd, dS, eS);}sectionContentEl.innerHTML=sH+this.bC();}},tlCommon:function(mode, category, user, odd, dS, eS){if(mode=='AvatarsOnly'){return this.tlAvatarsOnly(category, user, odd, dS, eS);}var rowStyle='';if(odd){rowStyle='background:'+this.gc('listHighlights');}var paddingSize=4;if(mode=='Slim' || mode=='UltraSlim'){paddingSize=2;}var avatarSize=null;if(mode=='Slim'){avatarSize=' width="25" height="25"';}var h='<div style="padding:'+paddingSize+'px;'+rowStyle+';border-bottom:dotted 1px '+this.gc('borders')+'">';if(mode=='Full' || mode=='Slim'){h +='<div style="padding-right:8px;float:left;">'+this.b('http://'+user.name+'.deviantart.com','<img src="'+user.avatar+'" title="'+user.name+'" '+avatarSize+' border="0"/>')+'</div>';}h +='<div><div style="float:right;text-align:right;margin-left:6px;">'+this.b('javascript:dto.editUser(\''+user.name+'\');',eS,{'title':this.s('editTrackedUser')})+' '+this.b('javascript:dto.userTracker.untrack(\''+user.name+'\');',dS,{'title':this.s('untrackUser')})+'</div><p style="margin:0;padding:0 0 3px 0;">'+this.b('http://'+user.name+'.deviantart.com','<b>'+user.name+'</b>')+'</p>';if(mode=='Full'){h +='<p style="margin:0;padding:0;font-size:11px;">'+user.notes+'</p>';}h +='</div>'+this.bC()+'</div>';return h;},tlAvatarsOnly:function(category, user, odd, dS, eS){var h='<div style="padding:2px;float:left;">'+this.b('http://'+user.name+'.deviantart.com','<img src="'+user.avatar+'" border="0"/>',{'title':user.name})+'</div>';return h;},bHTrackedList:function(){var users=this.userTracker.getUsers();if(users.length < 1){return this.buildScreenMessage('NoTrackedDeviantsYet');}var h='<div align="right" style="padding-bottom:4px">'+this.s('SelectListMode')+': <select onchange="dto.trackedListDetails(this[this.selectedIndex].value);" style="'+this.getFieldStyle()+'">';for(var i=0; i < this.listModes.length; i++){var active='';if(this.listModes[i]==GM_getValue('tm')){active=' selected="selected"';}h += '<option value="'+this.listModes[i]+'"'+active+'>'+this.s('listMode'+this.listModes[i])+'</option>';}h +='</select></div>';var cats=this.userTracker.getCategories();for(var j=0; j < cats.length; j++){var sectionID='TrackedUsers'+j;var sH='<div style="padding:8px 0;" id="'+this.m(sectionID+'Content')+'"></div>';this.strings['section_'+sectionID]=cats[j];h += this.buildSection(sectionID, sH);}return h;},bHOptions:function(){var h=this.opLayout()+this.opSettings()+this.opEnhancements()+this.bC();return h;},bHCalcAspect:function(){var h='<p>'+this.s('CalcAspectAbstract')+'</p><p>'+this.s('ImageSize')+': <input type="text" id="'+this.m('AspectWidth')+'" value="" maxlength="5" size="4" style="'+this.getFieldStyle()+'"/> x <input type="text" id="'+this.m('AspectHeight')+'" value="" maxlength="5" size="4" style="'+this.getFieldStyle()+'"/></p><div>'+this.s('AspectRatio')+': <b style="font-size:13px;"><span id="'+this.m('AspectDisplay')+'">??</span>:1</b></div>';return h;},'strings':{'aboutLinkTitle':'About','Add':'Add','adminAccount':'Account','adminDevwatch':'DevWatches','adminFriends':'Friends','adminGallery':'Gallery','adminJournal':'Journal','adminProfile':'Profile','adminSettings':'Settings','adminWishlist':'Wishlist','applyOptions':'Apply','ApproximatePercentage':'Profit percentage','AspectRatio':'Aspect ratio','Author':'Author','btnCalcAspect':'Calculate','btnCancel':'Cancel','btnCollapseAllSections':'Collapse all sections','btnExpandAllSections':'Expand all sections','btnTrack':'Track Deviant','CalcAspectAbstract':'Enter an image\'s width and height here to calculate its aspect ratio. This is especially useful when submitting prints to know which file sizes you may upload.','Category':'Category','CloseScreen':'Close this screen','closeToolbox':'Close toolbox','collapsableSections':'Collapsable categories','daArchivedFeaturedDeviations':'Daily deviations archive','daRandomDeviant':'Random Deviant','daRandomDeviation':'Random Deviation','daShoutbox':'Shoutbox','daToday':'DeviantART today','daTodaysFeaturedDeviations':'Daily deviations','devDDS':'Daily Deviations','devGallery':'Gallery','Deviant':'Deviant','Deviation':'Deviation','devPrints':'Prints','devScraps':'Scraps','devSubmit':'Submit','devWallpapers':'Wallpapers','displaySections':'Categories to display','displayTitleText':'Display title text','displayVanity':'Display vanity','displayWelcome':'Display username','EditingTrackedUser':'To edit this deviant\'s tracking details, simply modify the existing data here, it will automatically update everything.','editTrackedUser':'Edit the tracking details for this deviant','enablePricingEnhancement':'Prints pricing helper','ExistingCategories':'Existing categories','Homepage':'Homepage','horizontal':'Horizontal','HTMLStructureNotice':'The current page\'s HTML structure does not match\nthe expected structure. It is possible that it has\nchanged. The Toolbox will have to be updated to use\nthe new structure. Please notify me if you encounter\nthis message.','ImageSize':'Image size','Information':'Information','KnownTrackedUser':'You are already tracking this deviant. If you wish, you can edit the tracking details here.','language':'Language','layout':'Layout','listModeAvatarsOnly':'Avatars only','listModeFull':'Detailed','listModeSlim':'Slim (small avatars, no notes)','listModeUltraSlim':'Ultra slim (names only)','maxLinkLabelLength':'Maximum link title length','no':'No','NotesAndComments':'Notes & comments','NoTrackedDeviantsYet':'You are not tracking any deviants yet.','openToolbox':'Access Toolbox','options':'Options','persistState':'Keep open','pleaseLogIn':'Log in to use the toolbox.','printAdmin':'Store administration','printAspectCalc':'Aspect ratio calculator','printHomepage':'Store homepage','printProducts':'Products editor','printStats':'Sale statistics','printStorefront':'Edit the storefront','printSubmit':'Submit','QuoteBy':'Quote from %authorName','ReleaseDate':'Release date','Screen_About':'About the Toolbox','Screen_CalcAspect':'Image aspect calculator','Screen_Options':'Toolbox settings','Screen_StyleEditor':'Color scheme editor','Screen_TrackedList':'Tracked deviants manager','Screen_TrackUser':'Track a Deviant','ScreenBuildFailed':'Failed building screen %screenID. Please notify me if\nyou encounter this message, but make sure to check if\nyou have the latest version of the Toolbox first.','section_admin':'Administration','section_da':'DeviantART','section_devs':'My deviations','section_options_enhancements':'Enhancements','section_options_layout':'Interface layout','section_options_settings':'Settings','section_prints':'My prints','section_tools':'Tools','section_user':'My pages','SelectListMode':'List display mode','skin':'Color scheme','skinAeonCyan':'Aeon\'s cyan','skinDAClassic':'DeviantART classic','skinGrey':'Elegant grey','skinSilver':'Silver deluxe','Substract':'Substract %amount','toolsEmoticons':'Emoticon Legend','toolsStyleEditor':'Color scheme editor','TrackUserAbstract':'Here you can add the current deviant to a custom tracking list with personal notes - an extended deviantWatch for those users you always want near you :)','TrackUserLink':'Track %deviant','TrackUserNotUserPage':'I cannot find any information on a deviant on this page. Navigate to a deviant\'s page or gallery to track him/her.','translateLinks':'Translate links','UnderConstruction':'This area is still undergoing some heavy duty development. You may not be able to use it at all, or erase everything from your current life. Nah, just kidding :)','untrackUser':'Remove this deviant from the tracking list','userActivity':'Activity','userDevwatch':'deviantWatch','userFavourites':'Favourites','userFriends':'Friends','userGalleryStats':'Gallery stats','userHomepage':'Homepage','userJournal':'Journal','userMessages':'Messages','userNotes':'Notes','userTrackedList':'Tracked deviants','userWishlist':'Wishlist','Version':'Version','vertical':'Vertical','Website':'Website','welcomeUser':'Welcome','yes':'Yes',},'quotes':[['Long live the community!','AeonOfTime'],['Give me a soft, green mushroom and I will rule the world!!','AeonOfTime'],['Creativity is the subtle theft of another\'s ideas.','Jim Oblak'],['Good artists borrow, great artists steal','Michael Berens'],['I dream my painting, and then I paint my dream.','Vincent van Gogh'],['Abstract painting is abstract. It confronts you.','Jackson Pollock'],['Art has got nothing to do with taste.','Max Ernst'],['Dead artists always bring out an older, richer crowd.','Elizabeth Shaw'],['Art does not reproduce the visible; it makes things visible.','Paul Klee'],['Art: from the Latin \"ars\", meaning \"skill\" or \"craft\".','Wikipedia'],['All colors are the friends of their neighbors and the lovers of their opposites.','Marc Chagall'],['Color in a picture is like enthusiasm in life.','Vincent Van Gogh'],['Art is I; Science is We.','Claude Bernard'],['Art takes nature as its model.','Aristotle'],['A man paints with his brains and not with his hands.','Michelangelo'],['A room hung with pictures is a room hung with thoughts.','Sir Joshua Reynolds'],['True art is characterized by an irresistible urge in the creative artist.','Albert Einstein'],['Of all lies, art is the least untrue.','Gustave Flaubert'],['Art is not a thing; it is a way.','Elbert Hubbard'],['Ads are the cave art of the twentieth century.','Marshall McLuhan'],]};var dpm={'prices':{},'pricesCount':0,'gain':20,'enabled':false,setGain:function(gain){this.gain=gain;if(this.enabled){for(var id in this.prices){this.prices[id].setGain();}}},addPrice:function(inputEl, minEl, profitEl){this.pricesCount=this.pricesCount + 1;this.prices[this.pricesCount]={'id':this.pricesCount,'inputEl':inputEl,'minEl':minEl,'profitEl':profitEl,'percentDisplayEl':null,'minimum':null,'profit':null,'price':null,'gain':this.gain,'gainPrecision':0.1,'pi':1,enable:function(){var reg=new RegExp('\$');this.minimum=this.minEl.firstChild.data.replace(reg, '');this.price=parseFloat(this.inputEl.value);this.profit=(this.price - this.minimum) / 2;this.gain=this.profit*100/this.price;this.inputEl.setAttribute('disabled','disabled');this.inputEl.setAttribute('onChange','dpm.manualUpdate(\''+this.id+'\')');var cel1=document.createElement('span');var cel2=document.createElement('span');cel1.style.fontSize='13px';cel2.style.fontSize='13px';this.inputEl.parentNode.removeChild(this.inputEl.parentNode.firstChild);this.inputEl.parentNode.insertBefore(cel1, this.inputEl);this.inputEl.parentNode.appendChild(cel2);var style='cursor:pointer;letter-spacing:-2px;';var tabIndex=3000;var steps=['0.5','1','5'];var signLeft='&laquo;';var signRight='&raquo;';for(var i=0; i<steps.length; i++){cel1.innerHTML += dto.b('javascript:dpm.mp(\''+this.id+'\','+steps[i]+');',this.repeat(signLeft, i+1)+' ',{'title':this.iv('Substract','amount', steps[i]),'style':style,'tabindex':tabIndex});}for(var i=(steps.length-1); i>-1; --i){cel2.innerHTML += dto.b('javascript:dpm.pp(\''+this.id+'\','+steps[i]+');',' '+this.repeat(signRight, i+1),{'title':this.iv('Add','amount', steps[i]),'style':style,'tabindex':tabIndex});}this.inputEl.removeAttribute('disabled');this.update();return true;},repeat:function(string, amount){var result='';for(var i=0; i<amount; i++){result += string;}return result;},manualUpdate:function(){this.price=parseFloat(this.inputEl.value);this.profit=(this.price - this.minimum) / 2;this.gain=this.profit*100/this.price;this.update();},update:function(){this.profit=(this.price - this.minimum) / 2;this.inputEl.value=this.formatPrice(this.price);this.profitEl.innerHTML='<b>$'+this.formatPrice(this.profit)+'</b> <acronym title="'+this.s('ApproximatePercentage')+'">('+this.formatPercent(this.gain)+'%)</acronym>';},pp:function(amount){this.price=this.price+amount;this.profit=(this.price - this.minimum) / 2;this.gain=this.profit*100/this.price;this.update();},mp:function(amount){newPrice=this.price-amount;if(newPrice < this.minimum){return true;}this.price=newPrice;this.profit=(this.price - this.minimum) / 2;this.gain=this.profit*100/this.price;this.update();},formatPrice:function(price){price=parseFloat(price);return price.toFixed(2);},formatPercent:function(percent){percent=parseFloat(percent);return percent.toFixed(1);},calcRealGain:function(price, gain){var realGain=gain;while(this.calcRealPercent(price, realGain) < gain){realGain=realGain+this.gainPrecision;}return realGain;},calcRealPercent:function(price, percent){var endPrice=price+(price*percent/100);var realPercent=price*percent/endPrice;return realPercent;},s:function(stringID){return dto.s(stringID);}};},enable:function(){for(var id in this.prices){if(!this.prices[id].enable()){return false;}}this.enabled=true;return true;},manualUpdate:function(id){this.prices[id].manualUpdate();},pp:function(id, amount){this.prices[id].pp(amount);},mp:function(id, amount){this.prices[id].mp(amount);},displayChangeGain:function(){var gain=prompt('Target percentage', this.gain);this.setGain(gain);}};unsafeWindow.dto=dto;unsafeWindow.dpm=dpm;dto.start();