
(function(){var ns=rx.namespace('stream.widget');ns.flatten=function(prefix,d){var items=[];d=d||ns.cfg;for(k in d){var v=d[k];if(prefix)k=prefix+'.'+k;if(typeof(v)=='object')
items=items.concat(ns.flatten(k,v));else
items.push([k,v]);}
return items;};ns.dump=function(){var qs='';var pairs=ns.flatten();for(i in pairs){var v=pairs[i];if(qs)qs+='&';qs+=v.join('=');}
return qs;};ns.update=function(){var container=$('.preview');var s=container.find('script');var src=s.attr('src').split('?')[0]+'?'+ns.dump();var updated=$('<script>').attr({type:'text/javascript',src:src});updated.appendTo(container);var embed=$('.embedarea');embed.val(embed.val().replace(/src='.*?'/,"src='"+src+"'"));return false;};ns.setstream=function(e){var v=parseInt(e.value);if(v<0&&v>=-2){ns.cfg.app.mode=v==-1?'profile':'user';ns.cfg.app.id=rx.user.id;}else{ns.cfg.app.mode=v<0?'stream':'group';ns.cfg.app.id=v;}
return ns.update();};ns.setcfg=function(key,value){var path=key.split('.');var d=ns.cfg;while(path.length>1)d=d[path.shift()];d[path.pop()]=value;return ns.update();};ns.toggle=function(e){e=$(e);var key=e.attr('key');return ns.setcfg(key,e.attr('checked')&&1||0);};ns.color=function(e){e=$(e);var cell=$(e).closest('.cn');var container=cell.find('.colorpicker');if(container.children().length)
return ns.colorcancel(container);$('.colorpicker:visible').each(function(){ns.colorcancel($(this));});var picker=new YAHOO.widget.ColorPicker(container.get(0),{showhsvcontrols:false,showrgbcontrols:false,showhexsummary:false,showwebsafe:false,images:{PICKER_THUMB:rx.baseurl+'/static/images/yui/colorpicker/picker_thumb.png',HUE_THUMB:rx.baseurl+'/static/images/yui/colorpicker/hue_thumb.png'}});container.data('picker',picker);var color=cell.find('.swatch').attr('hex');picker.set('hex',color);var controls=container.find('.yui-picker-controls .bd');var buttons=$('<div>').addClass('buttons').appendTo(controls);$('<button>').text('Accept').click(function(){ns.coloraccept(container)}).appendTo(buttons);$('<button>').text('Cancel').click(function(){ns.colorcancel(container)}).appendTo(buttons);container.fadeIn('fast');return false;};ns.colorcancel=function(container){container.fadeOut('fast',function(){container.empty();});return false;};ns.coloraccept=function(container){var swatch=container.closest('.cn').find('.swatch');var picker=container.data('picker');var hex=picker.get('hex');swatch.css({backgroundColor:'#'+hex});swatch.attr('hex',hex);var key=swatch.closest('.cn').find('[key]').attr('key');ns.setcfg(key,hex);return ns.colorcancel(container);};$('.tools .widgets .number').each(function(){var $this=$(this);var min=parseInt($this.attr('min'));var max=parseInt($this.attr('max'));$this.check=function(){var v=parseInt($this.val());if(isNaN(v)||''+v!=$this.val()||v<min||v>max){$this.addClass('bad');return false;}
$this.removeClass('bad');return true;};$this.keyup(function(e){$this.check();});$this.change(function(e){if($this.check()){var key=$this.attr('key');ns.setcfg(key,parseInt($this.val()));}});});ns.preset=function(e){e=$(e);var name=e.attr('name');e.closest('.presets').find('.preset').removeClass('active');e.find('.preset').addClass('active');for(k in ns[name])
if(k!='app')
rx.util.update(ns.cfg[k],ns[name][k]);ns.updateui();return ns.update();};ns.updateui=function(){var fcfg={};var flat=ns.flatten();for(i in flat)fcfg[flat[i][0]]=flat[i][1];$('[key]').each(function(){var e=$(this);var k=e.attr('key');var v=fcfg[k];if(e.hasClass('number')){e.val(v);}else if(e.hasClass('color')){e.find('[hex]').attr('hex',v).css({backgroundColor:'#'+v});}else if(e.hasClass('bool')){e.attr('checked',!!v);}});};$('#rx-stream-widget').load(function(){var e=$(this);var h=e.offset().top+e.height();$('.tools .widgets').css({minHeight:h});});})();
