	
function getTvValue(value, label)
{
	if (value != 0) {
		price = $('#service_payment_' + value).val();
	} else {
		price = 0;
	}
	if (label == 'BRAK') {
		label = '';
	}
	$('.loading_calculations').show();
	$('#right_saving').html('0');
	$('#service_availability_2').val(price);
	$('#actual_service_type_2').val(value);
	$('#label_details_2').html(label);
	setSlider();
	checkPackage();
	updateGlobalSummary();
}

function getInternetValue(value, label)
{
	if (value != 0) {
		price = $('#service_payment_' + value).val();
	} else {
		price = 0;
	}
	if (label == 'BRAK') {
		label = '';
	}
	$('.loading_calculations').show();
	$('#right_saving').html('0');
	$('#service_availability_4').val(price);
	$('#actual_service_type_4').val(value);
	$('#label_details_4').html(label);
	checkPackage();
	updateGlobalSummary();
	checkMaxUploadMultiplier();
}

function getPhoneValue(value, label)
{
	if (value != 0) {
		price = $('#service_payment_' + value).val();
	} else {
		price = 0;
	}
	if (label == 'BRAK') {
		label = '';
	}
	$('.loading_calculations').show();
	$('#right_saving').html('0');
	$('#service_availability_5').val(price);
	$('#actual_service_type_5').val(value);
	$('#label_details_5').html(label);
	checkPackage();
	updateGlobalSummary();
}


function checkMaxUploadMultiplier() {
	var speed = 0;
	for (var i = 0; i < internetServiceTypesValues.length; i++)	{
		if (parseInt(internetServiceTypesValues[i]) == $('#actual_service_type_4').val()) {
			speed = parseInt(internetServiceTypesLabels[i]);
			if (internetServiceTypesLabels[i].indexOf('Mb') != -1)
			{
				speed = speed * 1024;
			}
			break;
		}
	}
	if (speed < 10240) {
		divider = 4;
	} else {
		divider = 5;
	}
	baseSpeed = speed / divider;
	maxOption = speed;
	
	$('#upload_increase :option').each(function (i, element) {
		$(element).removeAttr('disabled');
		$(element).show();
		var optionValue = $(element).val();
		if ((baseSpeed + (parseInt(optionValue) * 128)) > maxOption)
		{
			$(element).attr('disabled', 'disabled');
			$(element).hide();
		}
	});
}

function updateSummary(serviceId) {
	var paymentTypeId = $('#paymentType').val();
	if ($('#service_availability_' + serviceId).val() != 0) {
		$('#pay_licencefee_' + serviceId).html(number_format($('#service_availability_' + serviceId).val(), 2, '.', ''));
		$('#pay_installation_' + serviceId).html(number_format(getInstallationFee(paymentTypeId,serviceId), 2, '.', ''));
		var extraPayments = getServiceOptionsValue(serviceId);
		$('#pay_extra_' + serviceId).html(number_format((extraPayments[1] + extraPayments[0]), 2, '.', ''));
		
		$('#right_summary_' + serviceId).html(number_format($('#service_availability_' + serviceId).val(), 2, '.', ''));
	} else {
		$('#pay_licencefee_' + serviceId).html(number_format(0, 2, '.', ''));
		$('#pay_installation_' + serviceId).html(number_format(0, 2, '.', ''));
		$('#pay_extra_' + serviceId).html(number_format(0, 2, '.', ''));
		
		$('#right_summary_' + serviceId).html(number_format(0, 2, '.', ''));
	}
}

