/*
function setImg(smile) {
	if(document.enter.message.value != ''){
		document.enter.message.value += ' ' + smile ;
	}else{
		document.enter.message.value = smile ;
	}
	document.enter.message.focus();
}

function checkEntryLength(textarea, maxlength){

	if(textarea.value.length > maxlength){
		alertBox('Achtung','Der Eintrag darf maximal '+maxlength+' Zeichen haben','OK');
		textarea.value = textarea.value.substr(0,maxlength);
	}
	$('chars').innerHTML = '[ '+textarea.value.length+' / '+maxlength+' Zeichen ]';
}
*/

function checkinputform(form){

	var alertContent = '';
	if(form.name == 'joinsmoobook'){
		if(form.username.value == ''){
			alertContent = '- kein Benutzername angegeben!<br/>';
		}else if(form.username.value.length > 20){
			alertContent = '- der gewählte Benutzername ist zu lang<br/>';
		}

		if(form.password.value == ''){
			alertContent += '- kein Passwort angegeben!<br/>';
		}else if(form.password.value.length < 5){
			alertContent += '- das gewählte Passwort ist zu kurz!<br/>';
		}
		if(form.email.value == ''){
			alertContent += '- keine Email Adresse eingegeben!<br/>';
		}
		if(form.homepage.value == ''){
			alertContent += '- keine Homepage Adresse eingegeben!<br/>';
		}
		if(form.captchacode.value == ''){
			alertContent += '- kein Sicherheitscode eingegeben!<br/>';
		}

		if(form.confirmagb.checked != true){
			alertContent += '- bitte akzeptiere unsere AGB!<br/>';
		}

	}else if(form.name == 'joinlinklist'){
		if(form.email.value == ''){
			alertContent = '- keine Email Adresse eingegeben!<br/>';
		}
		if(form.homepage.value == ''){
			alertContent += '- keine Homepage Adresse eingegeben!<br/>';
		}
		if(form.description.value == ''){
			alertContent += '- keine Beschreibung eingegeben!<br/>';
		}
		if(form.captchacode.value == ''){
			alertContent += '- kein Sicherheitscode eingegeben!<br/>';
		}
	}else if(form.name == 'joinsmoovote'){

		if(form.username.value == ''){
			alertContent = '- kein Name eingegeben!<br/>';
		}
		if(form.password.value == ''){
			alertContent += '- kein Passwort eingegeben!<br/>';
		}
		if(form.password.value.length < 5 && form.password.value != ''){
			alertContent += '- das gewählte Passwort ist zu kurz!<br/>';
		}
		if(form.email.value == ''){
			alertContent = '- keine Email Adresse eingegeben!<br/>';
		}
		if(form.homepage.value == ''){
			alertContent += '- keine Homepage Adresse eingegeben!<br/>';
		}
		if(form.captchacode.value == ''){
			alertContent += '- kein Sicherheitscode eingegeben!<br/>';
		}
	}

	if(alertContent != ''){
		alertContent = '<b>Folgende Fehler sind aufgetreten:</b><br/><br/>' + alertContent;
		alertBox('Achtung!', alertContent, 'OK');
		return false;
	}else{
		return true;
	}
}


/**
 * get left position of passed object
 *
 * @param		object	HTML Object
 * @return		int 	position left
 */
function absLeft(element) {
	return (element.offsetParent) ? element.offsetLeft+absLeft(element.offsetParent) : element.offsetLeft;
}

/**
 * get top position of passed object
 *
 * @param		object	HTML Object
 * @return		int		position top
 */
function absTop(element) {
	return (element.offsetParent)? element.offsetTop+absTop(element.offsetParent) : element.offsetTop;
}

/**
 * get right position of passed object
 *
 * @param		object	HTML Object
 * @return		int		position top
 */
function absRight(element) {
	return (absLeft(element) + element.offsetWidth);
}

/**
 * get bottom  position of passed object
 *
 * @param		object	HTML Object
 * @return		int		position top
 */
function absBottom(element) {
	return (absTop(element) + element.offsetHeight);
}


/**
 * get the availible screenwidth (innerwidth)
 *
 * @return		int		screenwidth
 */
function getAvailScreenWidth() {

	var screenWidth;
	if (self.innerWidth){ // all except Explorer
		screenWidth = self.innerWidth;
		if(getDocumentHeight() > getAvailScreenHeight()){
			screenWidth -= 17;
		}
	}
	else if (document.documentElement && document.documentElement.clientWidth){ // Explorer 7 and 6 strict mode
		screenWidth = document.documentElement.clientWidth;
	}
	else if (document.body){ // ie6
		screenWidth = document.body.clientWidth;
		if(getDocumentHeight() > getAvailScreenHeight() && browser == 'ie6'){
			screenWidth -= 17;
		}
	}
	return screenWidth;
}



/**
 * get the availible screenheight (innerheigth)
 *
 * @return		int		screenheight
 */
