var introText = "<div class=\"introText\">Please Review the information below before we send the completed Time Sheet to your employer.";
	introText += "<ol><li>If you need to make any corrections you may return to the Time Sheet form by clicking the 'Return to Form' button at the bottom to the message.</li>";
	introText += "<li>When you are satisfied with your timesheet you may send it to your employer by clicking the 'Send Email' button at the bottom of the message.</li></ol></div>";
	introText += "<hr>";

var xmlHttp;
var elemRowNum = new Array();
var runTot;
var total = new Array(7);
var queryString;
var request = null;
var firstRun = 0;
var message;
var spanMessageID = document.getElementById("checkForm");

function buildArray(){
	for(i = 1; i <=7; i++){
		total[i]= new Array();
	}

}

function addTotal(strHours, strID) {
	var i;
	var weekTot;
	var w;
	var dayDivID = Number(strID.charAt(0));
	
	// build the total[] array 
	if(firstRun==0){
		buildArray();
		firstRun = 1;
	}
	
	// input hours worked into the Total array set up as: total[day][element row number]
	if(strID.length == 4){
		var lngID = strID.charAt(2)+strID.charAt(3);
		total[dayDivID][Number(lngID)]= Number(strHours);
	} else {
		total[dayDivID][Number(strID.charAt(2))]= Number(strHours);
	}
	
	// sum up the entire total array
	runTot = 0;
	for(i in total[dayDivID]) {
		runTot = runTot + total[dayDivID][i];
	}
	document.getElementById("total"+strID.charAt(0)).value=runTot;
	
	// sum up the weekly total
	weekTot = 0;
	for(w = 1; w<8; w++){
		weekTot += Number(document.getElementById("total"+w.toString()).value);
	}
	document.getElementById("total").value = weekTot;
		
}

// removes a row of inputs from the form
function removeRow(elemID) {
		
	var dayDivID = elemID.charAt(3); // ID number of the day div
	var dayDiv = document.getElementById(dayDivID); // Div for the day
	// ID Element row number
	if(elemID.length == 6){
		var elemNumID = elemID.charAt(4)+elemID.charAt(5);
	} else {
		var elemNumID = elemID.charAt(4);
	}
	var codeID = dayDivID+"1"+elemNumID;
	var descID = dayDivID+"2"+elemNumID;
	var hoursID = dayDivID+"3"+elemNumID;
	
	// 1. Remove the two images
	// 2. Remove the three fields
	dayDiv.removeChild(document.getElementById(elemID));
	dayDiv.removeChild(document.getElementById(codeID));
	dayDiv.removeChild(document.getElementById(descID));
	dayDiv.removeChild(document.getElementById(hoursID));
	
	// 4. Set the amount in the total[] array to zero
	// 5. Add the amounts again
	addTotal("0", hoursID)
	
	}

function addRow(rowID) {
	var dayDivID = rowID.charAt(3);
	var _div = document.getElementById(dayDivID);
	
	//move forward element row number by 1
	if(elemRowNum[Number(dayDivID)]==null){
		elemRowNum[Number(dayDivID)]=1;
		_div.innerHTML="<ul id=\"timeSheetList\"><li class=\"codeLabelList\">Work Code</li><li class=\"descLabelList\">Description</li><li class=\"hourLabelList\">Hours</li></ul>";
	} else {
		elemRowNum[Number(dayDivID)]++;
	}
	
	switchImage(_div, dayDivID);
	addField(_div, dayDivID);
	_div = null;
}

function switchImage(_div, dayDivID) {
	var imageRem;
	var newRow = elemRowNum[Number(dayDivID)].toString();
	
	// new remove button for row
	imageRem = document.createElement("img");
	imageRem.setAttribute("class","plus");
	imageRem.setAttribute("className","plus");
	imageRem.setAttribute("src", "../ajax/images/remove.png");
	imageRem.id="rem"+dayDivID+newRow;
	imageRem.onclick=function(){removeRow(this.id);}
	_div.appendChild(imageRem);
	
}

