var travelDurationMultiOptions = {
    28: '15 dana - 2 dana'
   ,29: '1 mesec - 5 dana'
   ,30: '1 mesec -10 dana'
   ,31: '1 mesec - 15 dana'
   ,32: '1 mesec - 20 dana'
   ,33: '2 meseca - 5 dana'
   ,34: '2 meseca - 10 dana'
   ,35: '2 meseca - 15 dana'
   ,36: '2 meseca - 20 dana'
   ,37: '2 meseca - 30 dana'
   ,38: '3 meseca - 5 dana'
   ,39: '3 meseca - 10 dana'
   ,40: '3 meseca - 15 dana'
   ,41: '3 meseca - 20 dana'
   ,42: '3 meseca - 30 dana'
   ,43: '3 meseca - 45 dana'
   ,44: '3 meseca - 60 dana'
   ,45: '6 meseci - 15 dana'
   ,46: '6 meseci - 30 dana'
   ,47: '6 meseci - 45 dana'
   ,48: '6 meseci - 60 dana'
   ,49: '6 meseci - 90 dana'
   ,50: '12 meseci - 15 dana'
   ,51: '12 meseci - 30 dana'
   ,52: '12 meseci - 45 dana'
   ,53: '12 meseci - 60 dana'
   ,54: '12 meseci - 90 dana'
   ,55: '12 meseci - 180 dana'
   ,56: '24 meseca - 15 dana'
   ,57: '24 meseca - 30 dana'
   ,58: '24 meseca - 45 dana'
   ,59: '24 meseca - 60 dana'
   ,60: '24 meseca - 90 dana'
   ,61: '24 meseca - 180 dana'
};

