var team = {
    members : null,
    // kintera_prefix : "http://gaycenter.kintera.org/faf/",
    kintera_prefix : "http://64.209.141.60/faf/",
    kintera_donor_script : "donorReg/donorPledge.asp",
    kintera_event_attr : "ievent=",
    kintera_user_attr : "supid=",
    kintera_data : null,
    row : 0,
    goal : 0,
    raised : 0,
};

team.MakeDonationUrl = function(member) {
    return team.kintera_prefix.concat(team.kintera_donor_script, "?",
				      team.kintera_event_attr,
				      member.kintera_event,
				      "&", team.kintera_user_attr,
				      member.kintera_id);
}

team.MakeThermoSrc = function(member) {
    return team.kintera_prefix.concat(member.graphic.getAttribute("src")
				      .substring(3));
}

team.member = function(first, last, event, id) {
    this.first = first;
    this.last = last;
    this.kintera_event = event;
    this.kintera_id = id;
    this.goal = 0;
    this.raised = 0;
    this.graphic = null;
    this.kintera_data = null;
}

team.member.SetData = function(member) {
    var users = team.kintera_data.getElementsByTagName("user");
    var tag = member.first + member.last;
    for(var i = 0; i < users.length; ++i) {
	if (tag == users[i].getAttribute("tag")) {
	    member.kintera_data = users[i];
	    break;
	}
    }
    team.member.AssignImage(member);
    team.member.AssignRaisedAndGoal(member);
}

team.member.AssignImage = function(member) {
    var images = member.kintera_data.getElementsByTagName("img");
    for(var i = 0; i < images.length; ++i) {
	if (images[i].hasAttribute("src") &&
	    (images[i].getAttribute("src").indexOf("../images/barcharts/Therm") == 0)) {
	    member.graphic = images[i];
	    break;
	}
    }
}

team.member.AssignRaisedAndGoal = function(member) {
    var rows = member.kintera_data.getElementsByTagName("tr");
    for (var i = 0; i < rows.length; ++i) {
	var row = rows[i];
	var data = rows[i].getElementsByTagName("td");
	var text = data[0].textContent;
	// My Fundraising Goal:<br><b>$5,000.00</b>
	// Money Raised to Date:<br><b>$1,500.00</b>
	if (text.indexOf("My Fundraising Goal") != -1) {
	    var goal = text.substring(21);
	    var temp = goal.split(",");
	    goal = "";
	    for (var j = 0; j < temp.length; ++j) {
		goal = goal.concat(temp[j]);
	    }
	    temp = goal.split(".");
	    goal = temp[0];
	    member.goal = new Number(goal).valueOf();
	} else if (text.indexOf("Money Raised to Date") != -1) {
	    var raised = text.substring(22);
	    temp = raised.split(",");
	    raised = "";
	    for (var j = 0; j < temp.length; ++j) {
		raised = raised.concat(temp[j]);
	    }
	    temp = raised.split(".");
	    raised = temp[0];
	    member.raised = new Number(raised).valueOf();
	}
    }
    team.AddMemberToTable(member);
}

team.GetData = function() {
    var request = new XMLHttpRequest();
    request.open("GET", "data.xml", true);
    request.onreadystatechange = function() {
	if (request.readyState == 4) {
	    if (request.status == 200) {
		team.kintera_data = request.responseXML;
		team.SetMemberData();
	    } else {
		window.alert("Error occurred ");
	    }
	}
    }
    request.send(null);
}

team.AddMemberToTable = function(member) {
    var table = document.getElementById("team");
    var row = document.getElementById("row" + team.row);
    var i = 0;
    if (row.getElementsByTagName("td").length > 30) {
	table.appendChild(row = document.createElement("tr"));
	++team.row;
	row.id = "row" + team.row;
    }
    var data = document.createElement("td");
    var intab = document.createElement("table");
    var r = document.createElement("tr");
    var d = document.createElement("td");
    d.style.textAlign = "center";
    d.style.fontWeight = "bolder";
    d.innerHTML = member.first + " " + member.last;
    r.appendChild(d);
    intab.appendChild(r);
    r = document.createElement("tr");
    d = document.createElement("td");
    var c = document.createElement("center");
    var img = document.createElement("img");
    img.src = team.MakeThermoSrc(member);
    c.appendChild(img);
    d.appendChild(c);
    r.appendChild(d);
    intab.appendChild(r);
    r = document.createElement("tr");
    d = document.createElement("td");
    d.style.textAlign = "center";
    d.style.fontWeight = "bold";
    d.innerHTML = "Raised $" + member.raised;
    r.appendChild(d);
    intab.appendChild(r);
    r = document.createElement("tr");
    d = document.createElement("td");
    d.style.textAlign = "center";
    d.style.fontWeight = "bold";
    d.innerHTML = "Goal $" + member.goal;
    r.appendChild(d);
    intab.appendChild(r);
    r = document.createElement("tr");
    d = document.createElement("td");
    c = document.createElement("form");
    img = document.createElement("input");
    img.type = "button";
    img.value = "Donate to " + member.first;
    img.onclick = function() {
	location.assign(team.MakeDonationUrl(member));
    };
    c.appendChild(img);
    d.appendChild(c);
    r.appendChild(d);
    intab.appendChild(r);
    data.appendChild(intab);
    row.appendChild(data);
}

team.AddMember = function(member) {
    team.members.push(member);
}

team.init = function() {
    team.members = new Array();
    team.AddMember(new team.member("Adam", "Abrahams",
				   "343564", "290879512"));
    team.AddMember(new team.member("Alan", "Barnett",
				   "343564", "131222924"));
    team.AddMember(new team.member("Rich", "Biletta",
				   "343564", "165795985"));
    team.AddMember(new team.member("Michael", "Decker",
				   "343564", "262847860"));
    team.AddMember(new team.member("Victoria", "Ewing",
				   "343564", "233639165"));
    team.AddMember(new team.member("Christine", "Huang",
				   "343564", "293573049"));
    team.AddMember(new team.member("Eric", "Hughes",
				   "343564", "286037380"));
    team.AddMember(new team.member("Dim", "Karagiannis",
				   "343564", "191060162"));
    team.AddMember(new team.member("Kip", "Katich",
				   "343564", "205849799"));
    team.AddMember(new team.member("Champ", "Knecht",
				   "343564", "232998191"));
    team.AddMember(new team.member("Steven", "Lazen",
				   "343564", "285968723"));
    team.AddMember(new team.member("A.J.", "Plotkin",
				   "343564", "290880051"));
    team.AddMember(new team.member("Scott", "Safier",
				   "343564", "285296065"));
    team.AddMember(new team.member("Meredith", "Whittaker",
				   "343564", "220753168"));
    team.GetData();
}

team.SetMemberData = function() {
    for(var i = 0; i < team.members.length; ++i) {
	team.member.SetData(team.members[i]);
	team.goal += team.members[i].goal;
	team.raised += team.members[i].raised;
    }
    team.SetTeamData();
}

team.SetTeamData = function() {
    var span = document.getElementById("goal");
    span.innerHTML = team.goal;
    span = document.getElementById("raised");
    span.innerHTML = team.raised;
}

