// $Id: drupal.js,v 1.22.2.1 2006/05/29 14:23:32 killes Exp $

/**
 * Only enable Javascript functionality if all required features are supported.
 */function isJsEnabled() { if (typeof document.jsEnabled == 'undefined') { document.jsEnabled = !( !document.getElementsByTagName || !document.createElement || !document.createTextNode || !document.documentElement || !document.getElementById);}
return document.jsEnabled;}
if (isJsEnabled()) { document.documentElement.className = 'js';}
if (typeof XMLHttpRequest == 'undefined') { XMLHttpRequest = function () { var msxmls = ['MSXML3', 'MSXML2', 'Microsoft']
for (var i=0; i < msxmls.length; i++) { try { return new ActiveXObject(msxmls[i]+'.XMLHTTP')
}
catch (e) { }
}
throw new Error("No XML component installed!");}
}
function HTTPGet(uri, callbackFunction, callbackParameter) { var xmlHttp = new XMLHttpRequest(); var bAsync = true; if (!callbackFunction) { bAsync = false;}
xmlHttp.open('GET', uri, bAsync); xmlHttp.send(null); if (bAsync) { if (callbackFunction) { xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4) { callbackFunction(xmlHttp.responseText, xmlHttp, callbackParameter);}
}
}
return xmlHttp;}
else { return xmlHttp.responseText;}
}
function HTTPPost(uri, callbackFunction, callbackParameter, object) { var xmlHttp = new XMLHttpRequest(); var bAsync = true; if (!callbackFunction) { bAsync = false;}
xmlHttp.open('POST', uri, bAsync); var toSend = ''; if (typeof object == 'object') { xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); for (var i in object) { toSend += (toSend ? '&' : '') + i + '=' + encodeURIComponent(object[i]);}
}
else { toSend = object;}
xmlHttp.send(toSend); if (bAsync) { if (callbackFunction) { xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4) { callbackFunction(xmlHttp.responseText, xmlHttp, callbackParameter);}
}
}
return xmlHttp;}
else { return xmlHttp.responseText;}
}
function redirectFormButton(uri, button, handler) { createIframe(); button.onmouseover = button.onfocus = function() { button.onclick = function() { var button = this; var action = button.form.action; var target = button.form.target; this.form.action = uri; this.form.target = 'redirect-target'; handler.onsubmit(); window.iframeHandler = function () { var iframe = $('redirect-target'); button.form.action = action; button.form.target = target; try { response = (iframe.contentWindow || iframe.contentDocument || iframe).document.body.innerHTML; response = response.replace(/[\f\n\r\t]/g, ' '); if (window.opera) { response = response.replace(/&quot;/g, '"');}
}
catch (e) { response = null;}
$('redirect-target').onload = null; $('redirect-target').src = 'about:blank'; response = parseJson(response); if (response.status == 0) { handler.onerror(response.data); return;}
handler.oncomplete(response.data);}
return true;}
}
button.onmouseout = button.onblur = function() { button.onclick = null;}
}
function addLoadEvent(func) { var oldOnload = window.onload; if (typeof window.onload != 'function') { window.onload = func;}
else { window.onload = function() { oldOnload(); func();}
}
}
function addSubmitEvent(form, func) { var oldSubmit = form.onsubmit; if (typeof oldSubmit != 'function') { form.onsubmit = func;}
else { form.onsubmit = function() { return oldSubmit() && func();}
}
}
function absolutePosition(el) { var sLeft = 0, sTop = 0; var isDiv = /^div$/i.test(el.tagName); if (isDiv && el.scrollLeft) { sLeft = el.scrollLeft;}
if (isDiv && el.scrollTop) { sTop = el.scrollTop;}
var r = { x: el.offsetLeft - sLeft, y: el.offsetTop - sTop }; if (el.offsetParent) { var tmp = absolutePosition(el.offsetParent); r.x += tmp.x; r.y += tmp.y;}
return r;}; function dimensions(el) { return { width: el.offsetWidth, height: el.offsetHeight };}
function hasClass(node, className) { if (node.className == className) { return true;}
var reg = new RegExp('(^| )'+ className +'($| )')
if (reg.test(node.className)) { return true;}
return false;}
function addClass(node, className) { if (hasClass(node, className)) { return false;}
node.className += ' '+ className; return true;}
function removeClass(node, className) { if (!hasClass(node, className)) { return false;}
node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className); return true;}
function toggleClass(node, className) { if (!removeClass(node, className) && !addClass(node, className)) { return false;}
return true;}
function eregReplace(search, replace, subject) { return subject.replace(new RegExp(search,'g'), replace);}
function removeNode(node) { if (typeof node == 'string') { node = $(node);}
if (node && node.parentNode) { return node.parentNode.removeChild(node);}
else { return false;}
}
function stopEvent(event) { if (event.preventDefault) { event.preventDefault(); event.stopPropagation();}
else { event.returnValue = false; event.cancelBubble = true;}
}
function parseJson(data) { if (data.substring(0,1) != '{') { return { status: 0, data: data.length ? data : 'Unspecified error' };}
return eval('(' + data + ');');}
function createIframe() { deleteIframe(); window.iframeHandler = function () {}; var div = document.createElement('div'); div.id = 'redirect-holder'; div.innerHTML = '<iframe name="redirect-target" id="redirect-target" class="redirect" onload="window.iframeHandler();"></iframe>'; var iframe = div.firstChild; with (iframe) { name = 'redirect-target'; setAttribute('name', 'redirect-target'); id = 'redirect-target';}
with (iframe.style) { position = 'absolute'; height = '1px'; width = '1px'; visibility = 'hidden';}
document.body.appendChild(div);}
function deleteIframe() { var holder = $('redirect-holder'); if (holder != null) { removeNode(holder);}
}
function $(id) { return document.getElementById(id);}
