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 gotoPageID(sPageID_) {
	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') {
			els[i]['value'] = sPageID_;
			bFoundPageID = true;
		}
	}
	if (!bFoundPageID) {
		els[els.length] = {
			"key"   : 'id',
			"value" : sPageID_
		};
	}
	var uri = document.location.href.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 showBF() {
	gotoPageID(164);
}
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 setFavourite() {
	if (document.all && !window.opera) {
		window.external.AddFavorite('http://www.cosy.de', 'Cosy Electronics');
	}
	else {
		window.sidebar.addPanel('Cosy Electronics', 'http://www.cosy.de','');
	}	
}
function getBasketEntryCount(oDocument_) {
	var sBasketEntryCount = getCookie(oDocument_, 'cosy_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_) {
	basket_add(sTypeno_);
}
function aBF(sTypeno_) {
	showLoading();
	var sNewTypeNo = sTypeno_;
	while (sNewTypeNo.lastIndexOf(".") + 1 == sNewTypeNo.length) {
		 sNewTypeNo = sNewTypeNo.slice(0, sNewTypeNo.lastIndexOf("."));
		}
	basket_add(sNewTypeNo);
}
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 sendMailOffer(oDocument_) {
	__invAction(oDocument_, 'sendMailOffer');
}
function sendMailRequest(oDocument_) {
	__invAction(oDocument_, 'sendMailRequest');
}
function createOfferTexts(oDocument_) {
	__invAction(oDocument_, 'createOfferTexts');
}
function showBasketUpload(oDocument_) {
	var oUploadDiv = getObjectByID(oDocument_, "MZUploadForm");
	if (oUploadDiv) {
		if (!oUploadDiv.style.display || (oUploadDiv.style.display=="none")) {
			oUploadDiv.style.display = "block";
		}
		else {
			oUploadDiv.style.display = "none";
		}
	}
}
function changeCBVal(oBtn) {
	if (oBtn && oBtn.id) {
		oBtn.value = oBtn.checked;
	}
}
function BasketManager(obj_name){
	this.objName = obj_name;
	this.is_ie = navigator.userAgent.indexOf("MSIE")!=-1;
	
	this.basketFile = "/basket/basket.php";
	
	this.addItem = function(sTypeno_) {
		this.__addItem(sTypeno_);
	}; 
	
	this.request;
	this.__initRequest = function(){
		try {
			this.request.abort();
		}
		catch(e) {}
		
		try {
			this.request = new XMLHttpRequest();
		}
		catch(e) {
			try {
				this.request = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(e) {
				try {
					this.request = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch(e) {
					alert("ActiveX muss aktiviert sein.");
					return false;
				}
			}
		}
		return true;
	};
	
	this.__addItem = function(sTypeno_) {
		var sPageID = "";
		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_;
		if (bFoundPageID) {
			sRequest += "&pid=" + sPageID;
		}
		this.request.open("GET", this.basketFile+"?a=addItemJS"+sRequest);
		this.request.send(null);
	};
	
	this.__addItemOnReadyHandler = function(){
		if (this.request.readyState == 4) {
			if (this.request.status == 200) {
					if( this.request.responseText != "success" ){
					hideLoading();
					alert("Fehler:\n"+this.request.responseText);
				}
				else {
					var oMZQnt = getObjectByID(document, "mz");
					if (oMZQnt) {
						var sBasketEntryCount = getCookie(document, 'cosy_mz_entries');
						if (sBasketEntryCount) {
							oMZQnt.innerHTML = "["+sBasketEntryCount+"]";
						}
					}
					self.setTimeout('hideLoading()', 200);
				}
			}
			else {
				hideLoading();
				alert("Der Server ist nicht erreichbar.");
			}
		}
		else {
			//alert("readyState: " + String(this.request.readyState));
		}
	};
};

var __basketManager = new BasketManager("__basketManager");
function basket_add(sTypeno_) {
	__basketManager.addItem(sTypeno_);
}
function __checkReqFields(aFields_) {
	var bFoundReqFields = true;
	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) {
						if (!oFormElm.value) {
							bFoundReqFields = false;
						}
					}
				}
			}
		}
	}
	if (!bFoundReqFields) {
		alert("Bitte geben Sie bei den mit '*' markierten Feldern Ihre Daten ein. Danke.");
	}
	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_);
	}
}

