window.onload = prep;
var timer;
var duration;
var int_time;
var int_wattage;
var upper_int_wattage;
var upper_int_rest_wattage
var int_rest_time;
var int_rest_wattage;
var tss;
var rpe;
var difficulty;
var int_sets;
var int_repeats;
var workout_goal;
var system_trained;
var workout_notes;
var on_off;
var workout_name;
var workout_id_no;
function prep()
{
	if (document.forms['cyclist_form']){
		var threshold = document.forms[0]['threshold'];
	
		threshold.onkeyup = function(){
			timer = window.setTimeout("setValues("+this.value+")", 600);
		}
		
		threshold.onkeydown = function(){
			window.clearTimeout(timer);
		}
	}
	
	if (document.forms['graph_form']){
		document.forms['graph_form'].onsubmit = function(){
			return showGraph();
		}	
	}
	
	if (document.submit_ratings){
		var ratings_form = document.forms['submit_ratings'];
		
		for (var x=0; x <= 4; x++){
			ratings_form.sleep[x].onclick = function(){
				return foo(this);
			}
			ratings_form.fuel[x].onclick = function(){
				return foo(this);
			}
			ratings_form.legs[x].onclick = function(){
				return foo(this);
			}
			ratings_form.head[x].onclick = function(){
				return foo(this);
			}
			ratings_form.rpe_exp[x].onclick = function(){
				return foo(this);
			}
		}
		
		if (ratings_form.training_grade){
			for (var x=0; x <= 4; x++){
				ratings_form.training_grade[x].onclick = function(){
					return foo(this);
				}
			}
		}
	}
	
	if (document.getElementById('wk_info')){
		var wk_desc = document.getElementById('workout_description');

		var wk_list = document.getElementById('wk_info');
		var items = wk_list.getElementsByTagName('li');
		var item_no = items.length;
		for (var x=0; x<item_no; x++){
			if (items[x].className == 'desc'){
				items[x].onclick = function() {expand(wk_desc);}
			}
		}
	}
	
	var links = document.getElementsByTagName('a');
	var links_num = links.length
	for (var n=0; n < links_num; n++){
		if (links[n].className == 'new_win'){
			links[n].onclick = function() {
				newWindow(this.href);
				return false;
			}
		}
	}
}

function hideTbody(table)
{
	var tbody = table.getElementsByTagName('tbody');
	if ( tbody.style.display == '' ){
		tbody.style.display = 'none'
	} else {
		tbody.style.display = ''
	}
}

function foo(obj)
{
	if (document.submit_ratings.update_ratings.checked != true){
		document.submit_ratings.update_ratings.checked = true;
	}
}

function flashDiv(obj)
{
	changeBcgd (obj, '#E1E1E1');
	window.setTimeout("changeBcgd('"+obj+"', 'transparent')", 500);
	window.setTimeout("changeBcgd('"+obj+"', '#E1E1E1')", 900);
	window.setTimeout("changeBcgd('"+obj+"', 'transparent')", 1300);
}

function changeBcgd (obj, color)
{
	var div = document.getElementById(obj);
	div.style.backgroundColor = color;
}

/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function hideGraph()
{
	var content = document.getElementById('content');
	var graph = document.getElementById('graph_div');
	content.removeChild(graph);
}

function collapseDiv(checkbox, obj)
{
	var div = document.getElementById(obj);
	
	if (checkbox.checked){
		div.style.display = 'none'
	} else {
		div.style.display = 'block';
	}
}

