function validateDate(originalDate, theDate) {
	var dateField = theDate;
	
	var slash=dateField.value.indexOf('/');
	
	if (slash == -1) {   /*  if there are no slashes, and 8 characters of input, we'll supply the dashes */
		if (dateField.value.length == 8) {
			dateField.value = dateField.value.charAt(0) + dateField.value.charAt(1) + '/' + dateField.value.charAt(2) + dateField.value.charAt(3) + '/' + dateField.value.charAt(4) + dateField.value.charAt(5) + dateField.value.charAt(6) + dateField.value.charAt(7) ;
		}
	}
	
	if (checkdate(dateField) == false) {
		dateField.style.background = '#ff8080';
		alert('Invalid date or date format.  Dates should be submitted in mm/dd/yyyy format, such as 05/05/2006 for May 5, 2006');
		dateField.value = originalDate;
		dateField.focus();
	}	
		

}


function checkdate(input){
	var validformat=/^\d{1,2}\/\d{1,2}\/\d{4}$/ //Basic check for format validity
	var returnval=false
	if (input.value == '') returnval = true;
	else if (!validformat.test(input.value))
		returnval = false;
	else{ //Detailed check for valid date ranges
		var monthfield=input.value.split("/")[0]
		var dayfield=input.value.split("/")[1]
		var yearfield=input.value.split("/")[2]
		var dayobj = new Date(yearfield, monthfield-1, dayfield)
		if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
			returnval=false 
		else
			returnval=true
	}
	if (returnval==false) input.select()
		return returnval
}

var openComparisonWindow = '0';
function turnOnComparison(theID) {

	if (openComparisonWindow > 0) {
		document.getElementById(openComparisonWindow).style.display = 'none';
	}	
	document.getElementById(theID).style.display = ''; 
	openComparisonWindow = theID;
}

function turnOffComparison(theID) {

	document.getElementById(theID).style.display = 'none'; 

	openComparisonWindow = 0;
}



var newwindow = '';
function openCLMSWindow(theURL, newWindowProperties) {
 	var defaultProperties =  'scrollbars=yes,width=1024,height=768,menubar=no,resizable=yes,toolbar=no,location=no,status=yes';
	var theWindowProperties = '';
	
	if (newWindowProperties == '') {
		var theWindowProperties = defaultProperties;
	}
	else {
		var theWindowProperties = newWindowProperties;
	}
	
	if (!newwindow.closed && newwindow.location) {
		newwindow.location.href = theURL;
	}
	else {
		newwindow=window.open(theURL, 'clmsWindow', theWindowProperties);
		if (!newwindow.opener) newwindow.opener = self;
	}
	if (window.focus) {newwindow.focus()}
	return false;
}

var newwindow2 = '';
function openHELPWindow(theURL, newWindowProperties) {
 	var defaultProperties =  'scrollbars=yes,width=800,height=600,menubar=no,resizable=yes,toolbar=no,location=no,status=yes';
	var theWindowProperties = '';
	
	if (newWindowProperties == '') {
		var theWindowProperties = defaultProperties;
	}
	else {
		var theWindowProperties = newWindowProperties;
	}
	
	if (!newwindow2.closed && newwindow2.location) {
		newwindow2.location.href = theURL;
	}
	else {
		newwindow2=window.open(theURL, 'helpWindow', theWindowProperties);
		if (!newwindow2.opener) newwindow2.opener = self;
	}
	if (window.focus) {newwindow2.focus()}
	return false;
}

var newwindow3 = '';
function openMEMSYSWindow(theURL, newWindowProperties) {
 	var defaultProperties =  'scrollbars=yes,width=1024,height=768,menubar=yes,resizable=yes,toolbar=no,location=no,status=yes';
	var theWindowProperties = '';
	
	if (newWindowProperties == '') {
		var theWindowProperties = defaultProperties;
	}
	else {
		var theWindowProperties = newWindowProperties;
	}
	
	if (!newwindow3.closed && newwindow3.location) {
		newwindow3.location.href = theURL;
	}
	else {
		newwindow3=window.open(theURL, 'memSysWindow', theWindowProperties);
		if (!newwindow3.opener) newwindow3.opener = self;
	}
	if (window.focus) {newwindow3.focus()}
	return false;
}

