/******************************************************************************	
 *	Author:  Petr Such� (xsuchy09) <xsuchy09@gmail.com>
 *	Subject:  CMS
 *	Copyright: Petr Such� (xsuchy09)
 ******************************************************************************	
 *	SVN info
 ******************************************************************************
 *	$Author: xsuchy09 $
 *	$Date: 2009-04-23 00:55:42 +0200 (čt, 23 IV 2009) $
 *	$Revision: 325 $
 *	$Id: basic.js 325 2009-04-22 22:55:42Z xsuchy09 $
 ******************************************************************************/

/**
 * Přepnutí menu modulu Katalog v levém bloku webu.
 * @param id_left_menu_1 ID HTML elementu prvního menu.
 * @param id_left_menu_2 ID HTML elementu druhého menu.
 * @return void
 */
function switchLeftMenu(id_switch_menu_selected, id_switch_menu_unselected, id_left_menu_selected, id_left_menu_unselected) {
	document.getElementById(id_switch_menu_selected).className = 'selected';
	document.getElementById(id_switch_menu_unselected).className = '';
	document.getElementById(id_left_menu_selected).style.display = 'block';
	document.getElementById(id_left_menu_unselected).style.display = 'none';
}

/**
 * Kalkulace ceny dle vyplnění formuláře přidání zboží do košíku.
 * @param float price Cena za měrnou jednotku s DPH.
 * @param float priice_without_vat Cena za měrnou jednotku bez DPH.
 * @param int box_unit Počet měrných jednotek v krabici.
 * @param int pallet_unit Počet měrných jednotek v paletě.
 * @param string unit Měrná jednotka (její zkratka).
 * @return void
 */
function calculatePrice(price, price_without_vat, box_unit, pallet_unit, unit, zero_denied) {
	if (unit == 'm2') {
		// krabice a palety
		price = parseFloat(price);
		price_without_vat = parseFloat(price_without_vat);
		box_unit = parseFloat(box_unit);
		pallet_unit = parseFloat(pallet_unit);
		order_box = document.getElementById('order_box');
		order_pallet = document.getElementById('order_pallet');
		var order_box_count = parseInt(document.getElementById('order_box_count').value);
		var order_pallet_count = parseInt(document.getElementById('order_pallet_count').value);
		order_count_unit = document.getElementById('order_count_unit');
		order_price_without_vat = document.getElementById('order_price_without_vat');
		order_price_with_vat = document.getElementById('order_price_with_vat');
		
		var result_unit_count = 0;
		var result_price_without_vat = 0;
		var result_price_with_vat = 0;
		
		if (order_pallet.checked == true) {
			order_box.checked = false;
			if (zero_denied == true) {
				if (order_pallet_count == 0) {
					order_pallet_count = 1;
					document.getElementById('order_pallet_count').value = order_pallet_count;
				}
			}
			result_unit_count = order_pallet_count * pallet_unit;
		} else {
			order_box.checked = true;
			if (zero_denied == true) {
				if (order_box_count == 0) {
					order_box_count = 1;
					document.getElementById('order_box_count').value = order_box_count;
				}
			}
			result_unit_count = order_box_count * box_unit;
		}
		result_price_without_vat = price_without_vat * result_unit_count;
		result_price_with_vat = price * result_unit_count;
		unit = 'm<sup style="font-size:60%;">2</sup>';
	} else {
		// kusy a krabice
		price = parseFloat(price);
		price_without_vat = parseFloat(price_without_vat);
		box_unit = parseFloat(box_unit);
		order_box = document.getElementById('order_box');
		order_count = document.getElementById('order_count');
		var order_box_count = parseInt(document.getElementById('order_box_count').value);
		var order_unit_count = parseInt(document.getElementById('order_unit_count').value);
		order_count_unit = document.getElementById('order_count_unit');
		order_price_without_vat = document.getElementById('order_price_without_vat');
		order_price_with_vat = document.getElementById('order_price_with_vat');
		
		var result_unit_count = 0;
		var result_price_without_vat = 0;
		var result_price_with_vat = 0;
		
		if (order_box.checked == true) {
			order_count.checked = false;
			if (zero_denied == true) {
				if (order_box_count == 0) {
					order_box_count = 1;
					document.getElementById('order_box_count').value = order_box_count;
				}
			}
			result_unit_count = order_box_count * box_unit;
		} else {
			order_count.checked = true;
			if (zero_denied == true) {
				if (order_unit_count == 0) {
					order_unit_count = 1;
					document.getElementById('order_unit_count').value = order_unit_count;
				}
			}
			result_unit_count = order_unit_count;
		}
		result_price_without_vat = price_without_vat * result_unit_count;
		result_price_with_vat = price * result_unit_count;
	}
	result_unit_count = Number(result_unit_count).toFixed(2);
	if (result_unit_count == 'NaN') {
		result_unit_count = 0;
		result_price_without_vat = 0;
		result_price_with_vat = 0;
	}
	order_count_unit.innerHTML = String(result_unit_count).replace('.', ',') + ' ' + unit;
	order_price_without_vat.innerHTML = printPrice(result_price_without_vat);
	order_price_with_vat.innerHTML = printPrice(result_price_with_vat);
}


