/* WALLPAPER FUNCTIONS */

var currentCategory = '';
var curPhotographer = '';

var cropUpToDate = true;

function clickButtonCropCheck(str, option) {
	if(croppingValid()) {
		return clickButton(str, option);
	} else {
		tb_show(cropping_header, '?#TB_inline=1&width=250&height=150&inlineId=message-crop');
	}
}

function croppingValid() {
	return cropUpToDate;
}

function _deprecated_selectCategory(num) {
	currentCategory = num;
	/*
	 * if(num == 1) { $('#tr
	 * td:first').removeClass().addClass('t1').next().removeClass().addClass('t2').next().removeClass().addClass('t3').next().removeClass().addClass('t4').next().removeClass().addClass('t5');
	 * $('#mr
	 * td:first').removeClass().addClass('tc1').next().removeClass().addClass('tc2').next().removeClass().addClass('tc3').next().removeClass().addClass('tc4').next().removeClass().addClass('tc5');
	 * $('#br
	 * td:first').removeClass().addClass('tb1').next().removeClass().addClass('tb2').next().removeClass().addClass('tb3').next().removeClass().addClass('tb4').next().removeClass().addClass('tb5'); }
	 * else if(num == 2) { $('#tr
	 * td:first').removeClass().addClass('t5').next().removeClass().addClass('t4').next().removeClass().addClass('t1').next().removeClass().addClass('t2').next().removeClass().addClass('t3');
	 * $('#mr
	 * td:first').removeClass().addClass('tc5').next().removeClass().addClass('tc4').next().removeClass().addClass('tc1').next().removeClass().addClass('tc2').next().removeClass().addClass('tc3');
	 * $('#br
	 * td:first').removeClass().addClass('t1').next().removeClass().addClass('tb4').next().removeClass().addClass('tb0').next().removeClass().addClass('tb2').next().removeClass().addClass('tb3'); }
	 */
	if (num == 1) {
		$('#tr td:first').removeClass().addClass('t1').next().removeClass().addClass('t2').next().removeClass().addClass('t3').next().removeClass()
				.addClass('t4').next().removeClass().addClass('t5').next().removeClass().addClass('t4').next().removeClass().addClass('t5');
		$('#mr td:first').removeClass().addClass('tc1').next().removeClass().addClass('tc2').next().removeClass().addClass('tc3').next().removeClass()
				.addClass('tc4').next().removeClass().addClass('tc5').next().removeClass().addClass('tc4').next().removeClass().addClass('tc5');
		$('#br td:first').removeClass().addClass('tb1').next().removeClass().addClass('tb2').next().removeClass().addClass('tb3').next().removeClass()
				.addClass('tb4').next().removeClass().addClass('tb5').next().removeClass().addClass('tb4').next().removeClass().addClass('tb5');
	} else if (num == 2) {
		$('#tr td:first').removeClass().addClass('t5').next().removeClass().addClass('t4').next().removeClass().addClass('t1').next().removeClass()
				.addClass('t2').next().removeClass().addClass('t3').next().removeClass().addClass('t4').next().removeClass().addClass('t5');
		$('#mr td:first').removeClass().addClass('tc5').next().removeClass().addClass('tc4').next().removeClass().addClass('tc1').next().removeClass()
				.addClass('tc2').next().removeClass().addClass('tc3').next().removeClass().addClass('tc4').next().removeClass().addClass('tc5');
		$('#br td:first').removeClass().addClass('t1').next().removeClass().addClass('tb4').next().removeClass().addClass('tb0').next().removeClass()
				.addClass('tb2').next().removeClass().addClass('tb3').next().removeClass().addClass('tb4').next().removeClass().addClass('tb5');
	} else if (num == 3) {
		// $('#tr
		// td:first').removeClass().addClass('t1').next().removeClass().addClass('t2').next().removeClass().addClass('t3').next().removeClass().addClass('t4').next().removeClass().addClass('t5').next().removeClass().addClass('t4').next().removeClass().addClass('t5');
		// $('#mr
		// td:first').removeClass().addClass('tc1').next().removeClass().addClass('tc2').next().removeClass().addClass('tc3').next().removeClass().addClass('tc4').next().removeClass().addClass('tc5').next().removeClass().addClass('tc4').next().removeClass().addClass('tc5');
		// $('#br
		// td:first').removeClass().addClass('tb1').next().removeClass().addClass('tb2').next().removeClass().addClass('tb3').next().removeClass().addClass('tb4').next().removeClass().addClass('tb5').next().removeClass().addClass('tb4').next().removeClass().addClass('tb5');

		$('#tr td:first').removeClass().addClass('t5').next().removeClass().addClass('t4').next().removeClass().addClass('t5').next().removeClass()
				.addClass('t4').next().removeClass().addClass('t1').next().removeClass().addClass('t2').next().removeClass().addClass('t3');
		$('#mr td:first').removeClass().addClass('tc5').next().removeClass().addClass('tc4').next().removeClass().addClass('tc5').next().removeClass()
				.addClass('tc4').next().removeClass().addClass('tc1').next().removeClass().addClass('tc2').next().removeClass().addClass('tc3');
		$('#br td:first').removeClass().addClass('t1').next().removeClass().addClass('tb4').next().removeClass().addClass('tb5').next().removeClass()
				.addClass('tb4').next().removeClass().addClass('tb0').next().removeClass().addClass('tb2').next().removeClass().addClass('tb3');
	}
	selectPhotographer(currentAuthor);
}

