function advAJAX(){this.url=window.location.href;this.method='GET';this.parameters=new Object();this.headers=new Object();this.mimeType=null;this.username=null;this.password=null;this.useJSON=false;this.useCache=false;this.requestDone=false;this.requestAborted=false;this.requestTimedOut=false;this.queryString='';this.responseText=null;this.responseXML=null;this.responseJSON=null;this.status=null;this.statusText=null;this.timeout=0;this.retryCount=0;this.retryDelay=1000;this.retryNo=0;this.repeat=false;this.repeatCount=0;this.repeatNo=0;this.repeatDelay=1000;this.tag=null;this.group=null;this.form=null;this.disableForm=true;this.onInitialization=null;this.onFinalization=null;this.onAbort=null;this.onReadyStateChange=null;this.onLoading=null;this.onLoaded=null;this.onInteractive=null;this.onComplete=null;this.onSuccess=null;this.onFatalError=null;this.onInternalError=null;this.onError=null;this.onTimeout=null;this.onRetryDelay=null;this.onRetry=null;this.onRepeat=null;this.onRepeatDelay=null;this.onGroupEnter=null;this.onGroupLeave=null;this._xhr=null;this._eventHandled=[false];this._timerTimeout=null;this._timerRepeat=null;this.init=function(){(this._xhr!==null)&&this.destroy();if((this._xhr=this._createXHR())===null)
return false;if(typeof advAJAX._defaultParameters!='undefined')
this.handleArguments(advAJAX._defaultParameters);if(typeof this._xhr.overrideMimeType=='function'&&this.mimeType!==null)
this._xhr.overrideMimeType(this.mimeType);this._eventHandled=[this._eventHandled[0],false,false,false,false];var _this=this;this._xhr.onreadystatechange=function(){if(_this.requestAborted)
return;_this._raise('ReadyStateChange',_this._xhr.readyState);(!_this._eventHandled[_this._xhr.readyState])&&_this._handleReadyState(_this._xhr.readyState);};return true;};this.destroy=function(abort){abort=abort||false;try{abort&&this._xhr.abort();delete this._xhr['onreadystatechange'];}catch(e){};this._xhr=null;};this._createXHR=function(){if(typeof XMLHttpRequest!='undefined')
return new XMLHttpRequest();var xhr=['MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.5.0','MSXML2.XMLHttp.4.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp','Microsoft.XMLHttp'];for(var i=0;i<xhr.length;i++){try{var xhrObj=new ActiveXObject(xhr[i]);return xhrObj;}catch(e){};}
this._raise('FatalError');return null;};this._handleReadyState=function(readyState){if(this._eventHandled[readyState])
return;this._eventHandled[readyState]=true;switch(readyState){case 1:if(this.retryNo==0&&this.group!==null){if(typeof advAJAX._groupData[this.group]=='undefined'){advAJAX._groupData[this.group]=0;this._raise('GroupEnter',this.group);}
advAJAX._groupData[this.group]++;}
this._raise('Loading',this);break;case 2:this._raise('Loaded',this);break;case 3:this._raise('Interactive',this);break;case 4:window.clearTimeout(this._timerTimeout);if(this.requestAborted)
return;this.requestDone=true;this.responseText=this._xhr.responseText;this.responseXML=this._xhr.responseXML;try{this.status=this._xhr.status||null;this.statusText=this._xhr.statusText||null;}catch(e){this.status=null;this.statusText=null;}
this._raise('Complete',this);if(this.status==200){try{var _contentType=this._xhr.getResponseHeader('Content-type');if(_contentType.match(/^text\/javascript/i))
eval(this.responseText);else
if(_contentType.match(/^text\/x\-json/i))
this.responseJSON=eval('('+this.responseText+')');}catch(e){this._raise('InternalError',advAJAX.ERROR_INVALID_EVAL_STRING);};this._raise('Success',this);}else
this._raise('Error',this);if(this.repeat){if(++this.repeatNo!=this.repeatCount-1){this._raise('RepeatDelay',this);var _this=this;this._timerRepeat=window.setTimeout(function(){_this._raise('Repeat',this);_this.init();_this.run();},this.repeatDelay);return;}}
this.destroy();(this.disableForm)&&this._switchForm(true);this._handleGroup();this._raise('Finalization',this);}};this._handleGroup=function(){if(this.group===null)return;(--advAJAX._groupData[this.group]==0)&&this._raise('GroupLeave',this);}
this._onTimeout=function(){if(this._xhr==null||this._eventHandled[4])
return;this.requestAborted=this.requestTimedOut=true;this._xhr.abort();this._raise('Timeout');if(this.retryNo++<this.retryCount){this.init();this._raise('RetryDelay',this);var _this=this;this._timerTimeout=window.setTimeout(function(){_this._raise('Retry',_this);_this.run();},this.retryDelay);}else{this.destroy();(this.disableForm)&&this._switchForm(true);this._handleGroup();this._raise('Finalization',this);}};this.run=function(){if(this.init()==false)
return false;this.requestAborted=this.requestTimedOut=false;(!this._eventHandled[0])&&(this._raise('Initialization',this))&&(this._eventHandled[0]=true);if(this.retryNo==0&&this.repeatNo==0){if(this.useJSON){if(typeof[].toJSONString!='function'){this._raise('InternalError',advAJAX.ERROR_NO_JSON);return;}
for(var p in this.parameters){var useJson=typeof[].toJSONString=='function';(this.queryString.length>0)&&(this.queryString+='&');this.queryString+=encodeURIComponent(p)+'='+
encodeURIComponent(this.parameters[p].toJSONString());}}else{for(var p in this.parameters){(this.queryString.length>0)&&(this.queryString+='&');if(typeof this.parameters[p]!="object")
this.queryString+=encodeURIComponent(p)+'='+encodeURIComponent(this.parameters[p]);else{if(!(this.parameters[p]instanceof Array))continue;for(var i=0,cnt=this.parameters[p].length;i<cnt;i++)
this.queryString+=encodeURIComponent(p)+'='+encodeURIComponent(this.parameters[p][i])+'&';this.queryString=this.queryString.slice(0,-1);}}}
(this.method=='GET')&&(this.queryString.length>0)&&(this.url+=(this.url.indexOf('?')!=-1?'&':'?')+this.queryString);}
(this.disableForm)&&this._switchForm(false);try{this._xhr.open(this.method,this.url,true,this.username||'',this.password||'');}catch(e){this._raise('FatalError',this);return false;}
var _this=this;(this.timeout>0)&&(this._timerTimeout=window.setTimeout(function(){_this._onTimeout();},this.timeout));if(typeof this._xhr.setRequestHeader=='function'){if(this.method=='GET'&&!this.useCache)
this._xhr.setRequestHeader('If-Modified-Since','Sat, 1 Jan 2000 00:00:00 GMT');for(var p in this.headers)
this._xhr.setRequestHeader(encodeURIComponent(p),encodeURIComponent(this.headers[p]));}
if(this.method=='POST'){try{this._xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');}catch(e){};this._xhr.send(this.queryString);}else if(this.method=='GET'){this._xhr.send('');}};this.getResponseHeader=function(name){return this._xhr.getResponseHeader(name)||null;};this.getAllResponseHeaders=function(){return this._xhr.getAllResponseHeaders()||null;};this.abort=function(){this.requestAborted=true;window.clearTimeout(this._timerTimeout);window.clearTimeout(this._timerRepeat);this._handleGroup();this._raise('Abort',this);this.destroy();this._raise('Finalization',this);},this._extendObject=function(target,source){for(var p in source)
target[p]=source[p];};this.handleArguments=function(args){(typeof args['form']=='string')&&(args['form']=document.getElementById(args['form']));for(var p in args){if(typeof this[p]=='undefined'){this.parameters[p]=args[p];}else{if(p!='parameters'&&p!='headers'){this[p]=args[p];}else
this._extendObject(this[p],args[p]);}}
this.method=this.method.toUpperCase();(typeof this.form=='object')&&(this.form!==null)&&this._appendForm();(args.repeat)&&(this.repeatCount++);};this._switchForm=function(enable){if(typeof this.form!='object'||this.form===null)
return;var _f=this.form;for(var i=0;i<_f.elements.length;i++)
if(!enable){if(_f.elements[i]['disabled'])
_f.elements[i]['_disabled']=true;else
_f.elements[i]['disabled']='disabled';}else{if(typeof _f.elements[i]['_disabled']=='undefined'||_f.elements[i]['_disabled']===null)
_f.elements[i]['disabled']='';try{delete _f.elements[i]['_disabled'];}catch(e){_f.elements[i]['_disabled']=null;};}};this._appendForm=function(){var _f=this.form;this.method=_f.getAttribute('method').toUpperCase();this.url=_f.getAttribute('action');for(var i=0;i<_f.elements.length;i++){var _e=_f.elements[i];if(_e.disabled)
continue;switch(_e.type){case'text':case'password':case'hidden':case'textarea':this._addParameter(_e.name,_e.value);break;case'select-one':if(_e.selectedIndex>=0)
this._addParameter(_e.name,_e.options[_e.selectedIndex].value);break;case'select-multiple':var _r=[];for(var j=0;j<_e.options.length;j++)
if(_e.options[j].selected)
_r[_r.length]=_e.options[j].value;(_r.length>0)&&(this._addParameter(_e.name,_r));break;case'checkbox':case'radio':(_e.checked)&&(this._addParameter(_e.name,_e.value));break;}}};this._addParameter=function(name,value){if(typeof this.parameters[name]=='undefined'){this.parameters[name]=value;}else{if(typeof this.parameters[name]!='object')
this.parameters[name]=[this.parameters[name],value];else
this.parameters[name][this.parameters[name].length]=value;}};this._delParameter=function(name){delete this.parameters[name];};this._raise=function(name){for(var i=1,args=[];i<arguments.length;args[args.length]=arguments[i++]);(typeof this['on'+name]=='function')&&(this['on'+name].apply(null,args));(name=='FatalError')&&this._raise('Finalization',this);}};advAJAX._groupData=new Object();advAJAX._defaultParameters=new Object();advAJAX.get=function(args){return advAJAX._handleRequest('GET',args);};advAJAX.post=function(args){return advAJAX._handleRequest('POST',args);};advAJAX.head=function(args){return advAJAX._handleRequest('HEAD',args);};advAJAX._handleRequest=function(requestType,args){args=args||{};var _a=new advAJAX();_a.method=requestType;_a.handleArguments(args);setTimeout(function(){_a.run()},0);return _a;};advAJAX.submit=function(form,args){args=args||{};if(typeof form=='undefined'||form===null)
return false;var _a=new advAJAX();args['form']=form;_a.handleArguments(args);setTimeout(function(){_a.run()},0);return _a;};advAJAX.assign=function(form,args){args=args||{};(typeof form=='string')&&(form=document.getElementById(form));if(typeof form=='undefined'||form===null)
return false;form['_advajax_args']=args;var _onsubmit=function(event){event=event||window.event;if(event.preventDefault){event.preventDefault();event.stopPropagation();}else{event.returnValue=false;event.cancelBubble=true;}
var _e=event.target||event.srcElement;return!advAJAX.submit(_e,_e['_advajax_args']);};if(form.addEventListener){form.addEventListener('submit',_onsubmit,false);}else if(form.attachEvent){form.attachEvent('onsubmit',_onsubmit);}
return true;};advAJAX.download=function(target,url){(typeof target=='string')&&(target=document.getElementById(target));if(typeof target=='undefined'||target===null)
return false;advAJAX.get({'url':url,'onSuccess':function(o){target.innerHTML=o.responseText;}});};advAJAX.setDefaultParameters=function(args){advAJAX._defaultParameters=new Object();for(var a in args)
advAJAX._defaultParameters[a]=args[a];};advAJAX.ERROR_INVALID_EVAL_STRING=-1;advAJAX.ERROR_NO_JSON=-2;keypress=null;feedSSUrl='';slideShowTitle='';feedTitle='Default title';feedUrl='';blkCmnt='';gfbc_connect_user=null;var apiKey=null;var xd_rec=null;var gfbc_permalink=null;var gfbc_image_title=null;var gfbc_permalink_encoded=null;var gbfc_note=null;var gfbc_hello=null;var gfbc_logout=null;var gfbc_info=null;window.onload=function()
{getTemplateLang();bind();loadLazyScrDHTML('http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php');checkFBIsLoaded();};function checkFBIsLoaded()
{if(!window.FB)setTimeout('checkFBIsLoaded();',1000);else try{runFB();}catch(e){};};function loadLazyScr(url)
{document.write('<script src="',url,'" type="text/JavaScript"><\/script>');};function loadLazyScrDHTML(url)
{var head=document.getElementsByTagName("head")[0];script=document.createElement('script');script.id='uploadScript';script.type='text/javascript';script.src=url;head.appendChild(script);}
function add2book()
{if(window.sidebar)
window.sidebar.addPanel('World of colors - Piotr GeoS Galas photoblog','http://blog.piotrgalas.com/','');else
window.external.AddFavorite('http://blog.piotrgalas.com/','World of colors - Piotr GeoS Galas photoblog');}
function returnHTML(html)
{var htmlNode=document.createElement("DIV");htmlNode.innerHTML=html;return htmlNode;}
function myUrlResolver(entry)
{var tmp=returnHTML(entry.content);tmp=tmp.getElementsByTagName("img");var latestImageUrl=tmp[0].getAttribute("src");latestImageUrl=latestImageUrl.replace(/thumbnails\/thumb\_/,'images\/');return latestImageUrl;}
function myTransitionHandler(entry,transitionTime)
{if(entry.title)
slideShowTitle.innerHTML=entry.title+' - <a href="'+feedUrl+'" target="_blank">'+feedTitle+'</a>';else
slideShowTitle.innerHTML='Error loading: '+feedSSUrl;}
function myFeedLoadHandler(result){if(result.error){alert("feed load failed");}else{if(result.feed.title)feedTitle=result.feed.title;feedUrl=result.feed.link;document.getElementById("slideShow").innerHTML+=feedSSUrl;}}
function giawi()
{var feed=new google.feeds.Feed("http://blog.piotrgalas.com/templates/geos3/google-reader-subscriptions.xml");GEvent.addListener(feed,"keydown",checkKeyPress());}
function getBlogList()
{slideShowTitle=document.getElementById("slideShowTitle");var ts=new Date();var url='/templates/geos3/google-reader-subscriptions.xml';advAJAX.get({url:url,onSuccess:processBlogList,timeout:5000});}
function processBlogList(o)
{document.getElementById("blogList").innerHTML='Loading is in progress.';var url;var title;var txt=o.responseXML;var outlines=txt.getElementsByTagName("outline");document.getElementById("blogList").innerHTML='';for(i=1;i<outlines.length;i++)
{url=outlines[i].getAttribute("htmlUrl");title=outlines[i].getAttribute("title");document.getElementById("blogList").innerHTML+='<a href="'+url+'" target="_blank" class="geos_iawi_lst">'+title+'</a><br/>';}
rndSSUrl=Math.round(i*Math.random());rndSSUrl=(rndSSUrl>0?rndSSUrl:1);feedSSUrl=outlines[rndSSUrl].getAttribute("xmlUrl");slideShowTitle.innerHTML='Loading: '+feedSSUrl;LoadSlideShow();}
function updateFBCommentStuff()
{gfbc_connect_user=true;document.getElementById('gfbcReplacement').innerHTML='';var user_box=document.getElementById('gfbcId');user_box.innerHTML='<span>'
+'<fb:profile-pic uid=\'loggedinuser\' size=\'square\' facebook-logo=\'true\'></fb:profile-pic>'
+gfbc_hello+' <span id=\'fbName\'><fb:name uid=\'loggedinuser\' useyou=\'false\'></fb:name></span>.'
+gfbc_info+'<a href=# onclick=\'FB.Connect.logoutAndRedirect(location.href); return false;\'>'+gfbc_logout+'</a>'
+'<span style=\'display:none\'><input type=hidden name=name id=name class=input2 value= />'
+'<input type=hidden name=url id=url class=input2 value="http://www.facebook.com/profile.php?id='+FB.Connect.get_loggedInUser()+'" />'
+'<input type=hidden name=email id=email class=input2 value="'+FB.Connect.get_loggedInUser()+'@_facebook.com" />'
+'<input type=hidden name=vcookie id=vcookie value=set checked=checked/></span></span><br /><br />';FB.XFBML.Host.parseDomTree();}
function sendComment()
{if($('fbName'))document.getElementById('name').value=($('fbName').textContent!=null?$('fbName').textContent:($('fbName').innerText!=null?$('fbName').innerText:($('fbName').text!=null?$('fbName').text:'')));save_comment();if(gfbc_connect_user==true)
{var attachment={'name':gfbc_image_title,'href':gfbc_permalink,'description':gbfc_note,'caption':'{*actor*} left a comment on '+gfbc_image_title,'comments_xid':gfbc_permalink_encoded,'media': [{'type':'image','src':fbCImgUrl,'href':gfbc_permalink}] 
};var actionLinks=[{"text":"Read Post","href":gfbc_permalink}];FB.Connect.streamPublish(null,attachment,actionLinks);}}
function Set_Cookie(name,value,expires,path,domain,secure)
{var today=new Date();today.setTime(today.getTime());if(expires)
{expires=expires*1000*60*60*24;}
var expires_date=new Date(today.getTime()+(expires));document.cookie=name+"="+escape(value)+
((expires)?";expires="+expires_date.toGMTString():"")+
((path)?";path="+path:"")+
((domain)?";domain="+domain:"")+
((secure)?";secure":"");}
function setLangAndRefresh(lang,days)
{if(!days||days=='')days=366;Set_Cookie('lang',lang,days,'/');window.location.href=top.location.href.replace("blog.piotrgalas.com/","blog.piotrgalas.com/sl/");}
function searchOnLoad()
{var searchControl=new GSearchControl();searchControl.setResultSetSize(GSearch.LARGE_RESULTSET);searchControl.setLinkTarget(GSearch.LINK_TARGET_SELF);var options=new GsearcherOptions();options.setExpandMode(GSearchControl.EXPAND_MODE_OPEN);var blogSearch=new GblogSearch();blogSearch.setSiteRestriction("http://blog.piotrgalas.com/");searchControl.addSearcher(blogSearch,options);searchControl.draw(document.getElementById("searchcontrol"));searchControl.execute("Warsaw Rising");}
function showOver(content,title)
{return overlib(content,CAPTION,title,WIDTH,'160',BGCOLOR,'#0D0D0D',FGCOLOR,'#000000',RIGHT,TEXTCOLOR,'#ffffff');}
function startFB(rec,permalink,imgTitle,permalinkEnc,note,hello,logout,info)
{gfbc_connect_user=false;apiKey='8955b4f1c68ff493c7e6593e80661a27';xd_rec=rec;gfbc_permalink=permalink;gfbc_image_title=imgTitle;gfbc_permalink_encoded=permalinkEnc;gbfc_note=note;gfbc_hello=hello;gfbc_logout=logout;gfbc_info=info;FB.init(apiKey,xd_rec);FB.ensureInit(function(){FB.Connect.ifUserConnected(updateFBCommentStuff);});}
var adminCenter;var adminZoom;var userCenter;var userZoom;var mapType;function showGMap(adminCenter,adminZoom,userCenter,userZoom,mapType)
{adminCenter=adminCenter;adminZoom=adminZoom;userCenter=userCenter;userZoom=userZoom;mapType=mapType;}
function loadAdminMap()
{if(GBrowserIsCompatible())
{var adminMap=new GMap2(document.getElementById("adminMap"));adminMap.addControl(new GSmallMapControl());adminMap.addControl(new GMapTypeControl());adminMap.setCenter(new GLatLng(adminCenter,adminZoom));GEvent.addListener(adminMap,"moveend",function(){var center=adminMap.getCenter();document.getElementById("adminCenter").value=center.toString();});GEvent.addListener(adminMap,"zoomend",function(oldLevel,newLevel){document.getElementById("adminZoom").value=newLevel;});}
else
{document.getElementById("adminMap").innerHTML="Google Maps is not compatible with this browser.";}}
function loadUserMap()
{if(GBrowserIsCompatible())
{var userMap=new GMap2(document.getElementById("userMap"));userMap.addControl(new GLargeMapControl());userMap.addControl(new GMapTypeControl());userMap.setCenter(new GLatLng(userCenter,userZoom));var maptypes=userMap.getMapTypes();userMap.setMapType(maptypes[mapType]);GEvent.addListener(userMap,"moveend",function(){var center=userMap.getCenter();document.getElementById("userCenter").value=center.toString();});GEvent.addListener(userMap,"zoomend",function(oldLevel,newLevel){document.getElementById("userZoom").value=newLevel;});}
else
{document.getElementById("userMap").innerHTML="Google Maps is not compatible with this browser.";}}
var thumbnails_bar_html='';var gmarkers=[];var htmls=[];var i=0;function ShowInfoWindowGoogleMap(i)
{gmarkers[i].openInfoWindowHtml(htmls[i]);}
function initializePointOnGMap(lat,lon,elemId,title)
{if(lat!=null>0&&lon!=null)
{obj=document.getElementById(elemId+'Container');if(obj.style.display!='block')obj.style.display='block';var latlng=new google.maps.LatLng(lat,lon);var myOptions={zoom:15,center:latlng,scaleControl:true,mapTypeControl:true,mapTypeControlOptions:{style:google.maps.MapTypeControlStyle.DROPDOWN_MENU},mapTypeId:google.maps.MapTypeId.HYBRID};var map=new google.maps.Map(document.getElementById(elemId),myOptions);var marker=new google.maps.Marker({position:latlng,map:map});var infowindow=new google.maps.InfoWindow({content:title});google.maps.event.addListener(marker,'click',function(){infowindow.open(map,marker);});}}
shortcut={'all_shortcuts':{},'add':function(shortcut_combination,callback,opt){var default_options={'type':'keydown','propagate':false,'disable_in_input':false,'target':document,'keycode':false}
if(!opt)opt=default_options;else{for(var dfo in default_options){if(typeof opt[dfo]=='undefined')opt[dfo]=default_options[dfo];}}
var ele=opt.target;if(typeof opt.target=='string')ele=document.getElementById(opt.target);var ths=this;shortcut_combination=shortcut_combination.toLowerCase();var func=function(e){e=e||window.event;if(opt['disable_in_input']){var element;if(e.target)element=e.target;else if(e.srcElement)element=e.srcElement;if(element.nodeType==3)element=element.parentNode;if(element.tagName=='INPUT'||element.tagName=='TEXTAREA')return;}
if(e.keyCode)code=e.keyCode;else if(e.which)code=e.which;var character=String.fromCharCode(code).toLowerCase();if(code==188)character=",";if(code==190)character=".";var keys=shortcut_combination.split("+");var kp=0;var shift_nums={"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":"\"",",":"<",".":">","/":"?","\\":"|"}
var special_keys={'esc':27,'escape':27,'tab':9,'space':32,'return':13,'enter':13,'backspace':8,'scrolllock':145,'scroll_lock':145,'scroll':145,'capslock':20,'caps_lock':20,'caps':20,'numlock':144,'num_lock':144,'num':144,'pause':19,'break':19,'insert':45,'home':36,'delete':46,'end':35,'pageup':33,'page_up':33,'pu':33,'pagedown':34,'page_down':34,'pd':34,'left':37,'up':38,'right':39,'down':40,'f1':112,'f2':113,'f3':114,'f4':115,'f5':116,'f6':117,'f7':118,'f8':119,'f9':120,'f10':121,'f11':122,'f12':123}
var modifiers={shift:{wanted:false,pressed:false},ctrl:{wanted:false,pressed:false},alt:{wanted:false,pressed:false},meta:{wanted:false,pressed:false}};if(e.ctrlKey)modifiers.ctrl.pressed=true;if(e.shiftKey)modifiers.shift.pressed=true;if(e.altKey)modifiers.alt.pressed=true;if(e.metaKey)modifiers.meta.pressed=true;for(var i=0;k=keys[i],i<keys.length;i++){if(k=='ctrl'||k=='control'){kp++;modifiers.ctrl.wanted=true;}else if(k=='shift'){kp++;modifiers.shift.wanted=true;}else if(k=='alt'){kp++;modifiers.alt.wanted=true;}else if(k=='meta'){kp++;modifiers.meta.wanted=true;}else if(k.length>1){if(special_keys[k]==code)kp++;}else if(opt['keycode']){if(opt['keycode']==code)kp++;}else{if(character==k)kp++;else{if(shift_nums[character]&&e.shiftKey){character=shift_nums[character];if(character==k)kp++;}}}}
if(kp==keys.length&&modifiers.ctrl.pressed==modifiers.ctrl.wanted&&modifiers.shift.pressed==modifiers.shift.wanted&&modifiers.alt.pressed==modifiers.alt.wanted&&modifiers.meta.pressed==modifiers.meta.wanted){callback(e);if(!opt['propagate']){e.cancelBubble=true;e.returnValue=false;if(e.stopPropagation){e.stopPropagation();e.preventDefault();}
return false;}}}
this.all_shortcuts[shortcut_combination]={'callback':func,'target':ele,'event':opt['type']};if(ele.addEventListener)ele.addEventListener(opt['type'],func,false);else if(ele.attachEvent)ele.attachEvent('on'+opt['type'],func);else ele['on'+opt['type']]=func;},'remove':function(shortcut_combination){shortcut_combination=shortcut_combination.toLowerCase();var binding=this.all_shortcuts[shortcut_combination];delete(this.all_shortcuts[shortcut_combination])
if(!binding)return;var type=binding['event'];var ele=binding['target'];var callback=binding['callback'];if(ele.detachEvent)ele.detachEvent('on'+type,callback);else if(ele.removeEventListener)ele.removeEventListener(type,callback,false);else ele['on'+type]=false;}}
function older()
{if($('browse_prev'))window.location=$('browse_prev').href;}
function newer()
{if($('browse_next'))window.location=$('browse_next').href;}
function bindKey(key,url)
{shortcut.add(key,function(){window.location=url;},{'disable_in_input':true});}
var templateLang=null;function getTemplateLang()
{mC=document.getElementsByTagName('meta');for(i=0;i<mC.length;i++)
{a=mC[i].attributes;for(j=0;j<a.length;j++)
{if(a[j].nodeValue=='content-language')
{templateLang=mC[i].getAttribute('content');return;}}}}
function bind()
{if(templateLang=='en')
{bindKey('a','/browse/');bindKey('m','/map/');bindKey('s','/search/');bindKey('c','/about/');shortcut.add('l',function(){setLangAndRefresh('pl', 366);},{'disable_in_input':true});}
else
{bindKey('a','/archiwum/');bindKey('m','/mapa/');bindKey('s','/szukaj/');bindKey('k','/o_mnie/');shortcut.add('l',function(){setLangAndRefresh('en', 366);},{'disable_in_input':true});}
shortcut.add('p',function(){older();},{'disable_in_input':true});shortcut.add('Left',function(){older();},{'disable_in_input':true});shortcut.add('n',function(){newer();},{'disable_in_input':true});shortcut.add('Right',function(){newer();},{'disable_in_input':true});bindKey('h','/');bindKey('w','/');}
