F.API={};F.API.callMethod=function(_1,_2,_3,_4,_5,_6,_7,_8){var _9={};if(typeof _2=="object"){for(var p in _2){_9[p]=_2[p];}}_9.method=_1;var _11=(_7)?0:1;var _12="/services/rest/";if(_6){_12=_6+_12;}_9.src="js";_9.api_key=global_magisterLudi;_9.auth_hash=global_auth_hash;_9.auth_token=global_auth_token;_9.cb=new Date().getTime();var _13=[];var _14="";for(var p in _9){if(p=="RESTURL"){continue;}_9[p]=_9[p];_13.push(p);_14+="&"+p+"="+escape_utf8(_9[p]);}_13.sort();var cal=global_flickr_secret;if(cal!=""){for(var i=0;i<_13.length;i++){cal+=_13[i]+_9[_13[i]];}cal=md5_calcMD5(cal);_14="api_sig="+cal+_14;}_9.RESTURL=_14;var _5=(_5==undefined)?1:_5;var req=new XMLHttpRequest();var _18={};if(_11){F.eb_add(_18);_18.window_onbeforeunload=function(_19){F.eb_remove(_18);req.onreadystatechange=function(){};req.abort();if(_19&&typeof F.API=="object"){F.API.handleResponse(null,_1,_9,"Action cancelled by window unload. Try again please!",_3);}};}_9.timer_index=_page_timer.add("before api call "+_9.method);if(req){req.onreadystatechange=function(){if(req.readyState==4){if(req.responseText==""&&_5<2){_5++;req.abort();F.API.callMethod(_1,_9,_3,_4,_5,_6,_11);}else{F.eb_remove(_18);if(typeof F.API=="object"){F.API.handleResponse(req.responseXML,_1,_9,req.responseText,_3);}}}};if(_4){_12=_4;}req.open("POST",_12,_11);req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");if(_11&&_8){if(_qs_args.no_api_debug!="1"){writeAPIDebug("delaying API call "+_8+" milliseconds for "+_12+"?"+_14);}setTimeout(function(){if(_qs_args.no_api_debug!="1"){writeAPIDebug(_12+"?"+_14);}req.send(_14);},_8);}else{if(_qs_args.no_api_debug!="1"){writeAPIDebug(_12+"?"+_14);}req.send(_14);}if(!_11){this.handleResponse(req.responseXML,_1,_9,req.responseText,_3);}}};F.API.getCallBackName=function(_20){return _20.split(".").join("_")+"_onLoad";};F.API.handleResponse=function(_21,_22,_23,_24,_25){if(!_21){var _26=(_24.indexOf("stat=\"ok\"")>-1)?true:false;}else{var _26=(_21.documentElement&&_21.documentElement.getAttribute("stat")=="ok")?true:false;}if(_26){if(_qs_args.no_api_debug!="1"){writeAPIDebug(_24);}}else{writeAPIDebug(_24+"\r"+_uber_toString(_23));}_page_timer.add("after api call "+_23.method);_page_timer.dump(_23.timer_index);_25=(_25)?_25:this;_25[this.getCallBackName(_22)](_26,_21,_24,_23);};F.fragment_getter={};F.fragment_getter.get=function(url,_28,_29,_30,_31,_32,_33,_34){if(typeof _28!="object"){_28={};}var _35=(_33)?0:1;var _36=url;if(_32){_36=_32+_36;}var _37="?src=js";for(var p in _28){_37+="&"+p+"="+escape_utf8(_28[p]);}_37+="&cb="+new Date().getTime();_28.RESTURL=_37;var _31=(_31==undefined)?1:_31;var req=new XMLHttpRequest();if(req){req.onreadystatechange=function(){if(req.readyState==4){if(req.responseText==""&&_31<1){_31++;req.abort();F.fragment_getter.get(url,_28,_29,_30,_31,_32,_33,_34);}else{F.fragment_getter.handleResponse(_30,_28,req.responseText,_29);}}};req.open("GET",_36+_37);if(_35&&_34){if(_qs_args.no_api_debug!="1"){writeAPIDebug("delaying fragment call "+_34+" milliseconds for "+_36+_37);}setTimeout(function(){if(_qs_args.no_api_debug!="1"){writeAPIDebug(_36+_37);}req.send((null));},_34);}else{if(_qs_args.no_api_debug!="1"){writeAPIDebug(_36+_37);}req.send(null);}}};F.fragment_getter.handleResponse=function(_38,_39,_40,_41){_41=(_41)?_41:this;if(_qs_args.no_api_debug!="1"){writeAPIDebug(_40);}_41[_38](1,_40,_39);};var escape_utf8=function(_42){if(_42===""||_42===null||_42===undefined){return "";}_42=_42.toString();var _43="";for(var i=0;i<_42.length;i++){var c=_42.charCodeAt(i);var bs=new Array();if(c>65536){bs[0]=240|((c&1835008)>>>18);bs[1]=128|((c&258048)>>>12);bs[2]=128|((c&4032)>>>6);bs[3]=128|(c&63);}else{if(c>2048){bs[0]=224|((c&61440)>>>12);bs[1]=128|((c&4032)>>>6);bs[2]=128|(c&63);}else{if(c>128){bs[0]=192|((c&1984)>>>6);bs[1]=128|(c&63);}else{bs[0]=c;}}}if(bs.length>1){for(var j=0;j<bs.length;j++){var b=bs[j];var hex=nibble_to_hex((b&240)>>>4)+nibble_to_hex(b&15);_43+="%"+hex;}}else{_43+=encodeURIComponent(String.fromCharCode(bs[0]));}}return _43;};var nibble_to_hex=function(_49){var _50="0123456789ABCDEF";return _50.charAt(_49);};

