
var bannerindex = 1;
var bannermax = 4;
var bannerfullwidth = 9;
var banneronecycle = false;
var autocycleoff = false;
var completedfirstcycle = false;

var toolsindex = 1;
var toolsmax = 5;

function cyclebanner()
{
	jQuery("#banner").append(jQuery("#banners").html());
	runcycle();
}

function runcycle( ) 
{
	_runcycle(9000 ); 
}

function _Xruncycle( timeout) 
{

	jQuery("#banner").cycle(
	{
		fx: 'scrollHorz',
		speed: 600,
		timeout: timeout, 
		pause:   0 , 
		after:   onAfter, 
		before: beforecycle
	});	
}

function _runcycle( timeout) 
{

	jQuery("#banner").cycle(
	{
		fx: 'scrollHorz',
		speed: 600,
		timeout: timeout, 
		pause:   0 , 
		autostop : true,
		autostopCount: bannermax+1,
		end : function(){autocycleoff=true;},
		after:   onAfter, 
		before: beforecycle
	});	
}

var cyclehasrun = false;
function onAfter(curr, next, opts) {
	cyclehasrun = true;
}

function beforecycle()
{
	resetprogress();
/*
	if(autocycleoff||(bannerindex==1&&completedfirstcycle))
//	if(autocycleoff)
	{
		jQuery("#bannerlinkfull"+(bannerindex*11)).css({width: bannerfullwidth});
		bannerinc();
	}
	else
	{
		jQuery("#bannerlinkfull"+(bannerindex*11)).animate({width: bannerfullwidth}, 8900, bannerinc);
	}
*/
	//fbdebug("bannerindex="+bannerindex);

	if(autocycleoff||(bannerindex == 1&&cyclehasrun))
	{
		jQuery("#bannerlinkfull"+(bannerindex*11)).css({width: bannerfullwidth});
		//bannerinc();
	}
	else
	{
		jQuery("#bannerlinkfull"+(bannerindex*11)).animate({width: bannerfullwidth}, 8900, bannerinc);
	}
}


function bannerstop()
{
		jQuery("#banner").stop();
		//jQuery("#banner").cycle("destroy");
		jQuery("#bannerlinkfull11").stop();
		jQuery("#bannerlinkfull22").stop();
		jQuery("#bannerlinkfull33").stop();
		jQuery("#bannerlinkfull44").stop();
}

function bannerinc()
{
	if(bannerindex >= bannermax)
	{
		bannerindex = 1;
		completedfirstcycle = true;
	}
	else
	{
		bannerindex++;
	}
}

function bannernextprev(prev) {
	bannerstop();	
	var cmd = "next";
	if(prev)
	{
		cmd = "prev";
		bannerindex = bannerindex -1;
		if(bannerindex < 1)
		{
			bannerindex = bannermax;
		}
	}
	else
	{
		bannerinc();
	}
	if(!autocycleoff)
	{
		autocycleoff = true;
		_runcycle( 0);
	}

	jQuery("#banner").cycle(cmd);
}

function bannerlink(id)
{
	bannerstop();	
	bannerindex=id;
	fbdebug("bannerlink bannerindex="+bannerindex);
	if(!autocycleoff)
	{
		autocycleoff = true;
		_runcycle( 0);
	}
	jQuery("#banner").cycle(bannerindex-1);
}


