/* 
 * autor: Jan Jarcik
 * copyright(c) czechdesigners 2010
 * 
 */

// jak rychle se budou obrazky v galerii otvirat a zavirat
var galery_speed = 1200;
var body_darker_z_index = 10;

/**
 * Vlastni obdoba LightBoxu :-)
 * zobrazeni obrazku
 */
function showTheImage(image_id, order, popis) {

 
    // indikace jiz otevreneho okna s obrazkem
    if (is_open_big_image) {
        return;
    } else {
        is_open_big_image = true;
    }

    // ztmavime celou stranku
    page_darker();

    // id obrazku ktery chceme zvetsovat
    image         = $("#"+image_id);

    // div ve kterem je div do ktereho se obrazek zapisuje
    $("#big_image").css("opacity","0");

    // poradi obrazku pro next a previous
    image_list_view = order;

    // vytvorime obrazek
    $("#big_image_img").append("<img src = '" + image.attr("src") + "' style = 'width:100%' id = 'galery_the_one_image'/>");


    // provedeme presunt a zmeny velikost elementu
    setGalleryCorrectImage(image.attr("src"), true);

    $("#big_image_panel_popis").append(popis);

    if (order == 0) {
        $("#galery_previous").css("background-position", "-37px 0px");
    }

    if (!image_list[activ_box_open][order+1]){
      
        $("#galery_next").css("background-position", "0px 0px");
    }


}

/**
 * Presune element na danou pozici a nastavi mu rozmery
 * @param element                       ... id elementu
 * @param size <array> [width, height]  ... nove rozmery
 * @param position <array> [top, left]  ... nove umisteni
 * @param animation <bool>              ... s animaci nebo bez
 */
function setPosAResTheImg(element, size, position, animation){

    if (animation) {
        $(element).animate({
            height: size[1],
            width: size[0],
            opacity: 1,
            left:position['left'],
            top: position['top']
        }, galery_speed ,function(){
            // po skonceni animace zobrazeni panelu s ovladacimi prvky
            setGalleryControlPanel();

        });
    } else {
        $(element).css("height", size[1]);
        $(element).css("width",  size[0]);
        $(element).css("left",   position['left']);
        $(element).css("top",    position['top']);
        setGalleryControlPanel();
    }

}

/**
 * Po zobrazeni velkeho obrazku je potreba nastavit ovladaci panel
 *
 */
function setGalleryControlPanel(){

    // zobrazime ovladaci prvky
    $("#zoom_out").css("display","block");
    $("#galery_controll").css("display","block");

    setGalleryControlPanelPosition();
    
    
    $("#big_image_panel").css("display","block");
    $("#big_image_panel_popis").css("display","block");


}

function setGalleryControlPanelPosition(){
    bi = $("#big_image");
    bi_pos = bi.position();
    roll_correct_top = $("#body_darker").position().top;
    // nastavime jejich pozice
    $("#zoom_out").css("top",bi_pos.top - roll_correct_top + 3);
    $("#zoom_out").css("left",bi_pos.left + bi.width() -15);
    $("#big_image_panel").css("width",bi.width()-1);
    $("#big_image_panel").css("left",bi_pos.left);
    $("#big_image_panel").css("top",bi_pos.top + bi.height() - roll_correct_top);
}

/**
 * Vlastni obdoba LightBoxu :-)
 * skryti obrazku
 */
function hideTheImage(){

    //aktualni pozice a rozmery
    w   = $("#big_image").width();
    h   = $("#big_image").height();
    pos = $("#big_image").position();
    $("#big_image_panel").css("display","none");
    $("#galery_controll").css("display","none");
    $("#zoom_out").css("display","none");
    $("#galery_controll").css("display","none");
    $("#big_image_panel_popis").empty();
    $("#galery_next").css("background-position", "-37px 0px");
    $("#galery_previous").css("background-position", "0px 0px");

    $("#main-eshop-img").css("display","block");

    roll_correct_top = $("#body_darker").position().top;

    // animace skryti
    $("#big_image").animate({
        height: 20,
        width: 20,
        opacity: 0,
        left:pos.left+(w/2),
        top:pos.top+(h/2) - roll_correct_top
    }, galery_speed ,function(){
        page_lighter();
        // na konci animace vymazeme obrazek, a pripravime div na priste
        $("#big_image_img").empty();
        mySetToCentrum("big_image");
        is_open_big_image = false;

    } );

}

/**
 * obrazek galerie nastavi na spravne pozice a nastavi mu spravne rozmery
 *
 */
function setGalleryCorrectImage(src, animation){
    // zjistime rozmery obrazku
    size_original = getImageRealSize(src);
    size_new      = getNewImageSize(size_original);

    // provedeme presunt a zmeny velikost elementu
    setPosAResTheImg($("#big_image") , size_new, getCorrectPositionForCenter(size_new), animation);

}

