/****************** WUNDERLOOP TAGS ******************/

var url = "";
ord=Math.random()*10000000000000000;
document.write('<scr'+'ipt language="JavaScript" src="http://rc.wl.imnetworks.nl/Get/imnetworks/JS/GetRcmd.js?d='+ord+'" type="text/javascript"></scr'+'ipt>');
if ( typeof(et_ord) == 'undefined' )
{
	et_ord = Math.floor(Math.random()*10000000000000000);
}
if ( typeof(wlrcmd) == "undefined" )
{
	var wlrcmd = "";
}
if ( typeof(et_tile) == 'undefined' )
{
	et_tile = 1;
}

/****************** CATEGORIES ******************/

function categoryDropdown(enabled) {
	var catselect = document.getElementById('searchcategoryselect').style;

	if(enabled)	{
		catselect.display = 'block';

		document.body.onmouseup = function() {
			categoryDropdown(false);
		}
	} else {
		catselect.display = 'none';
		document.body.onmouseup = null;
	}
}

function categorySelect(option) {
	if(option == 'all'){
		document.getElementById('searchcategorydropdown').innerHTML = language['all_categories'];
	} else {
		document.getElementById('searchcategorydropdown').innerHTML = trim(option);
	}
	document.getElementById('searchcategory').value = trim(option);

	categoryDropdown(false);
}

/****************** IMAGES ******************/

products = new Array();

function fixImages(size) {
	for(var i = 0; i < document.images.length; i++) {
		if(document.images[i].className == 'fiximage') {
			fixImage(document.images[i], size);
		}
	}
}

function fixImage(image, size) {
	if((!image.complete) || (typeof(image.naturalWidth) != 'undefined' && image.naturalWidth == 0) || (image.src.indexOf('no_image') != -1)) {
		if(size >= 200) {
			image.src = '/images/'+country+'/no_image.jpg';
		} else {
			image.src = '/images/'+country+'/no_image_small.jpg';
		}
	} else {
		image.style.height = '';
		image.style.width  = '';

		var imageh = image.clientHeight;
		var imagew = image.clientWidth;

		if((imageh > size) || (imagew > size)) {
			var scaleh = size / imageh;
			var scalew = size / imagew;

			if(scaleh < scalew) {
				image.style.height = size                        + 'px';
				image.style.width  = Math.round(imagew * scaleh) + 'px';
			} else {
				image.style.height = Math.round(imageh * scalew) + 'px';
				image.style.width  = size                        + 'px';
			}
		}

		image.style.marginTop = Math.round(((size - image.clientHeight) / 2)) + 'px';
	}
}

function doneloaded(img)
{
	products[products.length] = img;
}

function checkLoaders()
{
	parent.top.printFrame.switchDivs();
	bodyproducts = document.getElementsByTagName("img");
	for(b=0; b<bodyproducts.length; b++) {
		noGood = true;
		for(c=0; c<products.length; c++) {
			if(products[c] == bodyproducts[b]) {
				noGood = false;
				break;
			}
		}
		if(noGood == true)
			bodyproducts[b].src = '/images/'+country+'/no_image_small.jpg';
	}
}

function zoomImage(image) {
	var zoomimage = document.getElementById('zoomimage');

	var position               = getElementPosition(image);
	zoomimage.style.left       = (position[0] - 10) + 'px';
	zoomimage.style.top        = (position[1] - 10) + 'px';

	zoomimage.style.visibility = 'hidden';
	zoomimage.style.display    = 'block';

	zoomimage.src              = image.src;

	var originalh              = zoomimage.clientHeight - 20;
	var originalw              = zoomimage.clientWidth  - 20;

	zoomimage.style.height     = image.style.height;
	zoomimage.style.width      = image.style.width;

	var currenth               = parseInt(zoomimage.style.height);
	var currentw               = parseInt(zoomimage.style.width);

	zoomimage.style.visibility = 'visible';

	if((originalh > currenth) || (originalw > currentw)) {
		var step  = 20;
		var steph = Math.round((originalh - currenth) / step);
		var stepw = Math.round((originalw - currentw) / step);

		for(var i = 0; i < step; i++) {
			currenth += steph;
			setTimeout("document.getElementById('zoomimage').style.height = " + currenth + " + 'px';", (i * 10));
			currentw += stepw;
			setTimeout("document.getElementById('zoomimage').style.width  = " + currentw + " + 'px';", (i * 10));
		}

		setTimeout("document.getElementById('zoomimage').style.height = " + originalh + " + 'px';", ((i * 10) + 10));
		setTimeout("document.getElementById('zoomimage').style.width  = " + originalw + " + 'px';", ((i * 10) + 10));
	} else {
		zoomimage.style.display = 'none';
	}
}

