// retrieve all elements of a given class
var keycodebackend;
var dragitem;
var dropitem;
function loadfilemanagerOrder(){
	
    window.directory = '/'; // current directory viewed
    window.filename = ''; // currently selected file
    window.thainame = ''; 
        $('btn_new_folder').onclick = showNewFolder;
    $('form_new_submit').onclick = doNewFolder;
    $('form_new_reset').onclick = hideForms;   
    $('btn_rename').onclick = showRename;
    $('form_rename_submit').onclick = doRename;
    $('form_rename_reset').onclick = hideForms;
    $('btn_delete').onclick = doDelete;
     	 
}

function getElementsByClass(search){
    var classElements = new Array();
    var els = document.getElementsByTagName('*');
    var pattern = new RegExp('(^|\\s)' + search + '(\\s|$)');
    
    for (var i = 0, j = 0; i < els.length; i++) {
        if (pattern.test(els[i].className)) {
            classElements[j] = els[i];
            j++;
        }
    }
    
    return classElements;
}

// mark a row as selected
function selectTableRow(data, e){
    unselectTableRow();
    e.type = e.className;
    e.className = 'selectedRow';
    window.filename = data;   
}

// unselect row
function unselectTableRow(){
    for (i = 0, s = getElementsByClass('selectedRow'); i < s.length; i++) {
        s[i].className = s[i].type;
    }    
    hideForms();
}

// highlight a table row on mouseover
function highlightTableRow(e){
    if (e.className != 'selectedRow') {		
        e.style.backgroundColor = '#C3C3FE';		
    }
}

// remove the highlighting on mouseout
function unhighlightTableRow(e){
    e.style.backgroundColor = '';
}

// retrieve display of files and directories

function refreshFilesListOrder(cookiekey){
	//alert("dd");
	 hideForms();
	
	var url='process.php';
	var data= new Hash(); 
	data.set('action','list');
	data.set('dir',window.directory);
	
	
		data.set('cookie-key',cookiekey);
	
   
	data.set('nocache',(new Date()).getTime());
	data.toQueryString();	
	new Ajax.Request(url, {  
	method: 'get', 
	parameters:data,  
	onSuccess:function(r){
	//alert("ok refresh");
		$('file_datagrid').innerHTML = r.responseText;
            window.filename = ''; // selected file
          	//for multipow
			var mydir;
			if ($('spanmydir')) {
				 mydir = $("spanmydir").innerHTML;
			}
			if (mydir != "undefined") {
				$("curdir").value = mydir;
			}else{
				$("curdir").value = "";
			}
			//new Draggable('dragname', { revert: true });

  //var $j = jQuery.noConflict();	

				$j(".dragname").draggable({
					revert:true,
					 drag: function(event, ui) { 
					dragitem=this.title;					
					 }												
				});
		

//$j(".dragname").draggable();


		$j(".dropname").droppable({
			accept: '.dragname',
			
			drop: function(event, ui) {
				//alert('ar');				
				dropitem=this.title;
				
				showdeadcenterdiv('100','100','divWait');
	 $j('#divWait').gbxShow();
					moveFile();
				
				
			}
		});
		
			//disUpload();
				//alert($('file_datagrid').innerHTML);
			
	},
	onFailure:showError
	}); 
    	
}
function moveFile(){
	//alert(dropitem +"--->" +dragitem);
	var data=new Hash();
	
	data.set('cookie-key',curKeycode);
	data.set('folder',dropitem);
	data.set('file',dragitem);
	data.set('nocache',(new Date()).getTime());
	data.toQueryString();
	new Ajax.Request('moveFile.php', {  
	method: 'get',
	parameters:data,   
	onSuccess:function(r){
		if (r.responseText == 'OK') {
                refreshFilesListOrder(curKeycode);
            }
            else {
                alert('ไม่สามารถย้ายไฟล์ได้ครับ');
            }
			$j('#divWait').gbxHide();
	},
	onFailure:showError
	}); 
	
}
function disUpload(){
	//alert('ไม่มีแฟ้ม');
	if($('file_datagrid').innerHTML=="แฟ้มของ Order id หรือ Keycode นี้ ไม่อยู่ในระบบครับ"){			
				$('uploadMultipow').disabled=true;	
				}else{
					
					$('uploadMultipow').disabled=false;
				}
}

// hide all input forms
function hideForms(){
	
    $('form_new').style.display = 'none';
    $('form_rename').style.display = 'none';   
}

// alert user the upload failed
function uploadFailed(){
    alert('Failed to upload file.');
    hideForms();
}

