String.prototype.format = function(){
	var str = this;
	for(var i=0;i<arguments.length;i++){
		var re = new RegExp('\\{' + (i) + '\\}','gm');
		str = str.replace(re, arguments[i]);
	}
	return str;
}
$(function(){
	// Generic Layout Niceties
	var gsa = $("#good-shepherd-acknowledgement");
	gsa.hide();
	$("a[href='#good-shepherd-acknowledgement']").click(function() {
		gsa.toggle("normal");
		return false;
	});
	/*
	// Removes the default 3rdgen date picker and replaces with jQuery date picker
	$("img[name^='imgfield']").remove();
	$("small:contains('(dd/mm/yyyy)')").prev().attachDatepicker({dateFormat: 'dd/mm/yy', showOn: 'both', buttonImage: '../images/calendar.gif', buttonImageOnly: true});
	
	// Shows or hides fields based on the yes/no dropdown associated with it
	var showHideFields = function() {
		var fields = {
			// NILS Loan Application
			field_15776: ["tr:has(input[name='field_15777'])"], // Centrelink #
			field_15778: ["tr:has(input[name='field_15779'])"], // Heathcare Card #
			field_15794: ["tr:has(input[name='field_15814'])"], // DoFS Number
			field_15795: ["tr:has(input[name='field_15815'])"], // IDoFS number
			field_15796: ["tr:has(input[name='field_15816'])"], // eSCARF number
			field_15797: ["tr:has(input[name='field_15817'])"], // LACES number
			// ADMIN to progress enquiry
			field_15701: [
				"tr:has(td.formLabelStyle:contains('If Yes')),tr:has(select[name='field_15706']),tr:has(select[name='field_15707'])",
				"tr:has(td.formLabelStyle:contains('If No')),tr:has(input[name='field_15702']),tr:has(textarea[name='field_15703']),tr:has(select[name='field_15704']),tr:has(textarea[name='field_15705'])"
			]
		};
		$.each(fields, function(i, val) {
			if ($("select[name='" + i + "']").val()=="5859") {
				if (val[0]&&val[0]!="") { $(val[0]).show(); }
				if (val[1]&&val[1]!="") { $(val[1]).hide(); }
			} else {
				if (val[0]&&val[0]!="") { $(val[0]).hide(); }
				if (val[1]&&val[1]!="") { $(val[1]).show(); }
			}
			$("select[name='" + i + "']").change( function() {
				if($(this).val()=="5859") {
					if (val[0]&&val[0]!="") { $(val[0]).show(); }
					if (val[1]&&val[1]!="") { $(val[1]).hide(); }
				} else {
					if (val[0]&&val[0]!="") { $(val[0]).hide(); }
					if (val[1]&&val[1]!="") { $(val[1]).show(); }
				}
			});
		});
	}();
	
	// Hide checkboxes the user shouldn't be able to select
	$("input[type='checkbox'][value='6124'],input[type='checkbox'][value='6073'],input[type='checkbox'][value='6081'],input[type='checkbox'][value='6085'],input[type='checkbox'][value='6089'],input[type='checkbox'][value='6095'],input[type='checkbox'][value='6098'],input[type='checkbox'][value='6101']").hide().parent().next().css("font-weight", "bold");
	
	// Build Centre List
	if ($("input[name='field_15647']").length) {
		var centreID = $("input[name='field_15647']").val();
		$("input[name='field_15647']").after('<select name="field_15647"></select>').remove();
		
		$("select[name='field_15647']").after('<img src="../images/icons/generic-loader.gif" alt="Loading&hellip;" id="field_15647_loader" class="loader" />');
		$.get("../ajax/aidme-webservice.cfm?a=GetCentres", {}, function(json){
			var data = eval('(' + json + ')');
			for (i=0; i<data.GetCentresResult.Centre.length; i++) {
				var centre = data.GetCentresResult.Centre[i];
				var elSel = (centreID==centre.CentreId) ? ' selected="selected"' : '';
				var elStr = '<option value="' + centre.CentreId + '"' + elSel + '>' + centre.Name + '</option>';
				$("select[name='field_15647']").append(elStr);
			}
			$("#field_15647_loader").remove();
		});
	}

	// Build Program List
	var buildProgramList = function(cID, programID) {
		$("select[name='field_15650']").after('<img src="../images/icons/generic-loader.gif" alt="Loading&hellip;" id="field_15650_loader" class="loader" />');
		$.post("../ajax/aidme-webservice.cfm?a=GetProgramsByCentreId", {
			centreId: cID
		}, function(json){
			var data = eval('(' + json + ')');
			$("select[name='field_15650'] option").remove();
			for (i=0; i<data.GetProgramsByCentreIdResult.Program.length; i++) {
				var program = data.GetProgramsByCentreIdResult.Program[i];
				var elSel = (programID==program.ProgramId) ? ' selected="selected"' : '';
				var elStr = '<option value="' + program.ProgramId + '"' + elSel + '>' + program.Name + ' (' + program.Code + ')</option>';
				$("select[name='field_15650']").append(elStr);
			}
			$("#field_15650_loader").remove();
		});
	}
	if ($("input[name='field_15650']").length) {
		var progID = $("input[name='field_15650']").val();
		$("input[name='field_15650']").after('<select name="field_15650"></select>').remove();
		buildProgramList(centreID, progID);
	}
	
	// Build Staff List
	var buildStaffList = function(cID, staffID) {
		$("select[name='field_15654']").after('<img src="../images/icons/generic-loader.gif" alt="Loading&hellip;" id="field_15654_loader" class="loader" />');
		$.post("../ajax/aidme-webservice.cfm?a=GetStaffByCentreId", {
			centreId: cID
		}, function(json){
			var data = eval('(' + json + ')');
			$("select[name='field_15654'] option").remove();
			for (i=0; i<data.GetStaffByCentreIdResult.Staff.length; i++) {
				var staff = data.GetStaffByCentreIdResult.Staff[i];
				var elSel = (staffID==staff.StaffId) ? ' selected="selected"' : '';
				var elStr = '<option value="' + staff.StaffId + '"' + elSel + '>' + staff.FullName + '</option>';
				$("select[name='field_15654']").append(elStr);
			}
			$("#field_15654_loader").remove();
		});
	}
	if ($("input[name='field_15654']").length) {
		var staffID = $("input[name='field_15654']").val();
		$("input[name='field_15654']").after('<select name="field_15654"></select>').remove();
		buildStaffList(centreID, staffID);
	}
	$("select[name='field_15647']").change(function(){
		buildProgramList($(this).val());
		buildStaffList($(this).val());
	});
	
	
	
	// Generic Function For Retrieving the formDataID based on a NILS Loan ID
	var retrieveFormDataID = function(el, formID, urlPatternToAppend, formDefID, formDefFieldID) {
		// Check to see if form already exists, don't recreate it
		if ($("#"+formID).length == 0) {
			if(typeof(formDefID)=="object") {
				var fID = formDefID.id;
				var fType = formDefID.type;
			} else {
				var fID = formDefID;
				var fType = "enquiry";
			}
			var parent = $(el.parent().get(0));
			parent.append('<form id="'+formID+'" class="search-loan-form clearfix" style="display: none;"><fieldset><div><label for="nilsLoanID">NILS Loan ID:</label><input type="text" name="nilsLoanID" id="nilsLoanID" /></div></fieldset><div class="form-buttons"><input type="submit" value="Edit" /></div></form>');
			$("#"+formID).submit(function(){
				$("#"+formID+" .formErrorStyle").remove();
				$("#"+formID+" .form-buttons").append('<img src="../images/icons/grey-loader.gif" alt="Loading&hellip;" class="loader" />');
				$("#"+formID+" input[type='submit']").attr("disabled", "disabled");
				$.post("../functions.cfm?a=getFormDataID&v=t", {
					formDefID: fID,
					formDefFieldID: formDefFieldID,
					nilsLoanID: $("#"+formID+" #nilsLoanID").val()
				}, function(json){
					var data = eval('(' + json + ')');
					if (data.form_data_id > 0) {
						document.location.href = el.attr("href") + urlPatternToAppend.format(data.form_data_id);
					} else {
						var nilsLoanID = this.data.split("&")[2].split("=")[1];
						$("#"+formID).append('<p class="formErrorStyle">There is no '+fType+' with NILS Loan ID: '+nilsLoanID+'. Please try again.</p>');
					}
					$("#"+formID+" .form-buttons .loader").remove();
					$("#"+formID+" input[type='submit']").removeAttr("disabled");
				});
				return false;
			});
		}
		$("#"+formID).toggle('normal', function(){
			$("#"+formID+" #nilsLoanID").focus();
		});
	}
	
	// Edit Enquiry Details
	var editEnqDetLink = $("#content ul li a:contains('Edit Enquiry details')");
	if(editEnqDetLink.length > 0) {
		editEnqDetLink.click(function(){
			retrieveFormDataID($(this), "editEnqDetForm", "?formAction=edit&formDataID={0}", 848, 15660);
			return false;
		});
	}
	
	// Update Enquiry Status
	var updEnqStatLink = $("#content ul li a:contains('Update Enquiry Status')");
	if(updEnqStatLink.length > 0) {
		updEnqStatLink.click(function(){
			retrieveFormDataID($(this), "updEnqStatForm", "?parentFormDataID={0}", 848, 15660);
			return false;
		});
	}
	
	// Enter Application details
	var entAppDetLink = $("#content ul li a:contains('Enter Application details')");
	if(entAppDetLink.length > 0) {
		entAppDetLink.click(function(){
			retrieveFormDataID($(this), "entAppDetForm", "?parentFormDataID={0}", 849, 15892);
			return false;
		});
	}
	
	// Edit Application details
	var editAppDetLink = $("#content ul li a:contains('Edit Application details')");
	if(editAppDetLink.length > 0) {
		editAppDetLink.click(function(){
			retrieveFormDataID($(this), "editAppDetForm", "?formAction=edit&formDataID={0}", {id: 850, type: "application"}, 15715);
			return false;
		});
	}*/
});
