// ACTION FUNCTIONS =========================================================================================================

function setloginaction() { //handle login action

	var loginaction = document.getElementById('loginaction').value;
	var frmlogin = document.getElementById('frmlogin');	
	var valid = true;	
	
	loginaction.value = 'login';
	document.getElementById('frmlogin').submit();	

	return valid;
	
}

function validateform_1() { //handle login action

	var name = document.getElementById('name');
	var emailadd = document.getElementById('emailadd');	
	var comments = document.getElementById('comments');	
	
	var valid = true;	
	var validemail = true;
	
	if (name.value == '' || name.value == null) {
		//document.getElementById('lblStatus').innerHTML = '* All fields are required.';
		valid = false;
	}
	
	
	if (emailadd.value != '' || emailadd.value != null) { 
		var regex = new RegExp('[\\w\\.-]+(\\+[\\w-]*)?@([\\w-]+\\.)+[\\w-]+'); //email validation			
		if (!emailadd.value.match(regex)) {		
			validemail = false;
			valid = false;			
		}
	} else {
		valid = false;
	}
	
	if (comments.value == '' || comments.value == null) {
		//document.getElementById('lblStatus').innerHTML = '* All fields are required.';
		valid = false;
	}

	if (valid == false) {
		if (validemail == false) {
			document.getElementById('lblStatus').innerHTML = '* Please enter a valid email.';	
		} else {
			document.getElementById('lblStatus').innerHTML = '* All fields are required.';	
		}
	} else {
		document.getElementById('lblStatus').innerHTML = '';
	}
	
	return valid;
	
}

function setAdminAction(frmtype, frmaction) { //handles actions on admin page
	
	//var actionnow = document.getElementById('adminaction').value;	
	var modeform = document.getElementById('modeform').value;	
	var frm = document.getElementById('frmadmin');
	
	switch (frmtype) {
		
		case 'officer':
				
				if (frmaction == 'officersave') {
					
					if (officersfieldvalidator()) {
						document.getElementById('adminaction').value = frmaction;
						frm.submit();	
					}
					
				} else if (frmaction == 'officerdelete') {				
					
					if (confirm('Are you sure you want to delete this profile?  This action cannot be undone.')) {
						
						document.getElementById('adminaction').value = frmaction;	
						//alert(document.getElementById('adminaction').value);
						frm.submit();
						
					}				
					
				} 
					
				break;
			
		case 'office':
		
				if (frmaction == 'officesave') {
					
					if (officesfieldvalidator()) {
						document.getElementById('adminaction').value = frmaction;
						frm.submit();	
					}
					
				} else if (frmaction == 'officedelete') {				
					
					if (confirm('Are you sure you want to delete this office profile?  This action cannot be undone.')) {
						
						document.getElementById('adminaction').value = frmaction;	
						//alert(document.getElementById('adminaction').value);
						frm.submit();
						
					}				
					
				} 
				
				break;			
		  
		case 'church':
			
				if (frmaction == 'churchsave') {
					
					if (churchesfieldvalidator()) {
						document.getElementById('adminaction').value = frmaction;
						frm.submit();	
					}
					
				} else if (frmaction == 'churchdelete') {				
					
					if (confirm('Are you sure you want to delete this church profile?  This action cannot be undone.')) {
						
						document.getElementById('adminaction').value = frmaction;	
						//alert(document.getElementById('adminaction').value);
						frm.submit();
						
					}				
					
				} 
				
				break;			
		
		case 'school':
				
				if (frmaction == 'schoolsave') {
					
					if (schoolsfieldvalidator()) {
						document.getElementById('adminaction').value = frmaction;
						frm.submit();	
					}
					
				} else if (frmaction == 'schooldelete') {				
					
					if (confirm('Are you sure you want to delete this school profile?  This action cannot be undone.')) {
						
						document.getElementById('adminaction').value = frmaction;	
						//alert(document.getElementById('adminaction').value);
						frm.submit();
						
					}				
					
				} 
				
				break;					
				
		case 'contact':
				
				if (frmaction == 'contactsave') {
					
					if (contactfieldvalidator()) {
						
						document.getElementById('adminaction').value = frmaction;
						frm.submit();	
					}
					
				}
		
				break;
		
		case 'convention':
					
				if (frmaction == 'conventionsave') {
					
					if (conventionfieldvalidator()) {
					
						document.getElementById('adminaction').value = frmaction;
						frm.submit();	
					}
					
				}
		
				break;
		
		case 'organization':
					
				if (frmaction == 'organizationsave') {
					
					if (organizationfieldvalidator()) {
					
						document.getElementById('adminaction').value = frmaction;
						frm.submit();	
					}
					
				}
		
				break;
				
	}	
	
	return false;
	
	
}