function showGraph()
{
	if (document.getElementById('graph_div')){
		hideGraph();
	}
	
	var graph_form = document.forms['graph_form'];
	var query = new Array;
	if (graph_form['sleep'].checked){
		query.push('sleep');
	}
	if (graph_form['fuel'].checked){
		query.push('fueling');
	}
	if (graph_form['legs'].checked){
		query.push('legs');
	}
	if (graph_form['head'].checked){
		query.push('head');
	}
	if (graph_form['duration'].checked){
		query.push('duration');
	}
	if (graph_form['difficulty'].checked){
		query.push('difficulty');
	}
	if (graph_form['training_grade'].checked){
		query.push('training_grade');
	}
	if (graph_form['overall_score'].checked){
		query.push('overall');
	}
	if (graph_form['month']){
		var month = graph_form['month'].value;
		var day = graph_form['day'].value;
		var year = graph_form['year'].value;
		
		var end_month = graph_form['end_month'].value;
		var end_day = graph_form['end_day'].value;
		var end_year = graph_form['end_year'].value;
	}
	var id = graph_form['id'].value;
	
	var q_count = query.length;
	var query_string = '';
	for (var x=0; x< q_count; x++){
		if (x == q_count-1){
			query_string += query[x];
		} else {
			query_string += query[x]+',';
		}
	}
	
	//data could also be in 'block mode' which consists of an ID and a block ID
	if (graph_form['mode'].value == 'block'){
		var block_id = graph_form['block_id'].value;
		var graph_string = 'image.php?id='+id+'&block='+block_id+'&param='+query_string;
	} else {
		var graph_string = 'image.php?id='+id+'&start='+year+'-'+month+'-'+day
		+'&end='+end_year+'-'+end_month+'-'+end_day+
		'&param='+query_string;
	}
	
	var graph = new Image();
	graph.onload = function(){
		var pic = document.createElement("img");
		pic.setAttribute("src", graph_string);
		pic.setAttribute("alt", "");
	}
	graph.ondblclick = function(){
		return hideGraph();
	}
	
	graph.src = graph_string;
	
	var graphDiv = document.createElement('div');
	graphDiv.setAttribute('id', 'graph_holder');
	graphDiv.appendChild(graph);
	
	
	var close = new Image();
	close.setAttribute('src', 'images/x_box.gif');
	close.setAttribute('id', 'close');
	close.setAttribute('alt', 'close');
	close.setAttribute('title', 'Close');
	close.onclick = function(){
		return hideGraph();
	};
	close.onload = function(){
		var close_pic = document.createElement('img');
		graphDiv.appendChild(close);
	}
	close.src = 'images/x_box.gif';
	
	var picDiv = document.createElement('div');
	picDiv.setAttribute('id', 'graph_div');
	picDiv.appendChild(graphDiv);
	
	var content = document.getElementById('content');
	content.appendChild(picDiv);
	
	return false;
}

function newWindow(url){
	url = url.toLowerCase();
	if (url.match('new-workout.php') != null){
		url = url+'&win=1';
	}
	window.open(url, 'adjunct', 'width=950, height=700, resizable=yes, scrollbars=yes, location=no, toolbar=no, menubar=no');
	return false;
}

function expand(element){
	if (element.style.display == 'none'){
		element.style.display = 'block'
	} else {
		element.style.display = 'none';
	}	
}

function setCatvalues(value){
	var interval;
	var threshold;
	
	if (value == 'cat1'){
		interval = 20;
		threshold = .85;
	} else if (value == 'cat2'){
		interval = 60;
		threshold = .75;
	} else  if (value == 'cat3'){
		interval = 120;
		threshold = .6;
	} else {
		interval = '';
		threshold = '';
	}
	
	document.forms[0]['interval'].value = interval;
	document.forms[0]['thresh_percentage'].value = threshold;
}

function linearEq(x, a, b){
	var answer = (a*x)+b;
	return answer;
}

function setValues(threshold)
{
	var table = document.getElementById('values');
	//Array = ('ac', Array(x, b), Array(x2, b2))
	var values = new Array(
		new Array('ac', Array(1.20952334, -.004353), '-'), 
		new Array('vo2', Array(1.06, .04545454), Array(1.2090909, -.8636363)),
		new Array('threshold', Array(.9090909, .36363636), Array(1.06, -0.9545454)), 
		new Array('tempo', Array(.75636363, 1.18181818), Array(.9090909, -0.6363636)), 
		new Array('endurance', Array(0.55636363, 1.18181818), Array(.75636363, .18181818)),
		new Array('recovery', Array(.33, 0), Array(.55, 0)),
		new Array('sst', Array(.88, 0), Array(.95, 0))
	);
	var cell_count = values.length;
	var zones = new Array('ancap', 'vo2', 'thresh', 'tempo', 'endurance', 'recovery', 'sst');
	var zone_count = zones.length;
	
	var num = Math.round(linearEq(threshold, values[0][1][0], values[0][1][1] ));
	document.forms['cyclist_form'].ancap.value = num;
	
	for (var x=1; x<zone_count; x++){
		var names = document.getElementsByName(zones[x]+'[]');
		
		var lower = Math.round(linearEq(threshold, values[x][1][0], values[x][1][1] ));
		names[0].value = lower;
		
		var upper = Math.round(linearEq(threshold, values[x][2][0], values[x][2][1] ));
		names[1].value = upper;	
	}
}

