var ecomasMemorize = {
	layer_id:"MerkZettelID",
	button_id:"dMemoList",

	// MENU Design
	menuWidth:230,
	menuDs:"border:1px solid #ccc;background-color:#ffffff;",
	menuTr:"margin-top:2px;border-top:1px solid #ccc;",
	k_x:229,
	k_y:63,
	curind : 188,
	
	scripts_path : "/scripts/allinfo/",
//	ssl_prefix : "https://ssl.babyonlineshop.de/shop", 
	ssl_prefix : "", 
	passforget : "https://ssl.babyonlineshop.de/shop/shop_passforget.php",

	memlist_open:false,
	tcount:0,
	
	// Account
	account_layer:"MyAccountID",
	account_button:"dMyAccount",
	k_x:229,
	k_y:63,
	account_open:false,

	load:function()
	{
		if (!document.getElementById) return;
		if (ecomasMemorize.tcount > 5) return;

		if (!document.getElementById(ecomasMemorize.button_id))
		{
			ecomasMemorize.tcount++;
			window.setTimeout("ecomasMemorize.load()",500);
			return;
		}

		// Basket
		ecomasMemorize.loadFile({
			url:ecomasMemorize.scripts_path+"basket.php",
			rf:"ecomasMemorize.checkBasket(request.responseXML);"
		});
		// Merkzettel
		ecomasMemorize.getMLayer();
		ecomasMemorize.addEvent(document.getElementById(ecomasMemorize.button_id),"click",ecomasMemorize.FullMemorize);
		ecomasMemorize.addEvent(window,"resize",function(){ecomasMemorize.FullMemorize();ecomasMemorize.FullMemorize();});
		ecomasMemorize.loadFile({
			url:ecomasMemorize.scripts_path+"merken.php",
			rf:"ecomasMemorize.showArticles(request.responseXML);"
		});
		// Mein Konto
		ecomasMemorize.loadFile({
			url:ecomasMemorize.scripts_path+"logged.php",
			rf:"ecomasMemorize.checkLogged(request.responseXML);"
		});
	},

	getMLayer:function(id,menuWidth)
	{
		if (typeof(id) == "undefined") id = ecomasMemorize.layer_id;
		if (typeof(menuWidth) == "undefined") menuWidth = ecomasMemorize.menuWidth;
		if (document.getElementById(id)) return document.getElementById(id);

		// Ebene erstellen
		g = document.createElement("div");
		g.style.cssText='position:absolute;display:none; z-index:' + ecomasMemorize.curind.toString() + ';overflow:hidden;width: ' + menuWidth.toString() + 'px;';
		g.id = id;
		ecomasMemorize.curind++;
		g.innerHTML = ecomasMemorize.emptyHTML();
		if (document.getElementsByTagName)
			document.getElementsByTagName("body")[0].appendChild(g);
		else if (document.all)
			document.all("body").parentNode.appendChild(g);
		return g;
	},
	
	checkBasket:function(xml)
	{
		var obj = ecomasMemorize.XML_Parse(xml);
		if (typeof(obj.items) == "undefined") return;
		var html;
		if (typeof(obj.items.item) == "undefined")
		{
			// Leere Warenkorb
			//document.getElementById("dBasket").className = "";
			//document.getElementById("dBasketSpan").innerHTML = "keine Artikel";
		}
		else
		{
			var count = obj.items.item.positions.value;
			var summ = obj.items.item.summe.value;
			if (count > 0)
			{
				document.getElementById("dBasket").className = "basketActive";
				document.getElementById("dBasketSpan").innerHTML = count.toString() + " Position" + (count == 1 ? "" : "en") + " (" + summ + "&euro;)";
			}
		}
	},
	
	
	account_sid:"",
	account_knr:0,
	button_Event:"",
	
	checkLogged:function(xml)
	{
		var obj = ecomasMemorize.XML_Parse(xml);
		if (typeof(obj.items) == "undefined") return;
		if (typeof(obj.items.knr) == "undefined") return;
		if(ecomasMemorize.button_Event == "") ecomasMemorize.addEvent(document.getElementById(ecomasMemorize.account_button),"click",ecomasMemorize.showLogin);
		
		//if (document.location.hash == "#vadim") alert(obj.items.error);
		
		if (obj.items.knr.value == "0")
		{
			// Nicht Angemeldet
			//document.getElementById("dMyAccount").className = "";
			//document.getElementById("dMyAccountSpan").innerHTML = "keine Artikel";
			if (typeof(obj.items.error) != "undefined") alert(obj.items.error.value);
		}
		else
		{
			// Angemeldet
			document.getElementById("dMyAccount").className = "accountActive";
			document.getElementById("dMyAccountSpan").innerHTML = "Als " + obj.items.firstname.value + " " + obj.items.lastname.value + " angemeldet";
			if (typeof(obj.items.ok) != "undefined")
			{
			/*	ecomasMemorize.addLoadFileParameter("sid",obj.items.sid.value);
				ecomasMemorize.loadFile({
					url:ecomasMemorize.scripts_path+"logged.php"
				});*/
				ecomasMemorize.account_knr = obj.items.knr.value;
				ecomasMemorize.account_sid = obj.items.sid.value;
				ecomasMemorize.showLogin();
				ecomasMemorize.showLogin();
			}
		}
		ecomasMemorize.account_knr = obj.items.knr.value;
		ecomasMemorize.account_sid = obj.items.sid.value;
	},
	
	showLogin:function(e)
	{
		if(typeof(e) != "undefined") ecomasMemorize.cancelEvent(e);
		if (ecomasMemorize.account_knr == 0)
		{
			html = '<form method="post" action="' + ecomasMemorize.ssl_prefix + '/shop_login.php" name="dealerlogin" onsubmit="return false;">'+"\n";
			html += '<div>E-Mail-Adresse oder Kundennr</div>'+"\n";
			html += '<div><input type="text" name="name" size="20"></div>'+"\n";
			html += '<div>Passwort</div>'+"\n";
			html += '<div><input type="password" name="password" size="20"></div>'+"\n";
			html += '<input type="hidden" name="sid" value="' + ecomasMemorize.account_sid + '"></div>'+"\n";
			html += '<div><input type="submit" name="login" value="Anmelden" onclick="ecomasMemorize.getLogin();"></div>'+"\n";
			html += '</form>'+"\n";
			// Passwort vergessen
			html += '<a href="' + ecomasMemorize.passforget + '" target="_blank" style="font-size:10px;text-align:right;border-bottom:none;">Passwort vergessen?</a>';
		}
		else
		{
			html = '<a href="/shop_account.php">Persönliche Einstellungen</a>'+"\n";
			html += '<a href="/shop_account.php?viewtype=orders_list">Bestellungen</a>'+"\n";
			html += '<a href="/shop_account.php?viewtype=guests">Bewertungen</a>'+"\n";
			html += '<div>&nbsp;</div>'+"\n";
			html += '<a href="/shop_logout.php" class="accountlogout">Abmelden</a>'+"\n";
		}

		ecomasMemorize.getMLayer(ecomasMemorize.account_layer,"").innerHTML = html;
		ecomasMemorize.showLoginWindow();
		return false;
	},
	
	getLogin:function()
	{
		if (document.dealerlogin.name.value == "")
		{
			alert("Bitte geben Sie E-Mail-Adresse oder Kundennr ein.");
			document.dealerlogin.name.focus();
			return false;
		}
		if (document.dealerlogin.password.value == "")
		{
			alert("Bitte geben Sie Passwort ein.");
			document.dealerlogin.password.focus();
			return false;
		}
		ecomasMemorize.addLoadFileParameter("name",document.dealerlogin.name.value);
		ecomasMemorize.addLoadFileParameter("password",document.dealerlogin.password.value);
		ecomasMemorize.addLoadFileParameter("sid",ecomasMemorize.account_sid);
		ecomasMemorize.addLoadFileParameter("login","1");
		ecomasMemorize.loadFile({
			url:ecomasMemorize.ssl_prefix+ecomasMemorize.scripts_path+"logged.php",
			modus:"POST",
			rf:"ecomasMemorize.checkLogged(request.responseXML);"
		});
		return false;
	},
	
	showLoginWindow:function()
	{
		if (typeof(ws) == "undefined") ws = "inv";
		if (ws == "open") ecomasMemorize.account_open = false;
		if (ws == "close") ecomasMemorize.account_open = true;
		var g = ecomasMemorize.getMLayer(ecomasMemorize.account_layer,"");
		if (ecomasMemorize.account_open)
		{
			g.style.display="none";
			ecomasMemorize.account_open=false;
		}
		else
		{
			var p = ecomasMemorize.getElementPosition(document.getElementById(ecomasMemorize.account_button));
			p.x = p.x - ecomasMemorize.menuWidth + ecomasMemorize.k_x;
			p.y = p.y + ecomasMemorize.k_y;
			g.style.top = p.y.toString()+"px";
			g.style.left = p.x.toString()+"px";
			g.style.display="inline";
			ecomasMemorize.account_open=true;
		}
	},

	FullMemorize:function(ws)
	{
		if (typeof(ws) == "undefined") ws = "inv";
		if (ws == "open") ecomasMemorize.memlist_open = false;
		if (ws == "close") ecomasMemorize.memlist_open = true;
		var g = ecomasMemorize.getMLayer();
		if (ecomasMemorize.memlist_open)
		{
			g.style.display="none";
			ecomasMemorize.memlist_open=false;
		}
		else
		{
			var p = ecomasMemorize.getElementPosition(document.getElementById(ecomasMemorize.button_id));
			p.x = p.x - ecomasMemorize.menuWidth + ecomasMemorize.k_x;
			p.y = p.y + ecomasMemorize.k_y;
			g.style.top = p.y.toString()+"px";
			g.style.left = p.x.toString()+"px";
			g.style.display="inline";
			ecomasMemorize.memlist_open=true;
		}

	},

	in_array:function(needle, arr)
	{
		var CurStr = new String("," + arr + ",");
		if (CurStr.indexOf("," + needle + ",") == -1) return false;
		else return true;
	},
	str_replace:function(in_str,reg_exp,replace_str,opts)
	{
		if(in_str==null) return in_str;
		if(typeof(opts)=="undefined") opts='g';
		var re=new RegExp(reg_exp,opts);
		return in_str.replace(re,replace_str);
	},
	cancelEvent:function (e)
	{
		try
		{
			if (e.stopPropagation)
				e.stopPropagation();
			else
				e.cancelBubble = true;

			if (e.preventDefault)
				e.preventDefault();
			else
				e.returnValue = false;

			return false;
		}
		catch(ext)
		{
			return true;
		}
	},
	addEvent:function(o,n,h)
	{
		if(o.attachEvent) o.attachEvent("on"+n,h);
		else if (o.addEventListener) o.addEventListener(n,h,false);
	},
	removeEvent:function(o,n,h)
	{
		if(o.detachEvent) o.detachEvent("on"+n,h);
		else if (o.removeEventListener) o.removeEventListener(n,h,false);
	},
	getX:function (obj,relative)
	{
		var x=0;
		if(typeof(obj)=="object" && document.getElementById)
		{
			x=obj.offsetLeft;
			if(obj.offsetParent && !relative)
			{
				x += ecomasMemorize.getX(obj.offsetParent);
			}
			return x;
		}
		else return false;
	},
	getY:function(obj,relative)
	{
		var y=0;
		if(typeof(obj)=="object" && document.getElementById)
		{
			y=obj.offsetTop;
			if(obj.offsetParent && !relative)
			{
				y += ecomasMemorize.getY(obj.offsetParent);
			}
			return y;
		} else return false;
	},
	getElementPosition:function(obj,relative)
	{
		if (typeof(relative) == "undefined") relative = false;
		var x = ecomasMemorize.getX(obj,relative);
		var y = ecomasMemorize.getY(obj,relative);
		return {x:x, y:y};
	},
	number_format:function(number, decimals, dec_point, thousands_sep)
	{
		if (typeof(decimals) == "undefined") decimals = 2;
		if (typeof(dec_point) == "undefined") dec_point = ",";
		if (typeof(dec_point) == "") dec_point = ",";
		if (typeof(thousands_sep) == "undefined") thousands_sep = ".";
		decimals = parseInt(decimals);

		var pw = Math.pow(10,decimals);
		number = (Math.round(number*pw) + 0.0001)/pw;
		number = number.toString();

		number = number.substr(0,number.lastIndexOf(".")+decimals+1);
		number = ecomasMemorize.str_replace(number,"[\.]+",dec_point,"gi");

		if (thousands_sep != "" && number.indexOf(dec_point) > 3)
		{
			var pos =  number.indexOf(dec_point);
			while (pos > 3)
			{
				pos-= 3;
				number = number.substr(0,pos) + thousands_sep + number.substr(pos);
			}
		}
		return number;
	},

	responseXML:null,

	XML_Parse:function(obj)
	{
		if (typeof(obj) == "undefined") obj = ecomasMemorize.responseXML;
		var sObj = new Array(), names = new Array(), tmp_arr = new Array(), counter;
		for (var n = 0; n < obj.childNodes.length; n++)
		{
			if(obj.childNodes[n].nodeType != 3 && typeof(obj.childNodes[n].tagName) != "undefined")
			{
				if (!ecomasMemorize.in_array(obj.childNodes[n].tagName,names)) names.push(obj.childNodes[n].tagName);
				var val = "";
				if (obj.childNodes[n].firstChild)
				{
					val = obj.childNodes[n].firstChild.nodeValue;
					val = ecomasMemorize.str_replace(val, String.fromCharCode(153), "&#153;","gi");
					val = ecomasMemorize.str_replace(val, String.fromCharCode(8482), "&#153;","gi");
					val = ecomasMemorize.str_replace(val, String.fromCharCode(128), "&#128;","gi");
					val = ecomasMemorize.str_replace(val, String.fromCharCode(8364), "&#128;","gi");
				}
				var Elm = new Object({"name" : obj.childNodes[n].tagName, "value":val,"attributes" : [] });
				if (obj.childNodes[n].attributes.length > 0)
				{
					for (var a = 0; a < obj.childNodes[n].attributes.length; a++)
					{
						var arrt = new Object({"name":obj.childNodes[n].attributes[a].nodeName,"value":obj.childNodes[n].attributes[a].nodeValue});
						Elm.attributes[obj.childNodes[n].attributes[a].nodeName] = obj.childNodes[n].attributes[a].nodeValue;
					}
				}
				counter = 0;
				if (obj.childNodes[n].childNodes.length > 0)
				{
					var childObj = ecomasMemorize.XML_Parse(obj.childNodes[n]);
					for (var kw in childObj)
					{
						counter++; break;
					}
					if (counter > 0)
					{
						for (var kw in childObj) Elm[kw] = childObj[kw];
					}
				}
				if (typeof(tmp_arr[obj.childNodes[n].tagName]) == "undefined") tmp_arr[obj.childNodes[n].tagName] = new Array();
				tmp_arr[obj.childNodes[n].tagName].push(Elm);
			}
		}
		for (var keys in names)
		{
			if  (tmp_arr[names[keys]].length == 1) sObj[names[keys]] = tmp_arr[names[keys]][0]
			else sObj[names[keys]] = tmp_arr[names[keys]];
		}

		return sObj;
	},

	loadFileParams : [],
	/**
	 * Parameter hinzufuegen
	 */
	addLoadFileParameter:function(name,value)
	{
		if(typeof(value) == "boolean") value = value ? "1" : "0";
		if(typeof(value) == "number") value = value.toString();
		if(typeof(value) == "string") ecomasMemorize.loadFileParams[ecomasMemorize.loadFileParams.length] = new Object({name:name,value:value});
		else if(typeof(value) == "object")
		{
			for (var i in value)
			{
				ecomasMemorize.addLoadFileParameter(name+"["+i+"]",value[i]);
			}
		}
	},

	postValue:function(key, val, boundary)
	{
		var br = "\r\n";
		var POSTDATA = "--" + boundary + br;
		POSTDATA += "Content-Disposition: form-data; name=\""+key+"\""+br;
		POSTDATA += br + encodeURIComponent(val) + br;
		POSTDATA += "--" + boundary + br;
		return POSTDATA;
	},

	/**
	 * Parameter uebernehmen
	 */
	setLoadFileParameter:function(method, boundary)
	{
		// Parameter listen
		var parameter = "";
		for (var i = 0; i < ecomasMemorize.loadFileParams.length; i++)
		{
			if (ecomasMemorize.loadFileParams[i].name != "")
			{
				if (method == "POST")
				{
					parameter += ecomasMemorize.postValue(ecomasMemorize.loadFileParams[i].name, ecomasMemorize.loadFileParams[i].value, boundary);
				}
				else
				{
					if (parameter != "") parameter += "&";
					parameter += ecomasMemorize.loadFileParams[i].name + "=" + encodeURIComponent(ecomasMemorize.loadFileParams[i].value);
				}
			}

		}

		return parameter;
	},

	/**
	 * Datei laden
	 */
	loadFile:function(settings)
	{
		if (typeof(settings) == "undefined") return false;
		if (typeof(settings.url) == "undefined") return false;
		else var url = settings.url;
		var modus = (typeof(settings.modus) == "undefined") ? 'GET' : settings.modus;
		var request = false;
		//var parameter = ecomasMemorize.setLoadFileParameter(modus.toUpperCase());
		var today = new Date();
		url += (url.indexOf("?") == -1 ? "?" : "&") + "tmLsmas="+today.getTime().toString();
		var contentType = (typeof(settings.contentType) == "undefined") ? 'text/xml' : settings.contentType;
		parameter = null;
		if (ecomasMemorize.loadFileParams.length > 0)
		{
			if (modus.toUpperCase() == "GET")
			{
				url += (url.indexOf("?") == -1 ? "?" : "&") + ecomasMemorize.setLoadFileParameter(modus.toUpperCase());
			}
			else
			{
				var boundary = Math.round(Math.random()*10000000000000);
				boundary = boundary.toString(16);
				boundary = "--------" + boundary.toUpperCase();
				var br = "\r\n";
				contentType = "multipart/form-data; boundary="+boundary;
				parameter = ecomasMemorize.setLoadFileParameter(modus.toUpperCase(),boundary);
			}
		}

		if (typeof(settings.parameter) != "undefined")  url += (url.indexOf("?") == -1 ? "?" : "&")+settings.parameter;
		ecomasMemorize.responseXML = null;

		if (window.XMLHttpRequest)
		{
		   request = new XMLHttpRequest();
		   if (request.overrideMimeType) request.overrideMimeType('text/xml');
		}
		else if (window.ActiveXObject)
		{
		   try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} }
		}
		if (!request) { alert('Fehler: keine Instanz'); return false;}

		request.onreadystatechange = function()
		{	
			if (request.readyState == 4 && request.status == 200)
			{
				if (request.responseXML != null)
				{
					ecomasMemorize.responseXML = request.responseXML;
					if (typeof(settings.rf) != "undefined")
					{
						eval(settings.rf);
					}
				}
				else alert('Fehler: Document-Syntax');
			}
		};
		ecomasMemorize.loadFileParams = new Array();
		request.open(modus, url, true);
		request.setRequestHeader("content-type", contentType);
		if(parameter != null)request.setRequestHeader("Content-length", parameter.length);
		request.setRequestHeader("Connection", "close");
		request.send(parameter);
		return true;
	},

	articleMemory:function(prodid)
	{
		ecomasMemorize.loadFile({
			url:ecomasMemorize.scripts_path+"merken.php?prodid=" + prodid,
			rf:"ecomasMemorize.showArticles(request.responseXML);ecomasMemorize.FullMemorize('open');"
		});
	},

	articleDelete:function(key)
	{
		ecomasMemorize.loadFile({
			url:ecomasMemorize.scripts_path+"merken.php?delprodid=" + key,
			rf:"ecomasMemorize.showArticles(request.responseXML);ecomasMemorize.FullMemorize('open');"
		});
	},

	emptyHTML:function()
	{
		return "<div style='" + ecomasMemorize.menuDs + "'><table border='0' cellspacing='0' cellpadding='0' height='44' width='" + (ecomasMemorize.menuWidth-10) + "' align='center'><tr><th style='font-size:11px; color:#666666;'>Ihr Merkzettel ist leer</th></tr></table></div>";
	},

	getArtHTML:function(art,ind)
	{
		html = "<table border='0' cellspacing='0' " + (ind > 1 ? ("style='" + ecomasMemorize.menuTr + "'") : "") + " cellpadding='0' width='" + (ecomasMemorize.menuWidth-10) + "' align='center'>"
		+ "<tr valign='top'>"
		+ "<td width='20' align='center' style='cursor:pointer; font-size:11px; color:#666666;'>" + ind.toString() + ".</td>"
		+ "<td style='cursor:pointer; font-size:11px; color:#666666;' onClick='window.location.href=\"" + art.hyperlink.value + "\"'><b>" + art.name.value+"</b><br>" + (art.name2.value == "" ? "" : art.name2.value) + "<br><font color='#e2001a'>Preis: " + ecomasMemorize.number_format(art.preis.value,2,",",".") + " &euro;</font></td>"
		+ "<td width='18' align='right' valign='top'><a href='#' onClick='ecomasMemorize.articleDelete(\"" + art.key.value + "\");'><img src='/navigation/memlist_delete_prod.gif'  vspace='5' hspace='5' border='0' alt='Produkt aus dem Merkzettel löschen!' title='Produkt aus dem Merkzettel löschen!'></a></td>"
		+ "</tr>"
		+ "</table>";

		return html;
	},

	showArticles:function(xml)
	{
		var obj = ecomasMemorize.XML_Parse(xml);
		if (typeof(obj.items) == "undefined") return;
		var html;
		if (typeof(obj.items.item) == "undefined")
		{
			// Leere Merkzettel
			document.getElementById(ecomasMemorize.button_id).className = "";
			document.getElementById("dMemoListSpan").innerHTML = "keine Artikel";
			html = ecomasMemorize.emptyHTML();
		}
		else
		{
			document.getElementById(ecomasMemorize.button_id).className = "memoActive";
			var ind = 1;
			html = "<div style='" + ecomasMemorize.menuDs + "'>";
			if (typeof(obj.items.item[0]) == "undefined") html += ecomasMemorize.getArtHTML(obj.items.item, 1);
			else
			{
				for (var i = 0; i < obj.items.item.length; i++)
				{
					ind = i+1;
					html += ecomasMemorize.getArtHTML(obj.items.item[i], ind);
				}
			}
			html += "</div>";
			document.getElementById("dMemoListSpan").innerHTML = ind.toString() + " gemerkte Artikel";
		}
		ecomasMemorize.getMLayer().innerHTML = html;
	}
};

ecomasMemorize.addEvent(window,"load",ecomasMemorize.load);
