var firstDescription = '';
var secondDescription = '';
var thirdDescription = '';
var fourthDescription = ''; 

function showParagraphs(){//показывает "divHow" (в нем будут расписаны стоимости посылки по пунктам)
	var divHow = document.getElementById('divHow');	
	divHow.style.display='block';
}
function doIt () {//вычисляет и выводит цену внутрь resultDiv и ,с пояснениями, в divHow
	var divHow = document.getElementById('divHow');
	var resultDiv = document.getElementById('resultDiv');
	var	distanceSelect = document.getElementById('destCityName');
	var baggadgeWeight = document.getElementById('baggadgeWeight');
	var baggadgeXsize = document.getElementById('baggadgeXsize');
	var baggadgeYsize = document.getElementById('baggadgeYsize');
	var baggadgeZsize = document.getElementById('baggadgeZsize');
	var resultText='Ошибка калькулятора.';
	var resultTextFull='Ошибка калькулятора.';
	var cost=0;
	divHow.style.display='none';
	if  ((baggadgeWeight.value !='') && (baggadgeXsize.value !='') && (baggadgeYsize.value != '') && (baggadgeZsize.value !='') && (!isNaN(baggadgeWeight.value)) && (!isNaN(baggadgeXsize.value)) && (!isNaN(baggadgeYsize.value)) && (!isNaN(baggadgeZsize.value)) ) {
		cost=checkRuleSet1()+checkRuleSet2();
		costTest=cost;
		cost=cost+cost*(checkRuleSet3()/100);
		costTest2=cost;
		cost=cost+cost*(checkRuleSet4()/100);
		costTest3=cost;
        cost=Math.round(cost+0.5);
		resultText='<b>Cтоимость доставки:</b> '+cost+' руб.';
        var prDel=document.getElementById('postDelSumm')
        if(prDel) {
            prDel.value=parseInt(cost);
        }
        var prDel1=document.getElementById('fullPrice')
        //if(prDel1) {
            //prDel1.innerHTML=parseInt(cost) + parseInt(orderPrice);
            resultText+='<br><b>Cтоимость товара c доставкой:</b> '+(parseInt(cost) + parseInt(orderPrice))+' руб.';
        //}
		resultTextFull='<b>Стоимость по пунктам:</b><br>'+firstDescription+' - '+checkRuleSet1()+' руб.<br>';
		if (secondDescription !=''){
			resultTextFull+=secondDescription+' - '+checkRuleSet2()+'руб.<br>';
		}
		if (thirdDescription!='') {
		    var costTest=Math.round(costTest*(checkRuleSet3()/100));  
			resultTextFull+=thirdDescription+' - '+(checkRuleSet3())+'% ( &asymp; '+costTest+' руб.)<br>'
		}
		if (fourthDescription!='') {
		      var costTestTest = Math.round(costTest3*(checkRuleSet4()/100));
			resultTextFull+=fourthDescription+' - '+(checkRuleSet4())+'% ( &asymp; '+costTestTest+' руб.)<br>';
		}
	   var fullPriceButton = document.getElementById('butHow');	
	   fullPriceButton.style.display='';        
		}  else {
		resultText='Не все поля заполнены...';
		}
			
	if (thirdDescription == ''){
		resultText=resultTextFull='<b>Посылка не подходит по весово-размерным критериям.</b><br/><b>Возможные причины:</b><br> - вес и/или размеры посылки слишком велики <br/> - слишком малы (например отрицательны или равные нулю) или отсутствуют';
	}
	if	(distanceSelect.value=='0')	{
		resultText+='<br><i>На заметку: Пункт отправки и пункт назначения совпадают</i>';
	}
	resultDiv.innerHTML=resultText;
    resultDiv.style.display='block';
	divHow.innerHTML=resultTextFull;	
}

function checkRuleSet1 () {//проверяет значение(кол-во километров) выбранного элемента селекта на принадлежность к правилам из набора "куда посылаем"   
   	var destCityName = document.getElementById('destCityName');	
	var ourDistance= destCityName.value;
	firstDescription='';
	var returnedValue=0;
	for (i=0;i<numberOfRules1;i++) {
		if	((ourDistance >= distanceRules[i]['mindist']) && (ourDistance < distanceRules[i]['maxdist'])) {
				firstDescription = distanceRules[i]['userDescription'];
				returnedValue=distanceRules[i]['userPrice'];
				break;
		}
	}
	return returnedValue;
}

