/*******************************************************************************
vim:ts=4:sw=4:noexpandtab:tw=80
Filename		:	$URL: $
Created By	:	Greg Symons
Created On	:	  Eastern Standard Time (Sat, 13 Nov 2004)
Revised On	:	$Date: $
Revised By	: $Author: $
Revision		: $Rev: $
Description	:

*******************************************************************************/


function showIntake(new_patient) {
	var elementArray = new Array (
		document.getElementById("billing_info"),
		document.getElementById("new_patient_right"),
		document.getElementById("new_patient_left"),
		document.getElementById("referral_block"),
		document.getElementById("release")
	);
	
	var display;
	var visibility; 

	if(new_patient == "yes") {
		display = 'block';
		visibility = 'visible';
	} else {
		display = 'none';
		visibility = 'hidden';
	}

	for(var idx in elementArray) {
		elementArray[idx].style.display = display;
		elementArray[idx].style.visibility = visibility;
	}
}

function showIntakeOptions(show) {
	var options = document.getElementById("intake_options");
	var online_yes = document.getElementById("online_yes");
	var showIntakeForm;


	var display;
	var visibility;

	if(show == "yes") {
		display = "block";
		visibility = "visible";

		if(online_yes.checked) {
			showIntakeForm = "yes";
		} else {
			showIntakeForm = "no";
		}
	} else if(show == "no") {
		display = "none";
		visiblity = "invisible";
		showIntakeForm = "no";
	}

	options.style.display = display;
	options.style.visibility = visibility;
	showIntake(showIntakeForm);
}

function initialize() {
	var new_patient;
	new_patient = document.getElementById("new_patient_yes");
	if(new_patient && new_patient.checked) {
		showIntakeOptions("yes");
	}
}

function validate(formName) {  
	function validateFields(formName, fields) {	 	 
		var error = "none";
		var field;
		for(var idx in fields) {
			if(field = document.getElementById(fields[idx])) {
				switch(field.tagName.toLowerCase()) {
					case "input":
						switch(field.getAttribute("type").toLowerCase()) {
							case "text":
								if(field.value == "") {
									error = "blank";
								}
								break;
							case "radio":
								if(!getRadioValue(formName, field.name)) {
									error = "blank";
								}
								break;
							case "checkbox":
								if(!field.checked) {
									error = "blank";
								}
								break;
							default:
								alert("Unknown input type: " + field.getAttribute("type"));
						}

						break;
					case "select":
						var selected;
						for(var optnum in field.options) {
							if(field.options[optnum].selected) {
								selected = field.options[optnum].value;
								break;
							}
						}

						if(selected == "null") {
							error = "blank";
						}

						break;
					default:
					  //script check 
						// Dorlan Schick - Oct 1 removed line below 
						//it comes up unexpectedly, can form operate without alert?
						//alert("Unknown tagname: " + field.tagName);
				}
			}

			if(error != "none") break;
		}

		if(error != "none") {
			field.focus();
			alert(errorMessages[field.name][error]);  
			return false;
		}
		
		return true;
	}

	var requiredFields = window.requiredFields;
	//script check - taken out because newpatient fields no longer required
	//var newPatientFields = window.newPatientFields; 
	var errorMessages = window.errorMessages;

	//First check the required fields
	var valid = validateFields(formName,requiredFields);
	
	//script check - taken out because newpatient fields no longer required
/****
	if(valid
		&& document.getElementById("new_patient_yes").checked 
		&& document.getElementById("online_yes").checked
	) {
		
		//valid = validateFields(formName,newPatientFields);
	}
*****/
	return valid;
}

function getRadioValue(formName, fieldName) {
	var value;
	var collection;

	if(is_ie) {
		collection = document.all[fieldName];
	} else {
		collection = document[formName][fieldName];
	} 
	
	for(var button=0; button<collection.length; ++button) {
		if(collection[button].checked) {
			value=collection[button].value;
		}
	}

	return value;
}


