var praktyka = {

	dodaj_do_schowka : function(id, btn) 
	{
		Element.update(btn, 'Po zalogowaniu');	
	},
    
	aplikuj : function(id,id_firmy,btn) 
	{
		Element.update(btn, 'Po zalogowaniu');
	}
}

var widok = {
	init  : function() {
		this.nast_btn = $('nast');
		this.poprz_btn = $('poprz');
		this.tresc = $('tresc');
		this.sortowanie = 'key';
        this.ajax = $('ajax');
    
        this.zaFx = new fx.Height('za_form', {duration: 400}); 
        this.zaFx.hide();	
        Event.observe('zaawans', 'click', this.zaFx.toggle.bind(this.zaFx));
		Event.observe('send', 'click', wyniki.szukaj.bind(wyniki));
		Event.observe(this.poprz_btn, 'click', wyniki.poprz.bind(wyniki));
		Event.observe(this.nast_btn, 'click', wyniki.nast.bind(wyniki));
        
        Event.observe(document, 'keyup', widok.keypressed.bindAsEventListener(widok)); 
	},
	keypressed : function(e)
    {
        if (e.keyCode == 13) {  
                wyniki.szukaj();             
                return false; 
        } else
            return true;
    },
    pokaz : function() {		
		var strona = wyniki.offset+1;
		$('page_info').innerHTML = '<b>Strona: </b>'+ strona +' z ' + wyniki.ilosc_str;
		if ( wyniki.ilosc_wynikow == 0 ) 
             $('count_info').innerHTML = '<br>Nie znaleziono żadnych praktyk<br>'; 
        else if (wyniki.ilosc_wynikow == 1) 
            $('count_info').innerHTML = '<br><b>Znaleziono:</b><br> ' + wyniki.ilosc_wynikow + ' praktykę<br>';  
		else if (wyniki.ilosc_wynikow > 1 && wyniki.ilosc_wynikow < 5)
            $('count_info').innerHTML = '<br><b>Znaleziono:</b><br> ' + wyniki.ilosc_wynikow + ' praktyki<br>';  
        else  
            $('count_info').innerHTML = '<br><b>Znaleziono:</b><br> ' + wyniki.ilosc_wynikow + ' praktyk<br>';
		
        //prev		
		
		if (wyniki.offset == 0) {
			this.poprz_btn.style.display = 'none';
		} else {
			this.poprz_btn.style.display = '';
		}
		// next 
		if (wyniki.offset < wyniki.ilosc_str -  1) {
			this.nast_btn.style.display = '';
		} else {
			this.nast_btn.style.display = 'none';
		}
		//str
		//ile	
		//wyniki	
		
		var ln = '';
	     
		for (var i=0; i<wyniki.tab[wyniki.offset].length; i++)
		{
			var obj = wyniki.tab[wyniki.offset][i];
			ln +=    '<table width="305px">';
            ln +=    '<tr><td>';
            ln +=    '<b><a class="more" onClick="window.open(\'index.php?module=welcome&class=practice&id=' + obj.id + '\',\'okno\',\'width=520,height=500,scrollbars=yes,menubar=yes\')" href="#detail">'; 
            ln +=    obj.stanowisko; 
            ln +=    '</a></b></td><td align="right">Ilość osób:' + obj.ilosc_osob + '</td></tr></table><div class="result"><table width="305px"><tr><td ><b>'; 
            ln +=    obj.nazwa_firmy; 
            ln +=    '</b></td></tr><tr><td ><span class="label">Trafność: </span>Dostępna po zalogowaniu'; 
            ln +=    '</td><td align="right" class="more"><a class="more abtn" href="#more">Więcej...</a></td></tr></table></div><div class="detail"><table width="305px"><tr><td><span class="label">Data rozpoczęcia: </span>';
            if(obj.data_rozpoczecia == '0000-00-00')
            {
                ln +=    'Brak danych';
            }
            else
            {
                ln +=    obj.data_rozpoczecia;            
            }
            ln +=    '</td></tr><tr><td><span class="label">Data zakończenia: </span>';
            if(obj.data_zakonczenia == '0000-00-00')
            {
                ln +=    'Brak danych';
            }
            else
            {
                ln +=    obj.data_zakonczenia;            
            }
            ln +=    '</td></tr>';
            if(obj.wymagania_firmy)
            {
                ln +=    '<tr><td><span class="label">Wymagania firmy: </span>';
                ln +=    obj.wymagania_firmy;
                ln +=    '</td></tr>';
            }
            if(obj.oferta_firmy)
            {
                ln +=    '<tr><td><span class="label">Oferta firmy: </span>';
                ln +=    obj.oferta_firmy;
                ln +=    '</td></tr>';
            }
            ln +=    '<tr><td><a href="#added" class="more" onclick="praktyka.dodaj_do_schowka(';
            ln +=    obj.id;
            ln +=    ', this );">Dodaj do schowka</a> | <a href="#application" class="more" onclick="praktyka.aplikuj(';
            ln +=    obj.id;
            ln +=    ',';
            ln +=    obj.id_firmy;
            ln +=    ', this );">Aplikuj</a> | <a class="more" href="#details" onClick="window.open(\'index.php?module=welcome&class=practice&id=' + obj.id + '\',\'okno\',\'width=520,height=500,scrollbars=yes,menubar=yes\')">Szczegóły</a></td><td></td></tr></table></div><div class="daneseperator"></div>';
		}
        
		ln += '<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />';
		this.tresc.innerHTML = ln;
		this.zaFx.hide(); 	
		var myDivs = document.getElementsByClassName('detail');
		var myLinks = document.getElementsByClassName('result');
		var myAccordion2 = new fx.Accordion2(myLinks, myDivs);
        
        
	},
	brak : function()
	{
        $('page_info').innerHTML = ''; 
        $('count_info').innerHTML = ''; 
		this.tresc.innerHTML = '<br><b>Nie znaleziono żadnych praktyk</b><br>';
	}
}