function setaction(mode, returl) { //handle actions on news & events page
	
	var action = document.getElementById('action');	
	var modeform = document.getElementById('modeform');
	
	var frm = document.getElementById('frmadmin');
	
	switch (mode) {
		
		case 'delete':
		
				if (confirm('Are you sure you want to delete this record? This action cannot be undone.')) {
					action.value = mode;
					frm.submit();
				}
				
				break;
			
		case 'cancel':
		
				if (returl != '')
					document.location.href = returl;
				break;			
		  
		case 'save':
			
				if (modeform.value == 'event') {
					
					if (eventfieldvalidator()) {
						frm.submit();	
					}
	
				} else if (modeform.value == 'news') {
					
					if (newsfieldvalidator()) {
						frm.submit();	
					}
				
				} else if (modeform.value == 'category') {
					
					if (categoryfieldvalidator()) {
						document.getElementById('action').value ='save';
						frm.submit();	
					}
	
				} else {
					
					frm.submit();
					
				}
				
				break;
	}	
	
	return false;
	
}

// FIELD VALIDATORS =========================================================================================================

function organizationfieldvalidator() { //field validator for adding/editing officers
	
	var orgname = document.getElementById('organizationname');	
	var orgsortorder = document.getElementById('organizationsortorder').value;
	
	var valid = true;
	
	if (orgname.value == '' || orgname.value == null) {
		document.getElementById('lblErrName').innerHTML = '<br />Officer name is required.';
		valid = false;
	} else {
		document.getElementById('lblErrName').innerHTML = '';
	}	
	
	if (orgsortorder.trim != '') {
		if (!isInt(orgsortorder)) {
			document.getElementById('lblErrSortOrder').innerHTML = '<br />A number is required.';
			valid = false;
		} else {
			document.getElementById('lblErrSortOrder').innerHTML = '';
		}
	} 
	
	return valid;
}

function officersfieldvalidator() { //field validator for adding/editing officers
	
	var offname = document.getElementById('officername');
	
	var offposition = document.getElementById('officerposition');
	var offimagename = document.getElementById('officerimagename');
	var offsortorder = document.getElementById('officersortorder').value;
	
	var valid = true;
	
	if (offname.value == '' || offname.value == null) {
		document.getElementById('lblErrName').innerHTML = '<br />Officer name is required.';
		valid = false;
	} else {
		document.getElementById('lblErrName').innerHTML = '';
	}
	
	if (offposition.value == '' || offposition.value == null) {
		document.getElementById('lblErrPosition').innerHTML = '<br />Officer position is required.';
		valid = false;
	} else {
		document.getElementById('lblErrPosition').innerHTML = '';
	}
	
	if (offimagename.value != '') {
		imgFname = offimagename.value;
		extFname = GetExtFname(imgFname)
		extFname = extFname.toLowerCase()
		if (extFname == 'jpg' || extFname == 'gif' || extFname == 'bmp' || extFname == 'png') {
			document.getElementById('lblErrImage').innerHTML = '';
		} else {
			document.getElementById('lblErrImage').innerHTML = '<br />Please enter a valid picture file. (*.jpg, *.gif, *.bmp, *.png)';
			valid = false;				
		}
	}
	
	
	if (offsortorder.trim != '') {
		if (!isInt(offsortorder)) {
			document.getElementById('lblErrSortOrder').innerHTML = '<br />A number is required.';
			valid = false;
		} else {
			document.getElementById('lblErrSortOrder').innerHTML = '';
		}
	} 
	
	return valid;
}