function checkRuleSet2 () {//проверяет значение(кол-во километров)  выбранного элемента селекта И значение "baggadgeWeight" на принадлежность к правилам из набора "наценка за каждые 500гр сверху стандарта" 
	var destCityName = document.getElementById('destCityName');
	var ourDistance= destCityName.value;
	var baggadgeWeight = document.getElementById('baggadgeWeight');
	var returnedValue=0;
	secondDescription = '';
	if (baggadgeWeight.value>500){
		for (i=0;i<numberOfRules2;i++) {
			if	((ourDistance >= distanceAdditionalRules[i]['mindist']) && (ourDistance < distanceAdditionalRules[i]['maxdist'])) {
					secondDescription = distanceAdditionalRules[i]['userDescription'];
					returnedValue = distanceAdditionalRules[i]['userPrice']*(Math.round((baggadgeWeight.value/500)-0,5));
					break;			
			}		
		}
	}
	return returnedValue;
}

function checkRuleSet3 () {// проверяем значения 'baggadgeWeight', 'baggadgeXsize', 'baggadgeYsize', 'baggadgeZsize' на принадлежность к правилам из набора "Вес-Размер-Сумма сторон"
	var baggadgeWeight = document.getElementById('baggadgeWeight');
	var baggadgeXsize = document.getElementById('baggadgeXsize');
	var baggadgeYsize = document.getElementById('baggadgeYsize');
	var baggadgeZsize = document.getElementById('baggadgeZsize');
	returnedValue=0;
	thirdDescription = '';
	var sizesMatch=false;
	ourBaggadgeWeight=baggadgeWeight.value/1;// делим на 1 чтобы воспринимал как числа(без деления некорректно вычислял)
	ourBaggadgeXsize=baggadgeXsize.value/1;
	ourBaggadgeYsize=baggadgeYsize.value/1;
	ourBaggadgeZsize=baggadgeZsize.value/1;
	sizesSum= ourBaggadgeXsize/1 + ourBaggadgeYsize/1 + ourBaggadgeZsize/1;	
		for (i=0;i<numberOfRules3;i++) {
				if	((ourBaggadgeWeight > weightSizeRules[i]['minweight']) && (ourBaggadgeWeight <= weightSizeRules[i]['maxweight'])) {				
						if ((weightSizeRules[i]['maxXsize']!=0) && ((weightSizeRules[i]['maxYsize']!=0) && (weightSizeRules[i]['maxZsize']!=0)) ) {
							if ((ourBaggadgeXsize > weightSizeRules[i]['minXsize']) && (ourBaggadgeXsize <= weightSizeRules[i]['maxXsize']) ) {
							
								if ((ourBaggadgeYsize > weightSizeRules[i]['minYsize']) && (ourBaggadgeYsize <= weightSizeRules[i]['maxYsize']) && (ourBaggadgeZsize > weightSizeRules[i]['minZsize']) && (ourBaggadgeZsize <= weightSizeRules[i]['maxZsize'])){								
									sizesMatch=true;		
								}	
								else if ((ourBaggadgeYsize > weightSizeRules[i]['minZsize']) && (ourBaggadgeYsize <= weightSizeRules[i]['maxZsize']) && (ourBaggadgeZsize > weightSizeRules[i]['minYsize']) && (ourBaggadgeZsize <= weightSizeRules[i]['maxYsize'])){
									sizesMatch=true;
								}
							}
							if ((ourBaggadgeXsize > weightSizeRules[i]['minYsize']) && (ourBaggadgeXsize <= weightSizeRules[i]['maxYsize']) ) {
									if ((ourBaggadgeYsize > weightSizeRules[i]['minZsize']) && (ourBaggadgeYsize <= weightSizeRules[i]['maxZsize']) && (ourBaggadgeZsize > weightSizeRules[i]['minXsize']) && (ourBaggadgeZsize <= weightSizeRules[i]['maxXsize'])){
										sizesMatch=true;		
									}	
									else if ((ourBaggadgeYsize > weightSizeRules[i]['minXsize']) && (ourBaggadgeYsize <= weightSizeRules[i]['maxXsize']) && (ourBaggadgeZsize > weightSizeRules[i]['minZsize']) && (ourBaggadgeZsize <= weightSizeRules[i]['maxZsize'])){
										sizesMatch=true;
								}							
							}
							if ((ourBaggadgeXsize > weightSizeRules[i]['minZsize']) && (ourBaggadgeXsize <= weightSizeRules[i]['maxZsize']) ) {
									if ((ourBaggadgeYsize > weightSizeRules[i]['minYsize']) && (ourBaggadgeYsize <= weightSizeRules[i]['maxYsize']) && (ourBaggadgeZsize > weightSizeRules[i]['minXsize']) && (ourBaggadgeZsize <= weightSizeRules[i]['maxXsize'])){
										sizesMatch=true;		
									}	
									else if ((ourBaggadgeYsize > weightSizeRules[i]['minXsize']) && (ourBaggadgeYsize <= weightSizeRules[i]['maxXsize']) && (ourBaggadgeZsize > weightSizeRules[i]['minYsize']) && (ourBaggadgeZsize <= weightSizeRules[i]['maxYsize'])){
										sizesMatch=true;
								}							
							}						
						}						
						if ((sizesMatch==false) && (weightSizeRules[i]['minXsize']!=0) && ((weightSizeRules[i]['minYsize']!=0) && (weightSizeRules[i]['minZsize']!=0)) ) { 								
									sizesMatch=true;								
							}					
					if((sizesMatch) && (((weightSizeRules[i]['maxtotalsize']==0) || (sizesSum <= weightSizeRules[i]['maxtotalsize']/1) ))){
						//alert(i+' rule '+weightSizeRules[i]['price']+'   '+weightSizeRules[i]['maxXsize']+'<='+ourBaggadgeXsize+'<'+weightSizeRules[i]['minXsize']);
						thirdDescription = weightSizeRules[i]['userDescription'];
						returnedValue+=weightSizeRules[i]['userPrice'];
						break;
					}				
				}
			}
	return returnedValue;
}
function checkRuleSet4 () { // проверяем значение чекбокса  'baggadgeFragile' для определения, подходит ли к уникальным правилам
	var baggadgeFragile = document.getElementById('baggadgeFragile');
	returnedValue=0;
	fourthDescription = '';
		for (i=0;i<numberOfRules4;i++) {
			if (baggadgeFragile.checked) {
				fourthDescription = uniqueRules[i]['userDescription'];
				returnedValue+=uniqueRules[i]['userPrice'];
			}
		}
	return returnedValue;
}
//следующие 2 функции необходимы для красивости, они показывают юзеру количество километров/килограмм/сантиметров и тд
function showDistance(){//показывает юзеру количество километров до выбранного пункта
	var ourSelectorInput = document.getElementById('destCityName');
	var ourOutput = document.getElementById('distanceCounter');
	ourOutput.innerHTML=ourSelectorInput.value+' км';
}
function checkShowEstimationUnits(inputElementHtmlID,outputElementHtmlID,divisionCounter,additionalText){//показывает юзеру количество килограмм(из грамм)
	var ourTextInput = document.getElementById(inputElementHtmlID);
	var ourOutput = document.getElementById(outputElementHtmlID);
	outputText='';
	ourOutput.style.color='#666666';
	if ((!isNaN(ourTextInput.value))){
	outputText='('+ourTextInput.value/divisionCounter+additionalText+')';	
	} else {
			ourOutput.style.color='red';
			outputText='Введено не число';	
			} 
	if (ourTextInput.value/1 <= 0 ) {
		ourOutput.style.color='black';
		outputText='Не верное значение';	
	}
	ourOutput.innerHTML=outputText;
}
//далее- функции для парсера
function tarifDivClick(tarifNumber) {
	for (i=1;i<=numberOfTarifs;i++){
		currentTarifDiv=document.getElementById(('tarifDiv'+i));
		currentTarifDescriptionDiv=document.getElementById(('tarifDescriptionDiv'+i));		
		if (i==tarifNumber){
			currentTarifDiv.style.color='green';
			currentTarifDescriptionDiv.style.display='block';
		} else {
			currentTarifDiv.style.color='black';
			currentTarifDescriptionDiv.style.display='none';
		}	
	}
}
function addCityNameToHidden() {
	ourSelect=document.getElementById('cityFrom');
	for (i=1;i<=numberOfTarifs;i++){
		ourHidenInput=document.getElementById(('cityNameHidden'+i));
		ourHidenInput.value=ourSelect.value;
	}
	ourHidenInput=document.getElementById('cityNameHiddenHandWritten');
	ourHidenInput.value=ourSelect.value;
}