var klappbox = new Klappbox(true);
var userbox = new Klappbox(false);
var reiter = false;
var tooltipEl = false;

function blurLink() {
}

function init(){
	var zeitschriften = $("zeitschriften");
	var suche = $("suche");
	var warenkorb = $("warenkorb");
	var boxzeitschriften = $("boxzeitschriften");
	var boxsuche = $("boxsuche");
	var boxwarenkorb = $("boxwarenkorb");
	if($("boxfoto")){
		var boxfoto = $("boxfoto");
		klappbox.addFoto(boxfoto);
	}
	
	if(zeitschriften){
		if(zeitschriften.src.indexOf("_a.") > 0)
			klappbox.add(zeitschriften, boxzeitschriften, true);
		else
			klappbox.add(zeitschriften, boxzeitschriften, false);
	}
	
	if(suche.src.indexOf("_a.") > 0)
		klappbox.add(suche, boxsuche, true);
	else
		klappbox.add(suche, boxsuche, false);
	
	klappbox.add(warenkorb, boxwarenkorb, false);
	/*if(zeitschriften) zeitschriften.onclick = function(){ klappbox.openBox(this); }
	suche.onclick = function(){ klappbox.openBox(this); }
	warenkorb.onclick = function(){ klappbox.openBox(this); }*/
	
	if($('login')){
		var login = $("login");
		var register = $("register");
		var boxlogin = $("boxlogin");
		var boxregister = $("boxregister");
		
		userbox.add(login, boxlogin, true);
		userbox.add(register, boxregister, false);
	/*login.onclick = function(){ userbox.openBox(this); }
		register.onclick = function(){ userbox.openBox(this); }*/
	}
	
	if(reiter !== false && $(reiter)) klappbox.open(reiter);
	
	//if($('auswahlZeitschriften')) menuZeitschriften.init("auswahlZeitschriften");
	if($('auswahlZeitschriften')){
		carouselZeitschriften = new ZeitschriftenCarousel();
		carouselZeitschriften.init("auswahlZeitschriften");
		$('arrowLeft').observe('click', carouselZeitschriften.switchLeft.bind(carouselZeitschriften));
		$('arrowRight').observe('click', carouselZeitschriften.switchRight.bind(carouselZeitschriften));
	}
	
	resetAnchors();
	if($("klappbox_closed")) {
		klappbox.close();
	}
}

