var api_key = '707f43cd012e5ce7ea3fd2aeeafaadb3';
var totalW;
var flickr_url;
var flickr_url2;
var flickrs_retrieved_count = 0;
var flickrs_processed_count = 0;
var flickrs_max_count = 0;
var flickrs = new Array();

var places = new Array();
var place;

//$(document).ready(function() {
//
//    if (document.getElementById('flickrHome')) {
//        init();
//        flickrController();
//    }
//});

function init() {
    //places[0] is reserved for the place the user entered into the search field
    places[0] = {
        flickr_url: '',
        flickrs_max_count: 50,
        name: ""
    };

    //places[1] is reserved for the Teched Australia 2010 location
    places[1] = {
        //flickr_url: 'http://api.flickr.com/services/rest/?method=flickr.photos.search&tags=teched+australia&has_geo=1',
        //flickr_url: 'http://api.flickr.com/services/rest/?method=flickr.photos.search&tags=auteched&has_geo=1&min_upload_date=1282612039',
        flickr_url: 'http://api.flickr.com/services/rest/?method=flickr.photos.search&tags=auteched&min_upload_date=1282612039&has_geo=1',
        flickrs_max_count: 20,
        name: "Teched Gold Coast"
    };
}

function flickrController() {

    place = 1;

    loadPlace(place);

}

function enable(enable) {
    if (enable) {
        $("#loader").hide();
        $("#loaderbg").hide();
    }
    else {
        $("#loader").show();
        $("#loaderbg").show();
    }
}

function loadPlace(inPlace) {

    if (inPlace != null) {
        place = inPlace;
    }

    enable(false);

    loadFlickrStuff(place);
}

function loadFlickrStuff(place) {

    $("#flickrcontainer").show();
    $("#flickrcontainer").html("");

    flickrs_max_count = places[place].flickrs_max_count;
    flickr_url = places[place].flickr_url + '&per_page=' + flickrs_max_count + '&api_key=' + api_key + '&format=json&jsoncallback=?';

    flickrs = new Array();
    flickrs_retrieved_count = 0;
    flickrs_processed_count = 0;

    loadFlickrImageLocations(place);
}

function loadFlickrImageLocations(place) {

    $.getJSON(flickr_url, function(data) {

        //alert("total flickrs="+data.photos.total);

        if (data.photos.total == 0) {
            enable(true);
            return;
        }

        if (flickrs_max_count > data.photos.total) {
            flickrs_max_count = data.photos.total;
        }
        else if (flickrs_max_count > data.photos.perpage) {
            flickrs_max_count = data.photos.perpage;
        }

        $.each(data.photos.photo, function(i, item) {

            if (flickrs_retrieved_count < flickrs_max_count) {
                var photo_id = item.id;
                var owner = item.owner;
                var owner_url = 'http://www.flickr.com/photos/' + owner;
                var secret = item.secret;
                var server = item.server;
                var farm = item.farm;
                var title = item.title;
                var base_url = 'http://farm' + farm + '.static.flickr.com/' + server + '/' + photo_id + '_' + secret;
                var thumb_url = base_url + '_s.jpg';
                var photo_url = base_url + '.jpg';
                var photo_link = 'http://www.flickr.com/photos/' + owner + '/' + photo_id + '/';

                flickr_url2 = 'http://api.flickr.com/services/rest/?method=flickr.photos.geo.getLocation&api_key=' + api_key + '&photo_id=' + item.id + '&format=json&jsoncallback=?';

                $.getJSON(flickr_url2, function(data) {

                    try {
                        var latitude = data.photo.location.latitude;
                        var longitude = data.photo.location.longitude;

                        flickrs.push({
                            index: photo_id,
                            title: title,
                            owner: owner,
                            owner_url: owner_url,
                            photo: photo_url,
                            thumb: thumb_url,
                            url: photo_link
                        });

                        flickrs_processed_count += 1;

                        //alert('try ' + flickrs_processed_count + ' ' + flickrs_max_count);
                        if (flickrs_processed_count == flickrs_max_count) {
                            //alert('create ' + flickrs_processed_count + ' ' + flickrs_max_count);
                            createFlickrContent(flickrs);
                        }
                    }
                    catch (e) {
                        //we're in here probably because the retrived flickr has no lat/long information
                        flickrs_processed_count += 1;
                        //alert('catch ' + flickrs_processed_count + ' ' + flickrs_max_count);
                        if (flickrs_processed_count == flickrs_max_count) {
                            createFlickrContent(flickrs);
                        }
                    }

                });
            }
            else {

                return false;
            }

            flickrs_retrieved_count += 1;

        });

    });

}

function createFlickrContent(mapflickrs) {

    $("#flickrcontainer").append("<ul>");

    var flickr = $('<ul id="flickr">').appendTo("#flickrcontainer");

    for (var i = 0; i < mapflickrs.length; i++) {

        elem = mapflickrs[i];

        flickr.append(('<li id="{0}"><a href="{1}" title="{2}" ><img src="{3}" alt="{4}"  /></a></li>')
            .replace("{0}", elem.index)
            .replace("{1}", elem.photo)
            .replace("{2}", elem.title)
            .replace("{3}", elem.thumb)
            .replace("{4}", elem.title));

    }

    $('#flickrcontainer a').lightBox();

    enable(true);
}


