/*
 * jQuery Color Animations
 * Copyright 2007 John Resig
 * Released under the MIT and GPL licenses.
 */

(function(jQuery){

	// We override the animation for all of these color styles
	jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){
		jQuery.fx.step[attr] = function(fx){
			if ( fx.state == 0 ) {
				fx.start = getColor( fx.elem, attr );
				fx.end = getRGB( fx.end );
			}

			fx.elem.style[attr] = "rgb(" + [
				Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),
				Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),
				Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)
			].join(",") + ")";
		}
	});

	// Color Conversion functions from highlightFade
	// By Blair Mitchelmore
	// http://jquery.offput.ca/highlightFade/

	// Parse strings looking for color tuples [255,255,255]
	function getRGB(color) {
		var result;

		// Check if we're already dealing with an array of colors
		if ( color && color.constructor == Array && color.length == 3 )
			return color;

		// Look for rgb(num,num,num)
		if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
			return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];

		// Look for rgb(num%,num%,num%)
		if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
			return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];

		// Look for #a0b1c2
		if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
			return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];

		// Look for #fff
		if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
			return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];

		// Otherwise, we're most likely dealing with a named color
		return colors[jQuery.trim(color).toLowerCase()];
	}
	
	function getColor(elem, attr) {
		var color;

		do {
			color = jQuery.curCSS(elem, attr);

			// Keep going until we find an element that has color, or we hit the body
			if ( color != '' && color != 'transparent' || jQuery.nodeName(elem, "body") )
				break; 

			attr = "backgroundColor";
		} while ( elem = elem.parentNode );

		return getRGB(color);
	};
	
	// Some named colors to work with
	// From Interface by Stefan Petre
	// http://interface.eyecon.ro/

	var colors = {
		aqua:[0,255,255],
		azure:[240,255,255],
		beige:[245,245,220],
		black:[0,0,0],
		blue:[0,0,255],
		brown:[165,42,42],
		cyan:[0,255,255],
		darkblue:[0,0,139],
		darkcyan:[0,139,139],
		darkgrey:[169,169,169],
		darkgreen:[0,100,0],
		darkkhaki:[189,183,107],
		darkmagenta:[139,0,139],
		darkolivegreen:[85,107,47],
		darkorange:[255,140,0],
		darkorchid:[153,50,204],
		darkred:[139,0,0],
		darksalmon:[233,150,122],
		darkviolet:[148,0,211],
		fuchsia:[255,0,255],
		gold:[255,215,0],
		green:[0,128,0],
		indigo:[75,0,130],
		khaki:[240,230,140],
		lightblue:[173,216,230],
		lightcyan:[224,255,255],
		lightgreen:[144,238,144],
		lightgrey:[211,211,211],
		lightpink:[255,182,193],
		lightyellow:[255,255,224],
		lime:[0,255,0],
		magenta:[255,0,255],
		maroon:[128,0,0],
		navy:[0,0,128],
		olive:[128,128,0],
		orange:[255,165,0],
		pink:[255,192,203],
		purple:[128,0,128],
		violet:[128,0,128],
		red:[255,0,0],
		silver:[192,192,192],
		white:[255,255,255],
		yellow:[255,255,0]
	};
	
})(jQuery);

function clearField(id, normValue, afterValue) {
	var field = document.getElementById(id);
	if (field.value == normValue) {
		field.value = afterValue;
	}
}

function hideWelcomeDialog() {
	hide('suxedooWelcome');
	hide('holePageOverlay');
	makePOSTRequest('/home', 'closeBox=true');
	if (pageTracker != null) {
		pageTracker._trackPageview( '/home?closeBox=true' );
	}
}

function showBigTombolaPreview(element, imagePath) {
	element.src= 'image/?image=tombolas/'+imagePath+'&width=72&height=72&uncut=true';
	element.className = 'userTombolaImageBig';
}

function disableLogin() {
	var loginBtn = document.getElementById('login-btn');
	loginBtn.disabled = true;
}

function removeElement(id) {
	
	
}

function deleteMessage(id,closeFB) {
	makePOSTRequest('/member/message/box?mid='+id+'&action=delete');
	
	var elements = getElementsByClassName('message');
	var swit = true;
	for (var i = 0 ; i < elements.length ; i++) {
		var element = elements[i];
		
		if (element.id != 'message'+id && element.nodeName=='TR') {
			if (swit) {
				$(element).animate({'backgroundColor':'#E9F3FF'}, 1200,null);
			} else {
				$(element).animate({'backgroundColor':'#FFFFFF'}, 1200,null);
			}
			swit = !swit;
		}
	}
	
	
	
	if (closeFB) {
		$.fn.fancybox.close();
	}
	
	$("#message"+id).fadeOut(1200,function() { 
		var el = document.getElementById('message'+id);
		el.className = 'deleted';
	}); 
	
	return false;
}
/*
var colorStep = 0;
function fadeColor() {
	var colorArr = new Array('#FFFFFF',
	'#FEFEFF', '#FDFDFF', '#FCFCFF', '#FBFBFF',
	'#FAFAFF', '#F9F9FF', '#F8F8FF', '#F7F7FF',
	'#F6F6FF', '#F5F5FF', '#F4F4FF', '#F3F3FF',
	'#F2F3FF', '#F1F3FF', '#EFF3FF', '#EEF3FF',
	'#EDF3FF', '#ECF3FF', '#EBF3FF', '#EAF3FF', '#E9F3FF');
	
	if (colorStep < colorArr.length) {
		var messageTable = document.getElementById('messageTable');
		for (var i = 0 ; i < messageTable.children.length ; i++) {
			var element = messageTable.children[i];
			element.style.backgroundColor = '#ffffff';
			var element = messageTable.children[i];
			for (var i2 = 0 ; i2 < element.children.length ; i2++) {
				var td = messageTable.children[i];
				td.style.backgroundColor = '#ffffff';
			}
		}
		colorStep++;
		window.setTimeout('fadeColor()',40);
	} else {
		colorStep = 0;
	}
}*/


function hideBigTombolaPreview(element, imagePath) {
	element.src= 'image/?image=tombolas/'+imagePath+'&width=38&height=38&quality=high';
	element.className = 'userTombolaImage';
}

function showRejectReasons() {
	var statusObj = document.getElementById('status');
	var status = statusObj.options[statusObj.selectedIndex].value;
	var reasonObj = document.getElementById('reason');
	var changeReason = document.getElementById('changeReason');
	if (status == '3') {
		reasonObj.style.display = 'block';
	} else {
		reasonObj.style.display = 'none';
	}
	
	if (changeReason != null) {
		if (status == '5') {
			changeReason.value = 'Freigeschalten';
		} else if (status == '3') {
			changeReason.value = 'Abgelehnt';
		} else {
			changeReason.value = '';
		}
	}
}



function selectMenu(current) {
	 
	var tags = getElementsByClassName('tabcontent');
	for (var i = 0 ; i < tags.length ; i++) {
		var element = tags[i];
		//element.style.display = 'none';
		$(element).slideUp();
	//	doFadeOut(element);
	}
	
	var tags = getElementsByClassName('tabcontentNeutral');
	for (var i = 0 ; i < tags.length ; i++) {
		var element = tags[i];
		$(element).slideUp();
		//doFadeOut(element);
	}
	
	var tags = getElementsByClassName('tabmenu-item');
	for (var i = 0 ; i < tags.length ; i++) {
		var element = tags[i];
		element.className = 'tabmenu-item';
	}
	var selectedItem = current;
	
	var currentMenu = document.getElementById('tabmenu' + selectedItem);
	currentMenu.className = 'tabmenu-item current';
	
	var currentMenu = document.getElementById('tab' + selectedItem);
	$(currentMenu).slideDown();
	
	var pageToLoad = location.pathname + "?tab="+current.toLowerCase();
	if (pageTracker != null) {
		pageTracker._trackPageview( pageToLoad );
	}
}

function setPriorityForFunquestion() {
	var funQuestion = document.getElementById('funQuestion');
	var priority = document.getElementById('priority');
	if (funQuestion.value == 'on') {
		priority.value = '0';
	} else {
		priority.value = '5';
	}
}

function checkMaxlength(textarea,maxlen) {
	var elLeft = document.getElementById(textarea.id + '_left');
	var left = maxlen - textarea.value.length;
	if (left < 0) {
		left = 0;
		textarea.value = textarea.value.substring(0,maxlen);
	}
	elLeft.innerHTML = left;
}


