/* VALIDATION */

function validateQuantity()
{
	var qval = parseInt(jQuery('.input_quantity').val());
	if ((qval == 0) || isNaN(qval))
	{
		var img = '<img src="fileadmin/templates/html/media/validate_fail.png" class="validate_fail validate_fail_q" alt="fail" style="top:-17px; left:95px;"/>';
		jQuery('#cartbox').append(img);	
		return false;
	}
	else
	{
		jQuery('.validate_fail_q').remove();
	}
}
function validateOS()
{
	var oval = parseInt(jQuery('.select_os').val());
	if ((oval == 0) || isNaN(oval))
	{
		var img = '<img src="fileadmin/templates/html/media/validate_fail.png" class="validate_fail validate_fail_o" alt="fail" style="top:15px; left:193px;" />';
		jQuery('#cartbox').append(img);	
		return false;
	}
	else
	{
		jQuery('.validate_fail_o').remove();
	}
}

jQuery(document).ready(function(){
	jQuery('.input_quantity').keyup(function()
	{
		validateQuantity();
	});
	jQuery('.select_os').change(function()
	{
		validateOS();
	});
});

/* SUBMIT CART */

function submitcart()
{
	var error = false;
	if (validateQuantity() == false)
	{
		error = true;
	}
	if (validateOS() == false)
	{
		error = true;
	}
	if (error == false)
	{
		var form = jQuery('#cart');
		gather(form);
		form.submit();
	}
}


/* FORM GENERATION */
function pr(str)
{
	document.writeln(str);
}
var eur = '€';//'\u20AC';
var dol = '$';
function formatEuro(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num)) num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10) cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+'.'+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + eur +' '+ num + ',' + cents);
}
function formatDollar(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num)) num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10) cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+'.'+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + dol +' '+ num + ',' + cents);
}

var prods = {};

jQuery(window).load(function(){
	if (getLang() == 'jp')
	{
		jQuery('#cart').remove();
	}
	else
	{
		for (var i=0;i<produktIDs.length;i++)
		{
			for (var j = 0; j < produktIDs[i]['products'].length; j++) 
			{
				for (var k = 0; k < produktIDs[i]['products'][j]['subprods'].length; k++) 
				{
					if (produktIDs[i]['products'][j]['subprods'][k] != undefined)
					{
						prods[produktIDs[i]['products'][j]['subprods'][k][0]] = produktIDs[i]['products'][j]['subprods'][k]; 
					}			
				}
				updatePreis(i,j);
			}	
		}
		sumUp();
	}
});

function updatePreis(i,j)
{
	var preisCell = jQuery('#preis_'+i+'_'+j);
	var prod = jQuery('#prod_'+i+'_'+j).val();
	var preisDollar = (prods[prod]) ?  prods[prod][3] : 0;
	var preisEuro = (prods[prod]) ?  prods[prod][2] : 0;
	var anz = parseInt(jQuery('#anz_'+i+'_'+j).val(), 10);
	preisCell.html(formatDollar(preisDollar * anz)+'<br/>'+formatEuro(preisEuro * anz));
	if (preisCell[0]){
		preisCell[0].betragDollar = preisDollar * anz;
		preisCell[0].betragEuro = preisEuro * anz;	
	}

	sumUp();
}
function sumUp()
{
	var gesamtEuro = 0;
	var gesamtDollar =0;
	jQuery('.shop_preis').each(function(){
		if (this.betragEuro) gesamtEuro += this.betragEuro;
		if (this.betragDollar) gesamtDollar += this.betragDollar;
	});
	
	jQuery('#shop_gesamt').html(formatDollar(gesamtDollar) +'<br />'+formatEuro(gesamtEuro));
}

function gather(form) {
	var prod, anz;
	for (var i=0;i<produktIDs.length;i++)
	{
		for (var j = 0; j < produktIDs[i]['products'].length; j++) 
		{
			anz = parseInt(jQuery('#anz_'+i+'_'+j).val(), 10);
			if (!anz) continue;
			prod = jQuery('#prod_'+i+'_'+j).val();
			jQuery(form).append('<input type="hidden" name="PRODUCT['+prod+']" value="'+anz+'" />');
		}	
	}
	
	return true;
};

var cat, products, name, subprods, subprod, quantity;
for (var i=0;i<produktIDs.length;i++)
{
	cat = produktIDs[i];
	products = cat.products;
	pr('\n');
	for (var j=0;j<products.length;j++)
	{
		name = products[j].name;
		subprods = products[j].subprods;
		/* ANZAHL */
		pr('<label for="input_quantity">Quantity:</label><input type="text" id="anz_'+i+'_'+j+'" class="input_quantity" value="1" onkeyup="updatePreis('+i+','+j+')" />');
		/* SUBPROD */
		pr('<label for="select_os">OS:</label><select class="select_os" id="prod_'+i+'_'+j+'" onchange="updatePreis('+i+','+j+')">');
			for (var k=0;k<subprods.length;k++)
			{
				subprod = subprods[k];
				if (subprod != undefined)
				{
					pr('<option value="'+subprod[0]+'">'+subprod[1]+'</option>');
				}
			}
		pr('</select>')
		pr('<p id="preis_'+i+'_'+j+'" class="total">$ 0,00<br/>€ 0,00</p>');
	}
}