var travelDurationSingleOptions = {
	 1: '1 dan'
	,2: '2 dana'
	,3: '3 dana'
	,4: '4 dana'
	,5: '5 dana'
	,6: '6 dana'
	,7: '7 dana'
	,8: '8 dana'
	,9: '9 dana'
	,10: '10 dana'
	,11: '11 dana'
	,12: '12 dana'
	,13: '13 dana'
	,14: '14 dana'
	,15: '15 dana'
	,16: '16 dana'
	,17: '17 dana'
	,18: '18 dana'
	,19: '19 dana'
	,20: '20 dana'
	,21: '21 dan'
	,22: '22 dana'
	,23: '23 dana'
	,24: '24 dana'
	,25: '25 dana'
	,26: '26 dana'
	,27: '27 dana'
	,28: '28 dana'
	,29: '29 dana'
	,30: '30 dana'
	,31: '31 dan'
	,32: '32 dana'
	,33: '33 dana'
	,34: '34 dana'
	,35: '35 dana'
	,36: '36 dana'
	,37: '37 dana'
	,38: '38 dana'
	,39: '39 dana'
	,40: '40 dana'
	,41: '41 dan'
	,42: '42 dana'
	,43: '43 dana'
	,44: '44 dana'
	,45: '45 dana'
	,46: '46 dana'
	,47: '47 dana'
	,48: '48 dana'
	,49: '49 dana'
	,50: '50 dana'
	,51: '51 dan'
	,52: '52 dana'
	,53: '53 dana'
	,54: '54 dana'
	,55: '55 dana'
	,56: '56 dana'
	,57: '57 dana'
	,58: '58 dana'
	,59: '59 dana'
	,60: '60 dana'
	,61: '61 dan'
	,62: '62 dana'
	,63: '63 dana'
	,64: '64 dana'
	,65: '65 dana'
	,66: '66 dana'
	,67: '67 dana'
	,68: '68 dana'
	,69: '69 dana'
	,70: '70 dana'
	,71: '71 dan'
	,72: '72 dana'
	,73: '73 dana'
	,74: '74 dana'
	,75: '75 dana'
	,76: '76 dana'
	,77: '77 dana'
	,78: '78 dana'
	,79: '79 dana'
	,80: '80 dana'
	,81: '81 dan'
	,82: '82 dana'
	,83: '83 dana'
	,84: '84 dana'
	,85: '85 dana'
	,86: '86 dana'
	,87: '87 dana'
	,88: '88 dana'
	,89: '89 dana'
	,90: '90 dana'
	,91: '91 dan'
	,92: '92 dana'
	,93: '93 dana'
	,94: '94 dana'
	,95: '95 dana'
	,96: '96 dana'
	,97: '97 dana'
	,98: '98 dana'
	,99: '99 dana'
	,100: '100 dana'
	,101: '101 dan'
	,102: '102 dana'
	,103: '103 dana'
	,104: '104 dana'
	,105: '105 dana'
	,106: '106 dana'
	,107: '107 dana'
	,108: '108 dana'
	,109: '109 dana'
	,110: '110 dana'
	,111: '111 dana'
	,112: '112 dana'
	,113: '113 dana'
	,114: '114 dana'
	,115: '115 dana'
	,116: '116 dana'
	,117: '117 dana'
	,118: '118 dana'
	,119: '119 dana'
	,120: '120 dana'
	,121: '121 dan'
	,122: '122 dana'
	,123: '123 dana'
	,124: '124 dana'
	,125: '125 dana'
	,126: '126 dana'
	,127: '127 dana'
	,128: '128 dana'
	,129: '129 dana'
	,130: '130 dana'
	,131: '131 dan'
	,132: '132 dana'
	,133: '133 dana'
	,134: '134 dana'
	,135: '135 dana'
	,136: '136 dana'
	,137: '137 dana'
	,138: '138 dana'
	,139: '139 dana'
	,140: '140 dana'
	,141: '141 dan'
	,142: '142 dana'
	,143: '143 dana'
	,144: '144 dana'
	,145: '145 dana'
	,146: '146 dana'
	,147: '147 dana'
	,148: '148 dana'
	,149: '149 dana'
	,150: '150 dana'
	,151: '151 dan'
	,152: '152 dana'
	,153: '153 dana'
	,154: '154 dana'
	,155: '155 dana'
	,156: '156 dana'
	,157: '157 dana'
	,158: '158 dana'
	,159: '159 dana'
	,160: '160 dana'
	,161: '161 dan'
	,162: '162 dana'
	,163: '163 dana'
	,164: '164 dana'
	,165: '165 dana'
	,166: '166 dana'
	,167: '167 dana'
	,168: '168 dana'
	,169: '169 dana'
	,170: '170 dana'
	,171: '171 dan'
	,172: '172 dana'
	,173: '173 dana'
	,174: '174 dana'
	,175: '175 dana'
	,176: '176 dana'
	,177: '177 dana'
	,178: '178 dana'
	,179: '179 dana'
	,180: '180 dana'
	,181: '181 dan'
	,182: '182 dana'
	,183: '183 dana'	
};

/**
 * Update travel duration options
 */
function updateDurationOptions(setDate) {
	// single:
	if (document.dgoshopcalcform.A_VrstaPutovanja.value == 1) {
		// single, not elderly:
		if (document.dgoshopcalcform.A_VrstaLica.value != 5 && document.dgoshopcalcform.A_VrstaLica.value != 6
																			 && document.dgoshopcalcform.A_VrstaLica.value != 7) {
			// multi entries:
			if (document.dgoshopcalcform.A_BrojUlazaka.value == 2)
				_setDurationTo(travelDurationMultiOptions, 183, setDate);
			// single entry:
			else
				_setDurationTo(travelDurationSingleOptions, 183, setDate);
		// single, elderly:
		} else {
			// multi entries:
			if (document.dgoshopcalcform.A_BrojUlazaka.value == 2)
				_setDurationTo(travelDurationMultiOptions, 30, setDate);	
			// single entry:
			else
				_setDurationTo(travelDurationSingleOptions, 30, setDate);
		}
	// family:
	} else if (document.dgoshopcalcform.A_VrstaPutovanja.value == 10) {
		_setDurationTo(travelDurationSingleOptions, 183, setDate);
	// group:
	} else if (document.dgoshopcalcform.A_VrstaPutovanja.value == 4) {
		// group, no elderly:
		if (!document.dgoshopcalcform.A_BrojStarijih65do70.value && !document.dgoshopcalcform.A_BrojStarijih70do80.value
																					&& !document.dgoshopcalcform.A_BrojStarijih80do86.value)
			_setDurationTo(travelDurationSingleOptions, 90, setDate);
		// group, elderly:
		else
			_setDurationTo(travelDurationSingleOptions, 30, setDate);
	}
}

