var ml='';
window.addEvent('domready',function(){
    gallery_events(ml);
});

function gallery_events(ml)
{
    var i = 0;
    if($('photo_block')!==null)
    {
        var wrapper = $('photo_block');
        var view = $('view');
        var line = $('line');
        var img = $$('.photo');
        var del = $$('.delete_photo');
        var up = $$('.up_photo');
        var sort = $$('.sort');
        var add = $$('.add_photo');
        var separator = $$('.separator');
        var nav = new Element('div', {
            id:'nav', 
            html:'<span id="last"></span><span id="next"></span>'
        });
    
        var width = ((img[0].getSize().x+separator[0].getSize().x)*(img.length)+'px');
        line.setStyles({
            'width':width,
            'margin-left':ml
        });
        nav.inject(wrapper);
        i==0?fadeOut($('last')):fadeIn($('last'));
        i>=img.length-3?fadeOut($('next')):fadeIn($('next'));
        
        function display(el){       
            var src = el.getAttribute('data-image');
            var img = view;
            img.addEvent('load', function(){
                fadeIn(img);
            });
            view.setStyle('background-image', "url('"+src+"')");
            fadeIn(view);
        }
			
        function thumbStyle(img,e){
            img.each(function(el,i){
                if(el.hasClass('active-thumb')){
                    el.removeClass('active-thumb');
                }
                if(e==i){
                    el.addClass('active-thumb');
                }
            });
        }
			
        function list(nid){
            i = nid;
            with ($('thumb')){
                if(i==0){
                    $('last').removeClass('last-act');
                    $('next').removeClass('next-no');
                }else{
                    if(i==img.length-1){
                        $('next').addClass('next-no');
                    }else{
                        $('next').removeClass('next-no');
                    }
                    $('last').addClass('last-act');
                }
                if (i<img.length-2){
                    ml="-"+(img[0].getSize().x+separator[0].getSize().x)*i+'px';
                    line.morph({
                        'margin-left':ml
                    });
                }
                }
        }
    
        function photo_delete(elem,event)
        {
            set_up(elem,event);
            var img = $$('.photo');
            for (var i=0;i<img.length;i++)
            {
                if (elem.parentNode.parentNode.parentNode==img[i])
                {
                    if (i<img.length-2)
                        img[i+1].click();
                    else 
                        img[i-1].click();
                    ehide(img[i]);
                }
            }
        }
        // ***************************************************************************** 
        // ***************************************************************************** 
        // ÊÍÎÏÊÀ ÂÏÅÐÅÄ ***************************************************************
        $('next').addEvent('mousedown',function(e){
            if(i>=img.length-3){
                e.stop();
            }else{
                i++
                list(i);
                i>=img.length-3?fadeOut($('next')):fadeIn($('next'));
                if(i>=img.length-3) $('next').setStyle('background-position','-19px center');
                fadeIn($('last'));
            }
        });
        $('next').addEvent('mouseover',function(e){
            if(i>=img.length-3){
                e.stop();
            }else{
                $('next').setStyle('background-position','-58px center');
            }
        });
        $('next').addEvent('mouseout',function(e){
            if(i>=img.length-3){
                e.stop();
            }else{
                $('next').setStyle('background-position','-19px center');
            }
        });
        // *****************************************************************************       
        // ÊÍÎÏÊÀ ÍÀÇÀÄ ****************************************************************        
        $('last').addEvent('mousedown',function(e){
            if(i==0){
                e.stop();
            }else{
                i--
                list(i);
                i==0?fadeOut($('last')):fadeIn($('last'));
                if (i==0) $('last').setStyle('background-position','0px center');
                fadeIn($('next'));
            }
        });
        $('last').addEvent('mouseover',function(e){
            if(i!==0){
                $('last').setStyle('background-position','-38px center');
            }
        });
        $('last').addEvent('mouseout',function(e){
            if(i!==0){
                $('last').setStyle('background-position','0px center');
            }
        });		
        // ***************************************************************************** 
        // ***************************************************************************** 
        // ***************************************************************************** 
        img.each(function(el,i){
            if(el.getParent('a')){
                el.getParent('a').addEvent('click',function(e){
                    e.stop();
                });
            }
            el.addEvent('mousedown', function(){
                // list(i);
                display(img[i]);
                $('view').getElementById('photo_link').href=img[i].getElementsByTagName('a')[0].href;
                thumbStyle(img,i);
                nophoto_init();
            });
            el.addEvent('mouseover', function(event){
                if (!($('img_'+this.id)))
                {
                    var preloader = new Element('img', {
                        id:'img_'+this.id,
                        src:img[i].getElementsByTagName('a')[0].href,
                        style:'display: none;'
                    });
                    preloader.inject(document.body); 
                }

               
            });
        });
    
    
        del.each(function(el,i){
            el.addEvent('click', function(event){
                if (confirm('Óäàëèòü ýòó ôîòîãðàôèþ?'))
                {
                    set_up(this,event);
                    show_pictures($('up_photo'));
                }
                else return false;
            });
        });
        
        sort.each(function(el,i){
            el.addEvent('click', function(event){
                var url = this.getAttribute('data-url');
                var key_field = this.getAttribute('data-key_field');
                var key_value = this.getAttribute('data-key_value');
                var field = this.getAttribute('data-field');
                var table = this.getAttribute('data-table');
                var obj_field = this.getAttribute('data-obj_field');
                var obj_value = this.getAttribute('data-obj_value');
                var dir = this.getAttribute('data-dir');
                var file_field = this.getAttribute('data-file_field');
                var sort_field = this.getAttribute('data-sort_field');
                var up = this.getAttribute('data-up');
                
                var pars = $H({
                    url:url,
                    key_field:key_field,
                    key_value:key_value,
                    field:field,
                    table:table,
                    obj_field:obj_field,
                    obj_value:obj_value,
                    dir:dir,
                    file_field:file_field,
                    sort_field:sort_field,
                    up:up
                }).toQueryString();
                var myRequest = new Request.HTML({
                    url: 'modules/gallery/ajax/actions.php?action=sort',
                    method: 'get',
                    update: $('photo_block').parentNode.id,
                    evalScripts: true,
                    onComplete: function(){
                        gallery_events();
                    }
                }).send(pars);
            });
        });
        
        // íàçàä ************************************
        var trashield = new Element('div', {
            'class': 'go_last'
        });
        trashield.addEvent('mousedown',function(){
            if (!img[i-1])
                i = img.length;
            display(img[i-1]);
            $('view').getElementById('photo_link').href=img[i-1].getElementsByTagName('a')[0].href;
            thumbStyle(img,i);
            nophoto_init();
            i--;
                        if($('show_'+i))
                $('show_'+i).fireEvent('click');
            
        });
        trashield.addEvent('mouseover',function(e){
            this.setStyle('background-position','0px -51px');
        });
        trashield.addEvent('mouseout',function(e){
            this.setStyle('background-position','0px 0px');
        });
            
        trashield.inject($('curent_photo'),'top');  
        //*******************************************
        // âïåðåä ************************************
        var trashield = new Element('div', {
            'class': 'go_next'
        });
        trashield.addEvent('mousedown',function(){
            if (!img[i+1])
                i = -1;
            display(img[i+1]);
            $('view').getElementById('photo_link').href=img[i+1].getElementsByTagName('a')[0].href;
            
            thumbStyle(img,i);
            nophoto_init();
            i++;
                    if($('show_'+i))
                $('show_'+i).fireEvent('click');
        //    show($('show_'+i));
    
        });
        trashield.addEvent('mouseover',function(e){
            this.setStyle('background-position','-41px -51px');
        });
        trashield.addEvent('mouseout',function(e){
            this.setStyle('background-position','-41px 0px');
        });
        trashield.inject($('curent_photo'),'top');  
        //*******************************************
        if($('code')&&img.length>1)
        {
            $('curent_photo').addEvent('mouseenter',function(event){
                $$('.go_last').setStyle('display','block');
                $$('.go_next').setStyle('display','block');
            });
            $('curent_photo').addEvent('mouseleave',function(event){
                $$('.go_last').setStyle('display','none');
                $$('.go_next').setStyle('display','none');
            });
        }
    }
    initialize_photo_selector();
    nophoto_init();
			
}

