


function show_loading(mssg){
    $('kategorie').addClass('hiden');
    $('loading_msg').set('text', mssg);
    $('content').addClass('hiden');
    $('loading').setStyle('display', 'block');
    
    
}

function hide_loading(){
    $('kategorie').removeClass('hiden');
    $('loading').setStyle('display', 'none');
    $('content').removeClass('hiden');
    
}

function change_baner(id){
    if(id != 0 && id != '' && id != 'undefined'){
        var tekst = 'url("/images/nowastrona3/' + id + '.jpg") repeat scroll right top transparent';
        $('top').setStyle('background',tekst);
    }
    
}




function show_msg(msg){
    alert(msg);
}

function dodaj_produkt(produkt){
    var jsonRequest = new Request.JSON({url: main_adres + "/dodaj/" + produkt + '/', onComplete: function(koszyk){
		show_msg(koszyk.msg);
		$('koszyk_ilosc').set('text', koszyk.ilosc);
	    }}).get();
}

var main_adres = 'nowastrona.php';

var ajax_loader = {
 cache: new Hash(),
 setup: function(){
    this.cache = new Hash();
  },

 load: function(url, callback){

  },

 nothin: ''
};

function getFormValues(form){
    var values = new Hash();
    
    form.getElements('input').each(function(pole){
	    values[pole.get('name')] = pole.get('value');
	});
    return values
}

function form_register(form, url){
    var jsonRequest = new Request.JSON({url: main_adres + "/" + url + "/", onComplete: function(register){
		    $$('.errorfield').removeClass('errorfield');
		    var html = '';
		if(register.forward){
		    polgenstrona.gotourl(polgenstrona.create_url('strona/' + register.forward));
		}else{
		    errors=  new Hash(register.errors);
		    errors.each(function(error, pole){
			    $(pole).addClass('errorfield');
			    html += '<li>'+ error + '</li>';
			});
		}
		    $('form_bledy').set('html', html);
	    }}).post(getFormValues($(form.id)));
    return false;
}

function usun_onclick(element){
    $(element).removeAttribute('onclick');
    
}

