

var Nav = {

	init: function(){
	
		/* listen for clicks on navL1's to go to pages */
		
		var navL1s = $(".navL1");
	
		for(var x = 0; x < navL1s.length; x++){
	
			$(navL1s[x]).click(Nav.goToURL);

		}
		
		/* listen for clicks on navL1's to open L2's */
		
		var navL1openers = $(".navL1opener");
	
		for(var x = 0; x < navL1openers.length; x++){
		
			$(navL1openers[x]).click(Nav.openL2);

		}
		
		/* listen for clicks on navL2's to go to urls */
		
		var navL2s = $(".navL2");
	
		for(var x = 0; x < navL2s.length; x++){

			$(navL2s[x]).click(Nav.goToURL);
		
		}
		
		/* listen for clicks on navL2's to open L3's */
		
		var navL2openers = $(".navL2opener");
	
		for(var x = 0; x < navL2openers.length; x++){
		
			$(navL2openers[x]).click(Nav.openL3);
		
		}
		
		// open the nav to current page
		Nav.openCurrentLocation();
	
	},
	
	openCurrentLocation: function(){
	
		// get any li's with selected class
		var selectedL1s = $(".selectedL1");
		
		// alert(selectedL1s.length);
		
		for(var x=0; x < selectedL1s.length; x++){
		
			// work out ID of first child
			var objectLi = selectedL1s[x].firstChild;
			var pageID = objectLi.id;
	
			// open any nav L2's for any L1's with "selected" class
			Nav.openCurrentL2(pageID);
			
		}
		
		// get any li's with selected class
		var selectedL2s = $(".selectedL2");
		
		// alert(selectedL2s.length);
		
		for(var x=0; x < selectedL2s.length; x++){
		
			// work out ID of first child
			var objectLi = selectedL2s[x].firstChild;
			var pageID = objectLi.id;
			
			// open any nav L3's for any L2's with "selected" class
			Nav.openCurrentL3(pageID);
			
		}
	
	},
	
	goToURL: function(){
	
		// get first child
		var childs = this.childNodes;
		var URL = childs[1].href;
		location.href = URL;
	
	},
	
	openCurrentL2: function(pageID){
	
		var thisObject = document.getElementById(pageID);
	
		if($(thisObject).hasClass("openL1s")){
		
			return false;
		
		}else{
	
			// close open L2's
			Nav.closeL2();
			
			// add openL1 class to parent 
			$(thisObject).addClass("openL1s");
		
			/* open L2's where class contains ID of parent L1 */
			
			var parentClass = pageID;
		
			var navL2s = $("." + parentClass);
			
			if(navL2s.length > 0 ){
			
				for(var x = 0; x < navL2s.length; x++){
				
					$(navL2s[x]).slideDown(500);
				
				}
				
				// change arrow on parent
				$(thisObject).html('-');
				
				return false;
			
			}
			
		}
	
	},
	
	openCurrentL3: function(pageID){
	
		var thisObject = document.getElementById(pageID);
	
		if($(thisObject).hasClass("openL2s")){
		
			return false;
		
		}else{
	
			// close open L3's
			Nav.closeL3();
			
			// add openL2 class to parent 
			$(thisObject).addClass("openL2s");
		
			/* open L3's where class contains ID of parent L2 */	
			
			var parentClass = pageID;
		
			var navL3s = $("." + parentClass);
			
			if(navL3s.length > 0){
			
				// make parent selected
				var parent = thisObject.parentNode;
				$(parent).addClass("navL2-Selected");
				
				$(thisObject).html('-');
				
				// display L3's
				for(var x = 0; x < navL3s.length; x++){
				
					$(navL3s[x]).slideDown(500).addClass("openL3s");
				
				}
				
				return false;
			
			}
			
		}
	
	},
	
	openL2: function(){
	
		if($(this).hasClass("openL1s")){
		
			return false;
		
		}else{
	
			// close open L2's
			Nav.closeL2();
			
			// add openL1 class to parent 
			$(this).addClass("openL1s");
		
			/* open L2's where class contains ID of parent L1 */
			
			var parentClass = this.id;
		
			var navL2s = $("." + parentClass);
			
			if(navL2s.length > 0 ){
			
				for(var x = 0; x < navL2s.length; x++){
				
					$(navL2s[x]).slideDown(500);
				
				}
				
				// change arrow on parent
				var arrow = this.firstChild;
				$(this).html('-');
				
				return false;
			
			}
			
		}
	
	},
	
	openL3: function(){
	
		if($(this).hasClass("openL2s")){
		
			//alert('open already 2');
			return false;
		
		}else{
	
			// close open L3's
			Nav.closeL3();
			
			// add openL2 class to parent 
			$(this).addClass("openL2s");
		
			/* open L3's where class contains ID of parent L2 */	
			
			var parentClass = this.id;
		
			var navL3s = $("." + parentClass);
			
			if(navL3s.length > 0){
			
				// make parent selected
				var parent = this.parentNode;
				$(parent).addClass("navL2-Selected");
				
				$(this).html('-');
				
				// display L3's
				for(var x = 0; x < navL3s.length; x++){
				
					$(navL3s[x]).slideDown(500).addClass("openL3s");
				
				}
				
				return false;
			
			}
			
		}
	
	},
	
	closeL2: function(){
	
		// check for openL2 classes
		var openL2s = $(".openL2s");
		
		// loop any L2s
		for(var x = 0; x < openL2s.length; x++){
			
			// close L2
			$(openL2s[x]).hide();
		
		}
		
		var L2s = $(".navL2");
		
		// loop any L2s
		for(var x = 0; x < L2s.length; x++){
			
			// close L2
			$(L2s[x]).hide();
		
		}
		
		// close any of their open L3s
		Nav.closeL3();
		
		// remove openL1s class
		Nav.removeOpenL1();
		
		// reset all L1 arrows
		Nav.resetArrowsL1();
	
	},
	
	closeL3: function(){
	
		//alert('closing L3');
	
		// check for openL3 classes
		var openL3s = $(".openL3s");
		
		// loop any L3s
		for(var x = 0; x < openL3s.length; x++){
			
			// close L3
			$(openL3s[x]).hide();
		
		}
		
		// remove openL2s class
		Nav.removeOpenL2();
		
		// remove selected class from parent L2
		Nav.removeSelectedL2();
		
		// reset all L2 arrows
		Nav.resetArrowsL2(); 
	
	},
	
	removeOpenL1: function(){
	
		// check for openL1 classes
		var openL1s = $(".openL1s");
		
		// loop any openL1s
		for(var x = 0; x < openL1s.length; x++){
			
			// remove openL1s class 
			$(openL1s[x]).removeClass("openL1s");
		
		}
	
	},
	
	removeOpenL2: function(){
	
		// check for openL2 classes
		var openL2s = $(".openL2s");
		
		// loop any openL2s
		for(var x = 0; x < openL2s.length; x++){
			
			// remove openL2s class 
			$(openL2s[x]).removeClass("openL2s");
		
		}
	
	},
	
	removeSelectedL2: function(){
	
		// check for openL3 classes
		var navL2Selecteds = $(".navL2-Selected");
		
		// loop any L3s
		for(var x = 0; x < navL2Selecteds.length; x++){
			
			// remove selected class from parent
			$(navL2Selecteds[x]).removeClass("navL2-Selected");
		
		}
	
	},
	
	resetArrowsL1: function(){
	
		// check for open L1s
		var navL1s = $(".navL1");
		
		// loop any L1s
		for(var x = 0; x < navL1s.length; x++){
		
			// reset arrow 
			var arrow = navL1s[x].firstChild;
			var arrowHtml = $(arrow).html();
			
			if(arrowHtml == '-'){
			$(arrow).html('+');
			}
		
		}
	
	},
	
	resetArrowsL2: function(){
	
		// check for open L2s
		var navL2s = $(".navL2");
		
		// loop any L2s
		for(var x = 0; x < navL2s.length; x++){
		
			// reset arrow 
			var arrow = navL2s[x].firstChild;
			var arrowHtml = $(arrow).html();
			
			if(arrowHtml == '-'){
			$(arrow).html('+');
			}
		
		} 
	
	}
	

}


