function b64arrays() {
	var b64s='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
	b64 = [];
	f64 =[];
	for (var i=0; i<b64s.length ;i++) {
		b64[i] = b64s.charAt(i);
		f64[b64s.charAt(i)] = i;
	}
}

function encode_base64(d) {

	var r=[];
	var i=0;
	var dl=d.length;

	if ((dl%3) == 1) {
		d[d.length] = 0; d[d.length] = 0;
	}
	if ((dl%3) == 2) {
		d[d.length] = 0;
	}
	while (i<d.length) {
		r[r.length] = b64[d[i]>>2];
		r[r.length] = b64[((d[i]&3)<<4) | (d[i+1]>>4)];
		r[r.length] = b64[((d[i+1]&15)<<2) | (d[i+2]>>6)];
		r[r.length] = b64[d[i+2]&63];
		if ((i%57)==54) {
			r[r.length] = "\n";
		}
		i+=3;
	}

	if ((dl%3) == 1) {
		r[r.length-1] = r[r.length-2] = "=";
	}
	if ((dl%3) == 2) {
		r[r.length-1] = "=";
	}
	var t=r.join("");
	return t;

}


function b64t2d(t) {
	var d=[];
	var i=0;

	t=t.replace(/\n|\r/g,""); t=t.replace(/=/g,"");
	while (i<t.length) {
		d[d.length] = (f64[t.charAt(i)]<<2) | (f64[t.charAt(i+1)]>>4);
		d[d.length] = (((f64[t.charAt(i+1)]&15)<<4) | (f64[t.charAt(i+2)]>>2));
		d[d.length] = (((f64[t.charAt(i+2)]&3)<<6) | (f64[t.charAt(i+3)]));
		i+=4;
	}
	if (t.length%4 == 2) {
		d = d.slice(0, d.length-2);
	}
	if (t.length%4 == 3) {
		d = d.slice(0, d.length-1);
	}
	return d;
}

function utf8d2t(d) {
	var r=new Array;
	var i=0;
	while(i<d.length) {
		if (d[i]<128) {
			r[r.length]= String.fromCharCode(d[i]);
			i++;
		} else if ((d[i]>191) && (d[i]<224)) {
			r[r.length]= String.fromCharCode(((d[i]&31)<<6) | (d[i+1]&63));
			i+=2;
		} else {
			r[r.length]= String.fromCharCode(((d[i]&15)<<12) | ((d[i+1]&63)<<6) | (d[i+2]&63));
			i+=3;
		}
	}
	return r.join("");
}

/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function doCornerBlink() {
        if (corner_r_img.src.indexOf('blaettern_blink.gif') > -1) {
            corner_r_img.src = '../share/img/misc/blaettern02.gif';
            blinkencounter++;
        } else {
            corner_r_img.src = '../share/img/misc/blaettern_blink.gif';
        }
        if (blinkencounter > 2) {
            clearInterval(blinken_active);
        }
}


function cornerblink() {
    var corner_r_div = document.getElementById('corner_r');
    var corner_l_div = document.getElementById('corner_l');
    if ( (corner_r_div != null) && (corner_l_div != null) ) {
        corner_r_img =  corner_r_div.getElementsByTagName('img')[0];
        blinkencounter = 0;
        var corner_l_img =  corner_l_div.getElementsByTagName('img')[0];
        if ( (corner_r_img != null) &&
             (corner_r_img.style.visibility == 'visible') &&
             (corner_l_img != null) &&
             (corner_l_img.style.visibility == 'hidden') ) {
             blinken_active = window.setInterval("doCornerBlink()", 500);
        }
    }
}

function decode() {
	b64arrays();
	var elements = getElementsByClassName(document, "span", "mto");
	for (var i = 0; i < elements.length; i++) {
		var address = utf8d2t(b64t2d(elements[i].firstChild.data));
		elements[i].innerHTML = '<a href="mailto:'+address+'">'+address+'</a>';
	}
}

function pa_init() {
	decode();
	cornerblink();
}

function fixElement(element, message) {
	alert(message);
	element.focus();
}

