var fields = new Array();//new Array("fname", "lname", "bizname", "phone", "address", "email", "goods", "space", "table", "raffle", "in_out");
var errors = new Array();
var required_num = 1;

function pay() {
	var form = document.getElementById("paypal_submit");
	form.submit();
}

function setRequired(r) {
	//alert(r.length);
	fields = r;	
}

function __submission_init() {
	var form = document.getElementById("submission_form");
	if(__getSelected(form.elements["space"])==1) {
		var opt_box = document.getElementById("space_opt_box");
		var space_with_vendor = document.getElementById("space_with_vendor");
		opt_box.setAttribute("class", "opt_box visible");
		//space_with_vendor.setAttribute("style", "border: 1px solid red;");
	}
	__calculate_cost();
}

function validateSubmission(form) {
	//alert(__getSelected(form.elements["space_with"]));
	var msgs = new Array();
	
	// Validate
	var error_messages = new Array();
	var error_msgs = __validate(form, fields);
	//alert(error_msgs.length);
	
	for(var i=0; i<error_msgs.length; i++) {
		error_messages.push(error_msgs[i].fieldname);
		if(error_msgs[i].hasOwnProperty("element_id")) {
			var element = document.getElementById(error_msgs[i].element_id);
			element.setAttribute("style", "border: 1px solid red; padding: 6px;");
		}
	}
	//alert(error_messages.join("\n"));
	
	// Validate file fields
	var samples = new Array();
	var samples_ctr = document.getElementById("samples_ctr");
	var samples_headline = samples_ctr.getElementsByTagName("span");
	samples_headline = samples_headline[0];
	
	var logofile_ctr = document.getElementById("logofile_ctr");
	var logofile_headline = logofile_ctr.getElementsByTagName("span");
	logofile_headline = logofile_headline[0];
	var logofile_subhead = logofile_headline.getElementsByTagName("span");
	logofile_subhead = logofile_subhead[0];
	
	// reset styles
	samples_ctr.setAttribute("style", "border: none;");
	samples_headline.setAttribute("style", "");
	logofile_ctr.setAttribute("style", "border: none;");
	logofile_headline.setAttribute("style", "line-height: 150%; margin-bottom: 10px;");
	logofile_subhead.setAttribute("style", "margin-top: 12px;");
	
	for(var i=0; i<required_num; i++) {
		samples[i] = document.getElementById("sample"+i);
	}
	/* optional
	samples[0] = document.getElementById("sample0");
	samples[1] = document.getElementById("sample1");
	samples[2] = document.getElementById("sample2");
	samples[3] = document.getElementById("sample3");
	samples[4] = document.getElementById("sample4");
	samples[5] = document.getElementById("sample5");
	*/
	
	var logofile = document.getElementById("logofile");
	var samples_approved = true;
	var logo_approved = true;
	
	if(!checkSamples(samples)) {
		samples_approved = false;
		//msgs.push("4 samples are required");
	}
	
	if(logofile.value.length < 1) {
		logo_approved = false;
		//msgs.push("Logo file is required");	
	}
	
	//logo_approved = samples_approved = true;
	
	if(error_msgs.length>0 || !logo_approved || !samples_approved) {
		msgs.push("Please fill in all required fields.");	
	}
	
	/*
	for(var file in files) {
		alert(file + " = " + files[file]);
	}
	*/
	
	if(msgs.length > 0) {
		if(!samples_approved) {
			samples_ctr.setAttribute("style", "border: 1px solid red");
			samples_headline.setAttribute("style", "color: red;");
		}
		
		if(!logo_approved) {
			logofile_ctr.setAttribute("style", "border: 1px solid red");
			logofile_headline.setAttribute("style", "color: red; line-height: 150%; margin-bottom: 10px;");
			logofile_subhead.setAttribute("style", "color: red; margin-top: 12px;");
		}
		
		alert(msgs.join("\n"));
		return false;
	}
	
	return true;
	
}

