var siteRoot = '';

$(document).ready(function() {
	
	proceedPages();
	
	proceedFlashObject();
	proceedVideoPlayer();
						   
});




function proceedPages(){

	
	$('.clearField').clearField();
	
	/* Proceed bottom */
	var href;
	$(".bottom div a").each( function() {
		
		href = 'what_is.cfm?$video='+$(this).attr('href');
		
		if($('p',this).html() != null){
			href += '&$title='+encodeURIComponent($('p',this).html());
		}
		
		$(this).attr('href', href);
	});
	
	
	$(".bottom div a").filter(function (index) {
			return $(this);
		}).hover(function(){
			$(this).parent().addClass("hover");
		},function(){
			$(this).parent().removeClass("hover");
		
    });


	var src;
	var size;
	var flashVars;
	
	$(".videoPlayerBox").each( function() {
		
		src = $(this).attr('href');
		size = $(this).attr('rel').split(' ');
		
		flashVars = '$video=' + src + 
					'&$width=' + size[0] +
					'&$height=' + size[1];
		
		$(this).attr('href', '_flashVideoPlayerBox.html?'+flashVars);
		$(this).fancybox({
			'width'				: Number(size[0]),
			'height'			: Number(size[1]),
			'autoScale'			: false,
			'transitionIn'		: 'none',
			'transitionOut'		: 'none',
			'type'				: 'iframe',
			'showNavArrows'		: false,
			'titlePosition'		: 'inside'
		});
		
		
	});

}


var prevId=0;
function playVideo(el){
	
	
	var link = $('a', el.parentNode).attr('href');

	
	var code = '';
	code += '<div class="videoPlayer" style="width:575px; height:359px;">';
	code += '	<object>';
	code += '		<param name="$video" value="'+link+'" />';
	code += '		<param name="$thumbnail" value="vpe_hero_what_is.jpg" />';
	code += '		<param name="$controllerPosition" value="outside" />';
	code += '		<param name="$autoStart" value="true" />';
	code += '		<param name="$replayButtonAlign" value="MC" />';
	code += '		<param name="$replayButtonAlignPadding" value="0 20" />';
	code += '		<param name="$onComplete" value="assets_video" />';
	code += '	</object>';
	code += '</div><!-- EOF videoPlayer -->';

	$("#start_tour").html(code);
	proceedVideoPlayer();
	
	$('#video_text').html("");

	if ( prevId ) {
		$('#' + prevId).removeClass().find('a').show();
		if ( prevId == 'video-trainers' ) {
			$('.excellence').fadeIn();
			$('.bottom').fadeIn();
			$('.bottom-footer').fadeIn();
			$('#company-list').slideUp();
		}
	}
	el = $(el.parentNode);
	var id = el.attr('id');
	prevId = id;
	el.addClass(id);
	el.find('a').hide();
	if ( id == 'video-trainers' ){
		$('.excellence').fadeOut();
		$('.bottom').fadeOut();
		$('.bottom-footer').fadeOut();
		$('#company-list').slideDown();
	}
	return false;
}


function playVideoAuto(el){
	
	
	var link = $('a', el).attr('href');

	
	var code = '';
	code += '<div class="videoPlayer" style="width:575px; height:359px;">';
	code += '	<object>';
	code += '		<param name="$video" value="'+link+'" />';
	code += '		<param name="$thumbnail" value="vpe_hero_what_is.jpg" />';
	code += '		<param name="$controllerPosition" value="outside" />';
	code += '		<param name="$autoStart" value="true" />';
	code += '		<param name="$replayButtonAlign" value="MC" />';
	code += '		<param name="$replayButtonAlignPadding" value="0 20" />';
	code += '		<param name="$onComplete" value="assets_video" />';
	code += '	</object>';
	code += '</div><!-- EOF videoPlayer -->';

	$("#start_tour").html(code);
	
	$('#video_text').html("");
	
	el = $(el);
	var id = el.attr('id');
	prevId = id;
	el.addClass(id);
	el.find('a').hide();
	if ( id == 'video-trainers' ){
		$('.excellence').fadeOut();
		$('.bottom').fadeOut();
		$('.bottom-footer').fadeOut();
		$('#company-list').slideDown();
	}
	return false;
}


