/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
(function($, undefined) {

    var all_instructors = [];
    var instructors = [];
    var styles = [];
	var eg_styles;
	var stages;
	var price_list;
    var view = {
        big: false,
        small: true
    }
	var kategoriaID = 0;
	var lokalizacjaID = 0;
	var kategoria_color = '#C7173C'; //defaultowy kolor kategorii (bardowy)
	var instruktor_id;
	var groups_list;
    
    //============= GŁOWNA FUNKCJA ==================
    $.fn.slider_instructor = function(_instr, _style, _kategoriaID, _lokalizacjaID, _id, _groups_list, _eg_styles, _stages, _price_list) {
        //alert("działamyS");
        all_instructors = _instr;
        styles = _style;
		kategoriaID = _kategoriaID;
		lokalizacjaID = _lokalizacjaID;
		instruktor_id = _id;
		groups_list = _groups_list;
		eg_styles = _eg_styles
		eg_styles.sort(compareTwoStyles);
		stages = _stages;
		price_list = _price_list;
		//alert(instruktor_id);
		//zmiana koloru nawigacji jesli kategoria to dzieci lub kobiety
		if(kategoriaID==1)
			kategoria_color = '#DF7400';
		else if(kategoriaID == 3)
			kategoria_color = '#7D3CA4';
		
        buildSceletonSliderInstructor();
    }
	function compareTwoStyles(a,b)
	{
		var ret;
		
		if(a.name == b.name)
			ret = 0;
		else
		{
			var tab = new Array();
			tab.push(a.name);
			tab.push(b.name);
			tab.sort();
			
			if(a.name == tab[0])
				ret = -1;
			if(a.name == tab[1])
				ret = 1;
		}
		
		return ret;
	}
    //Buduje szkielet Baneru z Instruktorami
    function buildSceletonSliderInstructor()
    {
		//usuwa instruktorów z całej talicy w zależności
        //if(kategoriaID != 0)
			for(var i=0; i<all_instructors.length; i++)
			{
				//alert(lokalizacjaID);
				if((kategoriaID!=0 && !findElement(all_instructors[i].category, kategoriaID)) || (lokalizacjaID!=0 && !findElement(all_instructors[i].locations, lokalizacjaID)))
				{
					all_instructors.splice(i,1);
					i--;
				}
			}

		renderFiltersSliderInstructor();
        instructors = prepareListOfInstructors();		
		if(instruktor_id==-1)
		{
			renderSmallInstructorsList();
		}
		else
		{
			renderBigInstructorsList(document.getElementById("nazwisko").selectedIndex);
		}
    }
    
	//Rysuje listy z filtrami z lewej strony
    function renderFiltersSliderInstructor()
    {
        var content = "";
        content +="<table id=\"filter\">" +
                    "<tr>"+
                        "<th>" +
                            "<span class=\"select-text\">Styl:</span>" +
                        "</th>" +
                        "<td>" +
                            "<select id=\"styl\" class=\"select\" name=\"styl\">" +
                            "<option value=\"1\" selected=\"selected\">Dowolny</option>";
                            for(var i=0;i<eg_styles.length;i++)
                            {
                                content+="<option value=\""+ (i+2)+ "\">" + eg_styles[i].name + "</option>";
                            }
                content+="</select></td></tr>"+
                    "<tr>" +
                        "<th>" +
                            "<span class=\"select-text\">Nazwisko:</span>" +
                        "</th>"+
                        "<td>"+
                            "<select id=\"nazwisko\" class=\"select\" name=\"nazwisko\">";
							if(instruktor_id==-1)
							{
								content+="<option value=\"1\" selected=\"selected\">Wszyscy</option>";
								for(i=0;i<all_instructors.length;i++)
								{
									content+="<option value=\""+ (i+2)+ "\">" + all_instructors[i].name + "</option>";
								}
							}
							else
							{
								for(i=0;i<all_instructors.length;i++)
								{
									if(all_instructors[i].id==instruktor_id)
										content+="<option value=\""+ (i+2)+ "\"  selected=\"selected\">" + all_instructors[i].name + "</option>";
									else	
										content+="<option value=\""+ (i+2)+ "\">" + all_instructors[i].name + "</option>";
								}
							}
                    content+="</select></td></tr>" +
                "</table>";
            $('#filters').html(content);
            $('#styl').change(selectStyleChange);
            $('#nazwisko').change(selectNazwiskoChange);			
    }
    
	//Zaweza poprzez ponowne wypełnienie filtru z nazwiskami po wybraniu stylu tańca
    function renderInstructorFilter()
    {
        var content = "";
        if(view.small)
        {
            content= "<option value=\"1\" selected=\"selected\">Wszyscy</option>";
        }            

        for(i=0;i<instructors.length;i++)
        {
            content+="<option value=\""+ (i+2)+ "\">" + instructors[i].name + "</option>";
        }
        $('#nazwisko').html(content);
    }
    
	//Rysuje liste z małymi opisami instruktorów
    function renderSmallInstructorsList(pos)
    {
        if(!pos)
            pos=0;
        var len = instructors.length;
        var dev = Math.floor(len/3)*3;
        var content = "";
        var amount = 1;
        var nav = "";
        for(var i=0; i<dev; i+=3)
        {
            nav += "<div class=\"nav_button\" id=\"nav"+amount+"\" value=\""+ amount +"\" onclick=\"nextSlide("+amount+");\" >" + amount + "</div>";
            amount++;
            content+="<div class=\"slide\"><div class=\"baner-instructor-small\" id=\"baner-instructor-small"+ i +"\" value=\""+ i +"\">";
            if(instructors[i].img != "")
				content+=instructors[i].img; 
			else
				content+="<div style=\"float: left; width: 100px; height: 100px; padding-right: 10px;\"></div>";
			content+="<p class=\"instruktorzy_lista_nazwisko\">"+ instructors[i].name +"</p>"+
                     "<p class=\"instruktorzy_tekst\">" + instructors[i].info.substring(0,720) +"</p>"+
                "</div>";  
           content+="<div class=\"baner-instructor-small\" id=\"baner-instructor-small"+ (i+1) +"\" value=\""+ (i+1) +"\">";
           if(instructors[i+1].img != "")
				content+=instructors[i+1].img; 
			else
				content+="<div style=\"float: left; width: 100px; height: 100px; padding-right: 10px;\"></div>";
		   
		   content+="<p class=\"instruktorzy_lista_nazwisko\">"+ instructors[i+1].name +"</p>"+
                         "<p class=\"instruktorzy_tekst\">" + instructors[i+1].info.substring(0,720) +"</p>"+
                    "</div>";
           content+="<div class=\"baner-instructor-small\" id=\"baner-instructor-small"+ (i+2) +"\" value=\""+ (i+2) +"\">";
           if(instructors[i+2].img != "")
				content+=instructors[i+2].img; 
			else
				content+="<div style=\"float: left; width: 100px; height: 100px; padding-right: 10px;\"></div>";
		   content+="<p class=\"instruktorzy_lista_nazwisko\">"+ instructors[i+2].name +"</p>"+
                         "<p class=\"instruktorzy_tekst\">" + instructors[i+2].info.substring(0,720) +"</p>"+
                    "</div></div>";
        }
        if(dev!=len)
        {
            nav += "<div class=\"nav_button\" id=\"nav"+amount+"\" value=\""+ amount +"\" onclick=\"nextSlide("+amount+");\" >" + amount + "</div>";
            content+="<div class=\"slide\">";
            for(i=dev;i<len;i++)
            {
                content+="<div class=\"baner-instructor-small\" id=\"baner-instructor-small"+ i +"\" value=\""+ i +"\">";
				if(instructors[i].img != "")
					content+=instructors[i].img; 
				else
					content+="<div style=\"float: left; width: 100px; height: 100px; padding-right: 10px;\"></div>";
				content+="<p class=\"instruktorzy_lista_nazwisko\">"+ instructors[i].name +"</p>"+
						"<p class=\"instruktorzy_tekst\">" + instructors[i].info.substring(0,720) +"</p>"+
					"</div>";
            }
            content+="</div>";
        }
		
		if(len>3)
			$('#navigation').html(nav);
		else
			$('#navigation').html("");
			
        $('#slider-instructor').css('width', (665*amount)+ "px");
        $('#slider-instructor').html(content);
        $('#slider-instructor').css('left', "-"+(pos*665)+"px");
        //$("#nav"+(pos+1)).css("background-color",kategoria_color);
        $("#nav"+(pos+1)).addClass('nav-button-active');
		$('.baner-instructor-small').click(bigBaner);
        view.big = false;
        view.small = true;
    }
    
	//Rysuje duza wersje banera z duza informacją o instruktorze
    function renderBigInstructorsList(pos)
    {
        var len = instructors.length;
        var content = "";
        var nav = "<div class=\"nav_button nav-button-descript\" onclick=\"smallBaner();\" style=\"font-weight:bold; text-transform:uppercase;\"> POWRÓT DO WSZYSTKICH INSTRUKTORÓW </div>";
		var grupy = "";
		var tab_styli = [];
		var lista_styli = ""
		var lista_grup_lok = new Array();
		var lista_grup_lok_flagi = new Array();
		lista_grup_lok[0]="OCHOTA";
		lista_grup_lok[1]="ŚRÓDMIEŚCIE";
		lista_grup_lok[2]="K";
		lista_grup_lok[3]="CH BLUE CITY";
		lista_grup_lok[4]="TARCHOMIN";
		lista_grup_lok[5]="KONSTANCIN";
		lista_grup_lok_flagi = [0,0,0,0,0,0];
        for(var i=0; i<len; i++)
        {
			lista_grup_lok_flagi = [0,0,0,0,0,0];
			delete tab_styli;
			tab_styli = new Array();
            //nav += "<button type=\"button\" class=\"nav_button\" id=\"nav"+ (i+1) +"\" value=\""+ (i+1) +"\" onclick=\"nextSlide("+ (i+1) +");\" >" + (i+1) + "</button>";
            
            content+="<div class=\"slide\">"+
                        "<div class=\"baner-instructor-big\" id=\"baner-instructor-big"+ i +"\" value=\""+ i +"\">";
					if(instructors[i].img!="")	
                            content+= instructors[i].img;
					else
					content+="<div style=\"float: left; width: 125px; height: 125px; padding-right: 10px;\"></div>";
					content+="<p class=\"instruktorzy_lista_nazwisko\">"+ instructors[i].name +"</p>";
					grupy = "<div id=\"grupa_ins\"><ul>";
					
					var czySaGrupy = false;
					var temp_styl = "";
					
					for(var j=0; j<groups_list.length; j++){
						if(groups_list[j].instr_id==instructors[i].id){
							if(lista_grup_lok_flagi[groups_list[j].loc_id-1]==0){
								grupy+="<li style=\"cursor:default; color:#000; text-align:center; background-color:#EFEFEF;\"><div style=\"font-size:14px; margin:0 auto; \">"+lista_grup_lok[groups_list[j].loc_id-1]+"</div></li>";
								lista_grup_lok_flagi[groups_list[j].loc_id-1]=1;
							}
							if(groups_list[j].status==1||groups_list[j].status==2) {
								grupy+="<li id=\"grupa_zajec_"+j+"\"><div class=\"instr_lista_grup_nazwa\">"+groups_list[j].name+"</div><div class=\"instr_lista_grup_dni\">"+groups_list[j].days+"</div>";
							}else{
								grupy+="<li id=\"grupa_zajec_"+j+"\" style=\"cursor:default; background-color:#AFAFAF;\"><div class=\"instr_lista_grup_nazwa\">"+groups_list[j].name+"</div><div class=\"instr_lista_grup_dni\">"+groups_list[j].days+"</div>";
							}
							
							if(groups_list[j].style_id!=0){
								temp_styl = giveNameFromId(eg_styles,groups_list[j].style_id);
								grupy+="<div class=\"instr_lista_grup_styl\">"+ temp_styl +"</div>";
								if(!findElement(tab_styli,temp_styl))
									tab_styli.push(temp_styl);
							}
							else{
								grupy+="<div class=\"instr_lista_grup_styl\">&nbsp;</div>";
							}
							
							grupy+="<div class=\"instr_lista_grup_poziom\">"+ giveNameFromId(stages,groups_list[j].level_id)+"</div>";

							grupy+="<div class=\"instr_lista_grup_start\">"+groups_list[j].start_date+"</div>";
							if(groups_list[j].status==1){
								grupy+="<div class=\"instr_lista_grup_status\" style=\"font-size:small;\"><img src=\"/Zasoby/IMG/status_zapisy.png\" alt=\"zapisy_img\"></div></li>";
							}
							if(groups_list[j].status==2){
								grupy+="<div class=\"instr_lista_grup_status\" style=\"font-size:small;\"><img src=\"/Zasoby/IMG/status_ostatnie.png\" alt=\"zapisy_img\"></div></li>";
							}
							if(groups_list[j].status==3){
								grupy+="<div class=\"instr_lista_grup_status\" style=\"font-size:small;\"><img src=\"/Zasoby/IMG/status_brak.png\" alt=\"zapisy_img\"></div></li>";
							}
							if(groups_list[j].status==4){
								grupy+="<div class=\"instr_lista_grup_status\" style=\"font-size:small;\"><img src=\"/Zasoby/IMG/status_odwolane.png\" alt=\"zapisy_img\"></div></li>";
							}
							if(groups_list[j].status==5){
								grupy+="<div class=\"instr_lista_grup_status\" style=\"font-size:small;\"><img src=\"/Zasoby/IMG/status_grupazamknieta.png\" alt=\"zapisy_img\"></div></li>";
							}
							
							if(groups_list[j].status!=1&&groups_list[j].status!=2&&groups_list[j].status!=3&&groups_list[j].status!=4&&groups_list[j].status!=5){
								grupy+="<div class=\"lista_grup_status\" style=\"font-size:small;\">.</div></li>";
							}
							czySaGrupy = true;
						}
						
					}
					grupy+="</ul></div>";
					
					lista_styli = "";
					
					for(var k=0;k<tab_styli.length; k++)
					{
						if(k==0)
							lista_styli += tab_styli[k];
						else
							lista_styli += ", " + tab_styli[k];
					}
					
					if(lista_styli!="")
						content+="<p class=\"instruktorzy_style\">Style: "+ lista_styli +"</p><br />";
					else
						content+="<p class=\"instruktorzy_style\"></p><br />";
					
					content+="<p class=\"instruktorzy_tekst\">" + instructors[i].info_long +"</p>";
					
					if(czySaGrupy)
						content+="<div class=\"instruktor_grupa\"><div style=\"line-height:20px; margin-top:15px; clear: both; font-weight:bold;\">Prowadzone grupy:</div>"+grupy+"</div>";
					else
						content+="<div class=\"instruktor_grupa\"><div style=\"line-height:20px; margin-top:15px; clear: both; font-weight:bold;\"></div>"+grupy+"</div>";
                    
					content+="</div></div>";
        }		
        
        $('#navigation').html(nav);
        $('#slider-instructor').css('width', (665*len)+ "px");
        $('#slider-instructor').css('left', "-"+(pos*665)+"px");
        //$("#nav"+(pos+1)).css("background-color","#C7173C");
        $('#slider-instructor').html(content);
        //$('.baner-instructor-big').click(smallBaner);
        
		for(var j=0; j<groups_list.length; j++)
		{
			if(groups_list[j].status==2||groups_list[j].status==1) 
			{
				formularz_zapisu(j, price_list); 
			}
		}
		
        view.big = true;
        view.small = false;
        
    }
	
	//akcja wykonująca sie po wybraniu elementu w filtrze z nazwiskiem lub po kliknięciu na mały opis instruktora
    bigBaner = function()
    {	
        var temp = this.id;
        var pos = parseInt(temp.substr(22));
        //alert(pos);
        renderBigInstructorsList(pos);
        renderInstructorFilter();
        document.getElementById("nazwisko").selectedIndex=pos;
    }
    
	//wywoluje rysowanie malej listy z instruktorami
    smallBaner = function()
    {
        //var temp = this.id;
        //var pos = parseInt(temp.charAt(temp.length-1));
        var temp = $('#slider-instructor').css('left');
        temp = temp.replace("px","");
        var pos = -parseInt(temp)/665;
        
        renderSmallInstructorsList(Math.floor(pos/3));
        renderInstructorFilter();
    }
	
	//przygotowuje aktualną liste instruktorów do wyrysowania biorąc pod uwagę kategorie i styl tańca
    function prepareListOfInstructors()
    {
        var temp = new Array();
        if(document.getElementById("styl").selectedIndex == 0)
        {
            return all_instructors;
        }
        else
        {
            for(var i=0; i<all_instructors.length; i++)
            {
                if(findElement(all_instructors[i].styles, eg_styles[document.getElementById("styl").selectedIndex-1].name))
                    temp.push(all_instructors[i]);
            }
			
			return temp;
        }
    }
    
	//Sprawdza czy dany element znajduje sie w wybranej tablicy
    /*function findElement(tab, element)
    {
        var flaga = false;
        if(tab)
			for(var i=0;i<tab.length;i++)
				if(tab[i]==element)
				{
					flaga = true;
					break;
				}
        return flaga;
    }*/
    
	//Znajduje pozycje elmentu w tablicy
    function findPosition(tab, element)
    {
        var flaga = -1;
        for(var i=0;i<tab.length;i++)
            if(tab[i]==element)
            {
                flaga = i;
                break;
            }
        return flaga;
    }
	
	//funkcja odpowiedzialna za odpowiednie spozycjonowanie slajdera - animacja
    nextSlide = function(x)
    {
        var margines = -((x-1)*665) + "px";
        //$('.nav_button').css("background-color","");
        //$('#nav'+x).css("background-color",kategoria_color);
		
		$('.nav_button').removeClass('nav-button-active');
        $('#nav'+x).addClass('nav-button-active');
        
        if(view.big)
            document.getElementById("nazwisko").selectedIndex = x-1;
        
        $('#slider-instructor').fadeOut('slow',function(){
            $('#slider-instructor').css('left',margines);   //przesuń slider_instructor o 103px do góry
			$('#slider-instructor').fadeIn('slow');
        });
    }
    
	//akcja zmiany w liście rozwijanej styli
    selectStyleChange = function()
    {
        instructors = prepareListOfInstructors();
        renderInstructorFilter();
        renderSmallInstructorsList();
        renderInstructorFilter();
    }
    
	//akcja zmiany wliscie rozwijanej nazwiska
    selectNazwiskoChange = function()
    {
        instructors = prepareListOfInstructors();
            //alert(document.getElementById("nazwisko"));            
        if(view.big)
        {
            nextSlide(document.getElementById("nazwisko").selectedIndex+1);
        }
        else
        {
            var pos = -1;
            if(document.getElementById("nazwisko").selectedIndex==0)
                pos = 0;
            else
                pos = findPosition(instructors,instructors[document.getElementById("nazwisko").selectedIndex-1]);
            renderBigInstructorsList(pos);
            renderInstructorFilter();
            document.getElementById("nazwisko").selectedIndex = pos
        }
    }
    
})(jQuery);