function resetprogress()
{
	fbdebug("resetprogress autocycleoff="+autocycleoff+" bannerindex="+bannerindex);
	if(bannerindex==1)
	{
	fbdebug("X1");
		jQuery("#bannerlinkfull11").css({width:autocycleoff?bannerfullwidth:0});
		jQuery("#bannerlinkfull12").css({width:0});
		jQuery("#bannerlinkfull13").css({width:0});
		jQuery("#bannerlinkfull14").css({width:0});
		jQuery("#bannerlinkfull15").css({width:0});
	}
	else if(bannerindex==2)
	{
	fbdebug("X2");
		jQuery("#bannerlinkfull21").css({width:bannerfullwidth});
		jQuery("#bannerlinkfull22").css({width:autocycleoff?bannerfullwidth:0});
		jQuery("#bannerlinkfull23").css({width:0});
		jQuery("#bannerlinkfull24").css({width:0});
		jQuery("#bannerlinkfull25").css({width:0});
	}
	else if(bannerindex==3)
	{
	fbdebug("X3");
		jQuery("#bannerlinkfull31").css({width:bannerfullwidth});
		jQuery("#bannerlinkfull32").css({width:bannerfullwidth});
		jQuery("#bannerlinkfull33").css({width:autocycleoff?bannerfullwidth:0});
		jQuery("#bannerlinkfull34").css({width:0});
		jQuery("#bannerlinkfull35").css({width:0});
	}
	else if(bannerindex==4)
	{
	fbdebug("X4");
		jQuery("#bannerlinkfull41").css({width:bannerfullwidth});
		jQuery("#bannerlinkfull42").css({width:bannerfullwidth});
		jQuery("#bannerlinkfull43").css({width:bannerfullwidth});
		jQuery("#bannerlinkfull44").css({width:autocycleoff?bannerfullwidth:0});
		jQuery("#bannerlinkfull45").css({width:0});
	}
	else if(bannerindex==5)
	{
	fbdebug("X5");
		jQuery("#bannerlinkfull51").css({width:bannerfullwidth});
		jQuery("#bannerlinkfull52").css({width:bannerfullwidth});
		jQuery("#bannerlinkfull53").css({width:bannerfullwidth});
		jQuery("#bannerlinkfull54").css({width:bannerfullwidth});
		jQuery("#bannerlinkfull55").css({width:autocycleoff?bannerfullwidth:0});
	}
}

function selecttoolset(id)
{
	jQuery(".toolsprogress a").removeClass("selected");
		jQuery("a#toolsprogresslink"+id).addClass("selected");
}

function beforecycletools()
{
	
}
function aftercycletools()
{
	//toolsinc();
	selecttoolset(toolsindex);
}

function runcycletools()
{
	//selecttoolset(1);
	jQuery("#toolsscroll").cycle(
	{
		fx: 'scrollHorz',
		speed: 600,
		timeout: 0, 
		pause:   1 , 
		after:   aftercycletools, 
		before: beforecycletools
	});	
		jQuery(".toolsscrollitemsethidden").css({display:'block'});
}

function runcycletoolsv2()
{
	//selecttoolset(1);
	jQuery("#toolsscroll").cycle(
	{
		fx: 'scrollHorz',
		speed: 600,
		timeout: 0, 
		pause:   1 , 
		after:   aftercycletools, 
		before: beforecycletools
	});	
}

function toolsinc()
{
	if(toolsindex >= toolsmax)
	{
		toolsindex = 1;
	}
	else
	{
		toolsindex++;
	}
}
function toolsnextprev(prev) {
	jQuery("#toolsscroll").stop();
	var cmd = "next";
	if(prev)
	{
		cmd = "prev";
		toolsindex = toolsindex -1;
		if(toolsindex < 1)
		{
			toolsindex = toolsmax;
		}
	}
	else
	{
		toolsinc();
	}
	jQuery("#toolsscroll").cycle(cmd);
}

function toolslink(id)
{

	jQuery("#toolsscroll").stop();
	toolsindex=id;
	selecttoolset(id);
	jQuery("#toolsscroll").cycle(toolsindex-1);
}

function initjquerytabs(mysel)
{
    var tabContainers = jQuery('div.tabbox');
    if(!mysel)
    {
		mysel = ':first'; 
    }
	var mylocation = ""+location;
	if(mylocation.indexOf("#")!=-1)
    {
    	mysel = mylocation.substring(mylocation.indexOf("#"))+"link";
    }
    
    jQuery('ul.tabboxnav a').click(function () {
        tabContainers.hide().filter(this.hash).show();
        
        jQuery('ul.tabboxnav a').removeClass('selected');
        jQuery(this).addClass('selected');
        
        return false;
    }).filter(mysel).click();

}

var morestatechangerunning = false;
function viewmore(id, hidetext, showtext) {
	if(!hidetext)
	{
		hidetext = "hide";
	}
	if(!showtext)
	{
		showtext = "more";
	}
	var mydiv = document.getElementById(id);
	var link = document.getElementById("link"+id);
	if(mydiv)
	{
		morestatechangerunning = true;
		if(mydiv.style.display == 'none')
		{
			Effect.BlindDown(mydiv, { duration: 0.35 });
			if(link){
				link.innerHTML = hidetext;
			}
		}
		else
		{
			Effect.BlindUp(mydiv, { duration: 0.35 });
			if(link){
				link.innerHTML = showtext;
			}
		}
		window.setTimeout('morestatechangerunning = false;',500);
	}
	
}


