blob: 302dbe8fa209024bb142797faf702e9f8aabd320 [file] [log] [blame]
/**
* Functions for the image listing, used by images.php only
* @author $Author:gogo $
* @version $Id:images.js 927 2008-01-08 03:40:02Z gogo $
* @package ImageManager
*/
function i18n(str) {
return Xinha._lc(str, 'ImageManager');
}
function changeDir(newDir)
{
showMessage('Loading');
// backend_url is defined in the calling page. For now we
// assume it has a trailing &
location.href = _backend_url + "__function=images&dir="+encodeURIComponent(newDir);
}
function newFolder(dir, newDir)
{
location.href = _backend_url + "__function=images&dir="+encodeURIComponent(dir)+"&newDir="+encodeURIComponent(newDir);
}
//update the dir list in the parent window.
function updateDir(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 selectImage(filename, alt, width, height)
{
var topDoc = window.top.document;
var obj = topDoc.getElementById('f_url'); obj.value = filename;
var obj = topDoc.getElementById('f_width'); obj.value = width;
var obj = topDoc.getElementById('f_width'); obj.value = width;
var obj = topDoc.getElementById('f_height'); obj.value = height;
var obj = topDoc.getElementById('f_alt'); obj.value = alt;
var obj = topDoc.getElementById('orginal_width'); obj.value = width;
var obj = topDoc.getElementById('orginal_height'); obj.value = height;
// Set preview for the selected
topDoc.getElementById('f_preview').src = window.parent._backend_url + '__function=thumbs&img=' + encodeURIComponent(filename);
update_selected();
}
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';
}
}
}
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 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?")))
return true;
return false;
}
function confirmDeleteDir(dir, count)
{
if(count > 0)
{
alert(i18n("Please delete all files/folders inside the folder you wish to delete first."));
return;
}
if(confirm(i18n("Delete folder?")))
return true;
return false;
}
addEvent(window, 'load', init);
Xinha = window.parent.Xinha;