//
// The Webshop Store tws.js v1, Sat Jan 13 15:02:00 CET 2007
// Copyright (c) 2007 Christophe Van Durme (http://www.thewebshopstore.eu, http://www.lithium.be)
//

function CheckVAT(field){
	
	VatCode = document.getElementById(field+'[code]').value;
	VatNr = document.getElementById(field+'[nr]').value;
	
	if (VatCode && VatNr) 
		if (!checkVATNumber(VatCode + VatNr)){
			  alert ("VAT number has invalid format");
			  document.getElementById(field+'[nr]').value = '';
			  document.getElementById(field+'[nr]').focus();
		}
	
}


function ChangeNews(id){
	new Ajax.Updater('news_content', "news/ajax/item.php?n="+id)
}

function CheckQuantity(field){
	
	var quantity = document.getElementById(field).value;
	
	if (quantity>1) {
	} else {
		alert(WrongQuantity);
		document.getElementById(field).value = '';
	}
	
}

function ChooseClosure(id){
	
	document.getElementById('closure').value = id;
	hideLightbox();
	document.getElementById('formulier').submit();
}


function ToggleSubmenu (div,id,effect){
	var display = document.getElementById(div+'_'+id).style.display;
	var title, sign;
	
	if (display=='none'){
		title = HideSubmenu;
		sign = '[-]';
	} else {
		title = ShowSubmenu;
		sign = '[+]';
	}
		
	document.getElementById('submenu_toggler_'+id).title = title;
	document.getElementById('submenu_toggler_'+id).innerHTML = sign;
	
	Effect.toggle(div+'_'+id,effect);
}

function animate(properties) {
	// Variables
	var _steps = (properties.duration * 1000) / 50,
		_element,
		_i = 0;

	// If we haven't started yet, the current step is 1
	if (!properties.step) {
		properties.step = 1;
	}

	// Process all the elements in this animation
	while ((_element = properties.elements[_i++])) {
		if (!_element.currentValue) {
			_element.currentValue = _element.startValue;
		}

		// What change should be made to the currentValue during each step?
		if (!_element.change) {
			if (_element.startValue < _element.endValue) {
				_element.change = "_element.currentValue + " + (_element.endValue - _element.startValue) / _steps;
			} else if (_element.startValue > _element.endValue) {
				_element.change = "_element.currentValue - " + (_element.startValue - _element.endValue) / _steps;
			}
		}
		
		// Calculate the new current value
		_element.currentValue = eval(_element.change);

		// Apply the new value
		_element.domNode.style[_element.styleRule] = (_element.preFix ? _element.preFix : "") + (properties.step == _steps ? _element.endValue : _element.currentValue) + (_element.postFix ? _element.postFix : "");
	}

	// As long as we haven't finished, set a new timeout
	if (properties.step < _steps) {
		properties.step++;

		setTimeout(function() {
			animate(properties);
		}, 50);
	}
}

function specDescription(element, description, event) {
	// Cross-browser event handling
	event = event || window.event;

	// Box
	var _box = document.createElement("div");
	_box.className = "specdescription";

	// Title
	var _heading = document.createElement("h4");
	_heading.appendChild(document.createTextNode(description.title));
	_box.appendChild(_heading);

	// Text
	var _description = document.createElement("p");
	_description.appendChild(document.createTextNode(description.text));
	_box.appendChild(_description);

	// Table
	if (description.table) {
		var _table = document.createElement("table"),
			_tbody = document.createElement("tbody"),
			_tr, _td;

		for (var _row in description.table) {
			_tr = document.createElement("tr");

			for (var _cell in description.table[_row]) {
				_td = document.createElement("td");
				_td.appendChild(document.createTextNode(description.table[_row][_cell]));
				_tr.appendChild(_td);
			}

			_tr.appendChild(_td);
			_tbody.appendChild(_tr);
		}

		_table.appendChild(_tbody);
		_box.appendChild(_table);
	}

	// Position
	_box.style.top = (event.pageY ? event.pageY : event.clientY + document.documentElement.scrollTop + document.body.scrollTop) + 0 + "px";
	_box.style.left = (event.pageX ? event.pageX : event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft) + (-180) + "px";

	// Fade in
	animate({
		duration : 0.2,
		elements : [
			{
				domNode : _box,
				styleRule : 'opacity',
				startValue : 0,
				endValue : 1
			},
			
			{
				domNode : _box,
				styleRule : 'filter',
				startValue : 0,
				preFix : 'alpha(opacity=',
				postFix : ')',
				endValue : 100
			}
		]
	});

	// Set mouseout handler
	element.onmouseout = function() {
		_box.style.visibility = "hidden"; // Opera fix
		_box.parentNode.removeChild(_box);
	}

	// Add the box to the DOM
	document.getElementById("wrapper").appendChild(_box);
}