/* UTIL */function html_entity_decode(str) {var ta=document.createElement("textarea");ta.innerHTML=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");return ta.value;}(function () {YAHOO.namespace('Worlds').util = {parseJson : function (json) {delete this.parseJson.error;this.parseJson.data = json;if ( !YAHOO.lang.isString(json) ) {this.parseJson.error = new Error( 'JSON Data is not of type "string".' );return null;}try {var f = Function(['var document,top,self,window,parent,Number,Date,Object,Function,','Array,String,Math,RegExp,Image,ActiveXObject;','return (' , json.replace(/<\!--.+-->/gim,'').replace(/\bfunction\b/g,'function&shy;').replace(/^<pre>/i,'').replace(/<\/pre>$/i,'') , ');'].join(''));return f();} catch (error) {this.parseJson.error = error;return null;}},fold : function(el, params) {params = YAHOO.lang.isUndefined(params) ? {} : params;var duration = YAHOO.lang.isUndefined(params.duration) ? .25 : params.duration;var easing = YAHOO.lang.isUndefined(params.easing) ? YAHOO.util.Easing.easeBoth : params.easing;var height = YAHOO.lang.isUndefined(params.height) ? 0 : params.height;var attr = {height: {to: height}};var anim = new YAHOO.util.Anim(el, attr, duration, easing);anim.animate();}};})();/* PHUGC */(function () {YAHOO.namespace('Phugc');YAHOO.Phugc.createComment = function(c) {var html = [];html.push('<h5><a href="#">' + c.handle + '</a> said:</h5>','<div class="comment-bd">','<div class="thumb"><a href="#"><img src="' + c.user_icon + '" alt="' + c.handle + '"></a></div>','<p>' + c.comment_text + '</p>','</div>','<ul class="meta">','<li>Posted ' + c.date_created + '</li>','</ul>');html = html.join('');return html;}})();/* CAROUSEL */(function () {YAHOO.namespace('Carousel');/** * @el_id string id of target list * @options object various options *   orientation: veritcal or horizontal *   wrapCl_h: class name for wrapper, horizontal orientation *   wrapCl_v: class name for wrapper, vertical orientation *   pages_id: id of div where # of # should be written *   pagination_id: id of div where pagination links (1, 2, 3, etc.) would show up *   controls: object containing control ids *     prev: id of previous link *     next: id of next link**/YAHOO.Carousel = function (el_id,options) {this.el_id = el_id;this.el = YAHOO.util.Dom.get(this.el_id);/* can't do anything without an element to work with */if (!this.el) {return;}/* set default options */this.options = {'orientation': 'horizontal','wrapCl_h': 'carousel-wrapper-h','wrapCl_v': 'carousel-wrapper-v','pagination_id': this.el_id + '-pagination'};/* override default options */if (options) {for (var option in options) {this.options[option] = options[option];}}/* build everything */this.init();/* create an instance so we can refer to it if we want */YAHOO.Carousel.instances[this.el_id] = this;};/* create instance space */YAHOO.Carousel.instances = {};/* all the methods for carousel */YAHOO.Carousel.prototype = {/* method to calculate animation positions, gather elements, and add listeners */init: function () {/* create wrapper to hide overflow */this.wrapper = document.createElement('div');YAHOO.util.Dom.insertAfter(this.wrapper, this.el_id);this.wrapper.appendChild(this.el);/* we start at position 1 */this.position = 1;/* get all the list items for later use */this.lis = new Array();var all_lis = this.el.getElementsByTagName('li');for ( i=0;i<all_lis.length;i++ ) {if (all_lis[i].parentNode == this.el) {this.lis[this.lis.length] = all_lis[i];}}this.num_items = this.lis.length;if (this.num_items == 0) {return false;}/* perform additional orientation dependent tasks */if (this.options.orientation == 'vertical') {this.initV();} else {this.initH();}if (this.positions == 1) {return false;}this.mod = this.el.className == 'mod' ? this.el : YAHOO.util.Dom.getAncestorByClassName(this.el, 'mod');if (YAHOO.util.Dom.hasClass(this.mod, 'mod')) {this.hd = YAHOO.util.Dom.getFirstChild(this.mod);while (!YAHOO.util.Dom.hasClass(this.hd, 'hd') && this.nav.nextSibling) {this.hd = this.nav.nextSibling;}}if (this.options.controls) {if (this.options.controls.next) {YAHOO.util.Event.addListener(this.options.controls.prev, 'click', function(e){ YAHOO.util.Event.preventDefault(e); this.scroll(-1); }, this, true);} if (this.options.controls.prev) {YAHOO.util.Event.addListener(this.options.controls.next, 'click', function(e){ YAHOO.util.Event.preventDefault(e); this.scroll(1); }, this, true);}} else {/* build the nav controls */var controls = document.createElement('ul');YAHOO.util.Dom.addClass(controls, 'scroll');var prev_li = document.createElement('li');YAHOO.util.Dom.addClass(prev_li, 'prev');var prev_a = document.createElement('a');prev_a.href = "#";var prev_text = document.createTextNode('prev');prev_a.appendChild(prev_text);prev_li.appendChild(prev_a);controls.appendChild(prev_li);YAHOO.util.Event.addListener(prev_a, 'click', function(e){ YAHOO.util.Event.preventDefault(e); this.scroll(-1); }, this, true);this.position_pages = document.createElement('li');controls.appendChild(this.position_pages);var next_li = document.createElement('li');YAHOO.util.Dom.addClass(next_li, 'next');var next_a = document.createElement('a');next_a.href = "#";var next_text = document.createTextNode('next');next_a.appendChild(next_text);next_li.appendChild(next_a);controls.appendChild(next_li);YAHOO.util.Event.addListener(next_a, 'click', function(e){ YAHOO.util.Event.preventDefault(e); this.scroll(1); }, this, true);var nav = document.createElement('div');YAHOO.util.Dom.addClass(nav, 'nav');/* if you have a header, put the nav there, otherwise it's flying solo */if (this.hd) {this.hd.appendChild(nav);} else {YAHOO.util.Dom.insertBefore(nav, YAHOO.util.Dom.getFirstChild(this.mod));}var tabs = YAHOO.util.Dom.getElementsBy(function(el){return YAHOO.util.Dom.hasClass(el,'tabs')}, 'ul', this.mod);if (tabs[0]) {nav.appendChild(tabs[0]);}nav.appendChild(controls);}/* optional element for position pages */if (this.options.position_pages) {this.position_pages = YAHOO.util.Dom.get(this.options.position_pages);}/* add optional items pages */if (this.options.items_pages) {this.items_pages = YAHOO.util.Dom.get(this.options.items_pages) || document.createElement('div');YAHOO.util.Dom.addClass(this.items_pages, 'items-pages');if (!YAHOO.util.Dom.get(this.options.items_pages)) {YAHOO.util.Dom.insertBefore(this.items_pages, this.wrapper);}}/* update navigation (pages) */this.updateNav();/* build pagination links */this.buildLinks();},/* horizontal orientation specific setup */initH: function () {/* set horizontal wrapper class */YAHOO.util.Dom.addClass(this.wrapper, this.options.wrapCl_h);/* calculate how many list items fit on a page */var li = YAHOO.util.Dom.getFirstChild(this.el);this.li_width = li.offsetWidth; /* this includes padding and borders */this.li_margin_left = YAHOO.util.Dom.getStyle(li, 'margin-left');this.li_margin_right = YAHOO.util.Dom.getStyle(li, 'margin-right');this.li_margins = parseInt(this.li_margin_left.replace('px','')) + parseInt(this.li_margin_right.replace('px',''));this.wrapper_width = this.wrapper.offsetWidth;this.unit_width = this.li_width + this.li_margins;this.visible = Math.floor((this.wrapper.offsetWidth + this.li_margins) / this.unit_width);/* base wrapper height on height of first element */YAHOO.util.Dom.setStyle(this.wrapper, 'height', li.offsetHeight + 'px');/* animation movement is based on items, not wrapper width, to account for margins */this.movement = this.visible * this.unit_width;/* number of pages is determined by the number of list items divided by the number of items per page */this.positions = Math.ceil(this.num_items / this.visible);},/* vertical orientation specific setup */initV: function() {/* set some starting points */this.position_heights = [0];this.list_height = 0;this.wrap_height = 0;this.visible = 5;/* get out of here if there's only one page */if (this.lis.length <= this.visible) {this.positions = 1;return false;}/* set vertical wrapper class */YAHOO.util.Dom.addClass(this.wrapper, this.options.wrapCl_v);/* calculate the height of each list item */this.li_heights = new Array();this.wrap_height = 0;for (i=0;i<this.lis.length;i++) {var li = this.lis[i];var li_margin_top = YAHOO.util.Dom.getStyle(li, 'margin-top');var li_margin_bottom = YAHOO.util.Dom.getStyle(li, 'margin-bottom');var li_margins = parseInt(li_margin_top.replace('px','')) + parseInt(li_margin_bottom.replace('px',''));this.li_heights[i] = li.offsetHeight;}/* calculate the height of each page (how far to move animation) based on 5 items per page */for (i=0;i<this.li_heights.length;i++) {this.list_height += this.li_heights[i];if ( ( i + 1 ) % this.visible == 0 ) {this.position_heights[this.position_heights.length] = this.list_height;var this_height = this.position_heights[this.position_heights.length-1] - this.position_heights[(this.position_heights.length-2)];this.wrap_height = this_height > this.wrap_height ? this_height : this.wrap_height;} else if ( i == this.li_heights.length - 1 ) {this.position_heights[this.position_heights.length] = this.position_heights[this.position_heights.length-1] + this.wrap_height;}}/* set the wrapper height to the height of the first page */YAHOO.util.Dom.setStyle(this.wrapper, 'height', this.position_heights[1] + 'px');/* create a second wrapper with the height of the tallest page */var vert_wrapper = document.createElement('div');YAHOO.util.Dom.setStyle(vert_wrapper, 'height', this.wrap_height + 'px');YAHOO.util.Dom.setStyle(vert_wrapper, 'overflow', 'hidden');YAHOO.util.Dom.insertAfter(vert_wrapper, this.wrapper);vert_wrapper.appendChild(this.wrapper);/* we don't count the last position height in our position count, it's just to get the height of the last page */this.positions = this.position_heights.length - 1;},/* custom to fire when scrolling */scrollEvent: (new YAHOO.util.CustomEvent("carousel scroll")),/* this is added to the previous and next controls to change pages */scroll: function (change) {/* fire custom event */this.scrollEvent.fire(this);/* calculate new position */this.position += change;if (this.position > this.positions) {this.position = 1}if (this.position < 1) {this.position = this.positions}/* calculate animation coordinates based on orientation */if (this.options.orientation == 'vertical') {this.scrollV();} else {this.scrollH();}/* carry out animation */    var anim = new YAHOO.util.Scroll(this.wrapper, this.attributes, 0.4);anim.animate();/* add the tracking */this.tracking();/* update the pages */this.updateNav();return false;},/* horizontal orientation speciic scrolling coordinates */scrollH: function () {this.attributes = {        scroll: { to: [this.movement * (this.position-1), 0] }    };},/* vertical orientation specific scrolling coordinates */scrollV: function (change) {YAHOO.util.Dom.setStyle(this.wrapper, 'height', (this.position_heights[this.position] - this.position_heights[this.position-1]) + 'px');this.movement = this.position_heights[this.position-1];this.attributes = {scroll: { to: [0, this.movement]}};},/* function to use for pagination links */scrollTo: function (page) {this.scroll(page - this.position);},/* update pages (# of #) */updateNav: function () {if (this.position_pages) {this.position_pages.innerHTML = this.position + ' of ' + this.positions;}if (this.items_pages) {if ( this.num_items % this.visible && this.position == this.positions ) {if ( this.num_items % this.visible == 1 ) {this.items_pages.innerHTML = 'Showing <em>' + this.num_items + '</em> of <em>' + this.num_items + '</em>';} else {this.items_pages.innerHTML = 'Showing <em>' + ( ( this.position - 1 ) * this.visible + 1 ) + '</em> - <em>' + this.num_items + '</em> of <em>' + this.num_items + '</em>';}} else {this.items_pages.innerHTML = 'Showing <em>' + ( ( this.position - 1 ) * this.visible + 1 ) + '</em> - <em>' + ( this.position * this.visible ) + '</em> of <em>' + this.num_items + '</em>';}}},/* build the pagination links */buildLinks: function() {/* find pagination wrapper element */var pagination_el = YAHOO.util.Dom.get(this.options.pagination_id);/* stop if pagination element doesn't exist */if (!pagination_el) return false;/* create the pagination list and items, add scrollTo listeners */var ul = document.createElement('ul');for (i=1;i<=this.positions;i++) {var li = document.createElement('li');var a = document.createElement('a');a.href = "#";YAHOO.util.Event.addListener(a, 'click', function(e, params){ YAHOO.util.Event.preventDefault(e); this.scrollTo(params.page); }, {'page':i}, this);var text = document.createTextNode(i);a.appendChild(text);li.appendChild(a);ul.appendChild(li);}/* add list to pagination element */pagination_el.appendChild(ul);},/* add the tracking images */tracking: function() {/* figure out which items to make images for */var start = ( this.position - 1 ) * this.visible;var end = ( this.position * this.visible ) - 1 > this.num_items-1 ? this.num_items-1 : ( this.position * this.visible ) - 1;/* if you go back, don't make more images */if (this.has_viewed > end) {return false;} else {this.has_viewed = end;}/* find asset type & space id */var classes = this.el.className.split(' ');var asset_type;var space_id;for ( j=0; j<classes.length; j++ ) {if (classes[j].indexOf('asset-type:') != -1) {asset_type = classes[j].split(':')[1];} else if (classes[j].indexOf('space-id:') != -1) {space_id = classes[j].split(':')[1];}}/* if you don't have a type or space id, go home and cry */if (!space_id || !asset_type) {return false;}/* find asset ids */var asset_ids = new Array();for ( i=start; i<=end; i++ ) {var classes = this.lis[i].className.split(' ');for ( j=0; j<classes.length; j++ ) {if (classes[j].indexOf('asset-id:') != -1) {asset_ids[asset_ids.length] = classes[j].split(':')[1];break;}}}/* build the imgs */for ( i=0; i<asset_ids.length; i++ ) {var img = document.createElement('img');YAHOO.util.Dom.setStyle(img, 'position', 'absolute');img.src = 'http://geo.yahoo.com/b?s=P#' + space_id + '&t=' + Math.random() + '&asset=' + asset_ids[i] + '&pt=' + asset_type;this.wrapper.appendChild(img);}}};/* find and build all carousels */var handleCarousels = function() {var carousels = YAHOO.util.Dom.getElementsByClassName('carousel','ul');carousels = carousels.concat(YAHOO.util.Dom.getElementsByClassName('carousel','ol'));for ( j=0;j<carousels.length;j++ ) {YAHOO.util.Dom.generateId( carousels[j] );YAHOO.util.Dom.removeClass( carousels[j].getElementsByTagName('li'), 'hidden');if (carousels[j].id != 'paged-videos-side') {YAHOO.util.Dom.removeClass( carousels[j].getElementsByTagName('li'), 'last');}var options = {};/* these are special cases */switch (carousels[j].id) {case 'paged-off-world':case 'favorite-ppt-list':case 'paged-activity':options = {'orientation':'vertical'};break;case 'playlist-grid':options = {'controls':{'prev':'playlist-prev','next':'playlist-next'}};break;}new YAHOO.Carousel( carousels[j].id, options );}};/* start carousels when page is ready */YAHOO.util.Event.onContentReady('bd',handleCarousels);})();/* MODULE NAV */(function () {YAHOO.namespace('ModuleNav');YAHOO.ModuleNav = function (nav,content,options) {this.nav = YAHOO.util.Dom.get(this.nav);this.content = YAHOO.util.Dom.get(this.content);/* can't do anything without an element to work with */if (!this.nav || !this.content) {return;}/* set default options */this.options = {};/* override default options */if (options) {for (var option in options) {this.options[option] = options[option];}}/* build everything */this.init();/* create an instance so we can refer to it if we want */YAHOO.ModuleNav.instances[this.el_id] = this;};YAHOO.ModuleNav.instances = {};YAHOO.ModuleNav.prototype = {};})();/* HIDDEN TAGS / RELATED SEARCH */(function () {YAHOO.namespace('ListLimiter');YAHOO.ListLimiter = function (dd) {if (!dd) {return false;}/* build everything */this.init(dd);/* create an instance so we can refer to it if we want *//* YAHOO.ListLimiter.instances[this.el_id] = this; */};YAHOO.ListLimiter.instances = {};YAHOO.ListLimiter.prototype = {init: function(dd) {var uls = dd.getElementsByTagName('ul');/* stop on no list */if (!uls) {return false;}this.ul = uls[0];this.lis = this.ul.getElementsByTagName('li');/* stop on no items */if (!this.lis || this.lis.length < 1) {return false;}var list_height = dd.offsetHeight;var row_height = this.lis[0].offsetHeight;var rows = Math.round(list_height/row_height);if (rows > 1) {/* more link */var more = document.createTextNode('[+more]');this.more = document.createElement('a');this.more.href = "#";YAHOO.util.Dom.addClass(this.more, 'more');YAHOO.util.Event.addListener(this.more, 'click', this.show_more, this, true);this.more.appendChild(more);/* show all link */var all = document.createTextNode('[+show all]');this.all = document.createElement('a');this.all.href = "#";YAHOO.util.Dom.addClass(this.all, 'more');YAHOO.util.Event.addListener(this.all, 'click', this.show_all, this, true);this.all.appendChild(all);/* insert the more link */YAHOO.util.Dom.insertAfter(this.more, this.ul);this.rows = new Array();YAHOO.util.Dom.addClass(this.lis, 'hidden');for ( j=0;j<this.lis.length;j++ ) {YAHOO.util.Dom.removeClass(this.lis[j], 'hidden');if (Math.round(dd.offsetHeight/row_height) > (this.rows.length+1)) {this.rows[this.rows.length] = j;if (this.rows.length == 1) {YAHOO.util.Dom.setStyle(this.more, 'display', 'none');/* insert the all link */YAHOO.util.Dom.insertAfter(this.all, this.more);} else if (this.rows.length == 2) {break;}}}YAHOO.util.Dom.setStyle(this.all, 'display', 'none');YAHOO.util.Dom.setStyle(this.more, 'display', 'inline');/* hide everything except the first row */YAHOO.util.Dom.addClass(this.lis, 'hidden');for ( j=0;j<this.rows[0];j++ ) {YAHOO.util.Dom.removeClass(this.lis[j], 'hidden');}}},show_more: function(e) {YAHOO.util.Event.preventDefault(e);if (this.rows[1]) {for ( j=0;j<this.rows[1];j++ ) {YAHOO.util.Dom.removeClass(this.lis[j], 'hidden');}this.more.parentNode.removeChild(this.more);YAHOO.util.Dom.setStyle(this.all, 'display', 'inline');} else {YAHOO.util.Dom.removeClass(this.lis, 'hidden');this.more.parentNode.removeChild(this.more);}},show_all: function(e) {YAHOO.util.Event.preventDefault(e);YAHOO.util.Dom.removeClass(this.lis, 'hidden');this.all.parentNode.removeChild(this.all);}};YAHOO.util.Event.onContentReady('bd',function() {var classes = ['related-searches','key-associations','tags'];var lists = new Array();for ( i=0; i<classes.length; i++ ) {var dls = YAHOO.util.Dom.getElementsByClassName(classes[i], 'dl');if (!dls) {continue;}for ( j=0; j<dls.length; j++ ) {var dl = dls[j];var dds = dl.getElementsByTagName('dd');if (!dds) {continue;}for ( k=0; k<dds.length; k++ ) {new YAHOO.ListLimiter(dds[k]);}}}});})();/* WORLD BOX */(function(){YAHOO.namespace("WorldBox");YAHOO.WorldBox = function(el) {this.el = YAHOO.util.Dom.get(el);if (!this.el) {return false;}this.id = 'worldbox_' + YAHOO.util.Dom.generateId(this.el);this.init();YAHOO.WorldBox.instances[this.id] = this;};YAHOO.WorldBox.instances = [];YAHOO.WorldBox.prototype = {init: function () {this.buildDialog('<div style="line-height:50px;text-align:center;font-size:1.5em;font-weight:bold;">Content loading...</div>');this.initCallback = {success: function(o) {this.box.hide();if (!o.responseText) {this.box.setBody('There was an error getting your request.');return;}this.body = o.responseText;this.box.setBody(this.body);/* evaluate the scripts in the box *//* will _not_ run any .js file */var scripts = this.box.body.getElementsByTagName("script");for ( i=0;i<scripts.length;i++ ) {eval(scripts[i].innerHTML);}this.box.show();/* override close button functionality and make them close the worldbox */YAHOO.util.Event.removeListener(YAHOO.util.Dom.getElementsByClassName('close',null,this.box.id), 'click');YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('close',null,this.box.id), 'click', function(){this.destroyWorldBox();}, this, true);YAHOO.util.Event.removeListener(YAHOO.util.Dom.getElementsByClassName('container-close',null,this.box.id), 'click');YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('container-close',null,this.box.id), 'click', function(){this.destroyWorldBox();}, this, true);/* run the javascript for this worldbox */prepWorldBox(this.initCallback.scope.el.href);},failure: function(o) {this.box.setBody('There was an error getting your request.');},scope: this};var postBody = this.el.href.match(/\?/) ? 'req=async' : '?req=async';YAHOO.util.Connect.asyncRequest('post', this.el.href, this.initCallback, postBody);},buildDialog: function(content) {var options = {width: '591px',fixedcenter : true,visible : false, constraintoviewport : true,modal : true,postmethod : 'none',zIndex: (this.el.href.indexOf('nickname') != -1) || (this.el.href.indexOf('avatar') != -1) ? 10 : 5};/* Instantiate the Dialog */this.box = new YAHOO.widget.Dialog( this.id, options );/* if the link has a title, use that for the header text */this.box.setHeader(this.el.title ? this.el.title : '&nbsp');/* set the body with response text */this.box.setBody(content);/* give it a footer */this.box.setFooter('<div></div>');/* Render the Dialog */this.box.render(document.body);/* turn off flash when you show a box */this.box.showEvent.subscribe(this.flashOff, this, true);/* Show the box */this.box.show();},destroyWorldBox: function() {this.box.destroy();this.flashOn();YAHOO.WorldBox.instances[this.id] = null;},flashOff: function() {YAHOO.util.Dom.setStyle('video-player','visibility','hidden');YAHOO.util.Dom.setStyle('side-trotter','display','none');var lrecs = YAHOO.util.Dom.getElementsByClassName('lrec-wrap','div');for ( i=0;i<lrecs.length;i++ ) {YAHOO.util.Dom.setStyle(lrecs[i],'display','none');}},flashOn: function() {/* check if there are any more lightboxes */if (YAHOO.util.Dom.getElementsByClassName('yui-panel-container','div').length > 0) {return false;}YAHOO.util.Dom.setStyle('video-player','visibility','visible');YAHOO.util.Dom.setStyle('side-trotter','display','block');var lrecs = YAHOO.util.Dom.getElementsByClassName('lrec-wrap','div');for ( i=0;i<lrecs.length;i++ ) {YAHOO.util.Dom.setStyle(lrecs[i],'display','block');}}};/* STUFF TO DO AFTER YOU OPEN THE LIGHTBOX *//* prep the target worldbox *//* called from success callback */var prepWorldBox = function(url) {var type = url.split('/')[4].split('?')[0].split(';')[0];switch (type) {case 'avatar':prepPhotoChooser();break;case 'nickname':prepNicknameChooser();break;case 'uploads':prepUploads();break;case 'email':prepEmail();break;}};/* avatar chooser */var prepPhotoChooser = function(){var el = YAHOO.util.Dom.get('yIdPhotoChooser');while (!YAHOO.util.Dom.hasClass(el.parentNode, 'yui-panel-container') && el.parentNode.tagName != 'BODY') {el = el.parentNode;}YAHOO.namespace('yIdPhotoChooser');if (!YAHOO.util.Dom.hasClass(el.parentNode, 'yui-panel-container')) {var back = document.createElement('a');back.innerHTML = '&laquo; Back to the page you came from';back.href = '#';YAHOO.util.Event.addListener(back, 'click', function(){history.back();});YAHOO.util.Dom.insertBefore(back, 'yIdPhotoChooser');/* kill the photo chooser */YAHOO.util.Dom.get('yIdPhotoChooser').parentNode.removeChild(YAHOO.util.Dom.get('yIdPhotoChooser'));var link = document.createElement('a');link.href = '/worldbox/avatar';var avatar_worldbox = new YAHOO.WorldBox(link);YAHOO.yIdPhotoChooser.panelObj = avatar_worldbox.box;avatar_worldbox.box.hideEvent.subscribe(function(){/*history.back();*/});} else {YAHOO.yIdPhotoChooser.panelObj = YAHOO.WorldBox.instances[el.id].box;}YAHOO.yIdPhotoChooser.dataStore = {'tnsize':'tn48', 'prop':'Yahoo! Worlds', 'modIntl':'us', 'avSize':'medium'};YAHOO.yIdPhotoChooser.panelObj.updateParent = function(imgId,imgUrl) {/* find and replace all instances of your avatar */var avatars = YAHOO.util.Dom.getElementsByClassName('viewer-avatar','img');for ( i=0;i<avatars.length;i++ ) {avatars[i].src = imgUrl;}var frame_src = YAHOO.util.Dom.get('yIdPhotoChooserFrame').src;YAHOO.yIdPhotoChooser.panelObj.beforeShowEvent.subscribe(function(){YAHOO.util.Dom.get('yIdPhotoChooserFrame').src = frame_src + '&ts=' + Math.random();});};};YAHOO.util.Event.onContentReady('bd', function(){if (YAHOO.util.Dom.get('yIdPhotoChooser')) {prepPhotoChooser();}});/* nickname chooser */var prepNicknameChooser = function() {YAHOO.namespace('yIdentity');YAHOO.yIdentity.nickname = function() {var el = YAHOO.util.Dom.get('yIdNicknameChanger');while (!YAHOO.util.Dom.hasClass(el.parentNode, 'yui-panel-container') && el.parentNode.tagName != 'BODY') {el = el.parentNode;}if (YAHOO.util.Dom.hasClass(el.parentNode, 'yui-panel-container')) {var updateDialog = YAHOO.WorldBox.instances[el.id].box;} else {}var selSuccess = function(o) {var reply = eval('('+o.responseText+')');if ( reply.result == 'OK' ) {var handle = reply.handle ? reply.handle : reply.newNN ? reply.newNN : reply.alias;/* find all instances of your nickname on the page, change them */var nicknames = YAHOO.util.Dom.getElementsByClassName('viewer-nickname');for ( i=0;i<nicknames.length;i++ ) {nicknames[i].innerHTML = handle;}/* change javascript handle */if (selCallback.world_user && reply.handle) {selCallback.world_user.handle = reply.handle;}if (updateDialog) {updateDialog.hide();} else {history.back();}} else {switch (reply.result) {case'BAD_NN_NO_CHARS':case'BAD_NN_LEN':case'NO_NN_TO_SHOW':case'NO_HACKERS':default:}alert('Error: ' + reply.result);}};var handleError = function(o) {alert('Oops, there was a problem changing your nickname. Please try again.');};var selCallback={success:selSuccess,failure:handleError,world_user:world_user};var updateNNInfo = function(e) {if (!YAHOO.util.Dom.get('handle').value) {if (YAHOO.util.Dom.get('usenickname').checked && YAHOO.util.Dom.get('nickname') != '') {var nnPref = YAHOO.util.Dom.get('nickname').value;} else {var nnPref = world_user.alias;}YAHOO.util.Dom.get('handle').value = nnPref;if (!confirm('You have not entered a Character Name. ' + nnPref + ' will be used as your Character Name.')) {return false;}}YAHOO.util.Connect.setForm(YAHOO.util.Dom.get('yIdNicknameChanger'));var form = YAHOO.util.Dom.get('yIdNicknameChanger');YAHOO.util.Connect.asyncRequest('GET', form.action, selCallback);return false;};var radioNudge=function(){document.getElementById('yIdUseNickname').checked=true;document.getElementById('yIdUseAlias').checked=false;};return updateNNInfo();};YAHOO.util.Event.addListener(YAHOO.util.Dom.get('yIdNicknameChanger'),'submit',function(e){YAHOO.util.Event.preventDefault(e);YAHOO.yIdentity.nickname();});};YAHOO.util.Event.onContentReady('bd', function(){if (YAHOO.util.Dom.get('yIdNicknameChanger')) {prepNicknameChooser();}});/* uploads */var prepUploads = function() {YAHOO.namespace('worldUpload');YAHOO.worldUpload = function() {this.init();};YAHOO.worldUpload.prototype = {init: function() {var el = document.getElementById('upload-container');while (!YAHOO.util.Dom.hasClass(el.parentNode, 'yui-panel-container') && el.parentNode.tagName != 'BODY') {el = el.parentNode;}if (YAHOO.util.Dom.hasClass(el.parentNode, 'yui-panel-container')) {this.box = YAHOO.WorldBox.instances[el.id].box;/* reset all the forms when you close the box */this.box.hideEvent.subscribe(function(){YAHOO.util.Dom.get('assoc-image-form').reset();YAHOO.util.Dom.get('image-upload-form').reset();YAHOO.util.Dom.get('video-upload-form').reset();YAHOO.util.Dom.setStyle('video-upload-form', 'display', 'none');YAHOO.util.Dom.setStyle('assoc-image-form', 'display', 'none');YAHOO.util.Dom.setStyle('loading', 'display', 'none');YAHOO.util.Dom.setStyle('image-upload-form', 'display', 'block');YAHOO.util.Dom.removeClass(YAHOO.util.Dom.getChildren('upload-tabs','li'), 'on');YAHOO.util.Dom.addClass(YAHOO.util.Dom.getChildren('upload-tabs')[0],'on');clearAssocSelects();});} else {/* no box */}this.responseObj = null;this.uploadType = null;this.loading = null;}};var uploadBox = new YAHOO.worldUpload();var uploadVideo = function (auth) {/* retrieve auth */if (YAHOO.lang.isUndefined(auth)) {getVideoAuth();return false;}var videoUploadSuccess = function(o) {if (o.responseText !== undefined) {data = YAHOO.Worlds.util.parseJson(o.responseText);if (!YAHOO.lang.isUndefined(data.error) && data.error) {var msg = data.response ? data.response : 'An error occurred';alert(msg);resetForm('video-upload-form');return false;}YAHOO.util.Dom.setStyle('returned-thumb', 'display', 'none');YAHOO.util.Dom.get('asset-assoc-type-id').value = data.response.asset_type_id;YAHOO.util.Dom.get('asset-assoc-id').value = data.response.unique_id;YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('loading'),'display','none');YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('assoc-image-form'),'display','block');/* set uploadBox response object */uploadBox.responseObj = data.response;}};YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('video-upload-form'),'display','none');YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('loading'),'display','block');var callback = {upload: videoUploadSuccess};/* add tags for callback */var tags = YAHOO.util.Dom.get('Tags');var doneUrl = YAHOO.util.Dom.get('_doneUrl');doneUrl.value = doneUrl.value + '&tags=' + encodeURIComponent(tags.value) + '&sessionid=' + encodeURIComponent(auth.sid);YAHOO.util.Connect.setForm('video-upload-form', true);if (YAHOO.lang.isUndefined(this.oC) || !YAHOO.util.Connect.isCallInProgress(this.oC)) {uploadBox.uploadType = 'video';this.oC = YAHOO.util.Connect.asyncRequest('POST', auth.url, callback);}};var uploadPhoto = function() {var photoUploadSuccess = function(o) {if (o.responseText !== undefined) {data = YAHOO.Worlds.util.parseJson(o.responseText);if ((!YAHOO.lang.isUndefined(data.error) && data.error) || YAHOO.lang.isUndefined(data.response)) {var message = !YAHOO.lang.isUndefined(data.response) ? data.response : 'An error occurred uploading this photo.  Please try again.';alert(message);resetForm('image-upload-form');return false;}YAHOO.util.Dom.setStyle('returned-thumb', 'display', 'block');YAHOO.util.Dom.get('returned-thumb').setAttribute('src',data.response.data_photos_sizes.Square.source);YAHOO.util.Dom.get('asset-assoc-type-id').value = data.response.data_photos.asset_type_id;YAHOO.util.Dom.get('asset-assoc-id').value = data.response.data_photos.asset_id;YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('loading'),'display','none');YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('assoc-image-form'),'display','block');/* set uploadBox response object */uploadBox.responseObj = data.response;}else {YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('loading'),'display','none');YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('image-upload-form'),'display','block');alert('An error occurred uploading this photo.  Please try again.');}};YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('image-upload-form'),'display','none');YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('loading'),'display','block');var upForm = 'image-upload-form';var upFormEl = YAHOO.util.Dom.get(upForm);var post = 'req=rpc&upload_type=photos';var callback = {upload: photoUploadSuccess};YAHOO.util.Connect.setForm(upForm, true);if (YAHOO.lang.isUndefined(this.oC) || !YAHOO.util.Connect.isCallInProgress(this.oC)) {uploadBox.uploadType = 'photo';this.oC = YAHOO.util.Connect.asyncRequest('POST', upFormEl.action, callback, post);}};var getVideoAuth = function() {authParamsSuccess = function(o) {if (o.responseText !== undefined) {data = YAHOO.Worlds.util.parseJson(o.responseText);/* make sure we get a response to send back to uploadVideo */if ((!YAHOO.lang.isUndefined(data.error) && data.error) || YAHOO.lang.isUndefined(data.response)) {YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('video-upload-form'),'display','block');YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('loading'),'display','none');var msg = YAHOO.lang.isUndefined(data.response) ? 'Unable to authorize upload.  Please login and try again.' : data.response;alert(msg);return false;}return uploadVideo(data.response);}return false;};/* build url */var upFormEl = YAHOO.util.Dom.get('video-upload-form');var url = upFormEl.action.split('?');var url = url[0] + '?act=get-video-auth&req=async&';/* add video tos check */var vtos = YAHOO.util.Dom.get('video_toscheck');if (vtos) {vtos = !YAHOO.lang.isUndefined(vtos.checked) && vtos.checked ? 1 : 0;url += '&toscheck=' + vtos;}var callback = {success: authParamsSuccess,failure: function() { alert('An error occurred uploading your video.  Please reload the page and try again.'); }};if (YAHOO.lang.isUndefined(this.oC) || !YAHOO.util.Connect.isCallInProgress(this.oC)) {YAHOO.util.Connect.asyncRequest('GET', url, callback);}};var makeAssocs = function() {YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('assoc-image-form'),'display','none');YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('loading'),'display','block');uploadBox.loading = YAHOO.util.Dom.get('loading').innerHTML;var options = YAHOO.util.Dom.get('selected-assocs').getElementsByTagName('option');for ( i=0;i<options.length;i++ ) {options[i].selected = 'true';}var wrapup = function() {var wrapupHTML = [];wrapupHTML.push('<div>Your upload was successful.</div>');if (uploadBox.uploadType == 'video') {wrapupHTML.push('<div>Due to processing time, your video may take up to 2 hours to appear on the site.</div>');}wrapupHTML.push('<div>Thanks for your contribution!</div>');wrapupHTML.push('<div id="wrapup-btns" style="text-align:center; padding-top:15px;">');wrapupHTML.push('<span class="btn form-btn emphasis"><em><input type="button" value="see my '+uploadBox.uploadType+'" class="link" /></em></span>');wrapupHTML.push('<span class="btn form-btn emphasis"><em><input type="button" value="add to this world" class="upload" /></em></span>');wrapupHTML.push('<span class="btn form-btn emphasis"><em><input type="button" value="close" class="close" /></em></span>');wrapupHTML.push('</div>');wrapupHTML = wrapupHTML.join('');YAHOO.util.Dom.get('loading').innerHTML = wrapupHTML;var wrapupBtns = YAHOO.util.Dom.get('wrapup-btns').getElementsByTagName('input');for (i = 0; i < wrapupBtns.length; i++) {YAHOO.util.Event.addListener(wrapupBtns[i], 'click', wrapupAction, wrapupBtns[i]);}};var callback = {success: function(o) {if (o.responseText !== undefined) {data = YAHOO.Worlds.util.parseJson(o.responseText);if ((!YAHOO.lang.isUndefined(data.error) && data.error) || YAHOO.lang.isUndefined(data.response)) {var msg = YAHOO.lang.isUndefined(data.response) ? 'Unable to save associations for this upload.' : data.response;alert(msg);return false;}wrapup();}},failure: function(o) {YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('assoc-image-form'),'display','block');YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('loading'),'display','none');alert('There was an error saving your associations. Please try again.');}};if (YAHOO.util.Dom.get('selected-assocs').getElementsByTagName('option').length == 0) {wrapup();return;}var form = YAHOO.util.Dom.get('assoc-image-form');YAHOO.util.Connect.setForm(form);if (YAHOO.lang.isUndefined(this.oC) || !YAHOO.util.Connect.isCallInProgress(this.oC)) {this.oC = YAHOO.util.Connect.asyncRequest('POST', form.action, callback, 'req=async');}};var wrapupAction = function (e, target) {YAHOO.util.Event.preventDefault(e);switch (target.className) {case 'link':wrapupLink();break;case 'upload':wrapupUpload();break;case 'close':YAHOO.util.Dom.get('loading').innerHTML = uploadBox.loading;uploadBox.box.hide();break;}};var wrapupLink = function() {if (YAHOO.lang.isUndefined(uploadBox.responseObj.asset_link)) {alert('There was a problem finding your upload.');return false;}else {window.location = uploadBox.responseObj.asset_link;return true;}};var wrapupUpload = function() {clearAssocSelects();YAHOO.util.Dom.get('assoc-image-form').reset();YAHOO.util.Dom.get('image-upload-form').reset();YAHOO.util.Dom.get('video-upload-form').reset();YAHOO.util.Dom.setStyle('loading', 'display', 'none');YAHOO.util.Dom.setStyle('video-upload-form', 'display', 'none');YAHOO.util.Dom.setStyle('assoc-image-form', 'display', 'none');YAHOO.util.Dom.setStyle('image-upload-form', 'display', 'block');YAHOO.util.Dom.removeClass(YAHOO.util.Dom.getChildren('upload-tabs','li'), 'on');YAHOO.util.Dom.addClass(YAHOO.util.Dom.getChildren('upload-tabs')[0],'on');YAHOO.util.Dom.get('loading').innerHTML = uploadBox.loading;};var validateUploadForm = function (type) {/* grab form vars */var YUD = YAHOO.util.Dom;var file = null;var title = null;var description = null;var tags = null;var tos = null;/* get the appropriate elements */if (type == 'video') {file = YUD.get('VIDEOFILE');title = YUD.get('Title');description = YUD.get('vDescription');tags = YUD.get('Tags');tos = YUD.get('video_toscheck');}else if (type == 'image') {file = YUD.get('upfile');title = YUD.get('uptitle');description = YUD.get('updescription');tags = YUD.get('uptags');tos = YUD.get('photo_toscheck');}else if (type == 'assocs') {if (YAHOO.util.Dom.get('selected-assocs').getElementsByTagName('option').length == 0) {return confirm('You have made no associations, would you still like to save?');} else {return true;}}/* make sure we have handles */if (!file || !title || !description || !tags) {return false;}/* not empty */var regex = /^\s*$/;/* check file */if (file.value.match(regex)) {alert('Please enter a valid file to upload.');return false;}/* check title */if (title.value.match(regex)) {alert('Please enter a title for this upload.');return false;}/* check description */if (description.value.match(regex)) {alert('Please enter a description for this upload.');return false;}/* check tags */if (tags.value.match(regex)) {alert('Please add at least one tag for this upload.');return false;}/* check tos */if (tos && !tos.checked) {alert('Please review the terms of service and accept if you wish to upload.');return false;}return true;};/* handle switching upload type */var navClick = function(e, target) {YAHOO.util.Event.preventDefault(e);var arguments = target.href.split("&");for ( i=0;i<arguments.length;i++ ) {if (arguments[i].indexOf('tab=') != '-1') {var tab = arguments[i].replace('tab=', '');}}if (!tab) {return false;}YAHOO.util.Dom.removeClass(YAHOO.util.Dom.getChildren(YAHOO.util.Dom.getAncestorByClassName(target, 'upload-types')), 'on');YAHOO.util.Dom.setStyle(document.getElementById('upload-container').getElementsByTagName('form'), 'display', 'none');YAHOO.util.Dom.addClass(target.parentNode, 'on');YAHOO.util.Dom.setStyle(tab + '-upload-form', 'display', 'block');};var uls = YAHOO.util.Dom.getElementsByClassName('upload-types', 'ul', 'upload-container');var tabs = uls[0].getElementsByTagName('a');for ( j=0;j<tabs.length;j++ ) {YAHOO.util.Event.addListener(tabs[j], 'click', navClick, tabs[j]);}/* handle form submission */var handleSubmit = function(e, target) {YAHOO.util.Event.preventDefault(e);if (!validateUploadForm(target.formType.value)) {return false;}var upType = target.formType.value;switch (upType) {case 'video':uploadVideo();break;case 'image':uploadPhoto();break;case 'assocs':makeAssocs();break;default:alert('Could not recognize upload type.');return false;}};var upload_forms = YAHOO.util.Dom.get('upload-container').getElementsByTagName('form');for ( j=0;j<upload_forms.length;j++) {YAHOO.util.Event.addListener(upload_forms[j], 'submit', handleSubmit, upload_forms[j]);}/* MOVE ASSOCIATIONS AROUND */var addAssociate = function(e) {var options = YAHOO.util.Dom.get('searched-assocs').getElementsByTagName('option');var to_move = new Array();for ( i=0;i<options.length;i++ ) {if (options[i].selected && (options[i].value != 0)) {to_move[to_move.length] = options[i];}}for ( i=0;i<to_move.length;i++ ) {YAHOO.util.Dom.get('selected-assocs').appendChild(to_move[i]);}};YAHOO.util.Event.addListener('add-assoc', 'click', addAssociate);var removeAssociate = function(e) {var options = YAHOO.util.Dom.get('selected-assocs').getElementsByTagName('option');var to_move = new Array();for ( i=0;i<options.length;i++ ) {if (options[i].selected) {to_move[to_move.length] = options[i];}}for ( i=0;i<to_move.length;i++ ) {YAHOO.util.Dom.get('searched-assocs').appendChild(to_move[i]);}};YAHOO.util.Event.addListener('remove-assoc', 'click', removeAssociate);var searchAssociations = function(e) {var callback = {success: function(o) {if (o.responseText !== undefined) {data = YAHOO.Worlds.util.parseJson(o.responseText);if (!data) {alert('An error occurred searching for associations.  Please try again.');return false;}if ((!YAHOO.lang.isUndefined(data.error) && data.error) || YAHOO.lang.isUndefined(data.response)) {var message = !YAHOO.lang.isUndefined(data.response) ? data.response : 'An error occurred searching for associations.  Please try again.';alert(message);return false;}/* remove all the current options */clearAssocSelects('searched-assocs');/* go through the response and append options to select box */if (data.response.length < 1) {var option = document.createElement('OPTION');option.value = 0;option.text = 'no results found';YAHOO.util.Dom.get('searched-assocs').options.add(option, 0);}else {for (i=0; i < data.response.length; i++) {var option = document.createElement('OPTION');option.value = data.response[i].asset;option.text = data.response[i].title;YAHOO.util.Dom.get('searched-assocs').options.add(option, i);}}}else {alert('An error occurred searching for associations.  Please try again.');}},failure: function() {alert('search failed');}};/* set term */var term = YAHOO.util.Dom.get('upload-assoc-search-term').value;/* test term */if (term.match(/^\s*$/)) {alert('Please enter a term to search for associations.');return false;}/* build url */var url = YAHOO.util.Dom.get('upload-search-assoc-url').value + '&q=' + encodeURIComponent(term);if (YAHOO.lang.isUndefined(this.oC) || !YAHOO.util.Connect.isCallInProgress(this.oC)) {clearAssocSelects('searched-assocs');var option = document.createElement('OPTION');option.value = 0;option.text = 'searching...';YAHOO.util.Dom.get('searched-assocs').options.add(option, 0);this.oC = YAHOO.util.Connect.asyncRequest('GET', url, callback);}};YAHOO.util.Event.addListener('upload-search-assocs', 'click', searchAssociations);var resetForm = function(form) {if (YAHOO.lang.isUndefined(form)) {return false;}YAHOO.util.Dom.setStyle('loading', 'display', 'none');YAHOO.util.Dom.setStyle(form, 'display', 'block');/* reset the form */if (formEl = YAHOO.util.Dom.get(form)) {formEl.reset();}};var clearAssocSelects = function(select) {if (YAHOO.lang.isUndefined(select) || (select == 'searched-assocs')) {/* remove all the current searched options */while (YAHOO.util.Dom.get('searched-assocs').firstChild) {YAHOO.util.Dom.get('searched-assocs').removeChild(YAHOO.util.Dom.get('searched-assocs').firstChild);}}if (YAHOO.lang.isUndefined(select) || (select == 'selected-assocs')) {/* remove all the current selected options */while (YAHOO.util.Dom.get('selected-assocs').firstChild) {YAHOO.util.Dom.get('selected-assocs').removeChild(YAHOO.util.Dom.get('selected-assocs').firstChild);}}};};YAHOO.util.Event.onContentReady('bd', function(){if (YAHOO.util.Dom.get('upload-container')) {prepNicknameChooser();}});/* EMAIL WORLDBOX */var prepEmail = function() {var el = YAHOO.util.Dom.get('sendmail');while (!YAHOO.util.Dom.hasClass(el.parentNode, 'yui-panel-container') && el.parentNode.tagName != 'BODY') {el = el.parentNode;}if (YAHOO.util.Dom.hasClass(el.parentNode, 'yui-panel-container')) {var updateDialog = YAHOO.WorldBox.instances[el.id];} else {/* you're not in a worldbox... */}var handleEmailSubmit = function (e) {YAHOO.util.Event.preventDefault(e);var form = YAHOO.util.Dom.get('sendmail');/* required field */if (form.remail.value == '') {alert('You must enter at least one email address.');form.remail.focus();return false;}YAHOO.util.Dom.addClass(form, 'hidden');var msg = document.createElement('p');msg.innerHTML = 'Processing...';YAHOO.util.Dom.insertBefore(msg, form);var selSuccess = function(o){if (o.responseText.charAt(0) != '{') {msg.parentNode.removeChild(msg);YAHOO.util.Dom.removeClass(form, 'hidden');alert('There was a problem with your request. Please try again.\n\n' + o.responseText);return false;}var reply=eval('('+o.responseText+')');if ( reply.result == 'OK' ){alert('Email sent successfully.');if (!updateDialog) {history.back();} else {updateDialog.destroyWorldBox();}}else {msg.parentNode.removeChild(msg);YAHOO.util.Dom.removeClass(form, 'hidden');alert('Error: ' + reply.result);}};var handleError=function(o){alert('Oops, there was a problem sending your email. Please try again.');};var selCallback = {success:selSuccess,failure:handleError};YAHOO.util.Connect.setForm(form);YAHOO.util.Connect.asyncRequest('POST', form.action, selCallback);};YAHOO.util.Event.removeListener( YAHOO.util.Dom.get('sendmail'), 'submit' );YAHOO.util.Event.addListener( YAHOO.util.Dom.get('sendmail'), 'submit', handleEmailSubmit );};YAHOO.util.Event.onContentReady('bd', function(){if (YAHOO.util.Dom.get('sendmail')) {prepEmail();}});})();/* LINK HANDLER */(function () {var linkHandler = function(ev) {/* GET ALL THE A TAGS *//* var links = document.getElementsByTagName('a'); *//* ACTUALLY, JUST GET THE A TAGS WITH A REL */var links = YAHOO.util.Dom.getElementsBy(function(el){if(el.rel){return true;}return false;},'a');for (i = 0; i < links.length; i++) {/* BASED ON THE REL DO THE VOODOO THAT YOU NEED TO */switch(links[i].rel) {case 'external':YAHOO.util.Event.on(links[i], 'click', externalLinks);break;case 'worldbox':YAHOO.util.Event.on(links[i], 'click', worldboxLinks);break;}}};/* EXTERNAL LINKS */var externalLinks = function(ev) {YAHOO.util.Event.preventDefault(ev);var el = YAHOO.util.Event.getTarget(ev);var link = el.rel == 'external' ? el : YAHOO.util.Dom.getAncestorByTagName(el, 'a');window.open(link.href);};/* WORLDBOX LINKS */var worldboxLinks = function(ev) {var el = YAHOO.util.Event.getTarget(ev);var link = el.rel == 'worldbox' ? el : YAHOO.util.Dom.getAncestorByTagName(el, 'a');if (link.href.split('/')[2] == 'login.yahoo.com') {return false;}YAHOO.util.Event.preventDefault(ev);var target = link.href.split('/')[4].split('?')[0];switch(target) {case 'uploads':if (!YAHOO.checkHandle()) {return false;}break;}if (YAHOO.WorldBox.instances['worldbox_' + link.id]) {if (YAHOO.WorldBox.instances['worldbox_' + link.id].box) {YAHOO.WorldBox.instances['worldbox_' + link.id].box.show();}} else {new YAHOO.WorldBox(link);}};/* ON DOM READY DOESN'T WORK IN IE THIS CASE *//* YAHOO.util.Event.onDOMReady(linkHandler); */YAHOO.util.Event.onContentReady('bd', linkHandler);})();/* TAGS */(function () {/* TAG FOLD */var USER_TAGS = null;var triggerTagFold = function(ev) {/* PREVENT DEFAULT OPERATION */YAHOO.util.Event.preventDefault(ev);if (!YAHOO.checkHandle()) {return false;}var h = !parseInt(YAHOO.util.Dom.getStyle('add-tag-container', 'height')) ? 85 : 0;YAHOO.Worlds.util.fold('add-tag-container', {height: h});};/* GET THE TAG-IT CONTAINER */var getTagContainer = function(ev) {if (!YAHOO.util.Dom.get('add-tags')) return false;USER_TAGS = YAHOO.util.Dom.get('add-tags').value;var tagContainer = YAHOO.util.Dom.getElementsByClassName('tag-it', 'span', 'toolbar');if (tagContainer != '' && !YAHOO.util.Dom.hasClass(tagContainer[0], 'no-auth')) {YAHOO.util.Event.on('tag-drawer', 'click', triggerTagFold);}};YAHOO.util.Event.onContentReady('bd', getTagContainer);var triggerTagPost = function(ev) {YAHOO.util.Event.preventDefault(ev);/* VALIDATE */var tags = YAHOO.util.Dom.get('add-tags'); if (tags.value.match(/^\s*$/) && USER_TAGS.match(/^\s*$/)) {alert('Please enter a tag to add.');return false;}if (tags.value.length > 500) {alert('Sorry, the tag field has a limit of 500 characters');return false;}var addTagSuccess = function(o) {if (o.responseText !== undefined) {var data = YAHOO.Worlds.util.parseJson(o.responseText);if (data.stat != 1) {var error = YAHOO.lang.isUndefined(data.response) ? 'An error occurred addding tags.' : data.response;alert(error);/* SET BACK TO FORM */YAHOO.util.Dom.get('tag-msg').parentNode.removeChild(YAHOO.util.Dom.get('tag-msg'));YAHOO.util.Dom.setStyle('add-tag-form', 'display', 'block');return false;}var tagsDl = YAHOO.util.Dom.getElementsByClassName('tags', 'dl')[0];/* build new tags */if (!YAHOO.lang.isUndefined(data.response.asset_tags) && data.response.asset_tags.length > 0) {var tags = data.response.asset_tags;var tags_html = [];for (i = 0; i < tags.length; i++) {if (i != 0) {tags_html.push('<li>, ');}tags_html.push('<a href="/search?query='+tags[i].tag_name.replace(/\s*/,'+')+'">'+tags[i].tag_name+'</a>');tags_html.push('</li>');}tags_html = tags_html.join('');YAHOO.util.Dom.getElementsByClassName('asset-tags', 'ul', tagsDl)[0].innerHTML = tags_html;USER_TAGS = YAHOO.util.Dom.get('add-tags').value;/* display tags dl */if (YAHOO.util.Dom.hasClass(tagsDl, 'hidden')) {YAHOO.util.Dom.removeClass(tagsDl, 'hidden');}}else {YAHOO.util.Dom.addClass(tagsDl, 'hidden');}callback.msg.innerHTML = 'Tags saved successfully!';setTimeout("YAHOO.Worlds.util.fold('add-tag-container');", 1000);setTimeout("YAHOO.util.Dom.get('tag-msg').parentNode.removeChild(YAHOO.util.Dom.get('tag-msg'));YAHOO.util.Dom.setStyle('add-tag-form', 'display', 'block');", 1500);return true;}alert('An error occurred adding tags.');return false;};var msg = document.createElement('span');msg.id = 'tag-msg';msg.innerHTML = 'Saving...';var callback = {success: addTagSuccess,failure: function() { alert('An error occurred submitting your tags.  Please reload the page and try again.') },msg: msg};var tagForm = YAHOO.util.Dom.get('add-tag-form');YAHOO.util.Dom.setStyle(tagForm, 'display', 'none');YAHOO.util.Dom.insertAfter(msg, tagForm);YAHOO.util.Connect.setForm('add-tag-form');if (YAHOO.lang.isUndefined(this.oC) || !YAHOO.util.Connect.isCallInProgress(this.oC)) {this.oC = YAHOO.util.Connect.asyncRequest('POST', tagForm.action, callback, 'req=async');}};/* ADD TAG EVENT TRIGGER */var getTagSubmitBtn = function(ev) {var tagSubmitBtn = YAHOO.util.Dom.getElementsByClassName('tags-submit', 'input', 'add-tag-container');if (tagSubmitBtn != '') {YAHOO.util.Event.on(tagSubmitBtn, 'click', triggerTagPost);}};YAHOO.util.Event.onContentReady('bd', getTagSubmitBtn);/* CLOSE TAG FOLD */var getTagCancelBtn = function(ev) {var tagCancelBtn = YAHOO.util.Dom.getElementsByClassName('tags-cancel', 'a', 'add-tag-container');if (tagCancelBtn != '') {YAHOO.util.Event.on(tagCancelBtn, 'click', function(e) {YAHOO.util.Event.preventDefault(e);YAHOO.Worlds.util.fold('add-tag-container');});}};YAHOO.util.Event.onContentReady('bd', getTagCancelBtn);})();/* RATINGS */(function () {var triggerRatingPost = function (e) {/* PREVENT DEFAULT OPERATION */YAHOO.util.Event.preventDefault(e);if (!YAHOO.checkHandle()) {return false;}var target = YAHOO.util.Event.getTarget(e);var link = target.className == 'btn' ? target : YAHOO.util.Dom.getAncestorByTagName(target, 'a');/* SOME FEEDBACK */link.innerHTML = '<em><span>saving...</span></em>';var onSuccess = function(o) {if (o.responseText !== undefined) {var data = YAHOO.Worlds.util.parseJson(o.responseText);if (!YAHOO.lang.isUndefined(data.error) && data.error) {alert(data.response);return false;}}var YUD = YAHOO.util.Dom;/* WALK DOWN TO SPAN TO SET INNERHTML */var up = YUD.getFirstChild(YUD.getFirstChild(YUD.get('thumbs-up')));YAHOO.util.Dom.addClass(up, 'icon-thumbs-up');var down = YUD.getFirstChild(YUD.getFirstChild(YUD.get('thumbs-down')));YAHOO.util.Dom.addClass(down, 'icon-thumbs-down');/* SET RATING */up.innerHTML = data.response.up;down.innerHTML = data.response.down;/* UPDATE STYLES */YUD.removeClass(ratingBtns, 'selected');YUD.addClass(link, 'selected');};var callback = {success: onSuccess,failure: function(o) { alert('Unable to submit rating.  Please reload the page and try again.'); }};var rateForm = YAHOO.util.Dom.get('rate-form');var post = 'req=async';if (link.id == 'thumbs-up') {post += '&rating=1';}else if (link.id == 'thumbs-down') {post += '&rating=0';}YAHOO.util.Connect.setForm(rateForm);if (YAHOO.lang.isUndefined(this.oC) || !YAHOO.util.Connect.isCallInProgress(this.oC)) {this.oC = YAHOO.util.Connect.asyncRequest('POST', rateForm.action, callback, post);}};/* GET THE RATE CONTAINER */var getRateContainer = function(ev) {var rateContainer = YAHOO.util.Dom.getElementsByClassName('rate', 'span', 'toolbar');if (rateContainer != '' && !YAHOO.util.Dom.hasClass(rateContainer[0], 'no-auth')) {ratingBtns = [YAHOO.util.Dom.get('thumbs-up'), YAHOO.util.Dom.get('thumbs-down')];YAHOO.util.Event.on(ratingBtns, 'click', triggerRatingPost);}};YAHOO.util.Event.onContentReady('bd', getRateContainer);})();/* FAVORITES */(function () {/* HANDLE FAVORITE CLICKS */var triggerFavoritesPost = function(ev) {YAHOO.util.Event.preventDefault(ev);if (!YAHOO.checkHandle()) {return false;}var el = YAHOO.util.Event.getTarget(ev);YAHOO.util.Dom.addClass(el,'saving');var orig_innerHTML = el.innerHTML;el.innerHTML = "Saving...";var onSuccess = function(o) {YAHOO.util.Dom.removeClass(el,'saving');el.innerHTML = el.innerHTML;if (o.responseText !== undefined) {var data = YAHOO.Worlds.util.parseJson(o.responseText);if (!data.stat) {alert('There was an error adding this as a favorite.');}if (data.stat == 1) {if (!YAHOO.util.Dom.hasClass(el,'icon-favorite-selected')) {YAHOO.util.Dom.replaceClass(el, 'icon-favorite', 'icon-favorite-selected');el.title = 'Remove from Favorites';el.innerHTML = 'Remove from Favorites';el.href = el.href.replace(/add\-favorite/,"delete-favorite");} else {YAHOO.util.Dom.replaceClass(el, 'icon-favorite-selected', 'icon-favorite');el.title = 'Add to Favorites';el.innerHTML = 'Add to Favorites';el.href = el.href.replace(/delete\-favorite/,"add-favorite");}}if (!YAHOO.lang.isUndefined(data.error) && data.error) {alert(data.response);return false;}}};var callback = {success: onSuccess,failure: function(o) { alert('something bad happened.'); }};if (YAHOO.lang.isUndefined(this.oC) || !YAHOO.util.Connect.isCallInProgress(this.oC)) {this.oC = YAHOO.util.Connect.asyncRequest('GET', el.href + '&req=async', callback);}};/* GET FAVORITE BTNS */var getFavoriteBtns = function(ev) {var favoriteBtns = YAHOO.util.Dom.getElementsBy(function(el){if (!YAHOO.util.Dom.hasClass(el,'no-auth') && (YAHOO.util.Dom.hasClass(el,'icon-favorite') || YAHOO.util.Dom.hasClass(el,'icon-favorite-selected'))) {return true;}return false;},'a');/* CHECK THAT THERE ARE FAVORITE BTNS BEFORE ATTACHING EVENT */if (favoriteBtns != '') {YAHOO.util.Event.on(favoriteBtns, 'click', triggerFavoritesPost);}};YAHOO.util.Event.onContentReady('bd', getFavoriteBtns);})();/* CONTACTS */(function () {/* HANDLE CONTACT CLICKS */var triggerFriendsPost = function(ev) {YAHOO.util.Event.preventDefault(ev);if (!YAHOO.checkHandle()) {return false;}var el = YAHOO.util.Event.getTarget(ev);var onSuccess = function(o) {if (!YAHOO.util.Dom.hasClass(el,'icon-contact-selected')) {YAHOO.util.Dom.replaceClass(el, 'icon-contact', 'icon-contact-selected');el.title = 'Remove from Contacts';el.innerHTML = 'Remove from Contacts';el.href = el.href.replace(/add\-friend/,"remove-friend");} else {YAHOO.util.Dom.replaceClass(el, 'icon-contact-selected', 'icon-contact');el.title = 'Add to Contacts';el.innerHTML = 'Add to Contacts';el.href = el.href.replace(/remove\-friend/,"add-friend");}};var callback = {success: onSuccess,failure: function(o) { alert('something bad happened.'); }};if (YAHOO.lang.isUndefined(this.oC) || !YAHOO.util.Connect.isCallInProgress(this.oC)) {this.oC = YAHOO.util.Connect.asyncRequest('GET', el.href + '&req=async', callback);}};/* GET CONTACT BTNS */var getContactBtns = function(ev) {var contactBtns = YAHOO.util.Dom.getElementsBy(function(el){if (YAHOO.util.Dom.hasClass(el,'icon-contact') || YAHOO.util.Dom.hasClass(el,'icon-contact-selected')){return true;}return false;},'a');/* CHECK THAT THERE ARE CONTACT BTNS BEFORE ATTACHING EVENT */if (contactBtns != '') {YAHOO.util.Event.on(contactBtns, 'click', triggerFriendsPost);}};YAHOO.util.Event.onContentReady('bd', getContactBtns);})();/* HOMEPAGE PROMOS *//* this should maybe move to a file that's only included on the homepage */(function () {/* ANIMATION */var triggerPromoFold = function(ev) {var el = YAHOO.util.Event.getTarget(ev);/* GET PROMO LINK */var promo = el.className == 'promo-link' ? el : YAHOO.util.Dom.getAncestorByClassName(el, 'promo-link');/* GET PROMO TEXT */var promoTxt = YAHOO.util.Dom.getFirstChildBy(promo, function(n) {if (YAHOO.util.Dom.hasClass(n, 'promo-txt')) {return true;}return false;});/* GET CONTAINER */var container = el.parentNode;while(container) {if (YAHOO.util.Dom.hasClass(container, 'promo')) {break;}container = container.parentNode;}/* MOUSEOVER OR MOUSEOUT */if (ev.type == 'mouseover') {if (YAHOO.util.Dom.hasClass(container, 'md')) {var h = 100;} else if (YAHOO.util.Dom.hasClass(container, 'sm')) {var h = 80;}YAHOO.Worlds.util.fold(promoTxt, {height: h});} else {if (YAHOO.util.Dom.hasClass(container, 'md')) {var h = 50;} else if (YAHOO.util.Dom.hasClass(container, 'sm')) {var h = 20;}YAHOO.Worlds.util.fold(promoTxt, {height: h});}};/* GET PROMOS */var getPromos = function(ev) {var promo = YAHOO.util.Dom.getElementsByClassName('promo-link', 'a');/* CHECK THAT THERE ARE PROMOS BEFORE ATTACHING EVENTS */if (promo != '') {YAHOO.util.Event.on(promo, 'mouseover', triggerPromoFold);YAHOO.util.Event.on(promo, 'mouseout', triggerPromoFold);}};YAHOO.util.Event.onContentReady('bd', getPromos);})();/* SITE HEADER - MORE YAHOO DROPDOWN */(function () {var moreYahooDropdown = function(ev) {var el = YAHOO.util.Event.getTarget(ev);var moreYahoo = YAHOO.util.Dom.get('yahoo-nav-more');if (!YAHOO.util.Dom.isAncestor(moreYahoo, el)) {/* prevent default operation */YAHOO.util.Event.preventDefault(ev);if (YAHOO.util.Dom.getStyle(moreYahoo, 'display') == 'none') {YAHOO.util.Dom.setStyle(moreYahoo, 'display', 'block');} else {YAHOO.util.Dom.setStyle(moreYahoo, 'display', 'none');}}};/* GET MORE YAHOO DROPDOWN */var getMoreYahooDropdown = function(ev) {var moreYahooTarget = YAHOO.util.Dom.getElementsByClassName('more', 'li', 'yahoo-nav');YAHOO.util.Event.on(moreYahooTarget, 'click', moreYahooDropdown);};YAHOO.util.Event.onContentReady('bd', getMoreYahooDropdown);})();/* SITE HEADER - MAKE 'SEARCH' DISAPPEAR ONFOCUS */(function () {var worldSearch = function(ev) {var el = YAHOO.util.Event.getTarget(ev);if (el.value == 'search') {el.value='';}};YAHOO.util.Event.on('query', 'focus', worldSearch);})();(function () {var worldBlogTitle = function(ev) {var el = YAHOO.util.Event.getTarget(ev);if (el.value == 'Title of blog entry') {el.value='';}};YAHOO.util.Event.on('blog-title', 'focus', worldBlogTitle);})();(function () {var worldBlogText = function(ev) {var el = YAHOO.util.Event.getTarget(ev);if (el.value == 'Blog entry text') {el.value='';}};YAHOO.util.Event.on('blog-text', 'focus', worldBlogText);})();/* HANDLE CHECK *//* checks for forms containing the handle-required class and pops the nickname worldbox if they don't have a handle set */(function () {YAHOO.namespace("checkHandle");YAHOO.checkHandle = function () {if (!world_user.handle && world_user.user_status) {new YAHOO.WorldBox('user-nickname');return false;}return true;}})();/* COMMENTS *//* this could work for async forms */(function(){var formSubmissionHandler = function(e, target){YAHOO.util.Event.preventDefault(e);if (!YAHOO.checkHandle()) return false;/* did you make a comment? */if (target.comment_text.value == '') {alert('I think you forgot your comment!');return false;}YAHOO.util.Connect.setForm(target);/* hide form */YAHOO.util.Dom.setStyle(target, 'display', 'none');/* hide legal */YAHOO.util.Dom.addClass(YAHOO.util.Dom.getElementsByClassName('legal-comments'),'hidden');/* show processing */var processing = document.createElement('div');YAHOO.util.Dom.addClass(processing, 'processing');processing.innerHTML = 'Processing...';YAHOO.util.Dom.insertAfter(processing, target);var callback = {success: function(o) {var data = YAHOO.Worlds.util.parseJson(o.responseText);if (data.error) {var msg = data.response ? data.response : 'An error occurred submitting this comment.  Try using the force next time.';alert(msg);/* destroy processing */callback.processing.parentNode.removeChild(callback.processing);YAHOO.util.Dom.setStyle(callback.form,'display','block');return false;}/* reset comment */callback.form.comment_text.value = '';/* destroy processing */callback.processing.innerHTML = "Your comment was saved!  Reload the page to see other's replies and add more comments.";switch (callback.form.act.value) {case 'post-comment':var comment_lists = YAHOO.util.Dom.getElementsByClassName('comments-list','ol',callback.form.parentNode);var comment = document.createElement('li');comment.innerHTML = data.response;if (YAHOO.util.Dom.getFirstChild(comment_lists[0])) {YAHOO.util.Dom.insertBefore(comment, YAHOO.util.Dom.getFirstChild(comment_lists[0]));} else {var comment_list = document.createElement('ol');YAHOO.util.Dom.addClass(comment_list, 'comments');comment_list.appendChild(comment);YAHOO.util.Dom.insertBefore(comment_list,callback.form.parentNode);}break;}},failure: function(o) {alert('There was an error processing your request. Please try again.');},form: target,processing: processing};var postBody = "req=async";var url = target.action != '' ? target.action : document.location;YAHOO.util.Connect.asyncRequest( target.method, url, callback, postBody );};YAHOO.util.Event.onDOMReady(function(){/* find all the forms */var forms = document.getElementsByTagName('form');/* handle some specific profile forms */for ( i=0;i<forms.length;i++ ) {var form = forms[i];if (!form.act) continue;switch (form.act.value) {case 'post-comment':YAHOO.util.Event.addListener(form, 'submit', formSubmissionHandler, form);break;}}});})();/* PROFILES */(function(){/* IMAGE CHANGING STUFF */var showImgActions = function(e) {YAHOO.util.Dom.setStyle('profile-img-actions', 'display', 'block');YAHOO.util.Dom.setStyle('profile-user-image', 'opacity', 0.3);};var hideImgActions = function(e) {YAHOO.util.Dom.setStyle('profile-img-actions', 'display', 'none');YAHOO.util.Dom.setStyle('profile-user-image', 'opacity', 1);};var showImgForm = function(e) {YAHOO.util.Event.preventDefault(e);YAHOO.util.Dom.setStyle('post-img-form', 'display', 'block');YAHOO.util.Event.removeListener('post-image-wrapper', 'mouseover');YAHOO.util.Event.removeListener('post-image-wrapper', 'mouseout');YAHOO.util.Dom.get('post-img-form').img_url.focus();YAHOO.util.Dom.get('post-img-form').img_url.select();};var hideImgForm = function(e) {YAHOO.util.Dom.setStyle('post-img-form', 'display', 'none');YAHOO.util.Event.addListener('post-image-wrapper', 'mouseover', showImgActions);YAHOO.util.Event.addListener('post-image-wrapper', 'mouseout', hideImgActions);};var prepareImgEditing = function() {YAHOO.util.Event.addListener('post-image-wrapper', 'mouseover', showImgActions);YAHOO.util.Event.addListener('post-image-wrapper', 'mouseout', hideImgActions);YAHOO.util.Event.addListener('post-img-cancel', 'click', hideImgForm);YAHOO.util.Dom.setStyle('post-img-form', 'display', 'none');YAHOO.util.Dom.setStyle('post-img-form', 'position', 'absolute');YAHOO.util.Dom.setStyle('post-img-form', 'top', '1em');YAHOO.util.Dom.setStyle('post-img-form', 'left', '1em');YAHOO.util.Event.addListener('profile-change-img', 'click', showImgForm);};/* BLOG PREP */var prepareBlogEditing = function() {YAHOO.util.Event.addListener('edit-blog-title','mouseover',function(e){YAHOO.util.Dom.setStyle('edit-blog-title', 'background-color', '#ffc');YAHOO.util.Dom.setStyle('edit-blog-title', 'cursor', 'text');});YAHOO.util.Event.addListener('edit-blog-text','mouseover',function(e){YAHOO.util.Dom.setStyle('edit-blog-text', 'background-color', '#ffc');YAHOO.util.Dom.setStyle('edit-blog-text', 'cursor', 'text');});YAHOO.util.Event.addListener('edit-blog-title','mouseout',function(e){YAHOO.util.Dom.setStyle('edit-blog-title', 'background-color', 'transparent');});YAHOO.util.Event.addListener('edit-blog-text','mouseout',function(e){YAHOO.util.Dom.setStyle('edit-blog-text', 'background-color', 'transparent');});YAHOO.util.Event.addListener(['edit-blog-title','edit-blog-text'],'click',function(e){YAHOO.util.Dom.setStyle('edit-blog-title', 'display', 'none');YAHOO.util.Dom.setStyle('edit-blog-text', 'display', 'none');  YAHOO.util.Dom.setStyle('blog-edit','display', 'block');  YAHOO.util.Dom.setStyle('blog-edit-form','display', 'block');});YAHOO.util.Event.addListener('blog-edit-cancel','click',function(e){YAHOO.util.Dom.setStyle('blog-edit','display','none');YAHOO.util.Dom.setStyle('profile-blog-edit', 'display', 'block');YAHOO.util.Dom.setStyle('edit-blog-title', 'display', 'block');YAHOO.util.Dom.setStyle('edit-blog-text', 'display', 'block');});};/* QUOTE PREP */var prepareQuoteEditing = function() {YAHOO.util.Dom.setStyle('post-quote-form','display','none');YAHOO.util.Event.addListener('profile-user-quote','mouseover',function(e){YAHOO.util.Dom.setStyle('profile-user-quote', 'background-color', '#ffc');YAHOO.util.Dom.setStyle('profile-user-quote', 'cursor', 'text');});YAHOO.util.Event.addListener('profile-user-quote','mouseout',function(e){YAHOO.util.Dom.setStyle('profile-user-quote', 'background-color', 'transparent');});YAHOO.util.Event.addListener('profile-user-quote','click',function(e){YAHOO.util.Dom.setStyle('profile-user-quote', 'display', 'none');YAHOO.util.Dom.setStyle('post-quote-form','display', 'block');YAHOO.util.Dom.get('post-quote-form').quote_text.focus();YAHOO.util.Dom.get('post-quote-form').quote_text.select();});YAHOO.util.Event.addListener('post-quote-cancel','click',function(e){YAHOO.util.Dom.setStyle('post-quote-form','display','none');YAHOO.util.Dom.setStyle('profile-user-quote', 'display', 'block');});};/* STATUS PREP */var prepareStatusEditing = function() {YAHOO.util.Dom.setStyle('post-status-form','display','none');YAHOO.util.Event.addListener('profile-user-status','mouseover',function(e){YAHOO.util.Dom.setStyle('profile-user-status', 'background-color', '#ffc');YAHOO.util.Dom.setStyle('profile-user-status', 'cursor', 'text');YAHOO.util.Dom.setStyle('profile-user-status', 'color', '#333');});YAHOO.util.Event.addListener('profile-user-status','mouseout',function(e){YAHOO.util.Dom.setStyle('profile-user-status', 'background-color', 'transparent');YAHOO.util.Dom.setStyle('profile-user-status', 'color', '#fff');});YAHOO.util.Event.addListener('profile-user-status','click',function(e){YAHOO.util.Dom.setStyle('profile-user-status', 'display', 'none');YAHOO.util.Dom.setStyle('post-status-form','display', 'block');YAHOO.util.Dom.get('post-status-form').status_text.focus();YAHOO.util.Dom.get('post-status-form').status_text.select();});YAHOO.util.Event.addListener('post-status-cancel','click',function(e){YAHOO.util.Dom.setStyle('post-status-form','display','none');YAHOO.util.Dom.setStyle('profile-user-status', 'display', 'block');});};/* if viewer is self prepare prepare inline editing */YAHOO.util.Event.onDOMReady(function(){if (YAHOO.util.Dom.get('post-status-form')) {prepareImgEditing();prepareBlogEditing();prepareQuoteEditing();prepareStatusEditing();}});/* use this to create a comment li */var createComment = function(message) {var comment = document.createElement('div');comment.className = "half";YAHOO.util.Dom.setStyle(comment, 'opacity', 0);var profile_link = document.createElement('a');profile_link.href = "/users/" + world_user.unique_id;var hd = document.createElement('h5');var a = profile_link.cloneNode(false);a.innerHTML = world_user.handle;hd.appendChild(a);var bd = document.createElement('div');bd.className = "question";var thumb = document.createElement('div');thumb.className = 'thumb';var img = document.createElement('img');img.src = world_user.avatar;var a = profile_link.cloneNode(false);a.appendChild(img);thumb.appendChild(a);var msg = document.createElement('p');msg.innerHTML = message;bd.appendChild(thumb);bd.appendChild(msg);comment.appendChild(hd);comment.appendChild(bd);return comment;};/* one function to do all the async requests */var updateProfile = function(e, target) {YAHOO.util.Event.preventDefault(e);if (!YAHOO.checkHandle()) return false;  /* check things here before you proceed */if (target.act.value == 'post-guestbook') {      if ( target.guestbook_text.value == '' ) {alert('I think you forgot your comment!');return false;}}/* check things here before you proceed */if (target.act.value == 'post-blog') {if ( target.post_title.value == '' ) {alert('A title is required for your blog post!');return false;}if ( target.post_text.value == '' ) {alert('You forgot to write in your blog post!');return false;}}YAHOO.util.Connect.setForm(target);/* hide form */YAHOO.util.Dom.setStyle(target, 'display', 'none');/* show processing */var processing = document.createElement('div');YAHOO.util.Dom.addClass(processing, 'processing');processing.innerHTML = 'Processing...';YAHOO.util.Dom.insertAfter(processing, target);var callback = {success: function(o) {var data = YAHOO.Worlds.util.parseJson(o.responseText);for (var user_id in data) {var user = data[user_id];}switch (callback.form.act.value) {case 'post-img':YAHOO.util.Dom.get('profile-user-image').src = user.user_img_url;hideImgForm();break;case 'post-quote':    YAHOO.util.Dom.get('profile-user-quote').innerHTML = "&ldquo;" + html_entity_decode(user.user_quote) + "&rdquo;";YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('profile-user-quote'), 'display', 'block');YAHOO.util.Dom.setStyle('profile-user-quote', 'display', 'block');break;case 'post-status':    if(user.user_status) {YAHOO.util.Dom.get('profile-user-status').innerHTML = html_entity_decode(user.user_status);YAHOO.util.Dom.get('profile-user-status-date').innerHTML = user.user_status_date;} else {YAHOO.util.Dom.setStyle('profile-user-status', 'background-color', '#F00');YAHOO.util.Dom.get('profile-user-status').innerHTML = "An error occured";}YAHOO.util.Dom.setStyle('profile-user-status', 'display', 'block');break;case 'post-guestbook':if (data) {callback.form.guestbook_text.value = '';var comment = createComment(data);YAHOO.util.Dom.insertBefore(comment, YAHOO.util.Dom.getFirstChild(YAHOO.util.Dom.get('guestbook-latest-grid')));var commentAnim = new YAHOO.util.Anim(comment, { opacity : { to : 1 } }, 0.5, YAHOO.util.Easing.easeOut);commentAnim.animate();callback.processing.innerHTML = "Your comment was saved!  Reload the page to see other's replies and add more comments.";return;}break;case 'post-blog':YAHOO.util.Dom.get('blog-latest').innerHTML = o.responseText;switchBlogTab('latest');callback.form.reset();YAHOO.util.Dom.setStyle(callback.form, 'display', 'block');break;case 'post-edit-blog':YAHOO.util.Dom.get('edit-blog-title').innerHTML = data.title;YAHOO.util.Dom.get('edit-blog-text').innerHTML = data.blog_text;YAHOO.util.Dom.setStyle('edit-blog-title', 'display', 'block');YAHOO.util.Dom.setStyle('edit-blog-text', 'display', 'block');YAHOO.util.Dom.setStyle('blog-edit', 'display', 'none');break;case 'post-blog-comment':var comment_lists = YAHOO.util.Dom.getElementsByClassName('comments-list','ol',callback.form.parentNode);var comment = document.createElement('li');comment.innerHTML = o.responseText;if (YAHOO.util.Dom.getFirstChild(comment_lists[0])) {YAHOO.util.Dom.insertBefore(comment, YAHOO.util.Dom.getFirstChild(comment_lists[0]));} else {var comment_list = document.createElement('ol');YAHOO.util.Dom.addClass(comment_list, 'comments');comment_list.appendChild(comment);YAHOO.util.Dom.insertBefore(comment_list,callback.form.parentNode);}callback.form.comment_text.value = '';YAHOO.util.Dom.setStyle(callback.form,'display', 'block');                        break;}/* show form again *//* YAHOO.util.Dom.setStyle(callback.form, 'display', 'block'); *//* destroy processing */var savedAnim = new YAHOO.util.Anim(callback.processing, {opacity:{to:0}});callback.processing.parentNode.removeChild(callback.processing);},failure: function(o) {alert('There was an error processing your request. Please try again.');},form: target,processing: processing};var url = target.action != '' ? target.action : document.location;YAHOO.util.Connect.asyncRequest( target.method, url, callback );};YAHOO.util.Event.onDOMReady(function(){/* find all the forms */var forms = document.getElementsByTagName('form');/* handle some specific profile forms */for ( i=0;i<forms.length;i++ ) {var form = forms[i];if (!form.act) continue;switch (form.act.value) {case 'post-img':case 'post-quote':case 'post-status':case 'post-guestbook':case 'post-blog':case 'post-edit-blog':YAHOO.util.Event.addListener(form, 'submit', updateProfile, form);break;}}});/* guestbook on profile - this handles the 'more' links */var prepGuestbook = function() {/* click to see full comment */var handleMoreLink = function(e,link){YAHOO.util.Event.preventDefault(e);resetComments();var id = link.href.split('#')[1];YAHOO.util.Dom.setStyle(YAHOO.util.Dom.getAncestorByTagName(link, 'li'),'height','auto');YAHOO.util.Dom.setStyle('comment-' + id + '-truncated','display','none');YAHOO.util.Dom.setStyle('comment-' + id + '-full','display','inline');YAHOO.util.Dom.setStyle('comment-' + id,'height','auto');YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('guestbook-grid').parentNode,'height',YAHOO.util.Dom.get('guestbook-grid').offsetHeight + 'px');};var full_links = YAHOO.util.Dom.getElementsBy(function(el){return (el.getAttribute('rel') == 'full-comment')}, 'a', 'guestbook-grid');for ( i=0;i<full_links.length;i++ ) {YAHOO.util.Event.addListener(full_links[i], 'click', handleMoreLink, full_links[i]);}/* reset all comments */var resetComments = function() {for ( i=0;i<full_links.length;i++ ) {var id = full_links[i].href.split('#')[1];resetComment(id);}YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('guestbook-grid').parentNode,'height',YAHOO.util.Dom.get('guestbook-grid').offsetHeight + 'px');};/* reset singnle comment */var resetComment = function(id) {YAHOO.util.Dom.setStyle(YAHOO.util.Dom.getAncestorByTagName(YAHOO.util.Dom.get('comment-' + id), 'li'),'height','8em');YAHOO.util.Dom.setStyle('comment-' + id + '-truncated','display','inline');YAHOO.util.Dom.setStyle('comment-' + id + '-full','display','none');YAHOO.util.Dom.setStyle('comment-' + id,'height','4em');};/* create the carousel, reset comments when you scroll */var guestbook_carousel = new YAHOO.Carousel('guestbook-grid');YAHOO.util.Dom.removeClass(guestbook_carousel.lis, 'hidden');guestbook_carousel.scrollEvent.subscribe(resetComments);};YAHOO.util.Event.onContentReady('bd',function(){if (YAHOO.util.Dom.get('guestbook-grid')) {prepGuestbook();}});/* BLOG MODULE */var prepBlogModule = function() {prepBlogTabs();YAHOO.util.Event.addListener('start-blog', 'click', function(ev){YAHOO.util.Event.preventDefault(ev);YAHOO.util.Dom.get('blog-bd').className = 'bd';YAHOO.util.Dom.setStyle('new-post', 'display', 'block');YAHOO.util.Dom.setStyle('start-blog', 'display', 'none');})};var prepBlogTabs = function() {var uls = YAHOO.util.Dom.getElementsByClassName('tabs','ul','blog');if (!uls) {return false;}var ul = uls[0];var tabs = ul.getElementsByTagName('a');YAHOO.util.Event.addListener( tabs, 'click', blogTabHandler );};var blogTabHandler = function( ev, tabs ) {YAHOO.util.Event.preventDefault(ev);if (YAHOO.util.Event.getTarget(ev).nodeName != 'A') {ev.target = YAHOO.util.Dom.getAncestorByTagName(ev.target, 'a');}switchBlogTab(YAHOO.util.Event.getTarget(ev).rel);};var switchBlogTab = function( tab ) {var uls = YAHOO.util.Dom.getElementsByClassName('tabs','ul','blog');if (!uls) {return false;}var ul = uls[0];var lis = ul.getElementsByTagName('li');YAHOO.util.Dom.removeClass( lis, 'on' );var links = ul.getElementsByTagName('a');for (b=0;b<links.length;b++) {if (links[b].rel == tab) {YAHOO.util.Dom.addClass( YAHOO.util.Dom.getAncestorByTagName( links[b], 'li' ), 'on' );}}YAHOO.util.Dom.setStyle('blog-latest', 'display', 'none');YAHOO.util.Dom.setStyle('blog-topics', 'display', 'none');YAHOO.util.Dom.setStyle('new-post', 'display', 'none');switch (tab) {case 'latest':YAHOO.util.Dom.setStyle('blog-latest', 'display', 'block');break;case 'history':YAHOO.util.Dom.setStyle('blog-topics', 'display', 'block');break;case 'new-entry':YAHOO.util.Dom.setStyle('new-post', 'display', 'block');break;}};YAHOO.util.Event.onContentReady('bd',function(){if (YAHOO.util.Dom.get('blog')) {prepBlogModule();}});})();/* DELETE ASSET */(function () {var triggerAssetDelete = function(ev, target) {YAHOO.util.Event.preventDefault(ev);if (window.confirm('Are you sure you want to remove this?')) {window.location = target.href;}return false;};var getDeleteAssetBtn = function(ev) {YAHOO.util.Event.on('delete-asset', 'click', triggerAssetDelete, YAHOO.util.Dom.get('delete-asset'));};YAHOO.util.Event.onContentReady('bd', getDeleteAssetBtn);})();/* DELETE COMMENT */(function () {var triggerCommentDelete = function(e) {YAHOO.util.Event.preventDefault(e);var target = YAHOO.util.Event.getTarget(e);var cContainer = YAHOO.util.Dom.getAncestorByClassName(target, 'comment-container');var callback = {success: function(o) {if (o.responseText !== undefined) {var data = YAHOO.Worlds.util.parseJson(o.responseText);console.log(data);}},failure: function(o) { alert('There was an error processing your request.  Please try again.');}};if (!YAHOO.lang.isUndefined(target.href)) {if (YAHOO.lang.isUndefined(this.oC) || !YAHOO.util.Connect.isCallInProgress(this.oC)) {this.oC = YAHOO.util.Connect.asyncRequest('GET', target.href);}}};var getDeleteCommentBtn = function(ev) {var delCommentBtn = YAHOO.util.Dom.getElementsByClassName('delete-comment', 'a', 'comments-list');if (YAHOO.lang.isArray(delCommentBtn) && delCommentBtn.length > 0) {YAHOO.util.Event.on(delCommentBtn, 'click', triggerCommentDelete);}};YAHOO.util.Event.onContentReady('bd', getDeleteCommentBtn);})();
/* ULT CLEAN - YAHOO-DOM-EVENT IS A PREREQUISITE */if (!YAHOO.ULT) {YAHOO.ULT = {};}if (!YAHOO.ULT.CONF) {YAHOO.ULT.CONF = {};}if (!YAHOO.ULT.BEACON) {YAHOO.ULT.BEACON = "http://beta-starwars.yahoo.com";}if (!YAHOO.ULT.IMG) {YAHOO.ULT.IMG = new Image();}if (typeof(YAHOO.ULT.DEBUG) === "undefined") {YAHOO.ULT.DEBUG = 0;}YAHOO.ULT.DELIMITERS = {'/':'P', ';':'1', '?':'P', '&':'1'};(function () {var YLT = YAHOO.ULT;YLT.debug = function(m) {if (YLT.DEBUG) {if (!YLT.dwin || YLT.dwin.closed) {YLT.dwin = window.open("","ult_debug_win","scrollbars=yes,resizable=yes,height=600,width=800");YLT.dwin.name="ult_debug_win";YLT.dwin.document.open("text/html");YLT.dwin.document.writeln("<pre>");}YLT.dwin.document.writeln("Y.ULT: " + m);YLT.dwin.scrollTo(0,9e9);}};YLT.set_href = function(el,data,keyname) {if (data.html) {el.href = data[keyname];el.innerHTML = data.html;} else {el.href = data[keyname];}};YLT.strip_rd = function(u, data) {YLT.debug("strip rd "+u);var idx = u.indexOf('/**');if (idx != -1) {data.clean = u.substr(idx + 3);data.clean = decodeURIComponent(data.clean);YLT.debug("rd dest=" + data.clean);}return data;};/* return a hash of stripped keys and values */YLT.strip = function(u) {var delims = YLT.DELIMITERS;var data = {url:u, clean:'', cookie:'', keys:[]};YLT.debug("strip: <code>" + u + "</code>");var loop = 0;var idx = 0;while (u.indexOf('_yl', idx) != -1) {var start = u.indexOf('_yl', idx);YLT.debug("strip: -----------------------------------------------------");YLT.debug("strip: *START* idx=" + idx + ", start=" + start);if (idx < start) {data.clean += u.slice(idx, start - 1);}idx = start + 3;YLT.debug("strip: clean=" + data.clean);YLT.debug("strip: start index=" + start);YLT.debug("strip: idx now=" + idx);YLT.debug("strip: start-1=" + u.charAt(start - 1));YLT.debug("strip: start+4=" + u.charAt(start + 4));if (delims[u.charAt(start - 1)] && u.charAt(start + 4) === '=') {data.ult = 1;var key = "_yl" + u.charAt(start + 3);YLT.debug("strip: key=" + key);var value = "";for (start = start + 5; start < u.length && !delims[u.charAt(start)]; start++) {YLT.debug("strip: ++++++ idx=" + idx + ", start=" + start);value += u.charAt(start);YLT.debug("strip: val=" + value);}data.keys.push(key);data[key] = value;if (key != '_ylv') {data.cookie += "&" + key + "=" + value;}if (delims[u.charAt(start)] && delims[u.charAt(start)] == 'P') {data.clean += u.charAt(start);}idx = start + 1;} else {data.clean += u.slice(start - 1,idx);}YLT.debug("strip: clean=" + data.clean);YLT.debug("strip: *END* idx=" + idx + ", start=" + start);}if (data.ult) {data.cookie = data.cookie.substr(1);data.clean += u.substr(idx);YLT.strip_rd(u, data);}return data;};/* cleanest click handler: will only beacon or cookie, no forced redirect *//* will lose right-click open new window clicks, middle-clicks */YLT.clnclk = function(e,data) {var el = e.target || e.srcElement;YLT.debug("clnclk: =====================================================");YLT.debug("clnclk: " + data.cookie + ", ylv=" + data._ylv);YLT.debug("clnclk: dest " + data.clean);YLT.debug("clnclk: target " + data.target);if (el.target) {YLT.debug("clnclk: target property is " + el.target);}if (data._ylv == 3) {/* cookie */var cook = "D=" + data.cookie + "; Max-Age=10; Path=/; Domain=.yahoo.com";YLT.debug("clnclk: cookie=" + data.cookie);document.cookie = cook;} else {/* beacon */var src = YLT.BEACON + "?" + data.cookie + '&t=' + Math.random();YLT.debug("clnclk: beacon=" + src);if (e.altKey || e.ctrlKey || e.shiftKey || data.target == "_blank") {YLT.debug("clnclk: modifier key clicked or target set -> plain beacon");} else {YLT.IMG.onerror = YLT.IMG.onload = function() { YLT.debug(">>>>>>>>>>>>>>>>> image onload handler <<<<<<<<<<<<");location = data.clean;};YAHOO.util.Event.preventDefault(e);}YLT.IMG.src = src;}};YLT.clicked = function(e,data) {var el = e.target || e.srcElement;if (el.nodeName !== "A") {YLT.debug("clicked: parent nodeName " + el.parentNode.nodeName);if (el.parentNode.nodeName === "A") {el = el.parentNode;} else {YLT.debug("clicked: parent element not anchor!");}}YLT.debug("clicked: =====================================================");YLT.debug("clicked: " + data.cookie + ", ylv=" + data._ylv);YLT.debug("clicked: dest " + data.clean);YLT.debug("clicked: target " + data.target);if (el.target) {YLT.debug("clicked: target property is " + el.target);}if (data._ylv == 3) {/* cookie */YLT.set_href(el,data,"clean");var cook = "D=" + data.cookie + "; Max-Age=10; Path=/; Domain=.yahoo.com";YLT.debug( "clicked: cookie=" + data.cookie );document.cookie = cook;} else if (e.altKey || e.ctrlKey || e.shiftKey) {YLT.debug("clicked: modifier key clicked, doing nothing");} else if (data._ylv == 8 || data._ylv == 9) {/* mousedown handler already reset url */YLT.debug("clicked: respecting force redirect!!!");YLT.debug("clicked: dest " + data.url);} else {/* beacon */var src = YLT.BEACON + "?" + data.cookie + '&t=' + Math.random();YLT.debug("clicked: beacon=" + src);if (data.target == "_blank") {YLT.set_href(el,data,"clean");} else {YLT.IMG.onerror = YLT.IMG.onload = function() { YLT.debug(">>>>>>>>>>>>>>>>> image onload handler <<<<<<<<<<<<");location = data.clean;};YAHOO.util.Event.preventDefault(e);}YLT.IMG.src = src;}};YLT.revert = function(e,data) {YLT.debug("revert: ===================================================");YLT.debug("revert: switching to old url " + data.url);var el = e.target || e.srcElement; YLT.debug("revert: nodeName " + el.nodeName);if (el.nodeName === "A") {YLT.set_href(el,data,"url");} else {YLT.debug("revert: parent nodeName " + el.parentNode.nodeName);if (el.parentNode.nodeName === "A") {el.parentNode.href = data.url;} else {YLT.debug("revert: unable to reset url!");}}};YLT.clean = function() {YLT.debug("*************************** INIT *****************************");YLT.isSafari = '';YLT.isIE = '';YLT.isIE = (typeof(ActiveXObject) == 'function');if (navigator.userAgent.toLowerCase().indexOf("safari") != -1) {YLT.isSafari = true;}YLT.debug("isIE = " + YLT.isIE);YLT.debug("isSafari = " + YLT.isSafari);for (var i = 0; i < document.links.length; i++) {var el = document.links[i];YLT.debug("######################### NEW LINK #########################");YLT.debug("cleaning " + el);YLT.debug("classnames = " + el.className);if (el.className.indexOf('yltasis') != -1) {YLT.debug("   --- leaving link AS-IS per class config");continue;}YLT.debug(">              el.href=" + el.href);YLT.debug("> getAttribute(href,1)=" + el.getAttribute('href',1));YLT.debug("> getAttribute(href,2)=" + el.getAttribute('href',2));var data = YLT.strip(el.getAttribute('href',2));var name;for (name in data) {YLT.debug("clean: data[" + name + "] = " + data[name]);}if (!data.ult) {YLT.debug("clean: NOT A ULT URL!!!");continue;} else if (YLT.isSafari && data._ylv != 3) {YLT.debug("clean: SAFARI and not able to use cookie, skipping!");continue;}for (name = 0; name < data.keys.length; name++) {/* potentially remove loop and just manually delete all _yl? keys */if (data.keys[name] != '_ylv') {delete data[data.keys[name]];}}delete data.keys;delete data.ult;data.target = el.target;if (YLT.isIE && (el.innerHTML.indexOf('http') === 0 || el.className.indexOf('yltiefix') != -1)) {YLT.debug("IE hack for URL in innerHTML");data.html = el.innerHTML;}for (name in data) {YLT.debug(" * cleaned up: data[" +name+ "] = " + data[name]);}YLT.set_href(el,data,"clean");if (YLT.CONF.cleanest) {YLT.debug("clean: CLEANEST URLs");YAHOO.util.Event.addListener(el, 'click', YLT.clnclk, data);} else {YAHOO.util.Event.addListener(el, 'click', YLT.clicked, data);YAHOO.util.Event.addListener(el, 'mousedown', YLT.revert, data);}}};})();YAHOO.ULT.clean();
