var workoutDialog = null;
var defaultWrkOutText = 'Type name of saved workout';
var createMenu = null;

function resetForm() {
	var e = document.getElementById('wSrch');
	e.value = defaultWrkOutText;
	// remove the previous workout form
	$(".workOutFormContainer").remove();
			
}


function prepareDialog() {
	var onSuccess = function(o) {
		alert("Your data was successfully submitted. The response was: " + o.responseText);
	}
	
	var onFailure = function(o) {
		alert("Save workout not implemented yet ..." + o.status);
	}

	var handleCancel = function() {
		this.cancel();
		resetForm();
	}
	var handleSubmit = function() {
		this.submit();
		// saveWorkout();
		resetForm();
	}
	
	workoutDialog = new YAHOO.widget.Dialog("workoutDialog",
			{ 					
							width : "475px",
							height : "300px",
							fixedcenter : true,
							visible : false,
							modal : true,
							zIndex : 8, // for FF
							// underlay : 'shadow',
							constraintoviewport : true,
							buttons : [ { text:"Save", handler:handleSubmit },
								      { text:"Cancel", handler:handleCancel, isDefault:true  } ]
			}
	);
	
	workoutDialog.callback.success = onSuccess;
	workoutDialog.callback.failure = onFailure;
	
	workoutDialog.render(); 
}

function buildForm(p_oEvent) {
	var se = document.getElementById('wSrch');
	
	if (se) alert('building form now ...'+se.value);
}

var createNewWorkout = function(e) {
	alert('building create new workout form');
	createMenu.hide();
}

function generalWorkoutHandler() {
	alert('Adding general workout form ... not naming workout ...');
	createMenu.hide();
}

function buildSearchButton() {
		createMenu = new YAHOO.widget.Menu("create", { width: "150px", height: "10px" });
		var srchButton = new YAHOO.widget.Button("srchBut", 
					{ type: "split", 
					  label: 'Go',
					  menu: createMenu,
					  onclick: { fn: buildForm } 
		});
          
		createMenu.render(srchButton);
		createMenu.align();
 }
 
 function optionsSelect(option) {
	alert('options select '+option.value);
 }
 
// var wrkOutForm = null;
var dialogBody = null;
 
function buildWrkOutDialogHTML() {
			
			// var wrkOutForm = document.createElement('div');
			var wrkOutForm = document.createElement('form');
			wrkOutForm.setAttribute('id','workoutDialog');
			wrkOutForm.setAttribute('method','post');
			wrkOutForm.setAttribute('action','fred.html');
			wrkOutForm.className = 'yui-pe-content';
			var header = document.createElement('div');
			header.className = 'hd';
			wrkOutForm.appendChild(header);
			dialogBody = document.createElement('div');
			wrkOutForm.appendChild(dialogBody);
			dialogBody.className = 'bd';
			
			var table = document.createElement('table');
			dialogBody.appendChild(table);
			//var row0 = table.insertRow(-1);
			//var cell0 = row0.insertCell(0);
			//cell0.setAttribute('span','2');
			//var orText = document.createElement('text');
			//orText.innerHTML = 'or Search an existing workout';
			// cell0.appendChild(orText);
			
			var row1 = table.insertRow(-1);
			var cell0 = row1.insertCell(0);
			
			var modeSelect = document.createElement('select');
			modeSelect.onchange = function() {
				var chosenOption = this.options[this.selectedIndex];
				// turn off form ...
				ModeSelectionMenuHandler.run;
				//optionsSelect(chosenOption);
			}
			
			cell0.appendChild(modeSelect);
	
			var untagged = new Option('Select New','noSelect');
			modeSelect.add(untagged,null);
	
			var milesOpt = new Option('Swim','swim');
			modeSelect.add(milesOpt,null);
			
			var kmOpt = new Option('Bike','bike');
			modeSelect.add(kmOpt,null);
	
			var metersOpt = new Option('Run','run');
			modeSelect.add(metersOpt,null);
	
			var yardsOpt = new Option('Strength','s');
			modeSelect.add(yardsOpt,null);
			
			var cell0a = row1.insertCell(1);
			var durText = document.createElement('text');
			durText.innerHTML = '&nbsp;or&nbsp;'; // someday localize this
			cell0a.appendChild(durText);
			
			var cell1 = row1.insertCell(2);
			var inDiv = document.createElement('div');
			cell1.appendChild(inDiv);
			inDiv.setAttribute('id','myAutoComplete');
			var input = document.createElement('input');
			inDiv.appendChild(input);
			input.setAttribute('id','wSrch');
			// input.setAttribute('type','text');
			input.type = 'text';
			var cDiv = document.createElement('div');
			inDiv.appendChild(cDiv);
			cDiv.setAttribute('id','myContainer');
			var cell2 = row1.insertCell(3);
			var menuDiv = document.createElement('div');
			cell2.appendChild(menuDiv);
			var srchBut = document.createElement('button');
			menuDiv.appendChild(srchBut);
			srchBut.setAttribute('id','srchBut');
			//srchBut.setAttribute('type','submit');
			srchBut.setAttribute('name','srchBut');
			// srchBut.setAttribute('value','Load Form');
			srchBut.value = 'Load Wrkout Form';
			var createDiv = document.createElement('div');
			menuDiv.appendChild(createDiv);
			createDiv.setAttribute('id','create');
			var workoutSrch = document.createElement('div');
			createDiv.appendChild(workoutSrch);
			workoutSrch.onclick = ModeSelectionMenuHandler.swim;
			workoutSrch.innerHTML = 'Swim';
			var newWorkout = document.createElement('div');
			createDiv.appendChild(newWorkout);
			newWorkout.innerHTML = 'Bike';
			newWorkout.onclick = ModeSelectionMenuHandler.bike;
			var generalWorkout = document.createElement('div');
			createDiv.appendChild(generalWorkout);
			generalWorkout.onclick = ModeSelectionMenuHandler.run;
			generalWorkout.innerHTML = 'Run';
			
			document.body.appendChild(wrkOutForm);
	}

	
	
	
	$(document).ready(function() {
		buildWrkOutDialogHTML();
		prepareDialog();
		buildSearchButton();
	});