function zeroPad(num,count) { 
	var numZeropad = num + '';
	while(numZeropad.length < count) {
	
	numZeropad = "0" + numZeropad; 
	}
	return numZeropad;
}

function calculateTotalAmount(form, totalRecords) {
	/*  this is used on processPayment.cfm ... probably no where else since it's pretty specific */
	var total = 0;
	
	for (var i = 1; i <= totalRecords; i++) {
		prefix = zeroPad(i, 2);
		theField = prefix + '_PaymentAmount';
		if (     isNaN(document.getElementById(theField).value)      ) {		
			alert('Invalid numeric value: ' + document.getElementById(theField).value);
			document.getElementById(theField).value = '';
			document.getElementById(theField).style.background = '#ff8080';
		}	
		else {
			total = total + parseFloat(document.getElementById(theField).value); 
		}
		
	}
	document.getElementById('theExpectedTotal').value = total.toFixed(2);
	if (document.getElementById('theExpectedTotal').value == 0) {
		document.getElementById('wizardAction').disabled = true;
	}
	else {
		document.getElementById('wizardAction').disabled = false;
	};	
}

function requireNumeric(sText)
{
	if (     isNaN(sText.value)      ) {		
	
 		alert('Invalid numeric value: ' + sText.value);
		sText.value = '';
		sText.style.background = '#ff8080';
		
	}	
   
}





function ClearOptions(OptionList) {
	// Always clear an option list from the last entry to the first
	for (x = OptionList.length; x >= 0; x = x - 1) {
	OptionList[x] = null;
	}
}


function AddToOptionList(OptionList, OptionValue, OptionText) {
	// Add option to the bottom of the list
	OptionList[OptionList.length] = new Option(OptionText, OptionValue);
}

var activeTab = 'tab1';
function switchTab(id)
{
	if(activeTab != id)
	{
		document.getElementById(activeTab).className='';
		document.getElementById(activeTab + "data").style.visibility='hidden';
		document.getElementById(activeTab + "data").style.display='none';
		activeTab = id;
		document.getElementById(id).className='active';
		document.getElementById(id + "data").style.visibility='visible';
		document.getElementById(id + "data").style.display='block';

	}
}
	
var activeRosterTab = 'tab1';
function switchRosterTab(id)
{


	if (checkExitWithoutSaving() == true) 
	{
		if(activeTab != id)
		{
			document.getElementById(activeTab).className='';
			document.getElementById(activeTab + "data").style.visibility='hidden';
			document.getElementById(activeTab + "data").style.display='none';
			activeTab = id;
			document.getElementById(id).className='rosterActive';
			document.getElementById(id + "data").style.visibility='visible';
			document.getElementById(id + "data").style.display='block';
			if (id == 'tab1') {document.getElementById(id + "frame").src ='/clms2web/includes/incTabMember.cfm';}
			else if (id == 'tab2') {document.getElementById(id + "frame").src ='/clms2web/includes/incTabAlternate.cfm';}
			else if (id == 'tab3') {document.getElementById(id + "frame").src ='/clms2web/includes/incTabSpouse.cfm';}
			else if (id == 'tab4') {document.getElementById(id + "frame").src ='/clms2web/includes/incTabHistory.cfm';}
			else if (id == 'tab5') {document.getElementById(id + "frame").src ='/clms2web/includes/incTabIdentities.cfm';}		
			else if (id == 'tab6') {document.getElementById(id + "frame").src ='/clms2web/includes/incTabCommittees.cfm';}	
			else if (id == 'tab7') {document.getElementById(id + "frame").src ='/clms2web/includes/incTabMisc.cfm';}
			else if (id == 'tab8') {document.getElementById(id + "frame").src ='/clms2web/includes/incTabDues.cfm';}
			else if (id == 'tab9') {document.getElementById(id + "frame").src ='/clms2web/includes/incTabCustomFields.cfm';}
			else if (id == 'tab10') {document.getElementById(id + "frame").src ='/clms2web/includes/incTabRemarks.cfm';}
			else if (id == 'tab11') {document.getElementById(id + "frame").src ='/clms2web/includes/incTabFlags.cfm';}
		}
	}	
}					