function openWishBox(id, title) {
	var productTitle = document.getElementById('productTitle');
	productTitle.innerHTML = title;
	show('wishBox');
	
	var wishDesc = document.getElementById('wishDesc');
	wishDesc.focus();
	
	var priceWishId = document.getElementById('priceWishId');
	priceWishId.value = id;
	
	var tags = getElementsByClassName('wishIcon');
	for (var i = 0 ; i < tags.length ; i++) {
		var element = tags[i];
		element.src='/files/images/icons/star_gray.png';
	}
	
	var wishIcon = document.getElementById('wishIcon'+id);
	wishIcon.src='/files/images/icons/star.png';
}


//memberTombolaCreate
function fEndByDate() {
	var endByDate = document.getElementById('endByDate');
	var endByTickets = document.getElementById('endByTickets');
	
	endByDate.style.color = 'black';
	endByTickets.style.color = 'gray';
}

function fEndByTickets() {
	var endByDate = document.getElementById('endByDate');
	var endByTickets = document.getElementById('endByTickets');	
	
	endByDate.style.color = 'gray';
	endByTickets.style.color = 'black';
}

function showBangField() {
	var bangable = document.getElementById('bangable');
	
	if ('none' == bangable.style.display) {
		bangable.style.display = 'inline';
	} else {
		bangable.style.display = 'none';
	}
}

function openBangTombola () {
	var bangDialog = document.getElementById('modalBangDialog');
	bangDialog.style.display = 'block';
}
function closeBangTombola () {
	var bangDialog = document.getElementById('modalBangDialog');
	bangDialog.style.display = 'none';
}

function openInfoBangTombola () {
	var bangDialog = document.getElementById('infoBangDialog');
	bangDialog.style.display = 'block';
}
function closeInfoBangTombola () {
	var bangDialog = document.getElementById('infoBangDialog');
	bangDialog.style.display = 'none';
}

function openTombolaCreateDialog () {
	var bangDialog = document.getElementById('tombolaCreateDialog');
	bangDialog.style.display = 'block';
}
function closeTombolaCreateDialog () {
	var bangDialog = document.getElementById('tombolaCreateDialog');
	bangDialog.style.display = 'none';
}
function openTombolaEstimateDialog (tid) {
	var bangDialog = document.getElementById('tombolaEstimateDialog');
	var tidHiddenField; tidHiddenField = document.getElementById('tidEstField');
	tidHiddenField.value = tid;
	bangDialog.style.display = 'block';
}
function closeTombolaEstimateDialog () {
	var bangDialog = document.getElementById('tombolaEstimateDialog');
	var tidHiddenField; tidHiddenField = document.getElementById('tidEstField');
	tidHiddenField.value = "";
	bangDialog.style.display = 'none';
}
function changeEst (value) {
	var estValue; estValue = document.getElementById('estValue');
	var estText; estText = document.getElementById('estText');
	var estRadio; estRadio = document.getElementById('estRadio'+value);
	if (value == 1) {
		estValue.value = "1";
		estText.innerHTML = "<span style=\"color:#C25353\"><b>Negativ</b></span>";
	} else if (value == 3) {
		estValue.value = "3";
		estText.innerHTML = "<span style=\"color:#617985\"><b>Neutral</b></span>";
	} else if (value == 5) {
		estValue.value = "5";
		estText.innerHTML = "<span style=\"color:#419F41\"><b>Positiv</b></span>";
	}
	estRadio.checked = true;
}

function showSuxedooSubmenu() {
	var menu = document.getElementById('menuSuxedooMouseHandler');
		var submenu = document.getElementById('mySuxedooSubmenu');
		if (submenu != null) {
			submenu.style.height = '150px';
		}
		
		if (menu != null) {
			menu.style.height = '160px';
		}
}

function hideSuxedooSubmenu() {
	
	var menu = document.getElementById('menuSuxedooMouseHandler');
	
	//if (suxedooSubmenuVisible == true) {
		var submenu = document.getElementById('mySuxedooSubmenu');
		if (submenu != null) {
			submenu.style.height = '0px';
			//smoothChangeAttribute('mySuxedooSubmenu', 'height', 0);
		}
		
		
		if (menu != null)  {
			menu.style.height = '70px';
		}
		//suxedooSubmenuVisible = false;
	//}
}

function showSubmenu(mhid, submid) {
	var menu = document.getElementById(mhid);
	var submenu = document.getElementById(submid);
	if (submenu != null) {
		submenu.style.height = 'auto';
	}
	if (menu != null) {
		menu.style.height = '440px';
		menu.style.display = 'block';
	}
}

function openCloseOption(topid) {
	var options; options = document.getElementById("dos"+topid);
	if (options.style.display == "none") {
		options.style.display = "block";
		showSubmenu('tMenu'+topid,'dos'+topid);
	} else {
		options.style.display = "none";
		hideSubmenu(null,'tMenu'+topid,'dos'+topid);
	}
}

function hideSubmenu(e,mhid, submid,thisEl) {
	if (!e) var e = window.event;
	var relTarg = e.relatedTarget || e.toElement;
	if (relTarg != null) {
		if (relTarg.className == 'dropdown') {
			if (thisEl.id == relTarg.id) {
				return;
			}
		}
		if (relTarg.className == 'divoptions' || relTarg.className == 'divoption' || relTarg.className == 'divselect') {
			return;
		}
	}
	
	var menu = document.getElementById(mhid);
	var submenu = document.getElementById(submid);
	if (submenu != null) {
		//doFadeOut('#'+submenu.id); 
		submenu.style.height = 'auto';
		submenu.style.display = 'none';
	}
	if (menu != null)  {
		menu.style.height = '17px';
		menu.style.display = 'inline';
	}
}


function changeMainTombolaPicture( pic ) {
	var elMainTombolaPicture = document.getElementById('mainTombolaPicture');
	elMainTombolaPicture.src = pic;
}

var lastState;
var posStart; 
var posEnd; 
function saveLastState(tag, input) {
	if ( input.value.indexOf(tag) >= 0 ) {
		lastState = input.value;
		posStart = input.selectionStart; 
        posEnd = input.selectionEnd; 
	}
}
//z.B. damit der URL-Tag nicht aus einem Textfeld entfernt werden kann.
function checkTagInTextarea(tag, input) {
	if ( input.value.indexOf(tag) < 0 ) {
		input.value = lastState;
		input.selectionStart = posStart; 
        input.selectionEnd = posEnd; 
		return false;
	} else {
		return true;
	}
}

var currentResult = 0;
function addSearchResult( q, url, title, pricePicture, desc ) {
	var searchInputEl = document.getElementById( 'searchInput' );
	if (searchInputEl.value != q) 
		return;
	
	var searchResultsEl = document.getElementById('searchResults' );
	if (searchResultsEl.style.display != 'block') {
		doFadeIn(searchResultsEl);
	} 
	//searchResultsEl.style.display = 'block';
	
	var switchColor = '';
	if ((currentResult % 2) == 0) {
		switchColor = ' style="background:#e9f3ff"';
	}
	currentResult++;
	searchResultsEl.innerHTML = searchResultsEl.innerHTML + '<div class="searchRes"'+switchColor+'><a href="'+url+'"><img src="image/?width=50&height=50&image=tombolas/'+pricePicture+'"/><div class="searchResTitle">' + title + '</div><div class="searchResDesc">' + desc + '</div></a></div>';
}

function showRegionsFor(select) {
	var dropdownIndex = select.selectedIndex;
	var dropdownValue = select[dropdownIndex].value;
	
	
	var regionCaption = document.getElementById('regionCaption');
	if (regionCaption != null) {
		if (dropdownValue == 'ch') {
			regionCaption.innerHTML = 'Kanton:';
		} else {
			regionCaption.innerHTML = 'Bundesland:';
		}
	}
	
	hide( 'regions_ch' );
	hide( 'regions_de' );
	hide( 'regions_at' );
	show( 'regions_' + dropdownValue );
	
}

function zipcodeAnswer(zipCode, city, region) {
	var elCity = document.getElementById('city');
	var elRegion = document.getElementById('region');
	var elCityInput = document.getElementById('city-input');
	var elRegionInput = document.getElementById('region-input');
	elCity.innerHTML = city;
	elRegion.innerHTML = region;
	elCityInput.value = city;
	elRegionInput.value = region;
}

function show(id) {
	var el = document.getElementById(id);
	el.style.display = 'block';
}

function hide(id) {
	var el = document.getElementById(id);
	el.style.display = 'none';
}

function toggle(id) {
	el = document.getElementById(id);
	if ( el.style.display == 'block' ) {
		el.style.display = 'none';
	} else {
		el.style.display = 'block';
	}
}



function makePOSTRequest(url, query) {
	jQuery.post( url, query, alertContents );
}