function addField(_div, dayDivID) {
	var el; // additional inputs
	var size; // attributes for additional inputs
	var name; // attributes for additional inputs
	
	// insert 3 input fields
	for(var i=1; i < 4; i++){
		name= dayDivID.toString()+i.toString()+elemRowNum[Number(dayDivID)];
		if (i == 1){
			el = document.createElement("input");
			el.setAttribute("type","text");
			el.setAttribute("name","code"+name);
			el.setAttribute("class","rows");
			el.setAttribute("className","rows");
			el.setAttribute("size",5);
			el.id=name;
		}
		if (i == 2){
			el = document.createElement("textarea");
			el.setAttribute("name","desc"+name);
			el.setAttribute("class","rows");
			el.setAttribute("className","rows");
			el.setAttribute("rows",1);
			el.setAttribute("cols",30);
			el.setAttribute("align","bottom");
			el.id=name;
			el.onkeyup=function(){expandArea(this.value, this.id)}
		}
		if (i == 3){
			el = document.createElement("input");
			el.setAttribute("type","text");
			el.setAttribute("name","hour"+name);
			el.setAttribute("class","rows");
			el.setAttribute("className","rows");
			el.setAttribute("size",5);
			el.id=name;
			el.onblur=function(){addTotal(this.value, this.id)}
		}
		_div.appendChild(el);
		
		
	}
	
	_div.appendChild(document.createElement("br"));
		
}

// This function is used to make the description box expand to two rows when it's text length hits 25
function expandArea(areaValue, areaId){
	var tArea = document.getElementById(areaId);
	
	if(areaValue.length == 25){
		tArea.setAttribute("rows",2);
	}
}

function sendData() {
	setQueryString();
	var url="../ajax/phpform.php"+"?"+queryString;
	httpRequest("GET",url,true);
}



function setQueryString(){
	queryString="";
	var frm = document.forms[2];
	var numberElements = frm.elements.length;
	for(var i = 0; i < numberElements; i++) {
		if(i < numberElements-1){
			queryString += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value)+"&";
		} else {
			queryString += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value);
		}
	}
}



