// fce pro order_inc.asp

//	trDRsazba_....  radek danova sazba
//	tdDRbase_.....  bunka suma bez dph pro danou sazbu dph    (po sleve + doprava)
//	tdDRdph_.....   bunka suma dph pro danou sazbu dph
//	tdDRsum_.....   bunka suma s dph pro danou sazbu dph
//	trDRround       radek zaokrouhleni
//	tdDRround       bunka zaokrouhleni
//	tdDRbase        bunka soucet vsech tdDRbase_...
//	tdDRdph         bunka soucet vsech tdDRdph_...
//	tdDRsum         bunka soucet vsech tdDRsum_...
//	tdDRSumToPay		bunka celková částka v rekapitulaci k zaplaceni

//	ValueTAX_...    hidden suma bez dph pro danou sazbu dph (po sleve bez dopravy)
//	DeliveryPrice   hidden cena dopravy
//	DeliveryDPH     hidden vyse DPH u zvolene dopravy

//	tdDelItemName				název dopravy
//	tdDelItemPrice			cena dopravy
//	tdDelItemDPH				sazba DPH dopravy
//	tdDelItemPriceDPH		cena dopravy včetně DPH
		
//	nSumPriceDPH		celková cena s DPH
//	nSumPriceNoDPH	celkova cena bez DPH

function UpdateDeliveryPriceOnOrder(IdNewDelivery) {

	var nPrice, nDPH, nPriceSum;

    if ( !getE('DeliveryPrice') || !getE('DeliveryPrice_'+IdNewDelivery)) {alert('Došlo k nečekané chybě');return false;}
    
    // -- puvodni hodnoty
    var nPriceDelivery_Old = ConvertToNum( getE('DeliveryPrice').value );
    var nDPHDelivery_Old   = ConvertToNum( getE('DeliveryDPH').value );
    // -- nove hodnoty
    var nPriceDelivery     = ConvertToNum( getE('DeliveryPrice_'+IdNewDelivery).value );
    var nDPHDelivery       = ConvertToNum( getE('DeliveryDPH_'+IdNewDelivery).value );
    var sNameDelivery      = getE('DeliveryName_'+IdNewDelivery).value;
    
    // zapis novych hodnot do hidden
    getE('DeliveryPrice').value = nPriceDelivery;
    getE('DeliveryDPH').value   = nDPHDelivery
    getE('DeliveryName').value  = sNameDelivery
 
    //prepocet radku rekapitulace -> pro puvodni sazbu DPH u dopravy
    nPrice = 0;
    if (nDPHDelivery_Old == nDPHDelivery) nPrice =  nPriceDelivery;
    ReSazba(nDPHDelivery_Old, nPrice)
    
    // pokud je sazba dph u dopravy pred a po zmene ruzna je treba prepocitat jeste novy radek
    if (nDPHDelivery_Old != nDPHDelivery)    ReSazba(nDPHDelivery, nPriceDelivery);
    
    // vypocet souctu, zaokrouhleni
    Summary(nPriceDelivery, nDPHDelivery)
    
    if (getE('tdDelItemName')) getE('tdDelItemName').innerHTML = 'DOPRAVA - ' + sNameDelivery;
    if (getE('tdDelItemPrice'))getE('tdDelItemPrice').innerHTML = FormatCurrency(nPriceDelivery,2);
    if (getE('tdDelItemDPH')) getE('tdDelItemDPH').innerHTML = nDPHDelivery + '%';
    if (getE('tdDelItemPriceDPH')) getE('tdDelItemPriceDPH').innerHTML = FormatCurrency(nPriceDelivery,2);
}