function getVal(name, responseXML) {

	var responseElement = responseXML.documentElement;
	var element = responseElement.getElementsByTagName(name)[0];
	if ((element != undefined) && (element.childNodes[0] != undefined)) {
		return element.childNodes[0].nodeValue;
	} else {
		return null;
	}
}

function alertContents(data, textStatus) {
	if (textStatus == 'success') { 
		
		var execute = getVal('execute', data);
		if (execute != null) {
			eval(execute);
		}
	}
}


function getElementsByClassName(class_name) {
	var all_obj, ret_obj = new Array(), j = 0, teststr;

	if (document.all)
		all_obj = document.all;
	else if (document.getElementsByTagName && !document.all)
		all_obj = document.getElementsByTagName("*");

	for (i = 0; i < all_obj.length; i++) {
		if (all_obj[i].className.indexOf(class_name) != -1) {
			teststr = "," + all_obj[i].className.split(" ").join(",") + ",";
			if (teststr.indexOf("," + class_name + ",") != -1) {
				ret_obj[j] = all_obj[i];
				j++;
			}
		}
	}
	return ret_obj;
}


//tombola.jsp
function submitTombola() {
	var elForm = document.getElementById('tombolaForm');
	elForm.submit();
}


//for member-create-tombola
function selectImage(index, url) {
	var elImg = document.getElementById('resultImage' + index);
	elImg.style.border = '1px solid #0098A7';
}

//for member-create-tombola
function checkWinningTickets() {
	var winningTicketsError = document.getElementById('winningTicketsError');
	var winningTickets = document.getElementById('winningTickets');
	if ( (winningTickets.value * 1) != winningTickets.value) {
		winningTicketsError.style.display = 'block';
	} else {
		winningTicketsError.style.display = 'none';
	}
}

function updateZipcode(zipCode) {
	var elCountry = document.getElementById('country');
	var value = elCountry.options[elCountry.selectedIndex].value;
	
	makePOSTRequest('service','action=zip&country='+value+'&zipCode='+zipCode);
	var zipCodeNotFound = document.getElementById('zipCodeNotFound');
	zipCodeNotFound.style.display = 'none';
}


function checkUsername(username) {
	makePOSTRequest('service','action=username&username=' + username);
}

function setHighestBet(username,picture,winningTickets,remainingTime,minBid) {
	//$('.highestBidValue').animate({'color':'#000000'}, 'slow');
	
	$('.highestBidValue').html(winningTickets);
	var highestBidPicture = document.getElementById('highestBidPicture');
	highestBidPicture.src= 'image/?image=members/'+picture+'&width=30&height=30';
	$('.highestBidusername').html(username);
	$('#remainingTime').html(remainingTime);
//	$('.highestBidValue').animate({'background-color':'#F4F9FF'}, 'slow');
	
	var winningTicketsInput = document.getElementById('winningTicketsInput');
	if (minBid > winningTicketsInput.value*1) {
		var winningTicketsDisplay = document.getElementById('winningTicketsDisplay');
		winningTicketsDisplay.innerHTML = minBid;
		winningTicketsInput.value = minBid;
		
		$('#isHighestBet').html('');
	}
}

function usernameAvailable(username) {
	var usernameUnavailable = document.getElementById('usernameField');
	usernameUnavailable.className = '';
}

function usernameUnavailable(username) {
	var usernameUnavailable = document.getElementById('usernameField');
	usernameUnavailable.className = 'formErrorLine';
}

function zipcodeNotFound() {
	var zipCodeNotFound = document.getElementById('zipCodeNotFound');
	zipCodeNotFound.style.display = 'inline';
	var elCity = document.getElementById('city');
	var elRegion = document.getElementById('region');
	elCity.innerHTML = '';
	elRegion.innerHTML = '';
}

function checkMail(mail) {
	var elMailError = document.getElementById('mailField');
	var elMailErrorText = document.getElementById('mailError');
	var filter=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/;
	if (filter.test(mail)) {
		elMailError.className = '';
		elMailErrorText.innerHTML = '';
	} else {
		elMailError.className = 'formErrorLine';
		elMailErrorText.innerHTML = 'Ungültige Mail';
	}
}

function incWinningTickets(maxTickets, t_wintickets, tp_wintickets) {
	var elDisplay = document.getElementById( 'winningTicketsDisplay' );
	var elInput = document.getElementById( 'winningTicketsInput' );
	var elNoTicketsMsg = document.getElementById( 'noTickets' );
	if(elInput.value < maxTickets) {
		elDisplay.innerHTML++;
		elInput.value++;
		elNoTicketsMsg.style.display = 'none';
	} else {
		elNoTicketsMsg.style.display = 'inline';
	}
	setWTBAR(t_wintickets + (elInput.value*1), tp_wintickets + (elDisplay.innerHTML*1));
}

function decWinningTickets(maxTickets, t_wintickets, tp_wintickets) {
	var elDisplay = document.getElementById( 'winningTicketsDisplay' );
	var elInput = document.getElementById( 'winningTicketsInput' );
	if (elInput.value > 1) {
		elDisplay.innerHTML = elDisplay.innerHTML - 1;
		elInput.value = elInput.value - 1;
	}

	var elNoTicketsMsg = document.getElementById( 'noTickets' );
	if(elInput.value < maxTickets) {
		elNoTicketsMsg.style.display = 'none';
	} else {
		elNoTicketsMsg.style.display = 'inline';
	}
	setWTBAR(t_wintickets + (elInput.value*1), tp_wintickets + (elDisplay.innerHTML*1));
}

var incIsMouseDown = false;
var decIsMouseDown = false;
function incWTUp()
{
	incIsMouseDown = false;
}
function decWTUp()
{
	decIsMouseDown = false;
}

function incWTDown(maxTickets, t_wintickets, tp_wintickets)
{
	incIsMouseDown = true;
	
	incWinningTickets(maxTickets, t_wintickets, tp_wintickets);
	window.setTimeout('incWTWhenNotUp('+maxTickets+',300, '+t_wintickets+', '+tp_wintickets+')',500);
}
function decWTDown(maxTickets, t_wintickets, tp_wintickets)
{
	decIsMouseDown = true;
	decWinningTickets(maxTickets, t_wintickets, tp_wintickets);
	window.setTimeout('decWTWhenNotUp('+maxTickets+',300, '+t_wintickets+', '+tp_wintickets+')',500);
}

function incWTWhenNotUp(maxTickets, wait, t_wintickets, tp_wintickets)
{
	if (wait > 100) {
		wait = wait - 10;
	}
	if (incIsMouseDown) {
		incWinningTickets(maxTickets, t_wintickets, tp_wintickets);
		window.setTimeout('incWTWhenNotUp('+maxTickets+','+wait+', '+t_wintickets+', '+tp_wintickets+')',wait);
	}
	else {
		return true;
	}
}

function decWTWhenNotUp(maxTickets, wait, t_wintickets, tp_wintickets)
{
	if (wait > 100) {
		wait = wait - 10;
	}
	if (decIsMouseDown) {
		decWinningTickets(maxTickets, t_wintickets, tp_wintickets);
		window.setTimeout('decWTWhenNotUp('+maxTickets+','+wait+', '+t_wintickets+', '+tp_wintickets+')',wait);
	}
	else {
		return true;
	}
}

function setWTBAR(t_wintickets, m_wintickets)
{
	var chances = (70*m_wintickets)/t_wintickets+Math.min(30,Math.log(m_wintickets+1)*7);
	var elDisplay = document.getElementById( 'WTBAR' );
	if (elDisplay != null) {
		elDisplay.style.width = Math.ceil(chances*1.67)+ 'px';
	}
}


function setWTBARBCK(t_wintickets, m_wintickets)
{
	var winchance1 = 100 * m_wintickets / t_wintickets;
	var winchance2 = m_wintickets;
	var wcpercent1 = winchance2;
	if (wcpercent1 > 99) {wcpercent1 = 99;}
	var wcpercent2 = 100 - wcpercent1;
	
	var wcvalue1 = (wcpercent1 * winchance1 / 100);
	var wcvalue2 = (wcpercent2 * winchance2 / 100);
	
	var elDisplay = document.getElementById( 'WTBAR' );
	var projectedChance = wcvalue1 + wcvalue2;
	elDisplay.style.width = Math.ceil(projectedChance*1.67)+ 'px';
}