// show form to upload a new file 
function showUploadFile(){
    hideForms();
    $('form_upload').reset();
    $('form_upload').style.display = '';
}

// show form to create new folder
function showNewFolder(){
    hideForms();
    $('form_new_name').value = '';
    $('form_new').style.display = '';
	$('form_new_name').focus();
}

// create a new folder
function doNewFolder(){
	
	var url='process.php';
	var data= new Hash(); 
	data.set('action','new');
	data.set('dir',window.directory);
	data.set('name',$('form_new_name').value);
	data.set('cookie-key',curKeycode);
	
	data.set('nocache',(new Date()).getTime());
	data.toQueryString();
 
    new Ajax.Request(url, {  
	method: 'get',
	parameters:data,   
	onSuccess:function(r){
		if (r.responseText == 'OK') {
                refreshFilesListOrder(curKeycode);
            }
            else {
                alert('Unable to create directory.');
				
            }
	},
	onFailure:showError
	}); 
	   return false;
}

// show form to rename a file or directory
function showRename(){
    // don't rename a parent directory or if no file is selected
    if (window.filename == '..' || window.filename == '') {
        return;
    }
    
    hideForms();
    $('form_rename_name').value = window.filename;
    $('form_rename').style.display = '';
	$('form_rename_name').focus();
}

// rename the file or directory
function doRename(){
	
	var url='process.php';
	var data= new Hash(); 
	data.set('cookie-key',curKeycode);
	data.set('action','rename');
	data.set('dir',window.directory);
	data.set('oldfile',window.filename);
	data.set('newfile',$('form_rename_name').value);
	
	if(typeof(keycodebackend)!="undefined"){
	data.set('key',keycodebackend);
	}
   
   	data.set('nocache',(new Date()).getTime());
	data.toQueryString();
    
   new Ajax.Request(url, {  
	method: 'get', 
	parameters:data,  
	onSuccess:function(r){
		if (r.responseText == 'OK') {
                refreshFilesListOrder(curKeycode);
            }
            else {
                alert('Unable to rename entry.');
            }
	},
	onFailure:showError
	});            

    return false;
	
}

// delete a directory or file
function doDelete(){
    // don't delete a parent directory or if no file is selected
    if (window.filename == '..' || window.filename == '') {
        return;
    }
    
    if (!confirm('Are you sure you wish to delete?')) {
        return;
    }
	
	var url='process.php';
	var data= new Hash(); 
	data.set('cookie-key',curKeycode);
	data.set('action','delete');
	data.set('dir',window.directory);
	data.set('file',window.filename);
		
	if(typeof(keycodebackend)!="undefined"){
	data.set('key',keycodebackend);
	}
   
   	data.set('nocache',(new Date()).getTime());
	data.toQueryString();
   
    new Ajax.Request(url, {  
	method: 'get', 
	parameters:data,  
	onSuccess:function(r){
		 if (r.responseText == 'OK') {
                var curdir = window.directory;
                var dd = window.filename;
                var il = dd.length + 1;                    
                var lencut = curdir.length - dd.lenght;
                var new1 = curdir.substring(0, lencut);             
                refreshFilesListOrder(curKeycode);
            }
            else {
                alert('Unable to delete entry.');
            }
	},
	onFailure:showError
	}); 
          
     
}



// download the selected file or traverse into the selected directory
//Button CLICK !!!
function openSelected(thainame){
    thainamear = thainame;
   var url='process.php';
	var data= new Hash(); 
	data.set('action','open');
	data.set('cookie-key',curKeycode);
	data.set('dir',window.directory);
	data.set('file',thainame);
	
   
   	data.set('nocache',(new Date()).getTime());
	data.toQueryString();
  
   new Ajax.Request(url, {  
	method: 'get',   
	parameters:data,
	onSuccess:function(r){
		var result = eval('(' + r.responseText + ')');           
            
            if (result.retType == 'directory') {
            
                window.directory = result.directory;
                refreshFilesListOrder(curKeycode);
            }
            else 
                if (result.retType == 'file') {
                    var thaifilename = result.filename;                 
						if (typeof(keycodebackend) != "undefined") {
							window.location = 'download.php?&key=' + keycodebackend + '&dir=' + encodeURI(window.directory) +
							'&file=' +encodeURI(thaifilename) +'&nocache=' +(new Date()).getTime();
						}
						else{
							window.location = 'download.php?&dir=' + encodeURI(window.directory) +
							'&file=' +encodeURI(thaifilename)+'&cookie-key='+curKeycode +'&nocache=' +(new Date()).getTime();
						}
                 }
                else {
                    alert('Unknown error.');
                }
	},
	onFailure:showError
	});             
    return false;
}

