// 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, obj;

    //if(!getE('DeliveryPrice_'+IdNewDelivery)) alert('DeliveryPrice_'+IdNewDelivery);
    //if(!getE('DeliveryPrice')) alert('DeliveryPrice');
    if ( !getE('DeliveryPrice') || !getE('DeliveryPrice_'+IdNewDelivery)) {alert('Došlo k nečekané chybě');return false;}

    // -- puvodni hodnoty
    var nPriceDelivery_Old = ConvertToNum( getE('DeliveryPrice').value.replace(',','.') );
    var nDPHDelivery_Old   = ConvertToNum( getE('DeliveryDPH').value.replace(',','.') );

    // -- nove hodnoty
    var nPriceDelivery     = ConvertToNum( getE('DeliveryPrice_'+IdNewDelivery).value.replace(',','.') );
    var nDPHDelivery       = ConvertToNum( getE('DeliveryDPH_'+IdNewDelivery).value.replace(',','.') );
    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)
    
    obj = getE('tdDelItemName'); if(obj)obj.innerHTML = sNameDelivery;
    obj = getE('tdDelItemPrice'); if(obj)obj.innerHTML = FormatCurrency(nPriceDelivery,2);
    obj = getE('tdDelItemDPH'); if(obj)obj.innerHTML = nDPHDelivery + '%';
}

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,8,9,10,19,20,23);
    var i, nSumPrice, nSumDPH, nSumPriceDPH, nPrice, nRound, obj;


    nSumPrice = nSumDPH = nSumPriceDPH = nPrice = nRound = 0;

    for (i=0;i<aSazby.length;i++)
    {    
      if ( getE('ValueTAX_' + aSazby[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')) {
  if(getE('tdDRbase')) {  
    // na polskem nutrendu neni
		getE('tdDRbase').innerHTML = FormatCurrency(nSumPrice, 2);
		getE('tdDRdph').innerHTML = FormatCurrency(nSumDPH, 2);
		getE('tdDRsum').innerHTML = FormatCurrency(nSumPriceDPH, 2);
  }
		nRound = ( Math.round(nSumPriceDPH) - nSumPriceDPH).toFixed(2);
    if (getE('trDRround')) {    
    // na polskem nutrendu neni
  		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('tdDRsum').innerHTML = FUCJS(nSumPriceDPH, 2, true);
		getE('nSumPriceDPH').innerHTML = FUCJS(nSumPriceDPH, 2, true);
	}
	obj = getE('nSumPriceNoDPH');
	if(obj){
		obj.innerHTML = FUCJS(nSumPrice, 2, true);
	}
}

function ConvertToNum(sNum)
{
//		sNum = parseFloat(sNum.replace(',','.'));
    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(!UpdateDeliveryPriceOnOrder(pkDel)) {return false}
	
//	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('nPaymentType' + 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('nPaymentType' + 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('nPaymentType' + 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";
				}
			}
		}
    }
    checkNeedPhoneInit();
}


function ControlDataOrder(oForm){

	if (typeof(ControlOrderUserDataSubmit) == 'function') {
		if(!ControlOrderUserDataSubmit(oForm)){
			return false;
		}
	}
//  mg :-! 
// 	if (!getRadioValue(oForm.nDeliveryType)) {
// 		alert("Vyberte způsob dopravy.");
// 		return false
// 	}
// 	if (!getRadioValue(oForm.nPaymentType)) {
// 		alert("Vyberte způsob platby.");
// 		return false
// 	}
	return true;
}

//----------- bonus -----------------

function bonusClick(el,errMsg){
	nPreSuma = sumBonus(el.name+'_');
	if(nPreSuma <= nPointsForOrder){
		getE('sumaSelPoints').innerHTML = nPreSuma;
		getE('savePoints').innerHTML = nPointsForOrder - nPreSuma;
	}else{
        alert(errMsg);
		return false
    }
    var obj;
    if(nPreSuma == 0){
    	obj = getE('bonusType1');
    }else{
   		obj = getE('bonusType0');
   	}
   if(obj && obj.type=='radio'){
		obj.checked = true;
   }
   return true
}
function sumBonus(prefix){
	var suma = 0;
	if(gaBonuses){
		for(var i = 0; i < gaBonuses.length; i++){
			elB = getE(prefix+gaBonuses[i][0]);
			suma += (elB && elB.checked) ? parseInt(gaBonuses[i][1]) : 0 ;
		}
	}
	return suma
}
function checkNeedPhoneInit(){
    for(var j = 0; ; j++) {
		oPT = getE('nPaymentType' + j);
		if(!oPT) break;
		if(oPT.checked){
		      setNeedPhone(oPT.value);
		      break;
        }
	}
}
function setNeedPhone(payVal){
    var bNeed = false;
    if(payWithPhone){
        for(var i=0; i<payWithPhone.length; i++){
            if(payWithPhone[i]==payVal){
                bNeed = true;
                break;
            }
        }
    }
    obj = getE('cPhone');
    if(obj){ 
        obj.style.display = bNeed?'':'none';
        gbNeedPhone = bNeed;
    }
}

