function setzen(obj,formid){ 
	if(!formid) {
	var formobj = document.loeschen;
	}
	else {
		var formobj = $(formid);
	}
	if(obj.checked==true) {  
	  for(i=0;i<formobj.elements.length;i++)   {  
		   if(formobj.elements[i].type=="checkbox"){ 
			  formobj.elements[i].checked=true   
		   }  
	  }   
	}else{  
	  for(i=0;i<formobj.elements.length;i++){  
		if(formobj.elements[i].type=="checkbox"){   
		  formobj.elements[i].checked=false  
		}  
	  }  
	}  
} 
function findPosX(obj){
		var curleft = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
				//alert(curleft);
			}
		}
		else if (obj.x)
			curleft += obj.x;
		return curleft;
	}

	function 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;
	}

	//Get Y-Scroll position
	function getScrollY() {  
		scrOfY = 0;  
	 
	   if( typeof( window.pageYOffset ) == 'number' ) {  
	   //Netscape compliant  
	   scrOfY = window.pageYOffset;  
	   } else if( document.body && (document.body.scrollTop ) ) {  
	   //DOM compliant  
	   scrOfY = document.body.scrollTop;  
	   } else if( document.documentElement && (document.documentElement.scrollTop ) ) {  
	   //IE6 standards compliant mode  
	   scrOfY = document.documentElement.scrollTop;  
	   }  
	   return scrOfY;  
	} 
  function showTooltip(evt,inhalt,mousecoords,xminus,yminus) {
	  if(!evt){
		  evt = event;
	  }
    	if(window.event) {
		var srcElement = window.event.srcElement ;
		}
		else {
		var srcElement = evt.srcElement ? evt.srcElement : evt.target;
		}
	  var x = findPosX(srcElement);
	  var y = findPosY(srcElement);
	  if(mousecoords){
		  xminus = xminus?xminus:0;
		   yminus = yminus?minus:0;
		x = evt.clientX - xminus;  
		
		y = evt.clientY - yminus +getScrollY();  
	  }
	  var tooltip = $('ertt');
	  if(!tooltip){
			var nt = document.createElement("div");
			nt.className="tooltip";
			nt.style.display="none";
			nt.id="ertt";
			document.body.appendChild(nt);
			tooltip = $('ertt');
	  }
	  var ww = getWindowWidth();
	  var ttw = 230;

	  if(x+15+ttw>ww){
		x -=215;
	  }
	  tooltip.style.left = (x+15) + "px";      
	  tooltip.style.top = (y + 20) + "px";
      tooltip.style.display = "block"
	  tooltip.innerHTML = inhalt;  
  }

  function hideTooltip() {
    try {
		var tooltip = $('ertt');
      tooltip.style.display = "none";
    } catch (error) { error=null; }
  }
function submitvars(form){
	var vari = "";
	for(var x =0;x < form.elements.length;x++){
		if(form.elements[x].type!="checkbox" && form.elements[x].type!="radio"){
		vari += form.elements[x].name+"="+escape(form.elements[x].value)+"&";
		}else if(form.elements[x].checked){
		vari += form.elements[x].name+"="+escape(form.elements[x].value)+"&";
		}
		
	}
	return vari;
	//alert(vari);
}

function get_radio_value(name) {
	var rObj = document.getElementsByName(name);
	var radio_selection;
    for (var i=0; i<rObj.length; i++) {
   		if (rObj[i].checked) { 
		radio_selection = rObj[i].value;
        break;
        }
    }
	return radio_selection;
}

