/**
* YouTubePlayer
* @author: pop-id [cn]
* @description: Embeds a YouTube video player
* @version: 0.2
* @dependencies: prototype v1.6.1, swfobject v2.1
**/

var YouTubePlayer = Class.create({
    initialize: function (target) {
        this.target = target;
        this.targetID = this.target.identify();
        this.youtubeID = this.target.readAttribute("data-youtube-id");
        this.playlist = this.target.readAttribute("data-playlist-id");
        this.videoWidth = this.target.readAttribute("data-youtube-width") || "288";
        this.videoHeight = this.target.readAttribute("data-youtube-height") || "162";
        this.Embed();
    },
    Embed: function () {
        var flashvars = {
            videoID: this.youtubeID,
            playlistID: this.playlist
        };
        var params = {
            allowScriptAccess: "always",
            allowFullScreen: true,
            autoPlayBool: false,
            scale: "noscale",
            salign: "tl",
            wmode: "transparent"
        };
        var attributes = {
            id: this.targetID
        };
        var cacheID = new Date().getTime();
        swfobject.embedSWF(rootVirtual + "_ui/swf/SwedishYTPlayer.swf?cacheBuster=" + cacheID, this.targetID, this.videoWidth, this.videoHeight, "9.0.0", false, flashvars, params, attributes);
    }
});

var YouTubePlayerControl = {
    init: function () {
        var moreInfoContent = '<div class="addthis_toolbox addthis_default_style addthis_widget_inline"><p><a class="addthis_button_compact at300m" target="_blank" href="http://www.addthis.com/bookmark.php?v=250&amp;username=swedishseattle">Share this page</a></p></div><div class="ytChannel"><a href="http://www.youtube.com/user/swedishseattle" target="_blank">Visit the Swedish Channel on </a></div><div class="atclear"></div>';

        this.elTargets = $$("div.youtube-player");
        this._len = this.elTargets.size();
        this.ytPlayers = [];
        var add = [];
        if (this._len > 0) {
            for (var i = 0; i < this._len; i++) {
                add[i] = document.createElement('div');
                add[i].className = 'moreInfo';
                add[i].innerHTML = moreInfoContent;

                this.elTargets[i].parentNode.insertBefore(add[i], this.elTargets[i].nextSibling);
                this.ytPlayers[i] = new YouTubePlayer(this.elTargets[i]);
            }
        }

    }
};

$(document).observe('dom:loaded', function () {
	YouTubePlayerControl.init();
});


// Video Event Tracking API
var VideoEventTracking = {

	// Track Video Play
	Play: function (videoId, videoTitle) {
		//console.log('VideoEventTracking:Play');
		//console.log(videoTitle);
		var args = {
			action: 'Play',
			label: videoTitle + ', ' + videoId
		}
		VideoEventTracking._trackEvent(args);
	},

	// Track Video Complete
	Complete: function (videoId, videoTitle) {
		//console.log('VideoEventTracking:Complete');
		//console.log(videoTitle);
		var args = {
			action: 'Complete',
			label: videoTitle + ', ' + videoId
		}
		VideoEventTracking._trackEvent(args);
	},

	// Private
	_trackEvent: function (oArgs) {
		var _category = oArgs.category || 'Video'; // RIA object
		var _action = oArgs.action || ''; 		// what is happening
		var _label = oArgs.label || ''; 		// what is being viewed

		try {
			_gaq.push(['_trackEvent', _category, _action, _label]);
		}
		catch (e) { }
	}
};