function updateAllCountdowns() {
	var tags = getElementsByClassName('countdown');
	var prefix='';
	for (var i = 0 ; i < tags.length ; i++) {
		var element = tags[i];
		var date = element.innerHTML.split(":");
		if (date.length == 3) {
			var hourStr = date[0];
			if (hourStr.substr(0,4) == 'ca. ') {
				hourStr = hourStr.substr(4,5);
				prefix='ca. ';
			}
			
			var hour = hourStr * 1 ;
			var minute = date[1] * 1;
			var second = date[2] * 1;
			
			if (second == 0) {
				if (minute == 0) {
					if (hour == 0) {
						element.innerHTML = 'Auslosung!';
						return;
					} else {
						hour--;
						minute = 59;
					}
				} else {
					minute--;
					second = 59;
				}
			} else {
				second--;
			}
			if (minute < 10) {
				minute = "0" + minute;
			}
			if (second < 10) {
				second = "0" + second;
			}
			if (hour < 10) {
				hour = "0" + hour;
			}
			
			
			element.innerHTML = prefix + hour + ':' + minute +':' + second;
		}
	}
	window.setTimeout('updateAllCountdowns()',1000);
}
updateAllCountdowns();

function autoClose(time) {
	var closeCountdown = document.getElementById('closeCountdown');
	if (closeCountdown.innerHTML*1 == 1) {
		doFadeOut('#modalDialog');
	} else {
		time = time-1;
		closeCountdown.innerHTML = time;
		window.setTimeout("autoClose("+(time)+");",1000)
	}
}

function updateAnswerCountdown(current) {
	var tags = getElementsByClassName('answerCountdown');
	for (var i = 0 ; i < tags.length ; i++) {
		var element = tags[i];
		
		if (current == 1) {
			element.innerHTML = 'Abstimmen!';
			current = 0;
			element.disabled = false;
			var qtEl = document.getElementById('questionTickets');
			qtEl.className = 'tickets1-active';
		} else {
			current--;
		}
		
		if (current > 60) {
			var seconds = current % 60;
			var minutesInSeconds = current - seconds;
			var minutes = minutesInSeconds / 60;
			element.innerHTML = minutes + 'min. ' + seconds + 'sek.';
		} else if (current > 0) {
			element.innerHTML = current + 'sek.';
		} 
		
	}
	if (current > 0) {
		window.setTimeout('updateAnswerCountdown('+current+')',1000);
	}
}

function updateExchangeCountdown(current) {
	var tags = getElementsByClassName('exchangeCountdown');
	for (var i = 0 ; i < tags.length ; i++) {
		var element = tags[i];
		
		if (current == 1) {
			element.innerHTML = '0 Sekunden';
			current = 0;
		} else {
			current--;
		}
		
		if (current > 60) {
			var seconds = current % 60;
			var minutesInSeconds = current - seconds;
			var minutes = minutesInSeconds / 60;
			element.innerHTML = minutes + ' Minuten ' + seconds + ' Sekunden';
		} else if (current > 0) {
			element.innerHTML = current + ' Sekunden';
		} 
		
	}
	if (current > 0) {
		window.setTimeout('updateExchangeCountdown('+current+')',1000);
	} else {
		makePOSTRequest('/exchange', 'action=check'); 
		window.setTimeout('updateExchangeCountdown(10)',1000);
	}
}

 

function countChildNodes(el) {
	var cnt = 0;
	for (var i = 0 ; i < el.childNodes.length ; i++) {
		if (el.childNodes[i].nodeType == 1) {
			cnt++;
		}
	}
	return cnt;
}

function nextResults(count) {
	var currentVal = getAttributeValue('tombolaScrollContent', 'left');
	if ((currentVal % 520) != 0) {
		return;
	}
	var tombolaScrollContent = document.getElementById('tombolaScrollContent');
	var offsetWidth = countChildNodes(tombolaScrollContent) * 130;
	if (-(currentVal - 520*2) >= offsetWidth) {
		var nextResults = document.getElementById('nextResults');
		nextResults.style.display = 'none';
	}
	if (currentVal == 0) {
		var lastResults = document.getElementById('lastResults');
		lastResults.style.display = 'block';
	}
	smoothChangeAttribute('tombolaScrollContent', 'left', currentVal - 520);
}

function lastResults(count) {
	var currentVal = getAttributeValue('tombolaScrollContent', 'left');
	if ((currentVal % 520) != 0) {
		return;
	}
	var nextResults = document.getElementById('nextResults');
	var tombolaScrollContent = document.getElementById('tombolaScrollContent');
	var offsetWidth = countChildNodes(tombolaScrollContent) * 130;
	if (-(currentVal) <= offsetWidth) {
		var nextResults = document.getElementById('nextResults');
		nextResults.style.display = 'block';
	}
	
	if (currentVal == -520) {
		var lastResults = document.getElementById('lastResults');
		lastResults.style.display = 'none';
	}
	smoothChangeAttribute('tombolaScrollContent', 'left', currentVal + 520);
}


function smoothChangeAttribute(id, attribute, newValue) {
	el = document.getElementById(id);
	attributeStr = new String(el.style[attribute]);
	originalValue = attributeStr.substr(0,attributeStr.length - 2) * 1;
	window.setTimeout("doSmoothChangeAttribute( '"+id+"', '"+attribute+"', "+newValue+", "+originalValue+" )", 50);
}

function getVelocity(originalValue, newValue, currentValue) {
	var minVelocity = 1;
	var maxVelocity = 10;
	var percent;
	var difference;
	var halfWay;
	var toGo;
	var distanceToMiddle;
	var velocity;
	
	if (originalValue > newValue) {
		difference = originalValue - newValue;
	} else {
		difference = newValue - originalValue;
	}
	halfWay = difference / 2;
	
	//not too fast for small changes
	maxVelocity = 150 / 1000 * difference;
	
	if (newValue > currentValue) {
		toGo = newValue - currentValue;
	} else {
		toGo = currentValue - newValue;
	}
	
	distanceToMiddle = Math.abs( halfWay - toGo );
	
	
	percent = 100 - (100 / difference * distanceToMiddle);
	
	velocity = maxVelocity / 100 * percent;
	if (velocity < minVelocity) {
		velocity = minVelocity;
	}
	if (velocity > toGo) {
		velocity = toGo;
	}
	return velocity;
}

function getAttributeValue(element,attribute) {
	var el = document.getElementById(element);
	var attributeStr = new String(el.style[attribute]);
	return attributeStr.substr(0,attributeStr.length - 2) * 1
}

function doSmoothChangeAttribute(id, attribute, newValue,originalValue) {
	var el;
	var currentValue;
	var iLen;
	var newValue;
	var newAttributeValue;
	var difference;
	var step;

	el = document.getElementById(id);
	currentValue = getAttributeValue(id,attribute);
	step = getVelocity(originalValue, newValue, currentValue);
	
	if (newValue != currentValue) {
		if (newValue < currentValue) {
			el.style[attribute] = (currentValue - step) + 'px';
		} else if (newValue > currentValue) {
			el.style[attribute] = (currentValue + step) + 'px';
		}
		window.setTimeout("doSmoothChangeAttribute( '"+id+"', '"+attribute+"', "+newValue+", "+originalValue+" )", 35);
	}
}


function msnNextStep() {
	var el = document.getElementById( 'msnLoginNext' );
	el.value = 'bitte warten...';
}

function checkAllContacts() {
	var allContacts = document.getElementById('allContacts');
	var value = allContacts.checked;
	var contacts = getElementsByClassName('contact');
	for (var i = 0 ; i < contacts.length ; i ++) {
		contacts[i].checked = value;
		
	}
}


function deleteFriend(id) {
	if (confirm('Möchtest du diesen Freund wirklich löschen?')) {
		makePOSTRequest('/suxedoo/action','action=delete_buddy&id='+id);
		doFadeOut('#buddy'+id);
	}
	return false;
}

function deletePicture(id) {
	if (confirm('Möchtest du dieses Bild wirklich löschen?')) {
		makePOSTRequest('/member/pictures','action=delete_picture&id='+id);
		doFadeOut('#memberPicture'+id);
	}
	return false;
}

function exitSearch() {
	var elSearchInput = document.getElementById( 'searchInput');
	elSearchInput.value = 'suchen...';
	
	window.setTimeout('clearSearchResults()',200);
}

function clearSearchResults(q) {
	var searchInputEl = document.getElementById( 'searchInput' );
	if (searchInputEl.value != q) 
		return;
	
	var searchResultsEl; searchResultsEl = document.getElementById('searchResults');
	searchResultsEl.innerHTML = '';
	//searchResultsEl.style.display = 'none';
	currentResult = 0;
}

function hideSearchResults(q) {
	var searchInputEl = document.getElementById( 'searchInput' );
	if (searchInputEl.value != q) 
		return;
	
	clearSearchResults();
	var searchResultsEl; searchResultsEl = document.getElementById('searchResults');
	doFadeOut(searchResultsEl);
}

