/*----main.js----*/
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

var myContent = getXmlHttpRequestObject();
var ss;


function loadContent(URL) {
	if (URL.indexOf("?")==-1) URL+="?"; else URL += "&";
	if (myContent.readyState == 4 || myContent.readyState == 0) {
		/*if (document.all && myContent.setRequestHeader)
			myContent.setRequestHeader('If-Modified-Since','Sat, 1 May 2000 08:00:00 GMT'); */
		myContent.open("GET", URL+'display=1', true);
		ss = document.getElementById('content_main');
		myContent.onreadystatechange = handleSearchSuggest;
		myContent.send(null);
		return false;
	}
	return true;
}

function changeContent(URL,obj) {
	if (URL.indexOf("?")==-1) URL+="?"; else {
		x = URL.split("?");
		URL = x[0]+"?"+encodeURI(x[1])+"&";
	}
	if (myContent.readyState == 4 || myContent.readyState == 0) {
		myContent.open("GET", URL+'display=1', true);
		ss = document.getElementById(obj);
		myContent.onreadystatechange = handleSearchSuggest;
		myContent.send(null);
		return false;
	}
	return true;
}

function submitContent(f, obj) {
	Jetzt = new Date();
	xx = Date.parse( Jetzt.toGMTString() );
	URL = f.action;
	vars = "";
	for (var i=0;i<f.elements.length;i++) {
		if ( f.elements[i].type=="checkbox" || f.elements[i].type=="radio" ) {
			if ( f.elements[i].checked )
				vars+="&"+f.elements[i].name+"="+encodeURIComponent(f.elements[i].value);
		} else {
			vars+="&"+f.elements[i].name+"="+encodeURIComponent(f.elements[i].value);
		}
	}
	if (URL.indexOf("?")==-1) URL+="?"; else URL+="&";
	if (myContent.readyState == 4 || myContent.readyState == 0) {
		myContent.open("GET", URL+'xx='+xx+'&display=1'+vars, true);
		ss = document.getElementById(obj);
		myContent.onreadystatechange = handleSearchSuggest;
		myContent.send(null);
		return false;
	}
	return true;
}

function handleSearchSuggest() {
	if (myContent.readyState == 4) {
		if (myContent.responseText.indexOf("JSreload='")!=-1) {
			var neueURL = myContent.responseText.substring(myContent.responseText.indexOf("'")+1,myContent.responseText.lastIndexOf("'"));
			top.document.location.href=neueURL;
		} else
			ss.innerHTML = myContent.responseText;
			initSlider();
	}
}

/* Screenshot OPEN */
function openScreen(oL)
{
	oP = oL.getElementsByTagName("img")[0];
	sPfad = oP.src.replace(/screenshots/,"screenshots/big");
	oF = window.open("","RRScreen","");
	oF.document.open();
	oF.document.write('<html><head><title>RR-Screenshot</title></head><body style="margin:0px;padding=0px;"><img src="'+sPfad+'" alt="click to close" onClick="window.close();"></body></html>');
	oF.document.close();
	oF.focus();
}
/*
function changeWidth() {
	if ( document.all)
		document.getElementById('neuekarte').style.display = 'block';
	w = document.getElementById('neuekarte').width;
	if (document.all)
		document.getElementById('neuekarte').style.display = 'none';
	if ( w == 0 )
		setTimeout("changeWidth();",250);
	else {
		document.getElementById('neuekarte').style.display = 'block';
		document.getElementById('neuekarte').width=w/2;
	}
}*/

function showMap(s) {
	kostenChange();
	v = s.options[s.options.selectedIndex].value;
	t = s.options[s.options.selectedIndex].text;
	sek = t.substring(t.indexOf("(")+1,t.indexOf(")"));
	t = t.substring(0,t.indexOf("("));
	d = document.getElementById("show_karte");
	if ( v != 0 ) {
		breite = document.getElementById("h"+v).value*1;
		d.innerHTML = "<strong>"+t+"</strong><br />Sektorenanzahl:"+sek+"<br /><img src='/portal/templates/show_map.php?karte_id="+v+"' id='neuekarte' style='width:"+((breite+1)*4)+"px; margin:0 auto;'/>";
		//setTimeout("changeWidth();",20);
	} else
		d.innerHTML = "<em>keine Karte ausgew&auml;hlt</em>";
	return false;
}

function resetSpielpausen() {
	s1_von = document.getElementById('sp1_von');
	s2_von = document.getElementById('sp2_von');
	s1_bis = document.getElementById('sp1_bis');

	s2_bis = document.getElementById('sp2_bis');
	s1_von.options[0].selected=true;
	s2_von.options[0].selected=true;
	s1_bis.options[0].selected=true;
	s2_bis.options[0].selected=true;
}

	function checkAGB(oF) {
		var b = true;
			document.getElementById('spiel').style.color="#000000";
			document.getElementById('spiel').style.fontWeight="100";
			document.getElementById('agb').style.color="#000000";
			document.getElementById('agb').style.fontWeight="100";

		if (!oF.spielregeln.checked) {
			document.getElementById('spiel').style.color="#FF0000";
			document.getElementById('spiel').style.fontWeight="900";
			b=false;
		}
		if (!oF.agbs.checked) {
			document.getElementById('agb').style.color="#FF0000";
			document.getElementById('agb').style.fontWeight="900";
			b=false;
		}
		return b;
	}


