function imgOn(image) {
	
	document.getElementById(image).setAttribute("src","images/heading_"+image+"On.gif");
	
}

function imgOff(image) {
	
	document.getElementById(image).setAttribute("src","images/heading_"+image+"Off.gif");
	
}

var displayState;
// USE THIS VAR SO AUTO-TOGGLE DOESN'T WORK WHEN TOGGLE HAPPENED ALREADY
var toggled=0;
function toggle(x)
	{	
	toggled++;
	var tab='tab_'+x;
	var button='button_'+x;
	
	displayState = (displayState == 'block') ? 'none' : 'block';
	var element = document.getElementById(tab);
	element.style.display = displayState;
	//alert(displayState);
	/*alert('document.getElementById('+tab+')');
	alert("style.display=");
	alert(displayState);*/
	
	// TOGGLE TO THE CORRECT DISPLAY
	var parts = document.getElementsByTagName('div');
	for(i=0; i<parts.length; i++)
		{
		if((parts[i].className=='tabbed_content'))
			{
			thisid = parts[i].getAttribute('id');
			if(thisid!=tab)
				{
				document.getElementById(thisid).style.display='none';
				}
			}
		}
	displayState = (displayState == 'block') ? 'none' : 'block';
	
	
	var bits = document.getElementsByTagName('span');
	for(i=0; i<bits.length; i++)
		{
		if((bits[i].className=='highlight'))
			{
			thisid = bits[i].getAttribute('id');
			if(thisid!=button)
				{
				document.getElementById(thisid).style.color='#999999';
				document.getElementById(thisid).style.textDecoration='none';
				document.getElementById(thisid).style.borderColor='#dddddd';
				}
			else 
				{
				document.getElementById(thisid).style.color='#407f20';
				document.getElementById(thisid).style.textDecoration='underline';
				document.getElementById(thisid).style.borderColor='#bbbbbb';
				}
			}
		}

	}

function auto_toggle() {
	if ((document.getElementById('button_1'))&&(toggled==0)) {
		toggle(1); }
	}

function selectCalcTab() {
	if (document.getElementById('toggle_2')) {
		toggle(2);
	}
}


function hide()
	{	
	var tables = document.getElementsByTagName('table');
	if(tables.length > 0)
		{
		for( x=0; x < tables.length; x++ )
			{
			// DON'T HIDE THE FIRST (WE'LL NEED THIS ONE)
			if(tables[x].className=='tab' && x > 1)
				{
				tables[x].style.display='none';
				}
			}
		}
	}
	
function valArea() {
		if((document.getElementById("areaLawn").value!="")&&(document.getElementById("lawnDepth").value=="")) {
				alert("Please enter the depth of coverage");
				return false;
		}else if((document.getElementById("areaLawn").value=="")&&(document.getElementById("numberBags").value=="")) {
			alert("Please enter the area and depth of your\nlawn or the number of bags required.");
			return false;
		}else{
			return true;
		}
		
}


// OPENS LINK WITH CLASS AS 'company_info' IN NEW WINDOW
function standard_popup() {
	var x = document.getElementsByTagName('a');
	for (var i=0;i<x.length;i++) {
		if (x[i].className == 'standard_popup') {
			x[i].onclick = function () {
				window.open(this.href,'standard_popup');
				return false; }
			x[i].title += ' (Opens in new window)'; } } }


// OPENS LINK WITH CLASS AS 'company_info' IN NEW WINDOW
function coinfopop() {
	var x = document.getElementsByTagName('a');
	for (var i=0;i<x.length;i++) {
		if (x[i].className == 'company_info') {
			x[i].onclick = function () {
				window.open(this.href,'company_info','height=350,width=400,scrollbars=1,resizable=1');
				return false; }
			x[i].title += ' (Opens in new window)'; } } }


// OPENS LINK WITH CLASS AS 'open_readme' IN NEW WINDOW
function readmepop() {
	var x = document.getElementsByTagName('a');
	for (var i=0;i<x.length;i++) {
		if (x[i].className == 'open_readme') {
			x[i].onclick = function () {
				window.open(this.href,'readme','height=550,width=770,scrollbars=1,resizable=1');
				return false; }
			x[i].title += ' (Opens in new window)'; } } }


// OPENS LINK WITH CLASS AS 'rolawn_video' IN NEW WINDOW
function rolvidpop() {
	var x = document.getElementsByTagName('a');
	for (var i=0;i<x.length;i++) {
		if (x[i].className == 'rolawn_video') {
			x[i].onclick = function () {
				window.open(this.href,'rolawn_video','height=450,width=375,toolbar=0,directories=0,status=0,menubar=0,location=0,scrollbars=0,resizable=0');
				return false; }
			x[i].title += ' (Opens in new window)'; } } }