function makeRequest(url) {
	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		unLink();
		return false;
	}
	http_request.onreadystatechange = function() { alertContents(http_request); };
	http_request.open('GET', url, true);
	http_request.send(null);

}

function previewCustom(obj, wk_id)
{
	var parent = obj.parentNode.parentNode.parentNode;
	var docurl = document.URL;
	var items = docurl.split("/");
	var domain = items[2];
	var url = 'http://'+items[2]+'/xml_custom_workout.php?id='+wk_id;
	
	http_request = ajax(url);
	http_request.onreadystatechange = function() { alertCustom(http_request, parent); };
	http_request.open('GET', url, true);
	http_request.send(null);
}

function alertCustom(http_request, obj){
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			workout_name = xmldoc.getElementsByTagName('name')[0].firstChild.data;
			duration = xmldoc.getElementsByTagName('duration')[0].firstChild.data;
			on_off = xmldoc.getElementsByTagName('on_off')[0].firstChild.data;
			int_time = xmldoc.getElementsByTagName('int_time')[0].firstChild.data;
			
			int_wattage = xmldoc.getElementsByTagName('int_wattage')[0].firstChild.data;
			upper_int_wattage = xmldoc.getElementsByTagName('upper_int_wattage')[0].firstChild.data;
			
			int_rest_time = xmldoc.getElementsByTagName('int_rest_time')[0].firstChild.data;
			
			int_rest_wattage = xmldoc.getElementsByTagName('int_rest_wattage')[0].firstChild.data;
			upper_int_rest_wattage = xmldoc.getElementsByTagName('upper_int_rest_wattage')[0].firstChild.data;
			
			tss = xmldoc.getElementsByTagName('tss')[0].firstChild.data;
			rpe = xmldoc.getElementsByTagName('rpe')[0].firstChild.data;
			difficulty = xmldoc.getElementsByTagName('difficulty')[0].firstChild.data;
			int_sets = xmldoc.getElementsByTagName('int_sets')[0].firstChild.data;
			int_repeats = xmldoc.getElementsByTagName('int_repeats')[0].firstChild.data;
			workout_goal = xmldoc.getElementsByTagName('workout_goal')[0].firstChild.data;
			system_trained = xmldoc.getElementsByTagName('system_trained')[0].firstChild.data;
			if (xmldoc.getElementsByTagName('workout_notes')[0].firstChild){
				workout_notes = xmldoc.getElementsByTagName('workout_notes')[0].firstChild.data;
			} else {
				workout_notes = '';
			}
			setPreviewValues(obj, 'custom');
		} else {
			alert('There was a problem with the request.');
		}
	}
}

function wkPreview(obj, value, wk_id){
	if (value == '0'){
		previewCustom(obj, wk_id);
	} else {
		var parent = obj.parentNode.parentNode.parentNode;
	
		if (value != ''){
			
			workout_id_no = wk_id;
			var docurl = document.URL;
			var items = docurl.split("/");
			var domain = items[2];
			var url = "http://"+items[2]+"/xml_workouts.php?workout="+value+"";
			
			var http_request = false;
		
			if (window.XMLHttpRequest) { // Mozilla, Safari, ...
				http_request = new XMLHttpRequest();
				if (http_request.overrideMimeType) {
					http_request.overrideMimeType('text/xml');
					// See note below about this line
				}
			} else if (window.ActiveXObject) { // IE
				try {
					http_request = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
					try {
						http_request = new ActiveXObject("Microsoft.XMLHTTP");
					} catch (e) {}
				}
			}
		
			if (!http_request) {
				return false;
			}
			http_request.onreadystatechange = function() { alertPrev(http_request, parent); };
			http_request.open('GET', url, true);
			http_request.send(null);
		} else {
			clearPreview(parent);
		}
	}
}

