var PD = function () {
    var MEDIA_URL = 'http://media.batohy-online.cz/';
	var ATCLabel = '', SFLLabel = '', TWLLabel = '';
	var gallery = function() {
		var pid = 0, position = 0, maxPosition = 0,
		galleryListCallback = {
			success: function (o) {
				updateThumbnails(YAHOO.lang.JSON.parse(o.responseText));

			}, 
			failure: function (o) {
			}
		};

		function updateThumbnails(img_paths) {
			var i = 0, img;
			var imgs = YAHOO.util.Dom.getElementsByClassName('b', 'a');
			for (i = 0; i < imgs.length; i++) {
				img = imgs[i].childNodes[0];
				if (img_paths.length > i) {
					img.src = MEDIA_URL + '/common/tn7/' + img_paths[i];
				} else {
					img.src = MEDIA_URL + '/img/empty_thumbnail.gif';
				}
			}
		}

		return {
			updateArrows: function() {
				if (position + 2 > maxPosition) {
					YAHOO.util.Dom.get('g_r').childNodes[0].src = MEDIA_URL + '/img/no_arrow.gif';
				} else {
					YAHOO.util.Dom.get('g_r').childNodes[0].src = MEDIA_URL + '/img/right_arrow.gif';
				}
				if (position == 0) {
					YAHOO.util.Dom.get('g_l').childNodes[0].src = MEDIA_URL + '/img/no_arrow.gif';
				} else {
					YAHOO.util.Dom.get('g_l').childNodes[0].src = MEDIA_URL + '/img/left_arrow.gif';
				}
			}, 
			previous: function (ev) {
				YAHOO.util.Event.stopEvent(ev);
				if (position >= 2) {
					position -= 2; 
					YAHOO.util.Connect.asyncRequest('GET', '/gallery/list/' + pid + '/' + position + '/?' + Math.random(), galleryListCallback, null);
				}
				gallery.updateArrows();
			}, 
			next: function (ev) {
				YAHOO.util.Event.stopEvent(ev);
				if (position < maxPosition) {
					position += 2;
					YAHOO.util.Connect.asyncRequest('GET', '/gallery/list/' + pid + '/' + position + '/?' + Math.random(), galleryListCallback, null);
				}
				gallery.updateArrows();
			}, 
			thumbnailClick: function (ev) {
				var target = YAHOO.util.Event.getTarget(ev);
				YAHOO.util.Event.stopEvent(ev);
				if (target.src.indexOf('empty_thumbnail.gif') == -1) {
					YAHOO.util.Dom.get('gm').src = target.src.replace(/\/tn7\//, '/tn6/');
					YAHOO.util.Dom.get('gm').parentNode.href = target.src.replace(/\/tn7\//, '/');
				}
			},
			setMaxPos: function (pos) {
				maxPosition = pos;
			}, 
			setPID: function (id) {
				pid = id;
			}
		};
	}();

	function addToCartClick(ev) {
		YAHOO.util.Event.stopEvent(ev);
		YAHOO.util.Dom.get('pss').submit();
	}

	function wishlistClick(ev) {
		YAHOO.util.Event.stopEvent(ev);
		var input = document.createElement('input');
		input.type = 'hidden';
		input.name = 'twl';
		input.value = '1';
		YAHOO.util.Dom.get('pss').appendChild(input);
		YAHOO.util.Dom.get('pss').submit();
	}
	
	function shoppingListClick(ev) {
		YAHOO.util.Event.stopEvent(ev);
		var input = document.createElement('input');
		input.type = 'hidden';
		input.name = 'sfl';
		input.value = '1';
		YAHOO.util.Dom.get('pss').appendChild(input);
		YAHOO.util.Dom.get('pss').submit();
	}
	
	function createButtons() {
		var db = YAHOO.util.Dom.getElementsByClassName('detail_buttons', 'div')[0];
		var bdata = [{className: 'sfl', innerHTML: SFLLabel, handler: shoppingListClick}, {className: 'twl', innerHTML: TWLLabel, handler: wishlistClick}, {className: 'atc', innerHTML: ATCLabel, handler: addToCartClick}];
		var button; 

		for (var i = 0; i < bdata.length; i++) {
			if (bdata[i].innerHTML != '') {
				button = document.createElement('a');
				button.href = '#';
				button.className = bdata[i].className;
				button.innerHTML = bdata[i].innerHTML;
				db.insertBefore(button, db.childNodes[0]);
				YAHOO.util.Event.addListener(button, 'click', bdata[i].handler);
			}
		}
	}

	return {
		init: function () {
			if (YAHOO.util.Dom.get('g_l')) {
				YAHOO.util.Dom.get('g_l').childNodes[0].src = MEDIA_URL + '/img/left_arrow.gif';
				YAHOO.util.Dom.get('g_r').childNodes[0].src = MEDIA_URL + '/img/right_arrow.gif';

				YAHOO.util.Event.addListener('g_l', 'click', gallery.previous);
				YAHOO.util.Event.addListener('g_r', 'click', gallery.next);
				YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('b', 'a'), 'click', gallery.thumbnailClick);
				gallery.updateArrows();
			}
			createButtons();
		}, 
		setMaxPos: function (pos) {
			gallery.setMaxPos(pos);
		}, 
		setPID: function (id) {
			gallery.setPID(id);
		}, 
		setATCLabel: function (label) {
			ATCLabel = label;
		}, 
		setTWLLabel: function (label) {
			TWLLabel = label;
		}, 
		setSFLLabel: function (label) {
			SFLLabel = label;
		}
	};
}();

YAHOO.util.Event.onDOMReady(PD.init);