// JavaScript Document

//ALLOWS EXTERNAL LINKS TO BE OPENED IN A NEW WINDOW WITHOUT THE USE OF TARGET ATTRIBUTE
//LOOPS THROUGH LINKS ON PAGE FINDS EXTERNAL LINKS AND ADDS TARGET//
function externalLinks() {
	//SETS DOMAIN OF SITE
	var domainName=document.domain;
	
	//FIND ALL LINKS ON THE CURRENT PAGE
	var externalLinks=document.getElementsByTagName("a");
	//LOOP THROUGH LINKS ARRAY
	for(var i=0; i<externalLinks.length; i++) {
		//GETS CONTENT OF 'HREF' ATTRIBUTE ON CLICKED LINK
		var attribute=externalLinks[i].getAttribute("href");
		
		//GET VALUE http IN 'HREF' **FOR MOZILLA&&
		var contains_http=attribute.indexOf("http");
		
		//GET VALUE domainName **FOR IE**
		var contains_domain=attribute.indexOf(domainName);
		
		//DOES CONTAIN AN 'http' OR DOES NOT CONTAIN domainName
		if(contains_http>-1 && contains_domain==-1) {
			//SET NEW ATTRIBUTE ON LINK
			externalLinks[i].setAttribute("target", "_blank");
		}
		
	}
	
}


// COMPLETES DELIVERY ADDRESS THE SAME AS STANDARD ADDRESS
/*
function same_delivery() {
	if (document.getElementById('same_del')) {
		// SPAN TO SHOW BUTTON WHICH AUTO-COMPLETES DELIVERY ADDRESS
		document.getElementById('same_del').innerHTML='<input type="checkbox" class="checkbox" name="same_address" id="same_address" value="" />';
		document.getElementById('same_del').innerHTML+='<label for="same_address">Please click here if your delivery address is the same as your billing address.</label>';
		var default_del_add1=document.getElementById('del_add1').value;
		var default_del_add2=document.getElementById('del_add2').value;
		var default_del_add3=document.getElementById('del_add3').value;
		var default_del_town=document.getElementById('del_town').value;
		var default_del_county=document.getElementById('del_county').value;
		var default_del_pc=document.getElementById('del_pc').value;
		// ACTION WHEN USER CLICKS BUTTON
		document.getElementById('same_del').onclick=function() {
			if (document.getElementById('same_address').checked==true) {
				if ((document.getElementById('address1'))&&(document.getElementById('del_add1'))) {
					document.getElementById('del_add1').value=document.getElementById('address1').value;
				}
				if ((document.getElementById('address2'))&&(document.getElementById('del_add2'))) {
					document.getElementById('del_add2').value=document.getElementById('address2').value;
				}
				if ((document.getElementById('address3'))&&(document.getElementById('del_add3'))) {
					document.getElementById('del_add3').value=document.getElementById('address3').value;
				}
				if ((document.getElementById('town'))&&(document.getElementById('del_town'))) {
					document.getElementById('del_town').value=document.getElementById('town').value;
				}
				if ((document.getElementById('county'))&&(document.getElementById('del_county'))) {
					document.getElementById('del_county').value=document.getElementById('county').value;
				}
				if ((document.getElementById('postcode'))&&(document.getElementById('del_pc'))) {
					document.getElementById('del_pc').value=document.getElementById('postcode').value;
				}
				
			}
			else {
				document.getElementById('del_add1').value=default_del_add1;
				document.getElementById('del_add2').value=default_del_add2;
				document.getElementById('del_add3').value=default_del_add3;
				document.getElementById('del_town').value=default_del_town;
				document.getElementById('del_county').value=default_del_county;
				document.getElementById('del_pc').value=default_del_pc;
			}
		}
	}
}
*/


