<!-- 
 
var element;

var ajax = new sack();

// PUBLIC
function loadCategories(sel, location_id)
{
	
	obj_name = sel.id;
	var category_id = sel.options[sel.selectedIndex].value;
	
	element = "pricing_id";
	
	if(category_id == 'N/A') {
		
		alert("Please Select a Location");
		document.getElementById(element).disabled = true;
		
	} else {
		
		document.getElementById(element).options.length = 0;	// Empty classes
		
		ajax.requestFile = '/ajax/getTypes_public.php?lid='+location_id;	// Specifying which file to get
		ajax.onLoading = showLoading;
		ajax.onCompletion = createOutput;	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
		document.getElementById(element).disabled = false;
	
	}
	
}

// CP
function cp_loadVehicles(sel, location_id)
{
	obj_name = sel.id;
	var category_id = sel.options[sel.selectedIndex].value;
	
	element = "vehicle_id";
	
	if(category_id == 'N/A') {
		
		alert("Please Select a Type of Car");
		document.getElementById(element).disabled = true;
		
	} else {
		
		document.getElementById(element).options.length = 0;	// Empty classes
		
		ajax.requestFile = '/ajax/getVehicles.php?cid='+category_id+'&lid='+location_id;	// Specifying which file to get
		ajax.onLoading = showLoading;
		ajax.onCompletion = createOutput;	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
		document.getElementById(element).disabled = false;
	
	}
	
}

// NORMAL
function cp_dateDifference(type, from, to, output) {
	
	if(!type) {
		type = 'd';
	}
	
	element = output;
	
	var from_date = document.getElementById(from).value;
	var to_date = document.getElementById(to).value;
	
	if(from_date == '' && to_date == '') {
		alert ("Please select dates for both, reservation from and reservation to.");
	} else if(from_date == '' || to_date == '') {
		// HIDE ERROR: alert ("Please select dates for both, reservation from and reservation to.");
	} else {
		
		// CLEAR Invoicing Type Drop Down
		updateInvoicingType(0, 1);
		hideRentalCharges();
		
		ajax.requestFile = '/ajax/getDateDifference.php?type='+type+'&from='+from_date+'&to='+to_date;	// Specifying which file to get
		ajax.onLoading = showLoading_text;
		ajax.onCompletion = createOutput_datediff;	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
		
	}
	
}

// EDIT
function cp_dateDifference_edit(type, from, to, output) {
	
	if(!type) {
		type = 'd';
	}
	
	element = output;
	
	var from_date = document.getElementById(from).value;
	var to_date = document.getElementById(to).value;
	
	if(from_date == '' && to_date == '') {
		alert ("Please select dates for both, reservation from and reservation to.");
	} else if(from_date == '' || to_date == '') {
		// HIDE ERROR: alert ("Please select dates for both, reservation from and reservation to.");
	} else {
		
		ajax.requestFile = '/ajax/getDateDifference.php?type='+type+'&from='+from_date+'&to='+to_date;	// Specifying which file to get
		ajax.onLoading = showLoading_text;
		ajax.onCompletion = createOutput_datediff_edit;	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
		
	}
	
}

function clearPrices() {
	document.getElementById('unit_rental').value = 0;
	document.getElementById('unit_excess').value = 0;
	document.getElementById('unit_chauffer').value = 0;
	document.getElementById('unit_chauffer_excess').value = 0;
	document.getElementById('unit_fuel').value = 0;
	document.getElementById('unit_fuel_excess').value = 0;
	
	updatePrices();
}

