"use strict"; /*global jQuery, window, console */
/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: true */
(function ($) {
	
	var tag = /vcmstag-[0-9]+/.exec(document.location.hash.replace(/#/, '')) || '00068', 
	    version = 2;
	
	if (typeof window.vcmsfacade === 'undefined') {
		window.vcmsfacade = {};
	}
	
    $.fn.vcmsfacade = function (options) {
        var callback, settings = $.extend($.fn.vcmsfacade.defaults, options || {});
        
        callback = function () { };
        $("head").append('<link rel="stylesheet" type="text/css" href="' + settings.location + 'css/vcms-min.css" />');
        $.getScript(settings.location + 'js/vcms-tmp.js', callback);
        return this;
    };

    $.fn.vcmsfacade.defaults = $.extend({
        'tag': tag,
        'location': 'http://w.news-static.com/v/vcms-' + tag + '/', //'http://w.news-static.com/v/confidential-20100809-02/',
        'fatwireversion': parseInt((document.location.hash.replace(/#/, '')).replace(/vcmsversion-/, ''), 10) || version,
        'callback': function () {}
    }, window.vcmsfacade.overrides || {});

}(jQuery));ndm.vcms = ndm.vcms || {};

ndm.vcms.traktrController = ndm.vcms.traktrController || {
    lastEvent: "",
    flashUnboundEventList: [],
    html5UnboundEventList: [],
    //	Passthough event listeners
    addEventListener: function (name, func) {

        //	We support these events
        var eventMap = {
            "OnMediaStart": "loadeddata",
            "OnMediaPlaying": "timeupdate",
            "OnMediaEnd": "ended",
            "OnMediaUnpause": "play",
            "OnMediaPause": "pause",
            "OnSetVolume": "volumechange"
        };

        //	This binds a TP event for the HTML5 video player; ignores the extra timeupdate function we always get after a pause event.
        var bindTPEvent = function (eventName, eventFunc) {
            return function () {
                //	Ignore the timeupdate function straight after pause!
                var runEvent = !(eventName == 'timeupdate' && tpController.lastEvent == 'pause');
                if (runEvent) {
                    eventFunc(vPlayer.currentTpObj());
                }
                tpController.lastEvent = eventName;
            };
        };

        //	If we support the event, map it so that we return the current video tp mock object.
        //	If tpController is available, attach straight away.
        //	TODO: Update this with actualHTML5 video player name, and binding function(s) once it is setup...
        if (window.vPlayer && typeof window.vPlayer.addEvent === "function") {
            if (eventMap.hasOwnProperty(name)) {
                window.vPlayer.addEvent(eventMap[name], bindTPEvent(eventMap[name], func));
            }
        } else {
            ndm.vcms.traktrController.html5UnboundEventList.push({
                name: name,
                func: func
            });
        }

        //	If tpController is available, attach straight away.
        if (window.tpController && typeof window.tpController.addEventListener === "function") {
            window.tpController.addEventListener(name, func);
        } else {
            //	Save for later
            ndm.vcms.traktrController.flashUnboundEventList.push({
                name: name,
                func: func
            });
        }

    },
    attachHTML5Events: function () {
        for (var i = 0; i < ndm.vcms.traktrController.html5UnboundEventList.length; i += 1) {
            if (eventMap.hasOwnProperty(name)) {
                //	TODO: Update this with HTML5 video player name, and binding function(s).
                vPlayer.addEvent(eventMap[ndm.vcms.traktrController.html5UnboundEventList[i].name], bindTPEvent(ndm.vcms.traktrController.html5UnboundEventList[i].func));
            }

        }
    },
    attachFlashEvents: function () {
        for (var i = 0; i < ndm.vcms.traktrController.flashUnboundEventList.length; i += 1) {
            window.tpController.addEventListener(ndm.vcms.traktrController.flashUnboundEventList[i].name, ndm.vcms.traktrController.flashUnboundEventList[i].func);
        }
    }
};"use strict"; /*global vcmsfacade document, tanto, ndm, trak, window */
/*jslint bitwise: true, eqeqeq: true, nomen: true, onevar: true, regexp: true, undef: true, white: true */
(function (jQuery) {

    // just incase :-)
    var $ = jQuery,
        init = {};

/*
	 Version 1 is a reproduction of the old init code, but placed in a method
	*/
    init.version1 = function () {
        tanto.namespace("ndm.media.loadvcms");

        ndm.media.loadvcms.articleplayer = function (id) {
            if (window.trak) {
                trak("vcmsplayer");
            }

            $('#vcms-' + id).addClass('vcmsversion-2');

            if (!ndm.media.initArticlePlayer) {
                if (ndm.media.vcmsplayerids) {
                    ndm.media.vcmsplayerids.push(id);
                } else {
                    ndm.media.vcmsplayerids = [id];
                }
                tanto.load("http://static.video.news.com.au/article/articleplayer.js", true);
            } else {
                ndm.media.initArticlePlayer(id);
            }
        };
    };


/*
     Version 2 init using new plugin and specific tag 
     */
    init.version2 = function () {
        $.fn.vcmsfacade();
    };

    // check which version to fire up...	
    if ($.fn.vcmsfacade.defaults.fatwireversion === 1) {
        init.version1();
    } else {
        if (ndm && ndm.media && ndm.media.loadvcms) {
            //ndm.media.loadvcms.articleplayer = function (id) {};
        }
        $(function () {
            // ... then... lets see whether we should even bother...
            if ($('div.vcms').length) {
                init.version2();
            }
        });
    }

}(jQuery));
