var UT_RATING_IMG			=	'icn_star_full_19x20';
var UT_RATING_IMG_HOVER		=	'/pics/icons/Entchen_orange.png';
var UT_RATING_IMG_HALF		=	'icn_star_half_19x20';
var UT_RATING_IMG_BG		=	'icn_star_empty_19x20';
var UT_RATING_IMG_REMOVED	=	'/pics/icons/Entchen_gelb.png';

function UTRating(ratingElementId,maxStars,objectName,size,messages,starCount,callback)
{
this.ratingElementId=ratingElementId;
this.maxStars=maxStars;
this.objectName=objectName;
this.formName="ratingForm";
this.ratingMessageId="ratingMessage";
this.ratingIconsId="ratingStars";
this.ratingAverage=4;
this.messages=messages;
this.callback=callback;
this.starTimer=null;
this.starCount=0;
this.size=size;
if(starCount){
	this.starCount=starCount;
	var that=this;
	
	onLoadFunctionList.push(function(){
		that.drawStars(that.starCount,true);
		});
}
	function showStars(starNum,skipMessageUpdate){
		this.clearStarTimer();
		this.greyStars();
		this.colorStars(starNum);
			if(!skipMessageUpdate)
			this.setMessage(starNum,messages);
	}
	function setMessage(starNum){
		if(starNum>0){
		if(!this.savedMessage){
			this.savedMessage=_gel(this.ratingMessageId).innerHTML;
		}
			_gel(this.ratingMessageId).innerHTML=this.messages[starNum-1];
		}else if(this.savedMessage){
			_gel(this.ratingMessageId).innerHTML=this.savedMessage;
		}
	}
	function colorStars(starNum){
	var fullStars=Math.floor(starNum+0.25);
	var halfStar=(starNum-fullStars>0.25);
		for(var i=0;i<fullStars;i++){
			removeClass(_gel('star_'+(i+1)),UT_RATING_IMG_HALF);
			removeClass(_gel('star_'+(i+1)),UT_RATING_IMG_BG);
			addClass(_gel('star_'+(i+1)),UT_RATING_IMG);
		}
		if(halfStar){
			removeClass(_gel('star_'+(i+1)),UT_RATING_IMG);
			removeClass(_gel('star_'+(i+1)),UT_RATING_IMG_BG);
			addClass(_gel('star_'+(i+1)),UT_RATING_IMG_HALF);
		}
	}
	function greyStars(){
		for(var i=0;i<this.maxStars;i++){
			removeClass(_gel('star_'+(i+1)),UT_RATING_IMG);
			removeClass(_gel('star_'+(i+1)),UT_RATING_IMG_HALF);
			addClass(_gel('star_'+(i+1)),UT_RATING_IMG_BG);
		}
	}
	function setStars(starNum, redirect ){
		this.starCount=starNum;
		this.drawStars(starNum);
		document.forms[this.formName]['rating'].value=this.starCount;
		var ratingElementId=this.ratingElementId;
		if( redirect ){
			var playground = document.forms['ratingForm']['playground_id'].value;
			var redUrl = "/spielplatz/bewerten/id/" + playground + "/type/form/value/" + this.starCount;
			if (document.ratingForm.fld.value.length > 0) {
   			document.ratingForm.fld.value = "";
		   		if (navigator.appVersion.indexOf("MSIE 5.5") >= 0) {
		   			document.write("Sorry, wir koennen dich nicht direkt auf die Seite weiterleiten. Der IE 6 unterst�tzt dies nicht. Nutze bitte den Link Jetzt bewerten auf dieser Seite.\n");
		   		} else {
		      		top.location = redUrl;
		   		}
			}
		}
		
		/*
		if(this.size != "X") {
			that=this;
			var sUrl	=	"/ajax/kommentarsetzen";
			var callback	=	{
	
			success: function(o) {
				if(o.responseText != "false") {
					ratingComponent.setThanks(o.responseText);
					this.ratingAverage = o.responseText;
				} else {
					alert(o.responseText);
				}
			},
			failure: function(o) {alert("Server nicht erreichbar");}
			}
	
			var formObject = document.getElementById('ratingForm');
			YAHOO.util.Connect.setForm(formObject);	
			var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback, null);
		} else {
			this.savedMessage	=	this.messages[starNum-1];
		}
		*/
	}
	function setThanks(starNum) {
		this.starCount=parseInt(starNum);
		//this.drawStars(this.starCount);
		document.forms[this.formName]['rating'].value=this.starCount;

		_gel(this.ratingMessageId).innerHTML="danke schön";
		_gel(this.ratingIconsId).innerHTML="<img src=\"/pics/icons/bewertung" + starNum + "-gross.png\" />";
	}
	function drawStars(starNum,skipMessageUpdate){
		this.starCount=starNum;
		this.showStars(starNum,skipMessageUpdate);
	}
	function clearStars(){
		this.starTimer=window.setTimeout(this.objectName+".resetStars()",300);
	}
	function resetStars(){
		this.clearStarTimer();
			if(this.starCount)
			this.drawStars(this.starCount);
			else
			this.greyStars();
		this.setMessage(0);
	}
	function clearStarTimer(){
		if(this.starTimer){
		window.clearTimeout(this.starTimer);
		this.starTimer=null;
		}
	}
this.clearStars=clearStars;
this.clearStarTimer=clearStarTimer;
this.greyStars=greyStars;
this.colorStars=colorStars;
this.resetStars=resetStars;
this.setStars=setStars;
this.drawStars=drawStars;
this.showStars=showStars;
this.setMessage=setMessage;
this.setThanks=setThanks;
}

