
function zoom(elem)
{
	if(zoom.zoomimg)
	{
		return;
	}
	zoom.zooming = true;

	if(elem.nodeName.match(/div/i))
	{
		// ie6, the image is the first child
		elem = elem.firstChild;
	}

	switch(navigator.appName)
	{
		case "Microsoft Internet Explorer":
			this.IE = true;
			this.version = navigator.appVersion.replace(/.*MSIE ([^;]*).*/, "$1") - 0;
			if(this.version < 7)
			{
				zoom.ie6 = true;
			}
			break;
		case "Netscape":
			this.GECKO = true;
			break;
	}

	zoom.mask = document.createElement("div")
	zoom.mask.style.position = "absolute";
	zoom.mask.style.top = "0px";
	zoom.mask.style.left = "0px";
	zoom.mask.style.width = document.body.parentNode.scrollWidth + "px";
	zoom.mask.style.height = document.body.parentNode.scrollHeight + "px";
	zoom.mask.style.backgroundImage = "url(images/trans.gif)";
	zoom.mask.style.backgroundColor = zoom.maskcolor;
	if(zoom.ie6)
	{
		zoom.mask.style.filter = "alpha(opacity=" + zoom.maxopac + ")";
	}
	else
	{
		zoom.mask.style.filter = "alpha(opacity=0)";
	}
	zoom.mask.style.opacity = 0;
	zoom.mask.style.zIndex = 100;
	document.body.appendChild(zoom.mask);
	var left = 0;
	var top = 0;
	var p = elem;
	while(p)
	{
		left += p.offsetLeft;
		top += p.offsetTop;
		p = p.offsetParent;
	}
	left -= 20;
	top -= 200;
	zoom.w = 0;
	zoom.h = 0;
	var div = document.createElement("div");
	zoom.div = div;
	document.body.appendChild(div);
	div.style.position = "absolute";
	div.style.overflow = "hidden";
	div.style.top = top + "px";
	div.style.left = left + "px";
	div.style.width = zoom.w + "px";
	div.style.height = zoom.h + "px";
	div.style.zIndex = 101;
       
	var img = document.createElement("img");
	var name = elem.src;
	name = name.replace(/\/s([^/]*)$/, "/$1");
	img.src = name;
	if(this.IE && this.version >= 5 && this.version < 7)
	{
		var span = document.createElement("div");
		span.style.position = "absolute";
		span.style.backgroundColor= "transparent";
		span.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + name + "', sizingMethod='scale')";
		span.appendChild(img);
		img.style.filter = "alpha(opacity=0)";
		div.appendChild(span);
		zoom.odelta = 10;
	}
	else
	{
		div.appendChild(img);
	}
	var close = document.createElement("img");
	close.className = "rbt2";
	close.src = "hbutton.php?text=verklein&width=130";
	close.style.position = "absolute";
	close.style.top = "0px";
	close.style.right = "0px";
	div.appendChild(close);
	close.onclick = zoom.startout;
	zoom.img = img;
	zoom.zin.start();
}

zoom.zooming = false;
zoom.div = null;
zoom.img = null
zoom.mask = null;
zoom.delta = 10;
zoom.tmo = 20;
zoom.opac = 0;
zoom.odelta = 2;
zoom.maxopac = 20;
zoom.maskcolor = "#000000";
zoom.ie6 = false;

zoom.setOpacity = function(tag, value)
{
	if(zoom.ie6)
	{
		return;
	}
	zoom.mask.style.opacity = .01 * value;
	zoom.mask.style.filter = "alpha(opacity=" + value + ")";
}

