//--------------------------------------------------------------------------
//  Created by James Wilkes on 18/08/2004
//  Copyright Wilkes Design Ltd
//  
//--------------------------------------------------------------------------

function spinFaq(obj)
{
  var spinner = document.getElementById( obj );
  var spinner_content = document.getElementById( obj+"_body" );
  if ( spinner_content.className == 'item-bodyShow' ){ spinner_content.className = "item-body";  }
  else{ spinner_content.className = "item-bodyShow"; } 
  for(i=0; i<document.getElementsByTagName('div').length; i++){
	  if((document.getElementsByTagName('div')[i]!=spinner_content) && (document.getElementsByTagName('div')[i].className == 'item-bodyShow')){
	   document.getElementsByTagName('div')[i].className = "item-body";
      }
  }  
}
//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';
}


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

try { document.execCommand('BackgroundImageCache', false, true); } catch(e) { } //STOPS IE6 FLICKERING

function saveRating(rtVarName,id,rating,hiddenVar,updateId,returnto) {
document.getElementById(hiddenVar).value=rating;
document.getElementById(updateId).className='ajax-loading';
$.ajax({
   type: "POST",
   url: "ajax/saverating.php",
   data: "rtVarName="+rtVarName+"&rtVarValue="+id+"&rating="+rating+"&returnto="+returnto,
   error: function(){
	document.getElementById(updateId).className='clear';
	$("#"+updateId).html("Sorry there's been an error saving your rating");
   },
   success: function(html){
   	document.getElementById(updateId).className='clear';
    $("#"+updateId).html(html);
   }
 });

}

function listOrder(prefvar,prefval) {
	document.form1.pref.value=prefvar;
	document.form1.prefId.value=prefval;
	document.form1.submit();
}
function rowOn(id) {
		document.getElementById(id).className='rowOn'; 
}
function rowOff(id) {
		document.getElementById(id).className='rowOff';
}

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";
	
  } 
  
  if(closeAll) {
	  for(i=0; i<document.getElementsByTagName('div').length; i++){
		   if ( (document.getElementsByTagName('div')[i]!=spinner_content) && (document.getElementsByTagName('div')[i].className == 'item-bodyShow') ) {
			   document.getElementsByTagName('div')[i].className = "item-body";
		   }
	  }
  }
   //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";
	 }
}