function nophoto_init()
{
    if ($('photo_link'))
        if ($('photo_link').href.indexOf('no_photo')!==-1)
        {
            $('photo_link').removeAttribute('rel');
            $('photo_link').removeEvent('click');
            $('photo_link').removeAttribute('href');
            Slimbox.scanPage();
        }
}



function show_pictures(elem)
{
    var key_field = elem.getAttribute('data-key_field');
    var key_value = elem.getAttribute('data-key_value');
    var field = elem.getAttribute('data-field');
    var table = elem.getAttribute('data-table');
    var obj_field = elem.getAttribute('data-obj_field');
    var obj_value = elem.getAttribute('data-obj_value');
    var dir = elem.getAttribute('data-dir');
    var file_field = elem.getAttribute('data-file_field');
    var sort_field = elem.getAttribute('data-sort_field');
    var pars = $H({
        key_field:key_field,
        key_value:key_value,
        field:field,
        table:table,
        obj_field:obj_field,
        obj_value:obj_value,
        dir:dir,
        file_field:file_field,
        sort_field:sort_field
    }).toQueryString();
    var container =  $('photo_block')?$('photo_block').parentNode.id:"div_catalog_photo";
    var myRequest = new Request.HTML({
        url: 'modules/gallery/ajax/actions.php?action=show_pictures',
        method: 'get',
        update: container,
        evalScripts: true,
        onComplete: function(){
            gallery_events();
            Slimbox.scanPage();
        }
    }).send(pars);
}


