// ===================  General Functions Start ===============================
// Function to force cursor to first field in form
function focusForm()
{
	if ( document.forms[0] )
	{
		document.forms[0].elements[0].focus()
	}
}

// Function to replace characters in a string
function replace(str, original, replacement)
{
	var result;
	result = "";
	while(str.indexOf(original) != -1) 
	{
		if (str.indexOf(original) > 0)
		result = result + str.substring(0, str.indexOf(original)) + replacement;
		else
		result = result + replacement;
		str = str.substring(str.indexOf(original) + original.length, str.length);
	}
	return result + str;
}
// ===================  General Functions End ===============================





// ===================  Parse Functions Start ===============================
// Function to parse a textarea for carriage returns and convert to BRs
// and find apostrophes and convert to ASCII
function parseForm()
{
	if ( document.forms[0] )
	{
		var formLength = document.forms[0].elements.length
		for (i=0;i<formLength;i++)
		{
			if ( document.forms[0].elements[i].value != "" )
			{
				var strParse = document.forms[0].elements[i].value
				strParse = replace(strParse, "'", "&#39;")
				if ( document.forms[0].elements[i].type ==  "textarea" && strParse.indexOf("\n") != -1 ) { strParse = replace(strParse, strParse.substring(strParse.indexOf("\n") - 1, strParse.indexOf("\n") + 1), "<br />") }					
				document.forms[0].elements[i].value = strParse
			}
		}
	}
}

// Function to parse a textarea for BRs and convert to carriage returns
// and find ASCII rsquo and convert to apostrophes
function revparseForm()
{
	if ( document.forms[0] )
	{
		var formLength = document.forms[0].elements.length
		for (i=0;i<formLength;i++)
		{
			if ( document.forms[0].elements[i].value != "" )
			{
				var strParse = document.forms[0].elements[i].value
				strParse = replace(strParse, "&rsquo;", "'")
				if ( document.forms[0].elements[i].type ==  "textarea" && strParse.indexOf("<br />") != -1 ) { strParse = replace(strParse, "<br />", "\n") }
				document.forms[0].elements[i].value = strParse
			}
		}
	}
}
// ===================  Parse Functions End ===============================





// ===================  WO Submit Form Validation Start ===============================

// Function to restrict campus selection
function setCampus(boca,jupiter,selection)
{
	ppwkctrl = document.WorkRequestForm
	ppwkctrlBoca = ppwkctrl(boca)
	ppwkctrlJupiter = ppwkctrl(jupiter)
	if ( selection == "Jupiter" ) ppwkctrlBoca.checked = false
	else if ( selection == "Boca" ) ppwkctrlJupiter.checked = false
}

// Function to restrict dept funds selection
function setYesNo(selection)
{
	ppwkctrl = document.WorkRequestForm
	if ( selection == "Yes" )
	{
		ppwkctrl.FormAcctNo.checked = false
		ppwkctrl.FormAcctNumber.focus()
	}
	else if ( selection == "No" )
	{
		ppwkctrl.FormAcctNumber.value = ""
		ppwkctrl.FormAcctYes.checked = false
	}
}