function changeBoxAndPalleteCount(unit_count, unit_box, unit_pallet) {
	if (unit_box != 0) {
		if (document.getElementById('order_box_count') != null) {
			var box_count = Number(parseFloat(parseFloat(unit_count) / parseFloat(unit_box))).toFixed(3);
			if (box_count == 'NaN') {
				box_count = 0;
			} else {
				box_count = Math.ceil(box_count);
			}
			document.getElementById('order_box_count').value = box_count;
		}
	}
	if (unit_pallet != 0) {
		if (document.getElementById('order_pallet_count') != null) {
			var pallet_count = Number(parseFloat(parseFloat(unit_count) / parseFloat(unit_pallet))).toFixed(3);
			if (pallet_count == 'NaN') {
				pallet_count = 0;
			} else {
				pallet_count = Math.ceil(pallet_count);
			}
			document.getElementById('order_pallet_count').value = pallet_count;
		}
	}
}

/**
 * Pri objednani hlidani nuly.
 * @return boolean
 */
function zeroDenied() {
	order_box = document.getElementById('order_box');
	order_pallet = document.getElementById('order_pallet');
	order_unit = document.getElementById('order_count');
	if (order_box.checked == true) {
		if (parseInt(document.getElementById('order_box_count').value) == 0) {
			alert('Nelze objednať 0 krabic.');
			return false;
		}
	} else if (order_pallet != null && order_pallet.checked == true) {
		if (parseInt(document.getElementById('order_pallet_count').value) == 0) {
			alert('Nelze objednať 0 palet.');
			return false;
		}
	} else if (order_unit != null && order_unit.checked == true) {
		if (parseInt(document.getElementById('order_unit_count').value) == 0) {
			alert('Nelze objednať 0 kusov.');
			return false;
		}
	} else {
		return false;
	}
	return true;
}


/**
 * Kontroluje, zda jsou vkládána jen čísla.
 * @param element HTML element.
 * @return void
 */
function onlyNumbers(element, allow_float) {
	var dec_point = false;
	for (var i = 0; i < element.value.length; i++) {
		if (isNaN(element.value[i]) == true) {
			if (allow_float == true && (element.value[i] == '.' || element.value[i] == ',') && dec_point == false) {
				dec_point = true;
				element.value = element.value.replace(',', '.');
			} else {
				element.value = element.value.substr(0, i);
			}
		}
	}
	if (element.value.length === 0) {
		//element.value = 1;
	}
}


/**
 * Funkce pro změnu ceny u košíku.
 * @param [float] price_without_tax Celková cena za zboží bez daně.
 * @param [float] price_tax Celková výše daně za zboží.
 * @param [float] price_with_tax Celková cena za zboží včetně daně.
 * @param [float] delivery_price_without_tax Cena za dopravu bez daně.
 * @param [float] delivery_price_tax Daň za dopravu.
 * @param [float] delivery_price_with_tax Cena za dopravu včetně daně.
 * @return void
 */