function alertPrev(http_request, obj){
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			workout_name = xmldoc.getElementsByTagName('name')[0].firstChild.data;
			duration = xmldoc.getElementsByTagName('duration')[0].firstChild.data;
			on_off = xmldoc.getElementsByTagName('on_off')[0].firstChild.data;
			int_time = xmldoc.getElementsByTagName('int_time')[0].firstChild.data;
			
			int_wattage = xmldoc.getElementsByTagName('int_wattage')[0].firstChild.data;
			upper_int_wattage = xmldoc.getElementsByTagName('upper_int_wattage')[0].firstChild.data;
			
			int_rest_time = xmldoc.getElementsByTagName('int_rest_time')[0].firstChild.data;
			
			int_rest_wattage = xmldoc.getElementsByTagName('int_rest_wattage')[0].firstChild.data;
			upper_int_rest_wattage = xmldoc.getElementsByTagName('upper_int_rest_wattage')[0].firstChild.data;
			
			tss = xmldoc.getElementsByTagName('tss')[0].firstChild.data;
			rpe = xmldoc.getElementsByTagName('rpe')[0].firstChild.data;
			difficulty = xmldoc.getElementsByTagName('difficulty')[0].firstChild.data;
			int_sets = xmldoc.getElementsByTagName('int_sets')[0].firstChild.data;
			int_repeats = xmldoc.getElementsByTagName('int_repeats')[0].firstChild.data;
			workout_goal = xmldoc.getElementsByTagName('workout_goal')[0].firstChild.data;
			system_trained = xmldoc.getElementsByTagName('system_trained')[0].firstChild.data;
			
			//2nd snapshot data
			int2_sets = xmldoc.getElementsByTagName('int2_sets')[0].firstChild.data;
			int2_repeats = xmldoc.getElementsByTagName('int2_repeats')[0].firstChild.data;
			time_between_sets = xmldoc.getElementsByTagName('time_between_sets')[0].firstChild.data;
			int2_time = xmldoc.getElementsByTagName('int2_time')[0].firstChild.data;
			int2_wattage = xmldoc.getElementsByTagName('int2_wattage')[0].firstChild.data;
			upper_int2_wattage = xmldoc.getElementsByTagName('upper_int2_wattage')[0].firstChild.data;
			int2_rest_time = xmldoc.getElementsByTagName('int2_rest_time')[0].firstChild.data;
			int2_rest_wattage = xmldoc.getElementsByTagName('int2_rest_wattage')[0].firstChild.data;
			upper_int2_rest_wattage = xmldoc.getElementsByTagName('upper_int2_rest_wattage')[0].firstChild.data;
			
			if (xmldoc.getElementsByTagName('workout_notes')[0].firstChild){
				workout_notes = xmldoc.getElementsByTagName('workout_notes')[0].firstChild.data;
			} else {
				workout_notes = '';
			}
			setPreviewValues(obj);
		} else {
			alert('There was a problem with the request.');
		}
	}
}


function formatTime(time){
	//duration
	var hours = Math.floor(time / 3600);
	var minutes = Math.floor((time - (hours * 3600)) / 60);
	var sc_hrs = hours * 3600;
	var sc_mins = minutes * 60;

	var seconds = time - sc_hrs - sc_mins;
	
	if (minutes < 10){
		minutes = '0'+minutes+'';
	}
	if (seconds < 10){
		seconds = '0'+seconds+'';
	}
	return hours+':'+minutes+':'+seconds;
}

