TAGGED.namespace("api");TAGGED.api={format:"json",_login_regex_match:/\\"error\\":{\\"code\\":11,.*}/,_captcha_regex_match:/"stat":"security"/,errorResponse:{stat:"fail",error:{code:-1}},errorResponseBC:'({stat: "fail", error: {code: -1}})',queue:[],_deferQueueTime:300,defer:[],_deferTimer:null,_trackedRequests:{},_requestsLUT:{},dequeue:function(){var a=this.queue;this.queue=[];if(a.length){this.call(a)}},deferDequeue:function(){if((this.queue.length+this.defer.length)<=1){this.startDefer({result:this._deferQueueTime});return}this.queue=this.queue.concat(this.defer);this.defer=[];this.dequeue()},handleDefer:function(){this.stopDefer();if(!this.defer.length||this.defer[this.defer.length-1].callback!="TAGGED.api.startDefer"){this.defer.push({method:"tagged.util.echoIt",data:this._deferQueueTime,callback:"TAGGED.api.startDefer"})}this.deferDequeue()},startDefer:function(a){var b=0;if(a){if(a.stat=="fail"){return}if(a.result){b=a.result}else{b=a}}if(YAHOO.lang.isString(b)){b=parseInt(b)}if(!YAHOO.lang.isNumber(b)){b=0}if(b>0){this.stopDefer();this._deferTimer=window.setTimeout("TAGGED.api.handleDefer()",1000*b)}else{this.handleDefer()}},stopDefer:function(){if(!this._deferTimer){return}window.clearTimeout(this._deferTimer);this._deferTimer=null},call:function(k,g){if(this.queue.length&&!g&&YAHOO.lang.isObject(k)){if(YAHOO.lang.isArray(k)){for(var d=0,h=k.length;d<h;++d){this.queue.push(k[d])}}else{this.queue.push(k)}this.dequeue();return}var a="\n";var e={application_id:"user",format:this.format};if(this.getQueryStringParameter("no_cache")||this.getQueryStringParameter("clear_cache")){e.no_cache="1"}var j=this.getQueryStringParameter("loc");if(!j){j=this.getQueryStringParameter("locale")}if(j){e.locale=j}if(k.constructor==Array){var c=tagged.clone(k);for(var d=0,f=k.length;d<f;++d){if(k[d].constructor==String){a+=k[d]+"\n"}else{if(typeof(k[d].callback)=="object"){delete k[d].callback}a+=TAGGED.api.createQueryString(k[d],true)+"\n"}}}else{if(k.constructor==String){var c=k;a+=k+"\n"}else{var c={};YAHOO.lang.augmentObject(c,k);if(typeof(k.callback)=="object"){delete k.callback}a+=TAGGED.api.createQueryString(k,true)+"\n"}}e.session_token=YAHOO.util.Cookie.get("S");TAGGED.api.callback.argument=g;var b=YAHOO.util.Connect.asyncRequest("POST","/api/?"+TAGGED.api.createQueryString(e),TAGGED.api.callback,a);if(tagged.performance){tagged.performance.addXHR(b,a)}this.pushRequestLUT(b.tId,c);return b},callback:{success:function(a){if(!a||!a.responseText){if(tagged.performance){tagged.performance.updateXHRQueue()}TAGGED.api.evalResponse(a,true)}if(tagged.performance){tagged.performance.removeXHR(a)}if(a.responseText.search(TAGGED.api._login_regex_match)>=0){window.location="/index.html?r="+encodeURIComponent(window.location)}else{if(tagged.diagnostics){tagged.diagnostics.findApiData(a.responseText)}if(a.argument){a.argument()}TAGGED.api.evalResponse(a)}},failure:function(a){if(tagged.performance){tagged.performance.updateXHRQueue()}TAGGED.api.evalResponse(a,true)}},recall:function(a,b){if(b==null||b==""){b="default"}if(TAGGED.api._trackedRequests[b]!=null){YAHOO.util.Connect.abort(TAGGED.api._trackedRequests[b]);TAGGED.api._trackedRequests[b]=null}TAGGED.api._trackedRequests[b]=TAGGED.api.call(a)},nullResponseHandler:function(){},createQueryString:function(b,a){var c="";if(a){b.api_signature="";if(TAGGED.guid){b.track=TAGGED.guid}if(b.method){c+="method="+encodeURIComponent(b.method)+"&";delete b.method}else{alert(TAGGED.api.strings.errorMethodMissing);return""}}for(i in b){c+=encodeURIComponent(i)+"="+encodeURIComponent(b[i])+"&"}if(c.length){return c.substr(0,c.length-1)}return c},pushRequestLUT:function(e,c){var d=function(h){var f=h.indexOf("callback=")+9;var g=h.slice(f,h.indexOf("&",f));return{callback:g}};if(YAHOO.lang.isArray(c)){this._requestsLUT[e]=[];for(var b=0,a=c.length;b<a;++b){if(YAHOO.lang.isString(c[b])){this._requestsLUT[e].push(d(c[b]))}else{this._requestsLUT[e].push(c[b])}}}else{if(YAHOO.lang.isString(c)){this._requestsLUT[e]=[d(c)]}else{this._requestsLUT[e]=[c]}}},popRequestLUT:function(b){var a=this._requestsLUT[b];delete this._requestsLUT[b];return a},evalResponse:function(o,isError){var requestCalls=this.popRequestLUT(o.tId);if(!requestCalls||!requestCalls.length){return}if(!isError){try{if(!o.responseText){isError=true}else{if(this.format=="jsonp"){eval(o.responseText);return}else{var requestData=eval(o.responseText);if(requestCalls.length!=requestData.length){isError=true}}}}catch(e){isError=true;alert(TAGGED.api.strings.errorGeneral)}}for(var i=0;i<requestCalls.length;i++){var _request=requestCalls[i];if(typeof(_request.callback)=="string"){if(isError){eval(_request.callback+TAGGED.api.errorResponseBC)}else{try{if(requestData[i].search(TAGGED.api._captcha_regex_match)>-1){var data=eval("("+requestData[i]+")");tagged.security.captcha.trigger(data,_request)}else{eval(_request.callback+"("+requestData[i]+")")}}catch(e){eval(_request.callback+TAGGED.api.errorResponseBC)}}}else{if(isError){_request.callback.fn.apply(_request.callback.scope,[TAGGED.api.errorResponse,_request.callback.args])}else{try{var data=eval("("+requestData[i]+")");if(data.stat=="security"){tagged.security.captcha.trigger(data,_request)}else{if(_request.callback&&_request.callback.fn){var start=new Date();_request.callback.fn.apply(_request.callback.scope,[data,_request.callback.args]);var end=new Date();if(tagged.performance){tagged.performance.recordBenchmarkAPI({apiMethod:_request.method,result:(end-start)})}}}}catch(e){if(_request.callback){_request.callback.fn.apply(_request.callback.scope,[TAGGED.api.errorResponse,_request.callback.args])}}}}}}};if(tagged.exists("H")){TAGGED.api.getQueryStringParameter=H.getQueryStringParameter}else{TAGGED.api.getQueryStringParameter=function(f,c){var d,b,a,h,g,e;c=c||window.location.href;a=c.indexOf("?");h=a>=0?c.substr(a+1):c;a=h.lastIndexOf("#");h=a>=0?h.substr(0,a):h;g=h.split("&");for(d=0,b=g.length;d<b;d++){e=g[d].split("=");if(e.length>=2){if(e[0]===f){return unescape(e[1])}}}return null}}E.onDOMReady(function(){TAGGED.api.startDefer({result:1})});tagged.loadStringsDirect({"TAGGED.api.strings":{errorMethodMissing:"An error occurred. Please refresh the page and try again. Method is missing.",errorGeneral:"An error occurred. Please refresh the page and try again."}});tagged.namespace("util.stringBuffer");tagged.util.stringBuffer=function(){this.buffer=[]};tagged.util.stringBuffer.prototype={add:function(c){var b=0;var a=arguments.length;for(;b<a;++b){if(typeof(arguments[b])!="undefined"){this.buffer[this.buffer.length]=arguments[b]}}},append:function(a){this.buffer[this.buffer.length]=a},toString:function(){return this.buffer.join("")}};function str_repeat(b,a){for(var c=[];a>0;c[--a]=b){}return(c.join(""))}function sprintf(){var h=0,l,j=arguments[h++],d=[],e,b,k,n;var q=j;if(typeof arguments[1]=="object"){var g=arguments[1];return q.replace(/%\(([^)]+)\)/g,function(c,a){return g[a]})}while(j){if(e=/^[^\x25]+/.exec(j)){d.push(e[0])}else{if(e=/^\x25{2}/.exec(j)){d.push("%")}else{if(e=/^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(j)){var r=e[1]||h++;if(r>=arguments.length){throw ("Too few arguments: "+q)}var l=arguments[r];switch(e[7]){case"b":l=parseInt(l);l=l.toString(2);break;case"c":l=String.fromCharCode(l);break;case"d":l=parseInt(l);break;case"e":l=parseFloat(l);l=e[6]?l.toExponential(e[6]):l.toExponential();break;case"f":l=e[6]?parseFloat(l).toFixed(e[6]):parseFloat(l);break;case"o":l=parseInt(l);l=l.toString(8);break;case"s":l=((l=String(l))&&e[6]?l.substring(0,e[6]):l);break;case"u":l=Math.abs(l);break;case"x":l=parseInt(l);l=l.toString(16);break;case"X":l=parseInt(l);l=l.toString(16).toUpperCase();break}l=(/[def]/.test(e[7])&&e[2]&&l>0?"+"+l:l);k=e[3]?e[3]=="0"?"0":e[3].charAt(1):" ";n=e[5]-String(l).length;b=e[5]?str_repeat(k,n):"";d.push(e[4]?l+b:b+l)}else{throw ("Huh ?!")}}}j=j.substring(e[0].length)}return d.join("")};tagged.namespace("modules.connect");tagged.modules.connect={_connectHTML:'<form name="status_connect">%s</form>',_connectLink:'<a class="connect" service_name="%s" href="#">%s</a>',_connectCheckbox:'<input type="checkbox" service_name="%s" %s name="%s" feature="%s" callback="%s"/><label>%s</label>',_separator:"<span>&bull;</span>",services:["facebook","myspace","twitter"],connectSuccessCallback:null,win:null,init:function(){window.connect_callback=this.connectCallback},addListener:function(c){var a=D.getElementsByClassName("connect_container","div");for(i in a){var b=a[i];if(!b.getAttribute("connect_action")){b.setAttribute("connect_action",true);E.addListener(b,"click",tagged.modules.connect.handleConnect,tagged.modules.connect,true)}}if(c){tagged.modules.connect.connectSuccessCallback=c}},getSetting:function(a,c){var b={method:"tagged.connect.settings.getSettingsByFeature",feature:a,callback:c};TAGGED.api.call(b)},handleConnect:function(d){var c=E.getTarget(d);var a="";var g=this.getPageLocation();if(c&&c.tagName.toUpperCase()=="INPUT"){a=c.getAttribute("service_name");this.updateSetting(a,c.getAttribute("feature"),c.checked,c.getAttribute("callback"));return}if(c&&c.tagName.toUpperCase()!="A"){c=c.parentNode}g=c.getAttribute("container")?c.getAttribute("container")+"_"+g:g;var f=this.getGeneration();if(c.getAttribute("service_name")){a=c.getAttribute("service_name");var b="/partners/connect_popup.html?service="+a+"&from="+g;b+="&generation="+f;this.win=window.open(b,"","height=620,width=840");E.preventDefault(d)}if(this.win){this.win.focus()}},updateSetting:function(b,a,d,e){var c={method:"tagged.connect.settings.updateSetting",type:b,feature:a,value:d?1:0,callback:"TAGGED.api.nullResponseHandler"};TAGGED.api.queue.push(c);if(e){c={method:"tagged.connect.settings.getSettingsByFeature",feature:a,callback:e};TAGGED.api.queue.push(c)}TAGGED.api.dequeue()},connectCallback:function(a,b){if(b==1){if(tagged.modules.connect.connectSuccessCallback){tagged.modules.connect.connectSuccessCallback(a,b)}else{window.location.reload(true)}}else{if(b==2){alert(tagged.modules.connect.strings.alreadyConnected)}else{if(b==3){if(tagged.redirect_url){window.location.href=tagged.redirect_url}else{window.location.reload()}}else{if(b==4){window.location.href="/register.html"}}}}},handleDisconnect:function(c){E.preventDefault(c);var b=E.getTarget(c);if(!b.id){b=b.parentNode}var d=tagged.modules.connect.strings[b.id];if(d&&confirm(d)){var a={method:"tagged.connect.disconnect",service:this._getServiceName(b.id),callback:{fn:this.disconnectResponse,scope:this}};TAGGED.api.call(a)}},disconnectResponse:function(b){if(b&&b.stat=="ok"){var a=b.result.service;D.addClass(a+"_connected","hide_me");D.removeClass(D.getElementsByClassName(a+"_connect","a")[0],"hide_me");D.addClass(a+"_disconnect","hide_me")}},renderConnectBox:function(b){var e="";if(!b){return e}var f="";if(b.checkbox_callback){f=b.checkbox_callback}for(var d=0;d<this.services.length;++d){var a=this.services[d];if(d>0){e+=this._separator}if(b.linked[a+"Connected"]){var c=!b.settings||b.settings[a]!==0;e+=sprintf(this._connectCheckbox,a,c?'checked="1"':"",a+"_post",b.feature_name,f,this.strings[a+"Post"])}else{e+=sprintf(this._connectLink,a,this.strings[a+"Connect"])}}e=sprintf(this._connectHTML,e);return e},renderFacebookFeed:function(g,b){if(!(g.result.facebook&&g.result.facebook.attachment&&g.result.facebook.action_links&&b.feature&&b.from&&b.generation&&b.callback&&b.scope)){alert(tagged.modules.connect.strings.general_error);return}var c={method:"stream.publish",attachment:g.result.facebook.attachment,action_links:g.result.facebook.action_links};var a=g.result.facebook.action_links[0].href;var f=new RegExp("&cbi=[0-9]+");var e=a.match(f);var d=e[0].substring(5);var h=function(j){if(j&&j.post_id){var k={method:"tagged.connect.logPost",service:"facebook",feature:b.feature,from:b.from,generation:b.generation,trackingId:d,callback:{fn:b.callback,scope:b.scope}};TAGGED.api.call(k)}else{if(YAHOO.lang.isFunction(b.skip_callback)){b.skip_callback()}}};FB.ui(c,h)},getPageLocation:function(){var a=window.location.pathname;if(a&&a.length>1){var b=a.indexOf(".html");b=b>0?b:a.indexOf("?");if(b>0){return a.substr(1,b-1)}return a}return""},getGeneration:function(){var a=TAGGED.api.getQueryStringParameter("generation");if(a&&!isNaN(a)){++a}else{a=0}return a},_getServiceName:function(b){var a=b.split("_");return a[0]}};E.onDOMReady(function(){tagged.modules.connect.init()});tagged.namespace("index.connect");tagged.index.connect={init:function(){E.addListener(D.getElementsByClassName("connect_container"),"click",tagged.modules.connect.handleConnect,tagged.modules.connect,true);window.connect_callback=this.handleConnectCallback},handleConnectCallback:function(a,b){if(b==4){window.location.href="/register.html?service="+a}else{if(b>0){if(tagged.redirect_url){window.location.href=tagged.redirect_url}else{window.location.reload()}}}}};E.onDOMReady(tagged.index.connect.init,"",tagged.index.connect);tagged.loadStringsDirect({"tagged.modules.connect.strings":{twitter_disconnect:"Are you sure you want to disconnect from Twitter?",facebook_disconnect:"Are you sure you want to disconnect from Facebook?",myspace_disconnect:"Are you sure you want to disconnect from Myspace?",windowClosed:"Failed to open the pop up window.",alreadyConnected:"This account is connected to another Tagged account.",facebookConnect:"Connect to Facebook",facebookPost:"Post to Facebook",twitterConnect:"Connect to Twitter",twitterPost:"Post to Twitter",myspaceConnect:"Connect to MySpace",myspacePost:"Post to MySpace",general_error:"Sorry, there was an error. Please reload the page and try again."}});