function selectCategory(num,url) {
  if (num != currentCategory) {
		$('table.inuse').removeClass('inuse').removeClass('glow').addClass('shadow').next().removeClass('hover').removeClass('inuse');
		$('#x_' + num).removeClass('shadow').addClass('inuse').addClass('glow').next().addClass('inuse').addClass('hover');
		currentCategory = num;
		$('table.inuse').trigger('mouseenter');

    window.location.hash = url;
    
		var req = new AjaxRequest('typo3conf/ext/iwshop/extra/AJAX.php?getWallpapersCategory:' + num, 'GET', '', loadPhotographer);
		req.send();
	}
}

function selectPhotographer(ID, obj) {
	currentAuthor = ID;
	curPhotographer = ID;
	if (obj) {
		$('#lcol .menu a').removeClass('boldish');
		$(obj).addClass('boldish');
	}
	// if(console) console.log('Selecting fotograf ID='+ID+'...');
	req = new AjaxRequest('typo3conf/ext/iwshop/extra/AJAX.php?getWallpaperAuthor:' + ID + ':' + currentCategory, 'GET', '', loadPhotographer);
	req.send();
}

function loadPhotographer(XML) {
	// if(console) console.log('Got AJAX response!');
	var nodes = $(XML).find('tapets > numeric');
	var holder = g('wallpaperBoxContainer');

	/*
	 * try{ holder.innerHTML = ''; } catch(e) { for(var i = 0; i <
	 * holder.childNodes.length; i++) holder.removeChild(holder.childNodes[i]); }
	 */
	$(holder).empty();

	uncheckDelayedImage();

	var counter = 0;
	var attrs = [
			'id', 'rel', 'href', 'src', 'title'
	];

	for ( var i = 0; i < nodes.length; i++) {
		if (nodes[i].nodeType == 3)
			continue;

		var node = nodes[i];

		var pic = {
			title : getXMLvalue(node, 'title'),
			id : getXMLvalue(node, 'uid'),
			artist : getXMLvalue(node, 'authorName'),
			price : getXMLvalue(node, 'price'),
			w : getXMLvalue(node, 'stdWidth'),
			h : getXMLvalue(node, 'stdHeight'),
			img_thumb_small : getXMLvalue(node, 'img_thumb_small'),
			img_preview_small : getXMLvalue(node, 'preview_thumb_small'),
			img_thumb_large : getXMLvalue(node, 'img_thumb_large'),
			img_preview_large : getXMLvalue(node, 'preview_thumb_large'),
			img_3 : getXMLvalue(node, 'preview_3'),
			img_4 : getXMLvalue(node, 'preview_4'),
			img_5 : getXMLvalue(node, 'preview_5'),
			box_type : getXMLvalue(node, 'box_type'),
			saptext_1 : getXMLvalue(node, 'saptext_1'),
			saptext_2 : getXMLvalue(node, 'saptext_2')
		};

		// console.log('node['+i+'] : found pic data');
		// console.log(pic);

		counter++;
		var $dd = $('#wallpaperBoxTemplate').clone().attr('id', 'wallpaperBox-' + pic.id).appendTo(holder);

		// console.log('node['+i+'] : found $dd');

		var dd = $dd.find('div.description');
		if (pic.title.length > 20) {
			dd.find('h3.title').text(pic.title.substr(0, 18) + '...').attr('title', pic.title);
		} else {
			dd.find('h3.title').text(pic.title);
		}
		dd.find('span.artist').html('&nbsp;' + pic.artist);

		var possible_prices = [];
		if (pic.box_type == 4 || pic.box_type == 5) {
			dd.find('.wallpaper-free-size-template').remove();
			var thb = dd.find('a.thickbox');
			thb.attr('href', str_replace('$UID$', pic.id, thb.attr('href')));
			var thc = dd.find('div.saptext-2-value');
			thc.attr('id', str_replace('$UID$', pic.id, thc.attr('id')));

			var sap2 = thc.find('div');
			sap2.brtext(pic.saptext_2);
			var sap1 = dd.find('span.saptext-1');
			sap1.brtext(pic.saptext_1);

			var selSize = dd.find('.wallpaper-fixed-sizes-template');
			if (pic.box_type == 4) {
				$dd.addClass('fixed-size');
				selSize.remove();
				possible_prices.push(pic.price);
			} else {
				$dd.addClass('fixed-multi-size');
				var sel = selSize.find('select');
				var sizes = $(nodes[i]).find('fixed_sizes numeric');
				$.each(sizes, function(ix, el) {
					var $o = $('<option />').val(ix);
					var $el = $(el);
					$o.text($el.xmval('h') + 'x' + $el.xmval('w') + ' ' + $el.xmval('measure') + ' ('+beforePriceCurrency+' ' + dk_money($el.xmval('price')) + ',- )');
					sel.append($o);
					possible_prices.push($el.xmval('price'));
				});
			}
		} else {
			possible_prices.push(pic.price);
			$dd.addClass('user-size');
			dd.find('.wallpaper-fixed-size-template').remove();
			dd = $dd.find('.description td:first');
			dd.html(str_replace('$WIDTH$', pic.w, str_replace('$HEIGHT$', pic.h, dd.html())));
		}
		$dd.find('.price').text(pic.price + afterPriceCurrency).data('possiblePrices', possible_prices);
		$dd.find('div.addToCart a').attr('id', 'cartLinkUID-' + pic.id);

		dd = $dd.find('div.iconHolder');
		var tmp = dd.find('a').attr('title', pic.title);
		tmp = tmp.attr('href', str_replace('$PREVIEW_IMG_LARGE$', pic.img_preview_large, str_replace('$UID$', pic.id, tmp.attr('href')))).find('img');
		var imgPath = str_replace('$PREVIEW_IMG$', '', tmp.attr('src'));
		tmp.attr('src', str_replace('$PREVIEW_IMG$', pic.img_preview_small, tmp.attr('src')));

		dd = $dd.find('table.imagePreview div');

		var goodSrc = str_replace('$IMG$', pic.img_thumb_small, dd.find('img').attr('src'));

		var previewImage = dd.find('img');

		if (counter < 2) {
			previewImage.attr('src', goodSrc);
		} else if (counter < 3) {
			previewImage.attr('src', goodSrc).attr('delayed_source', goodSrc);
		} else {
			previewImage.attr('src', '').attr('delayed_source', goodSrc);
		}

		tmp = dd.find('a.plus').attr('id', 'imgplus-' + pic.id).attr('title', pic.title);
		tmp.attr('href', str_replace('$IMG_LARGE$', pic.img_thumb_large, str_replace('$UID$', pic.id, tmp.attr('href'))));

		dd = $dd.find('div.gallery');
		dd = dd.attr('id', 'imgGallery' + pic.id).find('div.thumbsHolder a:first');
		tmp = dd.click(function() {
			swapImageSimple($(this).children().attr('src'));
			return false;
		}).find('img');
		tmp.attr('src', str_replace('$IMG_LARGE$', pic.img_thumb_large, tmp.attr('src')));

		dd = dd.next();
		if (pic.img_preview_large != '') {
			tmp = dd.click(function() {
				swapImageSimple($(this).children().attr('src'));
				return false;
			}).find('img');
			tmp.attr('src', str_replace('$PREVIEW_IMG_LARGE$', pic.img_preview_large, tmp.attr('src')));
		} else {
			dd.empty();
		}

		dd = dd.next();
		if (pic.img_3 != '') {
			tmp = dd.click(function() {
				swapImageSimple($(this).children().attr('src'));
				return false;
			}).find('img');
			tmp.attr('src', str_replace('$PREVIEW_3$', pic.img_3, tmp.attr('src')));
		} else {
			dd.empty();
		}

		dd = dd.next();
		if (pic.img_4 != '') {
			tmp = dd.click(function() {
				swapImageSimple($(this).children().attr('src'));
				return false;
			}).find('img');
			tmp.attr('src', str_replace('$PREVIEW_4$', pic.img_4, tmp.attr('src')));
		} else {
			dd.empty();
		}

		dd = dd.next();
		if (pic.img_5 != '') {
			tmp = dd.click(function() {
				swapImageSimple($(this).children().attr('src'));
				return false;
			}).find('img');
			tmp.attr('src', str_replace('$PREVIEW_5$', pic.img_5, tmp.attr('src')));
		} else {
			dd.empty();
		}

		if (pic.img_preview_small == '')
			$('#wallpaperBox-' + pic.id + ' .iconHolder a').remove();

		$dd.show();
	}
	if (counter == 0) {
		holder.innerHTML = '&nbsp;';
	}

	delayLoadImages();
	bindQuantityUpdate();

	// Load author list.. again
	var $menuLeft = $('td.bt2 .menu .left').html('');
	var authors = $(XML).find('authors > numeric');
	// counter = 0;

	for ( var i = 0; i < Math.round(authors.length / 2); i++) {
		$menuLeft.append(produceAuthorLink(authors[i]));
	}
	var $menuRight = $('td.bt2 .menu .right').html('');
	for ( var i = Math.round(authors.length / 2); i < authors.length; i++) {
		$menuRight.append(produceAuthorLink(authors[i]));
	}

	if ($('td.bt2 .menu a.boldish').length == 0)
		$('td.bt2 .menu a:first').click();

	tb_init('a.thickbox, area.thickbox, input.thickbox');
	// setTimeout("tb_init('a.thickbox');", 1000);
}