var wyniki = {
	tab : new Array(),
	//bufor : 2, // w stronach
	
	szukaj : function() {
		this.tab.clear();
		this.ilosc_str = 0;
		this.ilosc_wynikow = 0;
		this.offset = 0;
		
		this.pobierz();
	},
	
	nast : function() {
		if (this.polaczenie)
			return;
		// zwiekszenie
		if (this.offset + 1 > this.ilosc - 1) 
			this.offset = this.ilosc - 1;
		else
			this.offset++;
		
		// czy trzeba pobrac?		
		if (this.offset > this.tab.length - 1) {
			this.pobierz();
		} else {
			widok.pokaz();
		}	
	},
	
	poprz : function() { // tu nie ma zadnej filozofi
		if (this.polaczenie)
			return;
			
		if (this.offset - 1 < 0)
			this.offset = 0;
		else
			this.offset--;
		
		widok.pokaz();
	},
	
	pobierz : function() {
		var callback = {
			
            success: function(e)
			{
				
				$('spinner').style.display = 'none';
				
				if (e.j == undefined)
					//return alert('nieprawidlaowa odpowiedz: ' + e.responseText );
                    widok.tresc.innerHTML = 'Odpowiedź z Serwera:' + e.responseText;
								       
                this.ilosc_wynikow = e.j.results;
				this.ilosc_str = e.j.pages;				
				var len = e.j.practices.length;
				
                
                if (len > 0)
                {
                    for(var i=0; i < len; i++) 
				    {
					    this.tab.push(e.j.practices[i]);
				    }
				 }    
				if (this.ilosc_wynikow > 0) 
					widok.pokaz();
				else
					widok.brak();

					
				this.polaczenie = false; 
			},
            
            scope: this
		}
		$('spinner').style.display = '';
		this.polaczenie = true;
        
        var arg  =  'ajax=1&' +
							'&offset='+ this.offset + 
							'&keyword=' + $F('key') + 
							'&region=' + $F('region') + 
							'&branza=' + $F('branza') + 
                            '&start_date=' + $F('start_date') + 
                            '&finish_date=' + $F('finish_date') + 
                            '&platna=' + $F('platna') +
                            '&opiekun=' + $F('opiekun') +
                            '&rok_studiow=' + $F('rok_studiow') +                            
							'&orderby=' + widok.sortowanie;
                            
        YAHOO.util.Connect.asyncRequest('GET', 'index.php?module=welcome&class=searchp&event=find&'+arg, callback );
	}
}


var begin = function() 
{
	widok.init();
}

Event.observe(window, 'load', begin);
