(function($){
 $.fn.create_annual_fund = function(options) {
	var defaults = {
		xml_path:"/xml/af.asp",
		css_path:"/af/af.css"
	};
	var options = $.extend(defaults, options);
    return this.each(function() {
		var groupid = $(this).html();
		var obj = $(this);
		if(groupid.length > 0){
			var data;
			obj.html(" ");
			$("<link rel='stylesheet' type='text/css' href='"+options.css_path+"'/>").appendTo("head");
			//call xml
			$.ajax({
				type: "GET",
				url: options.xml_path+"?groupid="+groupid,
				dataType: "xml",
				success: function(xml) {
					$(xml).find('af').each(function(){
						data = {
							current:$(this).find("current").text(),
							goal:$(this).find("goal").text(),
							start:$(this).find("start").text(),
							end:$(this).find("end").text(),
							asof:$(this).find("asof").text(),
							part_current:$(this).find("part_current").text(),
							part_lyear:$(this).find("part_lyear").text(),
							part_goal:$(this).find("part_goal").text()
						};
						if(options.html != undefined){
							$.ajax({
								type: "GET",
								url: options.html,
								dataType: "http",
								success: function(html) {
									$(html).appendTo(obj);
									//set up data
									setData(data);
									setBar(data);
								},
								error: function(request,tStatus,eThrown){
									obj.html("Error Reading HTML.");
								}
							});
						}else{
							//default
							$("<div id='af_container'><div id='bar_container'><div id='af_bar' class='lay'>"
							+"<div id='top'><!-- --></div><div id='mid'><!-- --></div>"
							+"<div id='btm'><!-- --></div></div></div><div id='data_container'>"
							+"<div id='current'><div class='af-header'>Total as of<span id='asof'>"
							+"<span class='data'></span></span>:</div><div class='data'></div>"
							+"</div><div id='goal'><div class='af-header'>Goal:</div>"
							+"<div class='data'></div></div><div id='start'>"
							+"<div class='af-header'>Start Date</div><div class='data'></div>"
							+"</div><div id='end'><div class='af-header'>End Date</div>"
							+"<div class='data'></div></div>"
							+"<div id='part_current'><div class='af-header'>Parent Participation:</div>"
							+"<div class='data'></div></div><div id='part_lyear'>"
							+"<div class='af-header'>Last Year Participation</div>"
							+"<div class='data'></div></div><div id='part_goal'>"
							+"<div class='af-header'>Alumni Participation:</div><div class='data'>"
							+"</div></div><div class='clear'><!-- --></div></div></div>").appendTo(obj);
							//set up data
							setData(data);
								
								//this timer and $(window).load mess is here to ensure the elements have fully loaded before we try to grab heights/widths
								var checkTimer = false;
								$("#af_bar", obj).load(function(){ if(checkTimer){ clearTimeout(checkTimer); checkTimer = false; } setBar(data); });
								checkTimer = setTimeout(function(){ if($("#af_bar", obj).height()>0 || $("#af_bar", obj).width()>0){ setBar(data); } },1000);

						}
						//get bar working
					});//end xml each
				},
				error: function(request,tStatus,eThrown){
					obj.html("Annual fund currently not avalible, please check back later.");
				}
			});
		}else{
			obj.html("Annual fund currently not avalible, please check back later.");
		}
    });
 };

function checkNum(data) {      // checks if all characters 
	var valid = "0123456789.";     // are valid numbers or a "."
	var ok = 1; var checktemp;
	for (var i=0; i<data.length; i++) {
		checktemp = "" + data.substring(i, i+1);
		if (valid.indexOf(checktemp) == "-1") return 0;}
		return 1;
}
function dollarAmount(Num) { // idea by David Turley
	//Num = "" + eval("document." + form + "." + field + ".value");
	dec = Num.indexOf(".");
	endVAR = ((dec > -1) ? "" + Num.substring(dec,Num.length) : ".00");
	Num = "" + parseInt(Num);
	var temp1 = "";
	var temp2 = "";
	if (checkNum(Num) == 0) {
		alert("This does not appear to be a valid number.  Please try again.");
	}else{ 
		if (end.length == 2) endVAR += "0";
		if (end.length == 1) endVAR += "00";
		if (endVAR == "") endVAR += ".00";
		var count = 0;
		for (var k = Num.length-1; k >= 0; k--) {
			var oneChar = Num.charAt(k);
			if (count == 3) {
				temp1 += ",";
				temp1 += oneChar;
				count = 1;
				continue;
			}else{
				temp1 += oneChar;
				count ++;
			}
		}
		for (var k = temp1.length-1; k >= 0; k--) {
			var oneChar = temp1.charAt(k);
			temp2 += oneChar;
		}
		temp2 = "$" + temp2;// + endVAR;
		return temp2;
		//eval("document." + form + "." + field + ".value = '" + temp2 + "';");
	}
}
 
 function setData(myObj){
 	if(myObj.current.length > 0){$("#current .data").html(dollarAmount(myObj.current));}
	if(myObj.goal.length > 0){$("#goal .data").html(dollarAmount(myObj.goal));}
	if(myObj.start.length > 0){$("#start .data").html(myObj.start);}
	if(myObj.end.length > 0){$("#end .data").html(myObj.end);}
	if(myObj.asof.length > 0){$("#asof .data").html(myObj.asof);}
	if(myObj.part_current.length > 0){$("#part_current .data").html(myObj.part_current+"%");}
	if(myObj.part_lyear.length > 0){$("#part_lyear .data").html(myObj.part_lyear+"%");}
	if(myObj.part_goal.length > 0){$("#part_goal .data").html(myObj.part_goal+"%");}
 }
 function setBar(obj){
 	if($.browser.msie){
		$("#af_container").addClass("lay");
	}
	var barHeight = $("#af_bar").height();
	//var contHeight = $("#bar_container").height();
	var contHeight = $("#bar_container").height();
	var topHeight = $("#top").height();
	var btmHeight = $("#btm").height();
	
	$("#af_bar").css("top",(contHeight - barHeight)+"px");
	if(parseInt(obj.current) >= parseInt(obj.goal)){
		//100% WOO
		//$("#top").css("margin-top",(-(topHeight/2))+"px");
		$("#mid").height(barHeight - topHeight - btmHeight);
	}else{
		var midHeight = barHeight * (obj.current/obj.goal);
		//alert(midHeight);
		$("#top").css("margin-top",(barHeight - midHeight - (topHeight/2))+"px");
		$("#mid").height(midHeight - btmHeight);
		$("#af_bar").css("display","block");
	}
 }
})(jQuery);
