
var process = false;
var image_id = 0; 

var gallery         = document.getElementById("gallery_image");
gallery.style.left  = '0px';
gallery_image_width = $("#gallery_image").width(); 

var gallery_preview       = document.getElementById("gallery_preview");
gallery_preview.style.top = '0px';
gallery_preview_height    = $("#gallery_preview_wrap").height();


function getGallery(gallery_id,type){
    
    var url      = location.href;
    
    if (url.indexOf("#")>0){
       image_id = url.substring(url.indexOf("#")+1);
    }
    
    if (type == undefined || type == ''){
        gallery_type = false;
    }
    else{
        gallery_type = type;
    }                                                                               
    $.post(
        "/utils/gallery.image.get.php",
        {                    
          group_id:gallery_id,
          gallery_type:gallery_type,
          width:$("#gallery_image_win").width(),
          height:$("#gallery_image_win").height()
        },
        buildGallery
    );                                                     
}


function buildGallery(data){
    if (data.length>0){
        eval(data); 
        
        $("#gallery_image").empty();
        $("#gallery_preview").hide();
                                               
        if (img_pos[image_id] == undefined) image_id = img[0]['id'];
        
        var left = -img_pos[image_id] * gallery_image_width + 'px';
        $("#gallery_image").css({"left":left}); 
        
        for (i in img){// Building image
            $("#gallery_image").append('<div id="gallery_image_'+img[i]['id']+'"></div>');
            $("#gallery_image_"+img[i]['id']).css({
                "background-image":"url('"+img[i]['url']+"')"
            });                                             
        }
        
        $("#gallery_image").width(gallery_image_width * (i*1+1));
        $("#gallery_preview").height(gallery_preview_height * Math.ceil((i*1+1)/6));
        
        var top = -Math.floor((img_pos[image_id])/6) * gallery_preview_height + 'px';
        $("#gallery_preview").css({"top":top});
        
        if (gallery_type == false){ // Building images preview
            if (img[img_pos[image_id]]['author_name'] != undefined){
                $("#author_name").html(img[img_pos[image_id]]['author_name']);
                $("#author_title").html("Автор работы");
            }
            if (img[img_pos[image_id]]['author_photo'] != undefined) $("#author_photo").html('<img src="'+img[img_pos[image_id]]['author_photo']+'" alt="">');
        }
        
        for (i in img_preview){
            $("#gallery_preview").append('<a href="#'+img[i]['id']+'"  onmouseup="image();"><div id="gallery_image_preview_'+img[i]['id']+'"></div></a>');
            
            $("#gallery_image_preview_"+img[i]['id']).css({
                "background-image":"url('"+img_preview[i]['url']+"')"           
            });    
        }                                                                                                                       
        
        $("#gallery_image_preview_"+image_id).addClass("gallery_preview_active");
        
        $("#gallery_image").css({"background-image":'none'});
        $("#gallery_preview").show();
        
        setGalleryUrl();
        showImageDescr();
        
        showPreviewNav();
    }
}


function image(flag){
    i = 15; // count of step to move
    
    if (flag == undefined){
        setTimeout('image(true)',100);
        return false;
    }
    
    if (process == true){
        return false;
    }
    
    process = true;
    
    $("#gallery_image_wrap > a").hide();
   
    var url      = location.href;
    if (url.indexOf("#")>0){
       image_id = url.substring(url.indexOf("#")+1);
    }
    
    $("#gallery_preview > a > div").removeClass("gallery_preview_active");                             
    $("#gallery_image_preview_"+image_id).addClass("gallery_preview_active");
    
    var left_begin  = $("#gallery_image").css("left");
    left_begin      = parseInt(left_begin.substring(0,left_begin.length-2));
    
    left_end        = - gallery_image_width * img_pos[image_id];

    step = Math.floor((left_begin - left_end)/i);
    
    gallery.style.left =  left_end + step*i+'px';
    
/*    console.log('image_id = '+image_id+ '  pos = '+ img[image_id]['pos'] +'  left_begin = '+left_begin+'  left_end = '+ left_end +'  step = '+step);*/
            
    galleryMove();                                                                                                                                      
}