function getAvailScreenHeight() {

	var screenHeight;
	if (self.innerHeight){ // all except Explorer
		screenHeight = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight){ // Explorer 6 Strict Mode
		screenHeight = document.documentElement.clientHeight;
	}
	else if (document.body){ // other Explorers
		screenHeight = document.body.clientHeight;
	}
	return screenHeight;
}


/**
 * How much the page has scrolled
 *
 * @return		int		scrollYOffset
 */
function getScrollYOffset() {

	var scrollOffset;
	if (self.pageYOffset){ // all except Explorer
		scrollOffset = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop){ // Explorer 6 Strict Mode
		scrollOffset = document.documentElement.scrollTop;
	}
	else if (document.body){ // other Browsers
		scrollOffset = document.body.scrollTop;
	}
	return scrollOffset;
}


/**
 * get the document height
 *
 * @return		int		documentheight
 */
function getDocumentHeight() {

	var pageHeight;
	var var1 = document.body.scrollHeight;
	var var2 = document.body.offsetHeight;

	if (var1 > var2){ // all exept Explorer Mac
		pageHeight = document.body.scrollHeight;
	}
	else{ // Explorer Mac; would also work in Explorer 6 Strict, Mozilla and Safari
		pageHeight = document.body.offsetHeight;
	}
	return pageHeight;
}



/**
* draw an alternativ alertbox
*
*@param 		string 	title of the box
*@param 		string	content of the box
*@param 		string	label for the button
*
* @return		void
*/
function alertBox(boxTitle, boxContent, buttonLabel){

	if(!$('alertbox')){

		var alertouterbox = Builder.build('<div class="alertouterbox" id="alertbox"></div>');
		var alertBox = alertouterbox;

		if($('top')){
			$('top').appendChild(alertouterbox);
		}else{
			document.body.appendChild(alertouterbox);
		}
		alertouterbox.innerHTML = '<div class="alertboxtitle" id="alerttitle"></div><div class="alertbox"><span id="alertcontent"></span><center><input type="button" id="alertbutton" class="alertbutton" onclick="$(\'alertbox\').hide();removeInactiveLayer(\'inactivelayer\')" /></center></div>';
	}else{
		var alertBox = $('alertbox');
	}

	alertBox.show();
	showInactiveLayer('inactivelayer');
	window.setTimeout("$('alertbutton').focus()",300);

	screenHeight = getAvailScreenHeight();
	screenWidth = getAvailScreenWidth();
	scrollOffset = getScrollYOffset();
	alertBoxWidth = alertBox.offsetWidth;
	alertBoxHeight = alertBox.offsetHeight;

	alertBox.style.left = (screenWidth / 2) - (alertBoxWidth / 2) + 'px' ;
	alertBox.style.top = (((screenHeight / 2) - (alertBoxHeight / 2) + scrollOffset) - 50) + 'px' ;
	alertBox.style.zIndex = 100;

	$('alerttitle').innerHTML = boxTitle;
	$('alertbutton').value = buttonLabel;
	$('alertcontent').innerHTML = boxContent;

	document.onkeypress = function(key){
		if(window.event){
			if(window.event.keyCode == 13){
				$('alertbox').hide();
				removeInactiveLayer('inactivelayer');
				document.onkeypress = '';
			}
		} else{
			if(key.which == 13){
				$('alertbox').hide();
				removeInactiveLayer('inactivelayer');
				document.onkeypress = '';
			}
		}
	}
}


/**
* shows the grey inactivelayer
*
* @param 		string	layerid
* @param 		function	that function is called when layer is clicked
*
* @return		void
*/
function showInactiveLayer(layerid, callbackFunktion){

	var scrollOffset = getScrollYOffset();

	if($(layerid) == null || typeof($(layerid)) == 'undefined'){
		//creates an inactivelayer
		var inactivLayer = Builder.build('<div id="'+layerid+'" class="ilayer"></div>');
		//append it to pagecontent
		if(document.body){
			document.body.appendChild(inactivLayer);
		}
	}else{
		$(layerid).show();
	}

	var inactiveLayer = $(layerid);

	document.documentElement.style.overflow = 'hidden';
	document.documentElement.scrollTop = scrollOffset;

	if(typeof(callbackFunktion) == 'function'){
		inactiveLayer.onclick = function(){
			callbackFunktion();
		};
	}
	return;
}

/**
* remove the grey inactivelayer
*
* @param 		string   layerid
*
* @return		void
*/
function removeInactiveLayer(layerid){

	if($(layerid)){
		$(layerid).hide();
	}

	document.documentElement.style.overflow = 'auto';

	return;
}


/**
 * shows tooltip box
 *
 * @param		object	element: onclick handle
 * @param		string	content: tooltip content
 * @param		string	align of tooltip (left,right,top,bottom)e
 * @param		int		left offset in px
 * @param		int		top offset in px
 * @param		int		if 1 diasabling HTML code
 * @return	void
 */
