/*    HTTP Host:  static.ak.fbcdn.net                                          */
/*    Generated:  February 10th 2010 1:11:44 AM PST                            */
/*      Machine:  10.16.140.105                                                */
/*       Source:  Backing Store                                                */
/*     Location:  js/adnt/adnt.js r144139                                      */
/*       Locale:  nu_ll                                                        */
/*         Path:  js/adnt/adnt.js                                              */

if (window.CavalryLogger) { CavalryLogger.start_js(["js\/adnt\/adnt.js"]); }


function FANController(app_id){if(FANController.singleton){return FANController.singleton;}
this.ad_class=muffinize('fb_muffinnetwork');this.ad_id_prefix=muffinize('fb_muffinnetwork_ac_');this.app_iframe_name='iframe_canvas';this.appId=app_id
FANController.singleton=this;this.arbiter=Arbiter.subscribe(FANController.REFRESH_ADZ,this._refreshAdzHandler.bind(this));onunloadRegister(Arbiter.unsubscribe.bind(Arbiter,this.arbiter));}
FANController.prototype.singleton=null;FANController.REFRESH_ADZ="refresh_adz";FANController.refreshAdz=function(iframe_ad_id_counts){Arbiter.inform(FANController.REFRESH_ADZ,iframe_ad_id_counts,Arbiter.BEHAVIOR_PERSISTENT);}
FANController.prototype._refreshAdzHandler=function(type,data){var iframe_ad_id_counts=data;var ad_spots=DOM.scry(document,'div.'+this.ad_class);var ad_id_counts={};for(var i=0;i<ad_spots.length;i++){var ad_id=this._extractAdId(ad_spots[i].id);if(ad_id){if(!ad_id_counts[ad_id]){ad_id_counts[ad_id]=1;}else{ad_id_counts[ad_id]+=1;}}}
if(iframe_ad_id_counts){for(ad_id in iframe_ad_id_counts){if(!ad_id_counts[ad_id]){ad_id_counts[ad_id]=iframe_ad_id_counts[ad_id];}else{ad_id_counts[ad_id]+=iframe_ad_id_counts[ad_id];}}}
var any_adz=false;for(ad_id in ad_id_counts){any_adz=true;break;}
if(any_adz){this._retrieveNewAdz(ad_id_counts,this._processChanges.bind(this));}}
FANController.prototype._extractAdId=function(html_id){if(this.ad_id_prefix==html_id.substr(0,this.ad_id_prefix.length)){var ad_id=html_id.substr(this.ad_id_prefix.length);var count_separator=ad_id.indexOf('_');if(count_separator!=-1){ad_id=ad_id.substr(0,count_separator);}
return ad_id;}
return null;}
FANController.prototype._retrieveNewAdz=function(ad_id_counts,new_ad_handler){new AsyncRequest().setURI('/ajax/adnt/get_adz.php').setData({page:URI.getRequestURI().toString(),app_id:this.appId,acid_count:ad_id_counts}).setHandler(new_ad_handler).send();}
FANController.prototype._processChanges=function(response){var adz_payload=response.getPayload();if(!adz_payload){Util.log("empty payload");return;}
var adz_data=adz_payload['data'];if(!adz_data||adz_data.length==0){Util.log("no data");return;}
var is_iframe_app=window.frames[this.app_iframe_name];for(ad_id in adz_data){container_data=adz_data[ad_id];if(undefined==container_data['height']||undefined==container_data['width']||undefined==container_data['ads_data']){continue;}
var container_height=container_data['height'];var container_width=container_data['width'];var container_adz=container_data[muffinize('muffins_data')];for(var i=0;i<container_adz.length;i++){var suffix=(i>0)?'_'+(1+i):'';var ad_div_id=this.ad_id_prefix+ad_id+suffix;if(ge(ad_div_id)){var ad_div=$(ad_div_id);var ad_metadata=container_adz[i];DOM.setContent(ad_div,$N('iframe',{src:new URI().setSubdomain('www').setPath(muffinize('/muffinnetwork/iframe/container.php')).setQueryData({'data':ad_metadata}).toString(),className:muffinize('fb_muffinnetwork'),height:container_height+'px',width:container_width+'px',frameBorder:'0',scrolling:'no'}));}else{Util.log("can't find "+ad_div_id);}}}}
FANController.prototype._injectAd=function(ad_iframe_window,ad_html){DOM.setContent(ad_iframe_window.document.body,HTML(ad_html));}

if (window.Bootloader) { Bootloader.done(["js\/adnt\/adnt.js"]); }