/* Funkcja zaokrągla wartości liczbowe */

function doRound(x, places) {
  return Math.round(x * Math.pow(10, places)) / Math.pow(10, places);
}

/* Funkcja zwraca wartość FLOAT z obiektuID */

function getPrice(id){

	var obj = document.getElementById(id);
	if(obj){
		var regex = /^([0-9,.]+)$/;
		if( obj.innrHTML != "" ){
			if(regex.test(obj.innerHTML) == true){
				var Price = parseFloat(obj.innerHTML.replace(/,/i, "."));
			}
			else{
				alert(obj.innerHTML);
				return false;				
			}
		}
		else{
			var Price = 0;
		}
	}	
	
	return Price;
}

/* Funkcja obsługuje zmianę wartości kosztów wysyłki w koszyku */

function updateShipingValue(val, id){
	
	var obj_cena_wysylki = document.getElementById('shipmentValue');
	if(obj_cena_wysylki){
		obj_cena_wysylki.innerHTML = val;
	}
	
	var obj_typ_wysylki_src = document.getElementById(id);
	if(obj_typ_wysylki_src){ 
		var typ_wysylki_label = obj_typ_wysylki_src.innerHTML;
	}	
	
	var obj_typ_wysylki = document.getElementById('shipmentTypeValue');
	if(obj_typ_wysylki){ 
		obj_typ_wysylki.innerHTML = typ_wysylki_label;
	}		

	if( document.getElementById('pay-x').checked == true ){
		var pobrania = getPobraniePrise();
	}
	else{
		var pobrania = 0;
	}
	
	payment_prise_value = pobrania.toFixed(2);	
	
	var obj_paymentPrise = document.getElementById('paymentAddValue');
	if(obj_paymentPrise){ 
		obj_paymentPrise.innerHTML = payment_prise_value;
	}
	
	updateTolalPriceValue();
}

/* Funkcja obsługuje zmianę okresów trwania usługi w koszyku */

function updateOkresyValue(val, id, rabat){
	
	var obj_mnoznik = document.getElementById('MnoznikValue');
	if(obj_mnoznik){
		obj_mnoznik.innerHTML = val;
	}
	
	var obj_rabat = document.getElementById('RabatValue');
	if(obj_rabat){
		obj_rabat.innerHTML = rabat;
	}
		
	var obj_okres_src = document.getElementById(id);
	if(obj_okres_src){ 
		var okres_label = obj_okres_src.innerHTML;
	}	
	
	var obj_okres = document.getElementById('OkresValue');
	if(obj_okres){ 
		obj_okres.innerHTML = okres_label;
	}	
	
	updateTolalPriceValue();
}

/* Funkcja aktualizuje cenę "do zapłaty" */

function updateTolalPriceValue(){
	var obj_totalPrise = document.getElementById('totalValue');
	
	var basePrise = getPrice('baseValue');
	var shipingPrise = getPrice('shipmentValue');
	var pobraniePrise = getPrice('paymentAddValue');
	
	var mnoznik = getPrice('MnoznikValue');
	var rabat = getPrice('RabatValue');
	
	var newTotalPrise = basePrise + shipingPrise + pobraniePrise;
	newTotalPrise = newTotalPrise * (mnoznik/100);
	newTotalPrise = newTotalPrise - ((newTotalPrise * rabat) / 100);		
	
	if(obj_totalPrise){
		obj_totalPrise.innerHTML = newTotalPrise.toFixed(2);
	}
}

/* Funkcja aktulizuje info o formie płatności */

function updatePaymentMethod( val, lebel ){
	
	var obj_paymentType_src = document.getElementById(lebel);
	if(obj_paymentType_src){ 
		var payment_label_value = obj_paymentType_src.innerHTML;
	}	
	
	var obj_paymentLabel = document.getElementById('paymentTypeValue');
	if(obj_paymentLabel){ 
		obj_paymentLabel.innerHTML = payment_label_value;
	}			

	var payment_prise_value = 0;
	if(val == 'x'){
		var pobrania = getPobraniePrise();
		payment_prise_value = pobrania.toFixed(2);
	}
	else{
		payment_prise_value = val.toFixed(2);
	}
	
	var obj_paymentPrise = document.getElementById('paymentAddValue');
	if(obj_paymentPrise){ 
		obj_paymentPrise.innerHTML = payment_prise_value;
	}	
	
	updateTolalPriceValue();
	
}

/* Funkcja pobiera wartość opłaty za pobranie dla wybranej opcji wysyłki */

function getPobraniePrise(){
	for (var i = 1; i<shipmentTab.length; i++) {
		var o = shipmentTab[i];
		if (document.getElementById('shippingOption_'+o)) {
			if(document.getElementById('shippingOption_'+o).checked){
				var pobraniePrise = getPrice('pobranie_'+o);
				return pobraniePrise;
			}
		}		
	}
}


/* Funkcja pobiera wartość pola "dokument zakupu" i wstawia go do podsumowania */

function updateShippingDocumentValue(label){
	if( document.getElementById('shippingDocumentValue') ){
		document.getElementById('shippingDocumentValue').innerHTML = label;
	}
}

/* Funkcja sprawdza poprawno¶ć wypełnionego formularza zmiany adresu dostawy */

