/*
 * Superfish menu initialization 
 */

if (parent.frames.length > 0) top.location.replace(document.location);
jQuery(document).ready(function(){ 
    jQuery("ul.sf-menu").superfish(); 
});  


/*
 * Dynamic external script loading on window.load
 * @param location Path to JS file
 * @param callback Optional function called once the script has finished loading
 */
 
function loadScript(location, callback) {
    jQuery(window).load(function(){
        var domscript = document.createElement("script");
        domscript.src = location;
        domscript.type = "text/javascript";
        domscript.onloadDone = false;

        if (callback) {
            domscript.onload = function() {
                domscript.onloadDone = true;                
                callback();
            };
            domscript.onreadystatechange = function() {
                if ((domscript.readyState === "complete" || domscript.readyState === "loaded") && !domscript.onloadDone) {
                    domscript.onloadDone = true;                    
                    callback();
                }
            };
        }
        document.getElementsByTagName("head")[0].appendChild(domscript);        
    });
}


/*
 * Google Analytics Event Tracking for Videos
 * @param gaVar  Google Analytics tracking object
 */

function videoTracking(gaVar) {
    if (typeof flowplayer == 'function' && $f()) {
        var player = $f();
        
        // Track page load as event
        gaVar._trackEvent('Videos', 'Page Load', player.getClip(0).url);
        
        // Track video play
        player.onCuepoint(250, function() {
            if (player.getStatus().muted == false) {
                gaVar._trackEvent('Videos', 'Play', this.getClip().url);
            }
        });
        
        // Track pause click
        player.onPause(function() {
            gaVar._trackEvent('Videos', 'Pause', this.getClip().url, Math.round(this.getTime()));
        });
        
        // Track video finished
        player.onFinish(function() {
            gaVar._trackEvent('Videos', 'Finished', this.getClip().url);
        });
        
        // Track event where buffer empties and video pauses while it refills
        player.onBufferEmpty(function() {
            gaVar._trackEvent('Videos', 'Buffer Empty', this.getClip().url, Math.round(this.getTime()));        
        });
        
        // Track action button click, if one if present
        if (typeof ab == 'object') {
            jQuery(ab).click(function() {
                gaVar._trackEvent('Videos', 'Action Button', player.getClip(0).url);
            });        
        }
        
        // Track 'Play Again' click 
        if (typeof pa == 'object') {
            jQuery(pa).click(function() {
                gaVar._trackEvent('Videos', 'Play Again', player.getClip(0).url);
            });        
        }       
    }
}

/**
 * Swap in the livesupport image onload. We make a hidden iframe in
 * which we load the livesupport image then swap the actual livesupport
 * image in for the temporary one.
 */
$(window).load(
    function() {
        try {
            var iframe = document.createElement('IFRAME');
            iframe.src = '/load-livesupport.htm';
            iframe.name = 'livesupport_frame';
            iframe.id = 'livesupport_frame';
            iframe.style.display = 'none';
            document.body.appendChild(iframe);
        } catch(e) { }
    }
);