function produceAuthorLink(authorXML) {
	var author = {
		id : getXMLvalue(authorXML, 'uid'),
		name : getXMLvalue(authorXML, 'name')
	};
	// console.log(author);
	$a = $("<a></a>").attr('href', '#' + author.name).text(author.name).click(function() {
		selectPhotographer(author.id, $(this));
		return false;
	});
	if (author.id == curPhotographer)
		$a.addClass('boldish');
	return $a;
}

function selectImage(linkObj) {
	var ID = linkObj.id.substr(12);
	// if(console) console.log('Selecting image ID='+ID+'...');
	var f = g('nav_form');
	f.imgID.value = ID;
	f.submit();
}

var originalW, originalH;

function initStep2() {
	var f = g('nav_form');
	originalW = f.width.value;
	originalH = f.height.value;
	handleSizeChange(false);
	setTimeout(function() {
		handleSizeChange(false);
		cropUpToDate = true;
	}, 250);
}

function resizeStuff() {
	handleSizeChange(false);
}

function handleSizeChange(blink) {
	if (g('holder-crop').style.display != 'none')
		resetCropping();

	var f = g('nav_form');
	var w = f.width.value * 1.0;
	var h = f.height.value * 1.0;
	var img = getObjectData(g('thumb_image'));

	g('td_product').innerHTML = tapetname + ' <br />(' + w + 'x' + h + ' cm)';
	// g('td_price').innerHTML = Math.round(price_coef*calcPrice(w, h))+' DKK';
	updatePrice(w, h);

	removeSelections('thumb_image');

	cropUpToDate = false;

	if (w / h < img.w / img.h) {
		addVerticalSelection('thumb_image', w / h);
	} else {
		addHorizontalSelection('thumb_image', h / w);
	}
}

