function bind(c,d){var a=[];for(var b=2;b<arguments.length;b++){a.push(arguments[b])}return function(){var g=c||this;var e=a.slice();for(var f=0;f<arguments.length;f++){e.push(arguments[f])}if(typeof(d)=="string"){if(g[d]){return g[d].apply(g,e)}}else{return d.apply(g,e)}}}Function.prototype.bind=function(b){var a=[arguments[0],this];var d=arguments.length;for(var c=1;c<d;c++){a.push(arguments[c])}return bind.apply(null,a)};function copy_properties(c,b){for(var a in b){c[a]=b[a]}return c}var Try={these:function(){var a=arguments.length;var b;for(var c=0;c<a;c++){try{b=arguments[c]();return b}catch(d){}}return b}};var Util={isDevelopmentEnvironment:function(){return env_get("dev")},warn:function(){Util.log(sprintf.apply(null,arguments),"warn")},error:function(){Util.log(sprintf.apply(null,arguments),"error")},log:function(b,a){if(Util.isDevelopmentEnvironment()){if(typeof(window.infoConsole)!="undefined"){infoConsole.addEvent(new fbinfoconsole.ConsoleEvent(["js",a],nl2br(b)))}else{if(typeof(console)!="undefined"&&console.error){console.error(b)
}else{if(a!="deprecated"){aiert(b)}}}}else{if(a=="error"){b+="\n\n"+Util.stack();(typeof(window.debug_rlog)=="function")&&debug_rlog(b)}}},deprecated:function(a){if(!Util._deprecatedThings[a]){Util._deprecatedThings[a]=true;var b=sprintf("Deprecated: %q is deprecated.\n\n%s",a,Util.whyIsThisDeprecated(a));Util.log(b,"deprecated")}},stack:function(){try{try{({}).llama()}catch(d){if(d.stack){var h=[];var b=[];var j=/^([^@]+)@(.+)$/mg;var m=j.exec(d.stack);do{h.push([m[1],m[2]])}while(m=j.exec());for(var c=0;c<h.length;c++){b.push("#"+c+" "+h[c][0]+" @ "+(h[c+1]?h[c+1][1]:"?"))}return b.join("\n")}else{var b=[];var g=arguments.callee;var k=[];while(g){for(var c=0;c<k.length;c++){if(k[c]==g){b.push("#"+b.length+" ** recursion ** @ ?");return b.join("\n")}}k.push(g);var f=[];for(var c=0;c<g.arguments.length;c++){if(g.arguments[c] instanceof Function){var a=/function ?([^(]*)/.exec(g.arguments[c].toString()).pop();f.push(a?a:"anonymous")}else{if(g.arguments[c] instanceof Array){f.push("Array")
}else{if(g.arguments[c] instanceof Object){f.push("Object")}else{if(typeof g.arguments[c]=="string"){f.push('"'+g.arguments[c].replace(/("|\\)/g,"\\$1")+'"')}else{f.push(g.arguments[c])}}}}}b.push("#"+b.length+" "+/function?([^(]*)/.exec(g).pop()+"("+f.join(", ")+") @ ?");if(b.length>100){break}g=g.caller}return b.join("\n")}}}catch(d){return"No stack trace available"}},whyIsThisDeprecated:function(a){return Util._deprecatedBecause[a.toLowerCase()]||"No additional information is available about this deprecation."},_deprecatedBecause:{},_deprecatedThings:{}};var Configurable={getOption:function(a){if(typeof(this.option[a])=="undefined"){Util.warn("Failed to get option %q; it does not exist.",a);return null}return this.option[a]},setOption:function(b,a){if(typeof(this.option[b])=="undefined"){Util.warn("Failed to set option %q; it does not exist.",b)}else{this.option[b]=a}return this},getOptions:function(){return this.option}};function Ad(){}copy_properties(Ad,{refreshRate:10000,lastRefreshTime:new Date(),refresh:function(){var b=(new Date().getTime()-Ad.lastRefreshTime.getTime());
if(b>Ad.refreshRate){var a=Ad.getFrame();if(a){if(!a.osrc){a.osrc=a.src}a.src=a.osrc+"?"+Math.random();Ad.lastRefreshTime=new Date()}}},getFrame:function(){return ge("ssponsor")&&ge("ssponsor").getElementsByTagName("iframe")[0]}});function URI(a){this.parse(a||"")}copy_properties(URI,{expression:/(((\w+):\/\/)([^\/:]*)(:(\d+))?)?([^#?]*)(\?([^#]*))?(#(.*))?/,explodeQuery:function(d){if(!d){return{}}var b,a,c={};d=d.split("&");for(b=0,l=d.length;b<l;b++){a=d[b].split("=");c[decodeURIComponent(a[0])]=(typeof(a[1])=="undefined")?"":decodeURIComponent(a[1])}return c},implodeQuery:function(f,c){c=c||"";var e=[];if(f instanceof Array){for(var d=0;d<f.length;d++){try{e.push(URI.implodeQuery(f[d],c?c+"["+d+"]":d))}catch(b){}}}else{if(typeof(f)=="object"){for(var a in f){try{e.push(URI.implodeQuery(f[a],c?c+"["+a+"]":a))}catch(b){}}}else{if(c&&c.length){e.push(encodeURIComponent(c)+"="+encodeURIComponent(f))}else{e.push(encodeURIComponent(f))}}}return e.join("&")}});copy_properties(URI.prototype,{parse:function(b){var a=b.toString().match(URI.expression);
copy_properties(this,{protocol:a[3]||"",domain:a[4]||"",port:a[6]||"",path:a[7]||"",query:URI.explodeQuery(a[9]||""),fragment:a[11]||""});return this},setProtocol:function(a){this.protocol=a;return this},getProtocol:function(){return this.protocol},setQueryData:function(a){this.query=a;return this},addQueryData:function(a){return this.setQueryData(copy_properties(this.query,a))},getQueryData:function(){return this.query},setFragment:function(a){this.fragment=a;return this},getFragment:function(){return this.fragment},setDomain:function(a){this.domain=a;return this},getDomain:function(){return this.domain},setPort:function(a){this.port=a;return this},getPort:function(){return this.port},setPath:function(a){this.path=a;return this},getPath:function(){return this.path},toString:function(){var a="";var b=URI.implodeQuery(this.query);this.protocol&&(a+=this.protocol+"://");this.domain&&(a+=this.domain);this.port&&(a+=":"+this.port);if(this.domain&&!this.path){a+="/"}this.path&&(a+=this.path);
b&&(a+="?"+b);this.fragment&&(a+="#"+this.fragment);return a},isSameOrigin:function(a){var b=a||window.location.href;if(!(b instanceof URI)){b=new URI(b.toString())}if(this.getProtocol()&&this.getProtocol()!=b.getProtocol()){return false}if(this.getDomain()&&this.getDomain()!=b.getDomain()){return false}return true},coerceToSameOrigin:function(a){var b=a||window.location.href;if(!(b instanceof URI)){b=new URI(b.toString())}if(this.isSameOrigin(b)){return true}if(this.getProtocol()!=b.getProtocol()){return false}var d=b.getDomain().split(".");var c=this.getDomain().split(".");if(d.pop()=="com"&&c.pop()=="com"){if(d.pop()=="facebook"&&c.pop()=="facebook"){this.setDomain(b.getDomain());return true}}return false}});function EventController(a){copy_properties(this,{queue:[],ready:false,responder:a})}copy_properties(EventController.prototype,{startQueue:function(){this.ready=true;this.dispatchEvents();return this},pauseQueue:function(){this.ready=false;return this},addEvent:function(c){if(c.toLowerCase()!==c){Util.warn("Event name %q contains uppercase letters; events should be lowercase.",c)
}var a=[];for(var b=1;b<arguments.length;b++){a.push(arguments[b])}this.queue.push({type:c,args:a});if(this.ready){this.dispatchEvents()}return event_abort(event_get(arguments[1]))},dispatchEvents:function(){if(!this.responder){Util.error("Event controller attempting to dispatch events with no responder! Provide a responder when constructing the controller.")}for(var a=0;a<this.queue.length;a++){var b="on"+this.queue[a].type;if(typeof(this.responder[b])!="function"&&typeof(this.responder[b])!="null"){Util.warn("Event responder is unable to respond to %q event! Implement a %q method. Note that method names are case sensitive; use lower case when defining events and event handlers.",this.queue[a].type,b)}else{if(this.responder[b]){this.responder[b].apply(this.responder,this.queue[a].args)}}}this.queue=[]}});