function setPreviewValues(obj, mode){
	//var com_array = getElementsByClassName(obj, 'p', 'comments');
	//var comment = com_array[0];
	
	var info_array = getElementsByClassName(obj, 'div', 'info_bar');
	var info_bar = info_array[0];
	
	var list = info_bar.getElementsByTagName('li');
	//change indices 2,3,4 & 5
	if (list[2].hasChildNodes()){
		var block_links = list[2].getElementsByTagName('a');
		if (block_links.length == 0){
			var num_data = list[2].firstChild.data;
			var data_array = num_data.split(' ');
			var workout_num = data_array[0];
			list[2].removeChild(list[2].firstChild);
		} else {
			var num_link = list[2].firstChild;
			var num_data = list[2].firstChild.firstChild.data;
			var data_array = num_data.split(' ');
			var workout_num = data_array[0]
		}
	}
	if (on_off == 1){
		var on_text = workout_num+' on';
	} else {
		var on_text = workout_num+' off';
	}
	var text = document.createTextNode(on_text);
	if (block_links.length == 0){
		list[2].appendChild(text);
	} else {
		removeChildren(num_link);
		num_link.appendChild(text);
	}
	
	
	//change indices 2,3,4 & 5
	if (list[3].hasChildNodes()){
		list[3].removeChild(list[3].firstChild);
	}
	var time_text = document.createTextNode(formatTime(duration));
	list[3].appendChild(time_text);

	//change indices 2,3,4 & 5
	if (list[4].hasChildNodes()){
		list[4].removeChild(list[4].firstChild);
	}
	var name_link = document.createElement('a');
	name_link.setAttribute('href', 'change-workout.php?id='+workout_id_no);
	var name_text = document.createTextNode(workout_name);
	name_link.appendChild(name_text);
	list[4].appendChild(name_link);
	
	//change indices 2,3,4 & 5
	if (list[5].hasChildNodes()){
		list[5].removeChild(list[5].firstChild);
	}
	var diff_text = document.createTextNode(difficulty);
	var diff_span = document.createElement('span');
	diff_span.setAttribute('class', 'diff'+difficulty+'');
	diff_span.appendChild(diff_text);
	list[5].appendChild(diff_span);
	
	//main area
	var main_array = getElementsByClassName(obj, 'div', 'small_wk_main');
	var wk_main = main_array[0];
	//wk_main.removeChild(comment);
	removeChildren(wk_main);
	
	var para = document.createElement('p');
	var span = document.createElement('span');
	span.setAttribute('class', 'highlight');
	var heading = document.createTextNode('Purpose');
	span.appendChild(heading);
	para.appendChild(span);
	var br = document.createElement('br');
	para.appendChild(br);
	var goal = document.createTextNode(workout_goal);
	para.appendChild(goal);
	wk_main.appendChild(para);
	
	para = document.createElement('p');
	para.setAttribute('class', 'wk_tss');
	var tss_text = document.createTextNode(tss);
	para.appendChild(tss_text);
	wk_main.appendChild(para);
	
	para = document.createElement('p');
	var br = document.createElement('br');
	para.appendChild(br);
	span = document.createElement('span');
	span.setAttribute('class', 'highlight');
	heading = document.createTextNode('Snapshot');
	span.appendChild(heading);
	para.appendChild(span);
	var br = document.createElement('br');
	para.appendChild(br);
	
	if (int_sets > 0){
		
		var thrsh = document.getElementById('threshold_number').firstChild.data;
		if (int_sets == 1){
			var set_text = int_repeats+' x';
		} else {
			var set_text = int_sets+' sets of '+int_repeats+' x';
		}
		var setsReps = document.createTextNode(set_text);
		para.appendChild(setsReps);
		br = document.createElement('br');
		para.appendChild(br);
		var bold = document.createElement('b');
		
		if (mode == 'custom'){
			var wattage_text = int_wattage;
			var upper_wattage_text = upper_int_wattage;
		} else {
			var wattage_text = Math.round(int_wattage * thrsh);
			var upper_wattage_text = Math.round(upper_int_wattage * thrsh);
		}
		
		if (int_wattage == upper_int_wattage){
			var interval = document.createTextNode(formatTime(int_time)+' at '+wattage_text+' watts');
		} else {
			var interval = document.createTextNode(formatTime(int_time)+' at '+wattage_text+' - '+upper_wattage_text+' watts');
		}
		bold.appendChild(interval)
		para.appendChild(bold);
		br = document.createElement('br');
		para.appendChild(br);
		
		if (mode == 'custom'){
			var rest_wattage_text = int_rest_wattage;
			var upper_rest_wattage_text = upper_int_rest_wattage;
		} else {
			var rest_wattage_text = Math.round(int_rest_wattage * thrsh);
			var upper_rest_wattage_text = Math.round(upper_int_rest_wattage * thrsh);
		}
		
		if (int_rest_time > 0){
			var bold = document.createElement('b');
			if (int_rest_wattage == upper_int_rest_wattage){
				var int_rest_text = formatTime(int_rest_time)+' at '+rest_wattage_text+' watts';
			} else {
				var int_rest_text = formatTime(int_rest_time)+' at '+rest_wattage_text+' - '+upper_rest_wattage_text+' watts';
			}	
			var interval = document.createTextNode(int_rest_text);
			bold.appendChild(interval)
			para.appendChild(bold);
			
		}
		
		var total_time = int_sets * ((int_repeats * int_rest_time) + (int_repeats * int_time));
		br = document.createElement('br');
		para.appendChild(br);
		
		var time_text = document.createTextNode(formatTime(total_time)+' total');
		para.appendChild(time_text);
	} else {
		para.appendChild(document.createTextNode('-'));
	}
	
	///////2nd snapshot
	
	if (int2_sets > 0){
		para.appendChild(document.createElement('br'));
		para.appendChild(document.createElement('br'));
		var thrsh = document.getElementById('threshold_number').firstChild.data;
		if (int2_sets == 1){
			var set_text2 = int2_repeats+' x';
		} else {
			var set_text2 = int2_sets+' sets of '+int2_repeats+' x';
		}
		var setsReps = document.createTextNode("Followed by: "+set_text2);
		para.appendChild(setsReps);
		br = document.createElement('br');
		para.appendChild(br);
		var bold = document.createElement('b');
		
		if (mode == 'custom'){
			var wattage_text = int2_wattage;
			var upper_wattage_text = upper_int2_wattage;
		} else {
			var wattage_text = Math.round(int2_wattage * thrsh);
			var upper_wattage_text = Math.round(upper_int2_wattage * thrsh);
		}
		
		if (int2_wattage == upper_int2_wattage){
			var interval = document.createTextNode(formatTime(int2_time)+' at '+wattage_text+' watts');
		} else {
			var interval = document.createTextNode(formatTime(int2_time)+' at '+wattage_text+' - '+upper_wattage_text+' watts');
		}
		bold.appendChild(interval)
		para.appendChild(bold);
		br = document.createElement('br');
		para.appendChild(br);
		
		if (mode == 'custom'){
			var rest_wattage_text = int2_rest_wattage;
			var upper_rest_wattage_text = upper_int2_rest_wattage;
		} else {
			var rest_wattage_text = Math.round(int2_rest_wattage * thrsh);
			var upper_rest_wattage_text = Math.round(upper_int2_rest_wattage * thrsh);
		}
		
		if (int2_rest_time > 0){
			var bold = document.createElement('b');
			if (int2_rest_wattage == upper_int2_rest_wattage){
				var int2_rest_text = formatTime(int2_rest_time)+' at '+rest_wattage_text+' watts';
			} else {
				var int2_rest_text = formatTime(int2_rest_time)+' at '+rest_wattage_text+' - '+upper_rest_wattage_text+' watts';
			}	
			var interval = document.createTextNode(int2_rest_text);
			bold.appendChild(interval)
			para.appendChild(bold);
			
		}
		
		var total_time = int2_sets * ((int2_repeats * int2_rest_time) + (int2_repeats * int2_time));
		br = document.createElement('br');
		para.appendChild(br);
		
		var time_text = document.createTextNode(formatTime(total_time)+' total');
		para.appendChild(time_text);
	}
	
	
	///////////end 2nd snapshot
	
	
	
	wk_main.appendChild(para);
	//wk_main.appendChild(comment);
	//RPE Estimate
	var side_array = getElementsByClassName(obj, 'div', 'small_wk_side');
	var wk_side = side_array[0];
	
	var side_paras = wk_side.getElementsByTagName('p');
	var rpe_pgh = side_paras[6];

	removeChildren(rpe_pgh);
	rpe_pgh.appendChild(document.createTextNode('RPE Estimate:'));
	rpe_pgh.appendChild(document.createElement('br'));
	
	var rpe_image = document.createElement('img');
	rpe_image.setAttribute('src', 'images/small/'+rpe+'.png');
	rpe_image.setAttribute('alt', rpe);
	rpe_image.setAttribute('class', 'rpe_estimate');
	rpe_pgh.appendChild(rpe_image);
	
	//get the form and set tss value
	var tss_array = getElementsByClassName(obj, 'p', 'wk_tss');
	tss_array[0].firstChild.data = tss;
	getAverages();
}