var kategorie_manager = {

 kategorie: '',
 url: '',
 is_mini: false,
 lista: false,
 setup : function(url) {
	this.url = 'kategorie/'
	new Asset.css('./css/nowastrona_hide.css', {});
	this.otwarte = new Hash();
	this.lista = polgen_kategorie;
    },

 otwarte_kategorie_html: '',
 otwarte_kategorie: '',
 is_search: false,
 bind_search: function(lista, url){

        
	if(!this.is_search){
           
	    kategorie_manager.otwarte_kategorie_html = $('kategorie').get('html');
	    kategorie_manager.otwarte_kategorie = kategorie_manager.otwarte;
	}
        $('strona_glowna').setAttribute("onclick", "kategorie_manager.revert_kat(); usun_onclick(this); return false; ");
	$('kategorie').set('html', lista);
	this.otwarte = new Hash();
	kategorie_manager.is_search = true;
	var ob = eval($('search_grupy').get('html'));
	kategorie_manager.lista = ob.kategorie;

      
	$('powrot').setStyle('display', 'block');
        
	if(ob.redir){
	    kategorie_manager.revert_kat();
	    produkty_load(ob.redir);
	}else if(ob.onlyone){
	    this.url = url;
          
	    polgenstrona.gotourl(kategorie_manager.open_kategoria(ob.onlyone));
	}else if(ob.error){
	    alert(ob.error);

	    kategorie_manager.revert_kat();
	}else if(ob.many){
            
            polgenstrona.gotourl(kategorie_manager.open_many_kategorie(ob.many));
//            alert(ob.many);
//            wart = ob.many.split(',');
//            for(i=0;i<=wart.length;i++){
//                alert(wart[i]);
//                polgenstrona.gotourl(kategorie_manager.open_kategoria(wart[i]));
//            }
        }
        else{
	    this.url = url;
	}
	

    },

 revert_kat: function(kat_men,glowna){
	$('powrot').setStyle('display', 'none');
        
        //alert($('search_kod').get('value'));
        $('search_kod').set('value','');
       
	$('kategorie').set('html', kategorie_manager.otwarte_kategorie_html);
        if(glowna==1){
//
//            new Request({evalScripts: true, url: main_adres + '/' + '/produkty/jsong' , method: 'get', onSuccess: function(grupy){
//
//                polgen_kategorie = grupy;
//            }}).send();
//           alert(polgen_kategorie);
//           polgen_kategorie.each(
//            function(idik){
//                this.only_parents(idik);
//            }
//           );
//           this.only_parents(id)
        }
        $('kategorie').removeClass('parent_mode');
        $$('.parent').removeClass('parent');
        $$('.parent_kategoria').removeClass('parent_kategoria');
	kategorie_manager.otwarte = kategorie_manager.otwarte_kategorie;
	this.url = 'kategorie/'
	this.lista = polgen_kategorie;
	this.is_search = false;
        szukaj_manager.search_nazwa = '';
        
    },
 
 get_kategorie_url: function(aopen){
    var otwarte = new Hash();
    
    kategorie_manager.otwarte.getKeys().each(function(kid){
	kategoria = kategorie_manager.lista[kid];
	if(kategoria.open){
	  if(kategoria.close){
	    kategoria.close = false;
	  } else {
	    if(kategoria.has_produkty){
	      otwarte[kategoria.id]=kategoria.podstrona;
	    }else{
	      otwarte[kategoria.id]=1;
	    }
	  }
	}
      });

    otwarte = aopen.combine(otwarte);

    var adres = new Hash();
    
    otwarte.each(function(podstrona, kategoria){
	if(podstrona != '1'){
	  adres.set(kategoria, kategoria + 'p' + podstrona);
	}else{
	  adres.set(kategoria, kategoria);
	}
      });
    
    return this.url+adres.getValues().join(',');
  },
 

 parse_url: function(string){
   
    kategorie_manager.otwarte = new Hash();
    if(string!=''){
      string.split(',').each(function(kategoria){
	  if(kategoria.split('p').length == 2){
	    podstrona = kategoria.split('p')[1];
	    kategoria = kategoria.split('p')[0];
	    kategorie_manager.otwarte[kategoria] = podstrona;
	  }else{
	    kategorie_manager.otwarte[kategoria] = 1;
	  }
	});
    }
    
    kategorie_manager.lista.each(function(kat){
	
	if(kat.open && !kategorie_manager.otwarte.has(kat.id)){
	  kat.open = false;
	  kategorie_manager.zwin(kat.id);
	  
	  if(kat.has_produkty){
	    kategorie_manager.zwin_produkty(kat.id);
	  }
	  
	} else if(kategorie_manager.otwarte.has(kat.id)){
	    if(!kat.open){
	      kat.open = true;
	    kategorie_manager.rozwin(kat.id);
	    if(typeof(kat.podstrona)=='undefined'){
		kat.podstrona = '1';
	    }
	    if(kat.has_produkty){
		kategorie_manager.load_produkty(kat.id);
	    }
	  } else if ( kategorie_manager.otwarte[kat.id]!=kat.podstrona && kat.has_produkty){
	      kat.podstrona = kategorie_manager.otwarte[kat.id];
	      kategorie_manager.load_produkty(kat.id);
	  }	  
	} 
      });
    
    if(strona_manager.loaded){
      strona_manager.hide();
      
    }
   if(kategorie_manager.is_mini){
     kategorie_manager.show();
   }
  },
 open_many_kategorie : function(id_kategorii){
   var nowa = true;
   var strona = '1';
   var aopen = new Hash();
   var my_tab = id_kategorii.split(',');

   my_tab.each(function(new_id){
        if(kategorie_manager.lista[new_id + ''].open){

              if(kategorie_manager.is_mini){
                return this.get_kategorie_url(new Hash());

              }else{
                if(kategorie_manager.lista[new_id].podstrona != strona && ! nowa){
                  aopen.set(new_id, strona);
                } else {
                  kategorie_manager.lista[new_id + ''].child_list.each(function(kid){
                      kategorie_manager.lista[kid].close = true;
                    });
                }
              }
            } else {
              kategorie_manager.lista[new_id].parent_list.each(function(kid){
                  aopen.set(kid, strona);
                });
            }

     }
   );
    
    return this.get_kategorie_url(aopen);

 },
 open_kategoria : function(id_kategorii) {
    var strona = '1';
    var nowa = true;
    if(id_kategorii.split(',').length > 1){
      strona = id_kategorii.split(',')[1];
      nowa = false;
      id_kategorii = id_kategorii.split(',')[0];      
    }
  
    var aopen = new Hash();
    if(kategorie_manager.lista[id_kategorii + ''].open){
	
      if(kategorie_manager.is_mini){
        return this.get_kategorie_url(new Hash());
	
      }else{
        if(kategorie_manager.lista[id_kategorii].podstrona != strona && ! nowa){
          aopen.set(id_kategorii, strona);
        } else {
          kategorie_manager.lista[id_kategorii + ''].child_list.each(function(kid){
              kategorie_manager.lista[kid].close = true;
            });
        }
      }
    } else {
      kategorie_manager.lista[id_kategorii].parent_list.each(function(kid){
          aopen.set(kid, strona);
        });
    }
    return this.get_kategorie_url(aopen);
  },
  
  zwin: function(id){
    $('grupa_' + id).removeClass('hover');
    if($('podgrupy_' + id)){
	$('podgrupy_'+id).addClass('podgrupy');
	$('podgrupy_'+id).removeClass('rozwiniete');
    }
  },
 
 rozwin: function(id){
    $('grupa_' + id).addClass('hover');
    if($('podgrupy_' + id)){
	$('podgrupy_'+id).removeClass('podgrupy');
	$('podgrupy_'+id).addClass('rozwiniete');
    }
  },
 
 
 load_produkty: function(id){
    podstrona = kategorie_manager.lista[id].podstrona
    $('produkty_' + id).addClass('produkty_rozwiniete');
   
    if(!this.is_search){
    new Request({evalScripts: true, url: main_adres + '/' + 'produkty/ajaxprodukty/id_g/' + id + '/page/' + podstrona, method: 'get', onSuccess: function(produkty){
	  $('produkty_' + id).set('html', produkty);
	}}).send();
    }
  },
 
 show_produkty: function(id, lista){
    
  },
 
 zwin_produkty: function(id){
    $('produkty_' + id).removeClass('produkty_rozwiniete');
  },

 otwarte: '',
  
 show: function(){
    kategorie_manager.is_mini = false;
    $('kategorie').removeClass('mini');
    $('kategorie').removeClass('parent_mode');
    $$('.parent').removeClass('parent');
    $$('.parent_kategoria').removeClass('parent_kategoria');
    
  },

 mini: function(){
    if(!kategorie_manager.is_mini){
      kategorie_manager.show();
      kategorie_manager.is_mini = true;
      $('kategorie').addClass('mini');
    }
  },

 only_parents: function(id){
    var rodzice = new Hash();
    $('strona_glowna').setAttribute("onclick", "kategorie_manager.revert_kat(0,1); usun_onclick(this); return false; ");
    $$('.parent').removeClass('parent');
    $$('.parent_kategoria').removeClass('parent_kategoria');
    //    polgenstrona.gotourl(this.open_kategoria(id));
    kategorie_manager.mini();
    
    kategorie_manager.lista[id].parent_list.each(function(kid){
	$('grupa_' + kid).addClass('parent_kategoria');
	if($('podgrupy_' + kid)){
	  $('podgrupy_' + kid).addClass('parent');
	}
      });
    
    $('kategorie').addClass('parent_mode');
    
  },
 
 nothing :''
};
 
