" +
"" +
"" +
"" +
"" +
"" +
" " +
" | " +
"" +
" " +
" | ";
//HTML of all link types under a given keyword (fscategories[cat].keywords[k])
function assembleLTListHTML(cat, k) {
var ltlistHTML = "";
with (fscategories[cat].keywords[k]) {
for (var l in linktypes) {
linktypes[l].initializeDisplayProperties(cat,k,l);
var statusText = name + " - " + linktypes[l].name;
if (linktypes[l].providers.length > 0)
statusText += " (provided by " + linktypes[l].providers[0].name + ")";
ltlistHTML += "";
}
}
return ltlistHTML;
}
function assembleProviderListHTML(cat, k, l) {
var provlistHTML = "";
var statusText;
with (fscategories[cat].keywords[k].linktypes[l]) {
for (var p in providers) {
providers[p].initializeDisplayProperties(cat,k,l,p);
statusText = fscategories[cat].keywords[k].name + " - " + fscategories[cat].keywords[k].linktypes[l].name + " (provided by " + providers[p].name + ")";
provlistHTML += "";
}
}
return provlistHTML;
}
//==============================================================
// Helper Functions
//===============================================================
//determine if browser is IE4
var agt=navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var using_ie4 = ((is_major == 4) && (agt.indexOf("msie 5.")==-1));
//txt must be escaped
function setStatusText(txt) {
//document.location="flyswat:setStatus(" + txt + ")";
}
function clearStatusText() {
//document.location="flyswat:setStatus()";
}
function hoverCatExpandImg(img) {
if (img.src == DownNormal.src) {
img.src = DownHover.src;
}
else if (img.src == UpNormal.src) {
img.src = UpHover.src;
}
}
function unhoverCatExpandImg(img) {
if (img.src == DownHover.src) {
img.src = DownNormal.src;
}
else if (img.src == UpHover.src) {
img.src = UpNormal.src;
}
}
function hoverLTExpandImg(img) {
if (img.src == PlusNormal.src) {
img.src = PlusHover.src;
}
else if (img.src == MinusNormal.src) {
img.src = MinusHover.src;
}
}
function unhoverLTExpandImg(img) {
if (img.src == PlusHover.src) {
img.src = PlusNormal.src;
}
else if (img.src == MinusHover.src) {
img.src = MinusNormal.src;
}
}
function assembleFSURL(cat, k, l, p)
{
with (fscategories[cat].keywords[k]) {
var catCode = categoryCode;
var ltType = linktypes[l].type;
var keyCode = code;
var keyMT = mt;
var provTag = "";
var bpID = fscategories[cat].bpID;
var bpRev = fscategories[cat].bpRev;
if (arguments.length == 4)
provTag = linktypes[l].providers[p].tag;
}
var fsurl = fslinksenviro.redURL + "?lt=" + safeEscape(ltType) +
"&cc=" + safeEscape(catCode) + "&kc=" + safeEscape(keyCode) +
"&pp=" + safeEscape(provTag) + "&r=" + safeEscape(fslinksenviro.requestID) +
"&m=" + safeEscape(keyMT) + "&sn=" + safeEscape(fssystemenviro.serialNum) +
"&dt=" + safeEscape(fslinksenviro.distTag) + "&bi=" + safeEscape(bpID) +
"&br=" + safeEscape(bpRev) + "&bp=";
if (fscategories[cat].boosterPackCategory) {
fsurl += "1";
}
else {
fsurl += "0";
}
return fsurl;
}
//------------------------------------------------------------
// function: safeEscape
// author: Leo
// comments: escape(str, 1) doesn't work!!
// And I can't get regex's to work
//------------------------------------------------------------
function safeEscape(str) {
escaped_str = escape(str);
if (escaped_str.indexOf("+") > -1) {
var arr = escaped_str.split("+");
escaped_str = arr.join("%2B");
}
return escaped_str;
}
//------------------------------------------------------------
// function: safeEscape2
// author: Mark
// comments: Had to implement because Javascript problem
// with variable names having '%' char in them
// so replacing with '$'.
//------------------------------------------------------------
function safeEscape2(str)
{
var iChar;
var iStrLen = str.length;
var newStr = "";
for (i = 0; i < iStrLen; i++)
{
iChar = str.charCodeAt(i);
if ((iChar < 48) || ((iChar > 57) && (iChar < 65)) || ((iChar > 90) && (iChar < 97)) || (iChar > 122))
{
newStr += "$" + iChar;
}
else
newStr += str.charAt(i);
}
return newStr;
}
//------------------------------------------------------------------
// Creates a global list of ID's
// A new ID is added for each new category, keyword, linktype,
// and provider, as well as at any other time.
//------------------------------------------------------------------
var globalIDList = new Array();
function setGlobalID(str) {
if (isMemberOf(str, globalIDList)) {
var i=1;
while (isMemberOf(str + i, globalIDList))
i += 1;
str = str + i;
}
globalIDList[globalIDList.length] = str;
return str;
}
//------------------------------------------------
// returns true if "element" is a member of
// "array", otherwise returns false
//------------------------------------------------
function isMemberOf(element, array)
{
for (var i=0; i < array.length; i++)
{
if (array[i] == element)
return true;
}
return false;
}
//==============================================================
// Show/Hide HTML Functions
//===============================================================
var showingProviderList = "";
function showhideProviderList(cat, k, l)
{
var lt = fscategories[cat].keywords[k].linktypes[l];
//closing an open provider list
if (lt.providerListShowing) {
lt.hideProviderList();
showingProviderList = "";
}
//opening a provider list
else {
//close the previously opened list
if (showingProviderList)
showingProviderList.hideProviderList();
lt.showProviderList(cat, k, l);
showingProviderList = lt;
}
if (FS_WINDOW_TYPE == "POPUP")
checkScrolling();
}
var showingLTList = "";
function showhideLTList(cat, k)
{
var keyword = fscategories[cat].keywords[k];
//closing an open lt list
if (keyword.ltListShowing) {
keyword.hideLTList();
if (FS_WINDOW_TYPE != "POPUP") {
showingLTList = "";
}
}
//opening a provider list
else {
keyword.showLTList(cat, k);
if (FS_WINDOW_TYPE != "POPUP") {
if (showingLTList)
showingLTList.hideLTList();
showingLTList = keyword;
}
}
if (FS_WINDOW_TYPE == "POPUP")
checkScrolling();
}
var showingKeyList = "";
function showhideKeyList(cat)
{
var category = fscategories[cat];
if (category.keyListShowing) {
category.hideKeyList();
showingKeyList = "";
}
else {
//close the previously opened list
if (showingKeyList)
showingKeyList.hideKeyList();
category.showKeyList(cat);
showingKeyList = category;
}
if (FS_WINDOW_TYPE == "POPUP")
checkScrolling();
}
//-----------------------------------------------------------------
// function: PutCatOnBottom
// author: Mark
// comments: Will take the fscategories array and put the
// category with "catcode" at the end of the array.
//-----------------------------------------------------------------
function PutCatOnBottom(catcode)
{
bSearchesNotFound = 1;
var cat = 0;
while ((cat < fscategories.length) && (bSearchesNotFound)) {
var catCode = fscategories[cat].keywords[0].categoryCode;
var iSearchesIndex = 0;
if (catCode == catcode) {
var searchCat = fscategories[cat];
bSearchesNotFound = 0;
iSearchesIndex = cat;
iSearchesIndex++;
for (var i = iSearchesIndex; i < fscategories.length; i++)
{
fscategories[i - 1] = fscategories[i];
}
fscategories[fscategories.length - 1] = searchCat;
}
cat++;
}
}
Flyswat Control Band |
|