/*
 * function calcPrice(w, h) { return 250+Math.round(240*w*h/10000); }
 */
function updatePrice(w, h) {
	if (!w || !h) {
		var f = g('nav_form');
		var w = f.width.value * 1.0;
		var h = f.height.value * 1.0;
	}
	var id = $('input[name=wallpaper]').val();

	var r = new AjaxRequest('typo3conf/ext/iwshop/extra/AJAX.php?getPrice:wallpaper', 'POST', 'w=' + w + '&h=' + h + '&id=' + id, updatePriceLoader);
	r.send();
}

function updatePriceLoader(XML) {
	g('td_price').innerHTML = getXMLvalue(XML, 'TotalPrice') + afterPriceCurrency;
}

function clickButton(which) {
	var img = getObjectData(g('thumb_image'));
	var f = g('nav_form');
	f.button.value = which;
	if (g('holder-crop').style.display == 'none') {
		f.offset_x.value = (getOffsetX('thumb_image') != -1) ? getOffsetX('thumb_image') / img.w : '';
		f.offset_y.value = (getOffsetY('thumb_image') != -1) ? getOffsetY('thumb_image') / img.h : '';
	}
	// console.log(img);
	// console.log(getOffsetX('thumb_image'), getOffsetY('thumb_image'));
	// console.log(f);
	if (typeof (f.onsubmit) == 'function')
		f.onsubmit();
	f.submit();
}