function sprawdzNewDostawaForm(f){
	
	if( document.getElementById('newDostawaDIV').style.display=='none' ){
		return true;
	}
		
	fv = new formValidator();
	
	fv.raiseNormalInput("name", 'inputText');
	fv.raiseNormalInput("surname", 'inputText');
	fv.raiseNormalInput("city", 'inputText');
	fv.raiseNormalInput("country", 'inputText');
	fv.raiseNormalInput("postal_code", 'inputText');
	fv.raiseNormalInput("address", 'inputText');
	fv.raiseNormalInput("house_number", 'inputText');
	
	if( fv.isEmpty(f.name.value) ){
		fv.raiseError("proszę podać imię");
		fv.raiseInput("name", 'inputText_error');
	}	
	
	if( fv.isEmpty(f.surname.value) ){
		fv.raiseError("proszę podać nazwisko");
		fv.raiseInput("surname", 'inputText_error');
	}		

	if (fv.isEmpty(f.country.value)) {
		fv.raiseError("Proszę wpisać nazwę kraju");
		fv.raiseInput("country", 'inputText_error');
	}
	
	if( fv.isEmpty(f.city.value) ){
		fv.raiseError("proszę podać miejscowo¶ć");
		fv.raiseInput("city", 'inputText_error');
	}	

	if( fv.isEmpty(f.postal_code.value) ){
		fv.raiseError("proszę wpisać kod pocztowy");
		fv.raiseInput("postal_code", 'inputText_error');
	}		
	
	if( fv.isEmpty(f.address.value) ){
		fv.raiseError("proszę wpisać nazwę ulicy");
		fv.raiseInput("address", 'inputText_error');
	}		
	
	if( fv.isEmpty(f.house_number.value) ){
		fv.raiseError("proszę wpisać numer budynku");
		fv.raiseInput("house_number", 'inputText_error');
	}	
	
	if (fv.numErrors() > 0)	{
		fv.displayErrors();
		fv.remarkInputs();
		fv.markInputs();
		return false;
	}
	else {
		return true;
	}	
}

/* Funkcja sprawdza poprawno¶ć wypełnionego formularza zmiany adresu faktury */

function sprawdzNewFakturaForm(f, faktura){
	
	if( document.getElementById('newFakturaDIV').style.display=='none' ){
		return true;
	}
		
	fv = new formValidator();
	
	if(faktura){
	//fv.raiseNormalInput("f_company_name", 'inputText');
	fv.raiseNormalInput("f_NIP", 'inputText');
	}
	fv.raiseNormalInput("f_name", 'inputText');
	fv.raiseNormalInput("f_surname", 'inputText');
	fv.raiseNormalInput("f_city", 'inputText');
	fv.raiseNormalInput("f_country", 'inputText');
	fv.raiseNormalInput("f_postal_code", 'inputText');
	fv.raiseNormalInput("f_address", 'inputText');
	fv.raiseNormalInput("f_house_number", 'inputText');
	
	if(faktura){
	/*if( fv.isEmpty(f.f_company_name.value) ){
		fv.raiseError("proszę podać nazwę firmy");
		fv.raiseInput("f_company_name", 'inputText_error');
	}*/

	if( fv.isEmpty(f.f_NIP.value) ){
		fv.raiseError("proszę podać numer NIP firmy");
		fv.raiseInput("f_NIP", 'inputText_error');
	}
	}
	
	if( fv.isEmpty(f.f_name.value) ){
		fv.raiseError("proszę podać imię");
		fv.raiseInput("f_name", 'inputText_error');
	}	
	
	if( fv.isEmpty(f.f_surname.value) ){
		fv.raiseError("proszę podać nazwisko");
		fv.raiseInput("f_surname", 'inputText_error');
	}		

	if (fv.isEmpty(f.f_country.value)) {
		fv.raiseError("Proszę wpisać nazwę kraju");
		fv.raiseInput("f_country", 'inputText_error');
	}
	
	if( fv.isEmpty(f.f_city.value) ){
		fv.raiseError("proszę podać miejscowo¶ć");
		fv.raiseInput("f_city", 'inputText_error');
	}	

	if( fv.isEmpty(f.f_postal_code.value) ){
		fv.raiseError("proszę wpisać kod pocztowy");
		fv.raiseInput("f_postal_code", 'inputText_error');
	}		
	
	if( fv.isEmpty(f.f_address.value) ){
		fv.raiseError("proszę wpisać nazwę ulicy");
		fv.raiseInput("f_address", 'inputText_error');
	}		
	
	if( fv.isEmpty(f.f_house_number.value) ){
		fv.raiseError("proszę wpisać numer budynku");
		fv.raiseInput("f_house_number", 'inputText_error');
	}	
	
	if (fv.numErrors() > 0)	{
		fv.displayErrors();
		fv.remarkInputs();
		fv.markInputs();
		return false;
	}
	else {
		return true;
	}	
}

function sprawdzComplitedForm(f, faktura){

	if(!confirm('czy na pewno chcesz wykonać tę czynno¶ć?')){
		return false;
	}
	
	var dostawaForm = sprawdzNewDostawaForm(f);
	var fakturaForm = sprawdzNewFakturaForm(f, faktura);
	
	if(dostawaForm == true && fakturaForm == true){
		f.submit();
	}
	else{
		return false;	
	}
		
}
