function getObjectByID (oDocument, sID) {
	if (oDocument.all) {
		return oDocument.all[sID];
	}
	else if (oDocument.getElementById) {
		return oDocument.getElementById(sID);
	}
	else if (oDocument.layers) {
		return oDocument.layers[sID];
	}
}
function getLangID() {
	var sHRef = document.location.href;
	var sLangID = "0";
	if (sHRef.indexOf(".html") != -1) {
		var sBaseName = "";
		var iBaseName = sHRef.lastIndexOf("/");
		if (iBaseName != -1) sBaseName = sHRef.substring(iBaseName, sHRef.length);
		
		var uri_els = sBaseName.split(".");
		sLangID = uri_els[1];
	}
	else {
		var els = [];
		var uri_els = sHRef.split("?");
		if (uri_els[1]){
			uri_els = uri_els[1].split("&");
			for( var i in uri_els ){
				var var_els = uri_els[i].split("=");
				if( typeof var_els[1] != "undefined" ){
					els[els.length] = {
						"key"   : var_els[0],
						"value" : var_els[1]
					};
				}
			}
		}
		var bFoundL = false;
		for( var i in els ){
			if (els[i]['key'] == 'L') {
				bFoundL = true;
				sLangID = els[i]['value'];
			}
		}
	}
	return sLangID;
}
function gotoPageID(sPageID_) {
	var sHRef = document.location.href;
	if (sHRef.indexOf(".html") != -1) {
		var sBaseName = "";
		var iBaseName = sHRef.lastIndexOf("/");
		if (iBaseName != -1) sBaseName = sHRef.substring(iBaseName, sHRef.length);
		
		var uri_els = sBaseName.split(".");
		var sNewURI = sPageID_ + "." + uri_els[1] + ".html";
		document.location.href = sNewURI;
	}
	else {
		var els = [];
		var uri_els = sHRef.split("?");
		if (uri_els[1]){
			uri_els = uri_els[1].split("&");
			for( var i in uri_els ){
				var var_els = uri_els[i].split("=");
				if( typeof var_els[1] != "undefined" ){
					els[els.length] = {
						"key"   : var_els[0],
						"value" : var_els[1]
					};
				}
			}
		}
		var bFoundPageID = false;
		var bFoundL = false;
		for( var i in els ){
			if (els[i]['key'] == 'id') {
				els[i]['value'] = sPageID_;
				bFoundPageID = true;
			}
			else if (els[i]['key'] == 'L') {
				bFoundL = true;
			}
		}
		if (!bFoundPageID) {
			els[els.length] = {
				"key"   : 'id',
				"value" : sPageID_
			};
		}
		var uri = sHRef.split("?")[0]+"?";
		for( var i in els ){
			uri+= els[i]['key']+"="+els[i]['value']+"&";
		}
		uri = uri.substr( 0, uri.length-1 );
		document.location.href = uri;
	}
}
function getCookie(oDocument_, sCookie_) {
	var iStart = oDocument_.cookie.indexOf(sCookie_+"=");
	var iLen = iStart+sCookie_.length+1;
	if ((!iStart) && (sCookie_ != oDocument_.cookie.substring(0,sCookie_.length))) return null;
	if (iStart == -1) return null;
	var iEnd = oDocument_.cookie.indexOf(";",iLen);
	if (iEnd == -1) iEnd = oDocument_.cookie.length;
	return unescape(oDocument_.cookie.substring(iLen,iEnd));
}
function getAdrValue(sAdrCookieVal_, sName_) {
	var aValues = sAdrCookieVal_.split("|");
	for (var iVal in aValues ){
		var aVal = aValues[iVal].split("#");
		if (typeof aVal[1] != "undefined" ){
			if (aVal[0] == sName_) {
				return aVal[1];
			}
		}
	}
	return "";
}
function getBasketEntryCount(oDocument_) {
	var sBasketEntryCount = getCookie(oDocument_, 'rp_mz_entries');
	if (sBasketEntryCount) {
		oDocument_.write("["+sBasketEntryCount+"]");
	}
}
function saveBasket(oDocument_, sFormName_) {
	var oSF;
	if (sFormName_) {
		oSF = oDocument_.forms[sFormName_];
	}
	else {
		oSF = oDocument_.forms['save'];
	}
	if (oSF) {
		oSF.submit();
	}
	else {
	}
}
function showLoading() {
	try {
		var oL = document.getElementById('lContH');
		var oH = document.getElementsByTagName('BODY')[0];
		oL.style.height = oH.scrollHeight;
		document.getElementById("lCont").style.display = "";
	} catch (e) {
	}
}
function hideLoading() {
	document.getElementById("lCont").style.display = "none";
}
function addToBasket(sTypeno_, sPDF_) {
	showLoading();
	basket_add(sTypeno_, sPDF_);
	self.setTimeout('hideLoading()', 1200);
}
function __invAction(oDocument_, sActionName_) {
	var oSF = oDocument_.forms['save'];
	if (oSF) {
		var oSaveMailOffer = getObjectByID(oDocument_, 'action');
		if (oSaveMailOffer) {
			oSaveMailOffer.value = sActionName_;
			oSF.action.value = sActionName_;
			oSF.submit();
		}
	}
}
function clearBasket(oDocument_) {
	__invAction(oDocument_, 'clearBasket');
}
function getMZZip(oDocument_) {
	__invAction(oDocument_, 'getMZZIP');
}
function changeCBVal(oBtn) {
	if (oBtn && oBtn.id) {
		oBtn.value = oBtn.checked;
	}
}
function BasketManager(obj_name){
	var sLangID = getLangID();
	this.objName = obj_name;
	this.is_ie = navigator.userAgent.indexOf("MSIE")!=-1;
	
	this.basketFile = "/basket/basket.php";
	
	this.addItem = function(sTypeno_, sPDF_) {
		this.__addItem(sTypeno_, sPDF_);
	}; 
	
	this.request;
	this.__initRequest = function(){
		try {
			this.request.abort();
		}
		catch(e) {}
		
		try {
			this.request = new XMLHttpRequest();
		}
		catch(e) {
			var msxml_names = [
				'MSXML2.XMLHTTP.5.0',
				'MSXML2.XMLHTTP.4.0',
				'MSXML2.XMLHTTP.3.0',
				'MSXML2.XMLHTTP',
				'Microsoft.XMLHTTP'
			];
			for( i in msxml_names ){
				try{
					this.request = new ActiveXObject( msxml_names[i] );
				} catch(e){}
			}
		}
		if (!this.request) {
			alert('ActiveX-Elements should be activated in your security-settings.');	
			return false;
		}
		return true;
	};
	
	this.__addItem = function(sTypeno_, sPDF_) {
		var sPageID = "";
		var sHRef = document.location.href;
		if (sHRef.indexOf(".html") != -1) {
			var sBaseName = "";
			var iBaseName = sHRef.lastIndexOf("/");
			if (iBaseName != -1) sBaseName = sHRef.substring(iBaseName+1, sHRef.length);
			
			var uri_els = sBaseName.split(".");
			sPageID = uri_els[0];
			if (sPageID.indexOf("+") != -1) {
				sPageID = sPageID.substring(0, sPageID.indexOf("+")-1);
			}
			if (isNaN(Number(sPageID))) {
				sPageID = uri_els[1];
			}
			if (sPageID.indexOf("+") != -1) {
				sPageID = sPageID.substring(0, sPageID.indexOf("+")-1);
			}
			bFoundPageID = true;
		}
		else {
			var els = [];
			var uri_els = document.location.href.split("?");
			if (uri_els[1]){
				uri_els = uri_els[1].split("&");
				for( var i in uri_els ){
					var var_els = uri_els[i].split("=");
					if( typeof var_els[1] != "undefined" ){
						els[els.length] = {
							"key"   : var_els[0],
							"value" : var_els[1]
						};
					}
				}
			}
			var bFoundPageID = false;
			for( var i in els ){
				if (els[i]['key'] == 'id') {
					sPageID = els[i]['value'];
					bFoundPageID = true;
				}
			}
		}
		if (!this.__initRequest()) {
			return false;
		}
		this.request.onreadystatechange = new Function( this.objName+".__addItemOnReadyHandler()" );
		var sRequest ="&typeno=" + sTypeno_;
		sRequest += "&pdf=" + sPDF_;
		if (bFoundPageID) {
			sRequest += "&pid=" + sPageID;
		}
		var sRnd = "&rnd=" + Math.round(100000 * Math.random());
		this.request.open("GET", this.basketFile+"?a=addItemJS"+sRnd+sRequest);
		this.request.send(null);
	};
	
	this.__addItemOnReadyHandler = function(){
		if (this.request.readyState == 4) {
			if (this.request.status == 200) {
				if (this.request.responseText.indexOf("|")<0) {
					var sMsg = "";
					if (sLangID == "0") {
						sMsg += "Fehler:\n"+this.request.responseText;
					}
					else {
						sMsg += "Error:\n"+this.request.responseText;
					}
					alert(sMsg);
				}
				else {
					var oMZQnt = getObjectByID(document, "mzQnt");
					if (oMZQnt) {
						var sBasketEntryCount = getCookie(document, 'rp_mz_entries');
						if (sBasketEntryCount) {
							oMZQnt.innerHTML = "["+sBasketEntryCount+"]";
						}
					}
				}
			}
			else {
				var sMsg = "";
				if (sLangID == "0") {
					sMsg = "Der Server ist nicht erreichbar.";
				}
				else {
					sMsg = "Server unreachable.";
				}
				alert(sMsg);
			}
		}
		else {
			//alert("readyState: " + String(this.request.readyState));
		}
	};
};