function appearreveal(id) {
	var appearitemheaderlink = document.getElementById('appearitemheaderlink'+id);
	var appearitembodycontainer = document.getElementById('appearitembodycontainer'+id);
	if(appearitemheaderlink&&appearitembodycontainer)
	{
		if(appearitembodycontainer.style.display == 'none')
		{
			appearitemheaderlink.className = 'appearitemheaderlinksel';
			Effect.BlindDown(appearitembodycontainer, { duration: 0.35 });
		}
		else
		{
			appearitemheaderlink.className = 'appearitemheaderlink';
			Effect.BlindUp(appearitembodycontainer, { duration: 0.35 });
		}
	}

}


function setuptooltips()
{
  jQuery('.tooltip').hover(
    function() 
    {
    	this.heading = jQuery(this).html();
		this.tip = this.title;
		jQuery(this).append(
		 '<div class="tooltipwrapper">'
		 + '<div class="tooltipcontainer">'
			+'<div class="tooltipinner">'
			+'<div class="tooltiphead">'
			  +this.heading
			+'</div>'
			+'<div class="tooltipbody">'
			  +this.tip
			+'</div>'
			+'</div>'
		  +'</div>'
		  +'</div>'
		);
		
		this.title = "";
		this.width = jQuery(this).width();
		//jQuery(this).find('.tooltipcontainer').css({left:this.width-22})
		jQuery('.tooltipwrapper').fadeIn(300);
	},
    function() 
    {
		jQuery('.tooltipwrapper').fadeOut(100);
		jQuery(this).children().remove();
		this.title = this.tip;
	}

  );

}

jQuery(document).ready(function() {setuptooltips();});


function checksearchform()
{
	var form = document.forms.csesearch;
	if(form.q.value.length==0)
	{
		form.q.focus();
		form.q.select();
		return false;
	}
	
	googletrack('SiteSearch', 'Click', 'SiteSearch');
	return true;	
}
function focussearchform()
{
	var form = document.forms.csesearch;
	if(form) {
		form.q.focus();
		form.q.select();
	}
}



function onlyNumsOrChars(e) {
	var ret = true;
	if ((window.event.keyCode > 64 && window.event.keyCode < 91)||(window.event.keyCode > 96 && window.event.keyCode < 123)||(window.event.keyCode > 47 && window.event.keyCode < 58))
	{
		ret = window.event.keyCode ;
		return ret;
	}
	else
	{
		window.event.keyCode = 0;
		return false;
	}
}
function onlyNums(e) {
	var ret = true;
	if (window.event.keyCode < 46 || window.event.keyCode > 57)
	{
		window.event.keyCode = 0;
		ret = false;
	}
	return (ret);
}

function gna()
{
	var mylocation = ""+location;
	var ret = "";
	if(mylocation.indexOf("#")!=-1)
    {
    	ret = mylocation.substring(mylocation.indexOf("#")+1)
    }
    fbdebug("gna="+ret);
	return ret;
}

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}


