/**
 * @author Hammer the Master of Mechanist xD
 * @email km@post.pl
 * 
 * Ot skrypt do obsługio naszego uber pro krętła ^^
 * @update Dodano obsługe przełanczających sie przycisków menu.
 * @update Dodano preloading tych wielkich śmieci które na moim necie pokazują sie z opuźnieniem ;d
 * @update Dodano podmiane arkusza styli dla IE6
 * @update Dodano kompatybilność z Google Chrome i metode do ładowania linkow do iframa
 * @update Dodano obsługe przyjazdnych linkow do wnętrza ramki i prekawywanie parametrów do wenątrz
 * @update Wprowadzono kilka poprawek względem kompatybilności z rużnym przeglądarkami
 * @update Przebudowano dodawanie arkusza styli poprzez przeszukiwanie drzewa obiektów
 * @update Dodano prosty debuger.
 * 
 */

var preload = new Array(
     {"dir" : "grafika/buttons/wcisniete/", "list" :  new Array(
          "biblia_fallouta_b.png","ciekawe_questy_b.png","ekwipunek_b.png","forum_b.png","galeria_b.png","info_o_nas_b.png","kanal_rss_b.png","kanal_you_tube_b.png","nauka_i_technika_b.png","nowiny_b.png","npc_b.png","o_grze_b.png","pliki_b.png","porady_b.png","postkultura_b.png","solucja_b.png","spolecznosc_b.png","sznurki_b.png","szookaj_b.png","twoj_bohater_b.png","tworczosc_b.png","van_buren_b.png","stopka_b.png","fallout_new_vegas_b.png","fonline_2238_b.png"
     )},{"dir" : "grafika/buttons/pokretlo/", "list" :  new Array(
          "fallout_1.gif","fallout_2.gif","fallout_3.gif","fallout_ft.gif","fallout_3up.gif"
     )},{"dir" : "grafika/buttons/zwykle/", "list" :  new Array(
          "biblia_fallouta.png","ciekawe_questy.png","ekwipunek.png","forum.png","galeria.png","info_o_nas.png","kanal_rss.png","kanal_you_tube.png","nauka_i_technika.png","nowiny.png","npc.png","o_grze.png","pliki.png","porady.png","postkultura.png","solucja.png","spolecznosc.png","sznurki.png","szookaj.png","twoj_bohater.png","tworczosc.png","van_buren.png","stopka.png","fallout_new_vegas.png","fonline_2238.png"
     )},{"dir" : "grafika/", "list" :  new Array(
          "lewy_bok.jpg","gorny_pasek.png","dolny_pasek.png","tlo.gif","lewy_bok.gif","gorny_pasek.gif","dolny_gif.png"
     )}
);

if(/MSIE (\d+\.\d+);/.test(navigator.userAgent) && (new Number(RegExp.$1)) < 8 )
     preload[preload.length] = {"dir" : "grafika/", "list" :  new Array("ie_prawy_bok.gif")};
else     
     preload[preload.length] = {"dir" : "grafika/", "list" :  new Array("prawy_bok.gif")};

