//--------------------------------------------------------------------------
//  Created by James Wilkes on 18/08/2004
//  Copyright Wilkes Design Ltd
//  
//--------------------------------------------------------------------------
function changeFontSize(direction) {
	if(direction=="up") {
		if(size < 4) size++;
	} else {
		if(size>0) size--;
	}
	var dt = new Date();
	dt.setTime(dt.getTime() + (3 * 24 * 60 * 60 * 1000));
	$.cookie(COOKIE_NAME, size, { path: '/', expires: dt });
	$("#middleCol,.subs").css('font-size',sizes[size]);
}


try { document.execCommand('BackgroundImageCache', false, true); } catch(e) { } //STOPS IE6 FLICKERING
function bookmarksite(url,title) {
	var title=document.title, url=window.location.href;
    if (document.all && window.external) window.external.AddFavorite(url, title); //ie
     else if (window.sidebar) window.sidebar.addPanel(title, url, ""); //firefox
	  else if(window.opera && window.print){ // opera
		var elem = document.createElement('a');
		elem.setAttribute('href',url);
		elem.setAttribute('title',title);
		elem.setAttribute('rel','sidebar');
		elem.click();
		
		//return false;
	  }
	   //else return '#'; //opera
}
function attachEventListener(target, eventType, functionRef, capture)
{
if (typeof target.addEventListener!= 'undefined')
{
target.addEventListener(eventType, functionRef, capture);
}
else if (typeof target.attachEvent!= 'undefined')
{
target.attachEvent('on' + eventType, functionRef);
}
else
{
eventType = 'on' + eventType;
if (typeof target[eventType] == 'function')
{
var oldListener = target[eventType];
target[eventType] = function()
{
oldListener();
return functionRef();
}
}
else
{
target[eventType] = functionRef;
}
}
return true;
} 

function addLoadListener(fn) {
	if(typeof window.addEventListener !='undefined') window.addEventListener('load',fn,false);
	else if (typeof document.addEventListener != 'undefined') document.addEventListener('load',fn,false);
	else if (typeof window.attachEvent != 'undefined') window.attachEvent('onload',fn);
	else
	{
		var oldfn = window.onload;
		if(typeof window.onload!='function') window.onload = fn;
		else window.onload = function() { oldfn(); fn(); }
	}
}

//addLoadListener(function() {dropdownMenu('navigation');});
function flipmenu(id,classnm) {
var d = document.getElementById(id);
var submenus = document.getElementsByTagName('dt');
	for (var i = 1; i<=submenus.length; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
		if(document.getElementById('parentsmenu'+i)) {document.getElementById('parentsmenu'+i).className='';}
		
	}
if (d) {
	d.style.display='block';
	document.getElementById('parentsmenu'+id.substring(id.length-1)).className=classnm;
}

}
attachEventListener('menu','onblur',function(){flipmenu();},false)
addLoadListener(flipmenu);

function showHide(showObj,hideObj)
// reinstate if require focus and select functions
//function showHide(showObj,hideObj,focusObj,selectObj)
{
	document.getElementById(showObj).style.display = 'block';
	document.getElementById(hideObj).style.display = 'none';

	// this line gets the focus if needed.
	//document.getElementById(focusObj).focus();
	//if (selectObj == true)
	//{
		// this does not work in netscape.
		// have tried all sorts but cannot get it to function works OK on ie6
		//document.getElementById(focusObj).select();
	//}
}
function resetContents(oToReset)
{
	var o = eval(oToReset);
	if (o.value == "Enter new value here")
	{
		o.style.color = "#000000";
		o.value = "";
	}
}
function setContents(oToReset)
{
	var o = eval(oToReset);
	if (o.value == "")
	{
		o.value = "Enter new value here";
		o.style.color = "#999999";
	}
}
function conf(message, url, id)
{
	ok = confirm(message);
	if(ok)
	{
		if (id)
		{
			top.document.getElementById(id).src = url;
		}
		else
		{
			top.location = url;
		}
	}
}