function calculate(numberpartners)
{

	if(numberpartners<2)
	{
		alert("You must select at least 2 partners / shareholders");
		return;
	}

	var persons = new Array();

	var totalshareinput = document.forms.protequalcalc.totalshare;
	var totalpremiuminput = document.forms.protequalcalc.totalpremium;
	var totalequalpreminput = document.forms.protequalcalc.totalequalprem;

	for(var i=0;i<numberpartners;i++)
	{
		var person = new Array();

		person[0] = eval("document.forms.protequalcalc.name"+i+".value");
		person[1] = eval("parseInt(document.forms.protequalcalc.age"+i+".value)");
		person[2] = eval("document.forms.protequalcalc.pos"+i+".value");
		var myshare = eval("document.forms.protequalcalc.share"+i+".value");
		if(myshare.indexOf("%")!=-1)
		{
			myshare = myshare.replace("\%","");
		}

		if(person[0].length==0)
		{
			alert("Please enter a name");
			eval("document.forms.protequalcalc.name"+i).focus();
			return;
		}
		if(eval("document.forms.protequalcalc.age"+i+".value")==0)
		{
			alert("Please enter an age");
			eval("document.forms.protequalcalc.age"+i).focus();
			return;
		}
		if(person[2].length==0)
		{
			alert("Please enter a position");
			eval("document.forms.protequalcalc.pos"+i).focus();
			return;
		}
		if(myshare == "0")
		{
			alert("Please enter a share");
			eval("document.forms.protequalcalc.share"+i).value = "0%";
			eval("document.forms.protequalcalc.share"+i).focus();
			eval("document.forms.protequalcalc.share"+i).select();
			return;
		}

		//alert(myshare);
		person[3] = parseFloat(myshare)
		var mypremium = eval("document.forms.protequalcalc.premium"+i+".value");
		if(mypremium.indexOf("£")!=-1)
		{
			mypremium = mypremium.replace("£","");
		}
		person[4] = parseFloat(mypremium);
		//alert(mypremium);
		person[5] = eval("parseFloat(document.forms.protequalcalc.equalprem"+i+".value)");

		persons[i] = person;
	}

	//var mywin = window.open("debug");

	var totalpremium = 0;
	var totalshare = 0;
	var totalequalprem = 0;
	for(var i=0;i<numberpartners;i++)
	{
		var person = persons[i];
		var equalprem = 0;
		for(var a=0;a<numberpartners;a++)
		{
			if(a!=i)
			{
				var myothersshare = othersshare(a,persons);
				var myequalprem = parseFloat(((person[3]/100)*(persons[a][4]))/myothersshare);
				equalprem += myequalprem;
				//mywin.document.write("person"+i+" share "+person[3]+"<br/>");
				//mywin.document.write("person"+i+" prem for person"+a+" "+persons[a][4]+"<br/>");
				//mywin.document.write("person"+i+" othersshare for person"+a+" "+myothersshare+"<br/>");
				//mywin.document.write("person"+i+" myequalprem "+myequalprem+"<br/>");
				//mywin.document.write("person"+i+" equalprem "+equalprem+"<br/>");
				//mywin.document.write("<br/>");
				
			}
		}
		var displayequalprem = equalprem.toFixed(2)
		eval("document.forms.protequalcalc.equalprem"+i+".value = '£"+displayequalprem+"'");
		totalshare += person[3];
		totalpremium += person[4];
		totalequalprem += equalprem;

		var myshareinp = eval("document.forms.protequalcalc.share"+i);
		if(myshareinp.value.indexOf("%")==-1)
		{
			myshareinp.value = myshareinp.value + "%"; 
		}
		var mypremiuminp = eval("document.forms.protequalcalc.premium"+i);
		var mypremium = mypremiuminp.value;
		mypremium = mypremium.replace("£","");
		mypremium = parseFloat(mypremium);
		mypremiuminp.value = "£"+ mypremium.toFixed(2);

	}
	var mytotal = totalshare.toFixed(1)+"";
	if(mytotal.indexOf(".0")!=-1)
	{
		mytotal = parseInt(mytotal);
	}
	if(mytotal>100)
	{
		alert("Please review your entries, the total shareholding is "+mytotal+"%, it should not exceed 100%");
		return;
	}

	totalshareinput.value = mytotal+"%";
	
	totalpremiuminput.value = "£"+totalpremium.toFixed(2);
	totalequalpreminput.value = "£"+totalequalprem.toFixed(2);
	
	
	var linkprint = document.getElementById('linkprint');
	var linksafeaspdf = document.getElementById('linksafeaspdf');
	if(linkprint) {
		linkprint.style.display = 'inline';
	}
	if(linksafeaspdf) {
		linksafeaspdf.style.display = 'inline';
	}

}

function othersshare(a,persons)
{
	var total = 0;
	for(var i=0;i<persons.length;i++)
	{
		if(i!=a)
		{
			total += parseFloat(persons[i][3]/100);
		}
	}
	return total;

}


