﻿function createCookie(name,value,days)
{
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}

function closeDialogError()
{
	document.getElementById('dialogErrorCover').style.visibility = 'hidden';
	document.getElementById('dialogErrorMessage').style.visibility = 'hidden';
}

// fires click event on a given control when enter is pressed
function clickControlOnEnter(evt, controlId)
{
	var keyCode = null;

	if (evt.which)
	{
		keyCode = evt.which;
	}
	else if(evt.keyCode)
	{
		keyCode = evt.keyCode;
	}
	
	if (keyCode == 13)
	{
		document.getElementById(controlId).click();
		return false;
	}
	
	return true;
}

function setDivVisible(divId, visible)
{
	var div = document.getElementById(divId);
	
	if(div != null)
	{
		if (visible)
		{
			div.style.visibility = 'visible';
		}
		else
		{
			div.style.visibility = 'hidden';
		}
	}
}

function toggleDiv(divId, visible)
{
	var div = document.getElementById(divId);
	
	if(div != null)
	{
		if (visible)
		{
			div.style.visibility = 'visible';
			div.style.display = 'block';
		}
		else
		{
			div.style.visibility = 'hidden';
			div.style.display = 'none';
		}
	}
}

function setTextBoxReadonly(textBoxId, readonly)
{
	var textBox = document.getElementById(textBoxId);
	
	if (readonly)
	{
		textBox.setAttribute('class', 'ctrlTextBox-Readonly');
		textBox.setAttribute('readonly', 'readonly');
	}
	else
	{
		textBox.setAttribute('class', 'ctrlTextBox');
		textBox.removeAttribute('readonly');
	}
}

function setControlDisabled(controlId, disabled)
{
	var control = document.getElementById(controlId);

	if	(disabled)
	{
		control.setAttribute('disabled', 'disabled');
	}
	else
	{
		control.removeAttribute('disabled');
	}
}

function focusTextBox(evt)
{
	var element = evt.target;
	
	if(element == null)
	{
		element = evt.srcElement;
	}
	
	element.style.backgroundColor = '#e2e5fe';
}

function blurTextBox(evt)
{
	var element = evt.target;
	
	if(element == null)
	{
		element = evt.srcElement;
	}
	
	element.style.backgroundColor = '#ffffff';
}

function keyCheckDec(evt, maxLength)
{	
	var keyCode = evt.keyCode;
	var element = evt.target;
	
	if (element == null)
	{
		element = evt.srcElement;
	}
	
	if (keyCode == null || keyCode == 0)
	{
		keyCode = evt.which;
	}
	
	if (element.value.length >= maxLength)
	{
		return false;
	}

	if (keyCode == 46)
	{ 
		if (element.value.indexOf(".") > 0)
		{
			return false;
		}
	}

	if ((keyCode < 48 || keyCode > 58) && (keyCode != 46) && (keyCode != 8) && (keyCode != 37) && (keyCode != 39))
	{
		return false;
	}

	return true;
}

function keyCheckInt(evt, maxLength)
{
	var keyCode = evt.keyCode;
	var element = evt.target;
	
	if (element == null)
	{
		element = evt.srcElement;
	}
	
	if (keyCode == null)
	{
		keyCode = evt.which;
	}
	
	if (element.value.length >= maxLength)
	{
		return false;
	}

	if ((keyCode < 48 || keyCode > 58))
	{
		return false;
	}

	return true;
}

function recalcTEV()
{
	var v1 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Value1').value);
	var v2 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Value2').value);
	var v3 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Value3').value);
	var v4 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Value4').value);
	var v5 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Value5').value);
	var v6 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Value6').value);
	var v7 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Value7').value);
	var v8 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Value8').value);
	var v9 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Value9').value);
	var v10 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Value10').value);
	var v11 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Value11').value);
	var v12 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Value12').value);
	var v13 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Value13').value);
	
	if (isNaN(v1)) { v1 = 0.0; }
	if (isNaN(v2)) { v2 = 0.0; }
	if (isNaN(v3)) { v3 = 0.0; }
	if (isNaN(v4)) { v4 = 0.0; }
	if (isNaN(v5)) { v5 = 0.0; }
	if (isNaN(v6)) { v6 = 0.0; }
	if (isNaN(v7)) { v7 = 0.0; }
	if (isNaN(v8)) { v8 = 0.0; }
	if (isNaN(v9)) { v9 = 0.0; }
	if (isNaN(v10)) { v10 = 0.0; }
	if (isNaN(v11)) { v11 = 0.0; }
	if (isNaN(v12)) { v12 = 0.0; }
	if (isNaN(v13)) { v13 = 0.0; }
	
	var sum = v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10 + v11 + v12 + v13;
	
	document.getElementById('ctl00_contentMain_tbS2ValueTotal').value = sum;
}