function removeChildren(obj){
	while (obj.childNodes.length >= 1){
		obj.removeChild(obj.firstChild);
	}
}

function addWorkout(form)
{
	var wk_string;
	if (form.wk_id){
		var wk_id = form.wk_id.value;
		wk_string = '&id='+wk_id+'';
	} else {
		wk_string = '';
	}
	var workout_id = form.workout_code.value;
	var user_id = form.user_id.value;
	if (form.test.checked){
		var test = form.test.value;
	} else {
		var test = 0;
	}
	var block_id = form.block_id.value;
	var date = form.date.value;
	var action = form.action.value;
	var docurl = document.URL;
	var items = docurl.split("/");
	var domain = items[2];
	var url = "http://"+items[2]+"/js_add_workout.php?action="+action+wk_string+"&user_id="+user_id+"&workout="+workout_id+"&block="+block_id+"&date="+date+"&test="+test;
	
	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		unLink();
		return false;
	}
	http_request.onreadystatechange = function() { alertWorkout(http_request, parent); };
	http_request.open('GET', url, true);
	http_request.send(null);
	
	return false;
}

function alertWorkout(http_request, obj){
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			var result = xmldoc.getElementsByTagName('result')[0].firstChild.data;
			if (result == 'success'){
				alert('added');
			}
		} else {
			alert('There was a problem with the request.');
		}
	}
}

