/* Workaround für Lightbox Fehler:
Das Script wird auf der Model-Vorlage verwendet.
Aufruf per onClick
Sonst wird beim Freisteller in der LB "Bild 1 von X" angezigt, wenn dies in einer anderen Lightbox vorher aufgerufen wurde
*/
function clearLighBoxNumberDisplay() {
	//alert("hhh");
	document.getElementById('lbNumberDisplay').innerHTML = "";
}


function cm_is_child_of(elem,parent_elem) {
	var t_elem = elem;
	while(t_elem != undefined && t_elem != null) {
		if(t_elem == parent_elem) {
			return true;
		}
		t_elem = t_elem.parentNode;
	}
	return false;
}

function _communiacs_show(element){
	element.className += " hover";
	Cufon.refresh();
}

function _communiacs_hide(element, p_event){
	var t_cancel = false;
	if(p_event) {
		var t_id = (p_event.toElement || p_event.relatedTarget).id;
		if(t_id.indexOf('border_') == 0 || t_id.indexOf('corner_') == 0) {
			t_cancel = true;
		}
	}
	if(!t_cancel) {
		if(element.className == 'hover')
			element.className = '';
		else {
			element.className = element.className.replace(/ hover/g, "");
		}
	}
	Cufon.refresh();
}

function _communiacs_getDirectChildrenByTagName(p_source, p_tag) {
	var ret = new Array();
	for(var i = 0; i < p_source.childNodes.length; i++) {
		if(p_source.childNodes[i].nodeType == 1 && p_source.childNodes[i].nodeName.toLowerCase() == p_tag.toLowerCase()) {
			ret[ret.length] = p_source.childNodes[i];
		}
	}
	return ret;
}

function _communiacs_getElementsByTagAndClass(p_source, p_tag, p_class, p_direct_child) {
	var t_return = new Array();
	if(!p_direct_child) {
		var t_elements = p_source.getElementsByTagName(p_tag);
	}
	else {
		var t_elements = _communiacs_getDirectChildrenByTagName(p_source, p_tag);
	}
	for(var i = 0; i < t_elements.length; i++) {
		if(t_elements[i].className.indexOf(p_class) > -1) {
			t_return[t_return.length] = t_elements[i];
		}
	}
	return t_return;
}

function openPreviousLink(elem) {
	elem.parentNode.parentNode.getElementsByTagName('a')[0].onclick();
}



/* Klappeffekt des sprachwählers */
var cm_lang_selector = false;
function lang_selector_toggle() {
	var t_elems = document.getElementById('lang_selector').getElementsByTagName('li');
	if(cm_lang_selector) {
		for(var i = 0; i < t_elems.length; i++) {
			if(i > 0) {
				t_elems[i].style.display = 'none';
			}
		};
		document.getElementById('lang_selector_trigger').style.display = 'block';
		cm_lang_selector = false;
	}
	else {
		for(var i = 0; i < t_elems.length; i++) {
			t_elems[i].style.display = 'block';
		};
		document.getElementById('lang_selector_trigger').style.display = 'none';
		cm_lang_selector = true;
	}
}
function lang_selector_toggle_off(p_event) {
	if(cm_lang_selector && (p_event.target || p_event.srcElement).id != 'lang_selector_trigger') lang_selector_toggle();
}


/* Skalierung des Hintergrundbildes und Positionierung vom Wrapper und blauem Balken */

