﻿var yutube_slider = new tubeslider(document, 'xxx', 5000);
var tube_data;
SimpleTube = function() {

    this.startTubeSlideShow = function(player_div_id, seconds) {
        yutube_slider = new tubeslider(document, player_div_id, parseInt(seconds) * 1000);
    }

    this.stopTubeSlideShow = function() {
        yutube_slider.stop();
        delete yutube_slider;
    }
    
    this.getUploadedVideos = function(username, format) {

        this.stopTubeSlideShow();

        var q = "http://gdata.youtube.com/feeds/api/users/" + username + "/uploads?alt=json-in-script&callback=?"

        if (format == '5') {
            q += "&format=5";
        }

        $.getJSON(q, function(json) {
            var htmlstr = '';

            tube_data = new Array(json.feed.entry.length);
            $.each(json.feed.entry, function(i, pl_item) {
                tube_data[i] = new Array(6)
                if (pl_item['app$control'] != undefined && pl_item['app$control']['yt$state'] != undefined) {
                    var thumb = pl_item['app$control']['yt$state']['$t'];
                    var url = '#';
                    tube_data[i]["thumb_url"] = '#';
                    tube_data[i]["vid"] = pl_item['app$control']['yt$state']['$t'];
                }

                else {
                    tube_data[i]["thumb_title"] = pl_item['title']['$t'];
                    tube_data[i]["thumb_img"] = pl_item['media$group']['media$thumbnail'][0]['url'];
                    tube_data[i]["thumb_width"] = pl_item['media$group']['media$thumbnail'][0]['width'];
                    tube_data[i]["thumb_height"] = pl_item['media$group']['media$thumbnail'][0]['height'];
                    tube_data[i]["thumb_url"] = pl_item['media$group']['media$player'][0]['url']
                    var vid_1 = tube_data[i]["thumb_url"].search('v=');
                    var vid_2 = tube_data[i]["thumb_url"].search('&feature');
                    var vid_len = vid_2 - (vid_1 + 2);
                    tube_data[i]["vid"] = tube_data[i]["thumb_url"].substr(vid_1 + 2, vid_len);
                }

            });

            yutube_slider.initex(tube_data);
            yutube_slider.start();
        });
    }



    this.getSearchVideos = function(tag_txt, boolean_op, format) {

        this.stopTubeSlideShow();

        var tag_arr = tag_txt.split(',');


        var q = "http://gdata.youtube.com/feeds/videos?max-results=40&alt=json-in-script&callback=?&orderby=relevance&sortorder=descending&q="
        var j = 0;
        var k = 0;
        var qstring = '';

        if (boolean_op == 'and') {
            qstring = "%22" + tag_arr[0];
            for (k = 1; k < tag_arr.length; k++) {
                qstring += "+" + tag_arr[k];
            }
            qstring += "%22";

        }
        if (boolean_op == 'or') {
            qstring = tag_arr[0];
            for (k = 1; k < tag_arr.length; k++) {
                qstring += "%7c" + tag_arr[k];
            }


        }
        if (boolean_op == 'rand') {
            var randomnumber = Math.floor(Math.random() * (tag_arr.length - 1)) + 1;
            qstring = tag_arr[randomnumber];
            for (k = 0; k <= randomnumber; k++) {
                randomnumber = Math.floor(Math.random() * tag_arr.length);
                qstring += "%7c" + tag_arr[randomnumber];

            }

        }


        q = q + qstring;
        if (format == '5')
            q += "&format=5";

        $.getJSON(q, function(data) {
            var htmlstr = '';
            tube_data = new Array(data.feed.entry.length);
            $.each(data.feed.entry, function(i, feed_item) {
                tube_data[i] = new Array(6);
                if (feed_item['app$control'] != undefined && feed_item['app$control']['yt$state'] != undefined) {
                    var thumb = feed_item['app$control']['yt$state']['$t'];
                    var url = '#';
                    tube_data[i]["thumb_url"] = '#';
                    tube_data[i]["vid"] = feed_item['app$control']['yt$state']['$t'];
                }

                else {
                    tube_data[i]["thumb_title"] = feed_item['title']['$t'];
                    tube_data[i]["thumb_img"] = feed_item['media$group']['media$thumbnail'][0]['url'];
                    tube_data[i]["thumb_width"] = feed_item['media$group']['media$thumbnail'][0]['width'];
                    tube_data[i]["thumb_height"] = feed_item['media$group']['media$thumbnail'][0]['height'];
                    tube_data[i]["thumb_url"] = feed_item['media$group']['media$player'][0]['url']
                    var vid_1 = tube_data[i]["thumb_url"].search('v=');
                    var vid_2 = tube_data[i]["thumb_url"].search('&feature');
                    var vid_len = vid_2 - (vid_1 + 2);
                    tube_data[i]["vid"] = tube_data[i]["thumb_url"].substr(vid_1 + 2, vid_len);
                }

            });

            yutube_slider.initex(tube_data);
            yutube_slider.start();
        });

    }


    this.getPlayListVideos = function(username, playlist, format) {

        this.stopTubeSlideShow();
        var q = "http://gdata.youtube.com/feeds/api/users/" + username + "/playlists?alt=json-in-script";
        q += "&callback=?";
        $.getJSON(q, function(data) {


            $.each(data.feed.entry, function(i, item) {
                var title = item['title']['$t'];
                if (title.toLowerCase() == playlist.toLowerCase())
                    q = item['gd$feedLink'][0]['href'];


            });
            if (format == '5')
                q += "?alt=json-in-script&callback=?&format=5";
            else
                q += "?alt=json-in-script&callback=?&format=5";
            $.getJSON(q, function(json) {
                var htmlstr = '';

                tube_data = new Array(json.feed.entry.length);
                $.each(json.feed.entry, function(i, pl_item) {
                    var title2 = pl_item['media$group']['media$title']['$t'];

                    tube_data[i] = new Array(6)
                    if (pl_item['app$control'] != undefined && pl_item['app$control']['yt$state'] != undefined) {
                        var thumb = pl_item['app$control']['yt$state']['$t'];
                        var url = '#';
                        tube_data[i]["thumb_url"] = '#';
                        tube_data[i]["vid"] = pl_item['app$control']['yt$state']['$t'];
                    }

                    else {
                        tube_data[i]["thumb_title"] = pl_item['title']['$t'];
                        tube_data[i]["thumb_img"] = pl_item['media$group']['media$thumbnail'][0]['url'];
                        tube_data[i]["thumb_width"] = pl_item['media$group']['media$thumbnail'][0]['width'];
                        tube_data[i]["thumb_height"] = pl_item['media$group']['media$thumbnail'][0]['height'];
                        tube_data[i]["thumb_url"] = pl_item['media$group']['media$player'][0]['url']
                        var vid_1 = tube_data[i]["thumb_url"].search('v=');
                        var vid_2 = tube_data[i]["thumb_url"].search('&feature');
                        var vid_len = vid_2 - (vid_1 + 2);
                        tube_data[i]["vid"] = tube_data[i]["thumb_url"].substr(vid_1 + 2, vid_len);
                    }


                });

                yutube_slider.initex(tube_data);
                yutube_slider.start();
            });


        });

    }

}