function ReSazba(nDPHValue, nPrice) {

	if (!getE('taxTable')) return false;
	var nHidden = ConvertToNum( getE('ValueTAX_'+nDPHValue).value );
    
  nPrice += nHidden;
    
  var nDPH        = ConvertToNum(nPrice * 0.01 * nDPHValue );
  var nPriceSum   = ConvertToNum(nPrice + nDPH);
    
    if (nPrice == 0) 
    {
    
         getE('trDRsazba_' + nDPHValue).style.display = 'none';
    }
    else
    {
        getE('tdDRbase_'  + nDPHValue).innerHTML = FormatCurrency(nPrice,2);
        getE('tdDRdph_'   + nDPHValue).innerHTML  = FormatCurrency(nDPH,2);
        getE('tdDRsum_'   + nDPHValue).innerHTML  = FormatCurrency(nPriceSum,2);
        getE('trDRsazba_' + nDPHValue).style.display = '';
    }
}

function Summary(nDeliveryPrice, nDeliveryDPH) {
    var aSazby = new Array(0,5,19,22);    
    var i, nSumPrice, nSumDPH, nSumPriceDPH, nPrice, nRound;
    
    nSumPrice = nSumDPH = nSumPriceDPH = nPrice = nRound = 0;
    
    for (i=0;i<aSazby.length;i++)
    {
        nPrice = ConvertToNum( getE('ValueTAX_' + aSazby[i]).value );
        
        if ( aSazby[i] == nDeliveryDPH ) nPrice = nPrice + nDeliveryPrice;
        
        nSumPrice = nSumPrice + nPrice;
        nSumDPH = nSumDPH + (nPrice*0.01*aSazby[i]);
    }
    nSumPriceDPH = nSumPrice + nSumDPH;

		if (getE('taxTable')) {
        	//getE('tdDRsum').innerHTML = FormatCurrency(nSumPriceDPH, 2);
    
			nRound = ( Math.round(nSumPriceDPH) - nSumPriceDPH).toFixed(2);
			if (nRound != 0) {
				getE('trDRround').style.display = '';
				getE('tdDRround').innerHTML = nRound.replace('.',',');
			}
			else getE('trDRround').style.display = 'none';

			nSumPriceDPH = (parseFloat(nSumPriceDPH) + parseFloat(nRound)).toFixed(2);
			getE('tdDRSumToPay').innerHTML = FUCJS(nSumPriceDPH, 2, true);
			getE('nSumPriceDPH').innerHTML = FUCJS(nSumPriceDPH, 2, true);
		}
		
		//getE('nSumPriceNoDPH').innerHTML = FUCJS(nSumPrice, 2, true);
}   

function ConvertToNum(sNum)
{
		sNum = parseFloat(sNum);
		var nNum = sNum*1;
    if ( isNaN(nNum) ) nNum = 0;
    return nNum;
}


// from shop.js


function DeliverySelect(pkDel){
	//gaDelivery - array from string 142$143$
	//gaDeliveryDPH - array from string 19$5$
	//gaPayment - array from string 41,43,$1,43,$
	//gaDefault - array from string 143,44  - defaultní ID dopravy a platby
	var oPTsel, sDeliveries, oPB, bPayOK;
	var bPaySelectedOK = false;
	var bPaySelected = false;

    if (getE('tdDelItemName')) UpdateDeliveryPriceOnOrder(pkDel);

	//UpdateDeliveryPriceOnOrder(pkDel);

//	oPT = getE('TransportPrice');
//	if (oPT) {
//		oPB = getE('DeliveryPrice_' + pkDel)
//		if (oPB) {
//			oPT.innerHTML = oPB.value;
//			getE('DeliveryPrice').value = getE('DeliveryPrice_' + pkDel).value;
//			getE('DeliveryName').value = getE('DeliveryName_' + pkDel).value;
//			getE('DeliveryDPH').value = getE('DeliveryDPH_' + pkDel).value;
//		}
//	}

	for (var i=0; i<gaDelivery.length-1; i++){
		if (gaDelivery[i] == pkDel) {
			// provedu zobrazení/skrytí platebních metod podle vazby na dopravné
			for(var j = 0; ; j++) {
				oPT = getE('PaymentType' + j);
				if (!oPT) break;

				// nastavím bloku s typem platby modrou/šedou barvu
				oPB = getE('PaymentBlock' + j);
				sPayments = ',' + gaPayment[i];
				bPayOK = (sPayments.indexOf(',' + oPT.value + ',') != -1);
				if (oPT.checked)
					bPaySelectedOK = bPayOK; // je vybraná plat. met. stále možná i s nově zvoleným dopravným? existuje vazba?

				if (bPayOK) {
					if (!bPaySelected) {
						oPTsel = oPT;
						bPaySelected = true;
					}
					oPB.className = "PayDeliveryType";
				}
				else
					oPB.className = "PayDeliveryType payKO";
				oPT.disabled = !bPayOK;
				if (!bPaySelected) oPT.checked = true;
			}
			
			// pokud je vybrána platební metoda, kterou není možné provést s vybraným typem dopravy, změním to na první možnou volbu
			if (bPaySelected && !bPaySelectedOK)
				if (pkDel == gaDefault[0]) {
					for (var j = 0; ; j++) {
						oPT = getE('PaymentType' + j);
						if (!oPT) break;
						if (oPT.value == gaDefault[1]) oPT.checked = true;
					}
				}
				else oPTsel.checked = true;
			break;
		}
		else {
			for (var j = 0; ; j++) {
				oPT = getE('PaymentType' + j);
				if (!oPT) break;
				oPT.disabled = !(oPT.value == gaDefault[1]);
				if (oPT.value == gaDefault[1]) {
					oPT.checked = true;
					getE('PaymentBlock' + j).className = "PayDeliveryType";
					}
				else {
					getE('PaymentBlock' + j).className = "PayDeliveryType payKO";
				}
			}
		}
	}
}