/**
 * Set duration helper
 */
function _setDurationTo(arr, maxDuration, setDate) {
	document.dgoshopcalcform.A_Trajanje.options.length = 0;
	var i=0;
	document.dgoshopcalcform.A_Trajanje.options[i++] = new Option("",'',true,false);
	for (var k in arr)
		if (_extractDuration(arr[k]) <= maxDuration) 
			document.dgoshopcalcform.A_Trajanje.options[i++] = new Option(arr[k], k, true, false);
	if (setDate)
		document.dgoshopcalcform.A_Trajanje.value = setDate;
}

/**
 * Extract duration from option description
 */
function _extractDuration(text) {
	if (typeof(text) != 'undefined')
		return parseInt(text.replace(/.*\-\s/, '').replace(/\sdana?\s*/, ''));
	else
		return 0;
}

/**
 * New version of update end date function
 */
function updateEndDateNu(skipComboRefresh, setDate) {
	var vrsta = 0;
	var daysToAdd = 0;
	var monthsToAdd = 0;
	var trajanje = '';
	if (typeof(skipComboRefresh) == 'undefined')
		skipComboRefresh = false;
	if (typeof(setDate) == 'undefined')
		setDate = '';		

	if (document.dgoshopcalcform.A_VrstaPutovanja.value && (vrsta = parseInt(document.dgoshopcalcform.A_VrstaPutovanja.value))) {	
		if (vrsta == 4 || vrsta == 10) {
			daysToAdd = _getDaysFromDuration();
		}
		else if (vrsta == 1) {
			if (document.dgoshopcalcform.A_BrojUlazaka.value && parseInt(document.dgoshopcalcform.A_BrojUlazaka.value) == 2) {
				var months = _getMonthsFromDuration();
				if (months == .5)
					daysToAdd = 15;
				else
					monthsToAdd = months;
			} else {
				daysToAdd = _getDaysFromDuration();
			}
		}
	}
				
	if (trajanje = calculateTrajanje(daysToAdd,monthsToAdd))
		trajanje = 'Kraj osiguranja: '+trajanje;
	if (document.getElementById('krajOsiguranjaLabel'))
		document.getElementById('krajOsiguranjaLabel').innerHTML = trajanje;

	if (!skipComboRefresh)
		updateDurationOptions(setDate);
}

/**
 * Get days nr from duration
 */
function _getDaysFromDuration() {
	if (document.dgoshopcalcform.A_Trajanje.value)
		return parseInt(document.dgoshopcalcform.A_Trajanje.value);
	else
		return 0;
}

/**
 * Get months nr from duration
 */
function _getMonthsFromDuration() {
	var k;
	if (document.dgoshopcalcform.A_Trajanje.value && (k = parseInt(document.dgoshopcalcform.A_Trajanje.value))) {
		if (k == 28)
			return 0.5;
		else
			return parseInt(travelDurationMultiOptions[k].replace(/\s.*/));
	} else
		return 0;
}



function updateValueFurnishing() 
{
//	if (document.dgoshopcalcform.A_Package.value == 2 || document.dgoshopcalcform.A_Package.value == 3)
	{
		document.dgoshopcalcform.A_Value_Furnishing.options.length = 0;
		document.dgoshopcalcform.A_Value_Furnishing.options[0] = new Option("",'',true,false);
		var buildingArea = 0;
		if (document.dgoshopcalcform.A_Building.value == 1)
			buildingArea = document.dgoshopcalcform.A_Area_GroundFloor.value;
		else if (document.dgoshopcalcform.A_Building.value == 2)
			buildingArea = document.dgoshopcalcform.A_Area_Building.value;
		if (buildingArea && !isNaN(parseFloat(buildingArea)))
			for (i=1;i<=5;i++)
				document.dgoshopcalcform.A_Value_Furnishing.options[i] = new Option(formatCurrency(buildingArea*i*100),i*100,true,false);
	}
}

