﻿/************************************************************ Ben gold online media page */

var BG_Media = {
    id: "BG_Media",
    YT: "http://gdata.youtube.com/feeds/users/theBGOnline/uploads?alt=json-in-script&callback=BG_Media.onYTReady&max-results=30",
    FKR: "http://api.flickr.com/services/feeds/photos_public.gne?tags=bengold&lang=en-us&format=json&jsoncallback=?",
    BLOG: "http://pipes.yahoo.com/pipes/pipe.run?_id=838f702e26be4f8d6bb976bd7a6218e1&_render=json",
    mediaType: {
        Image: 1,
        Video: 2,
        Audio: 3
    },

    CalDates: null,

    options: {
        debug: true,
        outputMain: ".portfolio-tiles-gallery"
    },

    init: function () {
        this.getFlickrImages();
    },

    // Data Populate
    getImages: function () {

    },

    getVideos: function () {

    },

    // Page Formatting
    createImg: function (imgData) { },

    createYTVideo: function (data) {
        var BG_M = this;
        var feed = data.feed;
        var entries = feed.entry || [];
        var html = [''];
        for (var i = 0; i < entries.length; i++) {
            var entry = entries[i];
            var title = entry.title.$t.substr(0, 20);
            var thumbnailUrl = entries[i].media$group.media$thumbnail[0].url;
            var playerUrl = entries[i].media$group.media$content[0].url;
            var link = entry.link[0].href;
            html.push('<li class="bg-media web video ytvideo"><div class="boxgrid slidedown">',
              '<span class="titlec">', title, '</span><br /><a rel="prettyPhoto" href="' + link + '"><img src="',
              thumbnailUrl, '" alt="YouTube" class="bg-media"></a></span></div></li>');
        }
        html.push('</ul>');
        $(this.options.outputMain).html(html.join(''));
        BG_M.setupClickEvent('.ytvideo');
        $("a[rel='prettyPhoto']").prettyPhoto();
    },

    loadVideo: function () {

    },

    setupClickEvent: function (cssClass) {
        var _bg = this;
        $(cssClass).find('a').each(function () {
            _bg.BuildPrettyPhoto($(this));
            //this.href.replace(new RegExp("watch\\?v=", "i"), 'v/');
            return false;
        });
    },

    BuildPrettyPhoto: function ($lnk) {
        $lnk.attr('rel', 'prettyPhoto');
    },

    BuildFancyBox: function ($lnk) {
        $.fancybox({
            'padding': 0,
            'title': this.title,
            'width': 680,
            'height': 495,
            'href': this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
            'type': 'swf',
            'swf': {
                'wmode': 'transparent',
                'allowfullscreen': 'true'
            }
        });
    },

    CreateMediaOutput: function ($images, $videos) { },

    // Youtube - defined as callback in 
    onYTReady: function (data) {
        this.createYTVideo(data);
    },
    getFlickrImages: function () {
        var BG_M = this;
        //        $.getJSON(this.FKR, function (data) {
        //            $.each(data.items, function (i, item) {
        //                $('<img/>').attr("src", item.media.m)
        //                .appendTo(BG_M.options.outputMain)
        //                .wrap("<li class='bg-media web fkrimg'><div class='boxgrid slidedown'><a href='" +
        //                item.link + "'></a></div></li>");
        //            });
        //            //BG_M.setupClickEvents('.fkrimg');
        //        });
    },

    setupClickEvents: function (areaClass) {
        $(areaClass).live('click', function () {
            console.log(areaClass);
        });
    },

    getBlogData: function ($newsDiv) {
        var $bgItem;
        var title, description, link, img;

        $.getJSON(this.BLOG, function (data) {
            $.each(data.value.items, function (index, value) {
                $bgItem = $(this)[0];
                title = $bgItem.title;
                description = $bgItem.description.trim();
                link = $bgItem.link;
                //link = "proxy.php?url=" + link;

                $newsDiv
                .append('<li class="bg-newsitem"><h2>' + title + '</h2><p>' + description + '</p><a class="bg-news fancybox" target="_blank" href="' + link + '">read more</a></li>');
            });



            //            // Fix css
            //            $newsDiv.css({
            //                'width': '671px',
            //                'height': '281px'
            //            });

            // Make news container jScroll
            // $('a.bg-news').fancybox();
            $newsDiv.jScrollPane({ showArrows: true });
        })
    },

    FormatGigList: function (page) {
        var _BG = this;
        //FormatGigList
        var txtDate, tld;
        var $li, $date;
        _BG.CalDates = new Array();

        $('#tab-nav-gigs > li').each(function () {
            $li = $(this);
            $date = $li.find('small')
            txtDate = $date.text();
            _BG.fgk_AddCalMonthsToPage($li);
            _BG.fkg_AddFlagImage($li);
            _BG.fkg_AddDate(txtDate, $li);
            $date.addClass('date-text');
        });

        // Remove Duplicates
        _BG.CalDates = _BG.fkg_removeDuplicateElement(_BG.CalDates);
        _BG.fgk_AddCalMonthsToPage(_BG.CalDates);
    },

    fgk_AddCalMonthsToPage: function (CalDates) {
        var _BG = this;
        var $ulOutput, $lis, month, hmtl;
        var $tmpParentCal;

        $ulOutput = $('#tab-nav-gigs');
        $.each(CalDates, function (key, value) {
            // Create Output div
            html = '<li class="parent-cal-month" p-month="' + value + '"><p>' + _BG.fgk_GetDateFromValue(value) + ' 2012';
            $ulOutput.append(html);

            // Get LI's with Data Value and insert into output
            $tmpParentCal = $('.parent-cal-month[p-month="' + value + '"]');
            $lis = $('#tab-nav-gigs > li[date-month="' + value + '"]');
            $tmpParentCal.append($lis);
        });
        // Add sub header class
        $('.parent-cal-month > p').addClass('tour-month')
    },

    fgk_GetDateFromValue: function (month) {
        switch (month) {
            case "01":
                return "January";
            case "02":
                return "Feburary";
            case "03":
                return "March";
            case "04":
                return "April";
            case "05":
                return "May";
            case "06":
                return "June";
            case "07":
                return "July";
            case "08":
                return "August";
            case "09":
                return "September";
            case "10":
                return "October";
            case "11":
                return "November";
            case "12":
                return "December";
            default:
                return "";
        }
    },

    fkg_removeDuplicateElement: function (arrayName) {
        var newArray = new Array();
        label: for (var i = 0; i < arrayName.length; i++) {
            for (var j = 0; j < newArray.length; j++) {
                if (newArray[j] == arrayName[i])
                    continue label;
            }
            newArray[newArray.length] = arrayName[i];
        }
        return newArray;
    },

    fkg_AddFlagImage: function ($li) {
        var tld = $li.attr('tld');
        if (tld === "uk") {
            tld = "gb";
        }
        var html = '<img src="images/famflags/png/' + tld + '.png" class="flag-img" />';
        $(html).appendTo($li);
    },

    fkg_AddCalImage: function ($li) {
        var html = '<img src="images/cal/Blue.png" class="cal-img" />';
        $(html).appendTo($li);
    },

    fkg_AddDate: function (txtDate, $li) {
        var _BG = this;
        var txtDate = txtDate.trim();
        txtDate = txtDate.substring(3);
        $li.attr('date-month', txtDate);
        _BG.CalDates.push(txtDate);
    }
};
