

function isPhone(PhoneNum) {
	var str = PhoneNum;

	var intCount = 0;
	for (var i = 0; i < str.length; i++) {
		var ch = str.substring(i, i + 1);
		if (ch >= "0" && ch <= "9") {intCount++;}
	}
	
	return intCount;
}

//////////////////////////////////////////////////////////////////////////
/////////////////////////// ADMIN FUNCTIONS //////////////////////////////
//////////////////////////////////////////////////////////////////////////
// 1.  System settings validation
// 2.  TestIt - test mail server and attachment path
// 3.  Help form validation for input
// 2. Search Form Validation
// 3. Forward Form validation
// 5.  Convert Category form to an add form
// 6.  Convert Category form to an edit form
// 7.  New Member validation form

//////////////////////////////////////////////////////////////////////////
//Function:		CheckProfileForm
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Profile Form
//Returns:		boolean
function CheckSettingsForm(){
	var msg = "Please complete the following fields before continuing:\n";
	var err = 0;
	if (document.forms[0].applicationtitle.value == "") {
		err = err + 1;
		msg = msg + "\n-Application Title";
	}
	if (document.forms[0].applicationslogan.value == "") {
		err = err + 1;
		msg = msg + "\n-Application Slogan";
	}
	if (document.forms[0].loginslogan.value == "") {
		err = err + 1;
		msg = msg + "\n-Slogan for the Login Page";
	}
	if (document.forms[0].mailserver.value == "") {
		err = err + 1;
		msg = msg + "\n-Mail Server";
	}
	if (document.forms[0].supportemail.value == "") {
		err = err + 1;
		msg = msg + "\n-Support Email Address";
	}
	if (document.forms[0].attachmentpath.value == "") {
		err = err + 1;
		msg = msg + "\n-Attachment Path";
	}
	if (document.forms[0].bannercolor.value == "") {
		err = err + 1;
		msg = msg + "\n-Banner Color";
	}
	if (document.forms[0].primarycolor.value == "") {
		err = err + 1;
		msg = msg + "\n-Primary Color";
	}
	if (document.forms[0].secondarycolor.value == "") {
		err = err + 1;
		msg = msg + "\n-Secondary Color";
	}
	if (document.forms[0].evenrowcolor.value == "") {
		err = err + 1;
		msg = msg + "\n-Even Row Color";
	}
	if (document.forms[0].oddrowcolor.value == "") {
		err = err + 1;
		msg = msg + "\n-Odd Row Color";
	}
	if (document.forms[0].datemask.value == "") {
		err = err + 1;
		msg = msg + "\n-Date Format";
	}
	if (document.forms[0].timemask.value == "") {
		err = err + 1;
		msg = msg + "\n-Time Format";
	}
	if (err != 0){
		alert(msg);
		return false
	}
	return true
}

//////////////////////////////////////////////////////////////////////////
//Function:		ShowInfo
//Author:		Randy Adkins
//Created:		11/01/2002
//Purpose:		Displays Information within a Pop-Up window.
//Returns:		boolean
function ShowInfo(item,fld){
	if (item == 'date_vars'){
		var myurl = 'popVariablesList.cfm?var=Date&fld='+fld;
	}
	if (item == 'time_vars'){
		var myurl = 'popVariablesList.cfm?var=Time&fld='+fld;
	}
	var newwin=window.open(myurl,"Information","toolbar=no,scrollbars=yes,width=600,height=350");
}

//////////////////////////////////////////////////////////////////////////
//Function:		CheckLoginForm
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Login Form
//Returns:		boolean
function TestIt(item){
	var url = 0;
	if (item == "mailserver") {
		url = "test_mailserver.cfm?MS="+document.forms[0].mailserver.value;
	}
	if (item == "attachmentpath") {
		url = "test_path.cfm?AP="+document.forms[0].attachmentpath.value;
	}
	if (url != 0){
		var maxX = screen.width/2-100;
		var maxY = screen.height/2-50;
		var newwin = window.open(url,"testing","width=200,height=100,toolbar==no,resizable=no,scrollbars=no,status=no");
		newwin.moveTo(maxX,maxY);
	}
	else {
		alert("unable to determine test.");
	}
}

//////////////////////////////////////////////////////////////////////////
//Function:		CheckHelpForm
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Login Form
//Returns:		boolean
function CheckHelpForm(){
	var msg = "Please complete the following fields before continuing:\n";
	var err = 0;
	if (document.forms[0].pagename.value == "") {
		err = err + 1;
		msg = msg + "\n-Page Name";
	}
	if (document.forms[0].helptitle.value == ''){
		err = err + 1;
		msg = msg + "\n-Help Title";
	}
	
	if (document.forms[0].helptext.value == ''){
		err = err + 1;
		msg = msg + "\n-Help Text";
	}
	if (err != 0){
		alert(msg);
		return false
	}
	return true
}

