Weazel.Tools = {}; Weazel.Tools.JSON = { merge: function(object1, object2) { var result = {}; for (var z in object1) { result[z] = object1[z]; } for (var z in object2) { result[z] = object2[z]; } return result; }, mergeInto: function(base, object) { for (var z in object) { base[z] = object[z]; } return base; } }; Weazel.Tools.Dummy = { func: function() { } }; Weazel.Tools.Dispatcher = { forwardTo: function(url) { document.location.href = url; } }; Weazel.Tools.Check = { isNull:function(value) { return value == null || (typeof value == 'string' && (value.length == 0 || value.toLowerCase() == 'null')); }, isAjaxRunning: function() { return typeof Ajax != 'undefined' && typeof Ajax.Functions != 'undefined'; } }; Weazel.Tools.XML = { loadFromString: function(s) { if(Prototype.Browser.IE) { var xml = new ActiveXObject('Microsoft.XMLDOM'); xml.loadXML(s); return xml; } else { var parser = new DOMParser(); return parser.parseFromString(s, 'text/xml'); } } }; Weazel.Tools.DOM = { textContent: function(element) { var text; if(Prototype.Browser.IE) { text = !Weazel.Tools.Check.isNull(element.text) ? element.text : element.innerText; } else { return element.textContent; } return !Weazel.Tools.Check.isNull(text) ? text : ''; }, recursiveWidth: function(element, checkElement) { if(checkElement && element.getWidth() > 0) { return element.getWidth(); } else { var w = 0; if(element.childElements) { element.childElements().each(function(child) { w += Tools.DOM.recursiveWidth(child, true); }); } return w; } }, findAttributeRecursive: function(element, attributeName) { if(!Check.isNull(element.getAttribute(attributeName))) { return element.getAttribute(attributeName); } else if(!Check.isNull(element.parentNode)) { return Tools.DOM.findAttributeRecursive(element.parentNode, attributeName); } else { return ''; } } }; Weazel.Tools.JavaScript = { include: function(url) { if(Prototype.Browser.Gecko) { Element.insert($$('head')[0], { bottom: new Element('script', { type: 'text/javascript', defer: true, src: url }) }); } else { document.write(''); } } }; Weazel.Tools.Cookie = { setCookie: function(name, value, parameters) { var cookie = name + "=" + escape(value); if(!Weazel.Tools.Check.isNull(parameters.expires)) { cookie += "; expires=" + parameters.expires.toGMTString(); } else if(!Weazel.Tools.Check.isNull(parameters.expiresDays)) { var now = new Date(); now.setTime(now.getTime() + (parameters.expiresDays * 24 * 60 * 60 * 1000)); cookie += "; expires=" + now.toGMTString(); } if(!Weazel.Tools.Check.isNull(parameters.path)) { cookie += "; path=" + parameters.path; } if(!Weazel.Tools.Check.isNull(parameters.domain)) { cookie += "; domain=" + parameters.domain; } if(!Weazel.Tools.Check.isNull(parameters.secure)) { cookie += "; secure"; } document.cookie = cookie; }, getCookie: function(name) { var dc = document.cookie; var prefix = name + "="; var begin = dc.indexOf("; " + prefix); if (begin == -1) { begin = dc.indexOf(prefix); if (begin != 0) { return null; } } else { begin += 2; } var end = document.cookie.indexOf(";", begin); if (end == -1) { end = dc.length; } return unescape(dc.substring(begin + prefix.length, end)); } };