/*
	JavaScript-Funktionen
*/
// -----------------------------------------------------------------------------------
//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize(){
	var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
 } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
 } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;
	if (self.innerHeight) { // all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}

// beim Laden initialiesieren
window.onload = init;
timerHauptmenu = null;

// initialisieren:
function init() {
	var menu = document.getElementById("hauptmenu");
	if(menu) {
		var ul = menu.getElementsByTagName("UL")[0];
		if(ul) {
			wNav_OpenFix.fix(ul);
		}
	}
	IHKBIZ.onload();
	doAGB();
}
function doAGB(){
  elements = document.getElementsByTagName("li");
  n = elements.length;
  for(i=0;i<n;i++){
  	if(i==3){
			//alert(elements[i].className.match(/geburtsdatum/));
		}
  	if(elements[i].className.match(/agb/) || elements[i].className.match(/datenschutz/)){
  		id = "agb";
  		if(elements[i].className.match(/datenschutz/))		id = "datenschutz";
  		label = elements[i].getElementsByTagName("label")[0];
  		html = label.innerHTML ;
  		html1 = "<a target='_blank' title='"+html+" in neuem Fenster anzeigen' href='http://ihk-biz.de/de/"+id+".php'>"+html+"</a> bestätigen*" ;
  		//html = html.replace(/&lt;/g, "<");
  		//html = html.replace(/&gt;/g, ">");
  		label.innerHTML  = html1;
		}
	}
}

// Popus, externe Links
function openWindow(theURL,winName,features) {
	window.open(theURL,winName,features);
}

// Verstecken / Anzeigen
function hideShowSiblingUl(el) {
	if(el.parentNode) {
		sibUl = el.parentNode.getElementsByTagName("UL")[0];
		if(sibUl) {
			if(sibUl.style.display == "none" || sibUl.style.display == "") sibUl.style.display = "block";
			else sibUl.style.display = "none";
		}
	}
}
function hideShowSiblingDiv(el) {
	if(el.parentNode) {
		sibDiv = el.parentNode.getElementsByTagName("DIV")[0];
		if(sibDiv) {
			if(sibDiv.style.display == "none" || sibDiv.style.display == "") sibDiv.style.display = "block";
			else sibDiv.style.display = "none";
		}
	}
}
function openPopup(pic) {
				window.open('/de/bild.php?pic=' + pic,'Bildansicht','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=200,height=200');
}
var IHKBIZ = {
	focusOnload : false,
	onload : function() {
		var n = document.getElementsByClassName("showOnNonScript");
		for(var i=0;i<n.length;i++) {
			n[i].style.display = "none";
		}
		if(IHKBIZ.GRIDVIEW.JSGridView) {
			IHKBIZ.GRIDVIEW.onload();
		}
		if($('untermenu')) {
			IHKBIZ.fixHeight();
			Event.observe('suchfeldTerm', 'focus', IHKBIZ.suchfeldTerm_focus);
			FlashPlayer.init();
		}
		if(IHKBIZ.focusOnload) {
			window.focus();
		}
	},
	fixHeight : function () {
		var pageSize = getPageSize();
		var leftSideSize = $('untermenu').offsetHeight;
		var rightSideSize = $('inhaltsbereich').offsetHeight;
		var usedHeight = pageSize[1] - $('untermenu').offsetTop;
		var textHeight = $('text').offsetHeight;
		if(rightSideSize < usedHeight) {
			$('text').style.marginBottom = (usedHeight-rightSideSize + 35) + "px";
			$('infoSpalte').style.marginBottom = (usedHeight-rightSideSize + 35) + "px";
		}
	},
	suchfeldTerm_focus : function (event) {
		if(Event.element(event).value == "Suchen...") {
		Event.element(event).value = "";
		}
	},
	kursDateClick : function(element) {
		var myDetails = element.parentNode.parentNode.getElementsByTagName("DIV")[0];
		var allDetails = element.parentNode.parentNode.parentNode.getElementsByTagName("DIV");
		for(var i=0;i<allDetails.length;i++) {
			if(myDetails == allDetails[i]) IHKBIZ.openDateBlock(allDetails[i]);
			else if(allDetails[i].className.match("infokastenAktuelles")) {
				if((allDetails[i].style.display == "block" || allDetails[i].style.overflow == "visible")&&!(allDetails[i].style.display == "none")) IHKBIZ.closeDateBlock(allDetails[i]);
			}
		}
	},
	closeDateBlock : function(element) {
		//element.style.display = "none";
		Effect.Fade(element,{duration:0.5});
		Effect.SlideUp(element,{duration:0.5});
		element.parentNode.getElementsByTagName("H1")[0].className = "infokastenDatumLink showOnNonScript";
	},
	openDateBlock : function(element) {
		element.style.display = "block";
		Effect.Appear(element,{duration:0.5});
		Effect.SlideDown(element,{duration:0.5});
		element.parentNode.getElementsByTagName("H1")[0].className = "";
	}
}
IHKBIZ.DETAILS = {
	asterixOver : function(element) {
		var infos = IHKBIZ.DETAILS._getDivByAsterix(element);
		if(infos) {
			new Effect.Appear(infos, {duration:0.2});
		}
	},
	asterixOut : function(element) {
		var infos = IHKBIZ.DETAILS._getDivByAsterix(element);
		if(infos) {
			new Effect.Fade(infos);
		}
	},
	_getDivByAsterix : function(element) {
		return infos = element.getElementsByTagName("DIV")[0];
	}
}
IHKBIZ.GRIDVIEW = {
	filters : new Array(),
	query : "",
	searchPreviewDivId : "",
	searchPreviewDiv : null,
	pCurrentPage : null,
	pNumpages : null,
	pCurrentStart : null,
	pCurrentEnd : null,
	onload : function() {
		IHKBIZ.GRIDVIEW.pCurrentPage = $('currentPage');
		IHKBIZ.GRIDVIEW.pNumpages = $('numpages');

		IHKBIZ.GRIDVIEW.searchPreviewDiv = $(IHKBIZ.GRIDVIEW.searchPreviewDivId);
		IHKBIZ.GRIDVIEW.JSGridView.init();
		IHKBIZ.GRIDVIEW.JSGridView.pager.numPerPage = 10;
		IHKBIZ.GRIDVIEW.JSGridView.createPagingNavi("pager", IHKBIZ.GRIDVIEW.pagingNaviPointClick);
		IHKBIZ.GRIDVIEW.JSGridView.addSorting(IHKBIZ.GRIDVIEW.headerClick);
		IHKBIZ.GRIDVIEW.filters.push(IHKBIZ.GRIDVIEW.JSGridView.createAutoFilter(0, IHKBIZ.GRIDVIEW.autoFilterChange1, "geschaftsfeldDropDown", "... Geschäftsfeld"));
		IHKBIZ.GRIDVIEW.filters.push(IHKBIZ.GRIDVIEW.JSGridView.createAutoFilter(2, IHKBIZ.GRIDVIEW.autoFilterChange2, "KursartDropDown", "... Kursart"));
		IHKBIZ.GRIDVIEW.filters.push(IHKBIZ.GRIDVIEW.JSGridView.createAutoFilter(3, IHKBIZ.GRIDVIEW.autoFilterChange3, "OrtDropDown", "... Ort"));
		//IHKBIZ.GRIDVIEW.JSGridView.createSearchField(0, IHKBIZ.GRIDVIEW.fulltextsearchKeyUp, "fulltext0");
		IHKBIZ.GRIDVIEW.JSGridView.createNumPerPageDropDown(IHKBIZ.GRIDVIEW.numPerPageChange,"numPerPage");
		IHKBIZ.GRIDVIEW.JSGridView.showTable = function() {
			IHKBIZ.GRIDVIEW.setListLength();
			IHKBIZ.GRIDVIEW.JSGridView.clearTbody();
			var batch = IHKBIZ.GRIDVIEW.JSGridView.dataset.resultData;
			IHKBIZ.GRIDVIEW.JSGridView.pager.items = batch.length;
			IHKBIZ.GRIDVIEW.JSGridView.pager.calc();
			IHKBIZ.GRIDVIEW.JSGridView.createPagingNavi(IHKBIZ.GRIDVIEW.JSGridView.pagingNaviDivId, IHKBIZ.GRIDVIEW.JSGridView.pagingNaviEvent);
			for(var i=0;i<batch.length;i++) {
				if(IHKBIZ.GRIDVIEW.JSGridView.pager.currentFromIndex <= i && i <= IHKBIZ.GRIDVIEW.JSGridView.pager.currentToIndex) {
					var sampleNo = i % IHKBIZ.GRIDVIEW.JSGridView.rowSampleCount;
					var row = IHKBIZ.GRIDVIEW.JSGridView.sampleRow(IHKBIZ.GRIDVIEW.JSGridView.rowSamples[sampleNo], batch[i]);
					var cols = row.getElementsByTagName("TD");
					var textBereich = IHKBIZ.GRIDVIEW._propperFileName(cols[0].innerHTML);
					var textKurs = IHKBIZ.GRIDVIEW._propperFileName(cols[1].innerHTML);
					IHKBIZ.GRIDVIEW._setInnerLink(cols[0], "/de/kurse/"+textBereich);
					var link = IHKBIZ.GRIDVIEW._setInnerLink(cols[1], "/de/kurse/"+textBereich+"/"+textKurs+".php");
					if(IHKBIZ.GRIDVIEW.query != "") {
						link.className = "kurslink";
						Event.observe(link, "mouseover", IHKBIZ.GRIDVIEW.kurslink_mouseover);
						Event.observe(link, "mouseout", IHKBIZ.GRIDVIEW.kurslink_mouseout);
					}
					IHKBIZ.GRIDVIEW.JSGridView.appendTbodyRow(row);

				}
			}
			IHKBIZ.GRIDVIEW.JSGridView.setOverlayDiv();
		};
		IHKBIZ.GRIDVIEW.JSGridView.createPagingNavi = function (divId, clickEvent) {


			if(divId == null) divId = "pager";
			IHKBIZ.GRIDVIEW.JSGridView.pagingNaviDivId = divId;
			IHKBIZ.GRIDVIEW.JSGridView.pagingNaviEvent = clickEvent;
			if($(divId)) {
				var pagingNavi = $(divId);
				var count = pagingNavi.childNodes.length;
				for(var i=0;i<count;i++) {
					pagingNavi.removeChild(pagingNavi.childNodes[0]);
				}
			} else {
				var pagingNavi = document.createElement("DIV");
			}
			pagingNavi.setAttribute("id", divId);
			for(var i=0;i<IHKBIZ.GRIDVIEW.JSGridView.pager.pages;i++) {
				var pagingNaviPoint = document.createElement("A");
				pagingNaviPoint.appendChild(document.createTextNode(i+1));
				if((i+1)==IHKBIZ.GRIDVIEW.JSGridView.pager.currentPage) pagingNaviPoint.setAttribute("class","active");
				Event.observe(pagingNaviPoint, 'click', clickEvent);
				pagingNavi.appendChild(pagingNaviPoint);
			}
			IHKBIZ.GRIDVIEW.JSGridView.rootDiv.appendChild(pagingNavi);
			IHKBIZ.GRIDVIEW.pCurrentPage.innerHTML = IHKBIZ.GRIDVIEW.JSGridView.pager.currentPage;
			IHKBIZ.GRIDVIEW.pNumpages.innerHTML = IHKBIZ.GRIDVIEW.JSGridView.pager.pages;
		}
		IHKBIZ.GRIDVIEW.JSGridView.showTable();
		Event.observe(window, "keydown", IHKBIZ.GRIDVIEW.windowKeyDown);
		//$('fulltex0').focus();
		if(typeof(IHKBIZ.GRIDVIEW.afterOnload) == "function") {
			IHKBIZ.GRIDVIEW.afterOnload();
		}
	},
	kurslink_mouseover : function (e) {
		IHKBIZ.GRIDVIEW.searchPreviewDiv.className = "loading";
		IHKBIZ.GRIDVIEW.searchPreviewDiv.innerHTML = "";
		IHKBIZ.GRIDVIEW.searchPreviewDiv.style.left = Event.pointerX(e)-300+"px";
		IHKBIZ.GRIDVIEW.searchPreviewDiv.style.top = Event.pointerY(e)-140+"px";
		new Ajax.Updater(IHKBIZ.GRIDVIEW.searchPreviewDiv, "/lib/php/exe/getFound.php", {
			parameters : {
				k : Event.findElement(e, "A").innerHTML,
				q : IHKBIZ.GRIDVIEW.query
			},
			onComplete : IHKBIZ.GRIDVIEW.kursmatches_complete
		});
		Effect.Appear(IHKBIZ.GRIDVIEW.searchPreviewDiv, {queue:"end",duration:0.3});
	},
	kursmatches_complete : function(e) {
		IHKBIZ.GRIDVIEW.searchPreviewDiv.className = "";
	},
	kurslink_mouseout : function (e) {
		IHKBIZ.GRIDVIEW.searchPreviewDiv.style.display = "none";
	},
	windowKeyDown : function(e) {
		switch(e.keyCode) {
			case Event.KEY_HOME:
				IHKBIZ.GRIDVIEW.JSGridView.loadingMode();
				IHKBIZ.GRIDVIEW.JSGridView.pager.currentPage = 1;
				IHKBIZ.GRIDVIEW.JSGridView.createPagingNavi("pager",IHKBIZ.GRIDVIEW.pagingNaviPointClick);
				IHKBIZ.GRIDVIEW.JSGridView.showTable();
				IHKBIZ.GRIDVIEW.JSGridView.readyMode();
				break;
			case Event.KEY_END:
				IHKBIZ.GRIDVIEW.JSGridView.loadingMode();
				IHKBIZ.GRIDVIEW.JSGridView.pager.currentPage = IHKBIZ.GRIDVIEW.JSGridView.pager.pages;
				IHKBIZ.GRIDVIEW.JSGridView.createPagingNavi("pager",IHKBIZ.GRIDVIEW.pagingNaviPointClick);
				IHKBIZ.GRIDVIEW.JSGridView.showTable();
				IHKBIZ.GRIDVIEW.JSGridView.readyMode();
				break;
			case Event.KEY_RIGHT:
				IHKBIZ.GRIDVIEW.JSGridView.loadingMode();
				if(IHKBIZ.GRIDVIEW.JSGridView.pager.hasNext()) {
					IHKBIZ.GRIDVIEW.JSGridView.pager.currentPage = IHKBIZ.GRIDVIEW.JSGridView.pager.currentPage+1;
					IHKBIZ.GRIDVIEW.JSGridView.createPagingNavi("pager",IHKBIZ.GRIDVIEW.pagingNaviPointClick);
					IHKBIZ.GRIDVIEW.JSGridView.showTable();
				}
				IHKBIZ.GRIDVIEW.JSGridView.readyMode();
				break;
			case Event.KEY_LEFT:
				IHKBIZ.GRIDVIEW.JSGridView.loadingMode();
				if(IHKBIZ.GRIDVIEW.JSGridView.pager.currentPage > 1) {
					IHKBIZ.GRIDVIEW.JSGridView.pager.currentPage = IHKBIZ.GRIDVIEW.JSGridView.pager.currentPage-1;
					IHKBIZ.GRIDVIEW.JSGridView.createPagingNavi("pager",IHKBIZ.GRIDVIEW.pagingNaviPointClick);
					IHKBIZ.GRIDVIEW.JSGridView.showTable();
				}
				IHKBIZ.GRIDVIEW.JSGridView.readyMode();
				break;
		}

	},
	_setInnerLink : function(col, href) {
		var a = document.createElement("a");
		a.setAttribute("href",href);
		a.innerHTML = col.innerHTML;
		col.innerHTML = "";
		col.appendChild(a);
		return a;
	},
	headerClick          : function(e) {
		IHKBIZ.GRIDVIEW.JSGridView.toogleOrderDirection(Event.element(e));
	},
	pagingNaviPointClick : function(e) {
		var page = Event.element(e).innerHTML;
		IHKBIZ.GRIDVIEW.JSGridView.setCurrentPage(page);
	},
	_filterSet : function (col, value) {
		if(value != "") {
			var filterConfig = new DataSetFilterConfiguration(value, col, "EXACT", false);
			IHKBIZ.GRIDVIEW.JSGridView.dataset.filterBy(filterConfig);
			IHKBIZ.GRIDVIEW.JSGridView.pager.currentPage = 1;
		} else {
			IHKBIZ.GRIDVIEW.JSGridView.dataset.resetFilter();
		}
		IHKBIZ.GRIDVIEW.JSGridView.createPagingNavi("pager",IHKBIZ.GRIDVIEW.pagingNaviPointClick);
		IHKBIZ.GRIDVIEW.JSGridView.showTable();
	},
	_propperFileName : function(input) {
		var trans = Array(
		);
		for(var i=0;i<trans.length;i = i+2)  {
			input = input.replace(trans[i], trans[i+1]);
		}
		while(input.match(/\W/)) {
			input = input.replace(/\W/,"_");
		}
		return input;
	},
	autoFilterChange1    : function(event) {
		IHKBIZ.GRIDVIEW._filterReset(Event.element(event));
		var value = Event.element(event).value;
		IHKBIZ.GRIDVIEW._filterSet(0, value);
	},
	autoFilterChange2		: function(event) {
		IHKBIZ.GRIDVIEW._filterReset(Event.element(event));
		var value = Event.element(event).value;
		IHKBIZ.GRIDVIEW._filterSet(2, value);
	},
	autoFilterChange3		: function(event) {
		IHKBIZ.GRIDVIEW._filterReset(Event.element(event));
		var value = Event.element(event).value;
		IHKBIZ.GRIDVIEW._filterSet(3, value);
	},
	fulltextsearchKeyUp		: function(e) { },
	numPerPageChange		: function(event) {
		var value = Event.element(event).value;
		if(value) {
			IHKBIZ.GRIDVIEW.JSGridView.pager.numPerPage = value;
			IHKBIZ.GRIDVIEW.JSGridView.pager.calc();
			IHKBIZ.GRIDVIEW.JSGridView.pager.currentPage = 1;
			IHKBIZ.GRIDVIEW.JSGridView.showTable();
		}
	},
	_filterReset : function(notThatOne) {
		for(var i=0;i<IHKBIZ.GRIDVIEW.filters.length;i++)  {
			var selectField = IHKBIZ.GRIDVIEW.filters[i].getElementsByTagName("SELECT")[0];
			if(selectField != notThatOne) selectField.selectedIndex = 0;
		}
	},
	setListLength : function() {
		$('anzErgebnisse').innerHTML = IHKBIZ.GRIDVIEW.JSGridView.dataset.resultData.length;
	}
}
function clearOptionGroup(button) {
	var res = button.parentNode.getElementsByTagName("input");
	for(var i=0;i<res.length;i++) {
		var item = res[i];
		item.checked = false;
	}
}
