Function.prototype.bind = function() { var __method = this, args = [].slice.call(arguments, 0), object = args.shift(); return function() { return __method.apply(object, args.concat([].slice.call(arguments, 0))); }; }; Object.extend = function(dest, source, allowOverwrite) { for (var prop in source) { if (source.hasOwnProperty(prop) && (allowOverwrite || !dest.hasOwnProperty(prop))) { dest[prop] = source[prop]; } } return dest; }; Object.extend(Array.prototype, { indexOf: function(search, from) { var i = from || 0; if (i < 0) { i += this.length; if (i < 0) i = 0; } for (var l = this.length; i < l; i++) { if (this[i] === search) return i; } return -1; }, lastIndexOf: function(search, from) { var i = this.length - 1; if (from != undefined) { if (from < 0) i += from + 1; else if (from < i) i = from; } for (; i >= 0; i--) { if (this[i] === search) return i; } return -1; }, forEach: function(func, obj) { for (var i = 0, l = this.length; i < l; i++) { if (i in this) func.call(obj, this[i], i, this); } }, map: function(func, obj) { var res = []; for (var i = 0, l = this.length; i < l; i++) { if (i in this) res[i] = func.call(obj, this[i], i, this); } return res; }, filter: function(func, obj) { var res = [], val; for (var i = 0, l = this.length; i < l; i++) { if (i in this) { val = this[i]; if (func.call(obj, val, i, this)) res.push(val); } } return res; }, some: function(func, obj) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && func.call(obj, this[i], i, this)) return true; } return false; }, every: function(func, obj) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && !func.call(obj, this[i], i, this)) return false; } return true; } }); ['join', 'reverse', 'sort', 'push', 'pop', 'shift', 'unshift', 'splice', 'concat', 'slice', 'indexOf', 'lastIndexOf', 'forEach', 'map', 'filter', 'some', 'every'].forEach( function(func) { if (!(func in Array) && func in Array.prototype) { Array[func] = function(obj) { return this.prototype[func].apply( obj, Array.prototype.slice.call(arguments, 1) ); } } } ); function addEvent(element, type, handler) { if (element.addEventListener) element.addEventListener(type, handler, false); else { if (!handler.$$guid) handler.$$guid = addEvent.guid++; if (!element.events) element.events = {}; var handlers = element.events[type]; if (!handlers) { handlers = element.events[type] = {}; if (element['on' + type]) handlers[0] = element['on' + type]; element['on' + type] = handleEvent; } handlers[handler.$$guid] = handler; } } addEvent.guid = 1; function removeEvent(element, type, handler) { if (element.removeEventListener) element.removeEventListener(type, handler, false); else if (element.events && element.events[type] && handler.$$guid) delete element.events[type][handler.$$guid]; } function handleEvent(event) { event = event || fixEvent(window.event); var returnValue = true; var handlers = this.events[event.type]; for (var i in handlers) { if (!Object.prototype[i]) { this.$$handler = handlers[i]; if (this.$$handler(event) === false) returnValue = false; } } if (this.$$handler) this.$$handler = null; return returnValue; } function fixEvent(event) { event.preventDefault = fixEvent.preventDefault; event.stopPropagation = fixEvent.stopPropagation; return event; } fixEvent.preventDefault = function() { this.returnValue = false; }; fixEvent.stopPropagation = function() { this.cancelBubble = true; }; if (!window.addEventListener) { document.onreadystatechange = function() { if (window.onload && window.onload != handleEvent) { addEvent(window, 'load', window.onload); window.onload = handleEvent; } } } function cancelEvent(e) { if (!e) e = window.event; if (e.stopPropagation) e.stopPropagation(); if (e.preventDefault) e.preventDefault(); e.cancelBubble = true; e.cancel = true; e.returnValue = false; return false; } function number_format (number, decimals, dec_point, thousands_sep) { var n = number, prec = decimals; var toFixedFix = function (n,prec) { var k = Math.pow(10,prec); return (Math.round(n*k)/k).toString(); }; n = !isFinite(+n) ? 0 : +n; prec = !isFinite(+prec) ? 0 : Math.abs(prec); var sep = (typeof thousands_sep === 'undefined') ? '.' : thousands_sep; var dec = (typeof dec_point === 'undefined') ? ',' : dec_point; var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); var abs = toFixedFix(Math.abs(n), prec); var _, i; if (abs >= 1000) { _ = abs.split(/\D/); i = _[0].length % 3 || 3; _[0] = s.slice(0,i + (n < 0)) + _[0].slice(i).replace(/(\d{3})/g, sep+'$1'); s = _.join(dec); } else { s = s.replace('.', dec); } var decPos = s.indexOf(dec); if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) { s += new Array(prec-(s.length-decPos-1)).join(0)+'0'; } else if (prec >= 1 && decPos === -1) { s += dec+new Array(prec).join(0)+'0'; } return s; } function errorHandler(error) { var div = createElement('div', { innerHTML : error }, { border : '1px solid #FF0000', backgroundColor : '#FFEEEE', padding : '10px' } ); if (body = document.getElementsByTagName('body')[0]) body.insertBefore(div, body.firstChild); else document.write(div.innerHTML); } function getCookie(name) { var cookie = document.cookie.split('; '), i = cookie.length, value; while (i--) { value = cookie[i].split('='); if ('test_' + name == value[0]) return unescape(value[1]); } return null; } function setCookie(name, value, expire) { var date = new Date(); if (expire) date.setTime(date.getTime() + expire * 1000); else date.setFullYear(date.getFullYear() + 1); document.cookie = cookie_name + '_' + name + '=' + escape(value) + '; expires=' + date.toGMTString() + '; path=/' + (cookie_host ? '; domain=' + cookie_host : ''); } function clearCookie(name) { setCookie(name, '', -1); } function createElement(tag, attribs, styles, parent, before) { var el = document.createElement(tag); if (attribs) setAttribs(el, attribs); if (styles) setStyles(el, styles); if (parent) parent.appendChild(el); if (before) before.parentNode.insertBefore(el, before); return el; } function setAttribs(el, attribs) { for (var x in attribs) el[x] = attribs[x]; } function setStyles(el, styles) { for (var x in styles) try { el.style[x] = styles[x]; } catch (e) {} } function getFormInput(form, name) { for (var i=0, l=form.elements.length; i<l; i++) if (form.elements[i].name == name) return form.elements[i].value; return ''; } function setFormInput(form, name, value) { for (var i=0, l=form.elements.length; i<l; i++) if (form.elements[i].name == name) form.elements[i].value = value; } function validate_form() { var valid = true; var warnings = cssQuery('.required_field_warning'); for (var i = 0, l = warnings.length; i < l; i++) warnings[i].parentNode.removeChild(warnings[i]); var inputs = cssQuery('.required_field, .required', this); for (var i = inputs.length - 1; i >= 0; i--) { if ((inputs[i].type == 'checkbox' && inputs[i].checked == false) || inputs[i].value == '' || inputs[i].value == 'http://') valid = validate_form_message(inputs[i], 'Dit veld is verplicht'); if (inputs[i].maxLength > 0 && inputs[i].value.length > inputs[i].maxLength) valid = validate_form_message(inputs[i], 'Dit veld bevat teveel karakters'); } return valid; } function validate_form_message(input, message) { input.focus(); createElement( 'span', { innerHTML: ' * ' + message, className: 'required_field_warning' }, null, input.parentNode ); return false; } function duplicate_element_onchange() { var nesting_count = duplicate_nesting_count; var parent = this.parentNode; removeEvent(this, 'change', duplicate_element_onchange); removeEvent(this, 'keydown', duplicate_element_onchange); while (nesting_count--) parent = parent.parentNode; parent.appendChild(duplicate_element); set_duplicate_element_onchange(duplicate_element_id, duplicate_nesting_count); } function duplicate_element_onchange_delete() { if (!this.deleteElement) this.deleteElement = createElement( 'input', { 'type' : 'button', 'value' : duplicate_element_delete, 'onclick' : function() { this.value = ''; this.parentNode.removeChild(this.deleteElement); this.deleteElement = null; }.bind(this) }, {}, this.parentNode ); } function toggle_element(element, hide, delay) { element = typeof element == 'object' ? element : document.getElementById(element); if (delay) element.toggle_element_timeout = setTimeout(function() { this.style.display = hide ? 'none' : 'block'; }.bind(element), delay); else element.style.display = hide ? 'none' : 'block'; } function toggle_element_cancel(element) { element = typeof element == 'object' ? element : document.getElementById(element); clearTimeout(element.toggle_element_timeout); } function toggle_element_disable(element, hide) { element = typeof element == 'object' ? element : document.getElementById(element); element.disabled = hide; } function set_opacity(element, alpha) { element = typeof element == 'object' ? element : document.getElementById(element); element.style.opacity = alpha / 100; element.style.filter = 'alpha(opacity=' + alpha + ')'; } function html_entities(input) { var output = ''; for (var i = 0, l = input.length; i < l; i++) output += input.charCodeAt(i) < 256 ? input.charAt(i) : '&#' + input.charCodeAt(i) + ';'; return output; } function get_message_preview(form, submit) { if (!validate_form.bind(form)()) return false; this.action = getFormInput(form, 'data[action]'); document.body.className += ' progress'; var xml = new xmlhttp(submit == true ? process_message_submit.bind(this) : process_message_preview.bind(this), set_message_error.bind(form)); xml.postRequest(script_xml_url, { 'data[action]' : this.action, 'data[content_id]' : getFormInput(form, 'data[content_id]'), 'data[parent_id]' : getFormInput(form, 'data[parent_id]'), 'data[parent_type]' : getFormInput(form, 'data[parent_type]'), 'data[message_id]' : getFormInput(form, 'data[message_id]'), 'data[content_raw]' : html_entities(getFormInput(form, 'data[content_raw]')), 'data[general_conditions]' : getFormInput(form, 'data[general_conditions]'), 'data[submit]' : submit == true ? '1' : '0' } ); return false; } function get_message_submit(form, link) { get_message_preview.bind(this, form, true)(); if (link) { form.parentNode.parentNode.removeChild(form.parentNode); link.message_form = false; } return false; } function process_update_message(xml) { var message_container = this.parentNode.parentNode.parentNode; this.message_form = createElement( 'span', { innerHTML : xml.getElementsByTagName('message_form')[0].firstChild.nodeValue }, null, message_container.nextSibling ? null : message_container.parentNode, message_container.nextSibling ? message_container.nextSibling : null ); var message_buttons = cssQuery('ul.submit input', this.message_form); message_buttons[0].onclick = get_message_preview.bind(this.parentNode.parentNode.nextSibling, this.message_form.firstChild); message_buttons[1].onclick = get_message_submit.bind(this.parentNode.parentNode.nextSibling, this.message_form.firstChild, this); var messageBox = cssQuery('textarea', this.message_form); set_messageBox(messageBox[0], true); } function process_quote_message(xml) { var textarea = document.getElementById('messageBox'); if (textarea) { window.location.hash = '#quickreply'; if (textarea.value != '') textarea.value = textarea.value + '\n\n'; textarea.value = textarea.value + xml.getElementsByTagName('message_quote')[0].firstChild.nodeValue; textarea.focus(); } } function process_message_preview(xml) { this.innerHTML = xml.getElementsByTagName('message_content')[0].firstChild.nodeValue; var message_container = this.action == 'update_message' ? this.parentNode : this.firstChild; set_message_status(message_container, 'Voorbeeld, ' + (this.action == 'update_message' ? 'klik Wijzigen om te bevestigen' : 'klik Toevoegen om te plaatsen')); message_container.className += ' message_preview'; document.body.className = document.body.className.replace('progress', ''); if (this.action == 'insert_message' && window.location.hash != '#reactie') window.location.hash = '#reactie'; } function process_message_submit(xml) { var message_output = createElement( 'span', { innerHTML: xml.getElementsByTagName('message_output')[0].firstChild.nodeValue } ); this.parentNode.parentNode.replaceChild(message_output, this.parentNode); var output_messages_empty = document.getElementById('output_messages_empty'); if (output_messages_empty) output_messages_empty.parentNode.removeChild(output_messages_empty); var output_messages_count = document.getElementById('output_messages_count'), message_count = xml.getElementsByTagName('message_count'); if (output_messages_count && message_count.length > 0) output_messages_count.innerHTML = message_count[0].firstChild.nodeValue; set_message_status(message_output, 'Reactie ' + (this.action == 'update_message' ? 'gewijzigd' : 'toegevoegd'), 5); if (this.action == 'insert_message') document.getElementById('messageBox').value = ''; set_message_ajax(message_ajax_below); document.body.className = document.body.className.replace('progress', ''); if (this.action == 'insert_message') window.location.hash = '#' + xml.getElementsByTagName('message_id')[0].firstChild.nodeValue; } function set_message_status(message_container, status, remove_delay, blink_count) { var author = cssQuery('p.author, span.message_preview', message_container); if (author.length == 1) var status_span = createElement( 'span', { innerHTML : ' (' + status + ')', className : 'message_preview' }, null, author[0] ); if (remove_delay) setTimeout(function() { this.parentNode.removeChild(this); }.bind(status_span), remove_delay * 1000); if (blink_count > 1) setTimeout(function() { set_message_status(message_container, status, remove_delay, blink_count - 1); }, remove_delay * 2000); } function set_message_error(error) { var div = createElement('div', { innerHTML : error.replace('Error: ', 'Foutmelding: ') }, { border : '1px solid #FF0000', backgroundColor : '#FFEEEE', padding : '10px' } ); this.insertBefore(div, this.firstChild); setTimeout(function() { this.removeChild(div); }.bind(this), 5000); } function process_score_click() { var xml = new xmlhttp(null, errorHandler); xml.postRequest(script_xml_url, { 'data[action]' : 'update_content_score', 'data[content_id]' : document.getElementsByName('data[content_id]')[0].value, 'data[score]' : this.value } ); this.form.parentNode.innerHTML = 'Bedankt voor het geven van je waardering!'; var score = cssQuery('h4.content_score a, h4.content_score span span'); if (score.length) { var score_value = Number(score[0].innerHTML) + Number(this.value); score[0].innerHTML = (score_value > 0 ? '+' : '') + score_value; sIFR.rollback('h4.content_score'); set_headers(); } return false; } function process_highlight_click() { var xml = new xmlhttp(null, errorHandler); xml.postRequest(script_xml_url, { 'data[action]' : 'update_content_highlight', 'data[content_id]' : document.getElementsByName('data[content_id]')[0].value, 'data[highlight]' : this.value } ); this.form.innerHTML = this.value == 1 ? 'Dit artikel is op de voorpagina geplaatst.' : 'Dit artikel is van de voorpagina gehaald.'; return false; } function process_archive_tab_click() { browse_type = this.id.replace('browse_', ''); var elements = cssQuery('dd.browse_type dt, dd.browse_type dd'); for (var i = 0, l = elements.length; i < l; i++) elements[i].className = ''; this.className = 'active'; this.nextSibling.className = 'active'; } function process_archive_radio_click() { var li = this.parentNode.parentNode.childNodes; for (var i = 0, l = li.length; i < l; i++) li[i].className = li[i].className.replace(' active', ''); this.parentNode.className += ' active'; } function process_archive_submit_click() { var input; var contents_link = [script_url, 'Archief']; var contents_browse_type = '0', contents_browse_name = '0'; switch (browse_type) { case 'type' : contents_browse_type = 'Soort'; input = cssQuery('dd.browse_type input:checked'); contents_browse_name = input.length ? input[0].value : '0'; break; case 'category' : contents_browse_type = 'Categorie'; break; case 'tag' : contents_browse_type = 'Kernwoord'; contents_browse_name = (input = document.getElementsByName('browse[tag]')[0].value) ? input : '0'; break; case 'user' : contents_browse_type = 'Gebruiker'; contents_browse_name = (input = document.getElementsByName('browse[user]')[0].value) ? input : '0'; break; } contents_link.push(contents_browse_name != '0' ? contents_browse_type : '0'); contents_link.push(contents_browse_name); contents_link.push((input = cssQuery('dd.browse_sort input:checked')[0].value) ? input : '0'); contents_link.push((input = document.getElementsByName('browse[stop]')[0].value) ? input : '0'); contents_link.push((input = document.getElementsByName('browse[start]')[0].value) ? input : '0'); while (contents_link[contents_link.length-1] == '0') contents_link.pop(); window.location.href = contents_link.join('/'); } function process_tagcloud(id, min, max) { max -= min; var cloud = document.getElementById(id); var tags = cloud.getElementsByTagName('a'); for (var i=0, l=tags.length; i<l; i++) { var title = tags[i].title; var f = title.substring(title.indexOf(':') + 1) - min; var fontSize = 80 + ((200 / max) * f) + '%'; tags[i].style.fontSize = fontSize; } } function set_imageresizer(image_src, imageresizer) { var img = new Image(); img.src = image_src; imageresizer.style.background = 'url(' + img.src + ')'; imageresizer.style.width = img.width + 'px'; imageresizer.style.height = img.height + 'px'; setTimeout(function() { set_imageresizer_dimensions(img, imageresizer); }, 1); } function set_imageresizer_dimensions(img, imageresizer) { if (imageresizer.clientWidth == 0) { if (img.width != 0) { imageresizer.style.width = img.width + 'px'; imageresizer.style.height = img.height + 'px'; resizer_x.maximize(); } else setTimeout(function() { set_imageresizer_dimensions(img, imageresizer); }, 1); } } function update_dimensions(top, left, width, height) { var inputs = document.getElementById('resize_form').getElementsByTagName('input'); inputs[0].value = Math.round((original_height / imageresizer.clientHeight) * top); inputs[1].value = Math.round((original_width / imageresizer.clientWidth) * left); inputs[2].value = Math.round((original_width / imageresizer.clientWidth) * width); inputs[3].value = Math.round((original_height / imageresizer.clientHeight) * height); } function set_forms_onsubmit() { var forms = document.getElementsByTagName('form'); for (var i = 0, l = forms.length; i < l; i++) if (typeof forms[i].onsubmit == 'undefined' || !forms[i].onsubmit) forms[i].onsubmit = validate_form; } function set_external_onclick() { var a = document.getElementsByTagName('a'); for (var i = 0, l = a.length; i < l; i++) { if (a[i].rel == 'external') { a[i].onclick = function(e) { cancelEvent(e); window.open(this.href); return false; }; } } } var message_ajax_below; function set_message_ajax(below) { message_ajax_below = below; var element; if (element = document.getElementsByName('update_message')) set_update_onclick(element); if (element = document.getElementsByName('quote_message')) set_quote_onclick(element); set_message_quickreply(); } function set_update_onclick(elements) { for (var i = 0, l = elements.length; i < l; i++) elements[i].onclick = function() { if (this.message_form) { this.message_form.parentNode.removeChild(this.message_form); this.message_form = false } else { var xml = new xmlhttp(process_update_message.bind(this), errorHandler); xml.getRequest(script_xml_url + '/update_message/' + this.href.split('/').pop()); } return false; } } function set_quote_onclick(elements) { if (!document.getElementById('messageBox')) return; for (var i = 0, l = elements.length; i < l; i++) elements[i].onclick = function() { var xml = new xmlhttp(process_quote_message, errorHandler); xml.getRequest(script_xml_url + '/view_message/' + this.href.split('/').pop()); return false; } } function set_message_quickreply() { var messageBox = document.getElementById('messageBox'); if (!messageBox || messageBox.value != '' || getFormInput(messageBox.form, 'data[action]') == current_action) return; var message_container = createElement( 'span', null, null, null, message_ajax_below ? messageBox.form.nextSibling : messageBox.form ); var message_content = createElement( 'span', null, null, message_container ); message_buttons = cssQuery('ul.submit input', messageBox.form); message_buttons[0].onclick = get_message_preview.bind(message_content, messageBox.form); message_buttons[1].onclick = get_message_submit.bind(message_content, messageBox.form, false); var quickreply = cssQuery('.quickreply'), quickreply_open = cssQuery('.quickreply_open')[0]; if (quickreply_open) { addEvent(quickreply_open, 'click', function() { toggle_element(quickreply_open, true); for (var i = 0; i < quickreply.length; i++) toggle_element(quickreply[i], false); messageBox.focus(); }); for (var i = 0; i < quickreply.length; i++) toggle_element(quickreply[i], true); } } var duplicate_element, duplicate_element_id, duplicate_element_callback, duplicate_nesting_count; function set_duplicate_element_onchange(input, nesting_count) { duplicate_nesting_count = nesting_count = nesting_count || 2; if (typeof input == 'string') input = document.getElementById(input); input.value = ''; var dl = input; while (nesting_count--) dl = dl.parentNode; if (++duplicate_element_count < duplicate_element_maximum) { duplicate_element = dl.cloneNode(true); duplicate_element_id = input.id; addEvent(input, 'change', duplicate_element_onchange); addEvent(input, 'keydown', duplicate_element_onchange); } if (typeof duplicate_element_delete != 'undefined' && duplicate_element_delete) { addEvent(input, 'change', duplicate_element_onchange_delete); addEvent(input, 'keydown', duplicate_element_onchange_delete); } var labels = dl.getElementsByTagName('label'); for (var i = 0, l = labels.length; i < l; i++) { labels[i].htmlFor = labels[i].htmlFor + '_' + duplicate_element_count; labels[i].innerHTML = labels[i].innerHTML.replace(':', ' ' + duplicate_element_count + ':'); } var inputs = dl.getElementsByTagName('input'); for (var i = 0, l = inputs.length; i < l; i++) { inputs[i].id = inputs[i].id + '_' + duplicate_element_count; switch (inputs[i].type) { case 'text' : inputs[i].value = ''; break; case 'radio' : inputs[i].value = duplicate_element_count; break; } } if (typeof duplicate_element_callback == 'function') duplicate_element_callback(); if (typeof duplicate_element_pad == 'boolean' && duplicate_element_pad && duplicate_element_count < duplicate_element_maximum) duplicate_element_onchange.bind(input)(); } function set_headers() { if (typeof sIFR != 'object') return; var motormeuk_header = { src: 'flash/motormeuk_header.swf?v=' + tpl_version_timestamp }; var motormeuk_score = { src: 'flash/motormeuk_score.swf?v=' + tpl_version_timestamp }; sIFR.activate(motormeuk_header, motormeuk_score); sIFR.replace(motormeuk_header, { selector: 'h2', wmode: 'transparent', css: { '.sIFR-root': { 'color': '#FF5500', 'text-transform': 'lowercase' }, 'a': { 'color': '#FF5500', 'text-decoration': 'none' }, 'a:hover': { 'color': '#FF5500' } } }); sIFR.replace(motormeuk_score, { selector: 'h4.content_score', wmode: 'transparent', tuneHeight: 10, css: { '.sIFR-root': { 'color': '#555555', 'font-size': '20px', 'text-align': 'center' }, 'a': { 'color': '#555555', 'text-decoration': 'none' }, 'a:hover': { 'color': '#555555' } } }); } function set_score_form(element) { var inputs = element.getElementsByTagName('input'); for (var i = 0, l = inputs.length; i < l; i++) inputs[i].onclick = process_score_click; } function highlight_form(element) { var inputs = element.getElementsByTagName('input'); for (var i = 0, l = inputs.length; i < l; i++) inputs[i].onclick = process_highlight_click; } function set_archive_search(element) { var dt = cssQuery('dd.browse_type dt'); for (var i = 0, l = dt.length; i < l; i++) dt[i].onclick = process_archive_tab_click; var input = cssQuery('input[type="radio"]', element); for (var i = 0, l = input.length; i < l; i++) input[i].onclick = process_archive_radio_click; var submit = cssQuery('input[type="button"]', element); submit[0].onclick = process_archive_submit_click; } function set_sidebar_dates() { if (user_previousvisit == 0) return; for (id in sidebar_dates) if (sidebar_dates[id] > user_previousvisit) document.getElementById('sidebar_' + id).className = 'highlight'; } function set_quicksearch() { var input = cssQuery('#quicksearch_form .search_query')[0]; input.onfocus = function() { if (this.value == 'Zoeken...') this.value = ''; }; input.onblur = function() { if (this.value == '') this.value = 'Zoeken...'; }; input.form.onsubmit = function() { if (input.value == 'Zoeken...') input.value = ''; }; } function set_poll(poll) { if (poll.nodeName.toLowerCase() == 'dl') { var options = cssQuery('dd.bar div', poll); for (var i = 0; i < options.length; i++) { var percentage = options[i].style['width'].replace('%', ''); if (percentage > 2) { createElement('div', {className : 'left'}, null, options[i]); createElement('div', {className : 'right'}, null, options[i]); createElement('div', {className : 'center'}, null, options[i]); } else createElement('div', {className : 'zero'}, null, options[i]); set_opacity(options[i], 75 / (100 / percentage) + 25); } } else { var options = cssQuery('li', poll); for (var i = 0; i < options.length - 1; i++) { options[i].onmouseover = function() { cssQuery('input', this)[0].checked = true; }; options[i].onclick = function() { cssQuery('input', this)[0].form.submit(); } } options[options.length - 1].style.display = 'none'; } } function set_imageprocessing(form) { form.onsubmit = function() { var valid = validate_form.bind(this)(); if (valid) { document.getElementById('imageprocessing_content').style.visibility = 'hidden'; document.getElementById('imageprocessing_activity').style.display = 'block'; window.scroll(0, 0); } return valid; }; window.onunload = function() { document.getElementById('imageprocessing_content').style.visibility = 'visible'; document.getElementById('imageprocessing_activity').style.display = 'none'; }; } function bind() { var element; set_external_onclick(); set_headers(); set_forms_onsubmit(); if (element = document.getElementById('score_form')) set_score_form(element); if (element = document.getElementById('highlight_form')) highlight_form(element); set_message_ajax(); }if (!window.XMLHttpRequest) { window.XMLHttpRequest = function() { var types = [ 'Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP' ]; for (var i = 0; i < types.length; i++) { try { return new ActiveXObject(types[i]); } catch(e) {} } return undefined; } } function xmlhttp(executeFunction, errorFunction) { if (typeof window.XMLHttpRequest != 'undefined') { this.executeFunction = executeFunction; this.errorFunction = errorFunction; this.http = new XMLHttpRequest(); } else if (errorFunction) return errorFunction(); } xmlhttp.prototype.getRequest = function(url, parameters) { try { var i = 0, parameters_content = []; for (var name in parameters) parameters_content[i++] = encodeURIComponent(name) + '=' + encodeURIComponent(parameters[name]); parameters_content = parameters_content.join('&'); this.http.open('GET', url + (parameters_content ? '?' + parameters_content : ''), true); this.http.onreadystatechange = this.processRequest.bind(this); this.http.setRequestHeader('X-Referer', window.location.href); this.http.send(null); return true; } catch(e) { this.processError('GET XMLHttpRequest failed. ' + (e.description ? e.description : e)); return false; } }; xmlhttp.prototype.postRequest = function(url, parameters) { try { var i = 0, parameters_content = []; for (var name in parameters) parameters_content[i++] = encodeURIComponent(name) + '=' + encodeURIComponent(parameters[name]); parameters_content = parameters_content.join('&'); this.http.open('POST', url, true); this.http.onreadystatechange = this.processRequest.bind(this); this.http.setRequestHeader('X-Referer', window.location.href); this.http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); this.http.setRequestHeader('Content-Length', parameters_content.length); this.http.send(parameters_content); return true; } catch(e) { this.processError('POST XMLHttpRequest failed. ' + (e.description ? e.description : e)); return false; } }; xmlhttp.prototype.cancelRequest = function() { this.http.onreadystatechange = null; this.http.abort(); }; xmlhttp.prototype.processRequest = function() { try { if (this.http.readyState == 4) { if (this.http.status == 200) { if (this.http.getResponseHeader('Content-Type').indexOf('text/xml') == 0) { if (this.http.responseXML) { if (this.http.responseXML.getElementsByTagName('error').length) { this.processError('Error: ' + this.http.responseXML.getElementsByTagName('error')[0].firstChild.nodeValue); } else if (this.http.responseXML.documentElement.tagName == 'parsererror') { this.processError('Parse Error: ' + this.http.responseXML.documentElement.firstChild.nodeValue); } else if (this.executeFunction) { this.executeFunction(this.http.responseXML); } } else { this.processError('Invalid XML response.'); } } else if (this.http.getResponseHeader('Content-Type').indexOf('text/html') == 0) { if (this.http.responseText) { if (this.executeFunction) { this.executeFunction(this.http.responseText); } } else { this.processError('Invalid HTML response.'); } } else { this.processError('Invalid Content-Type'); } this.http.abort(); } else { this.processError('Invalid XML status (' + this.http.status + '):\n' + this.http.statusText); } } } catch(e) { this.processError('Caught Exception: ' + (e.description ? e.description : e)); } }; xmlhttp.prototype.processError = function(error) { if (this.errorFunction) this.errorFunction(error); };var menu = null; function init_menu(id) { menu = document.getElementById(id); var li = menu.getElementsByTagName('li'), i = li.length; while (i--) { li[i].oldClassName = li[i].className; li[i].onmouseover = showMenu; } menu.onmouseout = timeout; menu.onmouseover = cleartimer; precache(menu); } function precache(menu) { var images = [], images_src = [ 'layout/navigation_header_background_light.gif?v=1283607934', 'headers/navigation_header_register_light.gif?v=1283607934', 'headers/navigation_header_insert_light.gif?v=1283607934', 'headers/navigation_header_news_light.gif?v=1283607934', 'headers/navigation_header_pictures_light.gif?v=1283607934', 'headers/navigation_header_videos_light.gif?v=1283607934', 'headers/navigation_header_scores_light.gif?v=1283607934', 'headers/navigation_header_about_light.gif?v=1283607934', 'icons/gif/activity.gif?v=1283607934' ]; var container = document.createElement('li'); container.style.display = 'none'; for (var i = 0; i < images_src.length; i++) { images[i] = new Image(); images[i].src = template_url + 'images/' + images_src[i]; container.appendChild(images[i]); } menu.appendChild(container); } var timer = null; function timeout() { timer = setTimeout('hideMenus(menu, null)', 1000); } function cleartimer() { if (timer) { clearTimeout(timer); timer = null; } } function showMenu() { this.className = this.oldClassName + '_active active'; var ul = this.parentNode; while (ul) { if (ul.tagName.toLowerCase() == 'ul') { hideMenus(ul, this); break; } ul = ul.parentNode; } ul = this.firstChild; while (ul) { if (ul.nodeType == 1 && ul.tagName.toLowerCase() == 'ul') { ul.style.display = 'block'; ul.style.visibility = ''; break; } ul = ul.nextSibling; } } function hideMenus(level, skipli) { var stack = [level], i = 0, li, j, el, tag; do { li = stack[i].childNodes, j = li.length; while (j--) { el = li[j]; if (el.nodeType == 1 && el != skipli) { tag = el.tagName.toLowerCase(); if (tag == 'li') { stack[i++] = el; el.className = el.oldClassName; } else if (tag == 'ul' && el.style.display == 'block') { stack[i++] = el; el.style.display = 'none'; el.style.visibility = 'hidden'; } } } } while (i--); }