Event.observe(window, 'load', init, false);

function init(){
	if (typeof id_last != 'undefined'){
		for (i = 3; i <= id_last; i++){
			makeEditable('name_'+i);
			makeEditable_section('section_'+i);
			makeEditable_type('type_'+i);
			makeEditable_module('module_'+i);
			makeEditable_board('board_'+i);
		}
	}
	if (typeof greeting != 'undefined'){
		makeEditable_index('greeting_edit');
	}
}

function makeEditable(id){
	Event.observe(id, 'click', function(){edit($(id))}, false);
	Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
	Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
}
function makeEditable_index(id){
	Event.observe(id, 'click', function(){edit_index($(id))}, false);
	Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
	Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
}
function makeEditable_section(id){
	Event.observe(id, 'click', function(){edit_section($(id))}, false);
	Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
	Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
}
function makeEditable_type(id){
	Event.observe(id, 'click', function(){edit_type($(id))}, false);
	Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
	Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
}
function makeEditable_module(id){
	Event.observe(id, 'click', function(){edit_module($(id))}, false);
	Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
	Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
}
function makeEditable_board(id){
	Event.observe(id, 'click', function(){edit_board($(id))}, false);
	Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
	Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
}

function edit(obj){
	Element.hide(obj);
	
	var textarea = '<div id="'+obj.id+'_editor" class="textareaedit"><input type="text" size="14" maxlength="64" id="'+obj.id+'_edit" name="'+obj.id+'" style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1em;" />';
	var button	 = '<div class="savecancel"><input id="'+obj.id+'_save" type="button" value="Save" /> or <input id="'+obj.id+'_cancel" type="button" value="Cancel" /></div></div>';
	
	new Insertion.After(obj, textarea+button);	
		
	Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj)}, false);
	Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
	
}
function edit_index(obj){
	Element.hide(obj);
	
	var textarea = '<div id="'+obj.id+'_editor" class="textareaedit"><textarea id="'+obj.id+'_edit" name="'+obj.id+'" rows="2" cols="95" style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1em;">'+obj.innerHTML+'</textarea>';
	var button	 = '<div class="savecancel"><input id="'+obj.id+'_save" type="button" value="Save" /> or <input id="'+obj.id+'_cancel" type="button" value="Cancel" /></div></div>';
	
	new Insertion.After(obj, textarea+button);	
		
	Event.observe(obj.id+'_save', 'click', function(){saveChanges_index(obj)}, false);
	Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
	
}
function edit_section(obj){
	Element.hide(obj);
	
	var textarea = '<div id="'+obj.id+'_editor" class="textareaedit"><form><select id="'+obj.id+'_edit" name="'+obj.id+'"><option value="AS Core">AS Core</option><option value="A2 Core">A2 Core</option><option value="FP1">FP1</option><option value="FP2">FP2</option><option value="FP3">FP3</option><option value="M1">M1</option><option value="M2">M2</option><option value="S1">S1</option><option value="S2">S2</option><option value="D1">D1</option><option value="D2">D2</option><option value="NM">NM</option><option value="DE">DE</option><option value="Add Maths">Add Maths</option><option value="Elluminate">Elluminate</option><option value="Enrichment">Enrichment</option><option value="Misc.">Misc.</option></select>';
	var button	 = '<div class="savecancel"><input id="'+obj.id+'_save" type="button" value="Save" /> or <input id="'+obj.id+'_cancel" type="button" value="Cancel" /></div></form></div>';
	
	new Insertion.After(obj, textarea+button);	
		
	Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj)}, false);
	Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
	
}
function edit_type(obj){
	Element.hide(obj);
	
	var textarea = '<div id="'+obj.id+'_editor" class="textareaedit"><form><select id="'+obj.id+'_edit" name="'+obj.id+'"><option value="revpack">revpack</option><option value="other">other</option></select>';
	var button	 = '<div class="savecancel"><input id="'+obj.id+'_save" type="button" value="Save" /> or <input id="'+obj.id+'_cancel" type="button" value="Cancel" /></div></form></div>';
	
	new Insertion.After(obj, textarea+button);	
		
	Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj)}, false);
	Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
	
}
function edit_module(obj){
	Element.hide(obj);
	
	var textarea = '<div id="'+obj.id+'_editor" class="textareaedit"><form><select id="'+obj.id+'_edit" name="'+obj.id+'"><option value="C1">C1</option><option value="C2">C2</option><option value="C3">C3</option><option value="C4">C4</option><option value="FP1">FP1</option><option value="FP2">FP2</option><option value="FP3">FP3</option><option value="M1">M1</option><option value="M2">M2</option><option value="S1">S1</option><option value="S2">S2</option><option value="D1">D1</option><option value="D2">D2</option><option value="NM">NM</option><option value="DE">DE</option></select>';
	var button	 = '<div class="savecancel"><input id="'+obj.id+'_save" type="button" value="Save" /> or <input id="'+obj.id+'_cancel" type="button" value="Cancel" /></div></form></div>';
	
	new Insertion.After(obj, textarea+button);	
		
	Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj)}, false);
	Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
	
}
function edit_board(obj){
	Element.hide(obj);
	
	var textarea = '<div id="'+obj.id+'_editor" class="textareaedit"><form><select id="'+obj.id+'_edit" name="'+obj.id+'"><option value="AQA">AQA</option><option value="Edexcel">Edexcel</option><option value="MEI">MEI</option><option value="OCR">OCR</option></select>';
	var button	 = '<div class="savecancel"><input id="'+obj.id+'_save" type="button" value="Save" /> or <input id="'+obj.id+'_cancel" type="button" value="Cancel" /></div></form></div>';
	
	new Insertion.After(obj, textarea+button);	
		
	Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj)}, false);
	Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
	
}

function showAsEditable(obj, clear){
	if (!clear){
		Element.addClassName(obj, 'editable');
	}else{
		Element.removeClassName(obj, 'editable');
	}
}

function saveChanges(obj){
	
	var new_content	=  escape($F(obj.id+'_edit'));

	obj.innerHTML	= "Saving...";
	cleanUp(obj, true);

	var success	= function(t){editComplete(t, obj);}
	var failure	= function(t){editFailed(t, obj);}

  	var url = 'shared_files_edit.php';
	var pars = 'id='+obj.id+'&content='+new_content;
	var myAjax = new Ajax.Request(url, {method:'post', postBody:pars, onSuccess:success, onFailure:failure});

}
function saveChanges_index(obj){
	
	var new_content	=  escape($F(obj.id+'_edit'));

	obj.innerHTML	= "Saving...";
	cleanUp(obj, true);

	var success	= function(t){editComplete(t, obj);}
	var failure	= function(t){editFailed(t, obj);}

  	var url = 'index_edit.php';
	var pars = 'id='+obj.id+'&content='+new_content;
	var myAjax = new Ajax.Request(url, {method:'post', postBody:pars, onSuccess:success, onFailure:failure});

}

function cleanUp(obj, keepEditable){
	Element.remove(obj.id+'_editor');
	Element.show(obj);
	if (!keepEditable) showAsEditable(obj, true);
}

function editComplete(t, obj){
	obj.innerHTML	= t.responseText;
	showAsEditable(obj, true);
}

function editFailed(t, obj){
	obj.innerHTML	= 'Sorry, the update failed.';
	cleanUp(obj);
}