var timeDiff = null; var timeStart = null; // Mausposition var mx = 0; var my = 0; var resis = new Object(); var timers = new Array(); if(document.addEventListener) document.addEventListener("mousemove", watchMouse, true); else document.onmousemove = watchMouse; function watchMouse(e) { if(e) { mx = e.clientX; my = e.clientY; } else { mx = window.event.clientX; my = window.event.clientY; } var info = document.getElementById("info"); if(info != null && info.style.visibility == "visible") { map_move(); } } /** * Title-Tag setzen */ function setImageTitles() { //var imgs = fetch_tags(document, 'img'); for (var i = 0; i < document.images.length; i++) { var image = document.images[i]; if (!image.title && image.alt != '') { image.title = image.alt; } } } function setCookie(name, value) { document.cookie = name+"="+value; } function popup(url, width, height) { wnd = window.open(url, "popup", "width="+width + ",height="+height + ",left=150,top=150,resizable=yes"); wnd.focus(); } function popup_scroll(url, width, height) { wnd = window.open(url, "popup", "width="+width + ",height="+height + ",left=150,top=100,resizable=yes,scrollbars=yes"); wnd.focus(); } function addTimer(element, endTime, reload) { var timer = new Object(); timer['element'] = element; timer['endTime'] = endTime; timer['reload'] = reload; timers.push(timer); } function startTimer() { var serverTime = getTime(document.getElementById("serverTime")); timeDiff = serverTime-getLocalTime(); timeStart = serverTime; // Nach span mit der Klasse timer und timer_replace suchen var spans = document.getElementsByTagName("span"); for(var i=0; i<spans.length; i++) { var span = spans[i]; if(span.className == "timer" || span.className == "timer_replace") { startTime = getTime(span); if(startTime != -1) addTimer(span, serverTime+startTime, (span.className == "timer")); } } startResTicker('wood'); startResTicker('stone'); startResTicker('iron'); window.setInterval("tick()", 1000); } function startResTicker(resName) { var element = document.getElementById(resName); var start = parseInt(element.firstChild.nodeValue); var max = parseInt(document.getElementById("storage").firstChild.nodeValue); var prod = element.title/3600; var res = new Object(); res['name'] = resName; res['start'] = start; res['max'] = max; res['prod'] = prod; resis[resName] = res; } function tickRes(res) { var resName = res['name']; var start = res['start']; var max = res['max']; var prod = res['prod']; var now = new Date(); var time = (now.getTime()/1000+timeDiff)-timeStart; var current = Math.min(Math.floor(start+prod*time), max); var element = document.getElementById(resName); element.firstChild.nodeValue = current; if(current == max) { element.setAttribute('class', 'warn'); } } function tick() { tickTime(); for(var res in resis) { tickRes(resis[res]); } for(var timer=0;timer<timers.length;timer++){ var remove = tickTimer(timers[timer]); if(remove) { timers.splice(timer, 1); } } } function tickTime() { var serverTime = document.getElementById("serverTime"); if(serverTime != null) { var time = getLocalTime()+timeDiff; formatTime(serverTime, time, true); } } function tickTimer(timer) { var time = timer['endTime']-(getLocalTime()+timeDiff); if(timer['reload'] && time < 0) { document.location.href = document.location.href.replace(/action=\w*/, ''); formatTime(timer['element'], 0, false); return true; } if (!timer['reload'] && time <= 0) { // Timer ausblenden und Alternativ-Text anzeigen var parent = timer['element'].parentNode; parent.nextSibling.style.display = 'inline'; // Nachfolger des Parent einblenden parent.parentNode.removeChild(parent); // Parent entfernen return true; } formatTime(timer['element'], time, false); return false; } function getLocalTime() { var now = new Date(); return Math.floor(now.getTime()/1000) } function getTime(element) { // Zeit auslesen if(element.firstChild.nodeValue == null) return -1; var part = element.firstChild.nodeValue.split(":"); // Führende Nullen entfernen for(var j=1; j<3; j++) { if(part[j].charAt(0) == "0") part[j] = part[j].substring(1, part[j].length); } // Zusammenfassen var hours = parseInt(part[0]); var minutes = parseInt(part[1]); var seconds = parseInt(part[2]); var time = hours*60*60+minutes*60+seconds; return time; } function formatTime(element, time, clamp) { // Wieder aufsplitten var hours = Math.floor(time/3600); if(clamp) hours = hours%24; var minutes = Math.floor(time/60) % 60; var seconds = time % 60; var timeString = hours + ":"; if(minutes < 10) timeString += "0"; timeString += minutes + ":"; if(seconds < 10) timeString += "0"; timeString += seconds; element.firstChild.nodeValue = timeString; if(timeString == '0:00:00') { incrementDate(); } } function incrementDate() { currentDate = gid('serverDate').firstChild.nodeValue; splitDate = currentDate.split('/'); date = splitDate[0]; month = splitDate[1] - 1; year = splitDate[2]; dateObject = new Date(year, month, date); dateObject.setDate(dateObject.getDate()+1); dateString = ''; date = dateObject.getDate(); month = dateObject.getMonth() + 1; year = dateObject.getFullYear(); if(date < 10) dateString += "0"; dateString += date + "/"; if(month < 10) dateString += "0"; dateString += month + "/"; dateString += year; gid('serverDate').firstChild.nodeValue=dateString; } function selectAll(form, checked) { for(var i=0; i<form.length; i++) { form.elements[i].checked = checked; } } /** * Im Adelshof für alle Dörfer Nichts/Maximum auswählen */ var max = true; function selectAllMax(form, textMax, textNothing) { for(var i=0; i<form.length; i++) { var select = form.elements[i]; if(select.selectedIndex != null) { if(max) select.selectedIndex = select.length-2; else select.value = 0; } } max = max ? false : true; anchor = document.getElementById('select_anchor_top'); anchor.firstChild.nodeValue = max ? textMax : textNothing; anchor = document.getElementById('select_anchor_bottom'); anchor.firstChild.nodeValue = max ? textMax : textNothing; changeBunches(form); } function changeBunches(form) { var sum = 0; for(var i=0; i<form.length; i++) { var select = form.elements[i]; if(select.selectedIndex != null) { sum += parseInt(select.value); } } setText(gid('selectedBunches_bottom'), sum); setText(gid('selectedBunches_top'), sum); } function redir(href) { window.location.href = href; } function setText(element, text) { var textNode = document.createTextNode(text); element.removeChild(element.firstChild); element.appendChild(textNode); } var old_extra_text = null; var extra_info_timeout = null; var map_info_data = new Object(); function map_popup(title, bonus_image, bonus_text, points, owner, ally, village_groups, moral, village_id, source_id, last_attack_date, last_attack_dot, last_attack_max_loot) { setText(gid("info_title"), title); var info_bonus_image = gid("info_bonus_image"); var info_bonus_text = gid("info_bonus_text"); if(bonus_image != '') { info_bonus_image.firstChild.src = bonus_image; info_bonus_text.firstChild.firstChild.innerHTML = bonus_text; info_bonus_image.style.display = ''; info_bonus_text.style.display = ''; } else { info_bonus_image.style.display = 'none'; info_bonus_text.style.display = 'none'; } setText(gid("info_points"), points); if(owner != null) { setText(gid("info_owner"), owner); gid("info_owner_row").style.display = ''; gid("info_left_row").style.display = 'none'; } else { gid("info_owner_row").style.display = 'none'; gid("info_left_row").style.display = ''; } if(ally != null) { gid("info_ally_row").style.display = ''; setText(gid("info_ally"), ally); } else { gid("info_ally_row").style.display = 'none'; } if(village_groups) { gid("info_village_groups_row").style.display = ''; setText(gid("info_village_groups"), village_groups); } else { gid("info_village_groups_row").style.display = 'none'; } if(moral && gid('map_popup_moral') && gid('map_popup_moral').checked) { gid("info_moral_row").style.display = ''; setText(gid("info_moral"), moral + '%'); } else { gid("info_moral_row").style.display = 'none'; } if(last_attack_date && last_attack_dot) { gid("info_last_attack_row").style.display = ''; if (last_attack_max_loot) { gid("info_last_attack").innerHTML = '<img alt="" src="graphic/' + last_attack_dot + '" /> <img alt="" src="graphic/' + last_attack_max_loot + '" /> ' + last_attack_date; } else { gid("info_last_attack").innerHTML = '<img alt="" src="graphic/' + last_attack_dot + '" /> ' + last_attack_date; } } else { gid("info_last_attack_row").style.display = 'none'; } var show_info = village_id != false && (gid('map_popup_res').checked || gid('map_popup_pop').checked || gid('map_popup_trader').checked || gid('map_popup_units').checked || gid('map_popup_units_times').checked); if(show_info) { gid('info_extra_info').style.display = ''; if(old_extra_text == null) { old_extra_text = gid('info_extra_info').firstChild.firstChild.nodeValue; } else { gid('info_extra_info').firstChild.innerHTML = old_extra_text; } if(map_info_data[village_id] == null) { extra_info_timeout = window.setTimeout("map_info_get(" + village_id + ", " + source_id + ")", 500); } else { map_info(village_id); } } else { gid('info_extra_info').style.display = 'none'; } map_move(); var info = gid("info"); info.style.visibility = "visible"; } function map_kill() { var info = document.getElementById("info"); info.style.visibility = "hidden"; if(extra_info_timeout != null) { window.clearTimeout(extra_info_timeout); } } function map_move() { var info_content = $("info_content"); // gid() nicht möglich, da sonst IE7 kein Element zurück gibt. var info = $("info"); if(window.pageYOffset) scrollY = window.pageYOffset; else scrollY = document.body.scrollTop; // Sicherstellen, dass Popup nicht vom rechten Rand abgeschnitten wird var popup_size = info_content.getCoordinates(); var window_width = window.getWidth(); // getWidth funktioniert im IE6 nur wenn XHTML strict if(!window_width){ window_width = document.body.clientWidth; } var margin_right = window_width - mx; if(margin_right > popup_size.width + 5) { info.style.left = mx + 5 + "px"; } else { info.style.left = window_width - popup_size.width + "px"; } // Unterer Rand des Popups soll nicht Mauszeiger überlappen var popup_top = my - popup_size.height - 5 + scrollY; info.style.top = popup_top + "px"; } function map_info_get(village_id, source_id) { var url = 'game.php?screen=overview&xml&village=' + village_id + '&source=' + source_id; var t = get_sitter_player() if(t) { url = url + '&t=' + t; } var map_info_callback = new Object(); map_info_callback.complete = function(req) { var village_data = new Object(); var village = req.responseXML.firstChild; while (village != null && village.nodeType != 1) { village = village.nextSibling; } if(village.firstChild.nodeName == 'error') { var error = village.firstChild.nodeValue; alert(error); } village_data['id'] = parseInt(village.getAttribute('id')); for(var i = 0; i < village.childNodes.length; i++) { village_data[village.childNodes[i].nodeName] = village.childNodes[i].firstChild.nodeValue; } map_info_data[village_data['id']] = village_data; map_info(village_data['id']); } ajaxAsync(url, null, map_info_callback); } function map_info(village_id) { var village_data = map_info_data[village_id]; var xhtml = '<table>'; // Rohstoffe if(gid('map_popup_res').checked && (village_data['wood'] || village_data['stone'] || village_data['iron'] || village_data['storage_max'])) { xhtml += '<tr><td colspan="2"><table><tr>'; if (village_data['wood']) xhtml += '<td><img src="' + image_base + '/holz.png" />' + village_data['wood'] + '</td>'; if (village_data['stone']) xhtml += '<td><img src="' + image_base + '/lehm.png" />' + village_data['stone'] + '</td>'; if (village_data['iron']) xhtml += '<td><img src="' + image_base + '/eisen.png" />' + village_data['iron'] + '</td>'; if (village_data['storage_max']) xhtml += '<td><img src="' + image_base + '/res.png" />' + village_data['storage_max'] + '</td>'; xhtml += '</tr></table></td></tr>'; } var pop_xhtml = false; if(gid('map_popup_pop').checked && village_data['pop_max']) { pop_xhtml = '<img src="' + image_base + '/face.png" />' + village_data['pop'] + '/' + village_data['pop_max']; } var trader_xhtml = false; if(gid('map_popup_trader').checked && village_data['trader_current']) { trader_xhtml = '<img src="' + image_base + '/overview/trader.png" />' + village_data['trader_current'] + '/' + village_data['trader_total']; } // Bevölkerung und Haendler if(pop_xhtml || trader_xhtml) { xhtml += '<tr><td colspan="2"><table><tr>'; xhtml += xhtml_column_builder(pop_xhtml, trader_xhtml); xhtml += '</tr></table></td></tr>'; } if(gid('map_popup_units').checked || gid('map_popup_units_times').checked) { uh_xhtml = '<tr><td colspan="2"><table style="border:1px solid #DED3B9" cellpadding="0" cellspacing="0"><tr class="center">'; var i=0; for(var prop in village_data) { if((prop.substr(0, 4) == 'unit') && ((village_data[prop] != 0) || (gid('map_popup_units_times').checked && village_data['time_'+prop]))) { var bgcolor = ((i%2) == 0) ? 'F8F4E8' : 'DED3B9'; uh_xhtml += '<td style="padding:2px;background-color:#'+bgcolor+'"><img src="' + image_base + '/unit/' + prop + '.png" alt="" /></td>'; i++; } } i=0; units=0; un_xhtml=''; for(var prop in village_data) { if(prop.substr(0, 4) == 'unit' && village_data[prop] != 0 && gid('map_popup_units').checked) { var bgcolor = ((i%2) == 0) ? 'F8F4E8' : 'DED3B9'; un_xhtml += '<td style="padding:2px;background-color:#'+bgcolor+'">'+village_data[prop]+'</td>'; i++; units++; } else if (gid('map_popup_units_times').checked && village_data['time_'+prop]) { var bgcolor = ((i%2) == 0) ? 'F8F4E8' : 'DED3B9'; un_xhtml += '<td style="padding:2px;background-color:#'+bgcolor+'"> </td>'; i++; } } i=0; times=0; ut_xhtml=''; if(gid('map_popup_units_times').checked) { for(var prop in village_data) { if(prop.substr(0, 9) == 'time_unit' && village_data[prop] != 0) { var bgcolor = ((i%2) == 0) ? 'F8F4E8' : 'DED3B9'; ut_xhtml += '<td style="padding:2px;font-size: 9px;background-color:#'+bgcolor+'">' + village_data[prop] +'</td>'; i++; times++; } } } if (units > 0 || times > 0) { xhtml += uh_xhtml; if (units > 0) { xhtml += '</tr><tr class="center">'; xhtml += un_xhtml; } if (times > 0) { xhtml += '</tr><tr class="center">'; xhtml += ut_xhtml; } xhtml += '</tr></table></tr></td></tr>'; } } xhtml += '</table>'; gid('info_extra_info').firstChild.innerHTML = xhtml; map_move(); } function xhtml_column_builder(col1, col2) { var xhtml = ''; xhtml += '<tr>'; if(col1 && col2) { xhtml += '<td>' + col1 + '</td><td>' + col2 + '</td>'; } else { if(col1) { xhtml += '<td colspan="2">' + col1 + '</td>'; } else { xhtml += '<td colspan="2">' + col2 + '</td>'; } } xhtml += '</tr>'; return xhtml; } function toggle_map_popup_options() { if(gid('map_popup_options').style.display == 'none') { gid('map_popup_options').style.display = ''; } else { gid('map_popup_options').style.display = 'none'; } } function gid(id) { return document.getElementById(id); } function mapScroll(x, y) { width = 10; height = 10; url = "map.php?x="+x+"&y="+y+"&width="+width+"&height="+height; req = ajaxSync(url); villages = req.responseXML.firstChild.childNodes; for(var i=0; i<villages.length; i++) { v = villages[i]; if(v.nodeType != 1) continue; if(v.nodeName != "v") continue; mapSetTile(3, 0, v); } } function mapSetTile(x, y, v) { tile = gid("tile_" + x + "_" + y); if(v != null) { alert(v.getAttribute("href")); //tile.className = v.className; tile.replaceChild(v, tile.firstChild); } else { img = document.createElement("img"); img.src = "graphic/map/map_free.png"; tile.replaceChild(img, tile.firstChild); } } function insertCoord(form, element) { // Koordinaten auslesen part = element.value.split("|"); if(part.length != 2) return; x = parseInt(part[0]); y = parseInt(part[1]); form.x.value = x; form.y.value = y; } function insertCoordNew(form, element) { // Koordinaten auslesen part = element.value.split(":"); if(part.length != 3) return; form.con.value = parseInt(part[0]); form.sec.value = parseInt(part[1]); form.sub.value = parseInt(part[2]); } function insertUnit(input, count) { if(input.value != count) input.value=count; else input.value=''; } function insertNumber(input, count) { if(input.value != count) input.value=count; else input.value=''; } function insertBBcode(textareaID, startTag, endTag) { var input = $(textareaID); input.focus(); /* für Internet Explorer */ if(typeof document.selection != 'undefined') { /* Einfügen */ var range = document.selection.createRange(); var insText = range.text; range.text = startTag + insText + endTag; /* Cursorposition anpassen */ range = document.selection.createRange(); if (insText.length == 0) { range.move('character', -endTag.length); } else { range.moveStart('character', startTag.length + insText.length + endTag.length); } range.select(); } /* für neuere auf Gecko basierende Browser */ else if(typeof input.selectionStart != 'undefined') { /* Einfügen */ var start = input.selectionStart; var end = input.selectionEnd; var insText = input.value.substring(start, end); input.value = input.value.substr(0, start) + startTag + insText + endTag + input.value.substr(end); /* Cursorposition anpassen */ var pos; if (insText.length == 0) { pos = start + startTag.length; } else { pos = start + startTag.length + insText.length + endTag.length; } input.selectionStart = pos; input.selectionEnd = pos; } } function selectTarget(x, y) { document.forms["units"].elements["x"].value = x; document.forms["units"].elements["y"].value = y; inlinePopupClose(); } function selectTargetCoord(con, sec, sub) { document.forms["units"].elements["con"].value = con; document.forms["units"].elements["sec"].value = sec; document.forms["units"].elements["sub"].value = sub; inlinePopupClose(); } function insertAdresses(to, check) { opener.document.forms["header"].to.value += to; if(check) { var mass_mail = opener.document.forms["header"].mass_mail; if(mass_mail) mass_mail.checked='checked'; } } function selectVillage(id) { var href = opener.location.href; if(href.search(/village=\w*/) != -1) href = href.replace(/village=\w*/, 'village='+id); else href += '&village='+id; href = href.replace(/action=\w*/, ''); opener.location.href = href; window.close(); } function overviewShowLevel() { labels = overviewGetLabels(); for(var i=0, len=labels.length; i < len; i++) { var label = labels[i]; if(!label) continue; label.style.display = 'inline'; } } function overviewHideLevel() { labels = overviewGetLabels(); for(var i=0, len=labels.length; i < len; i++) { var label = labels[i]; if(!label) continue; label.style.display = 'none'; } } function overviewGetLabels() { labels = Array(); labels.push(gid("l_main")); labels.push(gid("l_place")); labels.push(gid("l_wood")); labels.push(gid("l_stone")); labels.push(gid("l_iron")); labels.push(gid("l_statue")); labels.push(gid("l_wall")); labels.push(gid("l_farm")); labels.push(gid("l_hide")); labels.push(gid("l_storage")); labels.push(gid("l_market")); labels.push(gid("l_barracks")); labels.push(gid("l_stable")); labels.push(gid("l_garage")); labels.push(gid("l_church")); labels.push(gid("l_church_f")); labels.push(gid("l_snob")); labels.push(gid("l_smith")); return labels; } function insertMoral(moral) { opener.document.getElementById('moral').value = moral; } function resetAttackerPoints(points) { document.getElementById('attacker_points').value = points; } function resetDefenderPoints(points) { document.getElementById('defender_points').value = points; } function resetDaysPlayed(days) { document.getElementById('days_played').value = days; } function editGroup(group_id) { var href = opener.location.href; href = href.replace(/&action=edit_group&edit_group=\d+&h=([a-z0-9]+)/, ''); href = href.replace(/&edit_group=\d+/, ''); overview = opener.document.getElementById('overview'); if(overview && overview.value.search(/(combined|prod|units|buildings|tech)/) != -1) { opener.location.href = href + '&edit_group=' + group_id; } window.close(); } function toggleExtended() { var extended = document.getElementById('extended'); if(extended.style.display == 'block') { extended.style.display = 'none'; document.getElementsByName('extended')[0].value = 0; } else { extended.style.display = 'block'; document.getElementsByName('extended')[0].value = 1; } } function resizeIGMField(type) { field = document.getElementsByName('text')[0]; old_size = parseInt(field.getAttribute('rows')); if(type == 'bigger') { field.setAttribute('rows', old_size + 3); } else if(type == 'smaller') { if(old_size >= 4) { field.setAttribute('rows', old_size - 3); } } } /** * @param edit ID des anzuzeigenden Edit-Elements * @param label ID des zu versteckenden Label-Elements */ function editToggle(label, edit) { gid(edit).style.display = ''; gid(label).style.display = 'none'; } function toggle_visibility(id) { var element = document.getElementById(id); if(element.style.display == 'block') element.style.display = 'none'; else element.style.display = 'block'; } function toggle_visibility_by_class(classname, display) { var toggleAll = $(document.body).getElements('[class$='+classname+']'); if (display == 'table-row') display = ''; toggleAll.each(function(item){ if(item.getStyle('display') == 'none') item.setStyle('display', display); else item.setStyle('display', 'none'); }); } function urlEncode(string) { return encodeURIComponent(string); } /** * */ function editSubmit(label, labelText, edit, editInput, url) { var data = gid(editInput).value; data = urlEncode(data); var req = ajaxSync(url, 'text='+data); gid(edit).style.display = 'none'; setText(gid(labelText), req.responseText); gid(label).style.display = ''; } function editSubmitNew(label, labelText, edit, editInput, url) { var data = gid(editInput).value; var jSonRequest = new Request.JSON({url: url, onComplete: function(response_data) { response_data = JSON.decode(response_data); if(response_data.error) { alert(response_data.error); } else { gid(edit).style.display = 'none'; setText(gid(labelText), response_data.text); gid(label).style.display = ''; } }}).post({json: JSON.encode({text:data})}); } function inlinePopup(name, url, options) { var popup_position_x = mx + options.offset_x; var popup_position_y = my + options.offset_y; $('inline_popup').setStyle('display', 'block'); $('inline_popup').setStyle('left', popup_position_x + 'px'); $('inline_popup').setStyle('top', popup_position_y + 'px'); inlinePopupReload(name, url, options); } function inlinePopupReload(name, url, options) { // Even better would be a solution with automatic throbber creation. var req = new Request({ url: url, onRequest: function() { if(options.empty_errors) $('error').empty(); $('inline_popup_content').empty(); $('inline_popup_content').appendChild(new Element( 'img', { 'src': options.image_base + '/throbber.gif', 'alt': 'Loading...' } )); }, onSuccess: function(reponseText, responseXML) { $('inline_popup_content').empty(); $('inline_popup_content').innerHTML = reponseText; } }).send(); } function inlinePopupClose() { $('inline_popup').setStyle('display', 'none'); } function add_forum_share(edit_input, forum_id, url) { var ally_tag = gid(edit_input).value; var jSonRequest = new Request.JSON({url: url, onComplete: function(response_data) { response_data = JSON.decode(response_data); if(response_data.error) { $('error').empty(); $('error').innerHTML = response_data.error; $('error').setStyle('display', ''); } else { $('shared_'+forum_id).empty(); $('shared_'+forum_id).innerHTML = response_data.new_shares; $('add_shares_link_'+forum_id).setStyle('display', 'none'); $('edit_shares_link_'+forum_id).setStyle('display', ''); inlinePopupClose(); } }}).post({json: JSON.encode({ally_tag:ally_tag, forum_id:forum_id})}); } function remove_forum_shares(label_text, forum_id, url) { var remove = new Array(); $$('#checkboxes input').each (function (box){ if(box.checked) remove.push(box.value); }); remove = JSON.encode(remove); var jSonRequest = new Request.JSON({url: url, onComplete: function(response_data) { response_data = JSON.decode(response_data); if(response_data.error) { $('error').empty(); $('error').innerHTML = response_data.error; $('error').setStyle('display', ''); } else { $(label_text).empty(); if(response_data.new_shares) $(label_text).innerHTML = response_data.new_shares; else { $('add_shares_link_'+forum_id).setStyle('display', ''); $('edit_shares_link_'+forum_id).setStyle('display', 'none'); } inlinePopupClose(); } }}).post({json: JSON.encode({remove:remove, forum_id:forum_id})}); } function bb_color_picker_gencaller (fn,arg) { var f = function () { fn(arg); }; return f; } function bb_color_set_color (col) { var g = gid("bb_color_picker_preview"); var inp = gid("bb_color_picker_tx"); g.style.color = "rgb("+col[0]+","+col[1]+","+col[2]+")"; var rr = col[0].toString(16); var gg = col[1].toString(16); var bb = col[2].toString(16); rr = rr.length<2?"0"+rr:rr; gg = gg.length<2?"0"+gg:gg; bb = bb.length<2?"0"+bb:bb; inp.value = "#"+rr+gg+bb; } function bb_color_pick_color (colordiv) { var col = colordiv.rgb; for (var l=0;l<6;l++) { for (var h=1;h<6;h++) { var cell = gid("bb_color_picker_"+h+l); if (!cell) alert("bb_color_picker_"+h+l); var ll = l/3.0; var hh = h/4.5; hh=Math.pow(hh,.5); var light = Math.max(0,(255*ll-255)); var r = Math.floor(Math.max(0,Math.min(255, (col[0]*ll*hh + 255*(1-hh)) + light))); var g = Math.floor(Math.max(0,Math.min(255, (col[1]*ll*hh + 255*(1-hh)) + light))); var b = Math.floor(Math.max(0,Math.min(255, (col[2]*ll*hh + 255*(1-hh)) + light))); cell.style.backgroundColor = "rgb("+r+","+g+","+b+")"; cell.rgb = [r,g,b]; cell.onclick = bb_color_picker_gencaller(bb_color_set_color,[r,g,b]); } } } function bb_color_picker_textchange () { var inp = gid("bb_color_picker_tx"); var g = gid("bb_color_picker_preview"); try { g.style.color = inp.value; } catch (e) { /*no error report if user types wrong code*/ } } function bb_color_picker_toggle (assign) { var inp = gid("bb_color_picker_tx"); inp.onkeyup = bb_color_picker_textchange; if (assign) { insertBBcode('message', '[color='+inp.value+']', '[/color]'); toggle_visibility('bb_color_picker'); return; } var colors = [gid("bb_color_picker_c0"),gid("bb_color_picker_c1"),gid("bb_color_picker_c2"),gid("bb_color_picker_c3"),gid("bb_color_picker_c4"),gid("bb_color_picker_c5")]; colors[0].rgb = [255,0,0]; colors[1].rgb = [255,255,0]; colors[2].rgb = [0,255,0]; colors[3].rgb = [0,255,255]; colors[4].rgb = [0,0,255]; colors[5].rgb = [255,0,255]; for (i=0;i<=5;i++) { colors[i].onclick = bb_color_picker_gencaller(bb_color_pick_color,colors[i]); } bb_color_pick_color(colors[0]); toggle_visibility('bb_color_picker'); } function showElement(name) { gid(name).style.display = ''; } function get_sitter_player() { var t_regexp = /(\?|&)t=(\d+)/; var matches = t_regexp.exec(location.href + ""); if(matches) { return parseInt(matches[2]); } else { return false; } } function igm_to_show(url) { var igm_to = gid('igm_to'); gid('igm_to_content').innerHTML = ajaxSync(url, null).responseText; igm_to.style.display = 'inline'; } function igm_to_hide() { var igm_to = gid('igm_to'); igm_to.style.display = 'none'; } function igm_to_insert_adresses(list) { gid('to').value += list; } function igm_to_addresses_clear() { gid('to').value = ''; } function xProcess(xelement, yelement) { xvalue = gid(xelement).value; yvalue = gid(yelement).value; if(xvalue.indexOf("|") != -1) { xypart = xvalue.split("|"); x = parseInt(xypart[0]); if(xypart[1].length == 0) y = ''; else y = parseInt(xypart[1]); gid(xelement).value = x; gid(yelement).value = y; return; } if(xvalue.length == 3 && yvalue.length == 0) gid(yelement).focus(); } function _(t) { if(lang[t]) { return lang[t]; } else { return t; } } function swap_image(img_id, src_new) { $(img_id).src = src_new; } function change_url_by_parameters (parametersettings) { var params = window.location.search.substring(1, window.location.search.length); var params_arr = params.split('&'); var new_params = new Array(); for (i = 0; i < params_arr.length; i++) { param = params_arr[i].split('='); param_name = param[0]; param_value = param[1]; // Parameter, die gleich wieder angehaengt werden filtern, damit sie nicht doppelt vorkommen if (parametersettings[param_name] == null) { new_params.push(param_name +'='+ param_value); } } for (key in parametersettings) { new_params.push(key +'='+ parametersettings[key]); } // Array wieder zu url zusammensetzen new_params = new_params.join('&'); url = window.location.href.split('?')[0] + '?' + new_params; window.location.href = url; } function map_toggle_politicalmap(checkbox, h, x, y) { change_url_by_parameters({ 'action':'save_politicalmap', 'h':h, 'x':x, 'y':y, 'politicalmap':checkbox.checked?1:0 }); } function map_toggle_belief_radius(checkbox, h, x, y) { change_url_by_parameters({ 'action':'save_belief', 'h':h, 'x':x, 'y':y, 'belief':checkbox.checked?1:0 }); }