var __basketManager = new BasketManager("__basketManager");
function basket_add(sTypeno_, sPDF_) {
	__basketManager.addItem(sTypeno_, sPDF_);
}
function __checkReqFields(aFields_) {
	var bFoundReqFields = true;
	var sLangID = getLangID();
	for (i=0;document.forms&&i<document.forms.length;i++) {
		var oForm = document.forms[i];
		for (j=0;oForm.elements&&j<oForm.elements.length;j++) {
			var oFormElm = oForm.elements[j];
			if (oFormElm.name) {
				for (iArg=0;iArg<aFields_.length;iArg++) {
					var sArg = aFields_[iArg];
					if (oFormElm.name == sArg) {
						var oObjCell = getObjectByID(document, "t"+sArg);
						if ((!oFormElm.value) || ((sArg.indexOf('cb_') >= 0) && (!oFormElm.checked))) {
							bFoundReqFields = false;
							if (oObjCell) {
								oObjCell.style.color = "red";
							}
						}
						else {
							if (oObjCell) {
								oObjCell.style.color = "black";
							}
						}
					}
				}
			}
		}
	}
	if (!bFoundReqFields) {
		if (sLangID == "0") {
			alert("Bitte geben Sie bei den mit '*' markierten Feldern Ihre Daten ein. Danke.");
		}
		else {
			alert("Please provide your data for the fields which are marked with '*'. Thank you.");
		}
	}
	return bFoundReqFields;
}
function checkReqFields(aFields_) {
	return 	__checkReqFields(checkReqFields.arguments);
}
function checkAndSave(sFormName_, aFields_) {
	var aArgs = [];
	for (iArg=1;iArg<checkAndSave.arguments.length;iArg++) {
		aArgs[aArgs.length] = checkAndSave.arguments[iArg];
	}
	if (__checkReqFields(aArgs)) {
		saveBasket(document, sFormName_);
	}
}