function clearPreview(obj){
	var info_array = getElementsByClassName(obj, 'div', 'info_bar');
	var info_bar = info_array[0];
	
	var list = info_bar.getElementsByTagName('li');
	//change indices 2,3,4 & 5
	if (list[2].hasChildNodes()){
		var num_data = list[2].firstChild.data;
		var data_array = num_data.split(' ');
		var workout_num = data_array[0];
		list[2].removeChild(list[2].firstChild);
	}
	var on_text = workout_num+' -';
	var text = document.createTextNode(on_text);
	list[2].appendChild(text);
	
	
	//change indices 2,3,4 & 5
	if (list[3].hasChildNodes()){
		list[3].removeChild(list[3].firstChild);
	}
	var time_text = document.createTextNode('0:00:00');
	list[3].appendChild(time_text);

	//change indices 2,3,4 & 5
	if (list[4].hasChildNodes()){
		list[4].removeChild(list[4].firstChild);
	}
	var name_link = document.createElement('a');
	name_link.setAttribute('href', 'change-workout.php?id='+workout_id_no);
	var name_text = document.createTextNode('Edit');
	name_link.appendChild(name_text);
	list[4].appendChild(name_link);
	
	//change indices 2,3,4 & 5
	if (list[5].hasChildNodes()){
		list[5].removeChild(list[5].firstChild);
	}
	var diff_text = document.createTextNode('0');
	var diff_span = document.createElement('span');
	diff_span.appendChild(diff_text);
	list[5].appendChild(diff_span);
	
	//main area
	var main_array = getElementsByClassName(obj, 'div', 'small_wk_main');
	var wk_main = main_array[0];
	
	removeChildren(wk_main);
	
	var para = document.createElement('p');
	var span = document.createElement('span');
	span.setAttribute('class', 'highlight');
	var heading = document.createTextNode('Purpose');
	span.appendChild(heading);
	para.appendChild(span);
	var br = document.createElement('br');
	para.appendChild(br);
	var system = document.createTextNode('-');
	para.appendChild(system);
	wk_main.appendChild(para);
	
	para = document.createElement('p');
	para.setAttribute('class', 'wk_tss');
	var tss_text = document.createTextNode('0');
	para.appendChild(tss_text);
	wk_main.appendChild(para);
	
	para = document.createElement('p');
	span = document.createElement('span');
	span.setAttribute('class', 'highlight');
	heading = document.createTextNode('Snapshot');
	span.appendChild(heading);
	para.appendChild(span);
	var br = document.createElement('br');
	para.appendChild(br);
	
	wk_main.appendChild(para);
	
	//RPE Estimate
	var side_array = getElementsByClassName(obj, 'div', 'small_wk_side');
	var wk_side = side_array[0];
	
	var side_paras = wk_side.getElementsByTagName('p');
	var rpe_pgh = side_paras[6];

	removeChildren(rpe_pgh);
	rpe_pgh.appendChild(document.createTextNode('RPE Estimate:'));
	rpe_pgh.appendChild(document.createElement('br'));
	
	var rpe_image = document.createTextNode('-');
	rpe_pgh.appendChild(rpe_image);
	
	var tss_array = getElementsByClassName(obj, 'p', 'wk_tss');
	tss_array[0].firstChild.data = 0;
	getAverages();
}