// Preloader functions
function insertPreloader()
{
	
	var oDiv = document.createElement('div');
	oDiv.setAttribute('id','loading');
	oDiv.innerHTML = ' <img src="/clms2web/images/icons/ajax-loader.gif"> Loading, please wait ...';
	document.getElementById('tabcontent').appendChild(oDiv);
}

function clearPreloadPage(id) 
{
	if(document.getElementById('loading'))
	{
		document.getElementById('loading').style.visibility='hidden';
		document.getElementById('loading').style.display='none';
	}

}

function changeLodge(form)
{
	if (document.getElementById('syncLodge').value == 'Range') {

		document.getElementById('startLodge').value = '';
	    document.getElementById('endLodge').value = '';
		document.getElementById('membershipNumber').value = '';
		document.getElementById('lodgeRange').style.display = 'block';
	    document.getElementById('lodgeRange').style.visibility = 'visible';
        document.getElementById('membershipNo').style.display = 'none';
		document.getElementById('membershipNo').style.visibility = 'hidden';

	}
	else if (isNaN(document.getElementById('syncLodge').value) == false) {

		document.getElementById('startLodge').value = '';
	    document.getElementById('endLodge').value = '';
		document.getElementById('membershipNumber').value = '';
		document.getElementById('lodgeRange').style.display = 'none';
	    document.getElementById('lodgeRange').style.visibility = 'hidden';
        document.getElementById('membershipNo').style.display = 'block';
		document.getElementById('membershipNo').style.visibility = 'visible';
	}
	else {

		document.getElementById('startLodge').value = '';
	    document.getElementById('endLodge').value = '';
		document.getElementById('membershipNumber').value = '';
		document.getElementById('lodgeRange').style.display = 'none';
	    document.getElementById('lodgeRange').style.visibility = 'hidden';
        document.getElementById('membershipNo').style.display = 'none';
		document.getElementById('membershipNo').style.visibility = 'hidden';
	}	
}
	
function updateCircLength(f, maxLength)
{
	f.form.theLength.value = (maxLength - f.form.theOutgoingMessage.value.length); 
	if (f.form.theLength.value < 0) {
		f.form.theLength.style.color = 'red';
	}	
	else {
		f.form.theLength.style.color = 'blue';
	} 
}

function updateLodgeLength(f, maxLength, existingLength)
{
	f.form.theLength.value = (maxLength - f.form.messageToCirc.value.length - existingLength); 
	if (f.form.theLength.value < 0) {
		f.form.theLength.style.color = 'red';
	}	
	else {
		f.form.theLength.style.color = 'blue';
	} 
}

var formHasChanged = false;

function logFormChange()
{
	formHasChanged = true;
	parent.formHasChanged = true;  /*  parent version of variable */

}	

function checkExitWithoutSaving() 
{
	if (formHasChanged == true) {
		if (confirm('Proceed without saving changes?')) {
			formHasChanged = false;
			parent.formHasChanged = false;
			return true;
		}
		else {
			return false;
		}
	}
	{
		return true;
	}	
}

function resetFormCheck() 
{
	formHasChanged = false;
	parent.formHasChanged = false;

}

function clmsConfirm(prompt, url) 
{
	if (confirm(prompt)) { window.location.href = url; }

}

function hideAlert(theID) {

	document.getElementById(theID).style.visibility = 'hidden'; 
}

function showAlert(theID) {

	document.getElementById(theID).style.visibility = 'visible'; 
}
