vj12
clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

macro.js
application/javascript

Download raw (5.0 KB)

$(function() {
    //function toggle_src(a, img){
    //    var href = $(a).attr('href');
    //    var src = $(img).attr('src');
    //    $(img).attr('src', href);
    //    $(a).attr('href', src);
    //    return false
    //};

    function sort_by(attribute) {
        function sort_by_attr(a, b){
            return $(a).attr(attribute) > $(b).attr(attribute) ? 1 : -1;
        };
        $('div#outer ul li').sort(sort_by_attr).appendTo('div#outer ul');

        $('.tag').remove();
        var current_attr;
        $('div#outer ul li').each(function() {
            var this_attr = $(this).attr(attribute);
            if (this_attr !== current_attr) {
                current_attr = this_attr;
                var foo = $('<div></div>');
                foo.addClass('tag');
                foo.text(this_attr);
                foo.prependTo(this);
            };
        });
        return false
    }
    function spread_by(attribute) {
        var offset = 30;
        var values = []
        $('div#outer ul li').each(function() {
            var attr = $(this).attr(attribute);
            var index = $.inArray(attr, values);
            if (index === -1) {
                values.push(attr);
                index = values.length - 1;
            };
            $(this).css('margin-top', 50 + index * offset);
            //$(this).css('padding-bottom', 3000);
        });
        $('.tag2').remove();
        var current_attr;
        $('div#outer ul li').each(function() {
            var this_attr = $(this).attr(attribute);
            if (this_attr !== current_attr) {
                current_attr = this_attr;
                var foo = $('<div></div>');
                foo.addClass('tag2');
                foo.text(this_attr);
                foo.prependTo(this);
            };
        });
    }
    (function() {
        var keys = [];
        $('div#outer ul li').each(function() {
            $.each(this.attributes, function(i, attr) {
                if ($.inArray(attr.name, keys) === -1) {
                    keys.push(attr.name);
                };
            });
        });
        //var nav = $('<nav>');
        //var sort = $('<select>');
        //for (var i = 0; i < keys.length; i++) {
            //$('<option>' + keys[i] +'</option>')
                //.attr('value', keys[i])
                //.appendTo(sort);
        //};
        //var clone = sort.clone();
        //clone.attr('name', 'sort_by');
        //sort.attr('name', 'spread_by');
        //$('<label for="sort_by">Sort by</label>').appendTo(nav);
        //clone.appendTo(nav);
        //$('<label for="spread_by">Spread by</label>').appendTo(nav);
        //sort.appendTo(nav);
        //nav.prependTo('div#outer');
        $('select[name="spread_by"]').change(function() {
            spread_by($(this).val());
            return false;
        });
        $('select[name="sort_by"]').change(function() {
            sort_by($(this).val());
            return false;
        });

    })();

    extradata = ["id", "data-colorspace", "data-flashpixversion", "data-componentsconfiguration", "data-exifversion", "data-exiftag", "data-ycbcrpositioning", "data-software", "data-resolutionunit", "data-xresolution"];

    $('div#outer li').hover(function() {
        var prefix = "data-"; 
        var $infos = $("dl#infos").empty()
        $.each(this.attributes, function(i, attr) {
            if (attr.name.substring(0, prefix.length) === prefix
                    && attr.value !== "-") {
                if ($.inArray(attr.name, extradata) == -1 ){ // checks if metadata is not a superfluous one!
                    $infos.append("<dt>" + attr.name.substring(prefix.length, attr.name.length) + "</dt>")
                        .append("<dd>" + attr.value + "</dd>")
                }
            };
        });
    }, function() {
        var $infos = $("dl#infos").empty()
    });

    var current_a, current_img;
    $("div#outer li").hover(function(evt) {
        evt.stopPropagation();
        current_a = $(this).find('a');
        current_img = current_a.find('img');
        //toggle_src(current_a, current_img);
    }, function(evt) {
        evt.stopPropagation();
        current_a = $(this).find('a');
        current_img = current_a.find('img');
        //toggle_src(current_a, current_img);
    });
    $("div#outer li").click(function(evt) {
        evt.preventDefault();
        evt.stopPropagation();
        
        $(this).zoomTo({
            //root: $('div#bla'),
            targetsize: 0.8,
            scalemode: "both",
            duration: 1000,
            easing: "ease",
            nativeanimation: true
        });
        
        //try {
            //toggle_src(current_a, current_img);
        //} catch (e) {

        //}

        //current_a = $(this).find('a');
        //current_img = current_a.find('img');
        //toggle_src(current_a, current_img);
    });

    $("body").click(function(evt) {
        evt.stopPropagation();
        $(this).zoomTo({targetsize: 1});
        //toggle_src(current_a, current_img);
    });
});