/////////////////////////////////////////////////////////////////////////
//Function:		CheckSearchForm
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Login Form
//Returns:		boolean
function CheckSearchForm(){
	var boxCounter=0;
	if (document.forms[0].ticketid.value == "") {
		boxCounter++
	}
	if (document.forms[0].title.value == "") {
		boxCounter++
	}
	if (document.forms[0].client.value == "") {
		boxCounter++
	}

	if (boxCounter == 3) {
		if (confirm("Are you sure you wish to search for all records?\n\nOK = YES\n\nCANCEL = NO")){
			return true
		}
		else {
			return false
		}
	}
	else {
		return true	
	}
}

/////////////////////////////////////////////////////////////////////////
//Function:		CheckForwardForm
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Login Form
//Returns:		boolean
function CheckForwardForm(){
	if (document.forms[0].ticketid.value == "") {
		alert("You must select atleast one ticket to be forwarded.");
		return false
	}
	if (document.forms[0].staffid.value == "") {
		alert("You must select one staff member to receive the support tickets.");
		return false
	}
	return 
}

//////////////////////////////////////////////////////////////////////////
//Function:		Reset the current form for Edit Mode
//Author:		Randy Adkins
//Created:		07/07/2004
//Purpose:		Reset the current form for Edit Mode
function Convert2EditForm(id,category,seq,status){
	document.forms[0].action.value = 'update';
	document.forms[0].category.value = category;
	document.forms[0].sequence.value = seq;
	document.forms[0].status.value = status;
	document.forms[0].categoryid.value = id;
	document.forms[0].submit.value = "Update Category";
}
//////////////////////////////////////////////////////////////////////////
//Function:		Reset the current form for Edit Mode
//Author:		Randy Adkins
//Created:		07/07/2004
//Purpose:		Reset the current form for Edit Mode
function Convert2AddForm(){
	document.forms[0].action.value = 'add';
	document.forms[0].category.value = '';
	document.forms[0].sequence.value = '';
	document.forms[0].status.value = '';
	document.forms[0].categoryid.value = '';
	document.forms[0].submit.value = "Add Category";
}
//////////////////////////////////////////////////////////////////////////
//Function:		CheckCategoryForm
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Login Form
//Returns:		boolean
function CheckCategoryForm(){
	if (document.forms[0].category.value == ''){
		alert("You must enter a Name for the Category");
		return false
	}
	if (document.forms[0].sequence.value == ''){
		alert("You must enter a Sequence Number for the Category");
		return false
	}
	if (isNaN(document.forms[0].sequence.value) == true){
		alert("You must enter a numeric value for the Sequence");
		return false
	}	
	return true
}
//////////////////////////////////////////////////////////////////////////
//Function:		ConfirmItem
//Author:		Randy Adkins
//Created:		11/01/2002
//Purpose:		Confirms Deletions based on values passed.
//Returns:		boolean
function ConfirmDelete(type,membertype,id,varName){
	// Ask for Confirmation prior to deleting
	if (type == 'member') {
		var confirmMSG = "Do you want to delete this user: " + varName + "?";
		confirmMSG = confirmMSG + "\n\nOK = YES\n\nCANCEL = NO\n";
		var actionURL = "index.cfm?action=delete&id=" + id + "&membertype=" + membertype;
		if (confirm(confirmMSG)){
			window.location=actionURL;
		}
	}
	if (type == 'category') {
		var confirmMSG = "Do you want to delete the category of: " + varName + "?";
		confirmMSG = confirmMSG + "\n\nOK = YES\n\nCANCEL = NO\n";
		var actionURL = "index.cfm?action=delete&id=" + id;
		if (confirm(confirmMSG)){
			window.location=actionURL;
		}
	}
	
	
	if (type == 'help') {
		var confirmMSG = "Do you want to delete the help text for: " + varName + "?";
		confirmMSG = confirmMSG + "\n\nOK = YES\n\nCANCEL = NO\n";
		var actionURL = "actDeleteHelp.cfm?id=" + id;
		if (confirm(confirmMSG)){
			window.location=actionURL;
		}
	} 
}
/////////////////////////////////////////////////////////////////////////
//Function:		CheckNewMemberForm
//Author:		Randy Adkins
//Created:		12/17/2004
//Purpose:		Form Validation for the New Members Form
//Returns:		boolean
function CheckNewMemberForm(){
	var msg = "Please complete the following fields before registering:\n";
	var err = 0;
	if (document.forms[0].firstname.value == "") {
		err = err + 1;
		msg = msg + "\n-First Name";
	}
	if (document.forms[0].lastname.value == "") {
		err = err + 1;
		msg = msg + "\n-Last Name";
	}
	if (document.forms[0].companyname.value == "") {
		err = err + 1;
		msg = msg + "\n-Company Name";
	}
	if (document.forms[0].address1.value == "") {
		err = err + 1;
		msg = msg + "\n-Address";
	}
	if (document.forms[0].city.value == "") {
		err = err + 1;
		msg = msg + "\n-City";
	}
	if (document.forms[0].state.value == "") {
		err = err + 1;
		msg = msg + "\n-State";
	}
	if (document.forms[0].zipcode.value == "") {
		err = err + 1;
		msg = msg + "\n-Zipcode";
	}
	if (document.forms[0].phone.value == "") {
		err = err + 1;
		msg = msg + "\n-Primary Phone";
	}
	if (document.forms[0].membertype.value == "") {
		err = err + 1;
		msg = msg + "\n-Member Type";
	}
	if (document.forms[0].emailaddress.value == "") {
		err = err + 1;
		msg = msg + "\n-Email Address";
	}
	if (document.forms[0].password.value == "") {
		err = err + 1;
		msg = msg + "\n-Password";
	}
	if (document.forms[0].password.value.length < 4) {
		err = err + 1;
		msg = msg + "\n-Password must be 4 characters or more.";
	}
	if (err != 0){
		alert(msg);
		return false
	}
	return true
}
//////////////////////////////////////////////////////////////////////////
/////////////////////////// CLIENT FUNCTIONS /////////////////////////////
//////////////////////////////////////////////////////////////////////////
// 1.  New Ticket validation form
// 2.  Ticket Submission Form


