// ajaxBasics.js: Include this file when creating Ajax enabled functions.

// list of required fields on NT Registration form
var requiredFieldsNTReg = [
	'TourState',
	'DatesTimes',
	'Community',
	'TourName',
	'CreditTo',
	'ContactName',
	'ContactPhone',
	'ContactEmail',
	'Descriptn',
	'Fee',
	'Name',
	'CompanyOrganization',
	'Address1',
	'City',
	'State',
	'Zip',
	'Phone',
	'EmailAddress',
	'EmailVerification'
];
var requiredFieldsNTRegCount = 19;

function fetchData(url,dataToSend,objectID){
	var pageRequest = false
	var object = document.getElementById(objectID);

	object.innerHTML = '<h3>Fetching Data... </h3>';

	if (window.XMLHttpRequest) {
		pageRequest = new XMLHttpRequest()
	}
	else if (window.ActiveXObject){ 
		try {
			pageRequest = new ActiveXObject("Msxml2.XMLHTTP")
		} 
		catch (e) {
			try{
				pageRequest = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){}
		}
	}
	else return false
	pageRequest.onreadystatechange=function() {	
		filterData(pageRequest,objectID)
}
	if (dataToSend) {		
		var sendData = 'sendData=' + dataToSend;
		pageRequest.open('POST',url,true);
    	pageRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
   		pageRequest.send(sendData);
	}
	else {
		pageRequest.open('GET',url,true)
		pageRequest.send(null)	
	}
}

function filterData(pageRequest,objectID){
	var object = document.getElementById(objectID);
	if (pageRequest.readyState == 0)
		object.innerHTML = '<h3>Fetching Data... </h3>';
	if (pageRequest.readyState == 1)
		object.innerHTML += '<h3>Loading Data... </h3>';
	if (pageRequest.readyState == 2)
		object.innerHTML += '<h3>Data Loaded... </h3>';
	if (pageRequest.readyState == 3)
		object.innerHTML += '<h3>Data Ready!</h3>';
	if (pageRequest.readyState == 4)	{
		if (pageRequest.status==200) object.innerHTML = pageRequest.responseText ;
		else if (pageRequest.status == 404) object.innerHTML += 'Sorry, that information is not currently available.';
		else object.innerHTML += 'Sorry, there seems to be some kind of problem.';
	}
	scrollPageTo(objectID);
}

function scrollPageTo(objectID) {
	var object = document.getElementById(objectID);
	var nX = object.offsetLeft - 8;
	var nY = object.offsetTop - 8;
	if (document.body.scrollLeft) {
		document.body.scrollLeft = nX;
		document.body.scrollTop = nY;
		return;
	}
	else {
		scrollTo(nX,nY)
		return;
	}
}

function scrubSpecialCharacters(valueString) {
	re = /#|~|`|\%|\*|\^|\&|\[|\_|\]|\[|\}|\{|\'|\"|\<|\>|\||\\/g;
	// remove special characters like "*" and "'" etc...
	return valueString.replace(re, "");
}

function checkRequiredFields(lastField) {

	document.getElementById('Register').disabled = false;

	if (! document.getElementById('Agree0').checked) {
		document.getElementById('Register').disabled = true;
		if (lastField) {alert("Agreement to conditions has not been checked");}
		return false;
	}

	if ( ! document.getElementById('NewOrRevised0').checked && 
			! document.getElementById('NewOrRevised1').checked) {
		document.getElementById('Register').disabled = true;
		if (lastField) {alert("Neither New nor Revised has been checked (first field on the form)");}
		return false;
	}

	if ( ! document.getElementById('Attendance0').checked && 
			! document.getElementById('Attendance1').checked &&
			! document.getElementById('Attendance2').checked ) {
		document.getElementById('Register').disabled = true;
		if (lastField) {alert("Anticipated attendance has not been entered (Field # 25)");}
		return false;
	}

	for (i = 0; i < requiredFieldsNTRegCount; i++) {
		if (document.getElementById(requiredFieldsNTReg[i]).value.length == 0) {
		document.getElementById('Register').disabled = true;
		if (lastField) {alert(requiredFieldsNTReg[i] + " has not been entered (around Field #" + i + ")");}
		return false;
		}
	}
}

function hideAmpersand(str) {
	var s = str;
	s = s.replace(/&/g,'$');
	return(s);
}

function checkError() {
	alert('Checkerror');
	if (document.getElementById('component379').visible) {
	alert('Checkerror2');

		scrollPageTo(document.getElementById('component379'));
	}
}