// this function should be avoided if possible as popup blockers will interfere with it.
function newWin(urlstr)
{
	NewWin=window.open(urlstr,"new","status=no,location=no,menubar=no,toolbar=no,directories=no,scrollbars=yes,resizable=no,width=100,height=100");
}
function FormatNumber(Number,Decimals,Separator)
{
 Number += ""          // Force argument to string.
 Decimals += ""        // Force argument to string.
 Separator += ""       // Force argument to string.
 if((Separator == "") || (Separator.length > 1))
  Separator = "."
 if(Number.length == 0)
  Number = "0"
 var OriginalNumber = Number  // Save for number too large.
 var Sign = 1
 var Pad = ""
 var Count = 0
 // If no number passed, force number to 0.
 if(parseFloat(Number)){
  Number = parseFloat(Number)} else {
  Number = 0}
 // If no decimals passed, default decimals to 2.
 if((parseInt(Decimals,10)) || (parseInt(Decimals,10) == 0)){
  Decimals = parseInt(Decimals,10)} else {
  Decimals = 2}
 if(Number < 0)
 {
  Sign = -1         // Remember sign of Number.
  Number *= Sign    // Force absolute value of Number.
 }
 if(Decimals < 0)
  Decimals *= -1    // Force absolute value of Decimals.
 // Next, convert number to rounded integer and force to string value.
 // (Number contains 1 extra digit used to force rounding)
 Number = "" + Math.floor(Number * Math.pow(10,Decimals + 1) + 5)
 if((Number.substring(1,2) == '.')||((Number + '')=='NaN'))
  return(OriginalNumber) // Number too large to format as specified.
 // If length of Number is less than number of decimals requested +1,
 // pad with zeros to requested length.
 if(Number.length < Decimals +1) // Construct pad string.
 {
  for(Count = Number.length; Count <= Decimals; Count++)
   Pad += "0"
 }
 Number = Pad + Number // Pad number as needed.
 if(Decimals == 0){
  // Drop extra digit -- Decimal portion is formatted.
  Number = Number.substring(0, Number.length -1)} else {
  // Or, format number with decimal point and drop extra decimal digit.
 Number = Number.substring(0,Number.length - Decimals -1) +
          Separator +
          Number.substring(Number.length - Decimals -1,
          Number.length -1)}
 if((Number == "") || (parseFloat(Number) < 1))
  Number="0"+Number // Force leading 0 for |Number| less than 1.
 if(Sign == -1)
  Number = "-" + Number  // Set sign of number.
 return(Number)
}



//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="yes"

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers

function resizeCaller() {
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++){
if (document.getElementById)
resizeIframe(iframeids[i])
//reveal iframe for lower end browsers? (see var above):
if ((document.all || document.getElementById) && iframehide=="no"){
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
tempobj.style.display="block"
}
}
}

function resizeIframe(frameid){
var currentfr=document.getElementById(frameid)
if (currentfr && !window.opera){
currentfr.style.display="block"
if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight; 
else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
currentfr.height = currentfr.Document.body.scrollHeight;
if (currentfr.addEventListener)
currentfr.addEventListener("load", readjustIframe, false)
else if (currentfr.attachEvent){
currentfr.detachEvent("onload", readjustIframe) // Bug fix line
currentfr.attachEvent("onload", readjustIframe)
}
}
}

function readjustIframe(loadevt) {
var crossevt=(window.event)? event : loadevt
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
if (iframeroot)
resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url){
if (document.getElementById)
document.getElementById(iframeid).src=url
}

//spinner function
function spin(obj,closeAll)
{
  closeAll = closeAll || 0;
  var spinner = document.getElementById( obj );
  var spinner_content = document.getElementById( obj+"_body" );

  if ( spinner_content.className == 'item-bodyShow' )
  {
     spinner.innerHTML = '<img src="../images/right.gif" border="0">';
	 //document.getElementById("spinrow"+obj).style.height = '0px';
	 spinner_content.className = "item-body";
	
  }
  else
  {
     spinner.innerHTML = '<img src="../images/down.gif" border="0">';
	 //document.getElementById("spinrow"+obj).style.height= 'auto';
	 spinner_content.className = "item-bodyShow";
	
  } 
   //document.getElementById("spinrow"+obj).style.height= 'auto';
}
// FLASH object code work around
//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
// end flash objeect overide

function equalise() {
	 var left=document.getElementById('leftCell'); 
	 var content=document.getElementById('leftContent');
	 var filler=document.getElementById('filler'); 
	 if (left && filler && content) {
		height = left.offsetHeight-content.offsetHeight;
		filler.style.height = height+"px";
	 }
}

function equalizeDivs() {
	 //resize content boxes
	 var right=document.getElementById('contentBox2'); 
	 if (right) {
		 var leftbox=document.getElementById('boxDivContent'); 
		 var rheight = right.offsetHeight;
		 var minheight = 330;
		 if(document.getElementById('contentTopImage')) 
		 { 
			minheight =  minheight - document.getElementById('contentTopImage').offsetHeight;
			rheight   =    rheight - document.getElementById('contentTopImage').offsetHeight;
		 }
		 if (minheight>rheight || !rheight) height = minheight;  else height = rheight-46;
		 if (height>leftbox.offsetHeight)
		 {
			 leftbox.style.height = height+"px";;
		 }
	 }
	 //resize page
	 if (document.documentElement && document.documentElement.clientHeight) {
		 H=document.documentElement.clientHeight; W=document.documentElement.clientWidth;
	 } else {
		 H=document.body.clientHeight; W=document.body.clientWidth;
	 }
	 if (H > document.getElementById('mainTable').offsetHeight)  {
		 document.getElementById('endTd').style.height = (H-document.getElementById('mainTable').offsetHeight+32)+"px";
	 }
}