function produkty_load(id_produktu, dzial){
  url = 'strona/produkt:' + id_produktu;
 // $('strona_glowna').setAttribute("onclick", "kategorie_manager.revert_kat(); usun_onclick(this); return false; ");
  if(dzial){
    url = url + ':' + dzial;
  }
  polgenstrona.gotourl(url);
  return false;
}

var szukaj_manager = {
    setup: function(){
	$('search_form').addEvent('submit', function(){
		szukaj_manager.szukaj();
		return false;
	    });
    },

    search_nazwa: '',
    search_producent: '',
    search_url: '',


    szukaj: function(){
		url = 'szukaj/'
		prod = $('search_producent').get('value');
                prod = jQuery('#search_producent').val();
                // alert(prod);
                if(prod === null || prod == null){
//                     alert(prod);
		    prod = 0;
                }
		if(prod.length == 0 || prod === null){
//                    alert(prod);
		    prod = 0;
		}
                
		url += prod + '/';
		kod = $('search_kod').get('value');
		kod = kod.replace('.','@@');
                kod = kod.replace('/','@$');
                kod = kod.replace('?','@!');
         
		if(kod == ''){
		    kod = 'brak';
		}
		url += kod + '/';

		polgenstrona.gotourl(url);
		return false;
    },
    
    url: '',

    bind_search: function(kategorie){
       
	kategorie_manager.bind_search(kategorie, this.url);
    },
    
    load_search: function(){
	strona_manager.hide();
	show_loading('Trwa wyszukiwanie produktu');
	new Request({
		url: main_adres + '/ajax/' + this.url,
		    
		    method: 'get',
		    evalScripts: true,
		    
		    onSuccess: function(tresc){
		    hide_loading();
		    szukaj_manager.bind_search(tresc);
		},
		    
		    onException: function(a, b){
		    strona_manager.show_strona(strona, 'Nie mozna wyswietlic strony <br />'+a+'<br />'+b);
		    hide_loading();
		},
		    onFailure: function(a){
		    strona_manager.show_strona(strona, 'Nie mozna wyswietlic strony przekroczono czas polaczenia');
		    hide_loading();
		}
	}).send();
	
    },
    
    hide: function(){
	this.search_nazwa = '';
	this.search_producent  = '';
	this.url = '';
    },
    
    parse_url: function(string){

	var producent = false;
	var szukaj = false;
	var kategorie = '';
	
	var d = string.split('/');
	
	switch(d.length){
	    
	case 3:
	producent = d[0];szukaj = d[1];kategorie = d[2];
	break;
	
	case 2:
	szukaj = d[0];kategorie = d[1];
	break;
	
	default:
	szukaj = d[0];
	break;
	
	}
	//alert(this.search_nazwa + " " + szukaj + " " + this.search_producent + " " + producent);
	if(this.search_nazwa != szukaj || this.search_producent != producent){
	    this.search_nazwa = szukaj;
	    this.search_producent = producent;
	    if(producent){
		this.url = 'szukaj/' + producent + '/' + szukaj + '/';
	    }else{
		this.url = 'szukaj/' + szukaj + '/';
	    }
	    this.load_search();
	}else{
            
	    kategorie_manager.parse_url(kategorie);
	}
    },
 
 nothing: ''
}

