/*
'||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
'     *##  *##
'     ##   ##             Copyright 2008 H & B Solutions
'    ##***##              All Rights Reserved
'   ##   ##
' *##  *#&##**%           Authors: Hernandez, Bailey
'        ##   ##          Date:    Feb/2008
'       ##***%            Version: 1.00
'      ##    ##
'    *##****^  Solutions
'||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/

var workFieldNumber = 1;
var eduFieldNumber = 1;
/******************************
*@name:       createTextObj
*@type:       Function
*@parameters: fieldName - String - Name that the field will be created with
*             fieldNumber - Int - Number of the field in order. Increments after a table row is created
*             strvalue - String - Value that the field will hold
******************************/
function createTextObj(fieldName, fieldNumber, strvalue, boolSize){
	var txtObj = document.createElement('input');
	txtObj.type = 'text';
	txtObj.name = fieldName + fieldNumber;
	txtObj.id = fieldName + fieldNumber;
	txtObj.value = strvalue;
	if (boolSize ==  true)
		txtObj.size = strvalue.length;
	return txtObj;
}//***End createTextObj***

/******************************
*@name:       createCmdObj
*@type:       Function
*@parameters: recID - Int - Id number of the current row beign created
******************************/
function createCmdObj(recID){
	var cmdObj = document.createElement('input');
	cmdObj.type = 'button';
	cmdObj.value = 'Remove';
	return cmdObj;
}

/******************************
*@name:       removeEdu
*@type:       Function
*@parameters: none
******************************/
function removeEdu(){
	try{
		//removeRow('tblEdu',4);
		var tbl = document.getElementById('tblEdu');
		var tblRows = tbl.rows.length;
		var rowArr = new Array();
		var j = 0;
		var i = 0;
		for (i=1;i<tblRows;i++){
			var objId = getObjId(tbl.rows[i].cells[4].innerHTML);
			if (document.getElementById(objId).checked == true ){
				rowArr[j] = i;
				j++;
			}
		}//***End for loop***
		//***Remove from the bottom up as the row ID changes after a delete, thus making further ID invalid if moving forward
		for (i=j-1;i > -1;i--){
			tbl.deleteRow(rowArr[i]);
		}	
	}catch(e){
		alert('Remove Edu Error: ' + e);
	}
}//***End removeEdu***	

function removeWork(){
	try{
		//removeRow('tblWork',7);
		var removeCell = 8;
		var tblName = 'tblWork';
		var tbl = document.getElementById('tblWork');
		var tblRows = tbl.rows.length;
		var rowArr = new Array();
		var j = 0;
		var i = 0;
		for (i=1;i<tblRows;i++){
			var objId = getObjId(tbl.rows[i].cells[8].innerHTML);
			if (document.getElementById(objId).checked == true ){
				rowArr[j] = i;
				j++;
			}
		}//***End for loop***
		//***Remove from the bottom up as the row ID changes after a delete, thus making further ID invalid if moving forward
		for (i=j-1;i > -1;i--){
			tbl.deleteRow(rowArr[i]);
		}
	}catch (e){
		alert("Remove Work Error\n" + e);
	}
}//***End removeWork***

function removeRow(tblName,removeCell){
	try{
		var tbl = document.getElementById(tblName);
		var tblRows = tbl.rows.length;
		var rowArr = new Array();
		var j = 0;
		var i = 0;
		for (i=1;i<tblRows;i++){
			var objId = getObjId(tbl.rows[i].cells[removeCell].innerHTML);
			if (document.getElementById(objId).checked == true ){
				rowArr[j] = i;
				j++;
			}
		}//***End for loop***
		//***Remove from the bottom up as the row ID changes after a delete, thus making further ID invalid if moving forward
		for (i=j-1;i > -1;i--){
			tbl.deleteRow(rowArr[i]);
		}
	}catch (e){
		alert("Remove Row Error:\n" + e);
	}
}//***End removeRow***

function getFieldIdNumber(tblName, removeCell, hiddenField){
	try{
		document.getElementById(hiddenField).value = '';
		var tbl = document.getElementById(tblName);
		var tblRows = tbl.rows.length;
		var j = 0;
		var i;
		var strCheck = "chkRemove" + tblName
		for (i=1;i<tblRows;i++){
			var objId = getObjId(tbl.rows[i].cells[removeCell].innerHTML);
			
			document.getElementById(hiddenField).value = document.getElementById(hiddenField).value + objId.substring(strCheck.length, objId.length) + ",";
		}//***End for loop***
	}catch(e){
		alert("Get Field ID Number\n" + e);
	}
}//***End getFieldIdNumber***

