var extends_class = function(child, parent) {
    // F je pomocný dočasný konstruktor
    var F = function() { };
    F.prototype = parent.prototype;
    child.prototype = new F();
}; 

//---------------------------------------------------------------------------//

var Item = function (name, label, price) {
	this.name 	= name;
	this.label 	= label;
	this.price 	= price;
};

Item.prototype.setName = function(name) {
	this.name = name;
};

Item.prototype.getName = function() {
	return this.name;
};

Item.prototype.setLabel = function(label) {
	this.label = label;
};

Item.prototype.getLabel = function() {
	return this.label;
};

Item.prototype.setPrice = function(price) {
	this.price = price;
};

Item.prototype.getPrice = function() {
	return this.price;
};

//---------------------------------------------------------------------------//

var Model = function (name, label, price) {
	this.name 				= name;
	this.label 				= label;
	this.price 				= price;
	this.accessoriesItems 	= [];
};

Model.prototype.addAcessoriesItem = function () {
	this.accessoriesItems.
};


extends_class(Model, Item);

//---------------------------------------------------------------------------//

var ModelAccessories = function (model ,name, label, price) {
	this.model = model;
	this.name 	= name;
	this.label 	= label;
	this.price 	= price;
};

extends_class(ModelAccessories, Item);


/**
 * Třída modelů
 * @return
 */
var Models = function () {	

};

Models.prototype.category 	= ['f3b','f3j'];
Models.prototype.f3b 		= ['Extasy', 'Evolution', 'Eagle'];
Models.prototype.f3j 		= ['Xantipa II'];

Models.prototype.getCategories = function () {
	return this.category;
};


Models.prototype.getModels = function(category) {	
	return Models[category];
};

/**
 * Třída kalkulátoru
 * @param string element_id ID elementu na který je kalkulátor navázán
 */


// Nazvy dostupnych modelu
var PriceCalculator = function(element_id) {
	this.element_id = element_id;
};

PriceCalculator.prototype.ID			= 'price-calculator';
PriceCalculator.prototype.modelListID 	= 'model-list';

// Ulozeni nazvu vybraneho modelu
PriceCalculator.prototype.select_model_name = null;

/**
 * Vrati DOM reprezentaci objektu kalkulatoru v rezimu tisku
 * @return
 */
PriceCalculator.prototype.renderPrintMode = function() {
	return '';
};

/**
 * Vrati DOM reprezentaci objektu kalkulatoru v rezimu uprav
 * @return
 */
PriceCalculator.prototype.renderEditMode = function() {
	return '';
};

/**
 * Vrati DOM reprezentaci objektu kalkulatoru
 * @param string mode mod ve kterem se ma kalkulator vykreslit 
 * @return DOM
 */
PriceCalculator.prototype.render = function (mode) {
	var result = '';
	
	switch(mode) {
		case 'print':
			result = this.renderPrintMode();
		break;
		
		default:
			result = this.renderEditMode();
		break;	
			
	};
	
	return result;
};

/**
 * Nastavi jmeno vybraneho modelu
 * @param string model_name
 * @return void
 */
PriceCalculator.prototype.setSelectModelName = function (model_name) {
	this.select_model_name = model_name;
};

/**
 * Vrati jmeno vybraneho modelu
 * @return string
 */
PriceCalculator.prototype.getSelectModelName = function () {
	return this.select_model_name;
};

/**
 * Vrati DOM repreyentaci objektu seznamu modelu
 * @return DOM
 */
PriceCalculator.prototype.renderModelList = function() {
	
	var list = 	$('<select></select>')
					.append('<option>&nbsp;</option>');

	var models = new Models();
	var categories_arr = models.getCategories();
	
	for (i in categories_arr) {
		
		var opt_goup = 	$('<optgroup></optgroup>')
							.attr({ label : categories_arr[i] });
		
		alert(categories_arr[i]);
		var models_arr = models[categories_arr[i]];

		for (j in models_arr) {
			opt_goup.append($('<option></option>')
								.attr({ value : }))
			
			alert(models_arr[j]);
		}
	}

	return list;
};