function increaseSize() {
	changeSize(5);
}

function decreaseSize() {
	changeSize(-5);
}

function changeSize(delta) {
	var f = g('nav_form');
	var w = f.width.value * 1.0;
	var h = f.height.value * 1.0;

	var newW;
	var newH;

	if (w > h) {
		newW = w + delta;
		newH = Math.round((w + delta) * h / w);
	} else {
		newH = h + delta;
		newW = Math.round((h + delta) * w / h);
	}

	if (min(newW, newH) < 20) {
		if (newW < newH) {
			newW = 20;
			newH = Math.round(newW * h / w);
		} else {
			newH = 20;
			newW = Math.round(newH * w / h);
		}
	}
	f.width.value = newW;
	f.height.value = newH;

	cropUpToDate = false;

	handleSizeChange();
}

function applyCrop(x, y) {
	if (g('holder-crop').style.display != 'none')
		return false;

	var img = getObjectData(g('thumb_image'));
	var f = g('nav_form');
	if (typeof (x) == 'undefined')
		x = f.offset_x.value = (getOffsetX('thumb_image') != -1) ? getOffsetX('thumb_image') / img.w : '';
	if (typeof (y) == 'undefined')
		y = f.offset_y.value = (getOffsetY('thumb_image') != -1) ? getOffsetY('thumb_image') / img.h : '';
	var w = g('nav_form').width.value;
	var h = g('nav_form').height.value;
	var id = g('nav_form').wallpaper.value;
	var req = new AjaxRequest('typo3conf/ext/iwshop/extra/AJAX.php?cropWallpaper:' + id + ':' + x + ':' + y + ':' + w + ':' + h, 'GET', '', loadCrop);
	req.send();
}

function loadCrop(XML) {
	cropUpToDate = true;
	removeSelections('thumb_image');
	g('holder-full').style.display = 'none';
	g('nav_form').croppedImage.value = g('crop-img').src = getXMLvalue(XML, 'src');
	g('crop-img').style.border = 'solid 1px black';
	g('holder-crop').style.display = 'block';
}

function resetCropping() {
	g('holder-full').style.display = 'block';
	g('holder-crop').style.display = 'none';
	g('crop-img').style.border = 'none';
	var f = g('nav_form');
	f.croppedImage.value = '';
	f.width.value = originalW;
	f.height.value = originalH;

	handleSizeChange(false);
	cropUpToDate = true;
}