/******************************
*@name:			getObjId
*@type:			Function
*@parameters:	strHTML - name of the field we are looking for
*@description:	Located the id of a given field out of the HTML content of a cell.
******************************/	
function getObjId(strHTML){
	var strId;
	var intIDPos;
	var intTypePos;
	intIDPos = strHTML.search("id=");
	intTypePos = strHTML.search("type=");
	var strTemp = strHTML.substring(intIDPos, intTypePos);
	strTemp = strTemp.substring(strTemp.search('=')+1,strTemp.length - 1);
	if (strTemp.search('"') > -1)
	    strTemp = strTemp.substring(1,strTemp.length -1);
	return strTemp;
}//***Emd getTableRowId***

/******************************
*@name:			createCheck
*@type:			function
*@parameter;	recID - Id if the current row to be added to the field name.
*@description:	Creates a checkbox object that will be used for deletion of rows.
******************************/
function createCheck(recID, tblName){
	var chkObj = document.createElement('input');
	chkObj.type = 'checkbox';
	chkObj.id = 'chkRemove' + tblName + recID;
	return chkObj
}//***End createCheck***

/******************************
*@name:			addEducation
*@type:			function
*@parameter;	none
*@description:	Validates all education related information, then creates a new table row with
*				the information that will then be read and added to the database.
******************************/
function addEducation(){
	//***Try to add to the tblEdu object. The problem will be to read the post***
	try{
		var schoolName, Attendance, Graduated, degreeType;	
		schoolName = document.getElementById('txtSchoolName').value;	
		Attendance = document.getElementById('txtSchoolAttendance').value;	
		Graduated = document.getElementById('selGraduated').options[document.getElementById('selGraduated').selectedIndex].value;	
		degreeType = document.getElementById('txtDegreeType').value;	
		//***Validate fields**
		if (schoolName == ""){
			alert('Please add a School Name');
			return false;
		}
		if (Attendance == ""){
			alert('Please add date of Attendance');
			return false;
		}
		if (Graduated == ""){
			alert('Please select if you graduated.');
			return false;
		}
		if (degreeType == ""){
			alert('Please type the kind of degree you obtained or N/A if none.');
			return false;
		}
		//********************
		var tbl = document.getElementById('tblEdu');
		var lastRow = tbl.rows.length;
		var newRow = tbl.insertRow(lastRow);
		
		addTableCell('tblEdu',0,"Text",schoolName,"txtSchoolName",eduFieldNumber,lastRow,newRow, false);
		addTableCell('tblEdu',1,"Text",Attendance,"txtSchoolAttendance",eduFieldNumber,lastRow,newRow, false);
		addTableCell('tblEdu',2,"Text",Graduated,"selGraduated",eduFieldNumber,lastRow,newRow, true);
		addTableCell('tblEdu',3,"Text",degreeType,"txtDegreeType",eduFieldNumber,lastRow,newRow, false);
		addTableCell('tblEdu',4,"Checkbox","","chkRemove",eduFieldNumber,lastRow,newRow, true);
		eduFieldNumber++;
	}catch(e){
		alert('Error adding education info:\n' + e);
	}
}//***End addEducation***