function communiacs_resize_background() {
	var t_back_img = document.getElementById('back_image_img');
	if(t_back_img.offsetWidth == 0) {
		setTimeout('communiacs_resize_background()',200);
	}
	else {
		// Bild und dessen Container ermitteln
		var t_back = document.getElementById('back_image');
		// prüfen, ob Bild zu klein ist
		if(t_back.offsetWidth > t_back_img.offsetWidth || t_back.offsetHeight > t_back_img.offsetHeight) {
			// Vergrößerungsfaktoren für X und Y Achse berechnen und den größeren der beiden ermitteln
			var t_factorX = t_back.offsetWidth / t_back_img.offsetWidth;
			var t_factorY = t_back.offsetHeight / t_back_img.offsetHeight;
			var t_factorFinal = (t_factorX > t_factorY) ? t_factorX : t_factorY;
			// Höhe und Breite des Bildes Mit dem größten Faktor multiplizieren und um eins erhöhen, damit keine Leerräume durch Rundung entstehen
			var t_width = t_factorFinal * t_back_img.offsetWidth + 1;
			var t_height = t_factorFinal * t_back_img.offsetHeight + 1;
			// Neue dimensionen dem Bild als Stil zuweisen
			t_back_img.style.width = Math.round(t_width) + 'px';
			t_back_img.style.height = Math.round(t_height) + 'px';
		}
		t_back.style.visibility = 'visible';
		
		//wrapper und blauen balken positionieren
/*		var t_wrapper_height = document.getElementById('wrapper').offsetHeight;
		if(window.innerHeight)
			var t_client_height = window.innerHeight;
		else if(document.documentElement.clientHeight)
			var t_client_height = document.documentElement.clientHeight;
		else if(document.body.clientHeight)
			var t_client_height = document.body.clientHeight;
		if(t_client_height > t_wrapper_height) {
			if((t_client_height - t_wrapper_height)/2 > 100) {
				document.getElementById('wrapper').style.top = '100px';
				document.getElementById('back_bar').style.top = '135px';
			}
			else {
				document.getElementById('wrapper').style.top = Math.round((t_client_height - t_wrapper_height)/2) + 'px';
				document.getElementById('back_bar').style.top = Math.round((t_client_height - t_wrapper_height)/2 + 35) + 'px';
			}
		}
		else {*/
			document.getElementById('wrapper').style.top = '0px';
			document.getElementById('back_bar').style.top = '35px';
		//}
	}
}






// FUNKTIONEN FuER HANDELSPARTNER

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_showHideLayers() { //v9.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) 
  with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}



/*** animation des Fahrzeugicons ***/

function cm_animate_vehicle() {
	var t_claim = $('claim_box');
	var t_vehicle = $('fahrzeug_icon');
	new Effect.Morph(t_claim, {style: 'width:425px', duration: 2});
	new Effect.Morph(t_vehicle, {style: 'left:884px', duration: 2});
}


/*** BREITEN-HACK FUER NEWS OHNE BILDER ***/

function _communiacs_news_box_width() {
	/*** LIST ***/
	// News-Item ermitteln und durchlaufen
	var t_divs = _communiacs_getElementsByTagAndClass(document,'div','news_list_item');
	for(var i = 0; i < t_divs.length; i++) {
		var t_divs2 = _communiacs_getElementsByTagAndClass(t_divs[i],'div','news_list_image');
		// Pruefen, ob Image existiert
		if(t_divs2[0]) {
			if(t_divs2[0].getElementsByTagName('img').length == 0) {
				// News-Item-Tag mit zusaetzlicher Klasse versehen
				t_divs[i].className = t_divs[i].className + ' news_list_item_noimage';
			}
		}
	}
	
	/*** SINGLE ***/
	// News-Item ermitteln und durchlaufen
	var t_divs = _communiacs_getElementsByTagAndClass(document,'div','news_single_item');
	for(var i = 0; i < t_divs.length; i++) {
		var t_divs2 = _communiacs_getElementsByTagAndClass(t_divs[i],'div','news_single_image');
		// Pruefen, ob Image existiert
		if(t_divs2[0]) {
			if(t_divs2[0].getElementsByTagName('img').length == 0) {
				// News-Item-Tag mit zusaetzlicher Klasse versehen
				t_divs[i].className = t_divs[i].className + ' news_single_item_noimage';
			}
		}
	}
}


/*** SLIDER-GALLERY ***/
var cm_slidergallery_items = new Array(); //array, dass die zu verschiebenden elemente beinhaltet
var cm_slidergallery_index = 0; //index des linken elements des aktuellen sets
var cm_slidergallery_duration = 0.5; //dauer des slide-effekts in sekunden
var cm_slidergallery_stepwidth = 3; //gibt an, um wieviele elemente jeweils (maximal) verschoben wird
var cm_slidergallery_effect = null; //aktuelles effekt-objekt (wird verwendet um überschneidungen zu verhindern, besser als effekt-queues)

