var gRunDownloads = 0;

$.fn.smartBackgroundImage = function (url) {

    var t = this;

    //create an img so the browser will download the image:

    $('<img />')
        .attr('src', url)
        .load(function () { //attach onload to set background-image
            t.each(function () {
                $(this).css('backgroundImage', 'url(' + url + ')');
	        });
	    });

    return this;
};

function getJSON(url, callback, format ) {

    gRunDownloads++;
    var theUrl = "transport?url=" + encodeURIComponent(url);

    $.ajax({
        type: "get",
        url: theUrl,
        method: "get",
        success: function () { gRunDownloads--; callback.apply(this,arguments) },
        error: function (a, b) {
            gRunDownloads--;
//            alert("oooops." + a + b);
        },

        dataType: format || "json",
        crossDomain: false
    });
}

function getStream( li, id, name ) {

    getJSON("http://api.jamendo.com/get2/stream/track/plain?streamencoding=mp31&id=" + id, function (result) {
        li.empty();
        li.append($("<a href='" + result + "' class='htrack' type='audio/mpeg'>" + name + "</a>"));
    }, "text" );
};

function getTracks(owner, albumId) {

    var ul = $("<ul/>");
    owner.append(ul);

    getJSON("http://api.jamendo.com/get2/id+name+url/track/json/?album_id=" + albumId, function (tracks) {
        for (var t in tracks) {
            var track = tracks[t];

            var li = $("<li class='track'><img src='ajax-loader.gif' class='loading' />" + track.name + "</li>");
            ul.append(li);

            getStream(li, track.id, track.name);
        }
    });
}


function getAlbums() {

    getJSON("http://api.jamendo.com/fr/?artist_idstr=Laurent_Danis&m=get2&m_params=id+name+url+image+genre%2Falbum%2Fjson%2F&order=releasedate_desc", function (albums) {

        var ul = $("<ul/>");
        $("#alb-list").append(ul);

        for (var a in albums) {
            var album = albums[a];
            var li = $("<li class='album'><a href='" + album.url + "' ><img src='" + album.image + "' /></a><h2>" + album.name + "</h2></li>");
            ul.append(li);
            getTracks(li, album.id);
        }
    });
}

function getTumblr() {

    getJSON("http://api.tumblr.com/v2/blog/laurentdanis.tumblr.com/posts?api_key=aWbvf9X4MHFLdQECu4oFG7igL7A1BPecEjG75GJsvKyQES1tpu", function (json) {

        if (json.meta.status != 200)
            return;

        var news = $("#news");
        var container = $("<div class='news-container' id='news-container' />");
        news.append(container);

        var posts = json.response.posts;

        for (var p in posts) {

            var div = $("<div class='post' />");
            container.append(div);

            var post = posts[p];
            if (post.title)
                div.append($("<h4>" + post.title + "</h4>"));

            switch (post.type) {
                case "link":
                    div.addClass("p-link");
                    div.append($("<a href='" + post.url + "'>" + post.url + "</a>"));
                    break;

                case "text":
                    div.addClass("p-text");
                    div.append($(post.body));
                    break;

                case "photo":
                    div.addClass("p-photo");

                    var photos = post.photos;
                    for (var p in photos) {
                        var photo = photos[p];
                        var sub = $("<div />");
                        sub.append($("<img class='photo' src='" + photo.alt_sizes[0].url + "' title='" + photo.title + "'/>"));
                        div.append(sub);
                    }
                    break;

                case "audio":
                    div.addClass("p-audio");
                    div.append($(post.player));
                    break;

                case "video":
                    div.addClass("p-video");
                    div.append($(post.player[0].embed_code));
                    break;
            }
        }

        container.masonry({

            // options
            itemSelector: '.post',
            columnWidth: 40,
            isAnimated: true
            //isFitWidth: true
        });
    });

}



function sizeChanged( leftId ) {

	var left = $(leftId);
	var right = $("#rpane");
	var win = $("#content");
	var w = win.width();
	var wl= w-right.width();
	left.width( wl );
}

function setupPage( leftId ) {

	sizeChanged( leftId );
	$("#back").smartBackgroundImage( "images/back0.png");
	$(window).resize( function(){sizeChanged(leftId);} );
}