// Function to restrict estimate type selection
function setEstimate(selection)
{
	ppwkctrl = document.WorkRequestForm
	if ( selection == "Required" ) ppwkctrl.FormEstimateWaived.checked = false
	else if ( selection == "Waived") ppwkctrl.FormEstimateRequired.checked = false
}
//Function to check characters in banner #
function validZip(inZip)
{
	if (inZip == ""){
		return true
	}
	if(isNum(inZip)){
		return true
	}
	return false
}
function isNum(passedVal)
{
	if (passedVal == "") {
		return false
	}
	for(i=1; i < passedVal.length; i++) {
		if (passedVal.charAt(i) < "0") {
			return false
		}
		if (passedVal.charAt(i) > "9") {
			return false
		}
	}
	return true
}
// Function to validate form fields on submittal
function checkForm()
{	
	ppwkctrl = document.WorkRequestForm
	var fvalue
	if ( ppwkctrl.FormRequestorName.value == "" )
	{
		alert('You must include the NAME of the individual making this request to proceed.')
		ppwkctrl.FormRequestorName.focus()
		return false
	}
	if ( ppwkctrl.FormRequestorBoca.checked == false && ppwkctrl.FormRequestorJupiter.checked == false ) 
	{
		alert('You must choose a CAMPUS for the REQUESTOR to proceed.')
		return false
	}
	fvalue = ppwkctrl.FormRequestorExtension.value
	//if ( fvalue == "" || fvalue == "X-XXXX" || fvalue.substring(1, 2) != "-" )
	if ( fvalue == "" || fvalue == "X-XXXX" )
	{
		alert('You must include an EXTENSION for the REQUESTOR  in the format X-XXXX to proceed.')
		ppwkctrl.FormRequestorExtension.focus()
		return false
	}
	if ( ppwkctrl.FormRequestorEmail1.value == "" || ppwkctrl.FormRequestorEmail1.value.indexOf("@") >= 0 )
	{
		alert('You must include an EMAIL ADDRESS for the REQUESTOR to proceed.\n\nPlease input only the username portion of your email address WITHOUT the "@" and choose the rest of the address from the dropdown field.')
		ppwkctrl.FormRequestorEmail1.focus()
		return false
	}
	if ( ppwkctrl.FormContactName.value == "" )
	{
		alert("You must include the CONTACT PERSON'S NAME to proceed.")
		ppwkctrl.FormContactName.focus()
		return false
	}
	//if ( ppwkctrl.FormContactBoca.checked == false && ppwkctrl.FormContactJupiter.checked == false ) 
	//{
		//alert('You must choose a CAMPUS for the CONTACT to proceed.')
		//return false
	//}
	fvalue = ppwkctrl.FormContactExtension.value
	//if ( fvalue == "" || fvalue == "X-XXXX" || fvalue.substring(1, 2) != "-" )
	if ( fvalue == "" || fvalue == "X-XXXX" )
	{
		alert('You must include an EXTENSION for the CONTACT in the format X-XXXX to proceed.')
		ppwkctrl.FormContactExtension.focus()
		return false
	}
	if(ppwkctrl.FormContactBldg.selectedIndex == "")
	{
		alert("You must select a BLDG for the Contact person.")
		ppwkctrl.FormContactBldg.focus()
		return false
	}
	if ( ppwkctrl.FormContactRoom.value == "" )
	{
		alert("You must include the CONTACT PERSON'S ROOM NUMBER to proceed.")
		ppwkctrl.FormContactRoom.focus()
		return false
	}
	if(ppwkctrl.FormAffectedBldg.selectedIndex == "")
	{
		alert("You must select the AFFECTED BLDG.")
		ppwkctrl.FormAffectedBldg.focus()
		return false
	}
	if ( ppwkctrl.FormAffectedRoom.value == "" )
	{
		alert("You must include the AFFECTED ROOM NUMBER to proceed.")
		ppwkctrl.FormAffectedRoom.focus()
		return false
	}
	if ( ppwkctrl.FormCompleteMonth.value == 0 && ( ppwkctrl.FormCompleteDay.value != 0 || ppwkctrl.FormCompleteYear.value != 0 ) )
	{
		alert('If you are including a COMPLETION DATE, make sure to choose a MONTH.')
		return false
	}
	if (  ppwkctrl.FormCompleteDay.value == 0 && ( ppwkctrl.FormCompleteMonth.value != 0 || ppwkctrl.FormCompleteYear.value != 0 ) )
	{
		alert('If you are including a COMPLETION DATE, make sure to choose a DAY.')
		return false
	}
	if ( ppwkctrl.FormCompleteYear.value == 0 && ( ppwkctrl.FormCompleteMonth.value != 0 || ppwkctrl.FormCompleteDay.value != 0 ) )
	{
		alert('If you are including a COMPLETION DATE, make sure to choose a YEAR.')
		return false
	}
	if ( ppwkctrl.FormMoveMonth.value == 0 && ( ppwkctrl.FormMoveDay.value != 0 || ppwkctrl.FormMoveYear.value != 0 ) )
	{
		alert('If you are including a MOVE OR SETUP DATE, make sure to choose a MONTH.')
		return false
	}
	if (  ppwkctrl.FormMoveDay.value == 0 && ( ppwkctrl.FormMoveMonth.value != 0 || ppwkctrl.FormMoveYear.value != 0 ) )
	{
		alert('If you are including a MOVE OR SETUP DATE, make sure to choose a DAY.')
		return false
	}
	if ( ppwkctrl.FormMoveYear.value == 0 && ( ppwkctrl.FormMoveMonth.value != 0 || ppwkctrl.FormMoveDay.value != 0 ) )
	{
		alert('If you are including a MOVE OR SETUP DATE, make sure to choose a YEAR.')
		return false
	}
	if ( ppwkctrl.FormRequestorDept.value == "" )
	{
		alert('Please include the NAME OF THE DEPARTMENT submitting this request.')
		ppwkctrl.FormRequestorDept.focus()
		return false
	}
	if ( ppwkctrl.FormShortDesc.value == "" )
	{
		alert('Please include a SHORT DESCRIPTION of the problem and/or request to proceed.')
		ppwkctrl.FormShortDesc.focus()
		return false
	}
	fvalue = ppwkctrl.FormAcctNumber.value
	if ( ppwkctrl.FormAcctYes.checked == false && ppwkctrl.FormAcctNo.checked == false )
	{
		alert('You must choose whether this request is funded by DEPARMTENT BUDGET FUND RESOURCES to proceed.')
		return false
	}
	if ( ppwkctrl.FormAcctYes.checked == true && ( fvalue == "" || fvalue == "XXXXXX" || fvalue.length != 6 ) )
	{
		alert('If this request is funded by Department Budget Fund Resources, and you have chosen to enter a BANNER Index, you must include an ACCOUNT NUMBER in the format XXXXXX to proceed.')
		ppwkctrl.FormAcctNumber.focus()
		return false
	}
}	
	//else if ( ppwkctrl.FormAcctYes.checked == true && ppwkctrl.FormAcctType.value == "SAMAS" && ( fvalue == "" || fvalue == "XXXXXXXXX" || fvalue.length != 9 ) )
	//{
		//alert('If this request is funded by Department Budget Fund Resources, and you have chosen to enter a SAMAS number, you must include an ACCOUNT NUMBER in the format XXXXXXXXX to proceed.')
		//ppwkctrl.FormAcctNumber.focus()
		//return false
	//}
	//if(!validZip(ppwkctrl.FormAcctNumber.value))
	//{
		//alert("This is an invalid account number. Last 5 digits must be numbers")
		//ppwkctrl.FormAcctNumber.focus()
		//return false
	//}
	//if ( ppwkctrl.FormEstimateRequired.checked == false && ppwkctrl.FormEstimateWaived.checked == false ) 
	//{
		//alert('You must choose to either REQUIRE or WAIVE an ESTIMATE to proceed.')
		//return false
	//}

