//when page loads start standard functions
function initialize() {
	externalLinks();
}

window.onload = initialize;


function $import(src){
	var scriptElem = document.createElement('script');
  scriptElem.setAttribute('src',src);
	scriptElem.setAttribute('type','text/javascript');
	document.getElementsByTagName('head')[0].appendChild(scriptElem);
}


// import with a random query parameter to avoid caching
function $importNoCache(src){
	var ms = new Date().getTime().toString();
	var seed = "?" + ms; 
	$import(src + seed);
}


function externalLinks() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors .length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
			anchor.target = "_blank";
			anchor.title = (anchor.title != "") ? anchor.title+" (opens in a new window)" : "opens in a new window";
			anchor.className = (anchor.className != '') ? anchor.className+' external' : 'external';
		}
	}
}


function changeLanguage(language){
	alert(language);
}




function updateMainImage(arrayId)
{
	rotatePicture = false;
	document['main-picture'].src = availablePhotos[arrayId];
}

function showPumpFamily(familyToShow)
{
	var divId ='';
	for (var counter = 1; counter < 5; counter++)
	{
		divId = 'family-' + counter;
		document.getElementById(divId).style.display = 'none';
/*
		divId = 'family-' + counter + '-menuheading';
		document.getElementById(divId).style.color = '#000000';
		document.getElementById(divId).style.backgroundColor = '#DBEDDB';


		divId = 'family-' + counter + '-menuitems';
		document.getElementById(divId).style.display = 'none';
*/
	}


	document.getElementById(familyToShow).style.display = 'block';

/*
	
	divId = familyToShow + '-menuheading';
	document.getElementById(divId).style.color = '#DBEDDB';
	document.getElementById(divId).style.backgroundColor = '#499E49';

	divId = familyToShow + '-menuitems';
	document.getElementById(divId).style.display = 'block';
*/
}

var num = 1;
var rotatePicture = true;
var runOnce = false;

function autoRotatePhotos()
{
	setInterval("update()", 5000);
}

function update()
{
	if (availablePhotos.length==1)
	{
		rotatePicture = false;
	}

	if (rotatePicture)
	{
		document['main-picture'].src = availablePhotos[num];
	}

	if (runOnce)
	{
		rotatePicture = false;
	}


	num++;

	if (num == availablePhotos.length)
	{
		num = 0;
		runOnce = true;
	}
}

var secs;
var timerID = null;
var timerRunning = false;
var delay = 1000;

function initializeTimer()
{
	// Set the length of the timer, in seconds
	secs = 3
	stopTheClock()
	startTheTimer()
}

function stopTheClock()
{
	if(timerRunning)
		clearTimeout(timerID)
		timerRunning = false
}

function startTheTimer()
{
	if (secs==0)
	{
		stopTheClock()
		document.getElementById('menu').style.visibility = 'hidden';
	}
	else
	{
		secs = secs - 1
		timerRunning = true
		timerID = self.setTimeout("startTheTimer()", delay)
	}
}

function displayNewsStory(rowId)
{
	var divId ='';

	for (var counter = 0; counter < totalNewsItems; counter++)
	{
		divId = 'news-story-' + counter;
		document.getElementById(divId).style.display = 'none';
	}
	
	divId = 'news-story-' + rowId;
	document.getElementById(divId).style.display = 'block';
}