function removeClass(element,_class){
	var upperClass=_class.toUpperCase();
	var remainingClasses=[];
	if(element.className){
		var classes=element.className.split(' ');
		for(var i=0;i<classes.length;i++){
			if(classes[i].toUpperCase()!=upperClass){
				remainingClasses[remainingClasses.length]=classes[i];
			}
		}
		element.className=remainingClasses.join(' ');
	}
}
function _gel(id){
	return document.getElementById(id);
}
function addClass(element,_class){
	if(!hasClass(element,_class)){
		element.className+=element.className?(" "+_class):_class;
	}
}
function hasClass(element,_className){
	if(!element){
		return;
	}
	var upperClass=_className.toUpperCase();
	if(element.className){
		var classes=element.className.split(' ');
		for(var i=0;i<classes.length;i++){
			if(classes[i].toUpperCase()==upperClass){
				return true;
			}
		}
	}
	return false;
}
onLoadFunctionList=[];
function performOnLoadFunctions(){
	for(var i=0;i<onLoadFunctionList.length;i++){
		onLoadFunctionList[i]();
	}
}
messages = new Array("Mies", "Nix besonderes", "Einen Besuch wert", "Echt cool", "Wahnsinn!");
function oeffnen(o) {
 var p=o.parentNode;
 for (var i=0;i<p.childNodes.length;i++)
 {
 p.childNodes[i].className="teaser";
 }
 o.className="teaser aktiv";
}

function einloggen(o) {
if(o) {
	$("#defaultRatingMessage2").hide();
	$("#defaultRatingMessage").show();
}
else {
	$("#defaultRatingMessage").hide();
	$("#defaultRatingMessage2").show();
}
}
function alreadyrated(o) {
if(o) {
var bew;
if(o == 1) bew = " Bewertung";
else bew = " Bewertungen";
$("#defaultRatingMessage").text(o + bew).show();
}
else
$("#defaultRatingMessage").text("Du hast schon bewertet").show();
}

function addMarker() {
return;
}

function getMarkerOptions(draggable) {
	var baseIcon = new GIcon();
	baseIcon.shadow = "/pics/icons/fahne_60x60_b.png";
	baseIcon.shadowSize = new GSize(60,60);
	baseIcon.image = "/pics/icons/fahne_48x60_a.png";
	baseIcon.iconSize = new GSize(48,60);
	baseIcon.iconAnchor = new GPoint(7, 60);
	baseIcon.infoWindowAnchor = new GPoint(30,10);

	if( draggable )
	markerOptions = { icon:baseIcon, draggable: true };
	else
	markerOptions = { icon:baseIcon };
	return markerOptions;
}