function playVideoAtPage(el, w, h){
	
	var link = el;

	var code = '';
	
	if(!w){
		w = 575;
	}
	
	if(!h){
		h = 359;
	}
	
	if($.string(link.toLowerCase()).endsWith('.swf')){
		code += '<div class="flashObject" style="width:'+w+'px; height:'+h+'px;">';
		code += '	<object>';
		code += '		<param name="$src" value="'+link+'" />';
		code += '	</object>';
		code += '</div><!-- EOF flashObject -->';
	}else{
		code += '<div class="videoPlayer" style="width:'+w+'px; height:'+h+'px;">';
		code += '	<object>';
		code += '		<param name="$video" value="'+link+'" />';
		code += '		<param name="$thumbnail" value="vpe_hero_what_is.jpg" />';
		code += '		<param name="$controllerPosition" value="outside" />';
		code += '		<param name="$autoStart" value="true" />';
		code += '		<param name="$replayButtonAlign" value="MC" />';
		code += '		<param name="$replayButtonAlignPadding" value="0 20" />';
		code += '		<param name="$onComplete" value="assets_video" />';
		code += '	</object>';
		code += '</div><!-- EOF videoPlayer -->';
	}


	$("#start_tour").html(code);
	
	
}






function proceedVideoPlayer(){
		$(".videoPlayer").each( function() {


		var $params = {};
	
		$("object param", this).each( function() {
			_name = $(this).attr("name");
			_val = $(this).attr("value");
			$params[_name] = _val;
		});


		
		var $video = $("object param[name='$video']", this).attr("value");
		var $assets = $("object param[name='$assets']", this).attr("value");
		var $thumbnail = $("object param[name='$thumbnail']", this).attr("value");
		var $externalPathToFiles = assignValue($("object param[name='$externalPathToFiles']", this).attr("value"), true);
		var $maintainAspect = assignValue($("object param[name='$maintainAspect']", this).attr("value"), "none");
		var $autoSize = assignValue($("object param[name='$autoSize']", this).attr("value"), false);
		var $autoStart = $("object param[name='$autoStart']", this).attr("value");
		var $onComplete = $("object param[name='$onComplete']", this).attr("value");
		var $autoHide = $("object param[name='$autoHide']", this).attr("value");
		
		var $videoPlayerAlign = assignValue($("object param[name='$videoPlayerAlign']", this).attr("value"), "TL");
		
		var $replayButtonAlign = $("object param[name='$replayButtonAlign']", this).attr("value");
		var $replayButtonAlignPadding = $("object param[name='$replayButtonAlignPadding']", this).attr("value");
		var $replayButtonSnapToVideo = $("object param[name='$replayButtonSnapToVideo']", this).attr("value");
		var $replayButtonColor = $("object param[name='$replayButtonColor']", this).attr("value");
		var $replayButtonAlpha = $("object param[name='$replayButtonAlpha']", this).attr("value");
		var $replayButtonTheme = assignValue($("object param[name='$replayButtonTheme']", this).attr("value"), false);
		if($replayButtonTheme){
			$replayButtonColor = '#e28a0b';
			$replayButtonAlpha = '100';
		}
		
		var $playButtonAlign = $("object param[name='$playButtonAlign']", this).attr("value");
		var $playButtonAlignPadding = $("object param[name='$playButtonAlignPadding']", this).attr("value");
		var $playButtonColor = $("object param[name='$playButtonColor']", this).attr("value");
		var $playButtonAlpha = $("object param[name='$playButtonAlpha']", this).attr("value");
		var $playButtonTheme = assignValue($("object param[name='$playButtonTheme']", this).attr("value"), false);
		if($playButtonTheme){
			$playButtonColor = '#e28a0b';
			$playButtonAlpha = '100';
		}
		
		
		var $controllerPosition = $("object param[name='$controllerPosition']", this).attr("value");
		var $controllerRoundedCorners = assignValue($("object param[name='$controllerRoundedCorners']", this).attr("value"), false);
		var $controllerRePosition = assignValue($("object param[name='$controllerRePosition']", this).attr("value"), false);
		var $controllerPositionToStage = assignValue($("object param[name='$controllerPositionToStage']", this).attr("value"), false);
		var $controllerPadding = $("object param[name='$controllerPadding']", this).attr("value");
		


		var $buffer_backgroundAlpha = assignValue($("object param[name='$buffer_backgroundAlpha']", this).attr("value"), "");
		var $buffer_backgroundHighlight = assignValue($("object param[name='$buffer_backgroundHighlight']", this).attr("value"), "");
		var $buffer_backgroundShading = assignValue($("object param[name='$buffer_backgroundShading']", this).attr("value"), "");
		var $buffer_indicatorHighlight = assignValue($("object param[name='$buffer_indicatorHighlight']", this).attr("value"), "");
		var $buffer_indicatorShading = assignValue($("object param[name='$buffer_indicatorShading']", this).attr("value"), "");
		var $buffer_textColor = assignValue($("object param[name='$buffer_textColor']", this).attr("value"), "");
		
		var $controller_backgroundAlpha = assignValue($("object param[name='$controller_backgroundAlpha']", this).attr("value"), "");
		var $controller_backgroundHighlight = assignValue($("object param[name='$controller_backgroundHighlight']", this).attr("value"), "");
		var $controller_backgroundShading = assignValue($("object param[name='$controller_backgroundShading']", this).attr("value"), "");
		var $controller_buttonHighlight = assignValue($("object param[name='$controller_buttonHighlight']", this).attr("value"), "");
		var $controller_buttonShading = assignValue($("object param[name='$controller_buttonShading']", this).attr("value"), "");
		var $controller_indicatorHighlight = assignValue($("object param[name='$controller_indicatorHighlight']", this).attr("value"), "");
		var $controller_indicatorShading = assignValue($("object param[name='$controller_indicatorShading']", this).attr("value"), "");
		
				
		
		
		var $btnClose = $("object param[name='$btnClose']", this).attr("value");
		
		var $bg = $("object param[name='$bg']", this).attr("value");
		if($bg == 'default'){
			$bg = '#242424';
		}
				
		
		
		if($controllerPosition == "outside" && $controllerRePosition){
			$(this).css("height",$(this).height() + 36);
			
		}
		
		var twidth = $(this).width();
		var theight = $(this).height();


		
		var $flashvars = {
				$video : $video,
				$assets : $assets,
				$externalPathToFiles : $externalPathToFiles,
				$thumbnail : $thumbnail,
				$autoStart : $autoStart,
				$onComplete : $onComplete,
				$maintainAspect : $maintainAspect,
				$autoSize : $autoSize,
				$autoHide : $autoHide,
				
				$videoPlayerAlign : $videoPlayerAlign,
				
				$replayButtonAlign : $replayButtonAlign,
				$replayButtonAlignPadding : $replayButtonAlignPadding,
				$replayButtonColor : $replayButtonColor,
				$replayButtonAlpha : $replayButtonAlpha,
				$replayButtonSnapToVideo : $replayButtonSnapToVideo,
				$replayButtonColor : $replayButtonColor,
				
				$playButtonAlign : $playButtonAlign,
				$playButtonAlignPadding : $playButtonAlignPadding,
				$playButtonColor : $playButtonColor,
				$playButtonAlpha : $playButtonAlpha,
				$playButtonColor : $playButtonColor,
				
				$controllerPosition : $controllerPosition,
				$controllerRePosition : $controllerRePosition,
				$controllerRoundedCorners : $controllerRoundedCorners,
				$controllerPositionToStage : $controllerPositionToStage,
				$controllerPadding : $controllerPadding,
				
				
				$buffer_backgroundAlpha : $buffer_backgroundAlpha,
				$buffer_backgroundHighlight : $buffer_backgroundHighlight,
				$buffer_backgroundShading : $buffer_backgroundShading,
				$buffer_indicatorHighlight : $buffer_indicatorHighlight,
				$buffer_indicatorShading : $buffer_indicatorShading,
				$buffer_textColor : $buffer_textColor,
				$controller_backgroundAlpha : $controller_backgroundAlpha,
				$controller_backgroundHighlight : $controller_backgroundHighlight,
				$controller_backgroundShading : $controller_backgroundShading,
				$controller_buttonHighlight : $controller_buttonHighlight,
				$controller_buttonShading : $controller_buttonShading,
				$controller_indicatorHighlight : $controller_indicatorHighlight,
				$controller_indicatorShading : $controller_indicatorShading,
				
				
				
				$bg : $bg,
				$btnClose : $btnClose
		};
		
		$params = $.extend($params, $flashvars);
		
		
		//$externalPathToFiles
		
		//$(this).html('<div class="FPO">&nbsp;</div>');
		$(this).html('<div class="fpo_video_area"></div>');
		
		$(".fpo_video_area:first", this).flash({
				swf: siteRoot + ("assets/swf/VideoPlayerExtended.swf"),
				width: twidth, // Recommended
				height: theight, // Recommended
				hasVersion: 9,
				expressInstall: 'assets/swf/expressInstall.swf',
			
		flashvars: $params,
				params: {
				base : ".",
				wmode : "transparent"
			}
		
		})
		
		
		
		
		//alert($(this).html());
	});
}