function getElementPosition(element) {
	var posx = 10;
	var posy = 10;

	if(element.offsetParent) {
		posx = element.offsetLeft;
		posy = element.offsetTop;

		while(element = element.offsetParent) {
			posx += element.offsetLeft;
			posy += element.offsetTop;
		}
	}

	return [posx, posy];
}

function setCategoryView(view) {
	document.getElementById('productsview').className = view;

	var expires = new Date();
	expires.setMonth(expires.getMonth() + 1);

	document.cookie = 'categoryview=' + view + ';expires=' + expires.toGMTString() + ';path=/';

	if(view == 'productslist') {
		fixImages(80);
	} else {
		fixImages(200);
	}
}
/****************** PRODUCTS ******************/

function morePrices(shopid, tab, count) {
	var id;
	var dplay;

	o = document.getElementById('1_'+shopid+'_0');
	td = o.getElementsByTagName('td');
	if (td[0].style.display == 'none') {
		dplay = '';
	} else {
		dplay = 'none'
	}
	for (var i = 0; i < count; i++) {
		id = '1_'+shopid+'_'+i;
		o = document.getElementById(id);
		td = o.getElementsByTagName('td');
		for (j = 0; j < td.length; j++) {
			td[j].style.display = dplay;
		}
	}
}

function setTab(tab) {

	document.getElementById('zoomimage').style.display = 'none';
	for(var i = 1; i <= 5; i++) {
		document.getElementById('tab' + i).className = '';
		document.getElementById('tab' + i + 'content').style.display = 'none';
	}

	if (tab == "tab1") {
		document.getElementById('tab1content').style.display = 'block';
		document.getElementById('productinfo').style.display = 'block';
		document.getElementById('availability').style.display = 'block';
		document.getElementById('more_suppliers').style.display = 'block';
		document.getElementById(tab).className = 'active';
		var moreshops = document.getElementsByTagName('tr');
		var length = moreshops.length;
		for (var i = 0; i < length; i++) {
			var attr = moreshops[i].attributes;
			var attrLength = attr.length;
			for(var j = 0; j < attrLength; j++) {
				if (attr[j].value == 'moreshops') {
					moreshops[i].style.display = 'none';
				}
			}
		}
	} else if (tab == "tab2") {
		document.getElementById('tab1content').style.display = 'block';
		document.getElementById('productinfo').style.display = 'none';
		document.getElementById('availability').style.display = 'none';
		document.getElementById('more_suppliers').style.display = 'none';
		document.getElementById(tab).className = 'active';
		var moreshops = document.getElementsByTagName('tr');
		var length = moreshops.length;
		for (var i = 0; i < length; i++) {
			var attr = moreshops[i].attributes;
			var attrLength = attr.length;
			for(var j = 0; j < attrLength; j++) {
				if (attr[j].value == 'moreshops') {
					moreshops[i].style.display = 'block';
				}
			}
		}
	} else {
		document.getElementById(tab).className = 'active';
		document.getElementById(tab + 'content').style.display = 'block';
	}

	if(tab == "tab4"){
		resetReviewForm();
	}
}

function ImageScroller( sDirection, iTotal)
{
	var oCurrent = document.getElementById('firstimage');
	var iCurrent = parseInt(oCurrent.value);
	
	if ( 'previous' === sDirection )
	{
		var iNewFirst = iCurrent - 1;
		if ( 1 > iNewFirst )
		{
			iNewFirst = 1;
		}
	}
	else
	{
		var iNewFirst = iCurrent + 1;
		var iMax = iTotal - 5;

		if ( iMax < iNewFirst )
		{
			iNewFirst = iMax;
		}
	}
	oCurrent.value = iNewFirst;

	var iLast = iNewFirst + 5;
	if ( iLast > iTotal )
	{
		iLast = iTotal;
	}
	for ( i = 1; i <= iTotal; i++ )
	{
		document.getElementById( 'image_'+i ).style.display = 'none';
	}
	
	for ( i = iNewFirst; i <= iLast; i++ )
	{
		document.getElementById( 'image_'+i ).style.display = '';
	}
	
}

