/*
---

name: Hoka

description: Hoka site dynamics.

license: MIT license.

provides: Hoka

...
*/

var full;

function showArticle(){
	$$('.clickme').removeClass('active');
	this.addClass('active');

	var div = this.getParent().getElement('.order'),
		form = div.getElement('form');

	var imgcount = 0,
		imglist = full.getElement('.fullimgnav').getElement('tr');

	imglist.getElements('.fullimgnavlink').destroy();

	form.getElements('input, textarea, select').each(function(element){

		var name = element.get('name'),
			value = element.get('value');

		switch(name){

			case 'available':
				if (value == 1 || value == 3){
					if(document.id('fullforms')) document.id('fullforms').show();
					document.id('fullstatus').hide();
				} else {
					if(document.id('fullforms')) document.id('fullforms').hide();
					document.id('fullstatus').show();
				}
			break;

			case 'artid':
				full.getElements('.' + name).set('value', value);
			break;

			case 'name':
			case 'description':
			case 'price':
			case 'price_remark':
				full.getElements('.' + name).set('html', value);
			break;

			case 'images[]':
				if (imgcount++ == 0) full.getElement('.viewimg').set('src', value);
				var td = new Element('td', {
					'class': 'fullimgnavlink'
				}).adopt(
					new Element('a', {
						image: value,
						html: imgcount,
						events: {
							click: switchImage
						}
					})
				).inject(imglist);
			break;

		}

		full.getElements('.amount').set('value', 1);
	});
}

function switchImage(){
	full.getElement('.viewimg').set('src', this.get('image'));
}

function showImage(){
	var showbigimg = document.id('showbigimg'),
		img = full.getElement('.viewimg').get('src');

	showbigimg.getElement('img').set('src', img);
	showbigimg.show();
}

function hideImage(){
	document.id('showbigimg').hide();
}

function sendOrder(event){
	if (event) event.stop();

	var req = new Request({
		url: '/nl/cart.php',
		method: 'get',
		data: document.id(this.form).toQueryString() + '&order=1',
		onSuccess: function(response){
			var data = JSON.decode(response);
			$$('.cartnumber').set('html', data.number);
			$$('.cartprice').set('html', data.price);

			var messages = $('messages');
			if (messages){
				var message = new Element('div', {
					'class': 'message',
					text: 'Product is aan uw winkelwagen toegevoegd.',
					styles: {opacity: 0}
				});
				message.inject(messages).tween('opacity', 1);
				(function(){ message.get('tween').start('opacity', 0).chain(function(){ message.destroy(); }) }).delay(2000);
			}

			var overview = document.id('overview');
			if (overview) overview.highlight('#ffffff', '#cf1472');
		}
	});
	req.send();
}

function addToFavorites(event){
	if (event) event.stop();

	var req = new Request({
		url: '/nl/favorieten.php',
		method: 'get',
		data: document.id(this.form).toQueryString() + '&addarticle=1',
		onSuccess: function(response){
			var favoriteslink = document.id('favoriteslink');
			if (favoriteslink) favoriteslink.highlight('#00c0ae', '#cf1472');
		}
	});
	req.send();
}

function autoSubmit(event){
	if (this === window) event.target.submit();
	else this.form.submit();
}

function confirmEmpty(event){
	if (!confirm('Wilt u daadwerkelijk uw winkelkagen leegmaken?')) event.stop();
}

window.addEvent('domready', function(){

	var full = this.full = document.getElement('.fullview');

	if (full){
		if (document.getElement('.carttable')){
			var thumbs = $$('.clickme');
			thumbs.addEvent('click', switchImage);
			thumbs[0].addClass('active');
		} else {
			var thumbs = $$('.clickme');
			thumbs.addEvent('click', showArticle);
			thumbs[0].addClass('active');

			full.getElements('.fullimgnavlink').addEvent('click', switchImage);
			full.getElement('.bigimg').getElement('a').addEvent('click', showImage);
			document.id('showbigimg').getElement('a').addEvent('click', hideImage);
		}
	}

	$$('.orderbutton, .fullorderbutton').addEvent('click', sendOrder);

	$$('.favoritesbutton').addEvent('click', addToFavorites);

	$$('.autosubmit').each(function(element){
		element.addEvent('change', function(event){
			this.form.adopt(
				new Element('input', {
					type: 'hidden',
					name: 'autosubmit',
					value: '1'
				})
			).submit();
		});
		if (element.get('type') == 'readio'){
			element.addEvent('click', function(){
				this.blur();
			});
		}
	});

	$$('.killorder').addEvent('keydown', function(){
		document.id('submitorder').hide();
	});

	var empty = document.id('empty');
	if (empty) empty.addEvent('click', confirmEmpty);

	var overview = document.id('overview');
	if (overview) overview.set('tween', {duration: 1000});

	var favoriteslink = document.id('favoriteslink');
	if (favoriteslink) overview.set('tween', {duration: 1000});

	var elements = $$('.articlelist').getElements('img.clickme').filter(function(element){
		return (/[^\s,]$/).test('' + element.get('data-title') + element.get('data-text'));
	});

	new Tips(elements, {
		showDelay: 0,
		title: 'data-title',
		text: 'data-text',
		windowPadding: {y: -130}
	});

	var messages = $('messages');
	if (messages) messages.setStyle('top', window.getScroll().y).pin();

});

