
var requestHandler = function() {
	this.items = [];
}


requestHandler.prototype.add = function(key, oXMLHttpRequest, oWaitObj) {
	this.items[key] = { xmlHttpRequest : oXMLHttpRequest, waitObj : oWaitObj };
}


requestHandler.prototype.remove = function(key) {
	var item = this.items[key];
	if (item != null) {
		if (item.xmlHttpRequest != null) {
			item.xmlHttpRequest.abort();
		}
		if (item.waitObj != null) {
			item.waitObj.cancel();
		}
	}
}


var myRequests = new requestHandler();



function trimInput(obj) {
	if (ua["dom"]) {
		obj.value = obj.value.trim();
	}
	return false;
}

function trimEmailInput(obj) {
	if (ua["dom"]) {
		var s = obj.value.trim();
		obj.value = (isEmail(s) ? s : "");
	}
}

function validateSTF(objForm) {
	var res = true;
	var msg = "";
	if (ua["dom"]) {
		var objFile = objForm.stfFile;
		var objFileNum = objForm.stfFileNum;
		/*var objFromName = objForm.stfFromName;
		var objFromEmail = objForm.stfFromEmail;
		var objToName = objForm.stfToName;*/
		var objToEmail = objForm.stfToEmail;
		var objSubject = objForm.stfSubject;
		var objMessage = objForm.stfMessage;
		
		/*trimInput(objFromName);
		trimInput(objFromEmail);
		trimInput(objToName);*/
		trimInput(objToEmail);
		trimInput(objSubject);
		trimInput(objMessage);

		msg = "Please enter:\n";

		/*if (objFromName.value == "") {
			res = false;
			msg += "- Your name" +"\n";
		}

		if (!isEmail(objFromEmail.value)) {
			objFromEmail.value = "";
			res = false;
			msg += "- Your email" +"\n";
		}

		if (objToName.value == "") {
			res = false;
			msg += "- Recipients name" +"\n";
		}*/

		if (!isEmail(objToEmail.value)) {
			objToEmail.value = "";
			res = false;
			msg += "- Recipients email" +"\n";
		}
		
		if (objSubject.value == "") {
			res = false;
			msg += "- Subject" +"\n";
		}

		if (!res) {
			alert(msg);
		}
		else {
					
			var reqKey = "stf";
			myRequests.remove(reqKey);
			
			var oResponse = $("#stfResponse");
			var oFormDiv = $("#stfForm");
			
			var oXML = new XMLObject();
			var oXMLHttp = new XMLHttpRequestObject();
			oXMLHttp.async = true;
			oXMLHttp.src = "/custom/site/stf/xml/stf.asp?language_id=4";

			var params = "";
			params += "file="+ encodeURIComponent(objFile.value);
			params += "&filenum="+ encodeURIComponent(objFileNum.value);
			//params += "&fname="+ encodeURIComponent(objFromName.value);
			//params += "&femail="+ encodeURIComponent(objFromEmail.value);
			//params += "&tname="+ encodeURIComponent(objToName.value);
			params += "&temail="+ encodeURIComponent(objToEmail.value);
			params += "&subject="+ encodeURIComponent(objSubject.value);
			params += "&m="+ encodeURIComponent(objMessage.value);

			oXMLHttp.args = params;


			var waitObj = new waitForIt();

			waitObj.waitFor = function() {
				return oXMLHttp.completed();
			}

			waitObj.whenDone = function() {
				if (oXMLHttp.xml != null) {
					if (oXML.loadXML(oXMLHttp.xml)) {
						var bStatus = (oXML.getText(oXML.selectSingleNode("sendtofriendxml/@status")) == "true");
						if (bStatus) {
							oResponse.html("<p>Pdf has now been sent to</p><p>"+ objToEmail.value +"</p><br /><p><a href=\"#\" onclick=\"closeModal();return false;\" title=\"Close window\">Close window</a></p>");
							oResponse.show();
							oFormDiv.hide();
						}
					}
				}
				//toggleLoading(false, reqKey);			
			}
			
			//toggleLoading(true, reqKey);

			oXMLHttp.load();
			waitObj.run();
			myRequests.add(reqKey, oXMLHttp, waitObj);
		}
	}

	return false;
}


function initModal() {
	$("#stf_dialog").dialog({
		autoOpen: false,
		bgiframe: true,
		modal: true,
		width: 320,
		minHeight: 270
	});

	$("a.open_stf").click(function() {
		$("#stf_dialog").dialog("open");
		return false;
    });
}

function closeModal() {
	$("#stf_dialog").dialog("close");
	$("#stf").get(0).reset();
	$("#stfResponse").hide();
	$("#stfForm").show();
}

$(document).ready(function() {initModal();});