zoom.setSize = function(tag, value)
{
/*
	zoom.w = zoom.img.offsetWidth;
	zoom.h = zoom.img.offsetHeight;
 */
	var src = zoom.img.src.replace(/.*\//, "");
	zoom.w = iwdth[src];
	zoom.h = ihght[src];
	zoom.div.style.width = Math.round(value * zoom.w) + "px";
	zoom.div.style.height = Math.round(value * zoom.h) + "px";
}

zoom.done = function()
{
	if(zoom.zooming)
	{
		zoom.mask.parentNode.removeChild(zoom.mask);
		zoom.div.parentNode.removeChild(zoom.div);
		zoom.div = null;
		zoom.mask = null;
		zoom.zooming = false;
	}
}

zoom.zin = new animation();
zoom.zin.addToStream(0, new movement(zoom.setOpacity, null, 0, zoom.maxopac, 1, 50, false)); // 20 * 50 = 1 second
zoom.zin.addToStream(1, new wait(500));
zoom.zin.addToStream(1, new movement(zoom.setSize, null, 0, 1, .01, 10, false)); // 10 * 100 = 1 seconds + 1 second wait

zoom.out = new animation();
zoom.out.addToStream(0, new movement(zoom.setSize, null, 1, 0, -.01, 10, false)); // 10 * 100 = 1 seconds
zoom.out.addToStream(1, new wait(500));
zoom.out.addToStream(1, new movement(zoom.setOpacity, null, zoom.maxopac, 0, -1, 50, false));
zoom.out.addToStream(1, new movement(zoom.done, null, 1, 1, 1, true));

zoom.startout = function()
{
	zoom.out.start();
}

function blocks()
{
}

blocks.hideblock = function(name)
{
	var e = document.getElementById(name);
	if(e)
	{
		e.parentNode.removeChild(e);
		blocks.hidden.appendChild(e);
	}
}

blocks.showblock = function(name, parent)
{
	var e = document.getElementById(name);
	var p = document.getElementById(parent);
	if(e && p)
	{
		e.parentNode.removeChild(e);
		p.appendChild(e);
	}
}

blocks.init = function()
{
	var show = 1;
	blocks.hidden = document.createElement("div");
	blocks.hidden.style.position = "absolute";
	blocks.hidden.style.visibility = "hidden";
	document.body.appendChild(blocks.hidden);
	var curblock = null;
	blocks.hideblock("blk3");
	blocks.hideblock("iblk2");
	if(blocks.initrest)
	{
		blocks.initrest();
	}
}
			
blocks.curblock = 1;

blocks.show = function(id)
{
	switch(id)
	{
		case 1:
			blocks.cleartmp();
			switch(blocks.curblock)
			{
				case 1:
					return;
				case 2:
					blocks.hideblock("iblk2");
					blocks.showblock("iblk1", "iblks");
					// windows forgets the checked radiobutton
					if(blocks.card !== null)
					{
						document.getElementById("crd" + blocks.card).checked = true;
					}
					// ie6 fouls up the position of the button
					document.images['gvb'].style.top = '0px';
					break;
				case 3:
					blocks.hideblock("blk3");
					blocks.showblock("blk1", "blocks");
					blocks.showblock("iblk1", "iblks");
					break;
			}
			break;
		case 2:
			switch(blocks.curblock)
			{
				case 1:
					blocks.getCardinfo();
					blocks.hideblock("iblk1");
					blocks.showblock("iblk2", "iblks");
					break;
				case 2:
					break;
				case 3:
					blocks.hideblock("blk3");
					blocks.showblock("blk1", "blocks");
					blocks.hideblock("iblk1");
					blocks.showblock("iblk2", "iblks");
					break;
			}
			break;
		case 3:
			switch(blocks.curblock)
			{
				case 1:
					blocks.hideblock("blk1");
					blocks.showblock("blk3", "blocks");
					break;
				case 2:
					blocks.hideblock("iblk2");
					blocks.showblock("iblk1", "iblks");
					blocks.hideblock("blk1");
					blocks.showblock("blk3", "blocks");
					break;
				case 3:
					break;
			}
			break;
	}
	for(var i = 1; i <= 3; i++)
	{
		var e = document.getElementById("stp" + i);
		var pos = "0px " + ((i == id) ? "-50" : "0") + "px";
		e.style.backgroundPosition = pos;
// alert("stp" + i + " = " + pos);
	}
	blocks.curblock = id;
}

var basetext = "";

blocks.printstaffel =
	{
		0 : 1,
		2000 : .79,
		2500 : .65,
		3000 : .56,
		4000 : .45,
		5000 : .38
	};

blocks.getCardinfo = function()
{
	var cval = document.getElementById("cval");
	var pval = document.getElementById("pval");
	var value = cval.value;
	var amount = pval.value - 0;
	value = value.replace(/,/, ".") - 0;
	var card = null;
	for(var i = 0; i < gcards.length; i++)
	{
		var e = document.getElementById("crd" + i);
		if(e.checked)
		{
			card = e.value;
			break;
		}
	}
/*
	if(document.images['si_2_0'])
	{
		document.images['si_2_0'].src = document.images['si_1_' + i].src;
	}
 */
	blocks.text = gcards[card] + " van &euro;&nbsp;" + order.fmt(value);
	// var txt = amount + " &times; " + blocks.text;
	// var e = document.getElementById("otxt");
	// e.innerHTML = txt;
	blocks.card = card;
	blocks.amount = amount;
	blocks.value = value;
	var prnt = 0;
	if(i == 3) // zelfontworpen
	{
		for(var a in blocks.printstaffel)
		{
			if(amount >= a)
			{
				prnt = blocks.printstaffel[a];
			}
		}
		blocks.designed = 1;
	}
	else
	{
		blocks.designed = 0;
	}
	blocks.prnt = prnt * amount
	n = new order(amount, blocks.text, amount * value, 0, blocks.prnt, true, blocks.designed, i, value, 0);
	blocks.tmp = n;
}

blocks.cleartmp = function()
{
	if(blocks.tmp)
	{
		order.remove(blocks.tmp.id);
		blocks.tmp = null;
	}
}

blocks.getPacking = function(n)
{
	var price = blocks.value;
	var add = n ? 1 : 0;
	var count = blocks.amount;
	var ptxt = gpackings[n];
	var card = blocks.card;
	var value = blocks.value;
	blocks.cleartmp();
	new order(count, blocks.text + " " + ptxt, count * price, count * add, blocks.prnt, false, blocks.designed, card, value, n);

	// ok order handled, reset the inputs

	var e;
	for(var i = 0; i < gcards.length; i++)
	{
		e = document.getElementById("crd" + i);
		e.checked = false;
	}
	e = document.getElementById('cval');
	e.value = "";
	e = document.getElementById('pval');
	e.value = "";
	e = document.getElementById("cnxt1");
	e.style.visibility = "hidden";
	for(var i = 0; i < gpackings.length; i++)
	{
		e = document.getElementById("pck" + i);
		e.checked = false;
		e = document.getElementById("pnxt" + i);
		e.style.visibility = "hidden";
	}
	blocks.card = null;
	blocks.amount = 0;
	blocks.value = 0;
}

function order(amount, text, price, add, prnt, tmp, designed, card, value, packing)
{
	this.amount = amount;
	this.text = text;
	this.price = price;
	this.add = add;
	this.prnt = prnt;
	this.next = null;
	this.designed = designed;
	this.tmp = tmp;
	this.value = value;
	this.card = card;
	this.packing = packing;
	this.id = ++order.id;
	var p = order.list;
	var q = null;
	while(p)
	{
		q = p;
		p = p.next;
	}
	if(q)
	{
		q.next = this;
	}
	else
	{
		order.list = this;
	}
	order.show();
}

order.list = null;
order.id = 0;

order.remove = function(id)
{
	var p = order.list;
	var q = null;
	while(p)
	{
		if(p.id == id)
		{
			if(q)
			{
				q.next = p.next;
			}
			else
			{
				order.list = p.next;
			}
			order.show();
			return;
		}
		q = p;
		p = p.next;
	}
}

order.fmt = function(value)
{
	if(value - 0 == 0)
	{
		return "0,00";
	}
	
	var v = "" + Math.round(100 * (value - 0));
	if(v.length < 3)
	{
		if(v.length < 2)
		{
			v = "0" + v;
		}
		v = "0" + v;
	}
	v = v.replace(/(\d\d)$/, ",$1");
	if(v.length > 6)
	{
		v = v.replace(/(......)$/, ".$1");
	}
	if(v.length > 10)
	{
		v = v.replace(/(..........)$/, ".$1");
	}
	return v;
}

order.show = function()
{
	var p = order.list;
	var text = "";
	var text2 = "";
	var ftext = ""
	var total = 0;
	var addtotal = 0;
	var prnttotal = 0;
	var npack = 0;
	var nprnt = 0;
	var n = 0;
	var tmp = false;

	while(p)
	{
		var price = p.price - 0;
		var add = p.add - 0;
		if(add)
		{
			npack += p.amount;
		}
		var prnt = p.prnt - 0;
		if(prnt)
		{
			nprnt += p.amount;
		}
		total += price;
		addtotal += add;
		prnttotal += prnt;
		var cprice = price;
		price += add + prnt;
		var pprice = "&nbsp; " + order.fmt(price);
		text += "<tr><td class='otd' width='15'>";
		if(!p.tmp)
		{
			text += "<img class='rmorder' src='images/trans.gif' width='15' height='15' onclick='order.remove(" + p.id + ")' alt='verwijder artikel' title='verwijder artikel' />";
		}
		else
		{
			tmp = true;
		}
		text += "</td><td class='otd' width='24'>" + p.amount + "</td><td class='otd' width='208' style='padding-right: 4px;'>" + p.text + "</td><td class='otd' width='8'>&euro;</td><td class='otd' width='62' align='right'>" + pprice + "</td></tr>";
		text2 += "<tr><td width='60' class='ootd'>" + p.amount + "</td><td width='480' class='ootd'>" + p.text + "</td><td class='ootd'>&euro;</td><td align='right' class='ootd'>" + pprice + "</td></tr>";
		ftext += "<input type='hidden' name='c[" + n + "]' value='" + p.amount + "' />";
		ftext += "<input type='hidden' name='a[" + n + "]' value='" + p.text + "' />";
		ftext += "<input type='hidden' name='p[" + n + "]' value='" + price + "' />";
		ftext += "<input type='hidden' name='b[" + n + "]' value='" + cprice + "' />";
		ftext += "<input type='hidden' name='e[" + n + "]' value='" + add + "' />";
		ftext += "<input type='hidden' name='d[" + n + "]' value='" + p.designed + "' />";
		ftext += "<input type='hidden' name='v[" + n + "]' value='" + p.value + "' />";
		ftext += "<input type='hidden' name='t[" + n + "]' value='" + p.card + "' />";
		ftext += "<input type='hidden' name='w[" + n + "]' value='" + p.packing + "' />";
		n++;
		p = p.next;
	}
	if(text)
	{
		
		var ktotal = order.fmt(total);
		
		var atotal = order.fmt(addtotal / 1.19);
		var ptotal = order.fmt(prnttotal / 1.19);
		var btw = order.fmt(addtotal - addtotal / 1.19 + prnttotal - prnttotal / 1.19);
		text += "<tr><td colspan='5' style='padding: 8px 0px;'><img src='images/ruler.png' width='100%' height='2' /></td></tr>";
		text2 += "<tr><td colspan='4' style='padding: 8px 0px;'><img src='images/ruler.png' width='100%' height='2' /></td></tr>";
		text += "<tr><td class='otd' colspan='3'><b>totale waarde van de kaarten</b><td class='otd'>&euro;</td><td class='otd' align='right'>" + ktotal + "</td></tr>";
		text2 += "<tr><td></td><td class='ootd'><b>totale waarde van de kaarten</b><td class='ootd'>&euro;</td><td align='right' class='ootd'>" + ktotal + "</td></tr>";
		ftext += "<input type='hidden' name='kval' value='" + total + "' />";
		var staffel = 0;
		if(total >= 5000)
		{
			staffel = 5;
			if(total >= 15000)
			{
				staffel = 7.5;
				if(total >= 25000)
				{
					staffel = 10;
				}
			}
		}
		if(staffel)
		{
			var reduct = .01 * Math.round(staffel * total);
			total -= reduct;
			price = " " + order.fmt(reduct);
			var r = " " + staffel;
			r = r.replace(/\./, ",");
			text += "<tr><td class='otd' colspan='3'>" + r  + "% korting over &euro; " + ktotal + "</td><td class='otd'>&euro;</td><td class='otd' align='right'>- " + price + "</td></tr>";
			text2 += "<tr><td></td><td class='ootd'>" + r  + "% korting over &euro; " + ktotal + "</td><td class='ootd'>&euro;</td><td align='right' class='ootd'>- " + price + "</td></tr>";
			ftext += "<input type='hidden' name='staffel' value='" + staffel + "' />";
			ftext += "<input type='hidden' name='korting' value='" + reduct + "' />";
		}
		if(addtotal || prnttotal)
		{
			if(addtotal)
			{
				text += "<tr><td class='otd' colspan='3'><b>" + npack + " verpakkingen exclusief BTW</b><td class='otd'>&euro;</td><td class='otd' align='right'>" + atotal + "</td></tr>";
				text2 += "<tr><td></td><td class='ootd'><b>" + npack + " verpakkingen exclusief BTW</b><td class='ootd'>&euro;</td><td align='right' class='ootd'>" + atotal + "</td></tr>";
				ftext += "<input type='hidden' name='nverpakking' value='" + npack + "' />";
				ftext += "<input type='hidden' name='verpakking' value='" + blocks.fnum(atotal) + "' />";
			}
			if(prnttotal)
			{
				text += "<tr><td class='otd' colspan='3'><b>" + nprnt + " drukkosten exclusief BTW</b><td class='otd'>&euro;</td><td class='otd' align='right'>" + ptotal + "</td></tr>";
				text2 += "<tr><td></td><td class='ootd'><b>drukkosten " + nprnt + " kaarten exclusief BTW</b><td class='ootd'>&euro;</td><td align='right' class='ootd'>" + ptotal + "</td></tr>";
				ftext += "<input type='hidden' name='nprint' value='" + nprnt + "' />";
				ftext += "<input type='hidden' name='print' value='" + ptotal.replace(/\./, "").replace(/,/, ".") + "' />";
			}
			text += "<tr><td class='otd' colspan='3'><b>BTW 19%</b><td class='otd'>&euro;</td><td class='otd' align='right'>" + btw + "</td></tr>";
			text2 += "<tr><td></td><td class='ootd'><b>BTW 19%</b><td class='ootd'>&euro;</td><td align='right' class='ootd'>" + btw + "</td></tr>";
			ftext += "<input type='hidden' name='btw' value='" + blocks.fnum(btw) + "' />";
		}
		var sum = addtotal + prnttotal + total;
		var sumex = total + (addtotal + prnttotal) / 1.19;
		ftext += "<input type='hidden' name='total' value='" + sum + "' />";
		ftext += "<input type='hidden' name='totalex' value='" + sumex + "' />";
		
		var elem = document.getElementById("order");
		if(elem)
		{
			var tprice = "&nbsp; " + order.fmt(sum);
			var txt = "<table border='0' cellpadding='3' cellspacing='3'>";
			var txt2 = txt;
			txt += "<tr><td class='otd' colspan='2'><b>aantal</b></td><td class='otd'><b>artikel</b></td><td class='otd' colspan='2'><b>prijs</b></td></tr>";
			txt2 += "<tr><td class='ootd'><b>aantal</b></td><td class='ootd'><b>artikel</b></td><td colspan='2' class='ootd'><b>prijs</b></td></tr>";
			txt += text;
			txt2 += text2;
			txt += "<tr><td colspan='3'></td><td colspan='2' height='2px'><img src='images/line.png' width='100%' height='2' /></td></tr>";
			txt2 += "<tr><td colspan='2'></td><td colspan='2' height='2px'><img src='images/line.png' width='100%' height='2' /></td></tr>";
			txt += "<tr></td><td class='otd' colspan='3'><b>totaal</b><td class='otd'>&euro;</td><td class='otd' align='right'>" + tprice + "</td></tr>";
			txt2 += "<tr><td></td><td class='ootd'><b>totaal</b><td class='ootd'>&euro;</td><td align='right' class='ootd'>" + tprice + "</td></tr>";
			txt += "</table>";
			txt2 += "</table>";
			elem.innerHTML = txt;
			elem = document.getElementById("blkform");
			if(elem)
			{
				elem.innerHTML = txt2 + ftext;
			}
		}
		var elem = document.getElementById('obtm');
		if(tmp)
		{
			elem.innerHTML = "";
		}
		else
		{
			if(total < 500)
			{
				elem.innerHTML = "<div style='width: 280px; font-size: 11px;'>Let op: de totale waarde van uw cadeaukaart(en) is minder dan &euro; 500. Om uw zakelije order met factuur te betalen dient uw order ten minste &euro; 500 te bedragen. Wanneer u kleinere hoeveelheden wilt bestellen dan ontvangen we deze graag op <a href='http://www.hema.nl/nl-nl/winkel/cadeaukaarten.aspx?navmethod=menu'>www.hema.nl</a></div>";
			}
			else
			{
				elem.innerHTML = "<img id='cnxt3' style='margin-left: 150px;' class='lgbt2' onclick='blocks.show(3)' onmouseover='return lgovr(this)' onmouseout='lgovrout(this)' src='hbutton.php?text=ga+verder&width=130' />";
			}
		}
	}
	else
	{
		var elem = document.getElementById("order");
		elem.innerHTML = "u heeft nog niets besteld";
		elem = document.getElementById('obtm');
		elem.innerHTL = "";
	}
}

blocks.fnum = function(f)
{
	return f.replace(/\./, "").replace(/,/, ".");
}

blocks.fillform = function()
{
}

blocks.printform = function()
{
	var txt = "";
	txt += "<div style='padding-bottom; 12px'>";
	txt += "<img style='padding-left: 10px;vertical-align: middle;' src='sshow/hlogo.png' >";
	txt += "<img style='vertical-align: middle;' src='htext.php?text=bestelformulier&size=18&color=248,124,0' />";
	txt += "<img style='vertical-align: middle;' src='htext.php?text=HEMA+cadeaukaart&size=18' />";
	txt += "</div>";

	txt += "<table border='0' cellpadding='0' cellspacing'=0'>";
	txt += "<tr><td class='ftf'>naam bedrijf</td><td class='fdt' width='450'>" + document.info.bedrijf.value + "</td></tr>";


	txt += "<tr><td colspan='2'>";
	var e = document.getElementById("blkform");
	txt += e.innerHTML;
	txt += "</td></tr>";

	txt += "</table>";
	var w = window.open("", "_blank");
	w.document.open();
	w.document.write(txt);
	w.document.close();
}

function check()
{
}

check.formcheck = function()
{
	tgt = check.target;
	var form = check.form;

	ok = true;
	for(var n = 0; ok && n < form.elements.length; n++)
	{
		var item = form.elements[n];
		if(item.id.match(/^req_/))
		{
			switch(item.type)
			{
				case 'text':
					if(item.name == 'email')
					{
						ok = item.value.match(/^[-A-Za-z0-9_\.]+@([-A-Za-z0-9_]+\.)+[-A-Za-z0-9_]+$/);
					}
					else
					{
						ok = item.value.match(/[^ ]/);
					}
					break;
				case 'checkbox':
					ok = item.checked;
					break;
			}
			
		}
	}
	tgt.style.visibility = ok ? "visible" : "hidden";
}

check.revert = function()
{
	var elem = document.getElementById('req_7');
	if(elem)
	{
		elem.checked = !elem.checked;
	}
	return true;
}

check.init = function(target, form)
{
	var tgt;

	if(typeof target == "string")
	{
		tgt = document.getElementById(target);
	}
	else
	{
		tgt = target;
	}
	check.target = tgt;
	check.form = form;

	for(var n = 0; n < form.elements.length; n++)
	{
		var item = form.elements[n];
		if(item.id.match(/^req_/))
		{
			switch(item.type)
			{
				case 'text':
					item.onkeyup = check.formcheck;
					break;
				case 'checkbox':
					item.onclick = check.formcheck;
					break;
			}
		}
	}
}

blocks.initrest = window.onload;
window.onload = blocks.init;