function geteqcalresult() {
	var numpartners = parseInt(document.getElementById('numpartners').value);
	var result = '';
	result += 'companyname='+document.getElementById('companyname').value.replace('&','&amp;')+'&';
	result += 'numpartners='+numpartners+'&';
	result += 'totalshare='+document.getElementById('totalshare').value.replace('%','')+'&';
	result += 'totalpremium='+document.getElementById('totalpremium').value.replace('£','')+'&';
	result += 'totalequalprem='+document.getElementById('totalequalprem').value.replace('£','')+'&';

	for(var i = 0; i < numpartners; i++)
	{
		result +='name=' + document.getElementById('name'+i).value.replace('&','&amp;') + '&';
		result +='age=' + document.getElementById('age'+i).value + '&';
		result +='pos=' + document.getElementById('pos'+i).value.replace('&','&amp;') + '&';
		result +='share=' +  document.getElementById('share'+i).value.replace('%','') + '&';
		result +='premium=' +  document.getElementById('premium'+i).value.replace('£','') + '&';
		result +='equalprem=' +  document.getElementById('equalprem'+i).value.replace('£','') + '&';
	}	
	result += 'pdffile=bgcalcaspdf.pdf';
	
	return result;
}

function saveeqcalcaspdf() {
	var pdfgenservlet = 'http://www.brightadviser.space02.co.uk/brightadviserlive/bgsaveeqcalcaspdf.pdf?';
	 pdfgenservlet += geteqcalresult();
	 var iframepdfgen = document.getElementById('iframepdfgen');
	 if(iframepdfgen) {
	 //alert(pdfgenservlet);
		 iframepdfgen.src = pdfgenservlet;
	//window.open(pdfgenservlet);
	 }

}

function downloadvideodd(x)
{	
	var y = 'audio/mp3';
	if(x=="avi")
	{
		y = 'video/avi';
	}
	else if(x=="mov")
	{
		y = 'video/quicktime';
	}
	location.href = 'http://www.brightgreymedia.space03.co.uk/download.php?type='+y+'&file='+document.getElementById("videoselectdropdown").options[document.getElementById("videoselectdropdown").selectedIndex].getAttribute("rel")+'.'+x;
}

function downloadvideorecorddd(x)
{
	var y = document.getElementById("videoselectdropdown").options[document.getElementById("videoselectdropdown").selectedIndex].getAttribute("rel")+"."+x
	downloadvideo(y);

}

function downloadvideo(y)
{
	try {
	var pageTracker = _gat._getTracker("UA-1264389-1");
	pageTracker._trackEvent('Videos', 'Play', y);
	
	} catch(err) {}

}



function closevideobyid(id)
{
			document.getElementById('videoplayer'+(id)).style.display = 'none';
			document.getElementById('videoplayer'+(id)).innerHTML = '';
			if(document.getElementById('videoplayerclose'+id))document.getElementById('videoplayerclose'+id).style.display = 'none';

}
function selectvideo(dropdown,showsplash,tag)
{
	var id = dropdown.options[dropdown.selectedIndex].value;
	var idsize = dropdown.options.length;
//	alert(id);
	selectvideobyid(id,tag);
}
function selectvideobyid(id,tag)
{
	jQuery(".videoplayer").html("");
	jQuery(".videoplayer").hide();
	jQuery(".videoplayerclose").hide();

	document.getElementById('videoplayer'+id).innerHTML = document.getElementById('videoplayerhidden'+id).innerHTML;
	document.getElementById('videoplayer'+id).style.display = 'block';
	if(document.getElementById('videoplayerclose'+id))document.getElementById('videoplayerclose'+id).style.display = 'block';
	
	try {
	var pageTracker = _gat._getTracker("UA-1264389-1");
	pageTracker._trackEvent('Videos', 'Play', tag);
	
	} catch(err) {}

}
function selectmultivideobyid(name,id,size,showsplash,autorun,tag)
{
	

	for(var i=0;i<size;i++)
	{
		if(i!=(parseInt(id)-1) && (document.getElementById(name+'videoplayer'+(i+1)).style.display != 'none'||document.getElementById(name+'videosplash'+(i+1)).style.display != 'none'))
		{
			document.getElementById(name+'videoplayer'+(i+1)).style.display = 'none';
			document.getElementById(name+'videoplayer'+(i+1)).innerHTML = '';
			document.getElementById(name+'videosplash'+(i+1)).style.display = 'none';
		}
	}
	if(showsplash||autorun)
	{
		if(document.getElementById(name+'videoselectdesc'))
		{
			document.getElementById(name+'videoselectdesc').innerHTML = 	document.getElementById(name+'videoinfo'+id).innerHTML;
		}
		if(document.getElementById(name+'videosplash'+id))
		{
			document.getElementById(name+'videosplash'+id).style.display = 'block';
		}
		if(document.getElementById(name+'videoplayer'+id))
		{
			document.getElementById(name+'videoplayer'+id).style.display = 'none';
			document.getElementById(name+'videoplayer'+id).innerHTML = '';
		}
	}
	if(!showsplash)
	{
		window.setTimeout("Effect.Fade('"+name+"videosplash"+id+"', { duration: 3.0 })",600);
		document.getElementById(name+'videoplayer'+id).innerHTML = document.getElementById(name+'videoplayerhidden'+id).innerHTML
		document.getElementById(name+'videoplayer'+id).style.display = 'block';
		window.setTimeout("document.getElementById(name+'videosplash"+id+"').style.display = 'none'",400);
		
		try {
		var pageTracker = _gat._getTracker("UA-1264389-1");
		pageTracker._trackEvent('Videos', 'Play', tag);
		
		} catch(err) {}

	}
}