function updatePrices() {
	
	// Update Functions
	update_chauffer();
	update_fuel();
	
	// Variables
	var number_days = Number ( parseFloat(document.getElementById('reservation_difference').value) ).toFixed(2); 
	var duration = Number ( parseFloat(document.getElementById('duration').value) ).toFixed(2); 
	
	// Rental
	var unit_rental = Number ( parseFloat(document.getElementById('unit_rental').value) ).toFixed(2);
	
	// Mileage Excess
	var unit_excess = Number ( parseFloat(document.getElementById('unit_excess').value) ).toFixed(2);
	var mileage_excess = Number ( parseFloat(document.getElementById('mileage_excess').value) ).toFixed(2);
	
	// Chauffer 
	var unit_chauffer = Number ( parseFloat(document.getElementById('unit_chauffer').value) ).toFixed(2);
	
	// Chauffer Excess
	var chauffer_excess_qty = Number ( parseFloat(document.getElementById('chauffer_excess_qty').value) ).toFixed(2);
	var unit_chauffer_excess = Number ( parseFloat(document.getElementById('unit_chauffer_excess').value) ).toFixed(2);
	
	// Fuel
	var fuel_qty = Number ( parseFloat(document.getElementById('fuel_qty').value) ).toFixed(2);
	var unit_fuel = Number ( parseFloat(document.getElementById('unit_fuel').value) ).toFixed(2);
	
	// Fuel Excess
	var fuel_excess_qty = Number ( parseFloat(document.getElementById('fuel_excess_qty').value) ).toFixed(2);
	var unit_fuel_excess = Number ( parseFloat(document.getElementById('unit_fuel_excess').value) ).toFixed(2);
	
	// Others
	var unit_driver_allowance = Number ( parseFloat(document.getElementById('unit_driver_allowance').value) ).toFixed(2);
	var damages = Number ( parseFloat(document.getElementById('damages').value) ).toFixed(2);
	var other_charges = Number ( parseFloat(document.getElementById('other_charges').value) ).toFixed(2);
	var taxes = Number ( parseFloat(document.getElementById('taxes').value) ).toFixed(2);
	var discount = Number ( parseFloat(document.getElementById('discount').value) ).toFixed(2);
	var deposit_paid = Number ( parseFloat(document.getElementById('deposit_paid').value) ).toFixed(2);
	
	// Calculations
	// Totals
	var total_rental = Number ( duration * unit_rental ).toFixed(2);
	var total_chauffer = Number ( duration * unit_chauffer ).toFixed(2);
	var total_fuel = Number ( fuel_qty * unit_fuel ).toFixed(2);
	var total_driver_allowance = Number ( (number_days-1) * unit_driver_allowance ).toFixed(2);
	
	document.getElementById('total_rental').value = total_rental;
	document.getElementById('total_chauffer').value = total_chauffer;
	document.getElementById('total_fuel').value = total_fuel;
	document.getElementById('total_driver_allowance').value = total_driver_allowance;
	
	// Excess
	var total_excess = Number ( mileage_excess * unit_excess ).toFixed(2);
	var total_chauffer_excess = Number ( chauffer_excess_qty * unit_chauffer_excess ).toFixed(2);
	
	var total_fuel_excess = Number ( fuel_excess_qty * unit_fuel_excess ).toFixed(2);
	
	document.getElementById('total_excess').value = total_excess;
	document.getElementById('total_chauffer_excess').value = total_chauffer_excess;
	document.getElementById('total_fuel_excess').value = total_fuel_excess;
	
	// Payables
	var total_payable = Number ( parseFloat(total_rental) + parseFloat(total_chauffer) + parseFloat(total_fuel) + parseFloat(total_driver_allowance) + parseFloat(total_excess) + parseFloat(total_chauffer_excess) + parseFloat(total_fuel_excess) + parseFloat(damages) + parseFloat(other_charges) + parseFloat(taxes - discount) ).toFixed(2);	
	// alert (total_payable);
	document.getElementById('total_payable').value = total_payable;
	
	var balance_payable = Number ( parseFloat(total_payable) - parseFloat(deposit_paid) ).toFixed(2);
	document.getElementById('balance_payable').value = balance_payable;
	
}

function getPrices(sel, location_id)
{
	
	// Pre-data
	inv_type = sel.value;
	inv_method = document.getElementById('invoicing_method').value
	category_id = document.getElementById('category_id').value;
	reservation_difference = document.getElementById('reservation_difference').value;
		
	// Target
	element_loader = "rental_charges_loader";
	element_data = "rental_charges_data";
	
	// Update Mileage
	update_mileage();
	
	if(inv_method == 'N/A') { 
		
		alert("Please Select an Invoicing Method.");
		clearPrices();
		
	} else if(inv_method == 'N/A') { 
		
		alert("Please Select an Invoicing Method.");
		clearPrices();
		
	} else if(inv_type == 'N/A') { 
		
		alert("Please Select an Invoicing Type.");
		clearPrices();
		
	} else {
		
		ajax.requestFile = '/ajax/getRates.php?lid='+location_id+'&cid='+category_id+'&inv_method='+inv_method+'&inv_type='+inv_type+'&days='+reservation_difference;
		ajax.onLoading = showLoading_rates;
		ajax.onCompletion = createOutput_rates;	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
		
	}
	
}

// General AJAX functions

function showLoading()
{	
	var obj = document.getElementById(element);
	obj.options[obj.options.length] = new Option('Loading...','N/A');
}

function showLoading_text()
{	
	var obj = document.getElementById(element);
	obj.value = 0;
}

function showLoading_rates()
{	
	document.getElementById(element_data).style.display = 'none';
	document.getElementById('rental_charges_message').style.display = 'none';
	document.getElementById(element_loader).style.display = '';
}

function createOutput()
{
	document.getElementById(element).options.length = 0;	// Empty city select box
	var obj = document.getElementById(element);
	obj.options[obj.options.length] = new Option('Please Select','N/A');
	eval(ajax.response);	// Executing the response from Ajax as Javascript code	
}

function createOutput_text()
{
	document.getElementById(element).value = '';	// Empty city select box
	var obj = document.getElementById(element);
	eval(ajax.response);	// Executing the response from Ajax as Javascript code	
}

function createOutput_rates()
{
	document.getElementById(element_data).style.display = '';
	document.getElementById(element_loader).style.display = 'none';
	eval(ajax.response);
}

// NORMAL
function createOutput_datediff()
{
	document.getElementById(element).value = '';	// Empty city select box
	var obj = document.getElementById(element);
	eval(ajax.response);	// Executing the response from Ajax as Javascript code	
	
	datediff = obj.value;
	
	// Affect Invoicing Type Drop Down
	updateInvoicingType(datediff, 0);
	
	// Copy to Divs
	document.getElementById('num_days_1').innerHTML = datediff;
	document.getElementById('num_days_2').innerHTML = datediff - 1;
	document.getElementById('duration').value = datediff;
}

// EDIT
function createOutput_datediff_edit()
{
	document.getElementById(element).value = '';	// Empty city select box
	var obj = document.getElementById(element);
	eval(ajax.response);	// Executing the response from Ajax as Javascript code	
	
	datediff = obj.value;
	
	// Copy to Divs
	document.getElementById('num_days_1').innerHTML = datediff;
	document.getElementById('num_days_2').innerHTML = datediff - 1;
}