function ControlDataOrder(nLogged)
{

    // pokud je user nezalogovan je potreba provest kontrolu jim zadanych udaju
    if (nLogged == 0)        if (!ControlDataOrderUserData()) return false;
                 
	var isCheck = false;
	for (var i=0; i < getF('OrderForm').DeliveryType.length; i++) {
		if (getF('OrderForm').DeliveryType[i].checked) isCheck = true;
	}
	if (!isCheck) {alert("Vyberte způsob dopravy."); return false}

	isCheck = false;
	for (var i=0; i < getF('OrderForm').PaymentType.length; i++) {
		if (getF('OrderForm').PaymentType[i].checked) isCheck = true;
	}
	if (!isCheck) {alert("Vyberte způsob platby.");	return false}
	
	return true;
}

function ControlDataOrderUserData()
{
	if( getF('OrderForm').Firm.value+getF('OrderForm').FirstName.value+getF('OrderForm').LastName.value == ""){alert("Vyplňte název firmy nebo jméno a příjmení.");getF('OrderForm').Firm.focus();return false}
	
	if(getF('OrderForm').FirstName.value == "" && getF('OrderForm').Firm.value=="" ){alert("Vyplňte jméno.");getF('OrderForm').FirstName.focus();return false}
	if(getF('OrderForm').LastName.value == "" && getF('OrderForm').Firm.value==""){alert("Vyplňte příjmení.");getF('OrderForm').LastName.focus();return false}

	if(getF('OrderForm').Street.value == ""){alert("Vyplňte ulici fakturační adresy.");getF('OrderForm').Street.focus();return false}
	if(getF('OrderForm').City.value == ""){alert("Vyplňte město fakturační adresy.");getF('OrderForm').City.focus();return false}
	if(getF('OrderForm').ZipCode.value == ""){alert("Vyplňte PSČ fakturační adresy.");getF('OrderForm').ZipCode.focus();return false}
	
	if(getF('OrderForm').Email.value == ""){alert("Vyplňte email.");getF('OrderForm').Email.focus();return false;}
	if (!EmailControl(getF('OrderForm').Email.value)) {getF('OrderForm').Email.focus();return false}
	if(getF('OrderForm').Phone.value + getF('OrderForm').Mobil.value == ""){alert("Vyplňte telefon, nebo mobil.");getF('OrderForm').Phone.focus();return false}

    
	if(getF('OrderForm').Login.value != "")
	{
	    if(getF('OrderForm').Login.value.length < 5){alert("Přihlašovací jméno musí mít nejméně 5 znaků.");getF('OrderForm').Login.focus();return false}
	    if(getF('OrderForm').Password.value == ""){alert("Vyplňte heslo.");getF('OrderForm').Password.focus();return false}
	    if(getF('OrderForm').Password.value.length < 5){alert("Heslo musí mít minimálně 5 znaků.");getF('OrderForm').Password.focus();return false}
	    if(getF('OrderForm').Password.value != getF('OrderForm').PasswordCheck.value){alert("Potvrzené heslo není správně.");getF('OrderForm').Password.focus();return false}
	}
	return true;
}