/*
function saveWorkout(){
	var sUrl = "fred.html";
	var callback = {
		success: function(o) {
			// document.getElementById(’mydiv’).innerHTML =  o.responseText;
			alert('Saved workout');
			},
		failure: function(o) {
			alert("AJAX doesn’t work"); //FAILURE
			}
		} 

	var transaction = YAHOO.util.Connect.asyncRequest(’GET’, sUrl, callback, null);
} 	
*/	
/*	
function saveWorkout() {
	$.ajax({
		// url: 'server/log/workouts.php',
		url: 'server/db/saveWorkout.php',
		success: function(data) {
			alert('workout saved.');
			// $('.result').html(data);
			// alert('Load was performed.');
		},
		failure: function(data) {
			alert('Saving workout is diabled at this time.');
		}
	});
	
}	
*/
	
function debugDB() {
	// alert('debugging ...');
	$.ajax({
		// url: 'server/log/workouts.php',
		url: 'server/log/workoutList.php',
		success: function(data) {
			debugger;
			// $('.result').html(data);
			// alert('Load was performed.');
		},
		failure: function(data) {
			alert('bad url');
		}
	});
	
}
	
	function doCalendar() {	
		$('#calendar').fullCalendar({
			
			header: {
				left: 'prev,next today',
				center: 'title',
				right: 'month,agendaWeek,agendaDay'
			},
			
			editable: true,
			disableDragging: true,
			timeFormat: 'h(:mm)', // uppercase H for 24-hour clock
			events: 'server/log/workouts.php',
			dayClick: function(dayDate, allDay, jsEvent, view) {
				var d = dayDate.toString().split(' ');
				
				$('.hd').text('Enter your workout for: '+d[0] +'. '+d[1]+'. '+d[2]+', '+d[5]);
				workoutDialog.show();
			},
			eventClick:  function(calEvent, jsEvent, view) {
				alert('You clicked on an event: '+calEvent.title);
			}
	
		});
      
	$('#wrkOutFrm').hide();
	
	/*
	$('#show').click(function() {
		$('#greySrch').fadeOut('slow');
		$('#wrkOutFrm').fadeIn('slow');
		return false;
	});
	*/
	$('#wSrch').attr('value',defaultWrkOutText);
	
	$('#wSrch').click(function() {
		if (this.value == defaultWrkOutText) this.value = "";
		this.select();
		return false;
		
	});	
	
	// get workout list
	$.ajax({
		type: "POST",
		url: "server/log/workoutList.php",
		// data: "name=John&location=Boston",
		success: function(msg){
			//alert(msg);
			// set up datastore and autocomplete
			eval(msg);
			
					
		// using json and a remote call ....
		// http://developer.yahoo.com/yui/examples/datatable/dt_xhrjson.html
		// bug
		// http://yuilibrary.com/projects/yui2/ticket/2527819
		
	    // Use a LocalDataSource
	    var oDS = new YAHOO.util.LocalDataSource(workouts);
		// var oDS = new YAHOO.util.LocalDataSource(jsonWrk);
		// var oDS = new YAHOO.util.XHRDataSource("server/log/workoutList.php");
	    //Optional to define fields for single-dimensional array
	    // oDS.responseSchema = {fields : ["state"]};
		
		/*
		oDS.responseType = YAHOO.util.XHRDataSource.TYPE_TEXT;
		oDS.responseSchema = {   
	         recordDelim: "\n",
	         fieldDelim: "\t"
	    };
		*/
		oDS.maxCacheEntries = 5;
		/*
		oDS.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
		oDS.responseSchema = { 
					resultsList : "Response.Results",
					fields : [
							// { key: "id" },
							{ key: "wrk" }
						]   
		};
		*/
	    // Instantiate the AutoComplete
	    var oAC = new YAHOO.widget.AutoComplete("wSrch", "myContainer", oDS);
	    oAC.prehighlightClassName = "yui-ac-prehighlight";
	    oAC.useShadow = true;
	    oAC.queryMatchContains = true;
		
			
		}
	});
	
	// });
	}
 