function scrollvideoselect(name,init,tag)
{
	var scrollvideoplayer = document.getElementById('scrollvideoplayer');
	var homepagevideos = document.getElementById('homepagevideos'+name);
	scrollvideoplayer.innerHTML = "";
	scrollvideoplayer.innerHTML = homepagevideos.innerHTML;
	if(init)
	{
		selectmultivideobyid(name,1,1,true,false,tag);
	}
	else
	{
		selectmultivideobyid(name,1,1,false,true,tag);
	}
	jQuery(".homevideobodydetailbodylink a").removeClass("watchvideoselected");
	jQuery("a#scrollvideobtn"+name).addClass("watchvideoselected");
}


var runningslidevideo = false;
function slidevideo(id,showtext,hidetext,tag)
{
	if(runningslidevideo)
	{
		return;
	}
	var appearblock = document.getElementById("appearblock"+id);
	var link = document.getElementById("link"+id);
	runningslidevideo = true;

	if(appearblock.style.display != 'none')
	{
		Effect.BlindUp(appearblock);
		link.innerHTML = showtext;
		document.getElementById("videoplayer"+id).innerHTML = '';
	}
	else
	{
		document.getElementById("videoplayer"+id).innerHTML = document.getElementById("videoplayerhidden"+id).innerHTML;
		Effect.BlindDown(appearblock);
		link.innerHTML = hidetext;
		try {
		var pageTracker = _gat._getTracker("UA-1264389-1");
		pageTracker._trackEvent('Videos', 'Play', tag);
		} catch(err) {}
	}

	window.setTimeout("runningslidevideo = false;",1200);
}

var CARTCOOKIE = "LiteratureCart";
var CARTLIFE = 365;
var CARTMAPDELIMITER = "‡";
var CARTMAPPAIRDELIMITER = "§";
var CARTITEMMAPDELIMITER = "†";
var CARTITEMMAPPAIRDELIMITER = "¥";

function SetCookie(cookieName,cookieValue,nDays) {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue)
                 + ";expires="+expire.toGMTString() + "; path=/";
}

function createCookieMap(map) {
	var ret = ""; 
	var index = 0;
	jQuery.each(map, function(key, value) 
	{
		index++;
    	var x = key +CARTMAPPAIRDELIMITER + createCookieItemMap(value) + CARTMAPDELIMITER;
    	//alert("Map " + x);
    	ret += x;
	});
	return ret;
}

function createCookieItemMap(map) {
	var ret = ""; 
	var index = 0;
	
	jQuery.each(map, function(key, value) 
	{
		index++;
    	var x = key + CARTITEMMAPDELIMITER + value + CARTITEMMAPPAIRDELIMITER;
    	//alert("Item " + x);
    	ret += x;
	});
	return ret;
}
function getCookieItemMap(str)
{
	var the_info = {};
	var separated_values = str.split(CARTITEMMAPPAIRDELIMITER);
	var property_value = "";
	for (var loop = 0; loop < separated_values.length; loop++)
	{
		property_value = separated_values[loop];
		if(property_value.length>0)
		{
			var broken_info = property_value.split(CARTITEMMAPDELIMITER);
			var the_property = broken_info[0];
			var the_value = broken_info[1];
			if(broken_info.length==2)
			{
				the_info[the_property] = the_value;
			}
		}
	}
	return the_info;

}