function setSelIndexValueFurnishing(val) 
{
	if (document.dgoshopcalcform.A_Value_Furnishing.options.length > 1)
		for (i=0; i<document.dgoshopcalcform.A_Value_Furnishing.options.length; i++)
			if (document.dgoshopcalcform.A_Value_Furnishing.options[i].value == val)
			{
				document.dgoshopcalcform.A_Value_Furnishing.selectedIndex = i;
				break;
			}
}


function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
		num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+'.'+
		num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + num + ',' + cents);
}

function updateEndDate()
{
	var vrsta = 0;
	var daysToAdd = 0;
	var monthsToAdd = 0;
	if (document.dgoshopcalcform.A_VrstaPutovanja && (vrsta = document.dgoshopcalcform.A_VrstaPutovanja.value-0))
	{	
		if (vrsta == 2 || vrsta == 4 || vrsta == 9)
		{
			daysToAdd = getTrajanjeFromSingleGroup();
		}
		else if (vrsta == 1)
		{
			if (document.dgoshopcalcform.A_BrojUlazaka && (brUlazaka = document.dgoshopcalcform.A_BrojUlazaka.value-0)
				 && brUlazaka == 2
				)
			{
				monthsToAdd = getTrajanjeFromMulti();
				if (monthsToAdd == .5)
				{
					monthsToAdd = 0;
					daysToAdd = 15;
				}
			}
			else
			{
				daysToAdd = getTrajanjeFromSingle();
			}
		}		
	}
	if (trajanje = calculateTrajanje(daysToAdd,monthsToAdd))
		trajanje = 'Kraj osiguranja: '+trajanje;
	if (document.getElementById('krajOsiguranjaLabel1')) document.getElementById('krajOsiguranjaLabel1').innerHTML = trajanje;
	if (document.getElementById('krajOsiguranjaLabel2')) document.getElementById('krajOsiguranjaLabel2').innerHTML = trajanje;
	if (document.getElementById('krajOsiguranjaLabel3')) document.getElementById('krajOsiguranjaLabel3').innerHTML = trajanje;
	if (document.getElementById('krajOsiguranjaLabel4')) document.getElementById('krajOsiguranjaLabel4').innerHTML = trajanje;
	if (document.getElementById('krajOsiguranjaLabel5')) document.getElementById('krajOsiguranjaLabel5').innerHTML = trajanje;
}

function calculateTrajanje(daysToAdd,monthsToAdd) {
	var year=0;
	var month=0;
	var day=0;
	
	if (document.dgoshopcalcform.A_DatumPocetka && (start = document.dgoshopcalcform.A_DatumPocetka.value))
	{	
		day = start.toString().substring(0,2)-0;
		month = start.toString().substring(3,5)-0;
		year = start.toString().substring(6,10)-0;
	}
	
	if (day && daysToAdd)
	{
		for (i=1; i<daysToAdd; i++)
		{
			day++;
			if (isEndOfTheMonth(day,month,year))
		 	{
		 		day = 1;
		 		if (++month > 12)
		 		{
		 			month = 1;
		 			year++;
		 		}
		 	}
		}
	}
	else if (day && monthsToAdd)
	{
		for (i=1; i<=monthsToAdd; i++)
		{
			if (++month > 12)
			{
				month = 1;
				year++;
			}
		}
		while(isEndOfTheMonth(day,month,year)) { day--; }
	}
	else
	{
		day = 0;
	}
	
	var stringToSet = '';
	if (day)
		stringToSet = (day<10 ? '0' : '') + day + '.' + (month<10 ? '0' : '') + month + '.' + year + '.';
	
	return stringToSet;
}

function isEndOfTheMonth(day,month,year)
{
	var daysPerMonth = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	if (month == 2 && !(year%4))
		daysPerMonth[2]++;
	if (day>daysPerMonth[month])
		return true;
	else
		return false;
}