// [START] Tabs voor het menu rechtsonderin

function ExtraSetTab(tab)
{
	for(var i = 1; i <= 3; i++)
	{
		document.getElementById('extra_tab' + i).className = '';
		document.getElementById('extra_tab' + i + '_content').style.display = 'none';
	}

	if (tab == "extra_tab1")
	{
		document.getElementById('extra_tab1_content').style.display = 'block';
		document.getElementById('extra_tab2_content').style.display = 'none';
		document.getElementById('extra_tab3_content').style.display = 'none';
		document.getElementById(tab).className = 'active';
	}
	else if (tab == "extra_tab2")
	{
		document.getElementById('extra_tab1_content').style.display = 'none';
		document.getElementById('extra_tab2_content').style.display = 'block';
		document.getElementById('extra_tab3_content').style.display = 'none';
		document.getElementById(tab).className = 'active';
	}
	else if (tab == "extra_tab3")
	{
		document.getElementById('extra_tab1_content').style.display = 'none';
		document.getElementById('extra_tab2_content').style.display = 'none';
		document.getElementById('extra_tab3_content').style.display = 'block';
		document.getElementById(tab).className = 'active';
	}
	else
	{
		document.getElementById(tab).className = 'active';
		document.getElementById(tab + '_content').style.display = 'none';
	}
}

// [END] Tabs voor het menu rechtsonderin

function setTabShop(tab) {

	document.getElementById('zoomimage').style.display = 'none';
	for(var i = 1; i <= 5; i++) {
		document.getElementById('shoptab' + i).className = '';
		document.getElementById('shoptab' + i + 'content').style.display = 'none';
	}

	document.getElementById(tab).className = 'active';
	document.getElementById(tab + 'content').style.display = 'block';

	if(tab == "shoptab4"){
		resetReviewForm();
	}
}

/****************** REVIEWS ******************/

function setRating(rating) {
	var previous = document.getElementById('ReviewScore').value;

	if(previous == 0) previous = 1;

	var it = 0;

	if(rating >= previous) {
		for(var i = previous; i <= rating; i++) {
			setTimeout("document.getElementById('rating" + i + "').style.backgroundPosition = 'bottom';", (it += 20));
		}
	} else {
		for(var i = previous; i > rating; i--) {
			setTimeout("document.getElementById('rating" + i + "').style.backgroundPosition = 'top';", (it += 20));
		}
	}
	document.getElementById('ReviewScore').value = rating;
}

function resetReviewForm() {
	document.getElementById('ReviewName').value = "";
	document.getElementById('ReviewEmail').value = ""
	document.getElementById('ReviewText').value = "";
	setRating(0);
	document.getElementById('ReviewScore').value = 0;
	document.getElementById('ErrorMessage').innerHTML = "";
}

function saveReview(name, email, review, score, catid, prodid) {
	var div = document.getElementById('reviewthanks');
	name = escape(name);
	email = escape(email);
	review = escape(review);
	var sUrl = "/ajax/save_review.php?country="+country+"&name=" + name + "&email=" + email + "&review=" + review + "&score=" + score + "&catid=" + catid + "&prodid=" + prodid;
	var handleSuccess = function(o) {
		if(o.responseText !== undefined) {
			div.style.display = "block";
			resetReviewForm();
		}
	}

	var handleFailure = function(o) {
		alert(language['error_not_saved']);
	}

	var callback = {
		success:handleSuccess,
		failure:handleFailure,
		argument: {  }
	};
	var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
}

function saveShopReview(score, shopid) {
	var div = document.getElementById('reviewthanks');
	var sUrl = "/ajax/save_shopreview.php?country="+country+"&score=" + score + "&shopid=" + shopid;
	var handleSuccess = function(o) {
		if(o.responseText !== undefined) {
			div.style.display = "block";
		}
	}

	var handleFailure = function(o) {
		alert(language['error_not_saved']);
	}

	var callback = {
		success:handleSuccess,
		failure:handleFailure,
		argument: {  }
	};
	var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
}

