/*
* ajax call to retrieve and possible execute code on response from server
*
*/
function doTask(params) {
	if (document.implementation && window.document.implementation.createDocument)
	{
		xmlDoc = document.implementation.createDocument("", "", null);
		xmlDoc.onload = doResponse;
	}
	else if (window.ActiveXObject)
	{
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.onreadystatechange = function () {
			if (xmlDoc.readyState == 4) doResponse()
		};
	}
	else
	{
		return false;
	}
	d = new Date; // Generic - use to create unique url requests
	var rand = d.getTime();
	var url=document.location.protocol+'//'+document.location.host+'/alt/doTask.xml?rand='+rand+'&'+params;
	try{
		xmlDoc.load(url); // this is what we like to do
	} catch(e) { // if failed try using httprequest as a fallback - (e.g. Safari)
		try {
			req = new XMLHttpRequest();
		} catch(e) {
			req = false;
		}
		if(req) {
			req.onreadystatechange = processHttpRequest;
			req.open("GET", url, true);
			req.send("");
		}

	}

	return false;
}

/*
* some browsers require this extra step to catch the http reponse
*
*/
function processHttpRequest() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			xmlDoc=req.responseXML;
			doResponse();
		}
	}
}

/*
* process the response from server to the doTask function,
*
*/
function doResponse() {
	var tasks = xmlDoc.getElementsByTagName('task');
	var cmd=null;

	for(var i=0;i<tasks.length;i++) {
		cmd=tasks[i].getElementsByTagName('cmd')[0];

		if (cmd.childNodes[0]) {
			switch(cmd.childNodes[0].nodeValue) {
				case 'replace': // replace the innerHTML of an element
					var id=tasks[i].getElementsByTagName('id')[0].childNodes[0].nodeValue;
					if (tasks[i].getElementsByTagName('content')[0].textContent) var content=tasks[i].getElementsByTagName('content')[0].textContent; //avoid FF 4096 char limit
					else var content=tasks[i].getElementsByTagName('content')[0].childNodes[0].nodeValue;
					if (id.length>0 && document.getElementById(id)) document.getElementById(id).innerHTML=content;
					break;
				case 'execute': // run some js
					var script=tasks[i].getElementsByTagName('script')[0].childNodes[0].nodeValue;
					eval(script);
					break;

			}
		}
	}
}

/*
* use JS to hide controls which are only required when JS is not enabled
* - do this by adding hideJS as a class to the css
*/
function hideElements() {
	if (document.styleSheets) {
		if (document.styleSheets[0].addRule) {    // IE
			document.styleSheets[0].addRule('.hideJS','display: none',0);
		} else {    // !IE
			document.styleSheets[0].insertRule('.hideJS {display: none}', 0);
		}
	}

}

/*
* Add the onload function to any other onload function
*/
function addLoadEvent(func) {
	var oldonload = window.onload;

	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

addLoadEvent(hideElements);

// show the form wait box
function showWait(id) {
	if (document.getElementById(id)) {
		var el=document.getElementById(id);

		el.style.position='absolute';
		el.style.left='50%';
		el.style.top='50%';
		el.style.display='block';
		el.style.marginLeft="-" + parseInt(el.offsetWidth  / 2)+'px';
		el.style.marginTop ="-" + parseInt(el.offsetHeight / 2)+'px';
		// IE has a quirk which means we need to reload the animated gif to make it animate
		if (document.getElementById(id+'wImg')) setTimeout("document.getElementById('"+id+"wImg').src=document.getElementById('"+id+"wImg').src",20);
	}
}

$(document).ready(function(){
	var counter = 1;
	$('.rcol .content h2').each(function(){
		var anchorLink = '<a name="caseStudy' + counter + '"></a>';
		$(this).before(anchorLink);
		counter++;
	});
	
	var myAnchor = document.location.toString();
	if (myAnchor.match('#')) { // the URL contains an anchor
		// click the navigation item corresponding to the anchor
		var myAnchor = myAnchor.split('#')[1];
		$('html,body').animate({
			scrollTop: $('a[name='+myAnchor+']').offset()
		},'fast');
	}

$(".anythingFader").anythingFader({
                autoPlay: true,                 // This turns off the entire FUNCTIONALY, not just if it starts running or not.
                delay: 4250,                    // How long between slide transitions in AutoPlay mode
                startStopped: false,            // If autoPlay is on, this can force it to start stopped
                animationTime: 500,             // How long the slide transition takes
                hashTags: true,                 // Should links change the hashtag in the URL?
                buildNavigation: false,          // If true, builds and list of anchor links to link to each slide
                pauseOnHover: true,             // If true, and autoPlay is enabled, the show will pause on hover
                startText: "Go",                // Start text
                stopText: "Stop"              // Stop text
});

	
});
