var bodyW = 950;
var bodyBorder = 2;
	
var heightHeader = 72; // header height (72)
var heightNavbar = 19; // navigation bar height
var heightFooter = 33; // footer height
var noBorderWidth = 1000; // min width to show with paddings aside
var borderWidthMax = 50; // max width of a border
	
var minW = 800; // width when embedded into page
var minH = 400; // height when embedded into page
var maxW = 1600; // maximum width if screen resolution is too high
var maxH = 800; // max height
	
// small scale
var smallW = minW;
var smallH = minH;
var smallX = bodyBorder;
var smallY = heightHeader + heightNavbar;
	
// large scale
var largeW;
var largeH;
var largeX;
var largeY = heightHeader;
	
// current scale
var swfW;
var swfH;
var swfX;
var swfY;
	
var browserW = 950;
var browserH = 600;
	
var isLarge = false;
var zoomLevel	 = 0;
	
function expandFlash_curtain() {
	if (!jQuery('#expandFlash_curtain').length)
		jQuery('body').prepend(
			jQuery(document.createElement('div'))
				.click(shrinkMediaPlayer)
				.attr('id','expandFlash_curtain')
				.hide()
				.css({
					position:'absolute',
					top:'0',
					left:'0',
					width:'100%',
					height:jQuery('html').height()+'px',
					zIndex:'1000'
					})
				);
};
	
// getting full height of page
function expandFlash_getHeight() { 
	if (!jQuery('#expandFlash_endOfPage').length)
		jQuery('body').append(
			jQuery(document.createElement('div'))
				.attr('id','expandFlash_endOfPage')
				.css({height:'1px',marginTop:'-1px',fontSize:'0px'})
			);
	return jQuery('#expandFlash_endOfPage')[0].offsetTop+1;
};
	
jQuery('body').ready(expandFlash_ready); // on window HTML load
function expandFlash_ready() {
	// adding the curtain, hidden by default
	expandFlash_curtain();
		
	// calculated variables etc
	elMain = jQuery('#expandFlash_main').css('z-index','1001');
	elCurtain = jQuery('#expandFlash_curtain');
	elPlaceholder = jQuery('#expandFlash_placeholder');
	isIE = jQuery.browser.msie;
	
	// placeholder div holds the page
	elPlaceholder.width(minW);
	
	jQuery(window).resize(onBrowserResize);
	
	onBrowserResize();
	// a dirty fix to take into account the content size change:
	// swf was sized
	// the size of page changed
	// maybe crollbars were added
	// maybe broser size changed
	onBrowserResize();
};

function expandFlash_scaleChange() {
	expandFlash_render();
}
	
function onBrowserResize() {
	browserW = jQuery(window).width();
	browserH = jQuery(window).height();
	
	calculateLarge();
	expandFlash_render();
	
	// adjusting curtain to cover all the screen
	elCurtain.height(expandFlash_getHeight());
}
	
function calculateLarge() {
	switch(true) {
		case (browserW <= bodyW):
			largeW = bodyW;
			break;
		case (browserW <= noBorderWidth):
			largeW = browserW;
			break;
		case (browserW >= maxW + borderWidthMax*2):
			largeW = maxW;
			break;
		default:
			var maxDiff = (maxW + borderWidthMax*2) - noBorderWidth;
			var diff = browserW - noBorderWidth;
			var borderSum = diff/maxDiff * (borderWidthMax*2);
			largeW = browserW - borderSum;
			break;
	}
	largeX = (bodyW - largeW) /2;
	
	switch(true) {
		case (browserH <= largeY + heightFooter + minH):
			largeH = minH;
			break;
		case (browserH >= largeY + heightFooter + maxH):
			largeH = maxH;
			break;
		default:
			largeH = browserH - (largeY + heightFooter);
			break;
	}
}

function setZoomScale(zoom) {
	browserW = jQuery(window).width();
	browserH = jQuery(window).height();
	zoomLevel = zoom;
	expandFlash_render();
	getFlashMovie("mediaPlayerContent").setDimensions(swfW, swfH);
	elCurtain.height(expandFlash_getHeight());
}

function expandFlash_render() {
	swfW = Math.round(smallW + zoomLevel * (largeW - smallW));
	swfH = Math.round(smallH + zoomLevel * (largeH - smallH));
	swfX = Math.floor(smallX + zoomLevel * (largeX - smallX) + (browserW - bodyW)/2);
	swfY = Math.ceil(smallY + zoomLevel * (largeY - smallY));
	
	// resizing
	elMain.css({
		top:swfY + 'px',
		left:swfX + 'px',
		width:swfW + 'px',
		height:swfH + 'px'
		});

	// adjusting placeholder height
	elPlaceholder.height(swfY + swfH - heightNavbar - heightHeader);
}

function getFlashMovie(movieName) {
	if (navigator.appName.indexOf("Microsoft") != -1) {
		return window[movieName];
	} else {
		return document[movieName];
	}
}

	function expandMediaPlayer() {
	//	alert("expandMediaPlayer");

		getFlashMovie("mediaPlayerContent").expand();

		// hiding curtain. Opacity bug in IE
		isIE ? elCurtain.show() : elCurtain.fadeIn('slow');
	}

function shrinkMediaPlayer() {	
//	alert("shrinkMediaPlayer");
	
	getFlashMovie("mediaPlayerContent").shrink();
	
	// unveiling curtain. Fixing opacity bug in IE
	setTimeout("isIE ? elCurtain.hide() : elCurtain.fadeOut('slow')", 200);
}
