/**
* Muss hier stehen bleiben
*/
// Initialize event depending on browser
function initReady(fn) {
	// W3C-compliant browser
	if(document.addEventListener) {
		document.addEventListener("DOMContentLoaded", fn, false);
	}
	// IE
	else {
		document.onreadystatechange = function(){readyState(fn)}
	}
}

// IE execute function
function readyState(func) {
	// DOM is ready
	if(document.readyState == "interactive" || document.readyState == "complete") {
		func();
	}
}
/**
* Ende
*/

/* set focus on input fields or jump to anchor */
function setFocus(id){

	var input1 = document.getElementById("app-zipcode");
	var input2 = document.getElementById("zipcode");

	if (id!=undefined) {
		if (document.getElementById(id)) {
			input2 = document.getElementById(id);
		}
	}

	// jump to anchor
	if(window.location.hash) {
		window.location.hash;

	// or set focus
	} else {
		 if(input2) {
			input = input2;
		} else {
			input = input1;
		}
		input.focus();
	}
}

/*
// Array der Bilder
var index_page_imgchange_imglist = new Array(
	"<??>test_1.JPG",
	"http://ibunker.us/pics/439962/45011274123412.jpg",
	"http://hidefwallpaper.org/wp-content/gallery/hd_wallpaper_hd_05/wallpaper-hd-image.jpg"
	);
// Angabe in Sekunden
var index_page_imgchange_time = 10;
// Zum deaktivieren auf 1 setzen
var index_page_imgchange_stopchange = 0;

var index_page_imgchange_imgindex = 0;
var index_page_imgchange_preloading = 0;

window.onload = function() { index_page_imgchange_intervalID = setInterval('exchange_img()', index_page_imgchange_time * 1000); }
window.onunload = function() { clearInterval(index_page_imgchange_intervalID); }
function exchange_img()
{
	if(index_page_imgchange_preloading || index_page_imgchange_stopchange)
		return;
	index_page_imgchange_imgindex = (index_page_imgchange_imgindex + 1) % index_page_imgchange_imglist.length;
	index_page_imgchange_preloading = document.createElement("img");
	attr = document.createAttribute("src");
	attr.nodeValue = index_page_imgchange_imglist[index_page_imgchange_imgindex];
	index_page_imgchange_preloading.setAttributeNode(attr);
	index_page_imgchange_preloading.onload = function() { index_page_imgchange_preloading = 0; document.getElementById("content-main").style.backgroundImage = "url(" + index_page_imgchange_imglist[index_page_imgchange_imgindex] + ")"; }
}
*/

/* alle Checkboxen auswählen */
var checkflag = "false";
function check(field){
	if (checkflag == "false") {
		for (i = 0; i < field.length; i++) {
			field[i].checked = true;
		}
		checkflag = "true";
		return " keine ";
	} else {
		for (i = 0; i < field.length; i++) {
			field[i].checked = false;
		}
		checkflag = "false";
		return " alle ";
	}
}


/**
* PopUp-Fenster öffnen
*/
function PopUp(url,width,height,name){
	var w = width;  // Fensterbreite in Pixeln
	var h = height; // Fensterhoehe in Pixeln
	var specs = 'toolbar = no'	// Toolbar
		+',location = no'		// Adress-Leiste
		+',directories = no'	// Zusatzleisten
		+',status = no'			// Statusleiste
		+',menubar = no'		// Menü
		+',scrollbars = yes'	// Scrollbars
		+',resizable = yes'		// Fenstergrösse veränderbar?
		+',width = '+w			// Fensterbreite in Pixeln
		+',height = '+h			// Fensterhöhe in Pixeln

	var fenster = window.open(url,name,specs);

	if(navigator.appName=='Microsoft Internet Explorer'){
		//
	} else {
		//
	}

	// Dateiname und Pfad der Datei, die angezeigt werden soll
	fenster.location.href = url;

	// Fensterposition
	var x = (screen.availWidth-w)/2;     // X-Koordinate
	var y = (screen.availHeight-h-50)/2; // Y-Koordinate

	fenster.moveTo(x,y);
	fenster.focus();
}

/**
* Aus Popup heraus Seite im Parent-Fenster aufrufen,
* optional Popup schließen (close=1)
*/
function come2daddy(url,close) {
	opener.location.href=url;
	if(close==1)	self.close();
}