function httpRequest(reqType, url, asynch){
	//Mozilla-based browsers
		if(window.XMLHttpRequest){
			request = new XMLHttpRequest();
		} else if (window.ActiveXObject){
			request=new ActiveXObject("Msxml2.XMLHTTP");
			if (! request) {
				request= new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
		
		if(request) {	
			initReq(reqType, url, asynch);
		} else {
			alert("Your browser does not permit the use of all of this applications features!");
		}
}
		

/* Initialize a requsest object that is already constructed */	
function initReq(reqType,url,isAsynch){
	
		/* Specify the function that will handle the HTTP response */
		request.onreadystatechange=handleResponse;
		request.open(reqType, url, isAsynch);
		// request.setRequestHeader("Content-Type", "application/x-www-urlencoded; charset=UTF-8");
		request.send(null);
}

function handleResponse(){
	if(request.readyState == 4 || request.readyState=="complete"){
			message = request.responseText;
		var Buttons = "<button type='button' class='retButton' className='retButton' onClick='returnToForm()'>Return to Form</button><button type='submit' class='sendEmail' className='sendEmail'>Send Email</button><br>";
		
		var spanFormat = document.getElementById("checkForm");
			spanFormat.setAttribute("class","active");
			spanFormat.setAttribute("className","active");
		
		var divMessage = document.createElement("div");
			divMessage.setAttribute("name","responseText");
			divMessage.setAttribute("class","active");
			divMessage.setAttribute("className","active");
			divMessage.id="responseText";
			divMessage.innerHTML="<div class=\"message\">"+introText+message+Buttons+"</div>"; //roundedTop+message+Buttons+roundedTop;
		
		var divBg = document.createElement("div");
			divBg.setAttribute("name","bg_1");
			divBg.setAttribute("class","bg");
			divBg.setAttribute("className","bg");
			divBg.id="bg_1";
				
		spanFormat.appendChild(divBg);
		spanFormat.appendChild(divMessage);
		
		Rounded("div.active","transparent","#dbe5c7");
				
		window.scrollTo(0,0)
		
	}
}

function returnToForm(){
	var message_span=document.getElementById("checkForm");
	var divBkg=document.getElementById("bg_1");
	var divBody=document.getElementById("responseText");	
	
	message_span.removeChild(divBkg);
	message_span.removeChild(divBody);
	message_span.setAttribute("class","deactive");
	message_span.setAttribute("className","deactive");
			
}



// The functions below all deal with making the rounded corners for the displayed message
function NiftyCheck()
{
	if(!document.getElementById || !document.createElement)
    	return(false);
	var b=navigator.userAgent.toLowerCase();
	if(b.indexOf("msie 5")>0 && b.indexOf("opera")==-1)
    	return(false);
	return(true);
}

function Rounded(selector,bk,color,size){
	var i;
	var v=getElementsBySelector(selector);
	var l=v.length;
	for(i=0;i<l;i++){
    	AddTop(v[i],bk,color,size);
    	AddBottom(v[i],bk,color,size);
    }
}

function RoundedTop(selector,bk,color,size){
	var i;
	var v=getElementsBySelector(selector);
	for(i=0;i<v.length;i++)
    	AddTop(v[i],bk,color,size);
}

function RoundedBottom(selector,bk,color,size){
	var i;
	var v=getElementsBySelector(selector);
	for(i=0;i<v.length;i++)
    	AddBottom(v[i],bk,color,size);
}

function AddTop(el,bk,color,size){
	var i;
	var d=document.createElement("b");
	var cn="r";
	var lim=4;
	if(size && size=="small"){ cn="rs"; lim=2}
	d.className="rtop";
	d.style.backgroundColor=bk;
	for(i=1;i<=lim;i++){
    	var x=document.createElement("b");
   		x.className=cn + i;
    	x.style.backgroundColor=color;
    	d.appendChild(x);
    }
	el.insertBefore(d,el.firstChild);
}

function AddBottom(el,bk,color,size){
	var i;
	var d=document.createElement("b");
	var cn="r";
	var lim=4;
	if(size && size=="small"){ cn="rs"; lim=2}
	d.className="rbottom";
	d.style.backgroundColor=bk;
	for(i=lim;i>0;i--){
    	var x=document.createElement("b");
    	x.className=cn + i;
   		x.style.backgroundColor=color;
    	d.appendChild(x);
    }
	el.appendChild(d,el.firstChild);
}

function getElementsBySelector(selector){
	var i;
	var s=[];
	var selid="";
	var selclass="";
	var tag=selector;
	var objlist=[];
	if(selector.indexOf(" ")>0){  //descendant selector like "tag#id tag"
    	s=selector.split(" ");
    	var fs=s[0].split("#");
    	if(fs.length==1) return(objlist);
    	return(document.getElementById(fs[1]).getElementsByTagName(s[1]));
    }
	if(selector.indexOf("#")>0){ //id selector like "tag#id"
   		s=selector.split("#");
    	tag=s[0];
    	selid=s[1];
    }
	if(selid!=""){
    	objlist.push(document.getElementById(selid));
   		return(objlist);
    }
	if(selector.indexOf(".")>0){  //class selector like "tag.class"
   		s=selector.split(".");
   		tag=s[0];
    	selclass=s[1];
    }
	var v=document.getElementsByTagName(tag);  // tag selector like "tag"
	if(selclass=="")
    return(v);

	for(i=0;i<v.length;i++){
    	if(v[i].className==selclass){
        	objlist.push(v[i]);
        }
    }
	return(objlist);
}