// event.js
// Rev. 1.0 LNixon 07/31/09
// Rev. 1.1 LNixon 08/01/09 added check for blank textarea data in validate_event()
/*
NOTE: this script is dependent on node.js and Ajax text.php, select.php, checkbox.php etc.
The script name should match the name of the table unless the table name interfers with the step identity as in the case of contact.  All field references should match fields within the table.
*/

var pos;
function date_mouseover(id) {
	pos = findPos(document.getElementById(id));
	var left = pos[0];
	content_left = document.getElementById('content').offsetLeft;
	left = left - content_left + 25;
	//left = 25;
	//document.getElementById('event').style.left = String(left).concat('px');	// move type error div 
	document.getElementById('event').style.left = left;	// move type error div 
	var top = pos[1];
	content_top = document.getElementById('content').offsetTop;
	top = top - content_top + 25;
	document.getElementById('event').style.top = String(top).concat('px');	// move type error div 
}

function date_mouseout(id) {
	pos = findPos(document.getElementById(id));
	document.getElementById('event').style.left = 415;	// move type error div 
	var top = pos[1];
	content_top = document.getElementById('content').offsetTop;
	top = top - content_top;
	document.getElementById('event').style.top = top;	// move type error div 
	document.getElementById('event').innerHTML = "Move cursor over highlighted date(s) to view information.";
}

var forms;
var form;
var elem;
function validate_event() {
	//confirm('validate_event')
	forms = document.forms;
	for (var i = 0; i < forms.length; i++) { 
		form = document.getElementById(forms[i].id)
		form.length
		for(var e = 0; e < form.length; e++) {
			elem = form.elements[e];
			if(elem.type == 'text') {
				//confirm(elem.value);	
				if(elem.value == '') {
					// FF hack: title='optional' prevents hidden fields from getting focus 
					if(elem.title != 'optional') {
						elem.focus();	// go to element 
						return false;
					}
				}
			}
			var en;
			var enc;
			var fe;
			if(elem.type == 'radio') {
				// ARGH!  This won't catch the last set
				//confirm(elem.name+'; '+elem.checked);
				if(!en) {
					//confirm('en empty first time');
					fe = elem;
					en = elem.name;
					enc = elem.checked;
				}
				if(en == elem.name) {
					//confirm('en == elem.name');
					enc = (enc || elem.checked);
				} else {
					//confirm('en != elem.name');
					if(!enc) {
						fe.focus(); 
						return false;	// nothing selected
					}
				}
			}
			if(elem.type == 'select-one') {
				//confirm(elem.id);	
				//confirm(elem.selectedIndex);	
				if(elem.selectedIndex == 0) {
					elem.focus();	// go to element 
					return false;
				}
			}
			if(elem.type == 'textarea') {
				//confirm(elem.id);	
				//confirm(elem.value);	
				if(elem.value == '') {
					elem.focus();	// go to element 
					return false;
				}
			}
		}
	}
}

// input template
// replace FIELD_1 with a table field value such as NAME
var input_event_EVENT_ID
input_event_EVENT_ID = function() {
	var name = document.getElementById('input_event_EVENT_ID').value;
	tabbing = false;
}

var input_event_EVENT_ID_error
input_event_EVENT_ID_error = function() {
	document.getElementById('input_event_EVENT_ID').focus();
}

var input_event_EVENTTITLE
input_event_EVENTTITLE = function() {
	var name = document.getElementById('input_event_EVENTTITLE').value;
	tabbing = false;
}

var input_event_EVENTTITLE_error
input_event_EVENTTITLE_error = function() {
	document.getElementById('input_event_EVENTTITLE').focus();
}

var textarea_event_EVENTDESCRIPTION
textarea_event_EVENTDESCRIPTION = function() {
	tabbing = false;
}
var textarea_event_EVENTDESCRIPTION_error
textarea_event_EVENTDESCRIPTION_error = function() {
	//confirm('textarea_event_EVENTDESCRIPTION - This field is not required.  Should not get here.');
}

var select_event_YEAR
select_event_YEAR = function() {
	proxy_clear('textarea_event_EVENTDESCRIPTION_error');
	tabbing = false;
}