/*
var tooltiptimer;

function showTooltip(element, content, align, alignXOffset, alignYOffset, disableHtml, maxwidth) {

	var elementHeight = element.offsetHeight;
	var elementWidth = element.offsetWidth;
	var tooltipBox = document.getElementById('tooltip');
	var tooltipContent = document.getElementById('tooltipcontent');

	// set content
	if(disableHtml==1){
		content = htmlEntities(content);
		//encode breaks back(<br>)
		content = content.replace(/&lt;br\/&gt;/g,"<br/>");
	}

	tooltipContent.innerHTML = content

	if(typeof(maxwidth) != 'undefined'){
		tooltipBox.style.width = maxwidth + 'px';
	}else{
		tooltipBox.style.width = 'auto';
	}

	var boxWidth = tooltipBox.offsetWidth;
	var boxHeight = tooltipBox.offsetHeight;

	//clear timer, prevent start of a parallel timer
	window.clearTimeout(tooltiptimer);


	var elementTop = absTop(element);
	var elementLeft = absLeft(element);
	var alignXOffset = (alignXOffset) ? alignXOffset : 0;
	var alignYOffset = (alignYOffset) ? alignYOffset : 0;
	alert(alignYOffset);
	if(navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion.search(/MSIE 6.0/) != -1 && $('statebar')){
		// the height of the statebar
		elementTop -= 30;
	}

	// set position (align) of tooltip box

	switch(align) {

		case 'left':
			tooltipBox.style.top = (elementTop + ((elementHeight - boxHeight) / 2) + alignYOffset) +'px';
			tooltipBox.style.left = elementLeft - (boxWidth - alignXOffset) + 'px';
			break;
		case 'top':
			tooltipBox.style.top = elementTop - (boxHeight + alignYOffset) + 'px';
			tooltipBox.style.left = (elementLeft + ((elementWidth - boxWidth) / 2) + alignXOffset) + 'px';
			break;
		case 'right':
			tooltipBox.style.top = (elementTop + ((elementHeight - boxHeight) / 2) + alignYoffset) + 'px';
			tooltipBox.style.left = elementLeft + (elementWidth + alignXOffset) + 'px';
			break;
		case 'bottom':
			tooltipBox.style.top = elementTop  + (elementHeight + alignYOffset) + 'px';
			tooltipBox.style.left = (elementLeft + ((elementWidth - boxWidth) / 2) + alignXOffset) + 'px';
			break;
		default:
			alert('Bitte die Ausrichtung(align) angeben!');
			break;
	}

	// set visibility if box has content
	if(content){
		tooltipBox.style.visibility = 'visible';
	}

}
*/

/**
* closes tooltip box
*
*@param 		int 	timeout before closing tooltip
*@param 		bool
*
* @return		void
*/
/*
function closeTooltip(timeout,closeing){

	if(closeing == 1) {
		document.getElementById('tooltip').style.visibility = 'hidden';
		document.getElementById('tooltipcontent').innerHTML = '';

	} else {
		var timeout = (timeout) ? timeout : 50;
		//clear timer, prevent start of a parallel timer
		window.clearTimeout(tooltiptimer);
		tooltiptimer = window.setTimeout('closeTooltip('+ timeout +',1)', timeout);
	}

}
*/


var browser = '';
function getClientVersion(){

	if(navigator.userAgent.search(/Firefox/) != -1){
		browser = 'ff';
	}else if (navigator.appName == 'Microsoft Internet Explorer'){

			if(navigator.appVersion.search(/MSIE 7.?/) != -1){
					browser = 'ie7';
			}else if(navigator.appVersion.search(/MSIE 6.?/) != -1){
					browser = 'ie6';
			}else if(navigator.appVersion.search(/MSIE 5.?/) != -1){
					browser = 'ie5	';
			}

	}else{
		browser = 'other';
	}
}
getClientVersion();


function number_format (number, decimals, dec_point, thousands_sep){

  var exponent = "";
  var numberstr = number.toString ();
  var eindex = numberstr.indexOf ("e");
  if (eindex > -1)
  {
    exponent = numberstr.substring (eindex);
    number = parseFloat (numberstr.substring (0, eindex));
  }

  if (decimals != null)
  {
    var temp = Math.pow (10, decimals);
    number = Math.round (number * temp) / temp;
  }
  var sign = number < 0 ? "-" : "";
  var integer = (number > 0 ?
      Math.floor (number) : Math.abs (Math.ceil (number))).toString ();

  var fractional = number.toString ().substring (integer.length + sign.length);
  dec_point = dec_point != null ? dec_point : ".";
  fractional = decimals != null && decimals > 0 || fractional.length > 1 ?
               (dec_point + fractional.substring (1)) : "";
  if (decimals != null && decimals > 0)
  {
    for (i = fractional.length - 1, z = decimals; i < z; ++i)
      fractional += "0";
  }

  thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ?
                  thousands_sep : null;
  if (thousands_sep != null && thousands_sep != "")
  {
	for (i = integer.length - 3; i > 0; i -= 3)
      integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
  }

  return sign + integer + fractional + exponent;
}