function refreshSearch() {
	var searchInputEl = document.getElementById( 'searchInput' );
	searchInputEl.autocomplete = 'off';
	if (searchInputEl.value=='') {
		hideSearchResults(searchInputEl.value);
	} else { 
		if (searchInputEl.value.length > 2) {
			makePOSTRequest('search', 'q='+searchInputEl.value);
		} else {
			hideSearchResults(searchInputEl.value);
		}
	}
}

function getFocus(elementID, text) {
	element = document.getElementById(elementID);

	element.value = element.value.replace(text, '');
	element.style.color = 'black';

}

function looseFocus(elementID, text) {
	element = document.getElementById(elementID);
	if (element.value == '') {
		element.value = text;
		element.style.color = 'gray';
		element.type = 'text';
	}
}

function usernameFocus() {
	var el = document.getElementById( 'loginUsername');
	if (el.value == 'Benutzername') {
		el.value = '';
		el.style.color ='#000000';
	}
}

function usernameBlur() {
	var el = document.getElementById( 'loginUsername');
	if (el.value == '') {
		el.value = 'Benutzername';
		el.style.color ='#444444';
	}
}

function emailFocus() {
	var el = document.getElementById( 'email');
	if (el.value == 'Email Adresse') {
		el.value = '';
		el.style.color ='#000000';
	}
}

function emailBlur() {
	var el = document.getElementById( 'email');
	if (el.value == '') {
		el.value = 'Email Adresse';
		el.style.color ='#444444';
	}
}

function preparePasswordField() {
	var pwField = document.getElementById('loginPassword');
	if (navigator.appName != 'Microsoft Internet Explorer') {
		if (pwField != null) {
			pwField.type = 'text';
		}
	}
	
	var regPW = document.getElementById('reg-password');
	if (navigator.appName != 'Microsoft Internet Explorer') {
		if (regPW != null) {
			regPW.type = 'text';
		}
	}
}

function passwordFocus() {
	var el = document.getElementById( 'loginPassword');
	if (el != null) {
		if (el.value == 'Passwort') {
			if (navigator.appName != 'Microsoft Internet Explorer') {
				el.type = 'password';
			}
			el.value = '';
			el.style.color ='black';
		}
	}
}

function regPasswordFocus() {
	var el = document.getElementById( 'reg-password');
	if (el != null) {
		if (el.value == 'Passwort') {
			if (navigator.appName != 'Microsoft Internet Explorer') {
				el.type = 'password';
			}
			el.value = '';
			el.style.color ='black';
		}
	}
}

function passwordBlur() {
	var el = document.getElementById( 'loginPassword');
	if (el != null) {
		if (el.value == '') {
			if (navigator.appName != 'Microsoft Internet Explorer') {
				el.type = 'text';
			}
			el.value = 'Passwort';
			el.style.color ='#444444';
		}
	}
}

//Admin

function adminMakeNextAnswerVisible(nr) {
	nr++;
	var el = document.getElementById('answer'+nr);
	if (el != null) {
		el.style.display = 'block';
	}
}

function adminMakeNextAnswerVisible2(nr) {
	nr++;
	var elAnswer = document.getElementById('answer'+nr);
	var elAlt = document.getElementById('altAnswer'+nr);
	var elValue = document.getElementById('value'+nr);
	if (elAnswer != null) {
		elAnswer.style.display = 'block';
		elAlt.style.display = 'block';
		elValue.style.display = 'block';
	}
}

function handleNewsletterUsergroup() {
	var elUsergroup;
	var value;
	elUsergroup = document.getElementById('usergroup');
	value = elUsergroup.options[elUsergroup.selectedIndex].value;
	hide('tombolaSelection');
	if (value == 'tombola') {
		show('tombolaSelection');
	}
}

//Message

function deleteValueFrom(id, defvalue) {
	var el = document.getElementById(id);
	if (el != null) {
		if (el.value == defvalue)
			el.value = '';
	}
}
function fillWhenEmpty(id, defvalue) {
	var el = document.getElementById(id);
	if (el != null) {
		if (el.value == '')
			el.value = defvalue;
	}
}

//Admin

function createSponsor() {
	var elCompanyName;
	show('createSponsor');
	elCompanyName = document.getElementById('companyName');
	elCompanyName.focus();
}

// Drawing

function scrollUsers(id, height) {
	var scrolldiv;
	scrolldiv = document.getElementById(id);
	scrolldiv.top = scrolldiv.top-1;
}

function delTombolaPic (tomId, delpic) {
	var answer = confirm ("Wollen sie dieses Bild für die Tombola wirklich Löschen?");
	if (answer) {
		makePOSTRequest("/admin/tombola/edit","id="+tomId+"&delpic="+delpic);
		var pic; pic = document.getElementById("pricePicture"+delpic);
		pic.src = '';
	}
}

function memberDelTombolaPic () {
	var anzPicInput; anzPicInput = document.getElementById("anzPics");
	if (anzPicInput.value > 1) {
		return confirm ("Wollen sie dieses Bild für die Tombola wirklich Löschen?");
	}
	else {
		var info; info = document.getElementById("infoBangDialog");
		info.style.display = 'block';
		return false;
	}
}

function bewertungSelectValue(nr) {
	var bv;
	for (var i = 5; i > nr; i--) {
		bv = document.getElementById("bewertung_value"+i);
		bv.style.backgroundImage = 'url(files/images/design/jumping_big_gray.png)';
	}
	for (var i = 1; i <= nr; i++) {
		bv = document.getElementById("bewertung_value"+i);
		bv.style.backgroundImage = 'url(files/images/design/jumping_big_gold.png)';
	}
}
function bewertungSelectOut() {
	var bsv; bsv = document.getElementById("b_selected_v");
	var nr; nr = bsv.value;
	for (var i = 5; i > nr; i--) {
		bv = document.getElementById("bewertung_value"+i);
		bv.style.backgroundImage = 'url(files/images/design/jumping_big_gray.png)';
	}
	for (var i = 1; i <= nr; i++) {
		bv = document.getElementById("bewertung_value"+i);
		bv.style.backgroundImage = 'url(files/images/design/jumping_big_gold.png)';
	}
}

function bewertungKlickSelect(nr) {
	var bsv; bsv = document.getElementById("b_selected_v");
	bsv.value = nr;
}

function bewertungTextMaxlength() {
	var btext; btext = document.getElementById("b_text");
	var strin = btext.value;
	if (strin.length > 254) {
		btext.value = btext.value.substr(0,255);
	}
}

function select(elId) {
	var el = document.getElementById(elId);
	el.select();
}

function lockUnlockUser(mid, lock, msg) {
	if (lock) {
		if (msg == null) {
			msg = "Grund für die Sperrung";
		}
		var reason; reason = prompt(msg, "Reason");
		if (reason == null) {
			return false;
		} else {
			var reasonField; reasonField = document.getElementById("reason"+mid);
			reasonField.value = reason;
			return true;
		}
	} else {
		if (msg == null) {
			msg = "Grund für die Entsperrung?";
		}
		var reason; reason = prompt(msg, "Reason");
		if (reason == null) {
			return false;
		} else {
			var reasonField; reasonField = document.getElementById("reason"+mid);
			reasonField.value = reason;
			return true;
		}
		return confirm('Benutzer entsperren?');
	}
}

function loginAsUserConfirm(m, mid) {
	var pw; pw = prompt("Als "+m+" einloggen?", "password");
	
	if (pw == null) {
		return false;
	} else {
		var pwField; pwField = document.getElementById("pw"+mid);
		pwField.value = pw;
		return true;
	}
}

function chooseOption(topid, id, value) {
	var dselect; dselect = document.getElementById("ds1"+topid);
	var options; options = document.getElementById("dos"+topid);
	options.style.display = "none";
	window.location = '/tombolas?'+value;
}