var select_event_YEAR_error
select_event_YEAR_error = function() {
	proxy_set('select_event_YEAR_error','textarea_event_EVENTDESCRIPTION_error');
	document.getElementById('select_event_YEAR').focus();
}

var select_event_MONTH
select_event_MONTH = function() {
	proxy_clear('textarea_event_EVENTDESCRIPTION_error');
	tabbing = false;
}

var select_event_MONTH_error
select_event_MONTH_error = function() {
	proxy_set('select_event_MONTH_error','textarea_event_EVENTDESCRIPTION_error');
	document.getElementById('select_event_MONTH').focus();
}

var select_event_DAY
select_event_DAY = function() {
	proxy_clear('textarea_event_EVENTDESCRIPTION_error');
	tabbing = false;
}

var select_event_DAY_error
select_event_DAY_error = function() {
	proxy_set('select_event_DAY_error','textarea_event_EVENTDESCRIPTION_error');
	document.getElementById('select_event_DAY').focus();
}

var select_event_HOUR
select_event_HOUR = function() {
	proxy_clear('textarea_event_EVENTDESCRIPTION_error');
	tabbing = false;
}

var select_event_HOUR_error
select_event_HOUR_error = function() {
	proxy_set('select_event_HOUR_error','textarea_event_EVENTDESCRIPTION_error');
}

var select_event_MINUTE
select_event_MINUTE = function() {
	proxy_clear('textarea_event_EVENTDESCRIPTION_error');
	tabbing = false;
}

var select_event_MINUTE_error
select_event_MINUTE_error = function() {
	proxy_set('select_event_MINUTE_error','textarea_event_EVENTDESCRIPTION_error');
}

var input_event_RECURRING
input_event_RECURRING = function() {
	proxy_clear('textarea_event_EVENTDESCRIPTION_error');
	tabbing = false;
}

var input_event_RECURRING_error
input_event_RECURRING_error = function() {
	proxy_set('input_event_RECURRING_error','textarea_event_EVENTDESCRIPTION_error');
	document.getElementById('input_event_RECURRING').focus();
}

/*
var select_event_RECURRENCES
select_event_RECURRENCES = function() {
	proxy_clear('textarea_event_EVENTDESCRIPTION_error');
	tabbing = false;
}

var select_event_RECURRENCES_error
select_event_RECURRENCES_error = function() {
	proxy_set('select_event_RECURRENCES_error','textarea_event_EVENTDESCRIPTION_error');
}
*/

var input_event_VENUE
input_event_VENUE = function() {
	var name = document.getElementById('input_event_VENUE').value;
	tabbing = false;
}

var input_event_VENUE_error
input_event_VENUE_error = function() {
	document.getElementById('input_event_VENUE').focus();
}

var input_event_ROOM
input_event_ROOM = function() {
	var name = document.getElementById('input_event_ROOM').value;
	tabbing = false;
}

var input_event_ROOM_error
input_event_ROOM_error = function() {
	var innerHTML = document.getElementById('input_event_ROOM_error').innerHTML;
	document.getElementById('input_event_ROOM_error').innerHTML = 'Optional: '+innerHTML;
	tabbing = false;
}

var input_event_ADDRESS1
input_event_ADDRESS1 = function() {
	var name = document.getElementById('input_event_ADDRESS1').value;
	tabbing = false;
}

var input_event_ADDRESS1_error
input_event_ADDRESS1_error = function() {
	document.getElementById('input_event_ADDRESS1').focus();
}

var input_event_ADDRESS2
input_event_ADDRESS2 = function() {
	var name = document.getElementById('input_event_ADDRESS2').value;
	tabbing = false;
}

var input_event_ADDRESS2_error
input_event_ADDRESS2_error = function() {
	var innerHTML = document.getElementById('input_event_ADDRESS2_error').innerHTML;
	document.getElementById('input_event_ADDRESS2_error').innerHTML = 'Optional: '+innerHTML;
	tabbing = false;
}

var input_event_CITY
input_event_CITY = function() {
	proxy_clear('input_event_ADDRESS1_error');
	tabbing = false;
}

var input_event_CITY_error
input_event_CITY_error = function() {
	proxy_set('input_event_CITY_error','input_event_ADDRESS1_error');
}

