var labels = {};
labels["commissioner"] = "Commissioner";
labels["lastname"] = "Last name";

var checked = false; // set to false onload

function list_type_submit(typeselect) {
	var typeform = typeselect.parentNode;
	//dom_alert_node(typeform);
	typeform.submit();
}
function select_all() {
	if (checked) {
		deselect_all();
	} else {
		select_all2();
	}
}
function select_all2() {
	checked = true
	var inputs	= document.getElementsByTagName('input');
	for (var i in inputs) {
		if (inputs[i].name=="check_id[]") {
			inputs[i].checked=checked;
		}
	}
}

function deselect_all() {
	checked = false
	var inputs	= document.getElementsByTagName('input');
	for (var i in inputs) {
		if (inputs[i].name=="check_id[]") {
			inputs[i].checked=checked;
		}
	}	
}
function click_check(checkbox) {
	var item = checkbox.parentNode.parentNode; // checkbox <-- td <-- tr
	if (checkbox.checked) {
		item.className = item.className.replace("item_select", "item");
		item.className = item.className.replace("item", "item_select");
	} else {
		item.className = item.className.replace("item_select", "item");
	}
}
var radio_item = false;
function click_radio(radiobutton) {
	if (radio_item!=false) {
		radio_item.className="item";
	}
	radio_item = radiobutton.parentNode.parentNode; // checkbox <-- td <-- tr
	radio_item.className = "select_merge";
}

function submit_check(_form) {
	var feedback		= "";
	
	// commissioner
	var comm = document.getElementById("commissioner_name");
	if (comm.value=="" || comm.value==labels["commissioner"]) {
		feedback+="* Commissioner\n";
	}

	// designer
	var designer_lastname = document.getElementById("designer_lastname");
	if (designer_lastname.value=="" || designer_lastname.value==labels["lastname"]) {
		feedback+="* Designer\n";
	}

	var inputs			= document.getElementsByTagName('input');
	var selects			= document.getElementsByTagName('select');
	var textareas		= document.getElementsByTagName('textarea');
	for (var i in inputs) {
		if (typeof(inputs[i].name)!="undefined") {
			feedback+=check(inputs[i]);
		}
	}
	for (var i in selects)		{
		if(typeof(selects[i].selectedIndex)!="undefined") { // don't know why, but sometimes there's select that's not a select.
			feedback+=check(selects[i]);
		}
	}
	for (var i in textareas) {
		if(typeof(textareas[i].nodename)=="TEXTAREA") { // don't know why, but sometimes there's select that's not a select.
			feedback+=check(textareas[i]);
		}
	}
			
	// alert
	if (feedback!="") {
		alert("Please check:\n"+feedback);
		return false;
	} else {
		return true;
	}	
}