function ControlUserDataSubmit(){

	if( getF('UserDataForm').Firm.value+getF('UserDataForm').FirstName.value+getF('UserDataForm').LastName.value == ""){alert("Vyplňte název firmy nebo jméno a příjmení.");getF('UserDataForm').Firm.focus();return false}
	
	//if(getF('UserDataForm').Firm.value == "" ){alert("Vyplňte název firmy.");getF('UserDataForm').Firm.focus();return false}
	if(getF('UserDataForm').FirstName.value == "" && getF('UserDataForm').Firm.value=="" ){alert("Vyplňte jméno.");getF('UserDataForm').FirstName.focus();return false}
	if(getF('UserDataForm').LastName.value == "" && getF('UserDataForm').Firm.value==""){alert("Vyplňte příjmení.");getF('UserDataForm').LastName.focus();return false}

	if(getF('UserDataForm').Street.value == ""){alert("Vyplňte ulici fakturační adresy.");getF('UserDataForm').Street.focus();return false}
	if(getF('UserDataForm').City.value == ""){alert("Vyplňte město fakturační adresy.");getF('UserDataForm').City.focus();return false}
	if(getF('UserDataForm').ZipCode.value == ""){alert("Vyplňte PSČ fakturační adresy.");getF('UserDataForm').ZipCode.focus();return false}
	
	//if(getF('UserDataForm').ICO.value == ""){alert("Vyplňte IČO.");getF('UserDataForm').ICO.focus();return false}
	//if(!ValidateAccount(getF('UserDataForm').BankAccount.value)){alert("Bankovní účet není platný, zkuste jej zadat znovu, nebo pole nevyplňujte.");getF('UserDataForm').BankAccount.focus();return false};

	if(getF('UserDataForm').Email.value == ""){alert("Vyplňte email.");getF('UserDataForm').Email.focus();return false}
	
	if (!EmailControl(getF('UserDataForm').Email.value)) {getF('UserDataForm').Email.focus();return false}
	
	if(getF('UserDataForm').Phone.value + getF('UserDataForm').Mobil.value == ""){alert("Vyplňte telefon, nebo mobil.");getF('UserDataForm').Phone.focus();return false}

	if(getF('UserDataForm').Login.value == ""){alert("Vyplňte přihlašovací jméno.");getF('UserDataForm').Login.focus();return false}
	if(getF('UserDataForm').Login.value.length < 5){alert("Přihlašovací jméno musí mít nejméně 5 znaků.");getF('UserDataForm').Login.focus();return false}
	if(getF('UserDataForm').Password.value == ""){alert("Vyplňte heslo.");getF('UserDataForm').Password.focus();return false}
	if(getF('UserDataForm').Password.value.length < 5){alert("Heslo musí mít minimálně 5 znaků.");getF('UserDataForm').Password.focus();return false}
	if(getF('UserDataForm').Password.value != getF('UserDataForm').PasswordCheck.value){alert("Potvrzené heslo není správně.");getF('UserDataForm').Password.focus();return false}
}


function ControlPassword(NameOne,NameTwo){
	if (getE(NameOne).value != getE(NameTwo).value){
		alert("Špatně zadané heslo.");
		getE(NameOne).value = "";
		getE(NameTwo).value = "";
		getE(NameOne).focus();
		return false;
	}else{
		return true;
	}
}


function ClearOrder()
{
    if ( confirm('Přejete si zrušit objednávku a vyprázdnit košík?') )     window.location.href = '/Order.asp?do=emptybasket';
    return false    
}