function proceedFlashObject(){
	var _name;
	var _val;
	
	$(".flashObject").each( function() {
		var $src = $("object param[name='$src']", this).attr("value");
		
		var twidth = $(this).width();
		var theight = $(this).height();
		
		var $params = {};
		
		$("object param", this).each( function() {
			_name = $(this).attr("name");
			_val = $(this).attr("value");
			$params[_name] = _val;
		});
		
		if($params.$selector != undefined){
			$params.$code = prepareHTML(normalizeHTML($($params.$selector, this).html()));
		}
		
		if($params.$codeTagsReplace != undefined){
			$params.$code = replaceTags($params.$code, $params.$codeTagsReplace);
		}
		
		if($params.$version == null){
			$params.$version = 9;
		}
		
		
		
		//if(is_ie){
			//if(is_ie8up){
			//}else{
				$params.$code = encodeURIComponent($params.$code);
			//}
		//}
		
		//alert($params.$code);
		
		
		$(this).html('<div class="fpo_flash_area"></div>');
		
		//$(".FPO", this).html($params.$code);
		
		
		$(".fpo_flash_area:first", this).flash({
				swf: $src,
				width: twidth, // Recommended
				height: theight, // Recommended
				hasVersion: $params.$version,
				expressInstall: 'assets/swf/expressInstall.swf',
			
				flashvars: $params,
			
				params: {
					base : ".",
					wmode : "transparent"
				}
		
		})
		
		
	});
}