function check(node) {
	var name_format = {};
	name_format["agency_address1"]			= {format: "", label: ""};
	name_format["agency_address2"]			= {format: "", label: ""};
	name_format["agency_address3"]			= {format: "", label: ""};
	name_format["agency_name"]				= {format: "text", label: "Design studio / Agency Name"};
	name_format["agency_phone"]				= {format: "", label: ""};
	name_format["agency_homepage"]			= {format: "", label: ""};
	name_format["agency_email"]				= {format: "", label: ""};
	name_format["agency_employees"]			= {format: "", label: ""};
	name_format["agree"]					= {format: "agree", label: ""};
	name_format["award_name[]"]				= {format: "", label: ""};
	name_format["budget"]					= {format: "list", label: "Budget"};
	name_format["budget_currency"]			= {format: "list", label: "Budget Currency"};
	name_format["company_name[]"]			= {format: "", label: ""};
	name_format["company_other_id[]"]		= {format: "", label: ""};
	name_format["company_other_relation[]"]	= {format: "", label: ""};
	name_format["company_relation[]"]		= {format: "", label: ""};
	name_format["country_production[]"]		= {format: "", label: ""};
	name_format["country_production_name[]"]= {format: "", label: ""};
	name_format["country_audience[]"]		= {format: "", label: ""};
	name_format["country_audience_name[]"]	= {format: "", label: ""};
	name_format["copies"]					= {format: "number", label: "Number of copies [print run]"};
	name_format["depth"]					= {format: "number_or_empty", label: "Depth"};
	name_format["dimension_units"]			= {format: "list", label: ""};
	name_format["height"]					= {format: "number_or_empty", label: "Height"};
	name_format["importance"]				= {format: "", label: ""};
	name_format["image"]					= {format: "image", label: "Image"};
	name_format["medium[]"]					= {format: "", label: ""};
	name_format["medium_name[]"]			= {format: "", label: ""};
	name_format["month"]					= {format: "", label: ""};
	name_format["person_relation[]"]		= {format: "", label: ""};
	name_format["person_firstname[]"]		= {format: "", label: ""};
	name_format["person_middlename[]"]		= {format: "", label: ""};
	name_format["person_lastname[]"]		= {format: "", label: ""};
	name_format["person_other_id[]"]		= {format: "", label: ""};
	name_format["person_other_relation[]"]	= {format: "", label: ""};
	name_format["submit"]					= {format: "", label: ""};
	name_format["title"]					= {format: "text", label: "Title"};
	name_format["width"]					= {format: "number_or_empty", label: "Width"};
	name_format["year"]						= {format: "", label: ""};
	name_format["you_firstname"]			= {format: "text", label: "Contact details - First name"};
	name_format["you_middlename"]			= {format: "", label: "Contact details - Suffix"};
	name_format["you_lastname"]				= {format: "text", label: "Contact details - Last name"};
	name_format["you_email"]				= {format: "email", label: "Contact details - email"};
	name_format["you_phone"]				= {format: "", label: ""};
	name_format["you_homepage"]				= {format: "", label: ""};
	
	var feedback = "";
	var name	= node.name;
	var info	= name_format[name]
	if (typeof(info)=="undefined") {
		//dom_alert_node("no info for "+name,node);
	} else {
		var format	= info["format"];
		var or_empty= (format.indexOf("or_empty")>-1)
		var format	= format.replace("_or_empty", "");
		var label	= info["label"];
		//alert(name+" "+format);
		switch(format) {
			case "agree":
				if (node.checked==false) {
					feedback +="* Please agree with our terms and conditions\n";
				}
				break;
				
			case "email":
					if (node.value=="") {
						feedback = "* "+label+"\n";
					}
						/*if ((theForm.email.value.indexOf ('@',0) == -1 ||
			   theForm.email.value.indexOf ('.',0) == -1) &&
			   theForm.email.value != "")
			  {
			    error += "Please verify that your email address is valid.";
			  } */
				break;
				
			case "image":
				if (node.value=="") {
					feedback="* "+label+"\n";
				} else {
					var ext = get_extension(node.value);
					//alert(ext);
					if (ext!="jpg" && ext!="png" && ext!="pdf" && ext!="ai" && ext!="eps") {
						feedback="* Choose a jpg/png/pdf/ai/eps image.\n";
					}
				}
				break;
			case "list":
					var option	= node.options[node.selectedIndex];
					if (option=="choose") {
						feedback="* "+label+"\n";
					}
					break;
			case "text":
					if (node.value=="" ||
						node.value=="First name" ||
						node.value=="Suffix" ||
						node.value=="Last name"
						) {
						feedback = "* "+label+"\n";
					}
					break;
			case "number":
					var value	= node.value.replace(",", ".");
					if (value=="") {
						if (!or_empty) {
							feedback = "* "+label+"\n";
						}
					} else {
						value = string_to_number(value);
						if (isNaN(value)) {
							feedback = "* enter a number at "+label+"\n";
						}
					}
					break;
		}
	}
	return feedback;
}
function field_clear(field, value) {
	if (field.value==value) {field.value="";}
}
function field_duplicate(morebutton) {
	var p			= morebutton.parentNode;
	var container	= dom_getChildByClass(p, "js_container");
	var original	= dom_getChildByClass(container, "js_original");
	var copy		= original.cloneNode(true);
	container.appendChild(copy);	
}
function get_extension(fname) {
	var pos			= fname.lastIndexOf(".");
	var strlen		= fname.length;
	var extension	= "";	
	if (pos!=-1 && strlen!=pos+1){
		var ext = fname.split(".");	
		var len = ext.length;	
		var extension = ext[len-1].toLowerCase();
	}
	return extension;
}
function string_to_number(value) {
	value = value.replace(",", ".")
	var pieces	= value.split(".");
	if (pieces.length==1) {
		value = pieces[0];
	} else {
		value = "";
		for (var i=0;i<pieces.length-1;i++) {
			value+=pieces[i];
		}
		value+="."+pieces[pieces.length-1];
	}
	return value;
}