function galleryMove(){                                   
   var left_current = gallery.style.left;
   left_current     = parseInt(left_current.substring(0,left_current.length-2));     
   
   if (i != 0){ 
        gallery.style.left = left_current - step + 'px';
        i = i-1;  
        setTimeout(galleryMove,i);
   }
   else{
        gallery.style.left = left_end+'px';
        setGalleryUrl();
        showImageDescr();
        
        process = false;
        preview();
   }
}


function setGalleryUrl(){           
    if (img_pos[image_id] > 0){  // left link
        $("#gallery_left_link").attr("href","#"+(img[img_pos[image_id]-1]['id'])); 
        $("#gallery_left_link").show();                                            
    }
    if ( img[img_pos[image_id]+1] != undefined){ // right link
        $("#gallery_right_link").attr("href","#"+(img[img_pos[image_id]+1]['id']));
        $("#gallery_right_link").show();
    }
}
 
 
function showImageDescr(){
    if (gallery_type == false){
        if (img[img_pos[image_id]]['author_name']  != undefined){
             $("#author_name").html(img[img_pos[image_id]]['author_name']);
             $("#author_title").html("Автор работы");
        }
        else{
            $("#author_name").empty();
            $("#author_title").empty();
        }
        if (img[img_pos[image_id]]['author_photo'] != undefined){
            $("#author_photo").html('<img src="'+img[img_pos[image_id]]['author_photo']+'" alt="">');
        }
        else{
            $("#author_photo").empty();
        }
    }
    
    $("#gallery_description").html(img[img_pos[image_id]]['descr']);
    $("#order").show();
    $("#order_link").attr({href:"/contact-us/order/"+image_id+"/"});
    if (img[img_pos[image_id]]['title'] != ''){
        $("#product_title").html(img[img_pos[image_id]]['title']);
    }
    else{
        $("#product_title").html('Изделие');
    }
}


function preview(value){
    if (process == true){
        return false;
    }
    
    i = 10;                                                                      
    
    var  top_begin= gallery_preview.style.top;
    top_begin     = parseInt(top_begin.substring(0,top_begin.length-2));     
    
    if (value == undefined){
        top_end = -Math.floor((img_pos[image_id])/6) * gallery_preview_height;
    }
    else{                                                                    
        if (value == 'down'){
            top_end      = top_begin - gallery_preview_height;
        }
        else{
            top_end      = top_begin + gallery_preview_height;                       
        }             
    }
    
    if (top_begin != top_end){
        process = true;                                                  
        
        preview_step = Math.floor((top_begin - top_end)/i);
        
        gallery_preview.style.top =  top_end + preview_step*i+'px';
            
        previewMove();
    }
}

function previewMove(){                                   
   var top_current = gallery_preview.style.top;
   top_current     = parseInt(top_current.substring(0,top_current.length-2));     
   
   if (i != 0){ 
        gallery_preview.style.top = top_current - preview_step;
        i = i-1;  
        setTimeout(previewMove,i);
    }
    else{
        gallery_preview.style.top = top_end+'px';

        showPreviewNav();
    }
}        


function showPreviewNav(){
    var top = parseInt(gallery_preview.style.top.substring(0,gallery_preview.style.top.length-2));
 
    if (top == 0) $("#preview_up_link").hide();
    else  $("#preview_up_link").show();
    
    if (top == -($("#gallery_preview").height() - gallery_preview_height ) || $("#gallery_preview").height() == gallery_preview_height) $("#preview_down_link").hide(); 
    else $("#preview_down_link").show();
    
    process = false; 
}


function opacityUp(elem){
    if (process == false) $("#"+elem).fadeTo("normal", 0.85);
    else $("#"+elem).css({"opacity":"0.85"});
}
function opacityDown(elem){
    if (process == false) $("#"+elem).fadeTo("normal", 0.4);
    else $("#"+elem).css({"opacity":"0.4"});
}