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

	// MENU Design
	menuWidth:200,
	menuDs:"border:1px solid #009036;background-color:#ffffff;",
	menuTr:"margin-top:2px;border-top:1px solid #009036;",
	k_x:-1,
	k_y:-1,

	memlist_open:false,
	tcount:0,

	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;
		}

		ecomasMemorize.getMLayer();
		ecomasMemorize.addEvent(document.getElementById(ecomasMemorize.button_id),"click",ecomasMemorize.FullMemorize);
		ecomasMemorize.loadFile({
			url:"/scripts/merkzettel/merken.php",
			rf:"ecomasMemorize.showArticles();"
		});
	},

	getMLayer:function()
	{
		if (document.getElementById(ecomasMemorize.layer_id)) return document.getElementById(ecomasMemorize.layer_id);

		// Ebene erstellen
		g = document.createElement("div");
		g.style.cssText='position:absolute;display:none; z-index:188;overflow:hidden;width: ' + ecomasMemorize.menuWidth.toString() + 'px;';
		g.id = ecomasMemorize.layer_id;
		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;
	},

	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);
	},
	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;
	},

	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 contentType = (typeof(settings.contentType) == "undefined") ? 'text/xml' : settings.contentType;
		var request = false;
		var parameter = null;
		if (typeof(settings.parameter) != "undefined")
		{
			if (modus.toUpperCase() == "GET") url += (url.indexOf("?") == -1 ? "?" : "&") + settings.parameter;
			else parameter = settings.parameter;
		}

		var td = new Date();
		url += (url.indexOf("?") == -1 ? "?" : "&") + "t=" + td.getTime();

		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');
			}
		}
		request.open(modus, url, true);
		request.setRequestHeader("content-type", contentType);
		request.setRequestHeader("Connection", "close");
		request.send(parameter);

		return true;
	},

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

	articleDelete:function(key)
	{
		ecomasMemorize.loadFile({
			url:"/scripts/merkzettel/merken.php?delprodid=" + key,
			rf:"ecomasMemorize.showArticles();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()
	{
		var obj = ecomasMemorize.XML_Parse();
		if (typeof(obj.items) == "undefined") return;
		var html;
		if (typeof(obj.items.item) == "undefined")
		{
			// Leere Merkzettel
			document.getElementById(ecomasMemorize.button_id).style.backgroundImage = "url(https://secure.ecomas.de/web15/navigation/bg_merkliste.jpg)";
			html = ecomasMemorize.emptyHTML();
		}
		else
		{
			document.getElementById(ecomasMemorize.button_id).style.backgroundImage = "url(https://secure.ecomas.de/web15/navigation/bg_merkliste_2.jpg)";
			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++)
				{
					var ind = i+1;
					html += ecomasMemorize.getArtHTML(obj.items.item[i], ind);
				}
			}
			html += "</div>";
		}
		ecomasMemorize.getMLayer().innerHTML = html;
	}
};
ecomasMemorize.addEvent(window,"load",ecomasMemorize.load);