function updateGlobalSummary() {
	if ($('#estate').val() == '') {
		alert('Proszę wybrać osiedle');
		return false;
	}
	
	var installationFees = 0;
	var monthlyFees = 0;
	var extraFees = 0;
	var paymentTypeId = $('#paymentType').val();
	
	var price = 0;
	$('.package_availability').each(function(i, element) {
		serviceId = $(element).attr('id');
		idElements = serviceId.split('_');
		serviceId = idElements.pop();
		updateSummary(serviceId);
		if ($(element).val() != 0) {
			
			monthlyFees += parseFloat($(element).val());
			installationFees += parseFloat(getInstallationFee(paymentTypeId,serviceId));
			concetratedExtraFees = getServiceOptionsValue(serviceId);
			monthlyFees += parseFloat(concetratedExtraFees[1]);
			if (serviceId == 2) {
				installationFees += parseFloat(concetratedExtraFees[0]);
			} else	{
				extraFees += parseFloat(concetratedExtraFees[0]);
			}
		}
		
	});		
	price = monthlyFees + installationFees + extraFees;
	$('#globalPayment').html(number_format(price, 2, '.', ''));	
	$('#right_total').html(number_format(price, 2, '.', ''));	
	$('#totalPrice').val(price);	
	
	$('#right_monthly_fees').html(number_format(monthlyFees, 2, '.', ''));
	$('#right_installation_fees').html(number_format(installationFees, 2, '.', ''));
	checkPackage();
}

function getServiceOptionsValue(serviceId) {
	var summaryValue = 0;
	var monthlyValues = 0;
	$('.packet' + serviceId).each(function(i, element) {
	  if ($(element).attr('checked') == true) {
		elementValue = $(element).val();
		elementId = $(element).attr('id');
		if ($('#bonus_' + elementId).val() && $('#actual_service_type_4').val() != 0 && $('#actual_service_type_2').val() != 0) {
			elementValue = $('#bonus_' + elementId).val();
		}
		if ($(element).hasClass('oneTimeFee')) {
			summaryValue += parseFloat(elementValue);
		} else {
			monthlyValues += parseFloat(elementValue);
		}
	  	// monthsNumber = $('#payment_type_months_' + $('#paymentType').val()).val();
	  	// summaryValue += parseFloat(elementValue)*parseInt(monthsNumber);
	  }
	});
	return new Array(summaryValue, monthlyValues);
}

function getInstallationFee(paymentTypeId, serviceId) {
	selectedServiceType = $('#actual_service_type_' + serviceId).val();
	var fee = $('.service_fee_' + selectedServiceType).val();
	if (fee == null || fee == '') {
		fee = 0;
	}
	
	return fee;
}

function changeValue(destinationId, object)
{
	baseValue = 1;
	newValue = parseFloat(baseValue) * $(object).val();
	$('#' + destinationId).val(number_format(newValue, 2, '.', ''));
}

function getEstateOffer(save) {
	if ($('#estate').val() != '')
	{
		if (save)
		{
			saveDataToCookie();
		}
		estateId = $('#estate').val();
		contractTypeId = $('#contractType').val();
		paymentTypeId = $('#paymentType').val();
		window.location.href = BASE_URL + pageName + '&estate=' + estateId + '&contractType=' + contractTypeId + '&paymentType=' + paymentTypeId;
	}
}

function saveDataToCookie() {
	var actualServicesData = new Array();
	var packetOptionsData = new Array();
	var packageAvailability = new Array();
	$('.packetOption').each(function (i, element) {
		if ($(element).attr('checked'))
		{
			packetOptionsData.push($(element).attr('id'));
		}
	});
	$('.package_availability').each(function (i, element) {
		elements = new Array($(element).attr('id'), $(element).val());
		packageAvailability.push(elements.join('*'));
	});
	$('.actual_services_types').each(function (i, element) {
		elements = new Array($(element).attr('id'), $(element).val());
		actualServicesData.push(elements.join('*'));
	});
	packetOptionsData = packetOptionsData.join('^');
	actualServicesData = actualServicesData.join('^');
	packageAvailability = packageAvailability.join('^');
	cookieContent = new Array(packetOptionsData, actualServicesData, packageAvailability, document.getElementById('upload_increase').selectedIndex);
	document.cookie = 'sm_calc=' + cookieContent.join('|');
}