var Site = {

	start: function(){
		if($('vertical-news')) Site.vertical('#vertical-news li div.news-story','#vertical-news li news-headline');
		if($('pump-familys')) Site.types();
	},
	
	vertical: function(list,headings){
		var list = $$(list);
		var headings = $$(headings);
		var collapsibles = new Array();
		
		headings.each( function(heading, i) {

			var collapsible = new Fx.Slide(list[i], { 
				duration: 500, 
				transition: Fx.Transitions.linear,
				onComplete: function(request){ 
					var open = request.getStyle('margin-top').toInt();
					if(open >= 0) new Fx.Scroll(window).toElement(headings[i]);
				}
			});
			
			collapsibles[i] = collapsible;
			
			heading.onclick = function(){
				var span = $E('span', heading);

				if(span){
					var newHTML = span.innerHTML == '+' ? '-' : '+';
					span.setHTML(newHTML);
				}
				
				collapsible.toggle();
				return false;
			}
			
			if(i != 0) collapsible.hide();
			
		});
		
		$('collapse-all').onclick = function(){
			headings.each( function(heading, i) {
				collapsibles[i].hide();
				var span = $E('span', heading);
				if(span) span.setHTML('+');
			});
			return false;
		}
		
		$('expand-all').onclick = function(){
			headings.each( function(heading, i) {
				collapsibles[i].show();
				var span = $E('span', heading);
				if(span) span.setHTML('-');
			});
			return false;
		}
		
	},

	types: function(){

		var lists = $$('.family-navigation div.family-types');
		var headings = $$('.family-navigation div.family-heading');
		var collapsibles = new Array();
		
		headings.each( function(heading, i) {

			var collapsible = new Fx.Slide(lists[i], { 
				duration: 500, 
				transition: Fx.Transitions.linear,
				onComplete: function(request){ 
//					var open = request.getStyle('margin-top').toInt();  //scrolls the window to a location
					if(open >= 0) new Fx.Scroll(window).toElement(headings[i]);
				}
			});
			
			collapsibles[i] = collapsible;
			
			heading.onclick = function(){
				
				collapsible.toggle();
				id = i +1;
				showPumpFamily('family-' + id);
				return false;
			}

			heading.onmouseover = function(){
				
				id = i +1;
				showPumpFamily('family-' + id);
				return false;
			}

			collapsible.hide();
			if(i != 0) 
			{
				showPumpFamily('family-1');
			}

		});


	}

};







function displayMap(lat,lng,zoom)
{
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		var center = new GLatLng(lat, lng);
		map.setCenter(center, zoom);

		var marker = new GMarker(center, getIcon(), {draggable: true});
		map.addOverlay(marker);
	}
}


function displayCaseStudies(lat,lng,zoom)
{
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		var center = new GLatLng(lat, lng);
		map.setCenter(center, zoom);

		for (var counter = 0; counter < locationPoints.length; counter++)
		{
			var point = new GLatLng(locationPoints[counter]['lat'], locationPoints[counter]['lng']);
			createMarker(point,counter)
		}

		if(locationPoints.length==1) 
		{
			map.setCenter(point, (zoom+3));
			displayCaseStudyTitle(0);
		}
	}
}

function createMarker(point,id)
{
	var marker = new GMarker(point, getIcon());

	GEvent.addListener(marker, "click", function() {
	var currentTime = new Date()
		window.location='/case-studies.php?caseStudyId=' + locationPoints[id]['caseStudyId'] + '#case-study-anchor';
	});

	GEvent.addListener(marker, "mouseover", function() {
		displayCaseStudyTitle(id);
	});

	map.addOverlay(marker);
}

function getIcon()
{
	var icon = new GIcon();
	icon.image = "/templates/images/mapicon.png";
	icon.shadow = "/templates/images/mapicon_shadow.png";
	icon.iconSize = new GSize(49, 38);
	icon.shadowSize = new GSize(49, 38);
	icon.iconAnchor = new GPoint(10, 38);

	return icon;
}



function displayCaseStudyTitle(id)
{
	document.getElementById('map-case-study-title').style.display = '';
	document.getElementById('map-case-study-title').innerHTML = locationPoints[id]['label'];
}


function checkPumpEnquiryForm()
{
	var errorList = "";
	if(document.pumpEnquiry.name.value=="") errorList += " - Name\n";
	if(document.pumpEnquiry.name.company=="") errorList += " - Company\n";
	if(document.pumpEnquiry.address1.value=="") errorList += " - Address 1\n";
	if(document.pumpEnquiry.address2.value=="") errorList += " - Address 2\n";
	if(document.pumpEnquiry.city.value=="") errorList += " - City\n";
	if(document.pumpEnquiry.country.value=="") errorList += " - Country\n";
	if(document.pumpEnquiry.postCode.value=="") errorList += " - Post Code\n";
	if(document.pumpEnquiry.telephoneNumber.value=="") errorList += " - Telephone Number\n";
	if(document.pumpEnquiry.email.value=="") errorList += " - email address\n";
	if(document.pumpEnquiry.industry.value=="") errorList += " - Industry\n";


	if (errorList!='')
	{
		errorList = "Please complete the following information\n" + errorList;
		alert(errorList);
		return false;
	} else {
		return true;
	}
}