<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml"><head>
<title>no title</title>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<meta http-equiv="imagetoolbar" content="false" />
<base target="_blank" />
<script>
// array med tilgængelige billeder og tilhørende metainfo
var available_images_id = Array(4988,3445,007);
// skal self. populeres dynamisk med php
var available_images_meta = Array();
available_images_meta[4988] = Array('en hvid hund','hund.gif');
available_images_meta[3445] = Array('et får med briller','får.gif');
available_images_meta[7] = Array('portræt af min mor','minmor.jpg');
function storeCaret (textEl)
{
if (textEl.createTextRange)
textEl.caretPos = document.selection.createRange().duplicate();
}
function insertAtCaret (textEl, text)
{
if (textEl.createTextRange && textEl.caretPos) {
var caretPos = textEl.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
} else
textEl.value = text;
}
function str_split(str,allow)
{
var matches = Array();
var currentString = null;
var i = 0;
while (i < str.length) {
var ch = str.charAt(i);
if (ch == '[') {
currentString = "";
} else if (ch == ']') {
if (currentString != null) {
matches[matches.length] = currentString;
currentString = null;
}
} else if (allow.indexOf(ch) > -1) {
if (currentString != null) {
currentString = currentString + str.charAt(i);
}
} else {
currentString = null;
}
i++;
}
return matches;
}
function refresh_used()
{
var txt = document.getElementById('thetext').value;
var opt_used = document.getElementById('theimages');
while (opt_used.options.length > 0)
opt_used.options[opt_used.options.length-1] = null;
var splitString = str_split(txt,"1234567890");
for (i=0;i<splitString.length;i++)
opt_used.options[opt_used.options.length] = new Option(splitString[i],splitString[i]);;
}
function insert_from_avail()
{
var ar_txt = document.getElementById('thetext');
var opt_avail = document.getElementById('availimages');
var str = "["+opt_avail.options[opt_avail.selectedIndex].value+"]";
insertAtCaret(ar_txt, str);
refresh_used();
}
function refresh_avail_meta()
{
var opt_avail = document.getElementById('availimages');
var avail_meta = document.getElementById('availimages_meta');
avail_meta.innerHTML = available_images_meta[opt_avail.options[opt_avail.selectedIndex].value][1];
}
function init()
{
var opt_avail = document.getElementById('availimages');
while (opt_avail.options.length > 0)
opt_avail.options[opt_avail.options.length-1] = null;
for (i=0;i<available_images_id.length;i++)
opt_avail.options[opt_avail.options.length] = new Option(available_images_meta[available_images_id[i]][0],available_images_id[i]);;
}
</script>
</head>
<body onload="init()">
<table>
<tr><td valign="top">
<b>available images</b><br>
<select id="availimages" size="5" style="width:150px;" onchange="refresh_avail_meta()">
</select>
<br>
<div id="availimages_meta">...</div>
<br>
<button onclick="insert_from_avail()">insert</button>
</td><td valign="top">
<b>article</b><br>
<textarea id="thetext" cols="80" rows="10" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);refresh_used();" onchange="refresh_used();"></textarea>
</td><td valign="top">
<b>used images</b><br>
<select id="theimages" size="5" style="width:150px;">
</select>
</td></tr></table>
</body>
</html>