//---------------------------------------------------------------------------------------------------------- SLIDER
//---------------------------------+
//  CARPE  S l i d e r        1.5  |
//  2006 - 01 - 03                 |
//  By Tom Hermansson Snickars     |
//  Copyright CARPE Design         |
//  http://carpe.ambiprospect.com/ |
//  Contact for custom scripts     |
//  or implementation help.        |
//---------------------------------+

// Global vars. You don't need to make changes here to change your sliders.
// Changing the attributes in your (X)HTML file is enough.
var carpeDefaultSliderLength      = 100
var carpeSliderDefaultOrientation = 'horizontal'
var carpeSliderClassName          = 'carpe_slider'
var carpeSliderDisplayClassName   = 'carpe_slider_display'

// carpeGetElementsByClass: Cross-browser function that returns
// an array with all elements that have a class attribute that
// contains className
function carpeGetElementsByClass(className)
{
	var classElements = new Array()
	var els = document.getElementsByTagName("*")
	var elsLen = els.length
	var pattern = new RegExp("\\b" + className + "\\b")
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i]
			j++
		}
	}
	return classElements;
}
// carpeLeft: Cross-browser version of "element.style.left"
// Returns or sets the horizontal position of an element.
function carpeLeft(elmnt, pos)
{
	if (!(elmnt = document.getElementById(elmnt))) return 0;
	if (elmnt.style && (typeof(elmnt.style.left) == 'string')) {
		if (typeof(pos) == 'number') elmnt.style.left = pos + 'px';
		else {
			pos = parseInt(elmnt.style.left);
			if (isNaN(pos)) pos = 0;
		}
	}
	else if (elmnt.style && elmnt.style.pixelLeft) {
		if (typeof(pos) == 'number') elmnt.style.pixelLeft = pos;
		else pos = elmnt.style.pixelLeft;
	}
	return pos;
}
// carpeTop: Cross-browser version of "element.style.top"
// Returns or sets the vertical position of an element.
function carpeTop(elmnt, pos)
{
	if (!(elmnt = document.getElementById(elmnt))) return 0;
	if (elmnt.style && (typeof(elmnt.style.top) == 'string')) {
		if (typeof(pos) == 'number') elmnt.style.top = pos + 'px';
		else {
			pos = parseInt(elmnt.style.top);
			if (isNaN(pos)) pos = 0;
		}
	}
	else if (elmnt.style && elmnt.style.pixelTop) {
		if (typeof(pos) == 'number') elmnt.style.pixelTop = pos;
		else pos = elmnt.style.pixelTop;
	}
	return pos;
}
// moveSlider: Handles slider and display while dragging
function moveSlider(evnt)
{
	var evnt = (!evnt) ? window.event : evnt; // The mousemove event
	if (mouseover) { // Only if slider is dragged
		x = slider.startOffsetX + evnt.screenX // Horizontal mouse position relative to allowed slider positions
		y = slider.startOffsetY + evnt.screenY // Horizontal mouse position relative to allowed slider positions
		if (x > slider.xMax) x = slider.xMax // Limit horizontal movement
		if (x < 0) x = 0 // Limit horizontal movement
		if (y > slider.yMax) y = slider.yMax // Limit vertical movement
		if (y < 0) y = 0 // Limit vertical movement
		carpeLeft(slider.id, x)  // move slider to new horizontal position
		carpeTop(slider.id, y) // move slider to new vertical position
		sliderVal = x + y // pixel value of slider regardless of orientation
		sliderPos = (slider.distance / display.valuecount) *
			Math.round(display.valuecount * sliderVal / slider.distance)
		v = Math.round((sliderPos * slider.scale + slider.from) * // calculate display value
			Math.pow(10, display.decimals)) / Math.pow(10, display.decimals)
		display.value = v // put the new value in the slider display element
		return false
	}
	return
}
// slide: Handles the start of a slider move.
function slide(evnt)
{
	if (!evnt) evnt = window.event; // Get the mouse event causing the slider activation.
	slider = (evnt.target) ? evnt.target : evnt.srcElement; // Get the activated slider element.
	dist = parseInt(slider.getAttribute('distance')) // The allowed slider movement in pixels.
	slider.distance = dist ? dist : carpeDefaultSliderLength // Deafault distance from global var.
	ori = slider.getAttribute('orientation') // Slider orientation: 'horizontal' or 'vertical'.
	orientation = ((ori == 'horizontal') || (ori == 'vertical')) ? ori : carpeSliderDefaultOrientation
		// Default orientation from global variable.
	displayId = slider.getAttribute('display') // ID of associated display element.
	display = document.getElementById(displayId) // Get the associated display element.
	display.sliderId = slider.id // Associate the display with the correct slider.
	dec = parseInt(display.getAttribute('decimals')) // Number of decimals to be displayed.
	display.decimals = dec ? dec : 0 // Default number of decimals: 0.
	val = parseInt(display.getAttribute('valuecount'))  // Allowed number of values in the interval.
	display.valuecount = val ? val : slider.distance + 1 // Default number of values: the sliding distance.
	from = parseFloat(display.getAttribute('from')) // Min/start value for the display.
	from = from ? from : 0 // Default min/start value: 0.
	to = parseFloat(display.getAttribute('to')) // Max value for the display.
	to = to ? to : slider.distance // Default number of values: the sliding distance.
	slider.scale = (to - from) / slider.distance // Slider-display scale [value-change per pixel of movement].
	if (orientation == 'vertical') { // Set limits and scale for vertical sliders.
		slider.from = to // Invert for vertical sliders. "Higher is more."
		slider.xMax = 0
		slider.yMax = slider.distance
		slider.scale = -slider.scale // Invert scale for vertical sliders. "Higher is more."
	}
	else { // Set limits for horizontal sliders.
		slider.from = from
		slider.xMax = slider.distance
		slider.yMax = 0
	}
	slider.startOffsetX = carpeLeft(slider.id) - evnt.screenX // Slider-mouse horizontal offset at start of slide.
	slider.startOffsetY = carpeTop(slider.id) - evnt.screenY // Slider-mouse vertical offset at start of slide.
	mouseover = true
	document.onmousemove = moveSlider // Start the action if the mouse is dragged.
	document.onmouseup = sliderMouseUp // Stop sliding.
	return false
}
// sliderMouseUp: Handles the mouseup event after moving a slider.
// Snaps the slider position to allowed/displayed value.
function sliderMouseUp()
{
	if (mouseover) {
		v = (display.value) ? display.value : 0 // Find last display value.
		pos = (v - slider.from)/(slider.scale) // Calculate slider position (regardless of orientation).
		if (slider.yMax == 0) {
			pos = (pos > slider.xMax) ? slider.xMax : pos
			pos = (pos < 0) ? 0 : pos
			carpeLeft(slider.id, pos) // Snap horizontal slider to corresponding display position.
		}
		if (slider.xMax == 0) {
			pos = (pos > slider.yMax) ? slider.yMax : pos
			pos = (pos < 0) ? 0 : pos
			carpeTop(slider.id, pos) // Snap vertical slider to corresponding display position.
		}
		if (document.removeEventListener) { // Remove event listeners from 'document' (W3C).
			document.removeEventListener('mousemove', moveSlider, false)
			document.removeEventListener('mouseup', sliderMouseUp, false)
		}
		else if (document.detachEvent) { // Remove event listeners from 'document' (IE).
			document.detachEvent('onmousemove', moveSlider)
			document.detachEvent('onmouseup', sliderMouseUp)
		}
	}
	mouseover = false // Stop the sliding.
	kostenChange();
}
function focusDisplay(evnt)
{
	if (!evnt) evnt = window.event; // Get the mouse event causing the display activation.
	display = (evnt.target) ? evnt.target : evnt.srcElement; // Get the activated display element.
	lock = display.getAttribute('typelock') // Is the user allowed to type into the display?
	if (lock == 'on') {
		display.blur()
	}
	return
}