var select_event_STATE
select_event_STATE = function() {
	proxy_clear('input_event_ADDRESS1_error');
	tabbing = false;
}

var select_event_STATE_error
select_event_STATE_error = function() {
	proxy_set('select_event_STATE_error','input_event_ADDRESS1_error');
}

var input_event_ZIP
input_event_ZIP = function() {
	proxy_clear('input_event_ADDRESS1_error');
	tabbing = false;
}

var input_event_ZIP_error
input_event_ZIP_error = function() {
	proxy_set('input_event_ZIP_error','input_event_ADDRESS1_error');
}

/* select_without_error
var select_event_ACCESS_LEVEL
select_event_ACCESS_LEVEL = function() {
	var name = document.getElementById('select_event_ACCESS_LEVEL').value;
	tabbing = false;
}

var select_event_ACCESS_LEVEL_error
select_event_ACCESS_LEVEL_error = function() {
	document.getElementById('select_event_ACCESS_LEVEL').focus();
}
*/

/* PROXY Error Positioning */
// proxy_set is used for the purpose of display error messages in a better position 
function proxy_set(from, to) {
	var innerHTML = document.getElementById(from).innerHTML;
	document.getElementById(to).innerHTML = innerHTML;
	document.getElementById(from).innerHTML = '';
}

// proxy_clear is used for clearing the error message created by the benefactor 
function proxy_clear(to) {
	document.getElementById(to).innerHTML = '';
}

var input_event_FIELD_2
input_event_FIELD_2 = function() {
	proxy_clear('input_event_FIELD_3_error');
	tabbing = false;
}	

var input_event_FIELD_2_error
input_event_FIELD_2_error = function() {
	proxy_set('input_event_FIELD_2_error','input_event_FIELD_3_error');
	document.getElementById('input_event_FIELD_2').focus();
}	

/*  End PROXY Error Positioning */

// select template such as a list of states
var select_event_FIELD_4
select_event_FIELD_4 = function() {
	tabbing = false;
}

var select_event_FIELD_4_error
select_event_FIELD_4_error = function() {
	document.getElementById('select_event_FIELD_4').focus();
}

// input template not required such as a fax number
var input_event_FIELD_4
input_event_FIELD_4 = function() {
	tabbing = false;
}	

var input_event_FIELD_4_error
input_event_FIELD_4_error = function() {
	// not required
	//document.getElementById('input_event_FIELD_4').focus();
	var innerHTML = document.getElementById('input_event_FIELD_4_error').innerHTML;
	document.getElementById('input_event_FIELD_4_error').innerHTML = 'Optional: '+innerHTML;
	tabbing = false;
}	

// test case of a query effect such as a checkbox altering the form
var input_event_QUERY_EFFECT
input_event_QUERY_EFFECT = function() {
	// checkbox_with_effect($name, $query, $answer, $attributes, $top) sets vars _query & _answer
	var checked = document.getElementById('input_event_QUERY_EFFECT').checked;
	if(checked) {
		getSessionVar('event_QUERY_EFFECT_answer', 'label_event_QUERY_EFFECT');
	} else {
		getSessionVar('event_QUERY_EFFECT_query', 'label_event_QUERY_EFFECT');
	}
	tabbing = false;
}	

// test case
var input_event_QUERY_REQUIRED
input_event_QUERY_REQUIRED = function() {
	tabbing = false;
}
var input_event_QUERY_REQUIRED_error
input_event_QUERY_REQUIRED_error = function() {
	document.getElementById('input_event_QUERY_REQUIRED').focus();
}

// test case
var textarea_event_TEXTAREA
textarea_event_TEXTAREA = function() {
	tabbing = false;
}
var textarea_event_TEXTAREA_REQUIRED_error
textarea_event_TEXTAREA_REQUIRED_error = function() {
	confirm('textarea_event_TEXTAREA_REQUIRED - This field is not required.  Should not get here.');
}

var textarea_event_TEXTAREA_REQUIRED
textarea_event_TEXTAREA_REQUIRED = function() {
	tabbing = false;
}
var textarea_event_TEXTAREA_REQUIRED_error
textarea_event_TEXTAREA_REQUIRED_error = function() {
	document.getElementById('textarea_event_TEXTAREA_REQUIRED').focus();
}