function zamiana(){
     var layers = new Array( new Object(), new Object(), new Object(), new Object(), new Object() );
     var przelacznik = null;
     var last=-1;
      var location = window.location.href;

     var buttonOff = "grafika/buttons/zwykle/";
     var buttonOn = "grafika/buttons/wcisniete/";
     var buttonKrec = "grafika/buttons/pokretlo/";   
     
     var inicjuj = function( layerID, imgName ){          
          return( {
               idName : layerID,
               id : document.getElementById(layerID),
               img :  buttonKrec+imgName,
               visibility : "hidden",
               display : "none"
          } );
     };
     var getIndex = function( s ){
          for( i = 0 ; i < layers.length ; i++ ){
               if( layers[i].idName == s ){
                    return(i);
               }          
          }
          return(-1);
     };     
     var iframeParams = function(){
          var qparts = location.split("?");

          if (qparts[1] != undefined) {
                    location = qparts[0];
               return( "?" + qparts[1]);
          }else{
               return("");
          }
     };     
     this.zmien = function( show ){          
          if( typeof( show ) == "string" ){
                     if( pageTracker instanceof Object )
                         pageTracker._trackPageview("kretlo_"+show);                 
               show = getIndex(show);
          }                    
          if ( show > -1 ) {               
               var ls = layers[show].id;               
               ls.style.visibility = "visible";
               ls.style.display = "block";               
               przelacznik.src = layers[show].img;               
               if (last > -1 && last != show){
                    var lh = layers[last].id;                    
                    lh.style.visibility = layers[last].visibility;                    
                    lh.style.display = layers[last].display;
               }
               last = show;
          }
     };     
     this.build = function( mapName, el, show){
          przelacznik = document.getElementById(mapName);
          for (var i = 0; i < layers.length; i++) {
               layers[i] = inicjuj(el[i][0], el[i][1]);
          }
          this.zmien(show);
     };
     this.sMouseOn = function( divl, button ){
          divl.style.backgroundImage="url('"+buttonOn+button+"')";
     };
     this.sMouseOut = function( divl, button ){
          divl.style.backgroundImage="url('"+buttonOff+button+"')";
     };
     this.sMouseClick = function( link , cel){
           if( pageTracker instanceof Object )
               pageTracker._trackPageview(link);
            if(cel == "self")  { self.location.href = link;          }
          else if(cel == "new")   { window.open(link);                    }
          else                    { srodek.location.href = link+iframeParams();     }
               if (cel != "new" || cel == undefined || !cel ) {
                    expire = new Date();
                    expire.setDate(expire.setHours(expire.getHours() + 1));
                    (new cookieSet({
                         "name": "13sTV",
                         "value": link,
                         "expire": expire
                    })).redySetGo();
               }
            
     };                     
     this.loadImages = function( imgs ){
          this.imgArray = new Array();
          for(i=0;i<imgs.length;i++){
               this.imgArray[i] = new Array();          
               for(j=0;j<imgs[i].list.length;j++){
                    this.imgArray[i][j]=new Image().src = imgs[i].dir+imgs[i].list[j];                    
               }               
          }
     };
     this.insertStyleSheet = function(defStyleSheet, ie6styleSheet){
           var newStyleSheet = document.createElement("link");
           newStyleSheet.setAttribute("rel", "stylesheet");
           newStyleSheet.setAttribute("type", "text/css");

           if (/MSIE (\d+\.\d+);/.test(navigator.userAgent) && (new Number(RegExp.$1)) < 8) {
               newStyleSheet.setAttribute("href", ie6styleSheet + ".css");
               document.childNodes[1].childNodes[0].appendChild(newStyleSheet);
          }else{
               newStyleSheet.setAttribute("href", defStyleSheet + ".css");
               for (i = 0; i < document.childNodes.length; i++) 
                    if (document.childNodes[i] instanceof HTMLHtmlElement) 
                         document.childNodes[i].childNodes[0].appendChild(newStyleSheet);
          }
     };   
     this.ie6isTheGreatShit = function(){    
          if(/MSIE (\d+\.\d+);/.test(navigator.userAgent) && (new Number(RegExp.$1)) <= 6)          
               document.getElementById("pokretlo").style.marginTop = document.getElementById("pokretlo").style.marginTop.slice(0,2)+10+"px";          
     }
     this.iframeLoad = function( defaultIframeSrc ){
           this.ie6isTheGreatShit(); 
          var goFile = window.location.href.split(",");              
             defaultIframeSrc = (new cookieSet()).isSet(defaultIframeSrc,"13sTV");
               //alert(defaultIframeSrc)
          if( /\/nowina/.test(goFile[0]) && /[a-z0-9]{13}.(htm|html)/.test(goFile[1])){
               linkLocation = goFile[0];               
               this.sMouseClick("news/index.php?action=news&sub=vievkom&uniq=news_"+goFile[1].replace(/\.html|\.htm/,""));
               
          }else if (typeof(goFile[1]) != 'undefined'  && goFile[1].slice(0, 7) == "fallout") {
               this.zmien(goFile[1].slice(0,goFile[1].indexOf(".")));
               this.sMouseClick(defaultIframeSrc);
               return (null);
          }else if( typeof(goFile[1]) != 'undefined' ){
               this.sMouseClick("ie_"+goFile[1].replace(/\.html/,".htm"));
         }else if(/ie_(.*).(htm|html)/.test(goFile[0])){                     
                    this.sMouseClick(goFile[0].replace(/\.html/,".htm"));
           }else{
                     //defaultIframeSrc = (new cookieSet()).isSet(defaultIframeSrc,"13sTV");
               this.sMouseClick(defaultIframeSrc);
          }          
     };
}

function cookieSet( obj ){
     if(obj)
          for( el in obj ){
               this[el] = obj[el];
          }
};
cookieSet.prototype.set = function( name, value){
     this[name]=value;
};
cookieSet.prototype.toString = function(){
     if( this.name ){
          var cookie = this.name+"="+escape(this.value);
               cookie +=(this.expires?';expires='+this.expires.toGTMString:'');
               cookie +=(this.domena?"; domain="+this.domena:'');
               cookie +=(this.path?'; path='+this.path:'');
               cookie +=(this.flag?'; secure='+this.flag:'');
               return( cookie );
     }else{
          throw new Error("Nie ustawiono nazwy ciastka");
     }     
};
cookieSet.prototype.redySetGo = function(){
     document.cookie = this.toString();
}
cookieSet.prototype.usun = function(){
     var e = new Date();
     e.setMonth(-1);
     document.cookie = this.name+"="+escape(value)+';expires='+e.toGTMString;
}
cookieSet.prototype.isSet = function(def,n){
     var cDef=this.read(n);
     
     if( cDef != null ){
          return( cDef )
     }else
          return(def);
}
cookieSet.prototype.read = function(v){
     var cookie = document.cookie;     
     //var v = cookie.match( /\b(\w)+([^=;]*)/ )[0];
     var cRegExp = new RegExp( "\\b"+v+"=([^;]*)");
     var value = cRegExp.exec(cookie);
     if( value != null )
          value = value[1];
          //alert(value[1]!=null?unescape(value):null)
     return(value?unescape(value):null)
}
zamiana.throwErrors = function(err){
      var info = "Wystapil blad podczas wykonywania skryptu. Jesli chcesz go zglosic prosze przekazac nastepujaca wiadomosc dla redakcji "+
     "Trzynastego Schronu\n typ:"+err.name+ " \nwiadomosc: "+err.message+" \nlinia: "+err.lineNumber+" \n przegladarka "+navigator.userAgent;
     alert(info);
};

try{
     var o = new zamiana();
     o.insertStyleSheet("index", "index2");
     o.loadImages(preload);
}catch( err ){     
     zamiana.throwErrors(err);     
}