//////////////////////////////////////////////////////////////////////////
//Function:		CheckNewTicketForm
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Login Form
//Returns:		boolean
function CheckNewTicketForm(att){
	
	var msg = "Please complete the following fields before continuing:\n";
	var err = 0;
	document.forms[0].FNAME.value = document.forms[0].attachment.value;
	if (document.forms[0].category.value == "NONE"){
		err = err + 1;
		msg = msg + "\n-Category";
	}
	if (document.forms[0].title.value == ""){
		err = err + 1;
		msg = msg + "\n-Title";
	}
	if (document.forms[0].priority.value == ""){
		err = err + 1;
		msg = msg + "\n-Priority Level";

	}
	if (document.forms[0].problem.value == ""){
		err = err + 1;
		msg = msg + "\n-Description";
	}
	
	if (err != 0){
		alert(msg);
		return false
	}
	return true
}

//////////////////////////////////////////////////////////////////////////
//Function:		CheckTicketUpdateForm
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Login Form
//Returns:		boolean
function CheckTicketUpdateForm(){
	if (document.forms[0].message.value == ''){
		alert("You must enter an Updated Message to complete the action.");
		return false
	}
	if (document.forms[0].case_status.value == 'Closed'){
		if (!confirm("Are you sure you wish to close this ticket?")){
			document.forms[0].case_status.value = 'Active';
		}
	}
	return true
}


//////////////////////////////////////////////////////////////////////////
/////////////////////////// SHARED FUNCTION //////////////////////////////
//////////////////////////////////////////////////////////////////////////
// 1.  Login Form
// 2.  Registration Form
// 3.  Forgot Password Form
// 4.  Profile Update Form
// 4.  Submit Problem Form
// 5.  Online Help Display
// 6.  Isemail validation


//////////////////////////////////////////////////////////////////////////
//Function:		CheckLoginForm
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Login Form
//Returns:		boolean
function CheckLoginForm(form){
	var msg = "Please complete the following fields before continuing:\n";
	var err = 0;
	if (document.forms[0].emailaddress.value == "") {
		err = err + 1;
		msg = msg + "\n-Email Address";
	}
	if (document.forms[0].password.value == "") {
		err = err + 1;
		msg = msg + "\n-Password";
	}
	if (err != 0){
		alert(msg);
		return false
	}
	if (!isEmail(document.forms[0].emailaddress.value)){
		alert("Invalid email address");
		return false
	}
	else {
		return true	
	}
}