/******************************
*@name:			addWork
*@type:			function
*@parameter;	none
*@description:	Validates all work related information, then creates a new table row with
*				the information that will then be read and added to the database.
******************************/
function addWork(){
	try{
		if (document.getElementById("txtEmployerName").value == ''){
			alert('Please enter an Employer Name');
			return false;
		}
		if (document.getElementById("txtJobTitle").value == '' ){
			alert('Please enter your Job Title');
			return false;
		}
		if (document.getElementById("txtWorkTime").value == '' ){
			alert('Please enter the Employment Period');
			return false;
		}
		if (document.getElementById("txtHoursPerWeek").value == ''){
			alert('Please enter hours worked per week');
			return false;
		}
		if (document.getElementById("txtSupName").value == ''){
			alert('Please include supervisor information');
			return false;
		}
		if (document.getElementById("txtJobDescription").value == ''){
			alert('Please include a description of your responsibilities.');
			return false;
		}
		
		var tbl = document.getElementById('tblWork');
		var lastRow = tbl.rows.length;
		var newRow = tbl.insertRow(lastRow);

		addTableCell('tblWork',0,"Text",document.getElementById("txtEmployerName").value,"txtEmployer",workFieldNumber, lastRow,newRow, true);
		addTableCell('tblWork',1,"Text",document.getElementById("txtEmployerLocation").value,"txtEmployerLocation",workFieldNumber, lastRow,newRow, true);
		addTableCell('tblWork',2,"Text",document.getElementById("txtJobTitle").value,"txtJobTitle",workFieldNumber,lastRow,newRow, false);
		addTableCell('tblWork',3,"Text",document.getElementById("txtWorkTime").value,"txtWorkingTime",workFieldNumber,lastRow,newRow, true);
		addTableCell('tblWork',4,"Text",document.getElementById("txtHoursPerWeek").value,"txtHoursPerWeek",workFieldNumber,lastRow,newRow, true);
		addTableCell('tblWork',5,"Text",document.getElementById("txtReasonForLeaving").value,"txtReasonForLeaving",workFieldNumber,lastRow,newRow, false);
		addTableCell('tblWork',6,"Text",document.getElementById("txtSupName").value,"txtSupName",workFieldNumber,lastRow,newRow, false);
		addTableCell('tblWork',7,"Text",document.getElementById("txtJobDescription").value,"txtJobDescription",workFieldNumber,lastRow,newRow, false);
		addTableCell('tblWork',8,"Checkbox","","chkRemove",workFieldNumber,lastRow,newRow);
		workFieldNumber++;
	}catch(e){
		alert("Error while adding work information\n " + e);
	}
}//***End addWork***

/******************************
*@name:			addTableCell
*@type:			function
*@parameter:	cellNumber - Number of the cell that should be created
*				cellType - Type of object to be created in the cell, Text or Checkbox
*				cellValue - Value the new object in the cell will have
*				objName - Name that the new object will take.
*				lastRow - Number of the last row in the table
*				newRow - Object pointing to the newly created table row
*@description:	Creates a new table cell based on the type, with a set name.
*******************************/
function addTableCell(tblName, cellNumber, cellType, cellValue, objName, fieldNumber, lastRow, newRow, boolSize){
	try{
		var newCell = newRow.insertCell(cellNumber);
		if (cellType == "Text")
			newCell.appendChild(createTextObj(objName,fieldNumber,cellValue, boolSize));
		else if (cellType == "Checkbox"){
			newCell.align="center";
			newCell.appendChild(createCheck(fieldNumber,tblName));
		}
	}catch (e){
		alert("Error while creating cell object\n" + e);
	}
}//***End addTableCell***

function validateForm(){
    var valid=true;
    try{
        if (document.getElementById("txtFirstName").value == ''){
            alert("Please enter your First Name");
            valid = false;
        }else if (document.getElementById("txtLastName").value == ''){
            alert("Please enter your Last Name");
            valid = false;
        }else if (document.getElementById("txtDayPhone").value == ''){
            alert("Please enter your Day Time Phone Number");
            valid = false;
        }else if (document.getElementById("txtEveningPhone").value == ''){
            alert("Please enter your Evening Phone Number");
            valid = false;  
        }else if (document.getElementById("txtEmail").value == ''){          
            alert("Please enter your Email address.");
            valid = false;
        }else if (document.getElementById("selDegree").selectedIndex == 0){  
            alert("Please select your Highest Degree.");
            valid = false; 
        }else if (document.getElementById("txtPosition").value == 0){                                      
            alert("Please select a desired position");
            valid = false;
        }else if (document.getElementById("txtDate").value == ''){                                      
            alert("Please enter your availability to start.");
            valid = false; 
        }else if (document.getElementById("selEmployed").selectedIndex == 0){            
            alert("Please select if you are currently Employed.");
            valid = false;  
        }else if (document.getElementById("selWork").selectedIndex == 0){           
             alert("Please select if you have ever work for Care-a-lot.");
            valid = false;             
        }else if (document.getElementById("chkAgree").checked == false){
            alert("You must agree with the disclaimer prior to submitting.");
            valid = false;
        }  
        getFieldIdNumber("tblWork", 8,"txtWorkRecs");
        getFieldIdNumber("tblEdu", 4,"txtEduRecs");
        return valid;
    }catch(e){
        alert("Validation error: " + e);
        return valid;
    }        
    return valid;
}//***End validateForm***
