blob: 7c272753128fe2af8d059b47ab4d2c3a6311e4f7 [file] [log] [blame]
/**
* Functions for the image listing, used by images.php only
* Authors: Wei Zhuo, Afru, Krzysztof Kotowicz, Raimund Meyer
* Version: Updated on 08-01-2005 by Afru
* Version: Updated on 04-07-2006 by Krzysztof Kotowicz
* Version: Updated on 17-11-2006 by Raimund Meyer
* Package: ExtendedFileManager (EFM 1.1.3)
* http://www.afrusoft.com/htmlarea
*/
function i18n(str) {
return Xinha._lc(str, 'ExtendedFileManager');
}
function changeDir(newDir)
{
showMessage('Loading');
var mode=window.top.document.getElementById('manager_mode').value;
var selection = window.top.document.getElementById('viewtype');
var viewtype = selection.options[selection.selectedIndex].value;
location.href = _backend_url + "__function=images&mode="+mode+"&dir="+newDir+"&viewtype="+viewtype;
document.cookie = "EFMStartDir" + mode + "="+newDir;
}
function newFolder(dir, newDir)
{
var mode=window.top.document.getElementById('manager_mode').value;
var selection = window.top.document.getElementById('viewtype');
var viewtype = selection.options[selection.selectedIndex].value;
location.href = _backend_url + "__function=images&mode="+mode+"&dir="+dir+"&newDir="+newDir+"&viewtype="+viewtype;
}
function renameFile(oldPath) {
// strip directory and extension
var oldName=oldPath.replace(/.*%2F/,'').replace(/\..*$/,'');
var rename = function (newName)
{
if(newName == '' || newName == null || newName == oldName)
{
alert(i18n('Cancelled rename.'));
return false;
}
var mode=window.top.document.getElementById('manager_mode').value;
var selection = window.top.document.getElementById('dirPath');
var dir = selection.options[selection.selectedIndex].value;
selection = window.top.document.getElementById('viewtype');
var viewtype = selection.options[selection.selectedIndex].value;
location.href = _backend_url + "__function=images&mode="+mode+"&dir="+dir+"&rename="+oldPath+"&renameTo="+newName+"&viewtype="+viewtype;
}
// IE7 has crippled the prompt()
if ( Xinha.ie_version > 6 )
{
popupPrompt(i18n("Please enter new name for this file..."), oldName, rename, i18n("Rename"));
}
else
{
var newName = prompt(i18n('Please enter new name for this file...'), oldName);
rename(newName);
}
}
function renameDir(oldName)
{
// strip directory and extension
function rename(newName)
{
if(newName == '' || newName == null || newName == oldName)
{
alert(i18n('Cancelled rename.'));
return false;
}
var mode=window.top.document.getElementById('manager_mode').value;
var selection = window.top.document.getElementById('dirPath');
var dir = selection.options[selection.selectedIndex].value;
selection = window.top.document.getElementById('viewtype');
var viewtype = selection.options[selection.selectedIndex].value;
location.href = _backend_url + "__function=images&mode="+mode+"&dir="+dir+"&rename="+oldName+"&renameTo="+newName+"&viewtype="+viewtype;
}
// IE7 has crippled the prompt()
if ( Xinha.ie_version > 6 )
{
popupPrompt(i18n('Please enter new name for this folder...'), oldName, rename, i18n("Rename"));
}
else
{
var newName = prompt(i18n('Please enter new name for this folder...'), oldName);
rename(newName);
}
}
function copyFile(file,action)
{
var selection = window.top.document.getElementById('dirPath');
var dir = selection.options[selection.selectedIndex].value;
window.top.pasteButton({'dir':dir,'file':file,'action':action+'File'});
}
function copyDir(dirToCopy,action)
{
var selection = window.top.document.getElementById('dirPath');
var dir = selection.options[selection.selectedIndex].value;
window.top.pasteButton({'dir':dir,'file':dirToCopy,'action':action+'Dir'});
}
function paste(action)
{
var mode=window.top.document.getElementById('manager_mode').value;
var selection = window.top.document.getElementById('dirPath');
var dir = selection.options[selection.selectedIndex].value;
selection = window.top.document.getElementById('viewtype');
var viewtype = selection.options[selection.selectedIndex].value;
location.href = _backend_url + "__function=images&mode="+mode+"&dir="+dir+"&paste="+action.action+"&srcdir="+action.dir+"&file="+action.file+"&viewtype="+viewtype;
}
//update the dir list in the parent window.
function updateDir(newDir)
{
var mode = window.top.document.getElementById('manager_mode').value;
document.cookie = "EFMStartDir" + mode + "="+newDir;
var selection = window.top.document.getElementById('dirPath');
if(selection)
{
for(var i = 0; i < selection.length; i++)
{
var thisDir = selection.options[i].text;
if(thisDir == newDir)
{
selection.selectedIndex = i;
showMessage('Loading');
break;
}
}
}
}
function emptyProperties()
{
toggleImageProperties(false);
var topDoc = window.top.document;
topDoc.getElementById('f_url').value = '';
topDoc.getElementById('f_alt').value = '';
topDoc.getElementById('f_title').value = '';
topDoc.getElementById('f_width').value = '';
topDoc.getElementById('f_margin').value = '';
topDoc.getElementById('f_height').value = '';
topDoc.getElementById('f_padding').value = '';
topDoc.getElementById('f_border').value = '';
topDoc.getElementById('f_borderColor').value = '';
topDoc.getElementById('f_backgroundColor').value = '';
}
function toggleImageProperties(val)
{
var topDoc = window.top.document;
if(val==true)
{
topDoc.getElementById('f_width').value = '';
topDoc.getElementById('f_margin').value = '';
topDoc.getElementById('f_height').value = '';
topDoc.getElementById('f_padding').value = '';
topDoc.getElementById('f_border').value = '';
topDoc.getElementById('f_borderColor').value = '';
topDoc.getElementById('f_backgroundColor').value = '';
}
topDoc.getElementById('f_width').disabled = val;
topDoc.getElementById('f_margin').disabled = val;
topDoc.getElementById('f_height').disabled = val;
topDoc.getElementById('f_padding').disabled = val;
topDoc.getElementById('f_align').disabled = val;
topDoc.getElementById('f_border').disabled = val;
topDoc.getElementById('f_borderColor').value = '';
topDoc.getElementById('f_backgroundColor').value = '';
topDoc.getElementById('constrain_prop').disabled = val;
}
function selectImage(filename, alt, width, height)
{
var topDoc = window.top.document;
if(topDoc.getElementById('manager_mode').value=="image")
{
var obj = topDoc.getElementById('f_url'); obj.value = filename;
obj = topDoc.getElementById('f_alt'); obj.value = alt;
obj = topDoc.getElementById('f_title'); obj.value = alt;
if(width==0 && height==0) toggleImageProperties(true);
else
{
toggleImageProperties(false);
var obj = topDoc.getElementById('f_width'); obj.value = width;
var obj = topDoc.getElementById('f_height'); obj.value = height;
var obj = topDoc.getElementById('orginal_width'); obj.value = width;
var obj = topDoc.getElementById('orginal_height'); obj.value = height;
update_selected();
}
}
else if (topDoc.getElementById('manager_mode').value=="link")
{
var obj = topDoc.getElementById('f_href'); obj.value = filename;
var obj = topDoc.getElementById('f_title'); obj.value = alt;
}
return false;
}
var _current_selected = null;
function update_selected()
{
var topDoc = window.top.document;
if(_current_selected)
{
_current_selected.className = _current_selected.className.replace(/(^| )active( |$)/, '$1$2');
_current_selected = null;
}
// Grab the current file, and highlight it if we have it
var c_file = topDoc.getElementById('f_url').value;
var selection = topDoc.getElementById('dirPath');
var currentDir = selection.options[selection.selectedIndex].text;
var dRe = new RegExp('^(' + currentDir.replace(/([\/\^$*+?.()|{}[\]])/g, '\\$1') + ')([^/]*)$');
if(dRe.test(c_file))
{
var holder = document.getElementById('holder_' + asc2hex(RegExp.$2));
if(holder)
{
_current_selected = holder;
holder.className += ' active';
}
}
showPreview(c_file);
}
function asc2hex(str)
{
var hexstr = '';
for(var i = 0; i < str.length; i++)
{
var hex = (str.charCodeAt(i)).toString(16);
if(hex.length == 1) hex = '0' + hex;
hexstr += hex;
}
return hexstr;
}
function showMessage(newMessage)
{
var topDoc = window.top.document;
var message = topDoc.getElementById('message');
var messages = topDoc.getElementById('messages');
if(message && messages)
{
if(message.firstChild)
message.removeChild(message.firstChild);
message.appendChild(topDoc.createTextNode(i18n(newMessage)));
messages.style.display = "block";
}
}
function updateDiskMesg(newMessage)
{
var topDoc = window.top.document;
var diskmesg = topDoc.getElementById('diskmesg');
if(diskmesg)
{
if(diskmesg.firstChild)
diskmesg.removeChild(diskmesg.firstChild);
diskmesg.appendChild(topDoc.createTextNode(newMessage));
}
}
function addEvent(obj, evType, fn)
{
if (obj.addEventListener) { obj.addEventListener(evType, fn, true); return true; }
else if (obj.attachEvent) { var r = obj.attachEvent("on"+evType, fn); return r; }
else { return false; }
}
function confirmDeleteFile(file)
{
if(confirm(i18n('Delete file "$file=' + file +'$"?')))
return true;
return false;
}
function confirmDeleteDir(dir, count)
{
/* if(count > 0)
{
alert(i18n("Folder is not empty. Please delete all Files and Subfolders inside."));
return false;
}*/
if(confirm(i18n('Delete folder "$dir=' + dir +'$"?')))
return true;
return false;
}
function showPreview(f_url)
{
window.parent.document.getElementById('f_preview').src =
f_url ? window.parent._backend_url + '__function=thumbs&img=' + f_url :window.parent.opener.Xinha.getPluginDir('ExtendedFileManager')+'/img/1x1_transparent.gif';
}
addEvent(window, 'load', init);