var strona_manager = {
 loaded: true,
 parse_url: function(string){
    if(!this.loaded){
      this.loaded = true;
      kategorie_manager.mini();
      this.pokaz_ramke();
    }

    string = string.replace(/:/g, '/')
    this.load_strona(string);
  },

 show_strona: function(strona, tresc){
    this.pokaz_ramke();
    kategorie_manager.mini();
    if(strona==this.current_load){
	$('content').set('html', tresc);
	Shadowbox.setup($$('#content a[rel=shadowbox]'));
    }
  },

 current_load: '',
 load_strona: function(strona){
    this.current_load = strona;
	  $('content').set('html', "Ładowanie ...");
    
    new Request({url: main_adres + '/ajax/' + strona + '/', method: 'get',
	  evalScripts: true,
	  onSuccess: function(tresc){		
		strona_manager.show_strona(strona, tresc);
	},

	  onException: function(a, b){
	  strona_manager.show_strona(strona, 'Nie mozna wyswietlic strony ' + strona + '<br />'+a+'<br />'+b);
	},
	onFailure: function(a){
	  strona_manager.show_strona(strona, 'Nie mozna wyswietlic strony ' + strona + ' przekroczono czas polaczenia');
	}
      }).send();
  },

 pokaz_ramke: function(){
    $('content').setStyle('display', 'block');
  },

 hide: function(){
    this.loaded = false;
    $('content').setStyle('display', 'none');
  },

 nothing :''

}

