//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.com
// Edit for Firefox by pHaez
//
function getPageSize(){

	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;

	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth;
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = xScroll;
	} else {
		pageWidth = windowWidth;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}


function resize_layer()
{
	if (document.getElementById)
	{
		var page_size = getPageSize();
		var layer = document.getElementById('disablelayer');

		layer.style.width = page_size[0] + 'px';
		layer.style.height = page_size[1] + 'px';
	}
}


function display_loading_screen()
{
	if (document.getElementById)
	{
		var layer = document.getElementById('disablelayer');
		var loading_em = document.getElementById('loading');

		var loadingAnim = new SWFObject('/assets/general/loading.swf', 'loading_swf', '100%', '100%', '8');
		loadingAnim.addParam('wmode', 'transparent');
		loadingAnim.addParam('scale', 'noscale');
		loadingAnim.write('loading');

		loading_em.style.display = 'block';
		layer.style.display = 'block';
	}
}


function media_preview(id)
{
	if (document.getElementById)
	{
		var layer = document.getElementById('disablelayer');
		var loading_em = document.getElementById('loading');
		var page_size = getPageSize();

		layer.style.width = page_size[0] + 'px';
		layer.style.height = page_size[1] + 'px';

		var xmlHttp = null;

		var loadingAnim = new SWFObject('/assets/general/loading.swf', 'loading_swf', '100%', '100%', '8');
		loadingAnim.addParam('wmode', 'transparent');
		loadingAnim.addParam('scale', 'noscale');
		loadingAnim.write('loading');

		layer.style.display = 'block';
		loading_em.style.display = 'block';

		if (typeof XMLHttpRequest != 'undefined')
		{
			xmlHttp = new XMLHttpRequest();
		}
		if (!xmlHttp)
		{
			try
			{
				xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(e)
			{
				try
				{
					xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch(e)
				{
					xmlHttp  = null;
				}
			}
		}
		
		if (xmlHttp)
		{
			xmlHttp.open('GET', '/objects/' + id + '/?mode=ajax', true);
			xmlHttp.onreadystatechange = function ()
			{
				if (xmlHttp.readyState == 4)
				{
					var media_target = xmlHttp.responseXML;
					var media_type = media_target.getElementsByTagName('type');
					var media_asset = media_target.getElementsByTagName('asset');
					var media_path = media_target.getElementsByTagName('basepath');
					var media_width = media_target.getElementsByTagName('width');
					var media_height = media_target.getElementsByTagName('height');
					var preview_width = '100%';
					var preview_height = '100%';

					media_type = media_type[0].firstChild.nodeValue;
					media_asset = media_asset[0].firstChild.nodeValue;
					media_path = media_path[0].firstChild.nodeValue;

					switch(media_type)
					{
						case 'mos-microsite':

							media_embed(id);
							return true;
							break;

						default:

							var target_em = document.getElementById('preview');
							var target_id = 'preview';
					}

					if (media_width.length >= 1 && media_width[0].firstChild.nodeValue >= 1)
					{
						media_width = media_width[0].firstChild.nodeValue;
						media_asset += '&owidth=' + media_width;
					}
					else
					{
						media_width = 0;
					}

					if (media_height.length >= 1 && media_height[0].firstChild.nodeValue >= 1)
					{
						media_height = media_height[0].firstChild.nodeValue;
						media_asset += '&oheight=' + media_height;
					}
					else
					{
						media_height = 0;
					}
					
					target_em.style.display = 'block';

					var mediaObject = new SWFObject(media_asset, 'preview_swf', preview_width, preview_height, '8');
					mediaObject.addParam('base', media_path);
					mediaObject.addParam('wmode', 'transparent');
					mediaObject.addParam('scale', 'noscale');
					mediaObject.write(target_id);
				}
			};
			xmlHttp.send(null);
			return false;
		}
	}

	return true;
}


function media_preview_close()
{
	if (document.getElementById)
	{
		var layer = document.getElementById('disablelayer');
		var target_em = document.getElementById('preview');
		var target_frame = document.getElementById('mosframe');
		var container = document.getElementById('moscontainer');
		var loading_em = document.getElementById('loading');

		loading_em.style.display = 'none';
		layer.style.display = 'none';
		target_em.style.display = 'none';
		container.style.display = 'none';
		target_frame.src = '';
	}
}


function media_resize_container(c_id, c_width, c_height)
{
	if (document.getElementById)
	{
		var container = document.getElementById('mediacontainer' + c_id);

		if (container != null)
		{
			//container.style.width = c_width + 'px';
			container.style.height = c_height + 'px';
		}
	}
}


function media_embed(oid)
{
	if (document.getElementById)
	{
		var container = document.getElementById('moscontainer');
		var target_frame = document.getElementById('mosframe');
		
		display_loading_screen();

		container.style.display = 'block';
		target_frame.src = 'http://media.beleke.de/objects/' + oid;
	}

	return false;
}


function media_embed_close()
{
	if (document.getElementById)
	{
		var container = document.getElementById('moscontainer');
		var target_frame = document.getElementById('mosframe');
		var loading_em = document.getElementById('loading');
		var layer = document.getElementById('disablelayer');

		layer.style.display = 'none';
		loading_em.style.display = 'none';
		container.style.display = 'none';
		target_frame.src = '';
	}

	return false;
}