/**
 * posouvani obrazku v galerii - dalsi
 *
 */
function changeTheImageNext() {

  
    // pokud existuje dalsi obrazek
    if (image_list[activ_box_open][image_list_view + 1]) {
        image_list_view++;
        src = image_list[activ_box_open][image_list_view];
        $("#galery_the_one_image").attr("src",src);
        $("#big_image_panel_popis").empty();
        $("#big_image_panel_popis").append(image_list_popis[activ_box_open][image_list_view]);
        $("#zoom_out").css("display","none");

        $("#galery_previous").css("background-position", "0px 0px");
        setGalleryCorrectImage(src, false);
    
        if (!image_list[activ_box_open][image_list_view + 1]) {
            $("#galery_next").css("background-position", "0px 0px");
        }
    
    } else {
  
        $("#galery_next").css("background-position", "0px 0px");
    }

}

/**
 * posouvani obrazku v galerii - predchozi
 *
 */
function changeTheImagePrevious() {

    // pokud existuje dalsi obrazek
    if (image_list_view != 0) {
        image_list_view--;
        src = image_list[activ_box_open][image_list_view];
    
        // pokud nebyl nalezen predchozi zdroj
        if (!src) {
            image_list_view++;
            $("#galery_previous").css("background-position", "-37px 0px");
            return;
        }
        $("#galery_next").css("background-position", "-37px 0px");
        $("#zoom_out").css("display","none");
        $("#galery_the_one_image").attr("src",src);
        $("#big_image_panel_popis").empty();
        $("#big_image_panel_popis").append(image_list_popis[activ_box_open][image_list_view]);
        setGalleryCorrectImage(src, false);
    }
  
    if (image_list_view == 0) {
        $("#galery_previous").css("background-position", "-37px 0px");
    } else {
        $("#galery_previous").css("background-position", "0px 0px");
    }

}


/**
 * Vrati realne rozmery obrazku
 */
function getImageRealSize(url){
    immagine = new Image;
    immagine.src = url;
    return Array(immagine.width,immagine.height);
}

/**
 * Vrati nove rozmery obrazku upravene tak aby byl obrazek v centru obrazovky a
 * aby se na obrazovku vesel cely
 * $param size <Array> [width, height]
 */
function getNewImageSize(size){
    size_new      = Array();
    size_new[1]   = ($(window).height()-150); // potencionalni vyska

    if (size_new[1] > 600 ) size_new[1] = 600;

    // maximalni zvetseni 2X
    if ((size[1] * 2) < size_new[1]) {
        size_new[1] = size[1] * 2;
    }
    pomer         = size_new[1] / size[1];
    size_new[0]   = size[0] * pomer; // sirka
    return size_new;
}

/**
 *  Vraci spravne absolutni pozice vzhledem k velikosti okna pro element
 *  ktery se ma objevit v centru obrazovky
 *  @param size <Array> [width, height]
 */
function getCorrectPositionForCenter(size){

    position = Array();

    // pri posunuti stranky listama, se meni fixni pozice divu v centru (pro svoji udrzitelnost
    // se prepocitva absolute - top), abych se obrazek zobrazoval stale v centru okna
    // musime tento fakt zohlednit i pri screen roll. O kolik px se odrolovalo zjistime
    // ze souradnice hlavniho divu, ktery obepina celou stranku a je umisten fixne
    roll_correct_top = $("#body_darker").position().top;

    center_top  = $(window).height()/2 + roll_correct_top;
    center_left = $(window).width()/2;
    position['top']   = center_top  - size[1]/2 - roll_correct_top - 30;
    position['left']  = center_left - size[0]/2;
    return position;

}


// ztmaveni cele webove stranky
function page_darker() {

    page_is_darker = true;
    $("#body_darker").css("display","block");
    $("#body_darker").css("z-index",body_darker_z_index);
    $("#small_content_block").css("z-index","9");

    $("#body_darker").animate({
        opacity:0.75
    },1000);

}

function page_darker_extra(z_index) {

    page_is_darker = true;
    $("#body_darker").css("display","block");
    $("#body_darker").css("z-index",z_index);
    $("#small_content_block").css("z-index","9");

    $("#body_darker").animate({
        opacity:0.75
    },1000);

}


// rozsviceni cele stranky
function page_lighter() {

    page_is_darker = false;

    $("#body_darker").css("z-index","0");
    $("#small_content_block").css("z-index","3");
    $("#body_darker").css("display","none");
    $("#body_darker").animate({
        opacity:0
    },1000);
 

}

function add2ImageList(url, popis, kategorie, id){

    if (!image_list[kategorie]) {
        image_list[kategorie] = Array();
    }

    if (!image_list_popis[kategorie]) {
        image_list_popis[kategorie] = Array();
    }
    image_list[kategorie][id] = url;
    image_list_popis[kategorie][id] = popis;
}