function changeDeliveryPrice(price_without_tax, price_tax, price_with_tax, delivery_price_without_tax, delivery_price_tax, delivery_price_with_tax) {
	var payment_price_without_tax = document.getElementById('payment_price_without_tax').innerHTML;
	var payment_price_tax = document.getElementById('payment_price_tax').innerHTML;
	var payment_price_with_tax = document.getElementById('payment_price_with_tax').innerHTML;
	
	payment_price_without_tax = payment_price_without_tax.replace(',', '.');
	payment_price_without_tax = parseFloat(payment_price_without_tax.replace('/\s/g', ''));
	payment_price_tax = payment_price_tax.replace(',', '.');
	payment_price_tax = parseFloat(payment_price_tax.replace('/\s/g', ''));
	payment_price_with_tax = payment_price_with_tax.replace(',', '.');
	payment_price_with_tax = parseFloat(payment_price_with_tax.replace('/\s/g', ''));
	
	document.getElementById('delivery_price_without_tax').innerHTML = printPrice(delivery_price_without_tax, false);
	document.getElementById('delivery_price_tax').innerHTML = printPrice(delivery_price_tax, false);
	document.getElementById('delivery_price_with_tax').innerHTML = printPrice(delivery_price_with_tax, false);
	
	document.getElementById('total_price_without_tax').innerHTML = printPrice(price_without_tax + delivery_price_without_tax + payment_price_without_tax, false);
	document.getElementById('total_price_tax').innerHTML = printPrice(price_tax + delivery_price_tax + payment_price_tax, false);
	document.getElementById('total_price_with_tax').innerHTML = printPrice(price_with_tax + delivery_price_with_tax + payment_price_with_tax, false);
}


/**
* Funkce pro změnu ceny u košíku.
* @param [float] price_without_tax Celková cena za zboží bez daně.
* @param [float] price_tax Celková výše daně za zboží.
* @param [float] price_with_tax Celková cena za zboží včetně daně.
* @param [float] delivery_price_without_tax Cena za dopravu bez daně.
* @param [float] delivery_price_tax Daň za dopravu.
* @param [float] delivery_price_with_tax Cena za dopravu včetně daně.
* @return void
*/
function changePaymentPrice(price_without_tax, price_tax, price_with_tax, payment_price_without_tax, payment_price_tax, payment_price_with_tax) {
	var delivery_price_without_tax = document.getElementById('delivery_price_without_tax').innerHTML;
	var delivery_price_tax = document.getElementById('delivery_price_tax').innerHTML;
	var delivery_price_with_tax = document.getElementById('delivery_price_with_tax').innerHTML;
	
	delivery_price_without_tax = delivery_price_without_tax.replace(',', '.');
	delivery_price_without_tax = parseFloat(delivery_price_without_tax.replace('/\s/g', ''));
	delivery_price_tax = delivery_price_tax.replace(',', '.');
	delivery_price_tax = parseFloat(delivery_price_tax.replace('/\s/g', ''));
	delivery_price_with_tax = delivery_price_with_tax.replace(',', '.');
	delivery_price_with_tax = parseFloat(delivery_price_with_tax.replace('/\s/g', ''));
	
	document.getElementById('payment_price_without_tax').innerHTML = printPrice(payment_price_without_tax, false);
	document.getElementById('payment_price_tax').innerHTML = printPrice(payment_price_tax, false);
	document.getElementById('payment_price_with_tax').innerHTML = printPrice(payment_price_with_tax, false);
	
	document.getElementById('total_price_without_tax').innerHTML = printPrice(price_without_tax + payment_price_without_tax + delivery_price_without_tax, false);
	document.getElementById('total_price_tax').innerHTML = printPrice(price_tax + payment_price_tax + delivery_price_tax, false);
	document.getElementById('total_price_with_tax').innerHTML = printPrice(price_with_tax + payment_price_with_tax + delivery_price_with_tax, false);
}


/**
 * Vypíše cenu v požadovaném formátu.
 * @param float price
 * @param boolean currency Pokud false, není vypisována měna.
 * @return string Naformátovaná cena.
 */
function printPrice(price, currency) {
	// integer a decimals
	var price_integer = parseInt(price);
	price_integer = String(price_integer);
	
	price = Number(price).toFixed(2);
	price = String(price).replace('.', ',');
	
	if (price_integer.length > 3) {
		switch (price_integer.length) {
			case 4:
				price = price.substr(0, 1) + '.' + price.substr(1);
				break;
			case 5:
				price = price.substr(0, 2) + '.' + price.substr(2);
				break;
			case 6:
				price = price.substr(0, 3) + '.' + price.substr(3);
				break;
		}
	}
	
	if (currency == false) {
		return price;
	} else {
		return price + ' €';
	}
}

function toggleVisibility(id) {
	if(document.getElementById(id).style.display == 'none'){
		document.getElementById(id).style.display = '' ;
	} else	{
		document.getElementById(id).style.display = 'none';
	}
}