function cm_slidergallery_init() { //ermitteln der zu verschiebenden elemente und aktualisieren der pfeile
	if($('fce_slidegallery_image_container')) {
		cm_slidergallery_items = $$('#fce_slidegallery_image_container .fce_slidegallery_image_item');
		cm_slidergallery_refresh_navi();
	}
}

function cm_slidergallery_refresh_navi() { //aktualisieren der pfeile
	if(cm_slidergallery_index == 0) {
		$('fce_slidegallery_prev').style.display = 'none';
	}
	else {
		$('fce_slidegallery_prev').style.display = 'block';
	}
	if(cm_slidergallery_index >= cm_slidergallery_items.length - 3) {
		$('fce_slidegallery_next').style.display = 'none';
	}
	else {
		$('fce_slidegallery_next').style.display = 'block';
	}
}

function cm_slidergallery_prev() { //links verschieben
	if(cm_slidergallery_index > 0) {
		//index neu berechnen
		cm_slidergallery_index -= 3;
		if(cm_slidergallery_index < 0) cm_slidergallery_index = 0;
		//navi-pfeile aktualisieren
		cm_slidergallery_refresh_navi();
		//ggf. laufenden effekt abbrechen und container verschieben
		if(cm_slidergallery_effect != null) {
			cm_slidergallery_effect.cancel();
		}
		cm_slidergallery_effect = new Effect.Move($('fce_slidegallery_image_container'), { x:(0 - cm_slidergallery_items[0].offsetWidth * cm_slidergallery_index), y:0, mode:'absolute', duration:cm_slidergallery_duration, afterFinish:function() {cm_slidergallery_effect = null} });
	}
}

function cm_slidergallery_next() { //rechts verschieben
	if(cm_slidergallery_index < cm_slidergallery_items.length - 3) {
		//index neu berechnen
		cm_slidergallery_index += 3;
		if(cm_slidergallery_index > cm_slidergallery_items.length - 3) cm_slidergallery_index = cm_slidergallery_items.length - 3;
		//navi-pfeile aktualisieren
		cm_slidergallery_refresh_navi();
		//ggf. laufenden effekt abbrechen und container verschieben
		if(cm_slidergallery_effect != null) {
			cm_slidergallery_effect.cancel();
		}
		cm_slidergallery_effect = new Effect.Move($('fce_slidegallery_image_container'), { x:(0 - cm_slidergallery_items[0].offsetWidth * cm_slidergallery_index), y:0, mode:'absolute', duration:cm_slidergallery_duration, afterFinish:function() {cm_slidergallery_effect = null} });
	}
}

function searchbox_default_state_init() {
	if(document.getElementById('searchform')) {
		document.getElementById('searchform').onsubmit=searchbox_default_state;
		document.getElementById('searchform').children[1].onclick=searchbox_default_state;
	}
}

function searchbox_default_state() {
	var x=document.forms["searchform"]["tx_indexedsearch[sword]"].value;
	if (x==null || x=="") {
		alert("Bitte geben Sie einen Suchbegriff ein!");
		return false;
	}
}







/*************** Eventlisterner *******************/
/*************** Eventlisterner *******************/
/*************** Eventlisterner *******************/

if (window.addEventListener) {
	window.addEventListener("click", lang_selector_toggle_off, false);
	document.addEventListener("DOMContentLoaded", _cm_onload_handler, false);
	window.addEventListener("resize", communiacs_resize_background, false);
}
else if(document.attachEvent) {
	document.attachEvent('onclick', lang_selector_toggle_off);
	window.attachEvent('onload', _cm_onload_handler);
	window.attachEvent('onresize', communiacs_resize_background);
}
else {
	var onclick_old = window.onclick;
	window.onclick = function() {
		if(onclick_old) {
			onclick_old();
		}
		lang_selector_toggle_off();
	}
	var onload_old = window.onload;
	window.onload = function() {
		if(onload_old) {
			onload_old();
		}
		_cm_onload_handler();
	}
	var onresize_old = document.body.onresize;
	document.body.onresize = function() {
		if(onresize_old) {
			onresize_old();
		}
		communiacs_resize_background();
	}
}

function _cm_onload_handler() {
	communiacs_resize_background();
	_communiacs_news_box_width();
	cm_slidergallery_init();
	searchbox_default_state_init();
}