ModeSelectionMenuHandler =
{
	// this.searchElm = document.getElementById('wSrch');
	swim : function () {
		//alert('Swimming log dog');
		buildGeneralForm();
		createMenu.hide();
	},
		
	bike : function () {
		//alert('biking log');
		buildGeneralForm();
		createMenu.hide();
	},
	
	run : function () {
		// alert('Run Forest ...');
		buildGeneralForm();
		createMenu.hide();
	}
	
}

var workOutFormContainer = null;
function buildGeneralForm() {
	// this.searchElm = document.getElementById('wSrch');
	workOutFormContainer = document.createElement('div');
	workOutFormContainer.className = 'workOutFormContainer';
	var genFormContainer = document.createElement('div'); 
	// genFormContainer.innerHTML = 'General Form';
	
	var genTable = document.createElement('table');
	var row1 = genTable.insertRow(-1);
	var durLabelCell = row1.insertCell(0);
	var durText = document.createElement('text');
	durText.innerHTML = 'Duration'; // someday localize this
	durLabelCell.appendChild(durText);
	
	var distanceLabelCell = row1.insertCell(1);
	var distText = document.createElement('text');
	distText.innerHTML = 'Distance'; // localize this someday too
	distanceLabelCell.appendChild(distText);
	
	var row2 = genTable.insertRow(-1);
	var durInputCell = row2.insertCell(0);
	var hhInput = document.createElement('input');
	durInputCell.appendChild(hhInput);
	hhInput.setAttribute('id','hh');
	hhInput.className = 'dur';
	// hhInput.setAttribute('size',5);
	hhInput.setAttribute('MAXLENGTH','2');
	hhInput.type = 'text';
	
	var colonText = document.createElement('text');
	colonText.innerHTML = ':';
	durInputCell.appendChild(colonText);
	
	var mmInput = document.createElement('input');
	durInputCell.appendChild(mmInput);
	mmInput.setAttribute('id','mm');
	// mmInput.setAttribute('size','5');
	mmInput.className = 'dur';
	mmInput.setAttribute('MAXLENGTH','2');
	mmInput.type = 'text';
	
	var colonText2 = document.createElement('text');
	colonText2.innerHTML = ':';
	durInputCell.appendChild(colonText2);
	
	var ssInput = document.createElement('input');
	durInputCell.appendChild(ssInput);
	ssInput.setAttribute('id','mm');
	// mmInput.setAttribute('size','5');
	ssInput.className = 'dur';
	ssInput.setAttribute('MAXLENGTH','2');
	ssInput.type = 'text';
	
	var distInputCell = row2.insertCell(1);	
	var distInput = document.createElement('input');
	distInputCell.appendChild(distInput);
	distInput.type = 'text';
	distInput.className = 'dist';
	distInput.setAttribute('id','dist');
	
	var distMeasuresCell = row2.insertCell(2);
	var measuresSelect = document.createElement('select');
	distMeasuresCell.appendChild(measuresSelect);
	
	var milesOpt = new Option('Mile(s)','mile');
	measuresSelect.add(milesOpt,null);
	
	var kmOpt = new Option('Km','km');
	measuresSelect.add(kmOpt,null);
	
	var metersOpt = new Option('Meters','m');
	measuresSelect.add(metersOpt,null);
	
	var yardsOpt = new Option('Yards','y');
	measuresSelect.add(yardsOpt,null);
	
	
	
	
	genFormContainer.appendChild(genTable);
	
	workOutFormContainer.appendChild(genFormContainer);
	dialogBody.appendChild(workOutFormContainer);
	
}

 
