﻿var CurrentCloseUp;
$(document).ready(function() {
    RegisterEvents($('#Gallery'));
    var curPanel = GetVisiblePanel();
    SelectThumb(curPanel.find('.thumb img:first'));

    VertialAlignPanelImages();

});

function VertialAlignPanelImages() {
    $('.panel:visible img').each(function() {
        var img = $(this);
        var h = img.height();
        var offset = 0;
        var dif = (60 - h);
        if (dif > 0) {
            offset = Math.floor(dif / 2);
        }
        img.attr('style', 'margin-top:' + offset + 'px;');
    });
}

function MovePrevious() {
    var curPanel = GetVisiblePanel();
    var prevPanel = curPanel.prev('.panel');
    if (prevPanel.is('.panel') == false) {
        prevPanel = curPanel.nextAll('.panel:last');
    }

    TogglePanel(curPanel, prevPanel);
}

function MoveNext() {
    var curPanel = GetVisiblePanel();
    var nextPanel = curPanel.next('.panel');
    if (nextPanel.is('.panel') == false) {
        nextPanel = curPanel.prevAll('.panel:last');
    }

    TogglePanel(curPanel, nextPanel);
}

function SelectThumb(e) {
    if (e) {
        if ($(e).is('img')) {
            CurrentCloseUp = $(e);
        }
        else {
            CurrentCloseUp = $(this);
        }
    }
    else {
        CurrentCloseUp = $(this);
    }
    var NewSrc = CurrentCloseUp.attr('srclrg');
    LoadImage(NewSrc);
}

function TogglePanel(oldp, newp) {
    oldp.fadeOut('slow', function() {
        newp.fadeIn('slow');
        SelectThumb(newp.find('.thumb img:first'));
        VertialAlignPanelImages();
    });
    /*oldp.animate({'width':'toggle'},{duration: 600},function(){
    newp.animate({'width':'toggle'},{duration: 600});					  
    });*/
}

function GetVisiblePanel() {
    return $('#gallery-main>div.panel:visible');
}

function MoveNextCU() {
    var CurrentCloseUpColumn = CurrentCloseUp.parent('.thumb')
    var nextColumn = CurrentCloseUpColumn.next('.thumb');
    if (nextColumn.is('.thumb') == false) {
        nextColumn = CurrentCloseUpColumn.prevAll('.thumb:last');
    }
    var nextImage = nextColumn.children('img');
    var NewSrc = nextImage.attr('srclrg');

    CurrentCloseUp = nextImage;
    LoadImage(NewSrc);
}

function MovePreviousCU() {
    var CurrentCloseUpColumn = CurrentCloseUp.parent('.thumb')
    var prevColumn = CurrentCloseUpColumn.prev('.thumb');
    if (prevColumn.is('.thumb') == false) {
        prevColumn = CurrentCloseUpColumn.nextAll('.thumb:last');
    }
    var nextImage = prevColumn.children('img');
    var NewSrc = nextImage.attr('srclrg');

    CurrentCloseUp = nextImage;
    LoadImage(NewSrc);


}

function LoadImage(newSrc,cap) {
    var HiddenImage = $('#gallery-main-cu img:hidden');
    var VisibleImage = $('#gallery-main-cu img:visible');

    HiddenImage.attr('src', '/media/1x1transparent.gif');
    
    HiddenImage.attr('src', newSrc);
    ToggleCU(VisibleImage, HiddenImage);
    if (cap == null || cap == 'undefined') {
        cap = CurrentCloseUp.attr('alt');
    }
    $('#gallery-caption').html(cap);
    
}

function ToggleCU(v, h) {
    v.fadeOut('fast', function() {
        h.fadeIn('fast');
    });
}

function IntegerPrep(i) {
    var ret = 0;
    if (!isNaN(i)) {
        ret = parseInt(i);
    }

    return ret;
}

function RegisterEvents(containers) {

    containers.each(function(z) {
        var container = $(this);
        container.find('[regevents]').each(function(i) {
            var element = $(this);
            var regevents = element.attr('regevents').split(',');
            for (i = 0; i < regevents.length; i++) {
                var fn = element.attr(regevents[i]);
                element.bind(regevents[i], eval(fn));
            }
        });
    });
}

function UnregisterEvents(containers) {
    containers.each(function(z) {
        var container = $(this);
        container.find('[regevents]').each(function(i) {
            var element = $(this);
            var regevents = element.attr('regevents').split(',');
            for (i = 0; i < regevents.length; i++) {
                element.unbind(regevents[i]);
            }
        });
    });
}
