1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
/* OpenDb - Open Media Lending Database
Copyright (C) 2001,2002 by Jason Pell
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
search.php functions
*/
// Any characters mentioned in escapeChars
// will be escaped by specifying the escapeChar
function escapeChars(inval, escapeChars)
{
var retval='';
for (var i=0; i<inval.length; i++)
{
if(escapeChars.indexOf(inval.charAt(i))!=-1)
retval = retval + '\\' + inval.charAt(i);
else
retval = retval + inval.charAt(i);
}
return retval;
}
// Defines the Attribute javascript object.
function LookupAttribute(type, value, text)
{
this.type = type;
this.value = value;
this.text = text;
}
// Defines the Item Type javascript object.
function ItemType(type, category_attribute_type)
{
this.type = type;
this.category_attribute_type = category_attribute_type;
}
//
// This function will populate the selectObject with the
// records from the array that match the type.
// doUniqueOnly parameter if equal to true will populate the list
// with unique elements only. If false, the list will be empty
// except for default.
//
function populateList(type, selectObject, LookupArray, doUniqueIfTypeEmpty, emptyOptionValue, doEscapeValue)
{
// This works because we keep setting [0] to null,
// and the positions of the options keep adjusting.
if(selectObject.options.length)
{
var length = selectObject.options.length;
for(var i=0; i<length; i++)
selectObject.options[0] = null;
}
var j=0;
// Now repopulate.
if(emptyOptionValue!=null)
{
selectObject.options[0] = new Option(emptyOptionValue, "");
j++;
}
if(type.length>0 || doUniqueIfTypeEmpty)
{
for (var i=0; i<LookupArray.length; i++)
{
if( (type.length>0 && LookupArray[i].type == type) ||
(type.length==0 && doUniqueIfTypeEmpty && indexOfLookupValue(selectObject.options, LookupArray[i].value)==-1))
{
// Escape value if requested.
if(doEscapeValue){
selectObject.options[j] = new Option(LookupArray[i].text, escapeChars(LookupArray[i].value, '_'));
}else{
selectObject.options[j] = new Option(LookupArray[i].text, LookupArray[i].value);
}
j++;
}
}
}
// Select ALL option.
selectObject.options[0].selected = true;
// execute onchange event if selectObject
if(selectObject.onchange)
{
selectObject.onchange();
}
}
function get_category_type(s_item_type, ItemTypes)
{
for (var i=0; i<ItemTypes.length; i++)
{
if(ItemTypes[i].type == s_item_type)
return ItemTypes[i].category_attribute_type;
}
return "";
}
//
// Will return index of value if found, otherwise -1
//
function indexOfLookupValue(SelectOptions, value)
{
for (var i=0; i<SelectOptions.length; i++)
{
if(SelectOptions[i].value == value)
return i;
}
return -1;
}
|