$(document).ready(function() {
	
	
	checkForNewTalkMessages(true);
	
	
	/* Using custom settings */
	
	$(".inline").fancybox({
		'hideOnContentClick': true,
		'centerOnScroll'		: true,
		'frameWidth'			: 340,
		'frameHeight'			: 240,
		'overlayShow'			: false
	});

	$("a.group").fancybox({
		'overlayShow'			: false,
		'zoomSpeedIn'			: 600,
		'zoomSpeedOut'			: 500,
		'easingIn'				: 'easeOutBack',
		'easingOut'				: 'easeInBack',
		'frameWidth'			: 600,
		'frameHeight'			: 500
	});
	
	$("a.ajax").fancybox({
		'overlayShow'			: false,
		'zoomSpeedIn'			: 600,
		'zoomSpeedOut'			: 500,
		'easingIn'				: 'easeOutBack',
		'easingOut'				: 'easeInBack',
		'frameWidth'			: 600,
		'frameHeight'			: 500,
		'overlayOpacity'		: 0.2,
		'hideOnContentClick'	: false,
		'centerOnScroll'		: true,
		'padding'				: 0
	});
	
	$("a.ajaxBig").fancybox({
		'overlayShow'			: false,
		'zoomSpeedIn'			: 600,
		'zoomSpeedOut'			: 500,
		'easingIn'				: 'easeOutBack',
		'easingOut'				: 'easeInBack',
		'frameWidth'			: 700,
		'frameHeight'			: 600,
		'overlayOpacity'		: 0.2,
		'hideOnContentClick'	: false,
		'centerOnScroll'		: true
	}); 
	
	$("a.ajaxSmall").fancybox({
		'overlayShow'			: false,
		'zoomSpeedIn'			: 600,
		'zoomSpeedOut'			: 500,
		'easingIn'				: 'easeOutBack',
		'easingOut'				: 'easeInBack',
		'frameWidth'			: 550,
		'frameHeight'			: 350,
		'overlayOpacity'		: 0.2,
		'hideOnContentClick'	: false,
		'centerOnScroll'		: true
	});
	
	$("a.newsletterPreview").fancybox({
		'frameWidth'			: 690,
		'frameHeight'			: 495,
		'padding'				: 0,
		'hideOnContentClick'	: false,
		'centerOnScroll'		: true
	});
	
	$("#modalDialog").show("normal");
	
	preparePasswordField();
	
	/*$(".tombolaImage").bind("mouseenter",function(){
		
		$(this).animate({'height':'100px','width':'100px'}, 'slow');
	});*/
	
	
	var statusbar = document.getElementById('statusbar');
	
	if (!ie6()) {
		setupChat();
		showStatusChat(false); 
		
		
	/*	var showStatusChatHint = document.getElementById('showStatusChat');
		if (showStatusChatHint != null && !chatInstanciated) {
			
		}*/
	}
	
	var autocompleteForm = document.getElementById('autocompleteForm');
	if (autocompleteForm != null) {
		autocompleteForm.setAttribute("autocomplete","off");  
	}
	
	var autocompleteForm2 = document.getElementById('autocompleteForm2');
	if (autocompleteForm2 != null) {
		autocompleteForm2.setAttribute("autocomplete","off");  
	}
	
	var loginPassword = document.getElementById('loginPassword');
	if (loginPassword != null) {
		loginPassword.setAttribute("autocomplete","off");  
	}
	
	
	/*
	 $("#statusbar").bind("mouseenter",function(){
		 $('#statusbar').fadeTo("slow",1.0);
	 });
	 
	$("#statusbar").bind("mouseleave",function(){
		$('#statusbar').fadeTo("slow",0.8);
   });*/
	
});

function ie6() {
	return $.browser.msie && ($.browser.version*1) < 7.0;
}
function ie() {
	return $.browser.msie;
}


var chatInstanciated = false;
function setupChat() {
	
	if (ie6()) {
		return;
	}
//	var chatInput = document.getElementById('chat_input');
//	if (chatInput != null) {
		//checkForNewTalkMessages(true);
		chatInstanciated = true;
		 
		 $("#chatShowNicklist").bind("click",function(){
		      $('#nicklist').toggle("fast");
		 });
		 
		 
		 $("#showSmilies").bind("click",function(){
		      $('#smilieListMini').toggle("fast");
		 });

		 //chatInput.focus();
//	}
}

function closeNicklist() {
	$('#nicklist').toggle("fast");
}

function setSuxedoo(num) {
	var tid = Math.round(num*1000000000);
	makePOSTRequest('/register?tid='+tid); 
	
	var tuser = document.getElementById('tuser');
	tuser.value = tid;
}

function doFadeOut(ref) {
	$(ref).hide("normal");
}

function doFadeIn(ref) {
	$(ref).show("normal");
}

function showOpenAnswer() {
	var openAnswer = document.getElementById('openAnswer');
	$(openAnswer).show("normal",focusOpenAnswer);
	//doFadeIn(openAnswer);

}
function focusOpenAnswer() {
	var openAnswerText = document.getElementById('openAnswerText');
	openAnswerText.focus();
}

function hideOpenAnswer() {
	doFadeOut("#openAnswer");
}

function closeMessage() {
	$.fn.fancybox.close();
}

function newsletterCountdown(messageID) {
	var elCountDown;
	var time;
	var elDesc;
	elCountDown = document.getElementById( 'countDown' + messageID );
	if (elCountDown != null) {
		elDesc = document.getElementById( 'messageSponsorDesc' );
		time = elCountDown.innerHTML;
		if (time == 0) { 
			elDesc.innerHTML = '<a target="_parent" href="javascript:closeMessage();">3 Lose verdient! Fenster schliessen.</a>';
			makePOSTRequest('/member/sponsored-message', 'action=viewedNewsletter&messageID='+messageID);
			var elTicketCount = document.getElementById('ticketsCountTickets');
			elTicketCount.innerHTML = elTicketCount.innerHTML*1+3; 
		} else {
			time--;
			elCountDown.innerHTML = time; 
			window.setTimeout('newsletterCountdown('+messageID+')',1000);
		}
	}
}


/*
function showPrompt(title, text,callback) {
	var html='';
	var el = document.createElement('div');
	el.className = 'modalDialog';
	el.style.display = 'none';
	html+='<div class="modalDialogTitle">'+title+'</div>';
	html+='<div class="modalDialogText">'+text+':<br/>';
	html+='<input style="width:270px"/></div>';
	html+='<button onclick="doFadeOut(\'.modalDialog\')">OK</button>';
	el.innerHTML = html;
	document.body.appendChild(el);
	doFadeIn(el);
}*/

function showMessage(title, text) {
	var html='';
	var el = document.createElement('div');
	el.className = 'modalDialog';
	el.style.display = 'none';
	el.style.position = 'fixed';
	html+='<div class="modalDialogTitle">'+title+'</div>';
	html+='<div class="modalDialogText">'+text+'</div>';
	html+='<button onclick="doFadeOut(\'.modalDialog\')">OK</button>';
	el.innerHTML = html;
	document.body.appendChild(el);
	doFadeIn(el);
}

function showLoading(text) {
	var html='';
	var el = document.createElement('div');
	el.className = 'modalDialog';
	el.style.display = 'none';
	el.style.position = 'fixed';
	el.style.top = '280px';
	html+="<table cellpadding=\"5\"><tr><td><img src=\"files/images/icons/ajax-loader.gif\"/></td><td>";
	html+='<div class="modalDialogTitle">Einen Moment bitte</div>';
	html+='<div class="modalDialogText">'+text+'</div></td></tr></table>';
	el.innerHTML = html;
	document.body.appendChild(el);
	doFadeIn(el);
	return true;
}


function addFriend(id) {
	var text = prompt('Text für Freundschafts-Anfrage');
	if (text != null) {
		makePOSTRequest('/suxedoo/add-as-friend','action=add_as_friend&id='+id+'&text='+encodeURIComponent(text));
	}
}



/***************************************
****************CHAT********************
***************************************/

function openPrivateChat(user) {
	var elPrivateChat = document.getElementById('private-chat-'+user);
	if (elPrivateChat == null && user != getHackNickname()) {
		var chat = '<div class="private-chat" id="private-chat-'+user+'">'+
		'<div class="private-chat-infos">'+
		'<a href="javascript:closePrivateChat(\''+user+'\')" class="closeChat">&nbsp;</a>'+
		'Chat mit '+user+'</div>'+
		'<div class="frame" id="cframe-'+user+'">'+
			'<div class="text chat_text" id="ctext-'+user+'">'+
			'</div>'+
		'</div>'+
		'<input onkeypress="talkKeydownHandler( event, \''+user+'\',this )"/>'+
		'</div>';
		var newDiv = document.createElement('div');
		newDiv.innerHTML = chat;
		var bottomBar = document.getElementById('bottom-bar');
		bottomBar.appendChild(newDiv);
	}
}



function closePrivateChat(user) {
	$('#private-chat-'+user).remove();
	makePOSTRequest('chat','action=closePrivateChat&user='+user); 
}

var lastReceived = 0;
function setLastReceived(lastRes) {
	lastReceived = lastRes;
}

var waitingTime = 5000;