function officesfieldvalidator() { //field validator for adding/editing offices
	
	var offname = document.getElementById('officename');	
	var offsortorder = document.getElementById('officesortorder').value;
	
	var valid = true;
	
	if (offname.value == '' || offname.value == null) {
		document.getElementById('lblErrName').innerHTML = '<br />Office name is required.';
		valid = false;
	} else {
		document.getElementById('lblErrName').innerHTML = '';
	}
	
	if (offsortorder.trim != '') {
		if (!isInt(offsortorder)) {
			document.getElementById('lblErrSortOrder').innerHTML = '<br />A number is required.';
			valid = false;
		} else {
			document.getElementById('lblErrSortOrder').innerHTML = '';
		}
	} 
	
	return valid;
}

function churchesfieldvalidator() { //field validator for adding/editing churches
	
	var chname = document.getElementById('churchname');		
	var chemail = document.getElementById('churchemail');
	//var chwebsite = document.getElementById('churchwebsite').value;
	var chsortorder = document.getElementById('churchsortorder').value;
	
	var valid = true;
	
	if (chname.value == '' || chname.value == null) {
		document.getElementById('lblErrName').innerHTML = '<br />Church name is required.';
		valid = false;
	} else {
		document.getElementById('lblErrName').innerHTML = '';
	}
	
	if (chemail.value != '') { 
		var regex = new RegExp('[\\w\\.-]+(\\+[\\w-]*)?@([\\w-]+\\.)+[\\w-]+'); //email validation			
		if (!chemail.value.match(regex)) {
		document.getElementById('lblErrEmailAdd').innerHTML = '<br />Email Address is invalid.';		
		valid = false;			
		} else {			
		document.getElementById('lblErrEmailAdd').innerHTML = '';
		}
	}
	
	if (chsortorder.trim != '') {
		if (!isInt(chsortorder)) {
			document.getElementById('lblErrSortOrder').innerHTML = '<br />A number is required.';
			valid = false;
		} else {
			document.getElementById('lblErrSortOrder').innerHTML = '';
		}
	} 
	
	return valid;
}

function schoolsfieldvalidator() { //field validator for adding/editing schools
	
	var schname = document.getElementById('schoolname');		
	var schemail = document.getElementById('schoolemail');
	//var schwebsite = document.getElementById('schoolwebsite').value;
	var schsortorder = document.getElementById('schoolsortorder').value;
	
	var valid = true;
	
	if (schname.value == '' || schname.value == null) {
		document.getElementById('lblErrName').innerHTML = '<br />School name is required.';
		valid = false;
	} else {
		document.getElementById('lblErrName').innerHTML = '';
	}
	
	if (schemail.value != '') { 
		var regex = new RegExp('[\\w\\.-]+(\\+[\\w-]*)?@([\\w-]+\\.)+[\\w-]+'); //email validation			
		if (!schemail.value.match(regex)) {
		document.getElementById('lblErrEmailAdd').innerHTML = '<br />Email Address is invalid.';		
		valid = false;			
		} else {			
		document.getElementById('lblErrEmailAdd').innerHTML = '';
		}
	}
	
	if (schsortorder.trim != '') {
		if (!isInt(schsortorder)) {
			document.getElementById('lblErrSortOrder').innerHTML = '<br />A number is required.';
			valid = false;
		} else {
			document.getElementById('lblErrSortOrder').innerHTML = '';
		}
	} 

	return valid;
}

function contactfieldvalidator() { //field validator for editing contact us page details
	
	var cname = document.getElementById('contactname');		
	var cemail = document.getElementById('contactemail');
	//var schwebsite = document.getElementById('schoolwebsite').value;	
	
	var valid = true;
	
	if (cname.value == '' || cname.value == null) {
		document.getElementById('lblErrName').innerHTML = '<br />Name is required.';
		valid = false;
	} else {
		document.getElementById('lblErrName').innerHTML = '';
	}
	
	if (cemail.value != '') { 
		var regex = new RegExp('[\\w\\.-]+(\\+[\\w-]*)?@([\\w-]+\\.)+[\\w-]+'); //email validation			
		if (!cemail.value.match(regex)) {
		document.getElementById('lblErrEmailAdd').innerHTML = '<br />Email Address is invalid.';		
		valid = false;			
		} else {			
		document.getElementById('lblErrEmailAdd').innerHTML = '';
		}
	}

	return valid;
}