//////////////////////////////////////////////////////////////////////////
//Function:		CheckRegisterForm
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Profile Form
//Returns:		boolean
function CheckRegisterForm(){
	
	var msg = "Please complete the following fields before registering:\n";
	var err = 0;
	if (document.forms[0].firstname.value == "") {
		err = err + 1;
		msg = msg + "\n-First Name";
	}
	if (document.forms[0].lastname.value == "") {
		err = err + 1;
		msg = msg + "\n-Last Name";
	}
	if (document.forms[0].companyname.value == "") {
		err = err + 1;
		msg = msg + "\n-Company Name";
	}
	if (document.forms[0].address1.value == "") {
		err = err + 1;
		msg = msg + "\n-Address";
	}
	if (document.forms[0].city.value == "") {
		err = err + 1;
		msg = msg + "\n-City";
	}
	if (document.forms[0].state.value == "") {
		err = err + 1;
		msg = msg + "\n-State";
	}
	if (document.forms[0].zipcode.value == "") {
		err = err + 1;
		msg = msg + "\n-Zipcode";
	}
	if (document.forms[0].phone.value == "") {
		err = err + 1;
		msg = msg + "\n-Primary Phone";
	}
	if (document.forms[0].emailaddress.value == "") {
		err = err + 1;
		msg = msg + "\n-Email Address";
	}
	if (document.forms[0].password.value == "") {
		err = err + 1;
		msg = msg + "\n-Password";
	}
	if (document.forms[0].password.value.length < 4) {
		err = err + 1;
		msg = msg + "\n-Password must be 4 characters or more.";
	}
	if (err != 0){
		alert(msg);
		return false
	}
	return true
}

//////////////////////////////////////////////////////////////////////////
//Function:		CheckForgotPasswordForm
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Login Form
//Returns:		boolean
function CheckForgotPasswordForm(){
	if (document.forms[0].emailaddress.value == "") {
		alert("You must enter an email address before continuing.");
		return false
	}
	if (!isEmail(document.forms[0].emailaddress.value)){
		alert("Invalid email address");
		return false
	}
	return true
}

/////////////////////////////////////////////////////////////////////////
//Function:		CheckProfileForm
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Profile Form
//Returns:		boolean
function CheckProfileForm(){
	
	var msg = "Please complete the following fields before registering:\n";
	var err = 0;
	if (document.forms[0].firstname.value == "") {
		err = err + 1;
		msg = msg + "\n-First Name";
	}
	if (document.forms[0].lastname.value == "") {
		err = err + 1;
		msg = msg + "\n-Last Name";
	}
	if (document.forms[0].companyname.value == "") {
		err = err + 1;
		msg = msg + "\n-Company Name";
	}
	if (document.forms[0].address1.value == "") {
		err = err + 1;
		msg = msg + "\n-Address";
	}
	if (document.forms[0].city.value == "") {
		err = err + 1;
		msg = msg + "\n-City";
	}
	if (document.forms[0].state.value == "") {
		err = err + 1;
		msg = msg + "\n-State";
	}
	if (document.forms[0].zipcode.value == "") {
		err = err + 1;
		msg = msg + "\n-Zipcode";
	}
	if (document.forms[0].phone.value == "") {
		err = err + 1;
		msg = msg + "\n-Primary Phone";
	}
	if (document.forms[0].emailaddress.value == "") {
		err = err + 1;
		msg = msg + "\n-Email Address";
	}
	if (document.forms[0].password.value == "") {
		err = err + 1;
		msg = msg + "\n-Password";
	}
	if (document.forms[0].password.value.length < 4) {
		err = err + 1;
		msg = msg + "\n-Password must be 4 characters or more.";
	}
	if (err != 0){
		alert(msg);
		return false
	}
	return true
}
//////////////////////////////////////////////////////////////////////////
//Function:		CheckProblemForm
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Login Form
//Returns:		boolean
function CheckProblemForm(form){
	if (document.forms[0].comments.value == "") {
		alert("You must enter a message before it can be sent.");
		return false
	}
	return true
}


//////////////////////////////////////////////////////////////////////////
//Function:		OnlineHelp
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Display Online Help File
//Returns:		boolean
function OnlineHelp(url,page){
	var helpfile = url+"?pg="+page;
	var newwin = window.open(helpfile,"help","width=425,height=200,toolbar=no,resizable=yes,scrollbars=yes,status=no");
}

//////////////////////////////////////////////////////////////////////////
//Function:		isEmail
//Author:		Randy Adkins
//Created:		08/13/2004
//Purpose:		Form Validation for the Login Form
//Returns:		boolean
function isEmail(address) {
	var str = address;
	var errCount = 0;
	// Make sure the length > 0
	if (str.length == 0) {errCount++;}
	
	// Make sure the address contains an '@' sign
	if (str.indexOf('@') < 1) {errCount++;}

	// Make sure the address contains an '.' sign
	if (str.indexOf('.') < 1) {errCount++;}

	// Make sure the address does not contain a space
   for (i = 0; i < str.length; i++)
   {
		// Check that current character isn't whitespace.  If there
		// is a space, then the address is invalid
      var c = str.charAt(i);
      if (c == ' ') {errCount++;}
	}

	if (errCount>0) {
		return false;
	}
	else {
		return true;
	}
}