function prepareHTML(txta){
	txta = txta.replace(/&nbsp;/g,'{{{nbsp}}}');
	txta = txta.replace(/&amp;/g,'&');
	txta = txta.replace(/&/g,'{{{amp}}}');
	
	
	return txta;
}

function replaceTags(txta, tags){
	var tagsArr = tags.split(',');
	for(var i=0;i<tagsArr.length;i++){
		switch(tagsArr[i]){
			case "br":
				txta = txta.replace(/<br>/g,'[[[br /]]]');
				txta = txta.replace(/<br \/>/g,'[[[br /]]]');
				break;
		}
	}
	
	return txta;
}

function prepareColor(col){
	
	if(col.split('rgb').length > 1){
	//if(is_ff || is_chrome){
		var t1 = col.split('(');
		var t2 = t1[1].split(')');
		var t3 = t2[0].split(', ');
		
		col = '#'+RGBtoHex(t3[0],t3[1],t3[2]);
	}
	return col;
}

function RGBtoHex(R,G,B) {return toHex(R)+toHex(G)+toHex(B)}

function toHex(N) {
 if (N==null) return "00";
 N=parseInt(N); if (N==0 || isNaN(N)) return "00";
 N=Math.max(0,N); N=Math.min(N,255); N=Math.round(N);
 return "0123456789ABCDEF".charAt((N-N%16)/16)
      + "0123456789ABCDEF".charAt(N%16);
}

function d2h(d) {return d.toString(16);} // decimal to hex
function h2d(h) {return parseInt(h,16);} // hex to decimal



function normalizeHTML(txta){

	var regExp = /<([^>]+)/g;
		
	txta = txta.replace(regExp,
	function (p1){
		var regExp2 = /(\s\w+)=([^ \f\n\r\t\v"]+)/g;
		return p1.replace(regExp2, "$1=\'$2\'");
	});
	txta = txta.replace(/<SPAN/g,'<span');
	txta = txta.replace(/<\/SPAN/g,'</span');
	txta = txta.replace(/<BR/g,'<br');
	txta = txta.replace(/<br \//g,'<br /');
	txta = txta.replace(/<br/g,'<br /');
	txta = txta.replace(/<UL/g,'<ul');
	txta = txta.replace(/<\/UL/g,'</ul');
	txta = txta.replace(/<LI/g,'<li');
	txta = txta.replace(/<\/LI/g,'</li');
	txta = txta.replace(/<A/g,'<a');
	txta = txta.replace(/<\/A/g,'</a');
	
	
	txta = txta.replace(/rel='assets'/g,'rel="assets"');
	
	
	
	var regExp2 = /style="([^">]+)/g;
	txta = txta.replace(regExp2,function (p1,p2){return p1.toLowerCase()});
	
	if(is_ie5up){
		var regExp2b = /style="([^"]+)/g;
		txta = txta.replace(regExp2b, 'style="$1;');
	}
	
	
	var regExp3 = /<img([^>]+)/g;
	txta = txta.replace(regExp3, '<img$1 /');
	
	var regExp4 = /<input([^>]+)/g;
	txta = txta.replace(regExp4, '<input $1 /');
	
	if(is_ie){
	// IE only
		if(is_ie8up){
			
		}else{
			var reg = /\<li\>(.+)[^(\<\/li\>)]\<li\>/gim;   
			while(txta.search(reg)!=(-1)){  
				txta = txta.replace(reg,'<li>$1<\/li><li>');  
			}
		}
	}


	
	return txta;

	
}



function assignValue(val, _false){
	if(val == '' || val == ' ' || val == undefined){
		return _false;	
	}
	
	return val;
}


function setTopMenuActive(el){
	if (el != undefined && el != ''){
		$(".top-menu ul #"+el+' a').addClass("active");
	}
}

function hideObject(el){
	if (el != undefined && el != ''){
		$(el).addClass("hidden");
	}
}