function loadDataFromCookie()
{
if (document.cookie.length>0)
  {
  cookieName = 'sm_calc';
  cookie_start=document.cookie.indexOf('sm_calc' + "=");
  if (cookie_start!=-1)
    {
    cookie_start=cookie_start + cookieName.length+1;
    cookie_end=document.cookie.indexOf(";",cookie_start);
    if (cookie_end==-1) cookie_end=document.cookie.length;
    	cookieContent = unescape(document.cookie.substring(cookie_start,cookie_end));
    	cookieContent = cookieContent.split('|');
    	packetOptionsData = cookieContent[0].split('^');
    	actualServicesData = cookieContent[1].split('^');
    	packageAvailabilityData = cookieContent[2].split('^');
    	for (var i = 0; i < packetOptionsData.length; i++)
    	{
    		if (packetOptionsData[i] != '')
    		{
    			document.getElementById(packetOptionsData[i]).checked = true;
    		}
    	}
    	for (var i = 0; i < actualServicesData.length; i++)
    	{
    		if (actualServicesData[i] != '')
    		{
	    		elements = actualServicesData[i].split('*');
	    		if (document.getElementById(elements[0]) != null)
	    		{
	    			document.getElementById(elements[0]).value = elements[1];
	    		}
	    		sliderId = elements[0].substr(20);
	    		slidersDefaultValues[sliderId] = elements[1];
    		}
    	}
    	for (var i = 0; i < packageAvailabilityData.length; i++)
    	{
    		if (packageAvailabilityData[i] != '')
    		{
	    		elements = packageAvailabilityData[i].split('*');
	    		if (document.getElementById(elements[0]) != null)
	    		{	
	    			document.getElementById(elements[0]).value = elements[1];
	    		}
    		}
    	}
    	document.getElementById('upload_increase').selectedIndex = cookieContent[3];
    	deleteCookie(cookieName, '/', '');
    	updateGlobalSummary();
    }
  }
return "";
}

function deleteCookie( name, path, domain ) {
	
	document.cookie = name + "=" + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}


/***** OBIEKTY *****/


/***** obiekt przetrzymujący dane usług ********/
function offerConfigSafeObject() {
	this.internetPrice = 0;
	this.phonePrice = 0;
	this.tvPrice = 0;
	this.internetInstallationPrice = 0;
	this.phoneInstallationPrice = 0;
	this.tvInstallationPrice = 0;
	
	this.addPriceByServiceId = addPriceToSafeByServiceId;
	this.addInstallationPriceByServiceId = addInstallationPriceToSafeByServiceId;
	this.getPriceByServiceId = getPriceFromSafeByServiceId;
	this.getInstallationPriceByServiceId = getInstallationPriceFromSafeByServiceId;
	
	this.getInternetServiceId = getInternetServiceId;
	this.getPhoneServiceId = getPhoneServiceId;
	this.getTvServiceId = getTvServiceId;
	
	this.getInstallationSum = getInstallationSum;
	this.getMonthlySum = getMonthlySum;
	this.getTotalSum = getTotalSum;
}

function getInstallationSum()
{
	return parseFloat(this.internetInstallationPrice) + parseFloat(this.phoneInstallationPrice) + parseFloat(this.tvInstallationPrice);
}

function getMonthlySum()
{
	return parseFloat(this.internetPrice) + parseFloat(this.phonePrice) + parseFloat(this.tvPrice);
}

function getTotalSum()
{
	return parseFloat(this.getMonthlySum()) + parseFloat(this.getInstallationSum());
}


function getTvServiceId()
{
	return '2';
}

function getInternetServiceId()
{
	return '4';
}

function getPhoneServiceId()
{
	return '5';
}