$(document).ready(Nav.init);











var Flags = {

	init: function(){
	
		var smallFlags = $(".small_flag");
		
		for(var x = 0; x < smallFlags.length; x++){
			
			$(smallFlags[x]).hover(Flags.showFlagName,Flags.hideFlagName);
		
		}
	
	},
	
	hyphenSplit: function(value){

		var split = value.indexOf("-");
		var ID = value.substr(split + 1,value.length);
		
		return ID;
	
	},
	
	showFlagName: function(){
	
		var flagName = Flags.hyphenSplit(this.id);
		
		$("#flag_name").html(flagName);	
	
	},
	
	hideFlagName: function(){
		
		$("#flag_name").html('');	
	
	}

}

$(document).ready(Flags.init);



var EnquiryValidation = {

	init: function(){
	
		$("#enquiryForm").submit(EnquiryValidation.validate);
	
	},
	
	validate: function(){
	
		var error = false;
	
		if(document.enquiry_form.name.value == ''){
		
			$("#nameRow").attr("className","tr_shade");
			var error = true;
		
		}else{
		
			if($("#nameRow").hasClass("tr_shade")){
			
				$("#nameRow").removeClass("tr_shade");
			
			}
		
		}
		
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		var x = document.enquiry_form.email.value;
		if(!filter.test(x)){
		
			$("#emailRow").attr("className","tr_shade");
			var error = true;
		
		}else{
		
			if($("#emailRow").hasClass("tr_shade")){
			
				$("#emailRow").removeClass("tr_shade");
			
			}
		
		}
		
		if(error){
		
			alert('Please complete the highlighted fields correctly.');
			return false;
		
		}else{
		
			EnquiryValidation.submitEnquiry();
			
		}
	
	},
	
	submitEnquiry: function(){

		document.new_enquiry.submit();
	
	}
	
}

$(document).ready(EnquiryValidation.init);


		