function window_verdunkeln(){
	var obj = $('verdunklung');
    if(!obj){
    	var vdd = document.createElement("div");
        vdd.className = "verdunklungs_div";
        vdd.id = "verdunklung";
        vdd.style.display="none";
    	document.body.appendChild(vdd);
        obj = $('verdunklung');
    }
	if(parseInt(document.body.offsetHeight) < parseInt(getWindowHeight())) {
		obj.style.height = parseInt(getWindowHeight())+"px";
	}
	else {
		obj.style.height = parseInt(document.body.offsetHeight)+"px";
	}
	if(parseInt(document.body.offsetWidth) < parseInt(getWindowWidth())) {	
		obj.style.width = parseInt(getWindowWidth())+"px";
	}
	else {
		obj.style.width = parseInt(document.body.offsetWidth)+"px";
	}
	Effect.Appear("verdunklung",{ duration: 0.1, from: 0.0, to: 0.6 });
}

function window_verhellen(){
	Effect.Fade("verdunklung",{ duration: 0.3});
}

function show_dialog_div(id,offsetY,offsetX) {
	var width = parseInt(getWindowWidth())/2;
	//var height = parseInt(getWindowHeight())/2;
	if(!offsetY) offsetY =0;
	if(!offsetX) offsetX =0;
	var obj = $(id);
	var width_window = parseInt(obj.getWidth())/2;
	obj.style.left = (width-width_window)+offsetX+"px";
	obj.style.top = (160)+getScrollY()+offsetY+"px";
	obj.style.display = "inline";
}

function hide_dialog_div(id) {
	$(id).style.display = "none";
	window_verhellen();
}

function getWindowWidth(){ 
    if (window.innerWidth) { 
        return ((window.innerWidth)-20); 
    }else{ 
        if (window.document.documentElement && window.document.documentElement.clientWidth){ 
            return ((window.document.documentElement.clientWidth)-20); 
        } 
        return ((window.document.body.offsetWidth)-20); 
    } 
}

function getWindowHeight() {
	if(bw()=="ie") {
		return window.document.documentElement.clientHeight;
	}
	else return window.innerHeight;
}

function kill_element(id) {
 var obj = $(id);	
 obj.parentNode.removeChild(obj);
}

function nl2br(str) {
  if(typeof(str)=="string") return str.replace(/(\r\n)|(\n\r)|\r|\n/g,"\r\n<br>");
  else return str;
}

function in_array(needle, array) {
var found = false;
     for (key in array) {
        if (array[key] == needle) {
            found = true;
            break;
        }
    }
    return found;
}

function array_search(elem,arrays)
{
  var i;
  for (i = 0; i < arrays.length; i++) {
    if (arrays[i] == elem) {
      return i;
    }
  }
  return -1;
}