function recalcVPP()
{
	var v1 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Person1').value);
	var v2 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Person2').value);
	var v3 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Person3').value);
	var v4 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Person4').value);
	var v5 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Person5').value);
	var v6 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Person6').value);
	var v7 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Person7').value);
	var v8 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Person8').value);
	var v9 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Person9').value);
	var v10 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Person10').value);
	var v11 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Person11').value);
	var v12 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Person12').value);
	var v13 = parseFloat(document.getElementById('ctl00_contentMain_tbS2Person13').value);
	
	if (isNaN(v1)) { v1 = 0.0; }
	if (isNaN(v2)) { v2 = 0.0; }
	if (isNaN(v3)) { v3 = 0.0; }
	if (isNaN(v4)) { v4 = 0.0; }
	if (isNaN(v5)) { v5 = 0.0; }
	if (isNaN(v6)) { v6 = 0.0; }
	if (isNaN(v7)) { v7 = 0.0; }
	if (isNaN(v8)) { v8 = 0.0; }
	if (isNaN(v9)) { v9 = 0.0; }
	if (isNaN(v10)) { v10 = 0.0; }
	if (isNaN(v11)) { v11 = 0.0; }
	if (isNaN(v12)) { v12 = 0.0; }
	if (isNaN(v13)) { v13 = 0.0; }
	
	var sum = v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10 + v11 + v12 + v13;
	
	document.getElementById('ctl00_contentMain_tbS2PersonTotal').value = sum;
}

// -------------------------------------------------------------------------------
function renderContainer(containerId, dataSourceId)
{
	var tableContainer = document.getElementById(containerId);
	var dataSource = document.getElementById(dataSourceId);
	var parts;
	
	if (dataSource.value.length > 0)
	{
		var subItems = dataSource.value.split(';');
		
		for (var i=0; i<subItems.length; i++)
		{
			tableContainer.insertRow(i);
			tableContainer.rows[i].insertCell(0);
			tableContainer.rows[i].insertCell(1);
			tableContainer.rows[i].insertCell(2);
			
			parts = subItems[i].split(' ');
		
			tableContainer.rows[i].cells[0].innerHTML = renderCurrencyCombo(parts[0]);
			tableContainer.rows[i].cells[1].innerHTML = renderValueText(parts[1]);
			tableContainer.rows[i].cells[2].innerHTML = renderButtons();
		
			//alert(subItems[i]);
		}
	}
	else
	{
		tableContainer.insertRow(0);
		tableContainer.rows[0].insertCell(0);
		tableContainer.rows[0].insertCell(1);
		tableContainer.rows[0].insertCell(2);
		tableContainer.rows[0].cells[0].innerHTML = renderCurrencyCombo('');
		tableContainer.rows[0].cells[1].innerHTML = renderValueText('');
		tableContainer.rows[0].cells[2].innerHTML = renderButtons();
	}
}

function renderCurrencyCombo(selectedCurrency)
{
	var select = '<select class="ctrlDropDownList" onchange="recalcSubItems();">';
	
	for (var i=0; i<exchangeRates.length; i++)
	{
		if(exchangeRates[i][0] == selectedCurrency)
		{
			select += '<option value="' + exchangeRates[i][1] + '" selected="selected">' + exchangeRates[i][0] + '</option>';
		}
		else
		{
			select += '<option value="' + exchangeRates[i][1] + '">' + exchangeRates[i][0] + '</option>';
		}
	}

	select += '</select>';
	
	return select;
}

function renderValueText(value)
{
	var textBox = '<input type="text" value="' + value + '" class="ctrlTextBox" onfocus="focusTextBox(event);" onblur="blurTextBox(event);" onkeypress="return keyCheckDec(event, 10);" onchange="recalcSubItems();" style="width:60px;" />';
	
	return textBox;
}

function renderButtons()
{
	var buttons = '';
	
	buttons += '<img src="/image/bullet_minus.gif" alt="" onclick="removeContainerLine(event);" style="cursor: pointer;" />';
	buttons += '<br/>';
	buttons += '<img src="/image/bullet_plus.gif" alt="" onclick="addContainerLine(event);" style="cursor: pointer;" />';
	
	return buttons;
}

function removeContainerLine(evt)
{
	var element = evt.target;
	
	if (element == null)
	{
		element = evt.srcElement;
	}
	
	var row = element.parentNode.parentNode;
	var table = row.parentNode;
	
	if(table.rows.length > 1)
	{
		table.deleteRow(row.rowIndex);
		recalcSubItems();
	}
}