var polgenstrona = {
 setup_urls : function() {
    $$('a[rel]').each( function(lnk) {
	var rel = lnk.get('rel')
	lnk.addEvent('click', function() {
	    polgenstrona.gotourl(polgenstrona.create_url(rel));
	    return false;
	  });
      });
  },
 
 doclick : function(link) {
    url = this.create_url(link.get('rel'));
    if (url) {
      
      this.gotourl(url);
    }
    return false;
  },
 
 setup : function() {
    this.setup_urls();
    if (Browser.Engine.trident) {
      this.check_url(true);
      setTimeout('polgenstrona.check_url(false, true)', 1000);
    } else {
      this.check_url(true, true);
    }
  },
 
 gotourl : function(adres) {
    if (Browser.Engine.trident) {
      $('ramka').src = './adres.php?a=' + adres;
    }
    document.location.hash = '#' + adres;
    return false;
  },
 
 current_url :'',
 
 get_hash_url : function() {
    return document.location.hash.substr('1')
  },
 
 set_hash_url : function(adres) {
    document.location.hash = '#' + adres
  },
 get_frame_url : function() {
    return document.frames['ramka'].location.href.split('adres.php?a=')[1]
  },
 set_frame_url : function(adres) {
    $('ramka').src = './adres.php?a=' + adres
  },
 
 current_url :'polenik',
 
 counter : 1,
 
 check_url : function(method, rec) {
    this.counter = this.counter +1;
    if (method) {
      test = this.get_hash_url();
    } else {
      test = this.get_frame_url();
    }
    if (test != this.current_url) {
      this.current_url = test;
      this.load_url(test);
    }
    
    if (rec) {
      setTimeout('polgenstrona.check_url(' + method + ', true)', 300);
    }
  },
 
 load_url : function(adres) {
    
    if (Browser.Engine.trident){
      if(this.get_hash_url() != this.current_url) {
	this.set_hash_url(this.current_url);
      } else if(this.get_frame_url()!=this.current_url) {
	this.set_frame_url(this.current_url);
      }
    }
    
    var t = adres.split('/');
    var zasob = t.slice(1).join('/');
    var typ = t[0];

    
    switch (typ) {
    case 'kategorie':
      kategorie_manager.parse_url(zasob);
      break;
      
    case 'strona':
      strona_manager.parse_url(zasob);
      break;
      
    case 'szukaj':
      szukaj_manager.parse_url(zasob);
      break;
      
    default :
      kategorie_manager.mini();
      break;
    
    }
  },
 
 create_url : function(rel) {
    t = rel.split('/');
    var typ = t[0];
    var zasob = t.slice(1).join('/');
    
    switch (typ) {
    case 'kategoria':
      return kategorie_manager.open_kategoria(zasob);
      break;

    case 'strona':
      return rel;
      break;

    case 'szukaj':
      return rel;
      break;
      
    default:
      return false;
      break;
    }
  },
 
 nothing :''
 
}

function setup_search_form() {
    $('search_form').addEvent('submit', function(){
	    url = 'strona/szukaj:'+$('search_kod').get('value')
	    prod = $('search_producent').get('value');
	    if(prod.length > 0){
		url += ':' + prod;
	    }
	    
	    polgenstrona.gotourl(url);
	    return false;
	});
}

window.addEvent('domready', function(){
	kategorie_manager.setup();
	polgenstrona.setup();
	szukaj_manager.setup();
	//	Shadowbox.loadLanguage('pl', '/shadowbox/lang/');
	Shadowbox.init({
		skipSetup: true // skip the automatic setup
	});
});


function pelny_opis(){
    $('opis_produktu').addClass('opisowefull');
}

function szukaj_producenta(producent){
    $('search_kod').set('value', '');
 $('search_producent').set('value', producent);
//    tab  = producent.split(',');
//    alert(tab);    alert(producent);
//    tab.each(
//        function(){
//            new_tab[i] = jQuery(this).val();
//            i = i +1;
//        }
//    );
//    alert(new_tab);
//    jQuery("#search_producent").val(producent);
    szukaj_manager.szukaj();
    return false;
}

   function klik_klik(element){   
      id = jQuery(element).attr("id").split("_");
      iterator  = parseInt(id[1]);
      zmiana_polecanych();
      return false;
    }


var iterator = 1;
function zmiana_polecanych(){
    //alert(iterator);
    lista = jQuery('#lista_promowanych_zdjec').children("li");
    lista_numery = jQuery(".slider_menu").children("li");
    
      if(lista.eq(iterator).is(":not(:visible)")){
          lista.not(lista.eq(iterator)).hide();
          lista_numery.not(lista_numery.eq(iterator)).children("a").attr("class","");
          if(iterator!=lista.length-1){
              lista.eq(iterator).fadeIn("slow");
              lista_numery.eq(iterator).children("a").attr("class","active");
              iterator = iterator + 1;
          }else{
               lista.eq(iterator).fadeIn("slow");
               lista_numery.eq(iterator).children("a").attr("class","active");
               iterator=0;
          }
          return false;
      }else{
         iterator = iterator + 1;
      }
}



jQuery(function(){
   // jQuery("#search_producent").dropdownchecklist({ maxDropHeight: 150 });

});