function center_page(){
	var avail_w = 0;	// window inner width
	var page_w = 1200;	// page width
	var cont_w = 940;	// content width
	var ad_left_w = 120;	// ad left width
	var scroll_x = 0;	// scroll to x coordinate

	if(navigator.appName == 'Microsoft Internet Explorer'){
		//var avail_w = document.body.clientWidth; // QuirksMode only
		avail_w = document.documentElement.clientWidth;
	}else{
		avail_w = window.innerWidth; //
	}

	if(page_w > avail_w){
		// content width is bigger than window inner width
		if(cont_w > avail_w){
			// scroll to right end of left ad
			scroll_x = ad_left_w;
			case_nr = 1;
		}else{
			scroll_x = (page_w - avail_w)/2;
			case_nr = 2;
		}
		window.scrollTo(scroll_x,0);

	//	window.scrollTo((page_w - avail_w)/2,0);
	//	alert('case '+case_nr);
	}
}

/**
 * Automatische Verlängerung von Textareas
 */
function avoidScrollbars(id, maxHeight){
	var text = id && id.style ? id : document.getElementById(id);
	if ( !text )
		return;

	var adjustedHeight = text.clientHeight;
	if ( !maxHeight || maxHeight > adjustedHeight ){
		adjustedHeight = Math.max(text.scrollHeight, adjustedHeight);
		if ( maxHeight )
			adjustedHeight = Math.min(maxHeight, adjustedHeight);
		if ( adjustedHeight > text.clientHeight )
			text.style.height = adjustedHeight + "px";
	}
}

/**
 * Liest die Höhe von source_id aus und übergibt sie an target_id
 */
function getObjHeight(source_id, target_id){
	var source = document.getElementById(source_id);
	var target = document.getElementById(target_id);

	if(source && target) {
		target.value = source.offsetHeight;
	}
}

function show_password(id){
	if(id){
		var el = document.getElementById(id);

		if(el.getAttribute('type')=='text')
		{
			el.setAttribute('type','password');
		}else{
			el.setAttribute('type','text');
		}
		/*
		if(navigator.appName == 'Microsoft Internet Explorer'){
			alert('ie');
		}else{
			alert('good browser');
		}
		*/
		//alert(el.getAttribute('type'));
		setTimeout('el.focus()', 10)
	}
}

function changeTextOnClick(id,text){
	if(id){
	    document.getElementById(id).innerHTML = text;
	}
}

function changeText(id,new_text){
	if(id){
		document.getElementById(id).innerHTML = new_text;
	}
}

function swapText(id,text1,text2){
	if(id){
		if(document.getElementById(id).innerHTML == text1)
		{
			document.getElementById(id).innerHTML = text2;
		}
		else
		{
			document.getElementById(id).innerHTML = text1;
		}
	}
}

function swapClass(id,class1,class2){
	if(id){
		if(document.getElementById(id).className == class1)
		{
			document.getElementById(id).className = class2;
		}
		else
		{
			document.getElementById(id).className = class1;
		}
	}
}


function showhide(id){
	if(id){
		var el = document.getElementById(id);

		if(el.style.display == 'block'){
			el.style.display = 'none';
		} else {
			el.style.display = 'block';
		}
	}
}

function showhide_i(id){
	if(id){
		var el = document.getElementById(id);

		if(el.style.display == 'inline'){
			el.style.display = 'none';
		} else {
			el.style.display = 'inline';
		}
	}
}

// wird fuer das Rating benoetigt
function show(id){
	if(id){
		var el = document.getElementById(id);

		if(el.style.display == 'none'){
			el.style.display = 'block';
		}
	}
}

function hide(id){
	if(id){
		var el = document.getElementById(id);

		if(el.style.display == 'block'){
			el.style.display = 'none';
		}
	}
}

function setDisplay(id,newDisplay){
	if(id){
		var el = document.getElementById(id);
		el.style.display = newDisplay;
	}
}

function showbyoption(option,value,id){
	if(id){
		var el = document.getElementById(id);
		if(option == value){
			el.style.display = '';
		}else{
			el.style.display = 'none';
		}
	}
}

function uncheck(id1,id2){
	if(id1 && id2){
		var el1 = document.getElementById(id1);
		var el2 = document.getElementById(id2);

		if(el1.checked==true){
			el2.checked=false;
		}
	}
}

function uncheck_other(name){
	var chb_arr = document.getElementsByName(name);
	if (chb_arr!=null) {
		var count_checked = 0;
		for(i=0;i<chb_arr.length;i++) {
			chb_arr[i].checked = false;
		}
	}
	return true;
}