function initSlider() // Set up the sliders and the displays.
{
	sliders = carpeGetElementsByClass(carpeSliderClassName) // Find the horizontal sliders.
	for (i = 0; i < sliders.length; i++) {
		sliders[i].onmousedown = slide // Attach event listener.
	}
	displays = carpeGetElementsByClass(carpeSliderDisplayClassName) // Find the displays.
	for (i = 0; i < displays.length; i++) {
		displays[i].onfocus = focusDisplay // Attach event listener.
	}
	kostenChange();
	if ( document.getElementById('karte_id') )
		showMap(document.getElementById('karte_id'));
}
window.onload = initSlider;


function kostenChange() {
	if ( document.getElementById("display_max_spieler")) {
		var basispreis = 7, spielerkosten = 0.75, sektorenfaktor = 0.05, sfaktor=15, tfaktor = 49, aktion = 0.5;
		m = document.getElementById("display_max_spieler").value*1;
		tage = document.getElementById("display_tage").value*1;
		speed2 = document.getElementById("display_speed").value*1;
		s = document.getElementById("karte_id");
		t = s.options[s.options.selectedIndex].text;
		sek = t.substring(t.indexOf("(")+1,t.indexOf(")"))*1;
		kosten = Math.round( ( basispreis +  ( sek * sektorenfaktor + m * spielerkosten) * Math.pow( speed2/sfaktor, 1/4 ) * tage / tfaktor )*100*aktion  ) / 100 ;
		if (sek==0) kosten = 0;
		document.getElementById("kosten").value = kosten;
		document.getElementById("kostenfeld").innerHTML = kosten ;
		document.getElementById("kostenspieler").innerHTML = Math.round( (kosten)/m*100) / 100 ;
	}
}

//--------------------- WRITEBOX
				f=0;
				u=0;
				it=0;
				c=0;
				url=0;
				function changeBG(oTD,bF)
				{
					if (bF) {sF='#E9E1CE';} else {sF='#C8BEA7';}
					oTD.style.backgroundColor=sF;
				}