function getTrajanjeFromMulti()
{
	var fieldName = '';
	
	var zemljaPutovanja = 0;
	if (document.dgoshopcalcform.A_ZemljaPutovanja)
		zemljaPutovanja = document.dgoshopcalcform.A_ZemljaPutovanja.value - 0;
	if (   zemljaPutovanja == 28
		 || zemljaPutovanja == 49
		 || zemljaPutovanja == 50
		 || zemljaPutovanja == 51
		 || zemljaPutovanja == 52
		 || zemljaPutovanja == 53
		 || zemljaPutovanja == 54
		 || zemljaPutovanja == 55
		 || zemljaPutovanja == 56
		)
	{
		if (document.dgoshopcalcform.A_VrstaLica && document.dgoshopcalcform.A_VrstaLica.value-0 == 3)
			fieldName = 'A_TrajanjeMultiOlder';
		else
			fieldName = 'A_TrajanjeMultiYoung';
	}
	else
	{
		fieldName = 'A_TrajanjeMulti';
	}
	
	var trajanje = 0;
	if (eval('document.dgoshopcalcform.'+fieldName))
		trajanje = eval('document.dgoshopcalcform.'+fieldName+'.value') - 0;
	if (trajanje == 28)
		return .5;
	else if (trajanje>= 29 && trajanje <=32)
		return 1;
	else if (trajanje>= 33 && trajanje <=37)
		return 2;
	else if (trajanje>= 38 && trajanje <=44)
		return 3;
	else if (trajanje>= 45 && trajanje <=49)
		return 6;
	else if (trajanje>= 50 && trajanje <=55)
		return 12;
	else if (trajanje>= 56 && trajanje <=61)
		return 24;
	else
		return 0;
}

function getTrajanjeFromSingle()
{
	var trajanje = 0;
	if (document.dgoshopcalcform.A_TrajanjeSingle)
		trajanje = document.dgoshopcalcform.A_TrajanjeSingle.value - 0;	
	return trajanje;
}

function getTrajanjeFromSingleGroup()
{
	var trajanje = 0;
	if (document.dgoshopcalcform.A_TrajanjeSingleGroup)
		trajanje = document.dgoshopcalcform.A_TrajanjeSingleGroup.value - 0;	
	return trajanje;
}

function updateSkiDates() {
   if (   document.dgoshopcalcform.A_DodatnaPokrica.value == '1'
       && document.dgoshopcalcform.A_BrojUlazaka
       && document.dgoshopcalcform.A_BrojUlazaka.value == '1' // ne igramo se sa multi
      ) {
      // c/p bez mozga, iz updateEndDateNu
      var vrsta = 0;
      var daysToAdd = 0;
      var monthsToAdd = 0;
		if (document.dgoshopcalcform.A_VrstaPutovanja.value && (vrsta = parseInt(document.dgoshopcalcform.A_VrstaPutovanja.value))) {	
			if (vrsta == 4 || vrsta == 10) {
				daysToAdd = _getDaysFromDuration();
			}
			else if (vrsta == 1) {
				if (document.dgoshopcalcform.A_BrojUlazaka.value && parseInt(document.dgoshopcalcform.A_BrojUlazaka.value) == 2) {
					var months = _getMonthsFromDuration();
					if (months == .5)
						daysToAdd = 15;
					else
						monthsToAdd = months;
				} else {
					daysToAdd = _getDaysFromDuration();
				}
			}
		}
      trajanje = calculateTrajanje(daysToAdd,monthsToAdd)
      // end_of_cp_bez_mozga

      // real action goes here:
      if (!document.dgoshopcalcform.A_SkiPocetak.value
          && document.dgoshopcalcform.A_DatumPocetka && document.dgoshopcalcform.A_DatumPocetka.value
         )
         document.dgoshopcalcform.A_SkiPocetak.value = document.dgoshopcalcform.A_DatumPocetka.value
      if (!document.dgoshopcalcform.A_SkiKraj.value && trajanje)
         document.dgoshopcalcform.A_SkiKraj.value = trajanje
   }
}