function initialize_photo_selector()
{
    if($('div_catalog_photo'))
    {
        if(!$('add_img_link'))
        {
            $('thumb').setStyle('display','none');
           
           
        }
        else  if($('ps_navi'))
        {
            $('ps_navi').setStyle('display','none');
            $$('.cb')[1].innerHTML = "<b onmouseover=\"$('line').highlight('#ffffff','#dadada');\">ìèíèàòþðû ôîòîãðàôèé</b> â êàòàëîãå îòîáðàæàþòñÿ òîëüêî ó àäìèíèñòðàòîðîâ";
        }
    } 
  
    if ($('nav'))
        $('nav').setStyle('display','none');
       
    var i=0;
    var item = $$('.photo');
    var navi = $('ps_navi');
    var next = 0;
    function navi_create()
    {
        if(navi)
        {
            navi.innerHTML='';
            if(item.length>1)
                for (var j=0; j<item.length;j++)
                {
                    var cl = 'show_button';
                    if (j==i)
                        cl = 'show_button-active';
                    var trashield = new Element('div', {
                        id:'show_'+j,
                        'class': cl,
                        'data-id': j
                    });
                    trashield.addEvent('click', function(e) {
                        show(this);
                    });
                    trashield.addEvent('mouseover', function(e) {
                        item[i].fireEvent('mouseover');
                    });
                    trashield.inject(navi,'bottom');  
                }
        }
    }
    
    function show(elem)
    { 
        $('show_'+i).setAttribute('class','show_button');
        var id=parseInt(elem.getAttribute('data-id'));
        i = id;
        item[i].fireEvent('mousedown');
        item[id].setStyle('display','block');
        elem.setAttribute('class','show_button-active');
       
        next = i==item.length-1?0:i+1;
        nophoto_init();
    }
    navi_create();

// show($('show_1')).fireEvent('mousedown');
}


function fadeIn(elem)
{
    if (elem)
    {
        if (Browser.name == 'ie'&&elem!==null&&elem!==undefined)
        {
            $(elem.id).setStyle('display', 'block');
        }
        else
        {   
            elem.setStyles({
                opacity:0,
                display:'block'
            });
            elem.tween('opacity', '1');
        }
    }
  
}

function fadeOut(elem)
{
    if (elem)
    {
        if (Browser.name == 'ie'&&elem!==null&&elem!==undefined)
        {
            $(elem.id).setStyles({
                'display':'block'
            });
   
        }
        else
        {   
            elem.tween('opacity', '0');
        }
    }
}