function conventionfieldvalidator() { //field validator for editing conventions details
	
	var convTitle = document.getElementById('conventiontitle');
	var convDateFrom = document.getElementById('conventiondatefrom');	
	var convDateTo = document.getElementById('conventiondateto');		
	var convImage = document.getElementById('conventionimagename');		

	var valid = true;
	
	if (convTitle.value == '') {		
		document.getElementById('lblErrTitle').innerHTML = '&nbsp;* Please enter title of event.';
		valid = false;
	} else {
		document.getElementById('lblErrTitle').innerHTML = '';
	}	
	
	if (convDateFrom.value == '') {	
		document.getElementById('lblErrDateFrom').innerHTML = '&nbsp;* Please enter start date of event.';		
		valid = false;		
	} else if (convDateFrom.value != '') {		
		var regex = new RegExp('^([0]?[1-9]|[1][0-2])[./-]([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0-9]{4}|[0-9]{2})$'); //date validation	string		
		if (!convDateFrom.value.match(regex)) {
			document.getElementById('lblErrDateFrom').innerHTML = '&nbsp;* Date format is invalid. Must be mm/dd/yyyy.';		
			valid = false;			
		} else {			
			document.getElementById('lblErrDateFrom').innerHTML = '';
		}
	}
	//alert(convDateTo.value);
	
	if (convDateTo.value == '') {	
		document.getElementById('lblErrDateTo').innerHTML = '&nbsp;* Please enter end date of event.';		
		valid = false;		
	} else if (convDateTo.value != '') {		
		var regex = new RegExp('^([0]?[1-9]|[1][0-2])[./-]([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0-9]{4}|[0-9]{2})$'); //date validation	string		
		if (!convDateTo.value.match(regex)) {
			document.getElementById('lblErrDateTo').innerHTML = '&nbsp;* Date format is invalid. Must be mm/dd/yyyy.';		
			valid = false;			
		} else {
			
			var fromD = new Date(convDateFrom.value);
			var toD = new Date(convDateTo.value);			
			
			if (toD < fromD) {
				document.getElementById('lblErrDateTo').innerHTML = '* To Date is earlier than From Date!';		
				valid = false;			
			} else {
				document.getElementById('lblErrDateTo').innerHTML = '';
			}
		}		
	}
	
	if (convImage.value != '') {
		imgFname = convImage.value;
		
		extFname = GetExtFname(imgFname);
		
		extFname = extFname.toLowerCase();
		
		if (extFname == 'jpg' || extFname == 'gif' || extFname == 'bmp' || extFname == 'png') {
			
			document.getElementById('lblErrImage').innerHTML = '';
		} else {

			document.getElementById('lblErrImage').innerHTML = '&nbsp;* An image file (*.jpg, *.gif, *.bmp or *.png) is required.';
			valid = false;				
		}
			//alert(convImage.value);	
	}	

	return valid;	
}

function newsfieldvalidator() { //field validator for adding/editing news
	
	var artTitle = document.getElementById('title');
	//var artBody = document.getElementById('artBody').value;
	var artImage = document.getElementById('imagename');	
	var artSortOrder = document.getElementById('sortorder');	

	var valid = true;

	if (artTitle.value == '' || artTitle.value == null) {
		document.getElementById('lblErrTitle').innerHTML = '<br />Article title is required.';
		valid = false;
	} else {
		document.getElementById('lblErrTitle').innerHTML = '';
	}

	if (artSortOrder.value != '') {
		if (!isInt(artSortOrder.value)) {
			document.getElementById('lblErrSortOrder').innerHTML = '<br />A number is required.';
			valid = false;
		} else {
			document.getElementById('lblErrSortOrder').innerHTML = '';
		}
	}
	
	if (artImage.value != '') {
		imgFname = artImage.value;
		extFname = GetExtFname(imgFname);
		extFname = extFname.toLowerCase();
		if (extFname == 'jpg' || extFname == 'gif' || extFname == 'bmp' || extFname == 'png') {
			document.getElementById('lblErrImage').innerHTML = '';
		} else {
			document.getElementById('lblErrImage').innerHTML = '<br />Please enter a valid picture file. (*.jpg, *.gif, *.bmp, *.png)';
			valid = false;				
		}
	}

	return valid;	
}