function addContainerLine(evt)
{
	var element = evt.target;
	
	if (element == null)
	{
		element = evt.srcElement;
	}
	
	var row = element.parentNode.parentNode;
	var table = row.parentNode;
	
	table.insertRow(row.rowIndex+1);
	table.rows[row.rowIndex+1].insertCell(0);
	table.rows[row.rowIndex+1].insertCell(1);
	table.rows[row.rowIndex+1].insertCell(2);
	table.rows[row.rowIndex+1].cells[0].innerHTML = renderCurrencyCombo('');
	table.rows[row.rowIndex+1].cells[1].innerHTML = renderValueText('');
	table.rows[row.rowIndex+1].cells[2].innerHTML = renderButtons();
}

function recalcSubItems()
{
	var td;
	var totalValue = 0.0;
	var totalPerson = 0.0;
	
	for (var i=1; i<=13; i++)
	{
		td = document.getElementById('subItemsValue' + i);
		
		for (var x=0; x<td.childNodes.length; x++)
		{
			if (td.childNodes[x].nodeName == 'TABLE')
			{
				totalValue += getTableTotal(td.childNodes[x]);
				break;
			}
		}
	}
	
	for (var i=1; i<=13; i++)
	{
		td = document.getElementById('subItemsPerson' + i);
		
		for (var x=0; x<td.childNodes.length; x++)
		{
			if (td.childNodes[x].nodeName == 'TABLE')
			{
				totalPerson += getTableTotal(td.childNodes[x]);
				break;
			}
		}
	}
	
	var numTV = new Number(totalValue);
	var numTP = new Number(totalPerson);
	
	document.getElementById('ctl00_contentMain_tbS2ValueTotal').value = numTV.toFixed(2);
	document.getElementById('ctl00_contentMain_tbS2PersonTotal').value = numTP.toFixed(2);
}

function sumarizeForm()
{
	var td;
	var hfValue;
	var hfPerson;

	for (var i=1; i<=13; i++)
	{
		td = document.getElementById('subItemsValue' + i);
		
		for (var x=0; x<td.childNodes.length; x++)
		{
			if (td.childNodes[x].nodeName == 'TABLE')
			{
				hfValue = document.getElementById('ctl00_contentMain_siS2Value' + i + '_hfSubItems');
				hfValue.value = getTableValuesSerialized(td.childNodes[x]);
				break;
			}
		}
	}
	
	for (var i=1; i<=13; i++)
	{
		td = document.getElementById('subItemsPerson' + i);
		
		for (var x=0; x<td.childNodes.length; x++)
		{
			if (td.childNodes[x].nodeName == 'TABLE')
			{
				hfPerson = document.getElementById('ctl00_contentMain_siS2Person' + i + '_hfSubItems');
				hfPerson.value = getTableValuesSerialized(td.childNodes[x]);
				break;
			}
		}
	}
}

function getTableTotal(table)
{
	var total = 0.0;
	var currency;
	var option;
	var exchRate;
	var value;
	
	for (var i=0; i<table.rows.length; i++)
	{
		currency = table.rows[i].cells[0].firstChild;
		option = currency.options[currency.selectedIndex];
		exchRate = parseFloat(option.value);
		value = parseFloat(table.rows[i].cells[1].firstChild.value);
		
		if (isNaN(exchRate) || exchRate == 0.0)
		{
			exchRate = 1.0;
		}
		
		if (isNaN(value))
		{
			value = 0.0;
		}
		
		total += (value / exchRate);
	}
	
	return total;
}

function getTableValuesSerialized(table)
{
	var total = 0.0;
	var currency;
	var option;
	var values = new Array();
	
	for (var i=0; i<table.rows.length; i++)
	{
		if(table.rows[i].cells[1].firstChild.value != '')
		{
			currency = table.rows[i].cells[0].firstChild;
			option = currency.options[currency.selectedIndex];

			values.push(option.text + ' ' + table.rows[i].cells[1].firstChild.value);
		}
	}
	
	return values.join(';');
}

var autorefreshDisabled = false;

function disableAutoRefresh() {
    autorefreshDisabled = true;
}

function enableAutoRefresh() {
    autorefreshDisabled = false;
}

function autoRefresh(timeout) {
    setTimeout('refreshPage()', timeout * 1000);
}

function refreshPage() {
    if (!autorefreshDisabled) {
        window.location.href = window.location.href;
    }
}

function textCounter(fieldId, counterId, maxlimit) {
    var counter = document.getElementById(counterId);
    var field = document.getElementById(fieldId);

    if (field.value.length > maxlimit) {
        field.value = field.value.substring(0, maxlimit);
    }
    else {
        counter.innerHTML = maxlimit - field.value.length;
    }
}
