function addDirectory(){

    var params = Form.Element.serialize('directoryNameTB');
    params += '&action=addDirectory&';
    params += Form.serialize('setVarsForm');
    
    if($F('directoryVisibleCB')=='on'){
        params+= '&visible=1';
    }else{
        params += '&visble=0';
    };

    var dirAjax = new Ajax.Request(
        '_documents_control.php',
        {
            method: 'post',
            parameters: params,
            onLoading: $('addDirectoryMessageBox').innerHTML = 'Adding Directory.',
            onComplete: function(response){
            
                var newResponseText = response.responseText.replace(/^[\s]*/g ,'');
                
                if(newResponseText[0]==0){
                    $('addDirectoryMessageBox').innerHTML = newResponseText.replace(/^0/g ,'');
                    return false;
                }else if(newResponseText[0]==1){
                    new Insertion.Top('visibleFilesContainer',newResponseText.replace(/^1/g ,''));
                }else{
                    new Insertion.Top('hiddenFilesContainer',response.responseText);
                }
                
                $('addDirectoryMessageBox').innerHTML = 'Directory added.';
                
                refreshMoveBox();
                
            } 
        }
    );

}

function selectFile(id){

   /*unselect the previously selected file
    but only if it exists (it might have been moved) */
   if( $F('selectedFile')!=0 || $F('selectedFile')==id){
      if( $('file'+$F('selectedFile')) != null ){
         $('file'+$F('selectedFile')).style.border = '2px dashed #fff'; 
      }
   }
   
   if( $F('selectedFile')!=id){
      /*select the new file*/
      $('selectedFile').value = id;   
      $('file'+id).style.border = '2px dashed #acf';
      Element.show('editFileBtn');
      Element.show('moveBox');
      if($F('path')!='') Element.show('moveUpBtn');
      
      if($('editFileDiv').innerHTML !='') getEditFileForm();

   }else{
      $('selectedFile').value = 0;
      Element.hide('editFileBtn');
      Element.hide('moveUpBtn');
      Element.hide('moveBox');
      $('editFileDiv').innerHTML='';
      $('editFileDiv').style.borderTop = "none";
   }
}

function deleteFile(id){

    if(id==0) return false;
    
    var deleteFilename = $('inplace'+id).innerHTML;
    var confirmInput = confirm('Are you sure you want to delete the file "'+deleteFilename+'"?');
    if(!confirmInput) return false;

	

    var params = Form.Element.serialize('centreval') + '&id='+id +'&action=deleteFile';
	alert (params);
    var deleteAjax = new Ajax.Request(
        '_documents_control.php',
        {
            method:'post', 
            parameters:params,
            onComplete:function(request){
                if( request.status == '200' ){
                    Element.hide('file'+id);
                    selectFile(id);
                    $('selectedFile').value = 0;
                    refreshMoveBox();
                }else{
                    alert('There was a problem deleting the file - file not deleted.');
                    refreshMoveBox();
                }
            }
        }
    );
}

function validateFilename(newFilename){
    if(newFilename.search(/[\\\|\/'"]/)>-1){
        return false
    }else{
        return true;
    }
}

function move(dragged,dropped){

    if(dropped.id=='parentDirectory'){
        return moveUp;
    }
    
    var params = Form.Element.serialize('path');
    params+= '&'+Form.Element.serialize('centreval');
    params+= '&file='+dragged.id.replace('file','');
    params+= '&directory='+dropped.id.replace('file','');
    params+= '&action=move';
    
    var moveAjax = new Ajax.Request(
        '_documents_control.php',
        {
            method:'post',
            parameters:params,
            onComplete: function(request){
                var response = request.responseText.replace(/\s*/g,'');
                    if(response == 'true'){
                        Element.hide(dragged);
                        refreshMoveBox();
                    }else{
                        alert('There was a problem moving the file. This could be because there is a file of the same name in the destination directory.');
                    }
                }
        }
    );

}


function moveUp(){

    var fileId = $F('selectedFile');
    if( fileId == 0 ) return false;
    
    var params = Form.Element.serialize('path');
    params+= '&'+Form.Element.serialize('centreval');
    params+= '&file='+fileId;
    params+= '&action=moveUp';
    
    var moveAjax = new Ajax.Request(
        '_documents_control.php',
        {
        method:'post',
        parameters:params,
        onComplete: function(request){
            var response = request.responseText.replace(/\s/g,'');
                if(response == 'true'){
                    Element.hide('file'+fileId);
                    refreshMoveBox();
                }else{
                    alert('There was a problem moving the file. This could be because there is a file of the same name in the destination directory.');
                }
            }
        }
    );
}

function selectMoveTo(){

    var fileId = $F('selectedFile');
    if(fileId==0) return false;
    
    var destination = $F('moveSelect');
    if(destination=='NOWHERE') return false;
    if(destination=='home') destination = '';
    
    params = 'action=moveTo&fileId='+fileId;
    params+= '&destination='+encodeURIComponent(destination);
    params+= '&centreval='+$F('centreval');
    
    var moveToAjax = new Ajax.Request(
        '_documents_control.php',
        {
        method:'post',
        parameters:params,
        onComplete: function(request){
            var response = request.responseText.replace(/\s/g,'');
                if(response == 'true'){
                    Element.hide('file'+fileId);
                    refreshMoveBox();
                }else{
                    alert('There was a problem moving the file. This could be because there is a file of the same name in the destination directory.');
                }
            }
        }
    );
}

function dAndDDelete(dragged){
    deleteFile(Number(dragged.id.replace('file','')));
}

function toggleEditFileForm(){

    if($('editFileDiv').innerHTML==''){
        $('editFileDiv').style.borderTop = "1px solid #fff";
        getEditFileForm();
        
    }else{
        $('editFileDiv').style.borderTop = "none";
        $('editFileDiv').innerHTML='';
    }
}

function getEditFileForm(){
    

    var params = 'action=getEditFileForm&fileId='+$F('selectedFile');
    params+= '&centreval='+$F('centreval');
    var formAjax = new Ajax.Updater(
        'editFileDiv',
        '_documents_control.php',
        {
        method:'post',
        parameters:params,
        onLoading:function(){ $('editFileDiv').innerHTML = 'Loading'; }
        }
    );
}

function editFile(fileId){

    $('editingFile').value = fileId;

    var params = Form.serialize('editFileForm'); 
    params+= '&action=editFile&fileId='+fileId;
    params+= '&centreval='+$F('centreval');
    
    var editAjax = new Ajax.Updater(
        'editFileDiv',
        '_documents_control.php',
        {
        method:'post',
        parameters:params,
        onLoading:function(){
            $('editFileMessageBox').innerHTML = 'Saving';
        },
        onComplete:function(){
            updateFileIcon($F('editingFile'));
            refreshMoveBox();
        }
        }
    );
    
    updateFileIcon(fileId);
}

function updateFileIcon(fileId){


    var params = 'action=updateFileIcon&fileId='+fileId;
    params+= '&centreval='+$F('centreval');

    var updateAjax = new Ajax.Updater(
        'file'+fileId,
        '_documents_control.php',
        {
        method:'post',
        parameters:params,
        onSuccess:function(){
            $('toolTipScript').innerHTML = '<script type="text/javascript" src="../includes/javascripts/wz_tooltip.js"></script>';
        }
        }
    ); 
}

function refreshMoveBox(){
    var params = Form.Element.serialize('centreval');
    params += '&action=getMoveBox';
    var refreshAjax = new Ajax.Updater('moveBox','_documents_control.php',{method:'post',parameters:params});
}