function check_input(obj,target_id){
	show('check-user-input');

	var target = document.getElementById(target_id);
	if(target){
		if(!obj.value){
			target.firstChild.nodeValue = '';
		}else{
			target.firstChild.nodeValue = obj.value;
		}
	}
}

function limit_input(obj,limit,target_id){
	var val = obj.value;
	var display = document.getElementById(target_id);
	var remain = limit - val.length;
	if(remain<1) remain = 0;

	if (val.length > 0) {
		display.firstChild.data = '(noch '+remain+' Zeichen)';

		if (val.length >= limit)
		{
			obj.value = val.substring(0,limit);
			//obj.blur();
		}

	}else{
		display.firstChild.data = '(max. '+limit+' Zeichen)';
	}

}

function check_checkbox(obj,target_id){
	show('check-user-input');

	var target = document.getElementById(target_id);
	if(target){
		if(obj.checked==true){
			target.firstChild.nodeValue = 'AGB akzeptiert';
		}else{
			target.firstChild.nodeValue = 'AGB nicht akzeptiert';
		}
	}
}


/**
 * Search in element with nodeId (or, if empty, in body) for tagName with CSS-class findClass,
 * then replace findClass with newClass and set switchClassId´s CSS-class to findClass
 *
 * Auf deutsch:
 *
 * nodeId:			Suche innerhalb dieses Elements (default: body) nach...
 * tagName:			(z.B.) <h2 class="class-old"> mit der CSS-Klasse...
 * findClass:		"class-old" und ersetze die CSS-Klasse von...
 * switchClassId:	Element mit ID (z.B. <p id="change-my-class" class="class-old">) mit der zu ändernden CSS-Klasse...
 * newClass:		mit "class-new".
 **/
function switchClassById(switchClassId,tagName,findClass,newClass,nodeId){
	if(switchClassId){
		var aElm = getElementsByClassName(tagName,findClass,nodeId);

		for(var i=0; i<aElm.length; i++) {
			aElm[i].className = newClass;
		}

		document.getElementById(switchClassId).className = findClass;
	}
	return false;
}

/**
 * Set CSS-class of id to newClass (does NOT take care of existing classes!)
 **/
function setClassById(id,newClass){
	if(id){
		var el = document.getElementById(id);
		el.className = newClass;
	}
	return false;
}

/**
 * Search in element with nodeId for tagName with CSS-class findClass, return array
 **/
function getElementsByClassName(tagName,findClass,nodeId) {
	if(tagName)	{
		if(nodeId){
			var el = document.getElementById(nodeId);
			var aElm = el.getElementsByTagName(tagName);
		}else{
			var aElm = document.body.getElementsByTagName(tagName);
		}

		var x = 0;
		var aRet = [];
		for(var i=0; i<aElm.length; i++) {
			if(aElm[i].className==findClass) {
				aRet[x] = aElm[i];
				x++;
			}

		}

		return aRet;
	}
}

/**
 *
 **/
function add_komma(obj){
	var price = obj.value;

	if(price.length >= 3){
		price = price.replace(/[,$\.]/g, '');

		var price_a = price.substring(0,price.length-2);
		var price_b = price.substring(price.length-2,price.length);
		var price_f = price_a + ',' + price_b;

		obj.value = price_f;
	}

}


/***********************************************
* Bookmark site script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

/* Modified to support Opera */
function bookmarksite(title,url){
	if (window.sidebar) // firefox
		window.sidebar.addPanel(title, url, "");
	else if(window.opera && window.print){ // opera
		var elem = document.createElement('a');
		elem.setAttribute('href',url);
		elem.setAttribute('title',title);
		elem.setAttribute('rel','sidebar');
		elem.click();
	}
	else if(document.all)// ie
		window.external.AddFavorite(url, title);
}

/*
*
*
*/

function jumpToAnchor(anchor) {
   window.location = String(window.location).replace(/\#.*$/, "") + "#" + anchor;
}

function ShowOneAndHideOthers( value ) {
  var ids = ["s1","s2","s3","s4","s5","s6","s7","s8","s9","s10","s11","s12","s13","s14","s15","s16","s17","s18","s19","s20","s21"];
  for( var i = 0; i < ids.length; i++ ) {
    var obj = document.getElementById( ids[i] );
    if( obj )
      obj.style.display = (value == ids[i]) ? "block" : "none";
  }
}