function htmlspecialchars(str,typ) {
   if(typeof str=="undefined") str="";
   if(typeof typ!="number") typ=2;
   typ=Math.max(0,Math.min(3,parseInt(typ)));
   var from=new Array(/&/g,/</g,/>/g);
   var to=new Array("&amp;","&lt;","&gt;");
   if(typ==1 || typ==3) {from.push(/'/g); to.push("&#039;");}
   if(typ==2 || typ==3) {from.push(/"/g); to.push("&quot;");}
   for(var i in from) str=str.replace(from[i],to[i]);
  return str;
}

function htmlspecialchars_decode(string, quote_style) {
    var histogram = {}, symbol = '', tmp_str = '', entity = '';
    tmp_str = string.toString();
    if (false === (histogram = get_html_translation_table('HTML_SPECIALCHARS', quote_style))) {
        return false;
    }
    // &amp; must be the last character when decoding!
    delete(histogram['&']);
    histogram['&'] = '&amp;';
 
    for (symbol in histogram) {
        entity = histogram[symbol];
        tmp_str = tmp_str.split(entity).join(symbol);
    }
    return tmp_str;
}

function serialize(mixed_value) {
    // http://kevin.vanzonneveld.net
    // +   original by: Arpad Ray (mailto:arpad@php.net)
    // +   improved by: Dino
    // +   bugfixed by: Andrej Pavlovic
    // +   bugfixed by: Garagoth
    // +      input by: DtTvB (http://dt.in.th/2008-09-16.string-length-in-bytes.html)
    // +   bugfixed by: Russell Walker (http://www.nbill.co.uk/)
    // +   bugfixed by: Jamie Beck (http://www.terabit.ca/)
    // %          note: We feel the main purpose of this function should be to ease the transport of data between php & js
    // %          note: Aiming for PHP-compatibility, we have to translate objects to arrays
    // *     example 1: serialize(['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: 'a:3:{i:0;s:5:"Kevin";i:1;s:3:"van";i:2;s:9:"Zonneveld";}'
    // *     example 2: serialize({firstName: 'Kevin', midName: 'van', surName: 'Zonneveld'});
    // *     returns 2: 'a:3:{s:9:"firstName";s:5:"Kevin";s:7:"midName";s:3:"van";s:7:"surName";s:9:"Zonneveld";}'
 
    var _getType = function (inp) {
        var type = typeof inp, match;
        var key;
        if (type == 'object' && !inp) {
            return 'null';
        }
        if (type == "object") {
            if (!inp.constructor) {
                return 'object';
            }
            var cons = inp.constructor.toString();
            match = cons.match(/(\w+)\(/);
            if (match) {
                cons = match[1].toLowerCase();
            }
            var types = ["boolean", "number", "string", "array"];
            for (key in types) {
                if (cons == types[key]) {
                    type = types[key];
                    break;
                }
            }
        }
        return type;
    };
    var type = _getType(mixed_value);
    var val, ktype = '';
    
    switch (type) {
        case "function": 
            val = ""; 
            break;
        case "boolean":
            val = "b:" + (mixed_value ? "1" : "0");
            break;
        case "number":
            val = (Math.round(mixed_value) == mixed_value ? "i" : "d") + ":" + mixed_value;
            break;
        case "string":
            val = "s:" + encodeURIComponent(mixed_value).replace(/%../g, 'x').length + ":\"" + mixed_value + "\"";
            break;
        case "array":
        case "object":
            val = "a";
            /*
            if (type == "object") {
                var objname = mixed_value.constructor.toString().match(/(\w+)\(\)/);
                if (objname == undefined) {
                    return;
                }
                objname[1] = this.serialize(objname[1]);
                val = "O" + objname[1].substring(1, objname[1].length - 1);
            }
            */
            var count = 0;
            var vals = "";
            var okey;
            var key;
            for (key in mixed_value) {
                ktype = _getType(mixed_value[key]);
                if (ktype == "function") { 
                    continue; 
                }
                
                okey = (key.match(/^[0-9]+$/) ? parseInt(key, 10) : key);
                vals += this.serialize(okey) +
                        this.serialize(mixed_value[key]);
                count++;
            }
            val += ":" + count + ":{" + vals + "}";
            break;
        case "undefined": // Fall-through
        default: // if the JS object has a property which contains a null value, the string cannot be unserialized by PHP
            val = "N";
            break;
    }
    if (type != "object" && type != "array") {
        val += ";";
    }
    return val;
}

function show_loading_image(id) {
	$(id).innerHTML = '<img src="/img/ajax_loading.gif" style="position:relative; top:3px"/> <span style="font-size:12px; font-weight:bold">Daten werden geladen...</span>';
}

function check_cildren_out(e,d,after){  
//history_add("check_cildren_out");
     // prüfen ob das neue mausover objekt ein child vom hauptobjekt ist, wenn ja dann nicht ausblenden  
     var zielobj=e.relatedTarget||e.toElement;  
     var kinder=d.getElementsByTagName('*');  
     for(var i=0;i<kinder.length;i++){  
       if(zielobj==kinder[i]||zielobj==d){  
       return ;  
       }  
	 }
	// history_add("bin raus");
     eval(after);
 }
 
function resizeTextarea( textarea ) {
  currentRows = textarea.value.split('\n');
  var newRows = 2;
  if(currentRows.length > textarea.rows-2) newRows = newRows+currentRows.length;
   if(currentRows.length < textarea.rows-4) newRows = newRows+currentRows.length;
  if( newRows > 2 ) {
    textarea.rows = newRows;
  }
}

function check_search_term(searchterm) {
	if(searchterm == ""	|| searchterm.length < 3) {
		alert('Ihr Suchbegriff muss mind. 3 Zeichen lang sein.');
		return false;
	}
	else return true;
}

function bw(){
	if ((navigator.appName=="Microsoft Internet Explorer") || (navigator.appName=="Netscape")){
		if (navigator.appName=="Microsoft Internet Explorer"){
			return "ie";
		}else{
			return "ns";
		}
	}else{
		return "ot";
	}
}

function global_handling_responsetext_errors(responsetext) {
       if(responsetext == "login") {
            alert("Ihre Sitzung ist abgelaufen. Loggen Sie sich bitte neu ein.");
        }
        else if(responsetext == "no permission") {
            alert(unescape("Sie haben nicht die ben%F6tigte Berechtigung um diese Aktion auszuf%FChren."));
        }   
        else if(responsetext == "missing data") {
            alert(unescape("Es wurden nicht alle erforderlichen Daten %FCbermittelt."));
        }
        else if(responsetext == "unknown error") {
            alert("Unbekannter Fehler. Bitte kontaktieren Sie den Support falls der Fehler wiederholt auftritt.");
        }       
        else {
        	alert("Unbekannter Fehler: "+responsetext);
        }
    }
	
	
var old_rating = new Array();

function rate_post(id,pos) {
	old_rating = new Array();
	for(var x =0;x<6;x++) {
		var str = $(id+x).src;
		old_rating[x] = str;
	}
	for(var x=0;x <= pos; x++) {
		$(id+x).src ="img/star.png";
	}
	for(var x=pos+1;x < 6; x++) {
		$(id+x).src ="img/starleer.png";
	}
}

function  rate_post_restore(id) {
	for(var x =0;x<6;x++) {
		$(id+""+x).src = old_rating[x];
	}
	old_rating = new Array();
}

function rate_post_save(id,pos,type) {
	new Effect.Opacity('div'+id, { from: 1.0, to: 0.0, duration: 1 });
	new Ajax.Updater("div"+id, 'ajax/rating_save.php', {
	  parameters: { id: id,type:type,pos:pos },
	  evalScripts:true
	});
}

function votenumplus(id) {
	var obj =$('votesnum'+id);
	if(obj.innerHTML) {
		var anz = (obj.innerHTML);
		if(anz) anz++
		obj.innerHTML = anz;
	}
}

function checkform() {
	var val = $('kommentarfeld').value;
	if(val == "") {
	alert("Du hast keinen Text eingegeben");
	}
	else if(val.split("*").length > 40) {
	alert("Du hast zu viele Smilies eingetippt. Bitte entferne wieder welche.");
	}
	else if($('name').value == "Übertreiber") {
	alert(unescape("Hallo lieber %DCbertreiber. Du gehst uns mit deinen Posts gewaltig auf den Keks%2C also schreibe doch bitte normale Kommentare oder lass es bleiben"));
	}
	else {
	ajax_load_post("ajax_komment.php","kommentar="+val+"&mid=<?=$mid;?>&typ=2&typ2=6&name="+$('name').value+"","kommentar");
	$('kommentarfeld').value = "";
		$('kommentarfeld').disabled=true;
		$('name').value ="";
		$('kommentarfeld').disabled=true;
		$('kmknopf').disabled=true;
	document.location.href='#comment'
	}
	return false;
}

function Lesezeichen(SeitenTitel,SeitenURL,Kommentar){

  if (window.sidebar)
    {
    // firefox
    window.sidebar.addPanel(SeitenTitel,SeitenURL,Kommentar);
    }
  else if(window.opera && window.print)
    {
    // opera
    var elem = document.createElement('a');
    elem.setAttribute('href',SeitenURL);
    elem.setAttribute('title',SeitenTitel);
    elem.setAttribute('rel','sidebar');
    elem.click();
    }
  else if(document.all)
    {
    // ie
    window.external.AddFavorite(SeitenURL,SeitenTitel);
    }
}

var anzahl_smilie = 0;
function add_smilie(smilie) {
	if(anzahl_smilie < 15) {
		$('kommentarfeld').value = $F('kommentarfeld') + smilie;
		anzahl_smilie++;
	}
	else {
	alert(unescape("Wir%20wollen%20es%20mit%20den%20Smileys%20mal%20nicht%20%uFFFDbertreiben%20%3B-%29"));
	}
}

function partner(id) {
	new Ajax.Request('ajax/partnerlog.php', {
	  parameters: {id:id  }
	});

}

function save_comment(mid,type1,type2) {
	var val = $('kommentarfeld').value;
	if(val == "") {
	alert("Du hast keinen Text eingegeben");
	}
	else if(val.split("*").length > 40) {
	alert("Du hast zu viele Smilies eingetippt. Bitte entferne wieder welche.");
	}
	else if($('name').value == "Übertreiber") {
	alert(unescape("Hallo lieber %DCbertreiber. Du gehst uns mit deinen Posts gewaltig auf den Keks%2C also schreibe doch bitte normale Kommentare oder lass es bleiben"));
	}
	else {
		new Ajax.Updater("kommentar",'ajax/save_comments.php', {
		  parameters: {kommentar:val,mid:mid,typ:type1,typ2:type2,name:$F('name')  }
		});
	
	$('kommentarfeld').value = "";
		$('kommentarfeld').disabled=true;
		$('name').value ="";
		$('kommentarfeld').disabled=true;
		$('kmknopf').disabled=true;
	document.location.href='#comment'
	}
	return false;
}

function recommend_post_show(id,type) {
	window_verdunkeln();
	$('recommend_form').style.display = "block";
	$('recommend_progress').style.display = "none";
	$('recommend_result').style.display = "none";
	show_dialog_div('emp');
	
	$('recommend_id').value = htmlspecialchars(id);
	$('recommend_type').value = type;
}

function recommend_post_hide() {
	$('recommend_nick').value="";
	$('recommend_mail').value="";
	$('recommend_mail2').value="";
	$('recommend_name2').value="";
	$('recommend_kommentar').value="";
	hide_dialog_div('emp');	
}

function recommend_post_send() {
	 if($F('recommend_nick') == '')  {
	   alert('Du hast deinen Namen nicht angegeben');
	  $F('recommend_nick').focus();
	   return false;
	  }
	 if($F('recommend_mail') == '')  {
	   alert('Du hast deine  eMail-Adresse nicht angegeben');
	   $F('recommend_mail').focus();
	   return false;
	  }
	 if($F('recommend_mail2') == '')  {
	   alert('Du hast deine  eMail-Adresse des Empfänders nicht angegeben');
	   $F('recommend_mail2').focus();
	   return false;
	  }
		 if($F('recommend_name2') == '')  {
	   alert('Du hast den Namen des Empfängers nicht angegeben');
	   $F('recommend_name2').focus();
	   return false;
	  }
	  var id = $F('recommend_id');
	  var type = $F('recommend_type');
	  $('recommend_form').style.display = "none";
	$('recommend_progress').style.display = "block";
	$('recommend_result').style.display = "none";
	new Ajax.Updater('recommend_result', 'ajax/recommend.php', {
	  parameters: { id:id,type:type,nick: $F('recommend_nick'),mail2:$F('recommend_mail'),name2:$F('recommend_name2'),name2mail:$F('recommend_mail2'),kommentar:$F('recommend_kommentar') },
	  method:"post",
	  onComplete: function() { setTimeout(function() {$('recommend_progress').style.display = "none";
	$('recommend_result').style.display = "block";},800); }
	});

}