function ReadCookie(cookieName) {
	var the_info = {};
	var theCookie=""+document.cookie;
	var ind=theCookie.indexOf(cookieName);
	if (ind==-1 || cookieName=="") return {}; 
	var ind1=theCookie.indexOf(";expires",ind);
	if (ind1==-1) ind1=theCookie.length; 
	var cookieitem = theCookie.substring(ind+cookieName.length+1,ind1);
	var the_cookie = unescape(cookieitem);
	var separated_values = the_cookie.split(CARTMAPDELIMITER);
	var property_value = "";
	for (var loop = 0; loop < separated_values.length; loop++)
	{
		property_value = separated_values[loop];
		if(property_value.length>0)
		{
			var broken_info = property_value.split(CARTMAPPAIRDELIMITER);
			if(broken_info.length==2)
			{
				var the_property = broken_info[0];
				var the_value = broken_info[1];
				the_info[the_property] = getCookieItemMap(the_value);
			}
		}
	}
	return the_info;
}

function eraseCookie(name) {
	SetCookie(name,"",-1);
}


function getliteraturecart()
{
	return eval(ReadCookie(CARTCOOKIE));
}
function addtoliteraturecart(id,title,url,quantity,update)
{
	var newitem = {};
	newitem.id = id;
	newitem.title = title;
	newitem.url = url;
	newitem.quantity = quantity;
	var cart = ReadCookie(CARTCOOKIE);
	if(quantity < 1)
	{
		delete cart[id];
	}
	else
	{
		if(!update && cart[id])
		{
			var newq = parseInt(cart[id].quantity) + parseInt(quantity);
			cart[id].quantity = newq;
		}
		else
		{
			cart[id] = newitem;
		}
	}
	var mapstring = createCookieMap(eval(cart));
	SetCookie(CARTCOOKIE,mapstring,CARTLIFE);
	displaycart();
}
function removefromcart(id)
{
		var cart = getliteraturecart();
		delete cart[id];
		SetCookie(CARTCOOKIE,createCookieMap(cart),CARTLIFE);
		displaycart();
}

function displaycart()
{
	var outhtml = "";
	var literaturebasket = document.getElementById('literaturebasketbody');
	if(literaturebasket)
	{
		var cart = getliteraturecart();
		for (var item in cart) 
		{
			outhtml += "<div id='literaturebasketitem"+item+"' class='literaturebasketitem'><div class='literaturebasketitemdesc'><p><a title=\"open '"+cart[item].title+"' in new window\" target='_blank' href='"+cart[item].url+"'>"+cart[item].title+"</a></p></div><div class='literaturebasketitemctls'><input onclick='this.select()' onkeypress='javascript:litquantitykeypress(event,this,"+item+",\""+cart[item].title+"\",\""+cart[item].url+"\");' maxlength='2' type='text' name='litquantity' id='litquantity"+item+"' value='"+cart[item].quantity+"'/> <p><a title='remove' href='javascript:;' onclick='javascript:removefromcart("+item+");'>x</a></p></div><br class='clearfloat'/></div>";
		}
		literaturebasket.innerHTML = outhtml;
	}
}
function litquantitykeypress(e,x,id,title,url)
{
		window.setTimeout("litquantityupdate("+id+",'"+title+"','"+url+"','"+x.id+"');",200);
}
function litquantityupdate(id,title,url,quantityinputid)
{
		window.setTimeout("addtoliteraturecart("+id+",'"+title+"','"+url+"','"+document.getElementById(quantityinputid).value+"',true);",400);
}

function trackevent(main,sub,name)
{
	try {
	var pageTracker = _gat._getTracker("UA-1264389-1");
	pageTracker._trackEvent(main, sub, name);
	
	} catch(err) {}

}

function googletrack(a,b,c)
{
	trackevent(a,b,c);
}