function xstooltip_findPosX(obj) 
{
  var curleft = 0;
  if (obj.offsetParent) 
  {
    while (obj.offsetParent) 
        {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}


function xstooltip_findPosY(obj) 
{
    var curtop = 0;
    if (obj.offsetParent) 
    {
        while (obj.offsetParent) 
        {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}

function xstooltip_show(tooltipId, parentId, posX, posY)
{
    it = document.getElementById(tooltipId);
    
    if ((it.style.top == '' || it.style.top == 0) 
        && (it.style.left == '' || it.style.left == 0))
    {
        // need to fixate default size (MSIE problem)
        it.style.width = it.offsetWidth + 'px';
        it.style.height = (it.offsetHeight -10) + 'px';
        
        img = document.getElementById(parentId); 
    
        // if tooltip is too wide, shift left to be within parent 
        if (posX + it.offsetWidth > img.offsetWidth) posX = img.offsetWidth - it.offsetWidth;
        if (posX < 0 ) posX = 0; 
        
        x = xstooltip_findPosX(img) + posX;
        y = xstooltip_findPosY(img) + posY - 325;
        
        it.style.top = y + 'px';
        it.style.left = x + 'px';
    }
    
    it.style.visibility = 'visible'; 
}

function xstooltip_hide(id)
{
    it = document.getElementById(id); 
    it.style.visibility = 'hidden'; 
}

function sptLb(u,i,c,w,h,hs,vs) {
var bd=S$('body');  
var tt,oln;

// Overlay einfügen falls noch nicht vorhanden
if (S$('#Tlbol').html()==null) { 
tt='<div id=\"Tlbol\"></div>'; oln=1; 
bd.append(tt);
S$('#Tlbol').css({ 'width' : bd.width(), 'height' : bd.height(), 'opacity' : 0.5 });
tt='';
}
else oln=0;
if(S$('#'+i).html()==null) {
tt+='<div class=\"Tlbco '+c+'\" id=\"'+i+'\"><div class=\"sptCl\"></div><table><tr><td class=\"Tlb1"></td><td class=\"Tlb2"></td><td class=\"Tlb3"></td></tr>';
tt+='<tr><td class=\"Tlb4"></td><td class=\"Tlb5"><br />\nInhalte werden geladen...<br />\n<br />\n\n</td><td class=\"Tlb6"></td></tr><tr><td class=\"Tlb7"></td><td class=\"Tlb8"></td><td class=\"Tlb9"></td></tr></table></div>'
bd.append(tt);
S$('#'+i+' .sptCl').click( function(){
S$('#'+i).fadeOut('slow', function() { S$('#Tlbol').hide(); } );
});

};
// Lade Content von URL
S$.get( u, null, function( data ) {
S$('#'+i+' .Tlb5').html(data);
if(i == "md") {
S$('#buttonsptCl').click( function(){
S$('#'+i).fadeOut('slow', function() { S$('#Tlbol').hide(); } );
});
S$('#button_abbrechen').click( function(){
S$('#'+i).fadeOut('slow', function() { S$('#Tlbol').hide(); } );
});
}else if(i == "md1") {
S$('#buttonsptCl').click( function(){
S$('#'+i).fadeOut('slow', function() { S$('#Tlbol').hide(); } );
});
S$('#button_abbrechen').click( function(){
S$('#'+i).fadeOut('slow', function() { S$('#Tlbol').hide(); } );
});
}
else{
profilbild();
}
});

// Breite und Höhe setzen, falls angegeben
if (w) S$('#'+i).css('width',w);
if (h) S$('#'+i).css('height',h);
S$('#'+i).css('position','fixed');
// horizontale Ausrichtung
S$('#'+i).css({ 'left' : (bd.width()-S$('#'+i).width()-(hs*2)) / 2, 'right' : null });
// vertikale Ausrichtung
S$('#'+i).css({ 'top' : 100 + vs, 'bottom' : null });
// Overlay einblenden
S$('#Tlbol').show();
S$('#'+i).fadeIn('slow');
};

function submitForm(){
	document.messageform.submit();
}

function cb4all(){
	var value = false;
	if( document.forms[0].checker.checked) value = true;
	for(i=0;i<document.forms[0].elements.length;i++){
	if(document.forms[0].elements[i].type=="checkbox"){
	document.forms[0].elements[i].checked=value;
	}}}
