function validate_order() {
	
	var nameField = document.getElementById('name');
	var authField = document.getElementById('authorised_by');
	var emailField = document.getElementById('email_confirmation');
	var orderField = document.getElementById('order_number');
	
	var errors = 0;
	var error_message = '<div class="message"><p>Some of the information appears to be missing:</p><ul>';
	var error_container = document.getElementById('error_container');
	error_container.innerHTML = '';
	
	if ( nameField.value == '' ) {
		error_message += '<li>You have not entered your name</li>';
		errors = 1;
	}
	
	
	if ( authField.value == '' ) {
		error_message += '<li>You have not entered who the order was authorised by</li>';
		errors = 1;
	}

	if ( emailField.value == '' ) {
		error_message += '<li>You have not the email address for the order confirmation</li>';
		errors = 1;
	}

	if ( emailField.value != '' && ! (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(emailField.value)) ) {
		error_message += '<li>The email address you entered for the order confirmation does not appear to be correct</li>';
		errors = 1;
	}

	
	if ( orderField.value == '' ) {
		error_message += '<li>You have not entered an order number</li>';
		errors = 1;
	}
	
	if ( errors == 1 ) {
		error_message += '</ul></div>';
		error_container.innerHTML = error_message;
		return false;
	} else {
		return true;
	}


}

function validate_qty( label, id, maxQty, nosize ) {
	
	var errors = 0;
	var qtyField = document.getElementById('prod_'+id+'_'+label+'_qty');
	var sizeField = document.getElementById('prod_'+id+'_'+label+'_size');

	var warning_container = document.getElementById('warning_container_'+id);
	if ( nosize == 'yes' ) {
		var warning_message = '<div class="message">The maximum quantity you can order is ' + maxQty + '</div>';
	} else {
		var warning_message = '<div class="message">Please enter a size and quantity<br />The maximum quantity you can order is ' + maxQty + '</div>';
	}

	if ( parseInt(qtyField.value) > parseInt(maxQty) ) {
		qtyField.style.border = '1px solid #ff0000';
		warning_container.innerHTML = warning_message;
		errors = 1;
	} else {
		qtyField.style.border = '1px solid #dbdbdb';
		warning_container.innerHTML = '';
	}

	if ( nosize != 'yes' ) {
		if ( parseInt(qtyField.value) > 0 && sizeField.value == '' ) {
			sizeField.style.border = '1px solid #ff0000';
			warning_container.innerHTML = warning_message;
		} else {
			if ( errors == 0 ) {
				sizeField.style.border = '1px solid #dbdbdb';
				warning_container.innerHTML = '';
			}
		}
	}


}

function focus_login( el ) {

	var u = document.getElementById('u');
	var p = document.getElementById('p');
	var p_field = document.getElementById('p_field');

	switch ( el ) {
	
		case 'u' :
			if ( u.value == 'USERNAME' ) {
				u.value = '';
			}
			break;
			
		
		case 'p' :
			if ( p.value == 'PASSWORD' ) {
				p.setAttribute('type', 'password');
				p.value = '';
			}
			break;
	
	
	}

}

function blur_login( el ) {

	var u = document.getElementById('u');
	var p = document.getElementById('p');

	switch ( el ) {
	
		case 'u' :
			if ( u.value == '' ) {
				u.value = 'USERNAME';
			}
			break;
		
		case 'p' :
			if ( p.value == '' ) {
				p.setAttribute('type', 'text');
				p.value = 'PASSWORD';
			}
			break;
	
	}

}

function validate_login() {

	var u = document.getElementById('u');
	var p = document.getElementById('p');

	var errors = 0;
	var error_message = '';
	
	if ( u.value == '' || u.value == 'USERNAME' ) {
		errors = 1;
	}
	
	if ( p.value == '' || p.value == 'PASSWORD' ) {
		errors = 1;
	}
	
	if ( errors == 1 ) {
		error_message = 'You have not entered your username and password';
		alert( error_message );
		return false;
	} else {
		return true;	
	}
	
}


//	open external links in a new window - replaces target="_blank"
	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"; 
		} 
	} 

//	preload images
	function preload_images () {
		arImageSrc = new Array ();
		arImageList = new Array ();
		for (counter in arImageSrc) {
			arImageList[counter] = new Image();
			arImageList[counter].src = arImageSrc[counter];
		}
	}


//	add given page to favourites (bookmark)
	function setBookmark ( url, str ) {
		if ( str == '' ) str = url;
		if ( document.all ) window.external.AddFavorite( url, str );
		else alert( 'Sorry, this function only works in Internet Explorer.\n\nPlease press CTRL and D to add a bookmark to \n"' + str + '".' );
	}

//	toggle a given elements visibility
	function toggle (el) {
		if ( document.getElementById(el).style.display == 'none' ) {
			document.getElementById(el).style.display = '';
		} else {
			document.getElementById(el).style.display = 'none';
		}
	}

//	show a given element
	function show (el) {
		if ( document.getElementById(el) != undefined ) document.getElementById(el).style.display = '';
	}

//	activate the correct navigation
	function activate_nav() {
		var fullpath = location.pathname;
		var patharray = fullpath.split('/');
		var folderposition = patharray.length - 1;
		var filename = patharray[folderposition];
		var filearray = filename.split('.');
		var nav = filearray[0];
		if ( nav == 'index' || nav == '' ) {
			nav = 'home';
		}
		if ( nav == 'search' || nav == 'email' ) {
			nav = 'blank';
		}
		if ( gup('b') != '' ) {
			nav = gup('b');
		}
		if ( document.getElementById('nav_'+nav) != undefined ) document.getElementById('nav_'+nav).className = 'selected';
	}

//	show a given navigation
	function show_nav(nav) {
		var fullpath = location.pathname;
		var patharray = fullpath.split('/');
		var folderposition = patharray.length - 2;
		document.getElementById('nav').src = 'media/images/nav_' + nav + '.gif';
	}

//	restore the navigation depending on the current page
	function restore_nav() {
		var fullpath = location.pathname;
		var patharray = fullpath.split('/');
		var folderposition = patharray.length - 1;
		var filename = patharray[folderposition];
		var filearray = filename.split('.');
		var filename = filearray[0];
		var nav2show = '';
		switch ( filename ) {
			case 'about' :
				nav2show = 'nav_about';
				break;
			case 'blog' :
				nav2show = 'nav_blog';
				break;
			case 'shop' :
				nav2show = 'nav_shop';
				break;
			case 'links' :
				nav2show = 'nav_links';
				break;
			case 'contact' :
				nav2show = 'nav_contact';
				break;
			case 'denandtheartof.co.uk' :
			case 'index' :
			case '' :
				nav2show = 'nav_home';
				break;
			default :
				nav2show = 'nav_blank';
				break;
		}
		if ( nav2show == '' ) {
			nav2show = 'nav_home';
		}
		document.getElementById('nav').src = 'media/images/' + nav2show + '.gif';
	}

//	when search field received focus
	function focus_search() {
		if ( document.getElementById('q').value == 'search...' ) {
			document.getElementById('q').value = '';
		}
	}
	
	function blur_search() {
		if ( document.getElementById('q').value == '' ) {
			document.getElementById('q').value = 'search...';
		}
	}

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];
}

//	perform the following functions when the page loads
	window.onload = function(e) {
		externalLinks();
		activate_nav();
	}