var videoList = {};
var vendiniPlayer, openedPlayerID, usingFlash = false;
var ua = navigator.userAgent;
var portables = new Array('Android', 'iPad', 'iPod', 'iPhone');
var isPortable = false;
var jsStaffReady = false;
var countTimes = 0;
for (var i=0; i<portables.length; i++) {
	if (ua.indexOf(portables[i])!=-1) {
		isPortable = true;
		break;		
	}	
}
VideoJS.DOMReady(function(){
	
	var playBackOrder = isPortable || ua.indexOf('Mac')!= -1 ? ["html5", "flash"] : ["flash", "html5"];
	var playerIDs = new Array();    
	for(var playerID in videoList) {	
		if (jQuery.browser.msie) {
			if (parseInt(jQuery.browser.version)<9) {		
				usingFlash = true;	
			} else {
				vendiniPlayer = VideoJS.setup('vendiniVideo_'+playerID, { playerFallbackOrder: ["html5", "flash"] });
				usingFlash = false;			
			}
		} else {
			vendiniPlayer = VideoJS.setup('vendiniVideo_'+playerID, { playerFallbackOrder: playBackOrder });
			usingFlash = isPortable ? false : vendiniPlayer.element.toString().indexOf('VideoElement') == -1;	
		}
		videoList[playerID].player = vendiniPlayer;
	} 
	jsStaffReady = true;
}); 

function playerReady(playerID) {
	videoList[playerID].playerReady = true;
	if (videoList[playerID].playVideo) {
		videoCmd(playerID, 'play');		
	}
}

function getVendiniPlayer(movieName) {
    return navigator.appName.indexOf("Microsoft") != -1 ? window[movieName] : document[movieName];
}
function videoCmd(playerID, cmd, param) {
	try{		
		if (typeof param == 'undefined') param = '';
		if (usingFlash) {		
				getVendiniPlayer('vendiniFP_'+playerID).controlMovie(cmd, param);		
		}
		else {
			switch(cmd) {
				case 'stop':
					videoList[playerID].player.pause();	
				break;
				case 'play':
					videoList[playerID].player.play();	
				break;		
			}		
		}
	}catch(e){}
}

function isAbleToPlay(playerID) {
	return (typeof getVendiniPlayer('vendiniFP_'+playerID).controlMovie == 'function') ||
		 		 (typeof videoList[playerID].player.play == 'function');	
}

function showPopinVideo(playerID){
	if (!jsStaffReady) {
		countTimes++
		window.setTimeout(function(){showPopinVideo(playerID)}, 200);	
		return false;
	}
	if (!isAbleToPlay(playerID)) {
		if (videoList[playerID].fallbackLink) {
			window.location = videoList[playerID].fallbackLink;
			return false;			
		}
		return true;	
	}
	if (isPortable && ua.indexOf('iPad')==-1) {
		if (videoList[playerID].videoForPortables) {			
			window.location = videoList[playerID].videoForPortables;
			return false;
		}
		return true;
	}
	if (openedPlayerID) {
		hideVideo(openedPlayerID);		
	}
	videoList[playerID].playVideo = true;	
	showLock();
	jQuery('#'+playerID+'Holder').center();
  if (!usingFlash || videoList[playerID].playerReady) {
  	videoCmd(playerID, 'play');	
  } 
  //workaround for iOS, Android
  if (isPortable) {
 		var pageHeight = jQuery(document).height();
		jQuery('.blockOverlay').css('height', pageHeight+'px');
	}
	else {
		jQuery(window).bind('resize', relocatePopin);	
	}
	openedPlayerID = playerID;	
	return false;
}
function hideVideo(playerID) {	
	jQuery(window).unbind('resize', relocatePopin);
	videoList[playerID].playVideo = false;
	jQuery('#'+playerID+'Holder').css("left", "-1000px");
	jQuery.unblockUI();
	videoCmd(playerID, 'stop');
} 
function showLock() {
	jQuery.blockUI.defaults.bindEvents = false; 
	jQuery.blockUI.defaults.css.cursor = 'default'; 
	jQuery.blockUI.defaults.overlayCSS.cursor = 'default';
	jQuery.blockUI({message: null});
}
jQuery.fn.center = function () {
	this.css("position","absolute");
	var top = (jQuery(window).height() - this.height()) / 2+jQuery(window).scrollTop();	
	top = Math.max(0, top);
	var left = (jQuery(window).width() - this.width()) / 2+jQuery(window).scrollLeft();
	left = Math.max(0, left); 
	this.css("top", top + "px");
	this.css("left", left + "px");
	return this;
}
function relocatePopin(e){
	jQuery('#'+openedPlayerID+'Holder').center();	
}