function isMailReady(form_id) {
	var passed = false;

	if (document.getElementById('Z01').value == "") {
		fixElement(document.getElementById('Z01'), "Bitte geben Sie Ihren Nachnamen an.");
	} else if (document.getElementById('Z02').value == "") {
		fixElement(document.getElementById('Z02'), "Bitte geben Sie Ihren Vornamen an.");
	} else if (document.getElementById('Z03').value == "") {
		fixElement(document.getElementById('Z03'), "Bitte geben Sie Ihre Straße an.");
	} else if (document.getElementById('Z04').value == "") {
		fixElement(document.getElementById('Z04'), "Bitte geben Sie PLZ und Wohnort an.");
	} else if (	document.getElementById('Z06').value.indexOf("@") == -1 ||
				document.getElementById('Z06').value.indexOf(".") == -1 ||
				document.getElementById('Z06').value == "") {
		fixElement(document.getElementById('Z06'), "Bitte geben Sie eine korrekte eMail-Adresse an.");
	} else {
		passed = true;
	}
	return passed;
}

function prepare_request() {
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }

    if (!http_request) {
		alert("Ende :( Kann keine XMLHTTP-Instanz erzeugen");
		return false;
    } else {
		return http_request;
	}
}

function closeOnSuccess() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			opener.document.location.reload();
			self.close();
		} else {
			alert("Bei dem Request ist ein Problem aufgetreten.");
		}
	}
}

function reloadOnSuccess() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			location.reload();
		} else {
			alert("Bei dem Request ist ein Problem aufgetreten.");
		}
	}
}

function getBasket() {
	var url = 'php/scripts/ajax.php';
	if (http_request = prepare_request()) {
		http_request.onreadystatechange = setBasket;
		http_request.open("POST", url, true);
		http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		http_request.send("action=get");
	}	
}

function setBasket() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var basket = document.getElementById('basket_content');
			basket.innerHTML = http_request.responseText;
		} else {
			alert("Bei dem Request ist ein Problem aufgetreten: "+http_request.status);
		}
	}
}

function addToBasket(obj) {
	var url = 'php/scripts/ajax.php';
	if (http_request = prepare_request()) {
		http_request.onreadystatechange = setBasket;
		http_request.open("POST", url, true);
		http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		http_request.send("action=put&obj="+obj);
	}	
}

function addSelectedToBasket(obj) {
	var url = '../../../pa/php/scripts/ajax.php';
	if (http_request = prepare_request()) {
		http_request.onreadystatechange = closeOnSuccess;
		http_request.open("POST", url, true);
		http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		http_request.send("action=put&obj="+obj);
	}	
}

function updateBasket(obj_id) {
	var url = 'php/scripts/ajax.php';
	var qty;
	var query_string = '';

	var input = document.getElementById('issue_'+obj_id);
	var input_type = input.getAttribute('type');

	var fields = Array('Z01','Z02','Z03','Z04','Z05','Z06','Z07','Z08','Z09','Z10','Z11');

	for (var i = 0; i < fields.length ; i++)
	{
		query_string += '&'+fields[i]+'='+document.getElementById(fields[i]).value;
	}

	if (input_type == 'checkbox') {
		if (input.checked) {
			qty = 1;
		} else {
			qty = 0;
		}
	} else {
		qty = input.value;
	}

	if (http_request = prepare_request()) {
		http_request.onreadystatechange = reloadOnSuccess;
		http_request.open("POST", url, true);
		http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		http_request.send("action=update&obj="+obj_id+"&qty="+qty+query_string);
	}	

}

function submitForm()
{

	var form = 'form_basket';

	if (isMailReady(form)) {
		document.getElementById(form).submit();
	}

}

function showObjectSelector(mod,target) {
		frame = window.open(
			'../share/php/scripts/library.php?mod='+mod+'&target='+target.toLowerCase(),
			target+'Select',
			'dependent=yes,width=620,height=510,screenX=50,screenY=50,resizable=yes,scrollbars=yes'
			);
		frame.focus();
}

function toggleReview(id)
{

	var elements = getElementsByClassName(document, "span", "review_text");
	for (var i=0;i<elements.length;i++) {
		if (elements[i].getAttribute('id') == 'review_'+id)
		{
			if (elements[i].style.display == 'block') {
				elements[i].style.display = 'none';
			} else {
				elements[i].style.display = 'block';
			}
		}
	}
	
}