function addInstallationPriceToSafeByServiceId(serviceId, price) {
	switch (serviceId) {
	case '2': 
		this.tvInstallationPrice = price;
		break;
	case '4': 
		this.internetInstallationPrice = price;
		break;
	case '5': 
		this.phoneInstallationPrice = price;
		break;
	}
}

function addPriceToSafeByServiceId(serviceId, price) {
	switch (serviceId) {
	case '2': 
		this.tvPrice = price;
		break;
	case '4': 
		this.internetPrice = price;
		break;
	case '5': 
		this.phonePrice = price;
		break;
	}
}

function getInstallationPriceFromSafeByServiceId(serviceId) {
	switch (serviceId) {
	case '2': 
		return this.tvInstallationPrice;
	case '4': 
		return this.internetInstallationPrice;
	case '5': 
		return this.phoneInstallationPrice;
	}
}

function getPriceFromSafeByServiceId(serviceId) {
	switch (serviceId) {
	case '2': 
		return this.tvPrice;
	case '4': 
		return this.internetPrice;
	case '5': 
		return this.phonePrice;
	}
}
/***** END ********/


/***** obiekt kalkulatora "oszczędności" ********/
function economyCalculatorObject() {
	this.packetPrice = 0;
	this.packetInstallationPrice = 0;
	this.packetServicesIds = new Array();
	this.offerSafeObject = null;
	this.offerPrice = 0;
	this.offerInstallationPrice = 0;
	this.multiplier = 0;
	
	this.calculate = calculateEconomy;
	this.addPacketServicesIds = addPacketServicesIds;
}

function addPacketServicesIds(idsAsString) {
	this.packetServicesIds = idsAsString.split('|');
}

function calculateEconomy() {
	if (this.offerSafeObject != null) {
		var idsArray = this.packetServicesIds;
		for (var i = 0; i < idsArray.length; i++) {
			if (!isNaN(parseFloat(this.offerSafeObject.getPriceByServiceId(idsArray[i])))) {
				this.offerPrice += parseFloat(this.offerSafeObject.getPriceByServiceId(idsArray[i]));
			}
			if (!isNaN(parseFloat(this.offerSafeObject.getInstallationPriceByServiceId(idsArray[i])))) {
				this.offerInstallationPrice += parseFloat(this.offerSafeObject.getInstallationPriceByServiceId(idsArray[i]));
			}
		}
	}
	var offerTotalPrice = (parseFloat(this.offerPrice) * parseFloat(this.multiplier)) + parseFloat(this.offerInstallationPrice);
	var packetTotalPrice = (parseFloat(this.packetPrice) * parseFloat(this.multiplier)) + parseFloat(this.packetInstallationPrice);
	
	return parseFloat(offerTotalPrice) - parseFloat(packetTotalPrice);
}
/***** END ********/


function changeAvailability() {
//	$('#service_2_13').removeAttr('disabled');
//	$('#service_2_12').removeAttr('disabled');
	clearTvOptions()
	if ($('#service_2_12').attr('checked') == true) {
		$('#service_2_13').attr('disabled', 'disabled');
	}
	if ($('#service_2_13').attr('checked') == true) {
		$('#service_2_12').attr('disabled', 'disabled');
	}
}

function setSlider() {
//	$('#service_2_13').removeAttr('disabled');
//	$('#service_2_12').removeAttr('disabled');
	clearTvOptions();
	$('#service_2_13').removeAttr('checked');	
	$('#service_2_12').removeAttr('checked');	
	if ($('#service_availability_2').val() != 0) {
		if ($('#actual_service_type_4').val() != 0) {
			$('#service_2_12').attr('checked', 'checked');
			$('#service_2_13').attr('disabled', 'disabled');
		} else {
			$('#service_2_13').attr('checked', 'checked');
			$('#service_2_12').attr('disabled', 'disabled');
		}
	}
}

function clearTvOptions()
{
	$('#service_2_13').removeAttr('disabled');
	$('#service_2_12').removeAttr('disabled');	
}