// COMPLETES DELIVERY ADDRESS THE SAME AS STANDARD ADDRESS
function same_mr_delivery() {
	if (document.getElementById('same_mr_del')) {
		// SPAN TO SHOW BUTTON WHICH AUTO-COMPLETES DELIVERY ADDRESS
		document.getElementById('same_mr_del').innerHTML='<input type="checkbox" class="checkbox" name="same_mr_address" id="same_mr_address" value="" />';
		document.getElementById('same_mr_del').innerHTML+='<label for="same_mr_address">Please click here if your delivery address is the same as your billing address.</label>';
		var default_del_add1=document.getElementById('register_del_add1').value;
		var default_del_add2=document.getElementById('register_del_add2').value;
		var default_del_add3=document.getElementById('register_del_add3').value;
		var default_del_town=document.getElementById('register_del_town').value;
		var default_del_county=document.getElementById('register_del_county').value;
		var default_del_pc=document.getElementById('register_del_pc').value;
		// ACTION WHEN USER CLICKS BUTTON
		document.getElementById('same_mr_del').onclick=function() {
			if (document.getElementById('same_mr_address').checked==true) {
				if ((document.getElementById('register_address1'))&&(document.getElementById('register_del_add1'))) {
					document.getElementById('register_del_add1').value=document.getElementById('register_address1').value;
				}
				if ((document.getElementById('register_address2'))&&(document.getElementById('register_del_add2'))) {
					document.getElementById('register_del_add2').value=document.getElementById('register_address2').value;
				}
				if ((document.getElementById('register_address3'))&&(document.getElementById('register_del_add3'))) {
					document.getElementById('register_del_add3').value=document.getElementById('register_address3').value;
				}
				if ((document.getElementById('register_town'))&&(document.getElementById('register_del_town'))) {
					document.getElementById('register_del_town').value=document.getElementById('register_town').value;
				}
				if ((document.getElementById('register_county'))&&(document.getElementById('register_del_county'))) {
					document.getElementById('register_del_county').value=document.getElementById('register_county').value;
				}
				if ((document.getElementById('register_postcode'))&&(document.getElementById('register_del_pc'))) {
					document.getElementById('register_del_pc').value=document.getElementById('register_postcode').value;
				}
				
			}
			else {
				document.getElementById('register_del_add1').value=default_del_add1;
				document.getElementById('register_del_add2').value=default_del_add2;
				document.getElementById('register_del_add3').value=default_del_add3;
				document.getElementById('register_del_town').value=default_del_town;
				document.getElementById('register_del_county').value=default_del_county;
				document.getElementById('register_del_pc').value=default_del_pc;
			}
		}
	}
}



// COMPLETES DELIVERY ADDRESS THE SAME AS STANDARD ADDRESS
function same_md_delivery() {
	if (document.getElementById('same_md_del')) {
		// SPAN TO SHOW BUTTON WHICH AUTO-COMPLETES DELIVERY ADDRESS
		document.getElementById('same_md_del').innerHTML='<input type="checkbox" class="checkbox" name="same_md_address" id="same_md_address" value="" />';
		document.getElementById('same_md_del').innerHTML+='<label for="same_md_address">Please click here if your delivery address is the same as your billing address.</label>';
		var default_del_add1=document.getElementById('update_del_add1').value;
		var default_del_add2=document.getElementById('update_del_add2').value;
		var default_del_add3=document.getElementById('update_del_add3').value;
		var default_del_town=document.getElementById('update_del_town').value;
		var default_del_county=document.getElementById('update_del_county').value;
		var default_del_pc=document.getElementById('update_del_pc').value;
		// ACTION WHEN USER CLICKS BUTTON
		document.getElementById('same_md_del').onclick=function() {
			if (document.getElementById('same_md_address').checked==true) {
				if ((document.getElementById('update_address1'))&&(document.getElementById('update_del_add1'))) {
					document.getElementById('update_del_add1').value=document.getElementById('update_address1').value;
				}
				if ((document.getElementById('update_address2'))&&(document.getElementById('update_del_add2'))) {
					document.getElementById('update_del_add2').value=document.getElementById('update_address2').value;
				}
				if ((document.getElementById('update_address3'))&&(document.getElementById('update_del_add3'))) {
					document.getElementById('update_del_add3').value=document.getElementById('update_address3').value;
				}
				if ((document.getElementById('update_town'))&&(document.getElementById('update_del_town'))) {
					document.getElementById('update_del_town').value=document.getElementById('update_town').value;
				}
				if ((document.getElementById('update_county'))&&(document.getElementById('update_del_county'))) {
					document.getElementById('update_del_county').value=document.getElementById('update_county').value;
				}
				if ((document.getElementById('update_postcode'))&&(document.getElementById('update_del_pc'))) {
					document.getElementById('update_del_pc').value=document.getElementById('update_postcode').value;
				}
				
			}
			else {
				document.getElementById('update_del_add1').value=default_del_add1;
				document.getElementById('update_del_add2').value=default_del_add2;
				document.getElementById('update_del_add3').value=default_del_add3;
				document.getElementById('update_del_town').value=default_del_town;
				document.getElementById('update_del_county').value=default_del_county;
				document.getElementById('update_del_pc').value=default_del_pc;
			}
		}
	}
}