function categoryfieldvalidator() {
	
	var categoryname = document.getElementById('name');	
	var valid = true;

	if (categoryname.value == '' || categoryname.value == null) {
		document.getElementById('lblErrName').innerHTML = '<br />Category name is required.';
		valid = false;
	} else {
		document.getElementById('lblErrName').innerHTML = '';
	}
	
	return valid;
	
}

function eventfieldvalidator() { //field validator for adding/editing events
	
	var eventTitle = document.getElementById('title');
	var eventDateFrom = document.getElementById('datefrom');	
	var eventDateTo = document.getElementById('dateto');	
	var eventBody = document.getElementById('body');
	var eventImage = document.getElementById('imagename');	
	var eventSortOrder = document.getElementById('sortorder');		

	var valid = true;
	
	if (eventTitle.value == '' || eventTitle.value == null) {
		document.getElementById('lblErrTitle').innerHTML = '&nbsp;* Please enter title of event.';
		valid = false;
	} else {
		document.getElementById('lblErrTitle').innerHTML = '';
	}	
	
	
	if (eventDateFrom.value == '') {	
		document.getElementById('lblErrDateFrom').innerHTML = '&nbsp;* Please enter date of event.';		
		valid = false;		
	} else if (eventDateFrom.value != '') {		
		var regex = new RegExp('^([0]?[1-9]|[1][0-2])[./-]([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0-9]{4}|[0-9]{2})$'); //date validation	string		
		if (!eventDateFrom.value.match(regex)) {
			document.getElementById('lblErrDateFrom').innerHTML = '&nbsp;* Date format is invalid. Must be mm/dd/yyyy.';		
			valid = false;			
		} else {			
			document.getElementById('lblErrDateFrom').innerHTML = '';
		}
	}
	
	if (eventDateTo.value != '') {		
		var regex = new RegExp('^([0]?[1-9]|[1][0-2])[./-]([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0-9]{4}|[0-9]{2})$'); //date validation	string		
		if (!eventDateTo.value.match(regex)) {
			document.getElementById('lblErrDateTo').innerHTML = '&nbsp;* Date format is invalid. Must be mm/dd/yyyy.';		
			valid = false;			
		} else {		
		
			var fromD = new Date(eventDateFrom.value);
			var toD = new Date(eventDateTo.value);			
			
			if (toD < fromD) {
				document.getElementById('lblErrDateTo').innerHTML = '* To Date is earlier than From Date!';		
				valid = false;			
			} else {
				document.getElementById('lblErrDateTo').innerHTML = '';
			}
		}
	}
	
	if (eventImage.value != '') {
		imgFname = eventImage.value;
		extFname = GetExtFname(imgFname);
		extFname = extFname.toLowerCase();
		if (extFname == 'jpg' || extFname == 'gif' || extFname == 'bmp' || extFname == 'png') {
			document.getElementById('lblErrImage').innerHTML = '';
		} else {
			document.getElementById('lblErrImage').innerHTML = '&nbsp;* An image file (*.jpg, *.gif, *.bmp or *.png) is required.';
			valid = false;				
		}
	}
	
	if (eventSortOrder.value != '') {
	
		if (!isInt(eventSortOrder.value)) {
			document.getElementById('lblErrSortOrder').innerHTML = '&nbsp;* An integer value is required.';
			valid = false;
		} else {
			document.getElementById('lblErrSortOrder').innerHTML = '';
		}
	}
	
	return valid;	
}


//HELPER FUNCTIONS ============================================================================================================

//checks if variable is an integer
function isInt(qty) { 
	 // get the modulus: if it's 0, then it's an integer
	 var myMod = qty % 1;

	 if (myMod == 0) {
			 return true;
	 } else {
			 return false;
	 }
}

//gets extension filename
function GetExtFname(imgFname) {	
	indexEnd = imgFname.length;
	indexStart = indexEnd - 3;
	extFname = imgFname.substr(indexStart, indexEnd);
	return extFname;
}