function __validate(form, fields) {
	var errors = new Array();
	for(var i=0; i<fields.length; i++) {
		var fieldname = fields[i];
		var element_id = fieldname + "_field";
		var element = document.getElementById(element_id);
		element.setAttribute("style", "border: none; padding: 0;");
		var field = form.elements[fieldname];
		var type = typeof field;
		var val = field.value;
		var val_type = typeof val;
		//alert(fieldname);
		//alert(val_type);
		
		if(val_type != "string") {
			if(checked = __getSelected(field)) {
				val = checked;	
				if(fieldname=="goods" && val=="Other") {
					element = document.getElementById("goods_other_field");
					element.setAttribute("style", "border: none; padding: 0;");
					if(!form.elements["goods_other"].value) {
						errors.push({fieldname:"goods_other", field:form.elements["goods_other"], element: element, element_id: "goods_other_field"});
					}
				}else if(fieldname=="space" && val==1) {
					element = document.getElementById("space_with_vendor_field");
					element.setAttribute("style", "border: none; padding: 0;");
					if(__getSelected(form.elements['space_with']) == 1 && form.elements['space_with_vendor'].value.length < 1) {
						errors.push({fieldname:"space_with_vendor", field:form.elements["space_with_vendor"], element: element, element_id: "space_with_vendor_field"});
					}
				}else if(fieldname=="raffle" && val==1) {
					element = document.getElementById("raffle_item_field");
					element.setAttribute("style", "border: none; padding: 0;");
					if(form.elements["raffle_item"].value.length < 1) {
						errors.push({fieldname:"raffle_item", field:form.elements["raffle_item"], element: element, element_id: "raffle_item_field"});
					}
				}
			}else{
				errors.push({fieldname: fieldname, field: field, element: element, element_id: element_id});
			}
		} else if(!val) {
			errors.push({fieldname: fieldname, field:field, element: element, element_id: element_id});
		}
		
	}
	
	return errors;
	
}

function __getSelected(field) {
	for(var i = 0; i < field.length; i++) {
		var current = field[i];
		if(current.checked || current.selected) {
			//alert(current.value);
			return current.value;
		}
	}
	
	return false;
}

function __selection(fieldname) {
	//alert(field);
	var field = document.getElementById(fieldname + "_field");
	var field_options = field.getElementsByTagName("input");
	
	switch(fieldname) {
		case "raffle":
			var donating_cost = document.getElementById("donating_cost");
			for(var i=0; i<field_options.length; i++) {
				var field_option = field_options[i];
				if(field_option.checked) {
					if(field_option.value==1) {
						donating_cost.checked = true;	
					}else{
						donating_cost.checked = false;
					}
				}
			}
			__calculate_cost();
			break;
			
		case "table_req":
			var table6_cost = document.getElementById("table6_cost");
			var table8_cost = document.getElementById("table8_cost");
			//alert(field_options.length);
			for(var i=0; i<field_options.length; i++) {
				var field_option = field_options[i];
				if(field_option.checked) {
					if(field_option.value==0) {
						table6_cost.checked = true;	
						table8_cost.checked = false;	
					}else if(field_option.value==1){
						table6_cost.checked = false;
						table8_cost.checked = true;	
					}else{
						table6_cost.checked = false;
						table8_cost.checked = false;	
					}
				}
			}
			
			__calculate_cost();
			break;
			
		case "space":
			var opt_box = document.getElementById("space_opt_box");
			var left = field.getElementsByTagName("div");
			left = left[0];
			var field_options = left.getElementsByTagName("input");
			for(var i=0; i<field_options.length; i++) {
				var field_option = field_options[i];
				if(field_option.checked) {
					if(field_option.value==1) {
						opt_box.setAttribute("class", "opt_box visible");
					}else{
						opt_box.setAttribute("class", "opt_box");
					}
				}
			}
			break;
		default:
			break;
	}
}

function __calculate_cost() {
	var total_num = document.getElementById("total_num");
	var cost_table = document.getElementById("costTable");
	var cost_options = cost_table.getElementsByTagName("input");
	var total = 0;
	for(var i=0; i<cost_options.length; i++) {
		if(cost_options[i].checked) {
			total += parseInt(cost_options[i].value);
		}
	}
	total_num.innerHTML = "$" + total + ".00";
}

function checkSamples(samples) {
	for(var i=0; i<required_num; i++){
		
		if(samples[i].value.length < 1) {
			return false;
		}
			
	}
	return true;
}

function showInfo(id) {
	//alert(id);
	var box = document.getElementById('light');
	var box_content = document.getElementById('light_in');
	var info = document.getElementById("form-" + id);
	box_content.innerHTML = info.innerHTML;
	box.style.display='block';
	document.getElementById('fade').style.display='block';
	return false;
}

function confirm_paid(email) {
	var r=confirm("Mark entry (" + email + ") as paid?");
	if (r==true) {
		return true;
	}
	return false;	
}

function confirm_del(email) {
	var r=confirm("Delete entry (" + email + ")?");
	if (r==true) {
		return true;
	}
	return false;	
}
