
var form_debug = top.location.href.indexOf("debug=true") != -1 ? true : false;
var form_error_str = "";

//preload contact us form elements
function preload_form(){
	if(form_debug){
		select_mode('services');
		
		obj = get_element("form_contact_us");
		obj.elements["title"].value = "Test title";
		obj.elements["first_name"].value = "Test first name";
		obj.elements["surname"].value = "Test surname";
		obj.elements["telephone"].value = "Test telephone";
		obj.elements["email"].value = "test@test.com";
		obj.elements["enquiry"].value = "Test enquiry text 1 test enquiry text 2 test enquiry text 3 test enquiry text 4 test enquiry text 5 test enquiry text 6";
	}
}

//return an id as an object
function get_element(element_id){
	return document.getElementById(element_id);
}

//return a random integer between the lower and upper bounds passed in
function random_number(lower,upper){
    return Math.round(Math.random()*(upper-1)+1)
}

//highlight the relevant left navigation item for the pre-loaded portfolio name
function highlight_portfolio_name(portfolio_name){
	get_element(portfolio_name).className += " selected";
}

function load_portfolio_image(portfolio_name,image_number){
	var obj_img = document.createElement("IMG");
	obj_img.src = portfolio_name + "/" + image_number + "_fullsize.jpg";
	obj_img.alt = "Portfolio image";
	get_element("portfolio_fullsize").appendChild(obj_img);
}

//update w3c target attribute in line with w3c regulations
function activate_link_targets(){
	var obj_links = document.getElementsByTagName("A");
	
	for(var i=0; i<=obj_links.length-1; i++){
		obj_links[i].target = "_top";
	}
}

//update flash paramaters for main "services" section
function switch_service(service,service_for_class_switch){
	obj_flash_services.flash_paramaters = "xml_path=../xml/services.xml&section=" + service + "&image_prefix=";
	obj_flash_services.render_flash();
	
	var obj_list = get_element("left_navigation").getElementsByTagName("UL")[0].getElementsByTagName("LI");
	
	for(var i=0; i<=obj_list.length-2; i++){
		obj_list[i].className = (obj_list[i].id == service_for_class_switch) ? "selected" : "";
	}
}

//update flash paramaters for main "portfolio" section
function switch_portfolio(client_name,image_to_load,image_prefix,fade_transition,total_images){
	//update the summary information in line with the new selected image
	get_element("summary_information").getElementsByTagName("P")[0].innerHTML = xml_photo_summaries[image_to_load-1];

	obj_flash_portfolio_fullsize.flash_paramaters = "client_name=" + client_name + "&image_to_load=" + image_to_load + "&image_prefix=" + image_prefix + "&fade_transition=" + fade_transition;
	obj_flash_portfolio_fullsize.render_flash();

	//to re-render thumbnails for the sake of centralizing the selected image
	//obj_flash_portfolio_thumbnails.flash_paramaters = "client_name=" + client_name + "&image_to_load=" + image_to_load + "&image_prefix=" + image_prefix + "&total_images=" + total_images;
	//obj_flash_portfolio_thumbnails.render_flash();
}

//update flash paramaters for main "joinery" section
function switch_joinery(sublink,total_images){
	obj_flash_joinery.flash_paramaters = "xml_path../xml/joinery.xml&sublink=" + sublink + "&total_images=" + total_images;
	obj_flash_joinery.render_flash();
	
	var obj_list = get_element("sublinks").getElementsByTagName("LI");
	
	for(var i=0; i<=obj_list.length-1; i++){
		obj_list[i].className = (obj_list[i].id == sublink) ? "selected" : "";
	}
}

//switch tabs within the "clients" section
function switch_clients(mode){
	switch(mode){
		case "quotes":
			get_element("past_clients").style.display = "none";
			get_element("flash_quotes").style.display = "block";
			get_element("sub_content").style.padding = "0px";
			break;
		case "past_clients":
			get_element("flash_quotes").style.display = "none";
			get_element("past_clients").style.display = "block";
			get_element("sub_content").style.padding = "35px";
			break;
	}
}

//ensure that one a single primary navigation element is open at once
function show_navigation(element,hide_all){
	var obj_groups = get_element("flash_home").getElementsByTagName("UL");
	
	for(var i=0; i<=obj_groups.length-1; i++){
		if(hide_all){
			obj_groups[i].style.display = "none";
		}
		else{
			obj_groups[i].style.display = ("group_" + element == obj_groups[i].id) ? "block" : "none";
		}
	}
}