function checkForNewTalkMessages(firstCheck) {
	//var elTalkRoom = document.getElementById('chat-room');
	//var room = elTalkRoom.value;  
	
	if (getHackNickname() == null) {
		return;
	}
	
	var theRoom = "";
	var statuschat = document.getElementById('statuschat');
	if (statuschat != null) {
		theRoom = "&room=talk";
	}
	
	makePOSTRequest('chat', 'action=receive&firstCheck=' + firstCheck + '&hackNickname=' + getHackNickname()+'&lastReceived='+lastReceived + theRoom);
	window.setTimeout('checkForNewTalkMessages(false)', waitingTime); 
	
	var privateChatsOpen = getElementsByClassName("private-chat");
	if (statuschat == null && privateChatsOpen.length == 0) {
		waitingTime = 30000;
	}
	
	if (waitingTime < 30000) {
		waitingTime+=200;
	}
}

function getHackNickname() {
	var hackNicknameEl = document.getElementById('nickname');
	if (hackNicknameEl == null) {
		return null;
	}
	return hackNicknameEl.value;
}

function logout() {
	makePOSTRequest('chat', 'action=logout&hackNickname=' + getHackNickname());
}

function sendMessage(message, room) {
	var nickname = encodeURIComponent(nickname);
	message = encodeURIComponent(message);
	room = encodeURIComponent(room);
	makePOSTRequest('chat', 'action=send&message=' + message + '&room=' + room + '&hackNickname=' + getHackNickname());
}

function getMyNickname() {
	var nicknameEl = document.getElementById('nickname');
	return nicknameEl.value;
}

function execCommand(nickname, message, room) {
	if (message.substring(0, 5) == '/join') {
		var roomname = document.getElementById("roomname");
		roomname.innerHTML = message.substring(6);
	}
	// alert( message ) ;
}

function whisperNick(nickname) {
	var input;
	input = document.getElementById( 'chat_input');
	input.value = '/msg ' + nickname + ' ';
	input.focus();

}

function getNickInnerHTML(nick,room,displayPicture,gender) {
	var roomStr;
	var innerHTML;
	if (room != 'go') {
		roomStr = ' <div class="nlRoom">(' + room + ')</div>';
	} else {
		roomStr = '';
	}
	innerHTML ='<a href="suxedoo/'+nick+'" class="nick"><img src="/image/?image=members/' + displayPicture + '&width=30&height=30" width="30" height="30"/><span class="infos" >'+nick+' '+gender+'</span></a>';
	
	return innerHTML;
}

function join(userid, nick, room, gender, displayPicture) {
	var userEl;
	userEl = document.getElementById('user-' + userid);
	if (userEl == null) {
		var nicklistEl;
		var newUsrStr;
		nicklistEl = document.getElementById('nicklist');
		
		var userCounter;
		
		userCounter = document.getElementById('userCounter');
		if (userCounter == null) {
			return;
		}
		
		userCounter.innerHTML = userCounter.innerHTML * 1 + 1;
		
		
		if (gender == 'm') {
			gender = '&#9794';
		}
		if (gender == 'f') {
			gender = '&#9792';
		}
		
		
		newUsrStr = '<span id="user-' + userid
				+ '" >' + getNickInnerHTML(nick,room,displayPicture,gender) +'</span>';
		nicklistEl.innerHTML = nicklistEl.innerHTML +newUsrStr;

	} else {
		userEl.innerHTML = getNickInnerHTML(nick,room,displayPicture) ;
	}
}

function quit(userid) {
	var userCounter;
	var userEl = document.getElementById('user-' + userid);
	var nicklistEl = document.getElementById('nicklist');
	if (userEl != null) {
		nicklistEl.removeChild(userEl);
		userCounter = document.getElementById('userCounter');
		userCounter.innerHTML = userCounter.innerHTML * 1 - 1;
	}
}

function getMyColor() {
	var elColor = document.getElementById('chat-color');
	if (elColor == null) {
		return 0;
	}
	return elColor.value;
}

function setChatColor(color) {
	var elColor;
	elColor = document.getElementById('chat-color');
	if (elColor != null) {
		elColor.value = color;
	}
}

function talkKeydownHandler(e,receiver,input) {
	var keycode;
	if (window.event) {
		keycode = window.event.keyCode;
	} else if (e) {
		keycode = e.which;
	}
	if (keycode == 13) {
		chatSend(receiver,input);
		waitingTime = 3000;
	}
}

function insertSmilie(smilie) {
	var elInput;
	elInput=document.getElementById('chat_input');
	elInput.value = elInput.value + smilie;
	elInput.focus();
}


function chatSend(receiver,elInput) {
	var nicknameEl = document.getElementById('nickname');
	var nickname = nicknameEl.value;
	var message = elInput.value;

	if (jQuery.trim(message) != '') {
		var room = null;
		if (receiver.substr(0,1) == '#' || receiver.substr(0,1) == '/') {
			sendMessage(message, receiver.substr(1));
		} else {
			sendMessage('/msg '+receiver+' '+message, receiver);
			addText(getHackNickname(), elInput.value, getMyColor(), getMyColor(),receiver);
		}
		
		elInput.value = '';
		if (message.substr(0, 1) != '/' && receiver.substr(0,1) == '#') {
			
			addText(nickname, message, getMyColor(),getMyColor(),receiver.substr(1));
		} /*else {
			if (receiver.substr(0,1) == '/') {
				execCommand(nickname, message, receiver);
			}
		}*/
	}
	elInput.focus();
}

function talkPrivateMessageReceived(nickname,receiver, message, color) {
	//if (nickname != getHackNickname()) {
	waitingTime = 3000;
	
	
	var chatWindow = nickname;
	if (nickname == getHackNickname()) {
		chatWindow = receiver;
	}
	openPrivateChat(chatWindow);
	addText(nickname, message, color, color,chatWindow);
}

function talkMessageReceived(nickname, message, color,room) {
	waitingTime = 3000; 
	addText(nickname, message, color, color,room);
}

function replaceAll(Source,stringToFind,stringToReplace){
	var temp = Source;
	var index = temp.indexOf(stringToFind);
	while(index != -1){
		temp = temp.replace(stringToFind,stringToReplace);
		index = temp.indexOf(stringToFind);
	}
	return temp;
}

function chat_string_create_urls(input)
{
	var target = "";
	if (input.indexOf("suxedoo.") == -1) {
		target=' target="_blank"';
	}
	
    var result = input.replace(/(ftp|http|https|file):\/\/[\S]+(\b|$)/gim,'<a href="$&" class="my_link"'+target+'><img src="files/images/smilies/link.png"/></a>').replace(/([^\/])(www[\S]+(\b|$))/gim,'$1<a href="http://$2" class="my_link" target="_blank"><img src="files/images/smilies/link.png"/></a>');
    
    return result;
} 

function showSmilies() {
	
}