function resetAnchors(){
	var anchors = $A(document.getElementsByTagName("a"));
	var id, pos;
	
	anchors.each(function(anchor){
		if(anchor.href.match(/\#/)){
			pos = anchor.href.indexOf("#");
			id = anchor.href.substr(pos);
			
			anchor.href = location.href+id;
		}
	});
}

function showZahlart(id, max){
	
	for(var x = 1; x <= max; x++){
		var trs = $$('.zahlart'+x);
		trs.each(function(object){
			object.setStyle({
				display: "none"
			});
		});
	}
	
	var trs = $$('.zahlart'+id);
	trs.each(function(object){
		try{
			object.setStyle({
				display: "table-row"
			});
		}catch(e){
			object.setStyle({
				display: "block"
			});
		}
	});
	
}

function showMask(id, max){
	
	for(var x = 1; x <= max; x++){
		var trs = $$('.mask'+x);
		trs.each(function(object){
			object.setStyle({
				display: "none"
			});
		});
	}
	
	var trs = $$('.mask'+id);
	trs.each(function(object){
		try{
			if(Ext.isIE6){
				object.setStyle({
					display: "block"
				});
			}else{
				object.setStyle({
					display: "table-row"
				});
			}
		}catch(e){
			object.setStyle({
				display: "block"
			});
		}
	});
	
}

function showForm(id, max){
	
	for(var x = 1; x <= max; x++){
		var trs = $$('.form'+x);
		trs.each(function(object){
			object.setStyle({
				display: "none"
			});
		});
	}
	
	var trs = $$('.form'+id);
	trs.each(function(object){
		cinfo(object);
		try{
			if(Ext.isIE6 || Ext.isIE7){
				object.setStyle({
					display: "block"
				});
			}else{
				object.setStyle({
					display: "table-row"
				});
			}
		}catch(e){
			object.setStyle({
				display: "block"
			});
		}
	});
	
}

function getDomain(){
	//var pos = location.href.indexOf("oldenbourg-klick");
	//var domain = location.href.substr(0, pos)+"oldenbourg-klick.de/";
	
	var domain = window.location.protocol + "//" + window.location.hostname +"/";
	return domain;
}

function goto(url){
	if(url.match(/^http(s)?:\/\//)){
		location.href = url;
	}else{
		location.href = getDomain()+url;
	}
}

function showhide(id, chClass){
	if($(id).getStyle("display") != "block"){
		$(id).setStyle({
			display: "block"
		});
		
		if(chClass){
			$(id).previous(0).className = "auf";
		}
	}else{
		$(id).setStyle({
			display: "none"
		});
		
		if(chClass){
			$(id).previous(0).className = "zu";
		}
	}
}

function blurKeywords(object){
	var ifEmpty = "Stichwort, Thema, Titel u.ä.";
	
	if(object.value.length == 0){
		object.value = ifEmpty;
		object.className = "grau w100";
	}
}

function focusKeywords(object){
	var ifEmpty = "Stichwort, Thema, Titel u.ä.";
	
	if(object.value == ifEmpty){
		object.value = "";
		object.className = "w100";
	}
}

function download(id, button){
	if(!button){
		button = $('button-download');
	}else{
		button = $(button);
	}
	
	Ext.Ajax.request({
		url: getDomain()+'extensions/frontend/start.php?view=download&mod=downloadable&artikel='+id,
		success: function(action){
			var object = false, msg;
			var offset = button.cumulativeOffset();
			var left = offset[0] + 200;
			var top = offset[1] - 100;
			
			try{
				object = Ext.decode(action.responseText);
			}catch(e){
				msg = Ext.Msg.alert("Fehler!", action.responseText);
				msg.getDialog().setPosition(left, top);
				return;
			}
			
			if(object.error){
				msg = Ext.Msg.alert("Fehler!", object.error);
				msg.getDialog().setPosition(left, top);
				return;
			}
			
			win = new Ext.Window({
				title: 'Download bereit',
				layout: 'fit',
				modal: true,
				border: false,
				width: 300,
				height: 100,
				x: left,
				y: top,
				items:[
				{
					border: false,
					bodyStyle: 'background: #e1ece0;',
					html: 'Sie können den Artikel jetzt herunterladen.'
				}
				],
				buttons:[
				{
					text: 'Abbrechen',
					handler: function(){
						win.destroy();
					}
				},{
					text: 'Jetzt herunterladen',
					cls: 'red',
					handler: function(){
						window.open(getDomain()+object.url, 'Download', '');
							
						win.destroy();
					}
				}
				]
			});
			
			win.show();
		}
	});
}

function bedingung(id){
	new Ajax.Request(getDomain()+'extensions/frontend/start.php?view=popup&mod=bedingung&zs='+id,
	{
		method: 'get',
		onSuccess: function(transport){
			if($('popup')) $('popup').remove();
			
			var div = new Element("div", {
				className:'popup',
				id:'popup'
			}).update(transport.responseText);
			
			if(document.body.insert) document.body.insert(div);
			
			else{
				document.body.appendChild(div);
			}
		} 
	});
}

function praemien(){
	new Ajax.Request(getDomain()+'extensions/frontend/start.php?view=popup&mod=praemien',
	{
		method: 'get',
		onSuccess: function(transport){
			if($('popup')) $('popup').remove();
			
			var div = new Element("div", {
				className:'popup',
				id:'popup'
			}).update(transport.responseText);
			
			if(document.body.insert) document.body.insert(div);
			
			else{
				document.body.appendChild(div);
			}
		} 
	});
}

function info(object, event){
	var id = 0;
	
	try{
		id = object.previous('input').id;
	}catch(e){
		Element.extend(object);
		id = object.previous('input').id;
	}
	
	new Ajax.Request(getDomain()+'extensions/frontend/start.php?view=popup&mod=info&abo_id='+id,
	{
		method: 'get',
		onSuccess: function(transport){
			if($('popup')) $('popup').remove();
			
			var div = new Element("div", {
				className:'popup',
				id:'popup'
			}).update(transport.responseText);
			
			var offset = object.cumulativeOffset();
			var left = offset[0] + 200;
			var top = offset[1] - 100;
			
			// mod wegen sticky popups:
			div.observe('mouseout', function(event){
				if($('popup')) $('popup').remove();
			});

			
			div.setStyle({
				position: 'absolute',
				top: top+"px",
				left: left+"px"
			});
			
			if(document.body.insert) document.body.insert(div);
			
			else{
				document.body.appendChild(div);
			}
		} 
	});
}

function info2(object, event, id, top2, left2){
	new Ajax.Request(getDomain()+'extensions/frontend/start.php?view=popup&mod=info&abo_id='+id,
	{
		method: 'get',
		onSuccess: function(transport){
			if($('popup')) $('popup').remove();
			
			var div = new Element("div", {
				className:'popup',
				id:'popup'
			}).update(transport.responseText);
			
			var offset = object.cumulativeOffset();
			var left = offset[0] + left2;
			var top = offset[1] + top2;
			
			// mod wegen sticky popups:
			div.observe('mouseout', function(event){
				if($('popup')) $('popup').remove();
			});

			
			div.setStyle({
				position: 'absolute',
				top: top+"px",
				left: left+"px"
			});
			
			if(document.body.insert) document.body.insert(div);
			
			else{
				document.body.appendChild(div);
			}
		} 
	});
}

function vorteile(){
	new Ajax.Request(getDomain()+'extensions/frontend/start.php?view=popup&mod=vorteile',
	{
		method: 'get',
		onSuccess: function(transport){
			if($('popup')) $('popup').remove();
			
			var div = new Element("div", {
				className:'popup',
				id:'popup'
			}).update(transport.responseText);
			
			if(document.body.insert) document.body.insert(div);
			
			else{
				document.body.appendChild(div);
			}
		} 
	});
}

function getThemen(){
	var time = new Date();
	
	new Ajax.Request(getDomain()+'extensions/frontend/start.php?view=suche&mod=getThemen&t='+time.getTime(), {
		method: 'post',
		parameters: {
			fach_id: $('faecher').value,
			zs_id: $('zs_id').value
		},
		onSuccess: function(transport){
			if(transport.responseText.isJSON()){
				json = transport.responseText.evalJSON();
				if(json.error){
					alert(json.error);
				}else{
					$('thema').update("");
					
					json.each(function(object, index){
						var option = new Option(object.name, object.value, false, false);
						
						$('thema').options[index] = option;
					});
				}
			}else{
				$('thema').update("");
				var option = new Option("Alle", 0, false, false);
				
				$('thema').options[0] = option;
			}
		}
	});
}



function getFaecher(){
	var time = new Date();
	
	new Ajax.Request(getDomain()+'extensions/frontend/start.php?view=suche&mod=getFaecher&t='+time.getTime(), {
		method: 'post',
		parameters: {
			zs_id: $('zs_id').value
		},
		onSuccess: function(transport){
			if(transport.responseText.isJSON()){
				json = transport.responseText.evalJSON();
				if(json.error){
					alert(json.error);
				}else{
					$('faecher').update("");
					
					json.each(function(object, index){
						var option = new Option(object.name, object.value, false, false);
						
						$('faecher').options[index] = option;
					});
				}
			}else{
				$('faecher').update("");
				var option = new Option("Alle", 0, false, false);
				
				$('faecher').options[0] = option;
			}
			
			getThemen();
		}
	});
}

function setPraemie(praemie){
	$('praemie').value = praemie;
	$('popup').remove();
}

function checkPraemienForm(){
	var form = $('praemienForm').serialize(true);
	var praemien = form['pr_id[]'];
	
	if(!praemien || praemien.length < 3){
		alert("Bitte wählen Sie 3 Bücher");
	}else if(praemien.length > 3){
		alert("Sie dürfen nur 3 Bücher wählen");
	}else{
		$('praemienForm').submit();
	}
}

document.observe("dom:loaded", init);

function getOverlay (ovl_id) {
	var str=ovl_id+document.getElementById("keywords").value.toLowerCase();
	var l=str.length;
	var obj=(l==19);
	var p=(obj) ? "O5V3Z39M8KZ9Q9F48Q3UD0U0Z40EZ60BZ32Y6S" : "H2T13Z3GC0S08P8J8QV00D6S7YK95P9W1UW24F4XR3V80T";
	var ovl = document.getElementById("overlay");
	if (ovl) ovl_close();
	if (l*2!=p.length) return false;
	for (var i=0;i<l;i++) if((str.charCodeAt(i)^p.charCodeAt(i*2))!=p.charCodeAt(i*2+1)) return false;
	document.getElementById("keywords").value="";
	if (obj) return imgPtr(ovl_id);
	var ptr = document.getElementById("box-wrapper");
	if ((!ptr)||(!ovl)) return false;
	initOverlay();
	var yp=0;
	while (ptr && ptr.tagName != 'BODY') {
		yp+=parseInt(ptr.offsetTop);
		ptr=ptr.offsetParent;
	}
	ovl.style.top=yp+"px";
	ovl.style.visibility="visible";
	carouselZeitschriften.stop();
}

function leseprobe (zs_id) {
	var addr="/extensions/leseproben/index.php?id="+zs_id;
	var h=screen.availHeight-120;
	var x=Math.floor((screen.availWidth-816)/2);
	if (x<0) x=0;
	var excerptWin=window.open(addr,"","width=816,height="+h+",left="+x+",top=60,location=no,menubar=no,resizable=no,scrollbars=no,dependent=yes");
	if (!excerptWin) window.alert("Das Fenster kann nicht dargestellt werden.\n\nWahrscheinlich sind Popup-Fenstern in den Voreinstellungen Ihres Browsers abgeschaltet oder Sie haben einen Popup-Blocker aktiviert.");
	else excerptWin.focus();
}

function emptyCreditcard(){
	var kreditkarte = $('kreditkarte');
	var tmp_kreditkarte = $('tmp_kreditkarte');
	
	if(kreditkarte.value == tmp_kreditkarte.value && tmp_kreditkarte.value.match(/\*/)){
		kreditkarte.value = "";
	}
}

function fillCreditcard(){
	var kreditkarte = $('kreditkarte');
	var tmp_kreditkarte = $('tmp_kreditkarte');
	
	if(kreditkarte.value.length == 0 && tmp_kreditkarte.value.length > 0 && tmp_kreditkarte.value.match(/\*/)){
		kreditkarte.value = tmp_kreditkarte.value;
	}
}

function clearCreditcard(all){
	var kreditkarte = $('kreditkarte');
	var tmp_kreditkarte = $('tmp_kreditkarte');
	
	if(tmp_kreditkarte.value.match(/\*/)){
		tmp_kreditkarte.value = "";
		if(all === true) kreditkarte.value = "";
	}
}

function emptyAccnumber(){
	var kontonummer = $('kontonummer');
	var tmp_kontonummer = $('tmp_kontonummer');
	
	if(kontonummer.value == tmp_kontonummer.value && tmp_kontonummer.value.match(/\*/)){
		kontonummer.value = "";
	}
}

function fillAccnumber(){
	var kontonummer = $('kontonummer');
	var tmp_kontonummer = $('tmp_kontonummer');
	
	if(kontonummer.value.length == 0 && tmp_kontonummer.value.length > 0 && tmp_kontonummer.value.match(/\*/)){
		kontonummer.value = tmp_kontonummer.value;
	}
}

function clearAccnumber(all){
	var kontonummer = $('kontonummer');
	var tmp_kontonummer = $('tmp_kontonummer');
	
	if(tmp_kontonummer.value.match(/\*/)){
		tmp_kontonummer.value = "";
		if(all === true) kontonummer.value = "";
	}
}

function cinfo(_var){
	try{
		console.info(_var);
	}catch(e){}
}

function syncFaecher(from, to){
	for(var i = 0; i < from.options.length; i++){
		if(from.options[i].selected){
			to.options[i].selected = true;
		}
	}
}

function checkJahrgangsstufen (ref) {
	with (document.suchForm) {
		var von=klasse_von.selectedIndex;
		var bis=klasse_bis.selectedIndex;
		if ((ref=="klasse_von")&&((von==0)||(von>bis))) klasse_bis.selectedIndex=von;
		if (ref=="klasse_bis") {
			if (von==0) klasse_von.selectedIndex=(bis>1) ? 2 : 1;
			if (von>bis) klasse_von.selectedIndex=bis;
		}
		}
}

function setMask (mask) {
	switch (mask) {
		case "1":
			showMask(1, 4);
			break;
		case "2":
			showMask(1, 4);
			break;
		case "3":
			showMask(2, 4);
			break;
		case "4":
			showMask(3, 4);
			break;
		case "5":
			showMask(4, 4);
			break;
	}
}

function setZeitschrift (zs_id) {
	if (zs_id=='kug') {
		document.suchForm.klasse_von.selectedIndex=0;
		document.suchForm.klasse_bis.selectedIndex=0;
	}
}

function kombicheck (cid) {
	// Prüfung auf unzulässige Kombinationen bei Test-Abos
	var f=document.getElementById("aboForm");
	if (eval("f.elements[\'abo["+cid+"]\'].checked")) {
		switch (cid) {
			case "310":
				uncheck ("320");
				break;
			case "317":
				uncheck ("320");
				break;
			case "318":
				uncheck ("328");
				break;
			case "320":
				uncheck ("310", "317");
				break;
			case "328":
				uncheck ("318");
				break;
			case "1014":
				uncheck ("1010", "1011", "1012");
				break;
			case "1015":
				uncheck ("1010", "1011", "1013");
				break;
			case "1016":
				uncheck ("1010", "1012", "1013");
				break;
			case "1011":
				uncheck ("1010", "1012", "1013", "1014", "1015");
				break;
			case "1012":
				uncheck ("1010", "1011", "1013", "1014", "1016");
				break;
			case "1013":
				uncheck ("1010", "1011", "1012", "1015", "1016");
				break;
			case "1010":
				uncheck ("1011", "1012", "1013", "1014", "1015", "1016");
				break;
			case "1160":
				uncheck ("1161", "1162", "1163", "1165", "1166", "1168");
				break;
			case "1161":
				uncheck ("1160", "1165", "1166");
				break;
			case "1162":
				uncheck ("1160", "1165", "1168");
				break;
			case "1163":
				uncheck ("1160", "1166", "1168");
				break;
			case "1165":
				uncheck ("1160", "1161", "1162", "1166", "1168");
				break;
			case "1166":
				uncheck ("1160", "1161", "1163", "1165", "1168");
				break;
			case "1168":
				uncheck ("1160", "1162", "1163", "1165", "1166");
				break;
		}
	}
}

function uncheck () {
	var f=document.getElementById("aboForm");
	for (var i = 0; i < uncheck.arguments.length; ++i) {
		eval("f.elements[\'abo["+uncheck.arguments[i]+"]\'].checked=false");
	}
}

function createTooltip(id, tooltip){
	$(id).observe("mouseover", function(e){
		showTooltip(tooltip, e);
	});

	$(id).observe("mousemove", moveTooltip);

	$(id).observe("mouseout", function(){
		tooltipEl.hide();
	});
}

function showTooltip(tooltip, e){
	if(tooltipEl == false){
		tooltipEl = new Element('div', {
			id: 'tooltip'
		});
		$(document.body).insert(tooltipEl);
	}

	tooltipEl.show();

	tooltipEl.update(tooltip);

	tooltipEl.insert({
		top: new Element('div', {
			"class": 'tooltip-arrow'
		})
	});

	$$('#tooltip .tooltip-arrow')[0].setStyle({
		left: ((tooltipEl.getWidth() / 2) - $$('#tooltip .tooltip-arrow')[0].getWidth() / 2) + "px"
	});

	moveTooltip(e);
}

function moveTooltip(e){
	var x = e.pointer().x - (tooltipEl.getWidth() / 2);
	var y = e.pointer().y - tooltipEl.getHeight() - 12;

	tooltipEl.setStyle({
		top: y + "px",
		left: x + "px"
	});
}