function delWorkout(form)
{	
	var parent = form.parentNode.parentNode;
	var workout_id = form.wk_id.value;
	var complt = form.complete.value;
	
	var docurl = document.URL;
	var items = docurl.split("/");
	var domain = items[2];
	var url = 'http://'+items[2]+'/js_del_workout.php?id='+workout_id;

	http_request = ajax(url);
	http_request.onreadystatechange = function() { alertDelete(http_request, parent); };
	http_request.open('GET', url, true);
	http_request.send(null);
	
}

function alertDelete(http_request, obj)
{
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			var result = xmldoc.getElementsByTagName('result')[0].firstChild.data;
			if (result == 'success'){
				alert('deleted');
				clearPreview(obj);
			}
		} else {
			alert('There was a problem with the request.');
		}
	}
}


function ajax(url)
{
	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	
	if (!http_request) {
		return false;
	} else {
		return http_request;
	}
}

function getAverages()
{
	var rpes = 	getElementsByClassName(document.getElementById("content"), 'img', 'rpe_estimate');
	var num = rpes.length;
	var total = 0;
	var rpe_value;
	var debug_string;
	for (var x=0; x<num; x++){
		rpe_value = rpes[x].getAttribute('alt');
		rpe_value = rpe_value * 1;
		total += rpe_value;
	}
	var average = new Number(total / num);
	var rpe_ave = average.toFixed(2);
	
	var rpe_table = document.getElementById('rpe_stats');
	var rpe_tds = rpe_table.getElementsByTagName('td');
	removeChildren(rpe_tds[0]);
	rpe_tds[0].appendChild(document.createTextNode(rpe_ave));
	dur_array = new Array();
	var dur_total = 0;
	var dur_num = 0;
	var info_array = getElementsByClassName(document.getElementById("content"), 'div', 'info_bar');
	for (var n=0; n < info_array.length; n++){
		var list = info_array[n].getElementsByTagName('li');
		if (list[3].firstChild.data != '0:00:00'){
			dur_total += getDuration(list[3].firstChild.data);
		}
	}
	var misc_table = document.getElementById('misc_stats');
	var misc_tds = misc_table.getElementsByTagName('td');
	removeChildren(misc_tds[2]);
	misc_tds[2].appendChild(document.createTextNode(formatTime(dur_total)));
	
	//get all tss values
	//first grab all the forms
	var sm_wks = getElementsByClassName(document.getElementById("content"), 'p', 'wk_tss');
	var sm_num = sm_wks.length;
	var tss_total = 0;
	for (var n=0; n < sm_num; n++){
		var cur_tss = sm_wks[n].firstChild.data;
		cur_tss = cur_tss * 1;
		tss_total += cur_tss;
	}
	removeChildren(misc_tds[0]);
	misc_tds[0].appendChild(document.createTextNode(tss_total));
}

function getDuration(value)
{
	var dur_array = value.split(':');
	var hrs = dur_array[0]*3600;
	var mins = dur_array[1]*60;
	var secs = dur_array[2];
	
	hrs = hrs*1;
	mins = mins*1;
	secs = secs*1;
	
	var dur = hrs + mins + secs;
	return dur;
}

function unIgnore(obj)
{
	var parent = obj.parentNode.parentNode;
	var ignores = getElementsByClassName(parent, 'input', 'ignore_box');
	ignores[0].checked = false;
	
}

function checkValue(wk_id, obj)
{
	if (wk_id == '0'){
		var parent = obj.parentNode.parentNode;
		var ignores = getElementsByClassName(parent, 'input', 'ignore_box');
		ignores[0].checked = true;
	}
}

function allTypes(box, check_name)
{
	var selectAll = box;
	if (selectAll.checked == true){
		var checkedStatus = true;
	} else {
		var checkedStatus = false;
	}
	var types = new Array;
	var num = document.forms['reports'].elements.length;

	for (var x=0; x < num; x++){
		var elmnt = document.forms['reports'].elements[x]
		if (elmnt.getAttribute('name') == check_name){
			elmnt.checked = checkedStatus;
		}
	}
}