Event.observe(window, 'load', initcname, false);
Event.observe(window, 'load', initcemail, false);
Event.observe(window, 'load', initcphone, false);
Event.observe(window, 'load', initcphonew, false);
Event.observe(window, 'load', initcphonefax, false);
Event.observe(window, 'load', initshippingname, false);
Event.observe(window, 'load', initsshippingaddrone, false);
Event.observe(window, 'load', initsshippingaddrtwo, false);
Event.observe(window, 'load', initsshippingcity, false);
Event.observe(window, 'load', initsshippingstate, false);
Event.observe(window, 'load', initsshippingpostal, false);
Event.observe(window, 'load', initstatus, false);
Event.observe(window, 'load', initnotes, false);
Event.observe(window, 'load', initthisBatchId, false);
Event.observe(window, 'load', initbatch_id, false);
Event.observe(window, 'load', initjob_id, false);
Event.observe(window, 'load', initerror, false);
Event.observe(window, 'load', initerror_status, false);
Event.observe(window, 'load', initflag, false);
Event.observe(window, 'load', initretailer_id, false);
Event.observe(window, 'load', initretailer_index, false);
Event.observe(window, 'load', initretailer_name, false);
Event.observe(window, 'load', initretailer_ups_acct, false);
Event.observe(window, 'load', initretailer_fedex_acct, false);
Event.observe(window, 'load', initbilling_postal, false);
Event.observe(window, 'load', initaddress_1, false);
Event.observe(window, 'load', initcity, false);
Event.observe(window, 'load', initstate, false);
Event.observe(window, 'load', initpostal, false);
Event.observe(window, 'load', initshipping_account, false);


function initshipping_account(){
	makeEditable('shipping_account_inline');
}

function initaddress_1(){
	makeEditable('address_1_inline');
}
function initcity(){
	makeEditable('city_inline');
}
function initstate(){
	makeEditable('state_inline');
}
function initpostal(){
	makeEditable('postal_inline');
}

function initretailer_id(){
	makeEditable('retailer_id_inline');
}
function initretailer_index(){
	makeEditable('retailer_index_inline');
}
function initretailer_name(){
	makeEditable('retailer_name_inline');
}
function initretailer_ups_acct(){
	makeEditable('retailer_ups_acct_inline');
}
function initretailer_fedex_acct(){
	makeEditable('retailer_fedex_acct_inline');
}
function initbilling_postal(){
	makeEditable('billing_postal_inline');
}

function initflag(){
	makeEditable('flag_inline');
}
function initerror_status(){
	makeEditable('error_status_inline');
}
function initerror(){
	makeEditable('error_inline');
}
function initjob_id(){
	makeEditable('job_id_inline');
}

function initthisBatchId(){
	makeEditable('thisBatchId_inline');
}

function initbatch_id(){
	makeEditable('batch_id_inline');
}


function initnotes(){
	makeEditable('notes_inline');
}

function initcname(){
	makeEditable('customer_name_inline');
}

function initcemail(){
	makeEditable('customer_email_inline');
}

function initcphone(){
	makeEditable('customer_phone_inline');
}

function initcphonew(){
	makeEditable('customer_phone_work_inline');
}

function initcphonefax(){
	makeEditable('customer_phone_fax_inline');
}

function initshippingname(){
	makeEditable('shipping_name_inline');
}

function initsshippingaddrone(){
	makeEditable('shipping_addr1_inline');
}

function initsshippingaddrtwo(){
	makeEditable('shipping_addr2_inline');
}

function initsshippingcity(){
	makeEditable('shipping_city_inline');
}
function initsshippingstate(){
	makeEditable('shipping_state_inline');
}
function initsshippingpostal(){
	makeEditable('shipping_postal_inline');
}
function initstatus(){
		makeEditable('status');
}

/*
	makeEditable('customer_name');
	makeEditable('status')
	makeEditable('error_status')
	makeEditable('error')
	makeEditable('flag')
	makeEditable("status_date")
	makeEditable('order_id')
	makeEditable('retailer_id')
	makeEditable('order_date')
	makeEditable('customer_id')
	makeEditable("")
	makeEditable('')
	makeEditable('')
	makeEditable('')
	makeEditable('')
	makeEditable('shipping_carrier')
	makeEditable('shipping_method')
	makeEditable('shipping_account')
	makeEditable('packages')
	makeEditable('reference_1')
	makeEditable('reference_2')
	makeEditable('')
	makeEditable('recipient_company')
	makeEditable('shipping_addr1')	
	makeEditable('shipping_addr2')	
	makeEditable('shipping_city')
	makeEditable('shipping_state')
	makeEditable('shipping_postal')	
	makeEditable('ship_track')
	makeEditable('ship_date')	
	makeEditable('ship_charge')		
	makeEditable('packer_id')	
	makeEditable('total_items')		
	makeEditable('notes')	

*/

function makeEditable(id){
	
	if (id == "status") {
	
		Event.observe(id, 'click', function(){ edit_select($(id))  } , false);
		Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
		Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
		//toggleSlide($(id))
	
	} else {
	
		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 edit_select(obj ,selected){
	
	Element.hide(obj);
	
	var textarea = '<div id="'+obj.id+'_editor"><select id="'+obj.id+'_edit" name="'+obj.id+'"><option value="1001">Order Replaced</option><option value="200">In Transit</option><option value="1000">Archive</option><option value="700">Reprint</option><option value="600">In Print Que</option><option value="905">Cancel Order</option><option value="400">Send To Packaging</option><option value="908">Void Shipment</option><option value="991">Bad Data</option><option value="907">Returned By Customer</option><option value="100">Delivered</option><option value="955">Place On Hold</option><option value="300">Scheduled for Pick Up</option><option value="701">RESET|REPRINT</option></select>';
	
	var button = '<div><input id="'+obj.id+'_save" type="image" src="./images/save.gif" /> or <input id="'+obj.id+'_cancel" type="image" src="./images/cancel.gif"/></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(){cleanUpcancel(obj)}, false);
	
}


function edit(obj){
	Element.hide(obj);
	showAsEditable(obj, false);
	
	if(obj.innerHTML == "---------") {
		
		var this_display_data = obj.innerHTML = "";
	
	} else {
		
		var this_display_data = obj.innerHTML;
	
	}
	
	var textarea = '<div id="'+obj.id+'_editor" style="display:none; overflow:hidden;height:70px;font-size:10px; text-align:center;"><textarea id="'+obj.id+'_edit" name="'+obj.id+'" width="100%" rows="1">'+this_display_data+'</textarea>';
	var button = '<div><input id="'+obj.id+'_save" type="image" src="./images/save.gif" /> or <input id="'+obj.id+'_cancel" type="image" src="./images/cancel.gif"/></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(){cleanUpcancel(obj)}, false);
	toggleSlide(obj.id+'_editor');
}

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 = '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 cleanUpcancel(obj, keepEditable){
	
	if(obj.innerHTML == "") {
		
		var this_display_data = obj.innerHTML = "---------";
	
	}
	toggleSlide(obj.id+'_editor');
	
	Element.remove(obj.id+'_editor');
	
	Element.show(obj);
	if (!keepEditable) showAsEditable(obj, true);
	
		
	
}

function cleanUp(obj, keepEditable){
	
	/* leave off remove to allow slide 
	toggleSlide(obj.id+'_editor');
	*/

	
	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);
}


