/* AJAX Functionality */

function MW_AJAX_update_objects(data, targets) {
	var objID;
	var dom_data = $("<div>").html(data);

	if (typeof(targets) == "string") targets = new Array(targets); 
	
	if ($(dom_data).find("*#messagebox").length > 0) { // check to see if there's a new status message
		if ($("#messagebox").length == 0) { // no messagebox already exists on the page
			$("#content").prepend("<div id=\"messagebox\"></div>");
		}
		targets[targets.length] = "messagebox" // just add messagebox as another object that needs updating
	}

	for ( var i = 0; i < targets.length; i++ ) {
		objID = targets[i];
		if ($("#" + objID).length > 0) {
			var oldobj = $("#" + objID);
			$(oldobj).attr("id","old_" + objID);
			var newobj = $(dom_data).find("*#" + objID);
			$(oldobj).before(newobj);
			$(oldobj).remove();
		}
	}
	MW_reestablish_UI();
}

function MW_reestablish_UI() {
	MW_establish_link_types();
}

function MW_establish_link_types() {
	// rel="view_external" is for off-site links
	$("a[@rel=view_external]").click( function() {
		window.open(this.href,'_blank');
		return false;
	});

	// rel="file" is for links directly to other types of files (PDF, Word, text ...)
	$("a[@rel=file]").click( function() {
		window.open(this.href,'_blank');
		return false;
	});

	// rel="view_image" is for direct links to an image
	$("a[@rel=view_image]").click( function() {
		TB_open(this);
		return false;
	});
	
	$("a[@rel*=update_object]").click( function() {
		var targets = "";
		if (($(this).attr("rel").indexOf("[") > -1) && ($(this).attr("rel").indexOf("]") > -1)) {
			var objIDlist = $(this).attr("rel").substring($(this).attr("rel").indexOf("[")+1,$(this).attr("rel").indexOf("]"));
			targets = objIDlist.split(",");
		} else { // find closest parent with an ID
			for (var i = 0; i < $(this).parents().length; i++) {
				if ($($(this).parents().get(i)).attr("id")) {
					targets = $($(this).parents().get(i)).attr("id");
					break;
				}
			}
		}
		if (targets == "") { targets = "content"; } // if all else fails, update the entire #content area
		$.get(this.href, {hijax: true}, function(data) { MW_AJAX_update_objects(data, targets); } )
		$(this).before("<img src=\"/_Images/icons/iconLoading.gif\" alt=\"Loading...\" class=\"treeupdate\"/>");
		$(this).remove();
		return false;
	});
	
}

function MW_establish_datepicker() {
	var futurelimit = new Date();
	futurelimit.setFullYear(futurelimit.getFullYear()+2); // allow up to 2 years into the future
	var formattedlimit = futurelimit.getDate() + "/" + (futurelimit.getMonth() + 1) + "/" + futurelimit.getFullYear();
	$("input.deadline, input.startdate, input.enddate").datePicker({endDate:formattedlimit});
}

function MW_enhance_job_form() {
	$("input#Billing1").change( function() {
		if ($(this).is(":checked")) {
			$(".billingInfo").hide();
		} else {
			$(".billingInfo").show();
		}
	}).click( function() {
		if ($(this).is(":checked")) {
			$(".billingInfo").hide();
		} else {
			$(".billingInfo").show();
		}
	});
}

/* Get flyouts working in IE */
sfHover = function() {
	var sfEls = document.getElementById("mainnav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
//if (window.attachEvent) window.attachEvent("onload", sfHover);
/* End flyout code */

$(document).ready( function() {
	MW_establish_link_types();
	MW_establish_datepicker();
	MW_enhance_job_form();
	$("#memberarea form input[type=text], #memberarea form input[type=password]").fieldtip();
});