// SELECT JUMP TO 
function jump_to() {
	if (document.getElementById('jump_to')) {
		document.getElementById('jump_to').onchange=function() {
			document.location.href=document.getElementById('jump_to').value;
		}
	}
}


/*
// CHECKOUT TEMPERATURE BAR
function temperature(stage) {
	hide_stages();
	document.getElementById('stage_1_button').className='';
	document.getElementById('stage_2_button').className='';
	document.getElementById('stage_3_button').className='';
	document.getElementById('stage_4_button').className='';
	document.getElementById('stage_5_button').className='';
	if (stage>0) {
		document.getElementById('stage_1_button').className='complete';
	}
	if (stage>1) {
		document.getElementById('stage_2_button').className='complete';
	}
	if (stage>2) {
		document.getElementById('stage_3_button').className='complete';
	}
	if (stage>3) {
		document.getElementById('stage_4_button').className='complete';
	}
	if (stage>4) {
		document.getElementById('stage_5_button').className='complete';
	}
	show_stage(stage);
}

function hide_stages() {
	window.scrollBy(-10000,-10000);
	var stages=document.getElementsByTagName('div');
	if(stages.length>0) {
		for(x=0;x<stages.length;x++) {
			// IF CLASS BEGINS WITH 'checkout_stage_'
			var stage_class=stages[x].className;
			if (stage_class.substring(0,15)=='checkout_stage_') {
				stages[x].style.display='none';
			}
		}
	}
}

function show_stage(stage) {
	var stages=document.getElementsByTagName('div');
	if(stages.length>0) {
		for(x=0;x<stages.length;x++) {
			// IF CLASS BEGINS = 'checkout_stage_' + stage
			var stage_class=stages[x].className;
			var req_stage='checkout_stage_'+stage;
			if (stage_class==req_stage) {
				stages[x].style.display='block';
			}
		}
	}
}

// GO TO NEW STAGE
function goto(ref) {
	var stage=ref.substring((ref.length-1),(ref.length));
	temperature(stage);
}



function proceed_buttons()
	{	
	var span=document.getElementsByTagName('span');
	if(span.length>0) {
		for(x=0;x<span.length;x++) {
			// IF CLASS='goto'
			if(span[x].className=='goto') {
				span[x].onclick=function() {
					goto(this.id);
				}
			}
		}
	}
}
*/	


function popUpWindowsBrochure() {
	
	var links = document.getElementsByTagName('a'); //MAKE ARRAY OF LINKS
	var url = '';
	
	for(var i=0; i<links.length; i++) { //LOOP LINKS
		
		links[i].onclick = function() { //LINK CLICKED
	
			var classes = this.className; //GET CLASS NAMES
			
			if(classes != '') {
			
				var splitClasses = classes.split(' '); //EXPLODE CLASSES ON SPACE ' '
				
				for(var x=0; x<splitClasses.length; x++) { //LOOP THROUGH MULTIPLE CLASSNAMES
				
					if(splitClasses[x].indexOf('full_popup_window') > -1) { //IS LINK A POPUP WINDOW
				
						url = this.getAttribute('href'); //FINDS WHAT PAGE WINDOW IS TO SHOW
						
						//var dimentions = getDimentions(splitClasses[x]); //GET DIMENTIONS
						
						var userheight = screen.height;
						var userwidth = screen.width;
					
						var newWindow = window.open(url, '', 'width='+userwidth+', height='+userheight+', scrollbars=yes, resize=yes'); //SET NEW WINDOW
						
						newWindow; //LAUNCH
						
						return false; //STOP LINK
					
					}
				
				}
			
			}
		
		}
	
	}
	
}


// OPENS LINK WITH CLASS AS 'open_newsletter' IN NEW WINDOW
function newsletters() {
	var x = document.getElementsByTagName('a');
	for (var i=0;i<x.length;i++) {
		if (x[i].className == 'open_newsletter') {
			x[i].onclick = function () {
				window.open(this.href,'readme','height=500,width=600,scrollbars=1,resizable=1');
				return false; }
			x[i].title += ' (Opens in new window)'; } } }




// TEXTAREA MAXLENGTH FUNCTION TAKEN FROM: http://www.quirksmode.org/dom/maxlength.html
function setMaxLength() {
	var x = document.getElementsByTagName('textarea');
	for (var i=0;i<x.length;i++) {
		if (x[i].getAttribute('maxlength')) {
			x[i].onkeyup = x[i].onchange = checkMaxLength;
			x[i].onkeyup();
		}
	}
}