// ===================  WO Submit Form Validation End ================================

// ===================  Feedback Form Validation Start ================================
// Function to Timeliness choice selection
function setSatisfy1(selection)
{
	wkctrlqa = document.QControlForm
	if ( selection == 1 )
	{
		wkctrlqa.FormTimeliness2.checked = false
		wkctrlqa.FormTimeliness3.checked = false
	}
	else if ( selection == 2 )
	{
		wkctrlqa.FormTimeliness1.checked = false
		wkctrlqa.FormTimeliness3.checked = false
	}
	else if ( selection == 3 )
	{
		wkctrlqa.FormTimeliness1.checked = false
		wkctrlqa.FormTimeliness2.checked = false
	}
}

// Function to Professionalism selection
function setSatisfy2(selection)
{
	wkctrlqa = document.QControlForm
	if ( selection == 1 )
	{
		wkctrlqa.FormProfessional2.checked = false
		wkctrlqa.FormProfessional3.checked = false
	}
	else if ( selection == 2 )
	{
		wkctrlqa.FormProfessional1.checked = false
		wkctrlqa.FormProfessional3.checked = false
	}
	else if ( selection == 3 )
	{
		wkctrlqa.FormProfessional1.checked = false
		wkctrlqa.FormProfessional2.checked = false
	}
}

// Function to Thoroughness selection
function setSatisfy3(selection)
{
	wkctrlqa = document.QControlForm
	if ( selection == 1 )
	{
		wkctrlqa.FormThorough2.checked = false
		wkctrlqa.FormThorough3.checked = false
	}
	else if ( selection == 2 )
	{
		wkctrlqa.FormThorough1.checked = false
		wkctrlqa.FormThorough3.checked = false
	}
	else if ( selection == 3 )
	{
		wkctrlqa.FormThorough1.checked = false
		wkctrlqa.FormThorough2.checked = false
	}
}

// Function to Overall selection
function setSatisfy4(selection)
{
	wkctrlqa = document.QControlForm
	if ( selection == 1 )
	{
		wkctrlqa.FormOverall2.checked = false
		wkctrlqa.FormOverall3.checked = false
	}
	else if ( selection == 2 )
	{
		wkctrlqa.FormOverall1.checked = false
		wkctrlqa.FormOverall3.checked = false
	}
	else if ( selection == 3 )
	{
		wkctrlqa.FormOverall1.checked = false
		wkctrlqa.FormOverall2.checked = false
	}
}

// Function to validate form fields on submittal
function checkQAForm()
{
	wkctrlqa = document.QControlForm
	if ( wkctrlqa.FormTimeliness1.checked == false && wkctrlqa.FormTimeliness2.checked == false && wkctrlqa.FormTimeliness3.checked == false ) {
		alert('Please provide feedback whether the response to your request was handled in a timely manner.')
		return false
	}
	if ( wkctrlqa.FormProfessional1.checked == false && wkctrlqa.FormProfessional2.checked == false && wkctrlqa.FormProfessional3.checked == false ) {
		alert('Please provide feedback whether the work was performed in a professional manner.')
		return false
	}
	if ( wkctrlqa.FormThorough1.checked == false && wkctrlqa.FormThorough2.checked == false && wkctrlqa.FormThorough3.checked == false ) {
		alert('Please provide feedback whether your request was thoroughly serviced.')
		return false
	}
	if ( wkctrlqa.FormOverall1.checked == false && wkctrlqa.FormOverall2.checked == false && wkctrlqa.FormOverall3.checked == false ) {
		alert('Please provide feedback whether you were overall satisfied with the service performed.')
		return false
	}
}
// ===================  Feedback Form Validation End ================================