// START ELAPSED TIME
var startDate = new Date();
function processSubmit(form) {
	if(form.ElapsedTime) {
		form.ElapsedTime.value = Number(form.ElapsedTime.value) + new Date().getTime() - startDate.getTime();
	}
	if(form.Referrer && form.Referrer.value.length < 1) {
		form.Referrer.value = document.referrer;
	}
	return true;
}
// END ELAPSED TIME

// START INSTRUCTIONS
function toggleInstructions(type,args,obj) {
	var currentUrl = String(window.location).toLowerCase();
	var actionUrl = document.getElementById("FSForm").action.substring(0, document.getElementById("FSForm").action.indexOf("/",8) + 1);	
	
	// if the form is being hosted externally, use the non-ajax fallback
	if(currentUrl.indexOf(actionUrl) == -1) {
		instructionsFallback(args);
		return;
	}
	
	var element = document.getElementById("instructions" + args[3] + "Button");
	var url = "/form_app/FormSite?FormId=InstructionsLookup&UserNbr=" + args[0] + "&FormNbr=" + args[1] + "&FormKey=" + args[2] + "&ItemNbr=" + args[3];;
	var request = null;
	
	if(typeof(instructPanel) != "undefined") {
		instructPanel.destroy();
	}	
	instructPanel = new YAHOO.widget.Panel("instructPanel",{context:[element,"tl","tl"],width:"auto",visible:true,draggable:false,constraintoviewport:true});
	instructPanel.setBody('<div class=\"instructions\"><img src="/images/icons/loading/ajax-loader-dots.gif"/></div>');
	
	request = YAHOO.util.Connect.asyncRequest("GET", url, {success:handleSuccess,failure:handleFailure,timeout:6000});
	instructPanel.render(document.body);
	instructPanel.show();
}

function instructionsFallback(args) {
	var fsForm = document.getElementById("FSForm");
	var actionStr = fsForm.action +
		"?FormId=ShowInstructions&FormKey=" + args[2] +
		"&UserNbr=" + args[0] +
		"&FormNbr=" + args[1] +
		"&ItemNbr=" + args[3];
	window.open (actionStr, "_blank", "toolbar=no,location=no,directories=no,status=no,resizable=no,width=475,height=200,top=50,left=250");
}

handleSuccess = function(obj) {
	if(typeof(obj.responseText) != "undefined") {
		instructPanel.setBody("<div class=\"instructions\">" + obj.responseText + "</div>");
	}	
	instructPanel.cfg.refireEvent("iframe");
	instructPanel.sizeUnderlay();
}

handleFailure = function(obj) {
	instructPanel.setBody("<div class=\"instructions\">Error: unable to locate instructions, please try again</div>");
	instructPanel.cfg.refireEvent("iframe");
	instructPanel.sizeUnderlay();
}
// END INSTRUCTIONS


//START CALENDAR
function toggleCalendar(type,args,obj) {
	var element = document.getElementById("calendar" + args + "Container");
	if(element.style.display == "block") {
		element.style.display = "none";
	}
	else {
		var field = document.getElementById("RESULT_TextField-" + args);
		element.style.left = findXPos(field) + "px";
		element.style.display = "block";
	}
}

function calendarSelect(type,args,obj) { 
	var element = document.getElementById("RESULT_TextField-" + obj.id.substring(8));
	var sSelection = obj.getSelectedDates()[0];
	var sDateFields = new Array(3);
	var sDelim = obj.cfg.getProperty("DATE_FIELD_DELIMITER");
	
	sDateFields[obj.cfg.getProperty("MDY_DAY_POSITION")-1] = sSelection.getDate();
	sDateFields[nMonthPos = obj.cfg.getProperty("MDY_MONTH_POSITION")-1] = sSelection.getMonth()+1;
	sDateFields[nYearPos = obj.cfg.getProperty("MDY_YEAR_POSITION")-1] = sSelection.getFullYear();

	element.value = sDateFields[0] + sDelim + sDateFields[1] + sDelim + sDateFields[2];

	document.getElementById(obj.id + "Container").style.display = "none";
}
//END CALENDAR


// START UPLOAD BUTTON
function uploadClick(obj) {
	var uploadItem = document.getElementById("RESULT_FileUpload-" + obj.name.substr(7));
	if(uploadItem.value.length > 1) {
		return true;
	}
	return false;
}
// END UPLOAD BUTTON


//START UTILS
function findXPos(obj) {
	var curleft = 0;
	if(obj.offsetParent) {
		while(true) {
		curleft += obj.offsetLeft;
			if(!obj.offsetParent)
				break;
			obj = obj.offsetParent;
		}
	} else if(obj.x) {
		curleft += obj.x;
	}
	return curleft;
}
//END UTILS