function sendForm() {
	var error 	= document.getElementById('ErrorMessage');
	var name 	= document.getElementById('ReviewName').value;
	var email	= document.getElementById('ReviewEmail').value;
	var review	= document.getElementById('ReviewText').value;
	var score	= document.getElementById('ReviewScore').value;
	var catid	= document.getElementById('CategoryID').value;
	var prodid	= document.getElementById('ProductID').value;

	if(name == "") {
		error.innerHTML = language['error_name'];
		return;
	} else if(name.length > 64){
		error.innerHTML = language['error_name_length'];
		return;
	} else if(email == ""){
		error.innerHTML = language['error_email'];
		return;
	} else if(email.indexOf('@') == -1){
		error.innerHTML = language['error_email_invalid'];
		return;
	} else if(email.length > 64){
		error.innerHTML = language['error_email_length'];
		return;
	} else if(review == ""){
		error.innerHTML = language['error_review'];
		return;
	} else if(score == "0"){
		error.innerHTML = language['error_score'];
		return;
	} else if(catid == "00000"){
		error.innerHTML = language['error_not_available'];
		return;
	} else if(prodid == "00000000"){
		error.innerHTML = language['error_not_available'];
		return;
	} else {
		saveReview(name, email, review, score, catid, prodid);
	}
}

function sendShopReviewForm() {
	var score	= document.getElementById('ReviewScore').value;
	var shopid	= document.getElementById('ShopID').value;

	if(score == "0"){
		error.innerHTML = language['error_score'];
		return;
	} else if(shopid == "0"){
		error.innerHTML = language['error_not_available'];
		return;
	} else {
		saveShopReview(score, shopid);
	}
}
/****************** ERRORS ******************/

function viewReportError(position) {
	document.getElementById('ErrorDescription').value = "";
	document.getElementById('ErrorCategory').options[0].selected = true;
	showOverlay(position, language['report_error']);
	document.getElementById('erroradded').style.display = 'none';
	document.getElementById('reporterrorform').style.display = 'block';
}

function sendErrorNew(url) {
	var category 	= document.getElementById('ErrorCategory').value;
	var description = document.getElementById('ErrorDescription').value;
	var old			= document.getElementById("reporterrorform");
	var div			= document.getElementById("erroradded");

	if(category == ""){
		div.innerHTML = language['choose_type_error'];
		div.style.display = 'block';
		return;
	} else if(description == ""){
		div.innerHTML = language['error_description'];
		div.style.display = 'block';
		return;
	} else {
		var sUrl = "/ajax/save_error.php?country="+country+"&url=" + url + "&category=" + category + "&description=" + description;
		var handleSuccess = function(o) {
			if(o.responseText !== undefined) {
				old.style.display = 'none';
				if (o.responseText == 'succes') {
					div.innerHTML = '<table cellpadding="0" cellspacing="0"><tr><th colspan="2">'+language['error_thanks']+'</th></tr><tr><td>'+language['error_save_succes']+'</td></tr></table>';
				} else if (o.responseText == 'failed') {
					div.innerHTML = '<table cellpadding="0" cellspacing="0"><tr><th colspan="2">'+language['error_error']+'</th></tr><tr><td>'+language['error_unknown']+'</td></tr></table>';
				} else {
					div.innerHTML = o.responseText;
				}
				div.style.display = 'block';
			}
		}

		var handleFailure = function(o) {
			old.style.display = 'none';
			div.innerHTML 	  = language['not_functional'];
			div.style.display = 'block';
		}

		var callback = {
			success:handleSuccess,
			failure:handleFailure,
			argument: {  }
		};
		var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
	}
}

/****************** OVERLAY ******************/

function hideOverlay() {
	document.getElementById('overlay').style.display = 'none';
}

function showOverlay(position, title) {
	document.getElementById('overlaytitle').innerHTML = title;
	var posx = 10;
	var posy = 10;
	if(position.offsetParent) {
		posx = position.offsetLeft;
		posy = position.offsetTop;

		while(position = position.offsetParent) {
			posx += position.offsetLeft;
			posy += position.offsetTop;
		}
	}
	var overlay = document.getElementById('overlay').style;
	overlay.left = (posx - 50) + 'px';
	overlay.top  = (posy - 50) + 'px';
	overlay.display = 'block';
}

/****************** VARIOUS ******************/

function link(url){
	var n = new Date();
	var x = window.open(url,"_blank",'toolbar=1,scrollbars=1,location=1,statusbar=1,menubar=1,resizable=1',false); //,width=1152,height=864'
	x.focus();
}

function trim(value) {
  value = value.replace(/^\s+/,'');
  value = value.replace(/\s+$/,'');
  return value;
}