2
0
mirror of https://github.com/ACSPRI/queXS synced 2024-04-02 12:12:16 +00:00
Files
CATI_Tool/include/limesurvey/admin/scripts/addremove.js
2008-10-15 22:36:05 +00:00

144 lines
3.9 KiB
JavaScript

<script type='text/javascript'>
<!--
function DoAdd()
{
if (document.getElementById("available_languages").selectedIndex>-1)
{
var strText = document.getElementById("available_languages").options[document.getElementById("available_languages").selectedIndex].text;
var strId = document.getElementById("available_languages").options[document.getElementById("available_languages").selectedIndex].value;
AddItem(document.getElementById("additional_languages"), strText, strId);
RemoveItem(document.getElementById("available_languages"), document.getElementById("available_languages").selectedIndex);
sortSelect(document.getElementById("additional_languages"));
UpdateLanguageIDs();
}
}
function DoRemove(minItems,strmsg)
{
var strText = document.getElementById("additional_languages").options[document.getElementById("additional_languages").selectedIndex].text;
var strId = document.getElementById("additional_languages").options[document.getElementById("additional_languages").selectedIndex].value;
if (document.getElementById("additional_languages").options.length>minItems)
{
AddItem(document.getElementById("available_languages"), strText, strId);
RemoveItem(document.getElementById("additional_languages"), document.getElementById("additional_languages").selectedIndex);
sortSelect(document.getElementById("available_languages"));
UpdateLanguageIDs();
}
else
if (strmsg!=''){alert(strmsg);}
}
function AddItem(objListBox, strText, strId)
{
var newOpt;
newOpt = document.createElement("OPTION");
newOpt = new Option(strText,strId);
newOpt.id = strId;
objListBox.options[objListBox.length]=newOpt;
}
function RemoveItem(objListBox, strId)
{
if (strId > -1)
objListBox.options[strId]=null;
}
function GetItemIndex(objListBox, strId)
{
for (var i = 0; i < objListBox.children.length; i++)
{
var strCurrentValueId = objListBox.children[i].id;
if (strId == strCurrentValueId)
{
return i;
}
}
return -1;
}
function UpdateLanguageIDs(mylangs,confirmtxt)
{
document.getElementById("languageids").value = '';
var lbBox = document.getElementById("additional_languages");
for (var i = 0; i < lbBox.options.length; i++)
{
document.getElementById("languageids").value = document.getElementById("languageids").value + lbBox.options[i].value+ ' ';
}
if (mylangs)
{
if (checklangs(mylangs))
{
return true;
} else
{
return confirm(confirmtxt);
}
}
}
function compareText (option1, option2) {
return option1.text < option2.text ? -1 :
option1.text > option2.text ? 1 : 0;
}
function compareValue (option1, option2) {
return option1.value < option2.value ? -1 :
option1.value > option2.value ? 1 : 0;
}
function compareTextAsFloat (option1, option2) {
var value1 = parseFloat(option1.text);
var value2 = parseFloat(option2.text);
return value1 < value2 ? -1 :
value1 > value2 ? 1 : 0;
}
function compareValueAsFloat (option1, option2) {
var value1 = parseFloat(option1.value);
var value2 = parseFloat(option2.value);
return value1 < value2 ? -1 :
value1 > value2 ? 1 : 0;
}
function sortSelect (select, compareFunction) {
if (!compareFunction)
compareFunction = compareText;
var options = new Array (select.options.length);
for (var i = 0; i < options.length; i++)
options[i] =
new Option (
select.options[i].text,
select.options[i].value,
select.options[i].defaultSelected,
select.options[i].selected
);
options.sort(compareFunction);
select.options.length = 0;
for (var i = 0; i < options.length; i++)
select.options[i] = options[i];
}
function checklangs(mylangs)
{
selObject=document.getElementById("additional_languages");
var found;
for (x = 0; x < mylangs.length; x++)
{
found = 0;
for (i=0;i<selObject.options.length;i++)
{
if(selObject.options[i].value == mylangs[x])
{
found = 1;
break;
}
}
if (found == 0) { return false; }
}
return true;
}
//-->
</script>