/**
  * $Id: portal_support.js,v 1.3 2007/04/16 09:33:04 steve Exp $
  * 
  * Copyright 2004 C2B2 Consulting Limited. All rights reserved.
  * 
  * Combined file for Javascript common functions used by the portal
  * 
  * @author $Author: steve $
  * @version $Revision: 1.3 $
  * $Date: 2007/04/16 09:33:04 $
  * 
  */
function popupDialog(url,pagename)
{
  var dialog = window.open(url + "&SelectedPage="+pagename,"","width=200,height=200,status=no,resizable=yes,menubar=no,toolbar=no");
  dialog.focus();
}

function resizeToContent(x,y) {
	var isMSIE = (navigator.appName == "Microsoft Internet Explorer");
	var isOpera = (navigator.userAgent.indexOf("Opera") != -1);
        var isFirefox = (navigator.userAgent.indexOf("Mozilla/5.0") != -1);
        
	if (isOpera)
        {
                window.resizeTo(x,y);
		return;
        }

	if (isMSIE) {
		try { window.resizeTo(10, 10); } catch (e) {}
                
                var elm = document.body;
                if (document.documentElement != null)
                {
                  elm = document.documentElement;
                }
		var width = elm.offsetWidth;
		var height = elm.offsetHeight;
		var dx = (elm.scrollWidth - width) + 20;
		var dy = elm.scrollHeight - height;

		try { window.resizeBy(dx, dy); } catch (e) {}
	} 
        else if (isFirefox){
          window.sizeToContent();
          window.sizeToContent();   	
        }
        else
        {
                window.resizeTo(x,y);
        }
};

function toggleMinimised(portletid, maxImg, minImg)
{
	var o_portletDiv = document.getElementById('div_' + portletid);
	var o_portletImg = document.getElementById('img_' + portletid);
	if (!o_portletDiv)
		return;

	if (o_portletDiv.style.display == 'block')
	{
		o_portletDiv.style.display = 'none';
		o_portletImg.src=maxImg;
		o_portletImg.alt='Maximise ' + portletid;
	}
	else
	{	
		o_portletDiv.style.display = 'block';
		o_portletImg.src=minImg;
		o_portletImg.alt='Minimise ' + portletid;
	}	
}

function contentLinkScanner(id,portlet,page,extraQueryString)
{
	var spanelement = document.getElementById(id);
	
	if (spanelement != null)
	{
	    var anchors = spanelement.getElementsByTagName("a");
	    var anchor;
	 	var i;
	    for (i = anchors.length; --i >= 0 && (anchor = anchors[i]);)
	    {
	        if (anchor.href.lastIndexOf("LinkType=Content") != -1)
	        {
	        	anchor.href = anchor.href + "&Page=" + page + "&Portlet=" + portlet+ "&" + extraQueryString;
	        }
	    }
	}
}

/**
 * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.
 */

function writeFlash(p) {
	writeEmbed(
		'D27CDB6E-AE6D-11cf-96B8-444553540000',
		'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
		'application/x-shockwave-flash',
		p
	);
}

function writeShockWave(p) {
	writeEmbed(
	'166B1BCA-3F9C-11CF-8075-444553540000',
	'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
	'application/x-director',
		p
	);
}

function writeQuickTime(p) {
	writeEmbed(
		'02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
		'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
		'video/quicktime',
		p
	);
}

function writeRealMedia(p) {
	writeEmbed(
		'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
		'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
		'audio/x-pn-realaudio-plugin',
		p
	);
}

function writeWindowsMedia(p) {
	p.url = p.src;
	writeEmbed(
		'6BF52A52-394A-11D3-B153-00C04F79FAA6',
		'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
		'application/x-mplayer2',
		p
	);
}

function writeEmbed(cls, cb, mt, p) {
	var h = '', n;

	h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
	h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
	h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
	h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
	h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
	h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
	h += '>';

	for (n in p)
		h += '<param name="' + n + '" value="' + p[n] + '">';

	h += '<embed type="' + mt + '"';

	for (n in p)
		h += n + '="' + p[n] + '" ';

	h += '></embed></object>';

	document.write(h);
}