function validateBrightTouchCommentsForm()
{
	var email_re = /^\S+@\S+\.\S+$/;
	var rc = true;
	var form = document.getElementById('BrightTouchCommentsForm');
	initalertbox();
	jQuery(".alertboxbodycontent").html("");
	if(form.formrecorder_firstname) 
	{
		//forname must be at least 2 chars
		if (form.formrecorder_firstname.value.length < 2)
		{
			markfield('formrecorder_firstname');
			form.formrecorder_firstname.focus();
			form.formrecorder_firstname.select();
			rc = false;
		}
		else
		{
			markfield('formrecorder_firstname',true);
		}
	}
	
	if (form.formrecorder_surname)
	{
		//surname must be at least 2 chars
		if (form.formrecorder_surname.value.length < 2)
		{
			markfield('formrecorder_surname');
			form.formrecorder_surname.focus();
			form.formrecorder_surname.select();
			rc = false;
		}
		else
		{
			markfield('formrecorder_surname',true);
		}
	}
	/*
	if (form.formrecorder_companyname)
	{
		if (form.formrecorder_companyname.value.length < 2)
		{
			markfield('formrecorder_companyname');
			form.formrecorder_companyname.focus();
			form.formrecorder_companyname.select();
			rc = false;
		}
		else
		{
			markfield('formrecorder_companyname',true);
		}
	}
	*/
	if(form.formrecorder_emailaddress)
	{
		if (form.formrecorder_emailaddress.value.length < 5 || form.formrecorder_emailaddress.value.search(email_re) == -1)
		{
			markfield('formrecorder_emailaddress');
			form.formrecorder_emailaddress.focus();
			form.formrecorder_emailaddress.select();
			rc = false;
		}
		else
		{
			markfield('formrecorder_emailaddress',true);
		}
	}
	
	if(rc)
	{
		alertboxreset();
	}

	return rc;
}

function submitBrightTouchCommentsForm()
{
	if(validateBrightTouchCommentsForm())
	{
		var x = jQuery(".formelementsubmit p a").text();
		jQuery(".formelementsubmit").html("<div class='submitloading'></div>");
		setTimeout("document.getElementById('BrightTouchCommentsForm').submit();", 50);
	}
}

function markfield(name,isok)
{
		var field = document.getElementById(name);
		var label = document.getElementById('label_'+name);
		
		
		if(label)
		{
			if(isok)
			{
				label.style.color = "#5e7272";
				
			}
			else
			{
				label.style.color = "#ea0e8c";
			}
		}
		//if(field)
		if(field)
		{
			if(isok)
			{
				field.style.background = "#ffffff";
				field.style.color = "#5e7272";
			}
			else
			{
				field.style.background = "#ea0e8c";
				field.style.color = "#ffffff";
			}
		}
		
		if(isok)
		{
		}
		else
		{
			alertboxshow("<p>"+jQuery(label).text().replace(":","")+"</p>");
		}
		
}


function initalertbox(){
		if(jQuery(".alertboxcontainer").length==0){
			var content = "<div class='alertboxcontainer'>";
			content += "<div class='alertbox'>";
			content += "<div class='alertboxhead'><h4>Missing fields</h4>";
			content += "</div>";
			content += "<div class='alertboxbody'><p><strong>Please complete the following fields to continue:</strong></p><br/>";
			content += "<div class='alertboxbodycontent'>";
			content += "</div>";
			content += "</div>";
			content += "</div>";
			content += "</div>";
			jQuery(".mandalert").append(content);
			jQuery(".alertboxcontainer").hide();
	}
}

function alertboxreset(){
	jQuery(".alertbox").fadeOut("fast",function(){
		jQuery(".alertboxcontainer").hide();jQuery(".alertboxbodycontent").html("");
	});
}

function alertboxshow(msg){

	if(!jQuery(".alertbox").is(":visible")){
		jQuery(".alertboxcontainer").show()
		jQuery(".alertbox").fadeIn("fast");
	}
	jQuery(".alertboxbodycontent").append(msg);
	
}

//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2008 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
function ControlVersion()
{
	var version;
	var axo;
	var e;
	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}
	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";
			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";
			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}
// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];
        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}
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 = '';
  if (isIE && isWin && !isOpera)
  {
    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 += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }
  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":
      case "id":
        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 "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;
}

function fbdebug(log_txt) 
{
    if (window.console != undefined) 
    {
        console.log(log_txt);
    }
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();