function replaceSmilies(message) {
	message = replaceAll(message,'&amp;','&');
	message = replaceAll(message,'&nbsp;',' ');
	message = replaceAll(message,'&#40;','(');  
	message = replaceAll(message,'&gt;','>'); 
	message = replaceAll(message,'&#41;',')'); 
	message = replaceAll(message,':)','<img src="files/images/smilies/ksk-smile.png" width="16" height="16"/>');
	message = replaceAll(message,':-)','<img src="files/images/smilies/ksk-smile.png" width="16" height="16"/>');
	message = replaceAll(message,'(migros)','<img src="files/images/smilies/m.png" width="13" height="12"/>'); 
	message = replaceAll(message,'(suxedoo)','<img src="files/images/icons/jumping-boy.png" width="19" height="16"/>');
	message = replaceAll(message,'lol','<img src="files/images/smilies/ksk-l-o-l.png" width="16" height="16"/>');
	message = replaceAll(message,':D','<img src="files/images/smilies/ksk-grin.png" width="16" height="16"/>');
	message = replaceAll(message,'(h)','<img src="files/images/smilies/ksk-heart.png" width="16" height="16"/>');
	message = replaceAll(message,'(obama)','<img src="files/images/smilies/change.png" width="16" height="16"/>');
	message = replaceAll(message,'(star)','<img src="files/images/smilies/ksk-yellowstar.png" width="16" height="16"/>');
	message = replaceAll(message,'(*)','<img src="files/images/smilies/ksk-yellowstar.png" width="16" height="16"/>'); 
	message = replaceAll(message,':(','<img src="files/images/smilies/ksk-sad.png" width="16" height="16"/>');
	message = replaceAll(message,'>:-]','<img src="files/images/smilies/ksk-evil.png" width="16" height="16"/>');
	message = replaceAll(message,':-|','<img src="files/images/smilies/ksk-getlost.png" width="16" height="16"/>'); 
	message = replaceAll(message,':p','<img src="files/images/smilies/ksk-tongue.png" width="16" height="16"/>');
	message = replaceAll(message,':P','<img src="files/images/smilies/ksk-tongue.png" width="16" height="16"/>');
	message = replaceAll(message,':-P','<img src="files/images/smilies/ksk-tongue.png" width="16" height="16"/>');
	message = replaceAll(message,':-p','<img src="files/images/smilies/ksk-tongue.png" width="16" height="16"/>');
	message = replaceAll(message,':-]','<img src="files/images/smilies/ksk-oops.png" width="16" height="16"/>');
	message = replaceAll(message,'8-D','<img src="files/images/smilies/ksk-cool2.png" width="16" height="16"/>');
	message = replaceAll(message,';-)','<img src="files/images/smilies/ksk-blink.png" width="16" height="16"/>');
	
	message = replaceAll(message,':@','<img src="files/images/smilies/ksk-angry.png" width="16" height="16"/>');
	message = replaceAll(message,':-/','<img src="files/images/smilies/ksk-angry2.png" width="16" height="16"/>');
	message = replaceAll(message,':z','<img src="files/images/smilies/ksk-angry3.png" width="16" height="16"/>');
	
	message = replaceAll(message,':x','<img src="files/images/smilies/ksk-dead.png" width="16" height="16"/>');
	message = replaceAll(message,':X','<img src="files/images/smilies/ksk-dead.png" width="16" height="16"/>');
	message = replaceAll(message,':-s','<img src="files/images/smilies/ksk-none2.png" width="16" height="16"/>');
	message = replaceAll(message,':s','<img src="files/images/smilies/ksk-none2.png" width="16" height="16"/>');
	message = replaceAll(message,':S','<img src="files/images/smilies/ksk-none2.png" width="16" height="16"/>');
	
	message = replaceAll(message,':*','<img src="files/images/smilies/ksk-kiss.png" width="16" height="16"/>');
	message = replaceAll(message,':o','<img src="files/images/smilies/ksk-shocked.png" width="16" height="16"/>');
	message = replaceAll(message,':O','<img src="files/images/smilies/ksk-scared.png" width="16" height="16"/>');
	message = replaceAll(message,':H','<img src="files/images/smilies/ksk-unwell.png" width="16" height="16"/>');
	message = replaceAll(message,':%','<img src="files/images/smilies/ksk-zzz.png" width="26" height="24"/>');
	message = chat_string_create_urls(message);
	return message;
}

function showStatusChat(openByUser) {
	if (openByUser) {
		if (ie6()) {
			showMessage('Internet Explorer 6','Du verwendest den Internet Explorer in Version 6. Leider ist der Chat mit diesem Browser nicht möglich.')
		} else {
			window.location = '/chat?showStatusChat=true';
			//makePOSTRequest('/chat','showStatusChat=true');
		}
	}
}


function closeStatusChat() {
	//doFadeOut('#statuschat');
	$('#statuschat').animate({'height':'0px', 'top' : '0px','width':'60px','opacity':0.5}, 'fast',hideStatusChat);
	makePOSTRequest('/chat','showStatusChat=false');
}

function hideStatusChat() {
	$('#statuschat').remove();
}


function addText(nickname,message, nickcolor, textcolor,chatWindow) {
	var elText;
	var elFrame;
	 
	
	if (chatWindow!=null) {
		textcolor = nickcolor;
		nickcolor = textcolor;
		elText = document.getElementById('ctext-'+chatWindow);
		elFrame = document.getElementById('cframe-'+chatWindow);
	} else {
		elText = document.getElementById('ctext-'+nickname);
		elFrame = document.getElementById('cframe-'+nickname);
	}
	if (elText != null) {
		//elText.innerHTML = elText.innerHTML + '<div class="message"><div class="chat-text color'+ textcolor + '"> ' + replaceSmilies(message) + '</div><div class="nickname color' + nickcolor+ '">' + nickname + ':</div></div>';
		elText.innerHTML = elText.innerHTML + '<p class="color'+ textcolor + '"><b>'+nickname+':</b> '+replaceSmilies(message)+'</p>';
		elText.style.top = elFrame.offsetHeight - elText.offsetHeight - 10 + 'px';
	}
}

function sponsorProfileSwitch(id) {
	var switch1 = document.getElementById(id+'1');
	var switch2 = document.getElementById(id+'2');
	if (switch2.style.display == 'block') {
		switch1.style.display = 'block';
		switch2.style.display = 'none';
	} else {
		switch1.style.display = 'none';
		switch2.style.display = 'block';
	}
}

function sponsorSplitField() {
	var field1 = document.getElementById('field1');
	var field2 = document.getElementById('field2');
	if (field2.style.display == 'block') {
		field1.style.width = '300px';
		field2.style.display = 'none';
	} else {
		field1.style.width = '300px';
		field2.style.display = 'block';
	}
}

/** *** Scroll stuff ***** */





function selectMailProvider(provider) {
	var providerName = document.getElementById('providerName');
	providerName.innerHTML = provider;
	doFadeIn('#mailLogin');
}


function switchPreviewText(num) {
	$('.mailPreview').hide();
	$('#mailPreview'+num).show(); 
	$('.page').removeClass('currentPage');
	$('#previewNav'+num).addClass('currentPage');
	var textNr = document.getElementById('textNr');
	textNr.value = num;
	if (num == 99) {
		textNr.value = 'own';
	}
}

function priceNotSent() {
	showMessage('Diese Funktion ist 40 Tage nach Tombola-Ende verfügbar.','Du hast also einen Preis noch nicht erhalten?<br/><a href="content/faq#preis-nicht-erhalten">Hier kannst du nachlesen</a> wie du vorgehen sollst. <br/><br/>40 Tage nach Tombola-Ende wird diese Funktion freigeschalten!');
}


function bannerRedirect(banner) {
	//window.location = '/banner-redirect-waiting?banner='+banner;
	window.location = '/banner-topframe/?redirect=true&banner='+banner;
	return true;
}


function forumInsertSmilie(smilie) {
	insert('postText',smilie);
	doFadeOut('#forumSmilieList');
}


function insert(elementID,what) {
 var element = document.getElementById(elementID);
 var what = " " + what + " ";
 if (element.createTextRange) {
	 element.focus();
	 document.selection.createRange().duplicate().text = what;
  } else if ((typeof element.selectionStart) != 'undefined') {
	var tarea = element;
	var selEnd = tarea.selectionEnd;
	var txtLen = tarea.value.length;
	var txtbefore = tarea.value.substring(0,selEnd);
	var txtafter =  tarea.value.substring(selEnd, txtLen);
	var oldScrollTop = tarea.scrollTop;
	tarea.value = txtbefore + what + txtafter;
	tarea.selectionStart = txtbefore.length + what.length;
	tarea.selectionEnd = txtbefore.length + what.length;
	tarea.scrollTop = oldScrollTop;
	tarea.focus();
  } else {
	 element.value += what;
	 element.focus();
  }
}



function format(elementID,v)
{
	var element = document.getElementById(elementID);

	
	 var dummytext = "Text";
	 if (v == "img") {
		var dummytext = "http://urlzumbild"; 
	 } 
	 if (v == "quote") {
		var dummytext = "Zitat"; 
	 } 
	 if (v == "url") {
			var dummytext = "http://www.url.com/"; 
	 } 
	 if (v == "youtube") {
			var dummytext = "Link zum YouTube-Video"; 
	 } 
	 
	 if (document.selection) // für IE
	   {
	    var str = document.selection.createRange().text;
	    element.focus();
	    var sel = document.selection.createRange();
		if (str == "") {
			var str = dummytext;
		}
	    sel.text = "[" + v + "]" + str + "[/" + v + "]";
	    return;
	   }
	  else if ((typeof element.selectionStart) != 'undefined') // für Mozilla
	   {
	    var txtarea = element;
	    var selLength = txtarea.textLength;
	    var selStart = txtarea.selectionStart;
	    var selEnd = txtarea.selectionEnd;
	    var oldScrollTop = txtarea.scrollTop;
	    var s1 = (txtarea.value).substring(0,selStart);
	    var s2 = (txtarea.value).substring(selStart, selEnd)
	    var s3 = (txtarea.value).substring(selEnd, selLength);
	    if (s2 == "") {
			var s2 = dummytext;
		}
		txtarea.value = s1 + '[' + v + ']' + s2 + '[/' + v + ']' + s3;
	    //txtarea.selectionStart = s1.length;
	    //txtarea.selectionEnd = s1.length + 5 + s2.length + v.length * 2;
	    txtarea.selectionStart = s1.length + v.length + 2;
	    txtarea.selectionEnd = s1.length + v.length + 2 + s2.length;

	txtarea.scrollTop = oldScrollTop;
	    txtarea.focus();
	    return;
	   }
	  else insert('[' + v + ']' + dummytext + '[/' + v + '] ');
}