var gazeta_404 = {
 ovh : null,
 ovh_bg : null,
 ov : null,
 ov_bg : null,
 ov_inner : null,
 ov_close : null,
 isIE6 : ('ActiveXObject' in window && !('XMLHttpRequest' in window)),
 readHash : function(){
  var me = gazeta_404;
  var h = document.location.hash;
  if(h != ''){
   if(h.indexOf("error=4") > 0) me.probe();
  }
 },
 probe : function(){
  var me = gazeta_404;
  if(document.body && document.body.childNodes.length > 1){ 
    me.createErrorHTML();
  }else{ 
    window.setTimeout(gazeta_404.probe,1);
  }
 },
 createErrorHTML : function(){
  var me = gazeta_404;
  me.ovh = me.createDiv('g404_overlay_holder'); 
  me.ovh_bg = me.createDiv('g404_overlay_holder_bg'); 
  me.ov = me.createDiv('g404_overlay');
  me.ov_bg = me.createDiv('g404_overlay_bg');
  me.ov_inner = me.createDiv('g404_overlay_inner');
  me.ov_close = me.createDiv('g404_close');
  

  var close_x = me.createTextElem('span','x');
  var pl_h = me.createTextElem('h1','Nie znaleziono strony o podanym adresie');
  var pl_p1 = me.createTextElem('p','Przepraszamy. Strona, której szukasz nie została odnaleziona.');
  var pl_p2 = me.createTextElem('p','Prawdopodobnie została skasowana, zmieniono jej nazwę albo została czasowo usunięta.');
  var en_h = me.createTextElem('h1','Page not found');
  var en_p1 = me.createTextElem('p','We are sorry, but the page you requested cannot be found.');
  var en_p2 = me.createTextElem('p','The page you are looking for might have been removed, had its name changed, or is temporarilly unavailable.');
  pl_h.className = 'first';
  
  me.setOpacity(me.ovh_bg,'70');
  me.setOpacity(me.ov_bg,'60');
  
  me.ov_close.appendChild(close_x);
  me.ov_inner.appendChild(me.ov_close);
  me.ov_inner.appendChild(pl_h);
  me.ov_inner.appendChild(pl_p1);
  me.ov_inner.appendChild(pl_p2);
  me.ov_inner.appendChild(en_h);
  me.ov_inner.appendChild(en_p1);
  me.ov_inner.appendChild(en_p2);
  me.ov.appendChild(me.ov_bg);
  me.ov.appendChild(me.ov_inner);
  me.ovh.appendChild(me.ovh_bg);
  me.ovh.appendChild(me.ov);
  //document.body.appendChild(me.ovh);
  document.body.insertBefore(me.ovh, document.body.firstChild);
  
  me.aEv(me.ov_close, 'click', gazeta_404.close);
  
  var wh = gazeta_404.getWindowHieght();
  var oh = me.ov.offsetHeight;
  me.ov.style.top = ((wh-oh)/2)+'px'; 
  
  if(gazeta_404.isIE6){
   me.aEv(me.ov_close, 'mouseover', gazeta_404.close_hover);
   me.aEv(me.ov_close, 'mouseout', gazeta_404.close_unhover);
   
   var ow = me.ov.offsetWidth;
   me.ov_bg.style.width = ow;
   me.ov_bg.style.height = oh; 
  }
   
  me.ovh.style.visibility = "visible";
  /* hide selects when page loads */
  me.aEv(window, 'load', gazeta_404.hideSelects)
 },
 close : function(e){
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; }; (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  while(el.getAttribute('id') != 'g404_close') el = el.parentNode;
 
  document.body.removeChild(gazeta_404.ovh);
  
  /* show selects */
  gazeta_404.rEv(window, 'load', gazeta_404.hideSelects);
  var _sels = document.getElementsByTagName('select');
  if(_sels.length > 0){
   for(var i = 0; i < _sels.length; i++){
    _sels[i].style.visibility = "visible";
   }
  }
 },
 close_hover : function(e){
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; }; (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  while(el.getAttribute('id') != 'g404_close') el = el.parentNode;
  gazeta_404.aCl(el,'hovered');
 },
 close_unhover : function(e){
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; }; (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  while(el.getAttribute('id') != 'g404_close') el = el.parentNode;
  gazeta_404.rCl(el,'hovered');
 },
 createDiv : function(id){
  var div = document.createElement('div');
  div.setAttribute('id',id);
  return div;
 },
 createTextElem : function(el,txt){
  var elem = document.createElement(el);
  var text = document.createTextNode(txt);
  elem.appendChild(text);
  return elem;
 },
 getWindowHieght : function(){
  var h = 0;
  if( typeof( window.innerWidth ) == 'number' ) { /* Non-IE */ h = window.innerHeight; }
  else if( document.documentElement && document.documentElement.clientHeight ) { /* IE 6+ in 'standards compliant mode' */ h = document.documentElement.clientHeight; }
  else if( document.body && document.body.clientHeight ) { /* IE 4 compatible */ h = document.body.clientHeight; }
  return h
 },
 hideSelects : function(){
  var _sels = document.getElementsByTagName('select');
  if(_sels.length > 0){
   for(var i = 0; i < _sels.length; i++){
    _sels[i].style.visibility = "hidden";
   }
  }
 },
 aEv : function(obj, type, fn) { if (obj.addEventListener) { obj.addEventListener(type, fn, false); } else if (obj.attachEvent) { obj["e"+type+fn] = fn; obj[type+fn] = function() { obj["e"+type+fn](window.event); }; obj.attachEvent("on"+type, obj[type+fn]); }},
 rEv : function(obj, type, fn) { if ( obj.detachEvent ) { obj.detachEvent( 'on'+type, obj[type+fn] ); obj[type+fn] = null; } else obj.removeEventListener( type, fn, false ); },
 gOb : function(n) { return document.getElementById(n); },
 gBTC : function(obj, tag, clName) { var objs = obj.getElementsByTagName(tag); var robj = new Array(); var j = 0; for (var i = 0; i < objs.length; i++) { if (gazeta_404.hCl(objs[i], clName)) robj[j++] = objs[i]; }; return robj; },
 trm : function(x){return x.replace(/^\s+|\s+$/g,'');},
 hCl : function(obj, clName) { var clN = ' ' + obj.className + ' '; return (clN.match(' ' + clName + ' ') != null); },
 aCl : function(obj, clName) { if (!gazeta_404.hCl(obj, clName)) obj.className = gazeta_404.trm(obj.className + ' ' + clName); },
 rCl : function(obj, clName) { if (!gazeta_404.hCl(obj, clName)) return; var clN = ' ' + obj.className + ' '; eval("obj.className = gazeta_404.trm(clN.replace(/ " + clName + " /g,''));"); },
 setOpacity : function(el, val){ el.style.opacity = val/100; el.style.filter = 'alpha(opacity='+val+')'; }
}

gazeta_404.readHash();