//retrieve sublink(s) data (scripts/primary_navigation.js), and build using dhtml here
function build_primary_navigation(group,wrapper){
	var obj_wrapper = get_element(wrapper);
	var obj_ul = document.createElement("UL");
	var obj_li;
	var obj_a;
	var obj_li_count;
	var current_group = "";
	var current_url;
	
	for(var i=0; i<=sublinks_groups.length-1; i++){
		if(sublinks_groups[i][0] == group){
			//grab the id to use, so the dhtml is in line with css declarations
			if(current_group == ""){
				current_group = sublinks_groups[i][0];
			}
			
			//update current url during iteration
			current_url = "";
			current_url = sublinks_groups[i][2];

			obj_li = document.createElement("LI");	
			obj_a = document.createElement("A");
			
			obj_a.innerHTML = sublinks_groups[i][1];
			obj_a.href = current_url;
			
			obj_li.onmouseover = function(){this.style.backgroundColor='#2c2d1c';};
			obj_li.onmouseout = function(){this.style.backgroundColor='';};
			obj_li.appendChild(obj_a);
			obj_ul.appendChild(obj_li);
		}
	}
	
	obj_ul.id = "group_" + current_group;
	obj_li_count = obj_ul.getElementsByTagName("LI");
	obj_li_count[0].className = "first";
	obj_li_count[obj_li_count.length-1].className = "last";	
	
	//set initial display state to none
	obj_ul.style.display = "none";
	
	//add ul to the page now it has been fully created
	obj_wrapper.appendChild(obj_ul);
}

//handle error message from contact us flash form
function contact_us_prompt(message){
	alert("Your comment could not be sent to CWI.\n\nPlease try again later");
}

//validate contact us form
function validate_form(form){
	var obj = get_element(form);
	var valid_form = true;

	//reset error string
	form_error_str = "";
	
	//check for mode (checkboxes)
	if(obj.elements["hidden_mode"].value == "")	{valid_form = false; error_form("mode","show");}		else{error_form("mode","hide");}
	
	if(obj.elements["first_name"].value == "")	{valid_form = false; error_form("first_name","show");}	else{error_form("first_name","hide");}
	if(obj.elements["surname"].value == "")		{valid_form = false; error_form("surname","show");}		else{error_form("surname","hide");}
	if(obj.elements["telephone"].value == "")	{valid_form = false; error_form("telephone","show");}	else{error_form("telephone","hide");}
	
	//handle email slightly differently, due to syntax check
	if(obj.elements["email"].value == ""){
		valid_form = false;
		error_form("email","show");
	}
	else{
		//check for valid email syntax
		if(!check_email_address(obj.elements["email"].value)){
			valid_form = false;
			error_form("email","hide");
			error_form("email_invalid","show");
		}
		else{
			error_form("email","hide");
			error_form("email_invalid","hide");
		}
	}
	
	if(obj.elements["enquiry"].value == "")		{valid_form = false; error_form("enquiry","show");}		else{error_form("enquiry","hide");}
	
	//update values regardless of form validity at this stage
	obj.elements["hidden_title"].value = 		obj.elements["title"].value;
	obj.elements["hidden_first_name"].value = 	obj.elements["first_name"].value;
	obj.elements["hidden_surname"].value = 		obj.elements["surname"].value;
	obj.elements["hidden_telephone"].value = 	obj.elements["telephone"].value;
	obj.elements["hidden_email"].value = 		obj.elements["email"].value;
	obj.elements["hidden_enquiry"].value = 		obj.elements["enquiry"].value;
	
	//update submission field before making ajax submission
	obj.elements["hidden_submission"].value = "";
	obj.elements["hidden_submission"].value += "send_email.asp?";
	obj.elements["hidden_submission"].value += "mode=" + obj.elements["hidden_mode"].value;
	obj.elements["hidden_submission"].value += "&title=" + obj.elements["hidden_title"].value;
	obj.elements["hidden_submission"].value += "&first_name=" + obj.elements["hidden_first_name"].value;
	obj.elements["hidden_submission"].value += "&surname=" + obj.elements["hidden_surname"].value;
	obj.elements["hidden_submission"].value += "&telephone=" + obj.elements["hidden_telephone"].value;
	obj.elements["hidden_submission"].value += "&email=" + obj.elements["hidden_email"].value;
	obj.elements["hidden_submission"].value += "&enquiry=" + obj.elements["hidden_enquiry"].value;
		
	if(valid_form){
		//all entered field criteria has been successfully met
		
		//submit form via ajax, and handle response from server
		var ajax = new ajax_request_file();
		ajax.load_file = obj.elements["hidden_submission"].value;
		ajax.mode = "contact_us_submissions";
		ajax.generate_results();		
		
		if(form_debug){
			get_element("wrapper").innerHTML = ajax.load_file;
		}
	}
	else{
		alert(form_error_str);
	}
}

//show error labels for contact us form
function error_form(element,mode){
	if(mode == "show"){
		form_error_str += "- " + get_element("error_" + element).innerHTML + "\n";
	}
}

//activate the selected checkbox
function select_mode(mode){
	var checkboxes = new Array("services","sales","careers");
	var value_supplied = false;
	
	for(var i=0; i<=checkboxes.length-1; i++){
		if(mode == checkboxes[i]){
			get_element(checkboxes[i]).className += " selected";
			get_element("form_contact_us").elements["hidden_mode"].value = mode;
			
			//hide error message for mode if it happens to already be showing
			error_form("mode","hide");
		}
		else{
			get_element(checkboxes[i]).className = get_element(checkboxes[i]).className.replace(/ selected/g,"");
		}
	}
}

//flush all cached input form values if only a "soft-refresh"
function reset_form(){
	var obj_input = get_element("form_contact_us").getElementsByTagName("INPUT");
	
	for(var i=0; i<=obj_input.length-1; i++){
		obj_input[i].value = "";
	}
}
