function makeEditable(id){
    Event.observe(id, 'click', function(){edit($(id),id)}, false);
    Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
    Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
}

function edit(obj){
       var regular = /\n/gi;
       var obsah = obj.innerHTML.replace(regular, '');
       regular = /<br>/gi;
       obsah = obsah.replace(regular, '\n');
       velikost = 'rows="15" cols="850"';

       var formular = '<div class="edit" id="'+obj.id+'_editor"><textarea id="'+obj.id+'_edit" name="'+obj.id+'" '+velikost+'>'+obsah+'</textarea>';
       var button     = '<div><input id="'+obj.id+'_save" type="button" value="OK" /> <input id="'+obj.id+'_cancel" type="button" value="CANCEL" /></div></div>';

       new Insertion.After(obj, formular+button);
       Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj)}, false);
       Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
}

function edit_link(id, link){
    var obj = document.getElementById(id);
    var formular = '<div class="edit" id="'+id+'_editor"><input class="edit_input" id="'+id+'_edit" name="'+id+'" value="'+link+'" />';
    var button   = '<div><input id="'+id+'_save" type="button" value="OK" /> <input id="'+obj.id+'_cancel" type="button" value="CANCEL" /></div></div>';

       new Insertion.After(obj, formular+button);
       Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj)}, false);
       Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
}

function edit_image(id, image){
    var obj = document.getElementById(id);
    var formular = '<div class="edit" id="'+id+'_editor"><div id="editor">loading..</div>';
    var button   = '<div><input id="'+id+'_save" type="button" value="OK" /> <input id="'+id+'_cancel" type="button" value="CANCEL" /></div></div>';

       new Insertion.After(obj, formular+button);
       new Ajax.Updater('editor','lookup.php', {asynchronous:true, evalScripts:true, method:'post', parameters:'img=' + image + '&id=' + id });
       Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj)}, false);
       Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
}

function change_image(id){
    var obj = document.getElementById(id);
    var obrazek = obj.options[obj.selectedIndex].value;
    new Ajax.Updater('editor','lookup.php', {asynchronous:true, evalScripts:true, method:'post', parameters:'img=' + obrazek + '&id=' + id })
}

function delete_item(id, co)
{
    var success    = function(){alert('Entry successfully deleted.'); window.location.reload( true );}
    var failure    = function(t){editFailed(t, obj);}

    var url = 'admin.php';
    var pars = 'id='+id+'&content=delete&table='+co;
    var myAjax = new Ajax.Request(url, {method:'post', postBody:pars, onSuccess:success, onFailure:failure});

}


function showAsEditable(obj, clear){
    if (!clear){
        Element.addClassName(obj, 'editable');
    }else{
        Element.removeClassName(obj, 'editable');
    }
}

function saveChanges(obj){
    var new_content    =  encodeURIComponent($F(obj.id+'_edit'));
    if ( (obj.id.indexOf('_image')==-1) ) {
       obj.innerHTML    = "Saving...";
    }
    cleanUp(obj, true);
    var success    = function(t){editComplete(t, obj);}
    var failure    = function(t){editFailed(t, obj);}

    var url = 'admin.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){
    if ( (obj.id.indexOf('-new')!=-1) || (obj.id.indexOf('_image')!=-1) ) {
       window.location.reload( true );
    } else {
       obj.innerHTML    = t.responseText;
       showAsEditable(obj, true);
    }
}

function editFailed(t, obj){
    obj.innerHTML    = 'Error performing operation!';
    cleanUp(obj);
}


/*********************************/

var http = '';
var uploader = '';

function createRequestObject() {
    var obj;
    var browser = navigator.appName;

    if(browser == "Microsoft Internet Explorer"){
        obj = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else{
        obj = new XMLHttpRequest();
    }
    return obj;
}

function traceUpload(uploadDir, uploader, table) {
   http = createRequestObject();
   var prmtr = 'imageupload.php?uploadDir='+uploadDir+'&uploader='+uploader+'&table='+table;
   http.open("POST", prmtr);
   http.onreadystatechange = handleResponse;
   http.send(null);
}

function handleResponse() {

    if(http.readyState == 4){
        document.getElementById(uploaderId).innerHTML = http.responseText;
        //window.location.reload(true);
    }
    else {
        document.getElementById(uploaderId).innerHTML = "Uploading file. Please wait...";
    }
}

function uploadFile(obj, table) {
    var uploadDir = obj.value;
    uploaderId = 'uploader'+obj.name;
    uploader = obj.name;
    document.getElementById('formName'+obj.name).submit();
    traceUpload(uploadDir, obj.name, table);
}

function vytvorDalsiPole(id, table) {
var cislo = parseInt(id.substring(2));
var starecislo = cislo;
cislo = cislo + 1;
var novydummy = 'dummyid'+cislo;
var staredummy = 'dummyid'+starecislo;
document.getElementById('xid' + starecislo).innerHTML = '';
document.getElementById('uploadform').innerHTML = document.getElementById('uploadform').innerHTML + '\n\n<form id="formNameid' +cislo+ '" method="post" enctype="multipart/form-data" action="imageupload.php" target="iframeid' +cislo+ '">'+
                            '<input type="hidden" name="id" value="id' +cislo+ '" />'+
                            '<span id="uploaderid' +cislo+ '">'+
                                '<input name="id' +cislo+ '" type="file" value="id' +cislo+ '" onchange="return uploadFile(this,\''+table+'\')" />'+
                                '<input type="hidden" name="MAX_FILE_SIZE" value="2000000">'+
                                '<input name="table" value="'+table+'" type="hidden">'+
                                '<br />'+
                            '</span>'+
                            '<iframe name="iframeid' +cislo+ '" src="imageupload.php" width="400" height="100" style="display:none;"> </iframe>'+
                        '</form>'+
                        '<span id="xid' +cislo+ '"><a href="#" onclick="return vytvorDalsiPole(\'id' +cislo+ '\',\''+table+'\');"> - create another upload form entry -</a></span><br />';
return false;
}