// TEXTAREA MAXLENGTH FUNCTION TAKEN FROM: http://www.quirksmode.org/dom/maxlength.html
function checkMaxLength() {
	var maxLength = this.getAttribute('maxlength');
	var currentLength = this.value.length;
	if (currentLength > maxLength) {
		this.innerText = this.value.substring(0,maxLength);
		alert('You have reached the maximum allowed characters ('+maxLength+') for this field.  Please try to shorten your comments in order to fit in all the required information.');
	}
}




// Auto-submit directed search form
function directedSearchAutoSubmit() {
	// Look for all selects
	var selects=document.getElementsByTagName('select');
	for (s=0;s<selects.length;s++) {
		// See if a value has already been selected (before full page load) and submit form if so
		if ((selects[s].className=='directed_search_dropdown')&&(selects[s].value!='')) {
			var form=selects[s].parentNode;
			form.submit();
		}
		// Create a function to submit the form whenever the dropdown is changed
		if (selects[s].className=='directed_search_dropdown') {
			selects[s].onchange=function() {
				var form=this.parentNode;
				form.submit();
			}
		}
	}
	// Hide the form go buttons
	var inputs=document.getElementsByTagName('input');
	for (i=0;i<inputs.length;i++) {
		if (inputs[i].className=='ds_go') {
			inputs[i].style.display="none";
		}
	}
}



// Flicks between delivery slot weeks
function deliverySlots(show) {
	
	var weeks=13;
	var proceed=false;
	
	for (i=0;i<weeks;i++) {
		var wk_id='wn_'+i;
		proceed=true;
		if (document.getElementById(wk_id)!=null) {
			
			if (i!=show) {
				document.getElementById(wk_id).style.display='none';
			} else {
				document.getElementById(wk_id).style.display='block';
			}
		}
	}
	
	// Create buttons for weeks - on first week there should be no "previous week" button, and last week should have no "next week" button
	if (proceed) {
		var buttons='';
		if (show>0) {
			buttons+='<span class="left_button" onclick="deliverySlots('+(show-1)+')">Previous Week</span>';
		} else {
			buttons+='<span class="left_button"></span>';
		}
		if (show<(weeks-1)) {
			buttons+='<span class="right_button" onclick="deliverySlots('+(show+1)+')">Next Week</span>';
		} else {
			buttons+='<span class="right_button"></span>';
		}
		if (document.getElementById('wk_buttons')!=null) {
			document.getElementById('wk_buttons').innerHTML=buttons;
		}
	}
	
}



// Prevent payment form being submitted more than once in succession
function preventDoubleSubmission() {
	
	// Ensure we're on the page with the payment form
	if (document.getElementById('enter_payment_details')) {

		// Define payment form
		var payment_form=document.getElementById('enter_payment_details');
		// Run function on 'onsubmit' handler
		payment_form.onsubmit=function() {
			// Disable button to prevent resubmitting
			document.getElementById('enter_payment_details_button').disabled="disabled";
		}
		
	}
	
}


// Ensure PayPal delivery instruction is caught, even when user does not click 'Update'
function paypalDeliveryInstructionFallback() {
	
	// Ensure we're on the page with the fallback
	if (document.getElementById('paypal_delivery_instructions_fallback')) {

		// Define order complete form
		var complete_form=document.getElementById('enter_payment_details');
		// Run function on 'onsubmit' handler
		complete_form.onsubmit=function() {
			// Copy details from delivery instructions textarea
			document.getElementById('paypal_delivery_instructions_fallback').value=document.getElementById('paypal_delivery_instructions').value;
			//alert(document.getElementById('paypal_delivery_instructions_fallback').value);
		}
		
	}
	
}


//EXECUTES ONLOAD FUNCTIONS
function loadfunctions() {
	deliverySlots(0); // Show initial delivery slot week
	externalLinks();
	popUpWindowsBrochure();
	//same_delivery();
	same_mr_delivery();
	same_md_delivery();
	hide();
	//hide_stages();
	//show_stage(1);
	standard_popup();
	coinfopop();
	rolvidpop();
	auto_toggle();
	selectCalcTab();
	jump_to();
	readmepop();
	newsletters();
	setMaxLength();
	directedSearchAutoSubmit();
	preventDoubleSubmission();
	paypalDeliveryInstructionFallback();
	//proceed_buttons();
}
//LOADS IN MULTIPLE FUNCTIONS ONLOAD
window.onload=loadfunctions;