/*
* author: Logan Cai
* Email: cailongqun [at] yahoo [dot] com [dot] cn
* Website: www.phpletter.com
* Created At: 21/April/2007
* Modified At: 1/June/2007
*/
var dcTime=300; // doubleclick time
var dcDelay=100; // no clicks after doubleclick
var dcAt=0; // time of doubleclick
var savEvent=null; // save Event for handling doClick().
var savEvtTime=0; // save time of click event.
var savTO=null; // handle of click setTimeOut
var linkElem = null;
function hadDoubleClick() {
var d = new Date();
var now = d.getTime();
if ((now - dcAt) < dcDelay) {
return true;
}
return false;
};
/**
* add over class to the specific table
*/
function tableRuler(element)
{
var rows = $(element);
$(rows).each(function(){
$(this).mouseover(function(){
$(this).addClass('over');
});
$(this).mouseout(function(){
$(this).removeClass('over');
});
});
};
function getIEVersion( )
{
var ua = navigator.userAgent;
var IEOffset = ua.indexOf("MSIE ");
return parseFloat(ua.substring(IEOffset + 5, ua.indexOf(";", IEOffset)));
};
/**
*check all checkboxs and uncheck all checkbox
*/
function checkAll(selectAllText, unselectAllText)
{
var checkbox = $('#tickAll');
if($(checkbox).attr('class') == "check_all")
{
$(checkbox).attr('class', 'uncheck_all');
$(checkbox).attr('title', unselectAllText);
$("#fileList tr[@id^=row] input[@type=checkbox]").each(function(i){
$(this).attr("checked", 'checked');
}) ;
}else
{
$(checkbox).attr('class', 'check_all');
$(checkbox).attr('title', selectAllText);
$("#fileList input[@type=checkbox][@checked]").each(function(i){
$(this).removeAttr("checked");
}) ;
}
};
/**
* show up the selected document information
*/
function setDocInfo(type, rowNum)
{
$('#edit').hide();
var editableExtensions = editableExts.split(',');
if(document.getElementById('check'+rowNum).checked)
{
if(type=="folder")
{
$('#folderPath').text($('#folderPath'+rowNum).val());
$('#folderFile').text($('#folderFile'+rowNum).val());
$('#folderSubdir').text($('#folderSubdir'+rowNum).val());
$('#folderCtime').text($('#folderCtime'+rowNum).val());
$('#folderMtime').text($('#folderMtime'+rowNum).val());
if($('#folderReadable' + rowNum).val() == '1')
{
$('#folderReadable').html(" ");
}else
{
$('#folderReadable').html(" ");
}
if($('#folderWritable' + rowNum).val() == '1')
{
$('#folderWritable').html(" ");
}else
{
$('#folderWritable').html(" ");
}
$('#folderFieldSet').css('display', '');
$('#fileFieldSet').css('display', 'none');
$('#preview').html(msgNotPreview);
}else
{
$('#preview').html(msgNotPreview);
var fileExt = getFileExtension($('#fileName'+rowNum).val());
$('#selectedFileRowNum').val(rowNum);
$('#fileName').text($('#fileName'+rowNum).val());
$('#fileSize').text($('#fileSize'+rowNum).val());
$('#fileType').text($('#fileType'+rowNum).val());
$('#fileCtime').text($('#fileCtime'+rowNum).val());
$('#fileMtime').text($('#fileMtime'+rowNum).val());
if($('#fileReadable' + rowNum).val() == '1')
{
$('#fileReadable').html(" ");
}else
{
$('#fileReadable').html(" ");
}
if($('#fileWritable' + rowNum).val() == '1')
{
$('#fileWritable').html(" ");
}else
{
$('#fileWritable').html(" ");
}
$('#folderFieldSet').css('display', 'none');
$('#fileFieldSet').css('display', '');
if($('#filePreview' + rowNum).val() == '1')
{
$("#loading")
.ajaxStart(function(){
$(this).show();
})
.ajaxComplete(function(){
$(this).hide();
});
for(var i in editableExtensions)
{
if(editableExtensions[i] == fileExt)
{
$('#edit').show();
break;
}
}
switch($('#fileType'+rowNum).val())
{
case "image":
$('#edit').show();
$('#loading').show();
var preImage = new Image();
preImage.onload = function()
{
$('#preview').empty();
$(preImage).appendTo('#preview');
$('#loading').hide();
};
preImage.src = appendQueryString(urlImgPreview, "path=" + $('#filePath' + rowNum).val()) ;
break;
case "txt":
$("#preview").load(appendQueryString(urlPreview, "path=" + $('#filePath' + rowNum).val()) ,
function() {
}
);
case "xml":
case "html":
break;
case "video":
case "movie":
case "music":
case "Flash":
$('#preview').html('
",
tooltip : data.tipedit
});
}
}
};
$('#formNewFolder').ajaxSubmit(options);
}
return false;
};
function uploadFile(msgNameFormat, msgFileEmpty)
{
var pattern=/[A-Za-z0-9_\-. ]+\.[A-Za-z0-9]+$/i;
var file = $('#new_file');
if ($(file).val() == "")
{
alert(msgFileEmpty);
}
else if(!pattern.test($(file).val()))
{
alert(msgNameFormat);
}else
{
$("#loading")
.ajaxStart(function(){
$(this).show();
})
.ajaxComplete(function(){
$(this).hide();
});
var options =
{
dataType: 'json',
error: function (data, status, e)
{
alert(e);
},
success: function(data)
{
//remove those selected items
if(typeof(data.error) == 'undefined')
{
alert('Unexpected information ');
}
else if(data.error != '')
{
alert(data.error);
}else
{
//show up the new folder
var tbody = $('#fileList');
var rows = $('#fileList tr');
var cssRow = ($(rows).length) % 2?"even":"odd";
//var newRowNum = $(rows).length;
numRows++;
var newRowNum = numRows;
var fileRow = "";
var strCss = "left";
var strDisabled = "";
if(!data.is_writable)
{
strDisabled = " disabled";
strCss = " leftDisabled";
}
fileRow +='
",
tooltip : data.tipedit
});
doEnablePopup('#row'+ newRowNum + ' td a[@target=_blank]');
doEnableDownload('#row'+ newRowNum + ' td a[@target=_blank]');
}
}
};
$('#formFile').ajaxSubmit(options);
}
return false;
};
function selectForEdit(warning)
{
var selectedFileRowNum = $('#selectedFileRowNum').val();
var url = '';
if(selectedFileRowNum != '' && $('#row' + selectedFileRowNum))
{
switch($('#fileType'+selectedFileRowNum).val())
{
case 'image':
url = urlImageEditor;
break;
default:
url = urlTextEditor;
}
var param = "status=yes,menubar=no,resizable=yes,scrollbars=yes,location=no,toolbar=no";
param += ",height=" + screen.height + ",width=" + screen.width;
if(typeof(window.screenX) != 'undefined')
{
param += ",screenX = 0,screenY=0";
}else if(typeof(window.screenTop) != 'undefined' )
{
param += ",left = 0,top=0" ;
}
var newWindow = window.open(url + ((url.lastIndexOf("?") > - 1)?"&":"?") + "path=" + $('#filePath' + selectedFileRowNum).val(),'', param);
newWindow.focus( );
}else
{
alert(warning);
}
};
function cutDocuments(msgNoDocSelected)
{
repositionDocuments(msgNoDocSelected, urlCut, 'cut');
return false;
};
function copyDocuments(msgNoDocSelected)
{
repositionDocuments(msgNoDocSelected, urlCopy, 'copy');
return false;
};
function pasteDocuments(msgNoDocSelected)
{
if(numFiles)
{
var warningMsg = (action == 'copy'?warningCopyPaste:warningCutPaste);
if(window.confirm(warningMsg))
{
$("#loading")
.ajaxStart(function(){
$(this).show();
})
.ajaxComplete(function(){
$(this).hide();
});
var currentFolderPath = $('#formAction input[@name=currentFolderPath]').val();
//alert(urlPaste);
$('#body').load(urlPaste, {path: currentFolderPath}, function(){enableEditable();});
}
}else
{
alert(msgNoDocSelected);
}
return false;
};
/**
* selecte documents and fire an ajax call to delete them
*/
function repositionDocuments(msgNoDocSelected, formActionUrl, actionVal)
{
var selectedDoc = $('#fileList input[@type=checkbox][@checked]');
var hiddenSelectedDoc = document.getElementById('selectedDoc');
var selectedOptions;
var isSelected = false;
var currentPath = $('#formDelete input[@name=currentFolderPath]').val();
//remove all options
$(hiddenSelectedDoc).removeOption(/./);
$(selectedDoc).each(function(i){
$(hiddenSelectedDoc).addOption($(this).val(), $(this).val(), true);
isSelected = true;
});
if(!isSelected)
{
alert(msgNoDocSelected);
}
else
{
var formAction = document.formAction;
var actionElem = $('#action_value');
formAction.action = formActionUrl;
$(actionElem).val(actionVal);
$("#loading")
.ajaxStart(function(){
$(this).show();
})
.ajaxComplete(function(){
$(this).hide();
});
var options =
{
dataType: 'json',
error: function (data, status, e)
{
alert(e);
},
success: function(data)
{
if(data.error != '')
{
alert(data.error);
}else
{
numFiles = data.num;
//set change flags
var flag = (actionVal == 'copy'?'copyFlag':'cutFlag');
action = actionVal;
var count = -1;
var allStringNum = "";
var isSelected = false;
$('#fileList input[@type=checkbox]').each(function(i)
{
isSelected = false;
var rowNum = $(this).attr('id').substr(5, ($(this).attr('id').length - 5));
var flagElem = $('#flag'+ rowNum);
if(parseInt(rowNum) > count)
{//avoid looping back
for(var j = 0; j < hiddenSelectedDoc.length; j++)
{
if($(this).val() == hiddenSelectedDoc.options[j].value)
{
isSelected = true;
//remove this matched option
hiddenSelectedDoc.options[j] = null;
break;
}
}
if(isSelected)
{
$(flagElem).removeClass();
$(flagElem).addClass(flag);
}else
{
$(flagElem).removeClass();
$(flagElem).addClass('noFlag');
}
count = parseInt(rowNum);
}
}
);
}
}
};
$(formAction).ajaxSubmit(options);
}
return false;
};
function initAction()
{
$('#actionInfo').attr('href', 'http://www.phpletter.com/forum/index.php');
};
function closeWindow()
{
if(window.confirm(warningCloseWindow))
{
window.close();
}
return false;
};