/*
 * module: dsbox_item_update 
 * 
 */
YUI.add('dsbox_item_update', function(Y) {
    Y.namespace('dsbox');

	var GUIStateLoading = 'loading', 
		GUIStateSaving = 'saving',
		GUIStateReady = 'ready';
    
    Y.dsbox.ItemUpdate = function(config) {
    	this._config = config;
    	this._current_item_uid = null;

    	this._details_model = null;
    	this._details_state = GUIStateReady;
    	this._details_datasource = new Y.DataSource.Get({source:"/start/ajax_item_details?"});
        this._details_datasource.plug(Y.Plugin.DataSourceJSONSchema, {
            schema: {
                resultListLocator: "details",
                resultFields: ["uid", "name", "keywords", "shop_groups", "shop_group_name", "use_count", "is_public"]
            }
        });
        
        this._in_store_model = null;
        this._in_store_state = GUIStateReady;
    	this._in_store_datasource = new Y.DataSource.Get({source:"/start/ajax_get_in_store_list?"});
        this._in_store_datasource.plug(Y.Plugin.DataSourceJSONSchema, {
            schema: {
                resultListLocator: "in_store_list",
                resultFields: ["uid", "item_uid", "count", "unit_sub_uid", "is_default", "short_name", "long_name", "long_names", "unit_subs"]
            }
        });

        this._unit_conversion_model = null;
        this._unit_conversion_state = GUIStateReady;
    	this._unit_conversion_datasource = new Y.DataSource.Get({source:"/start/ajax_get_unit_conversion_list?"});
        this._unit_conversion_datasource.plug(Y.Plugin.DataSourceJSONSchema, {
            schema: {
                resultListLocator: "unit_conversion_list",
                resultFields: ["uid", "item_uid", "count", "unit_sub_from_uid", "unit_sub_to_uid", "factor", "unit_subs"]
            }
        });

    };

    Y.dsbox.ItemUpdate.prototype.start = function () {
    	this._init();
    };

    Y.dsbox.ItemUpdate.prototype.start_update = function (item_uid) {
		this._current_item_uid = item_uid;
    	if(this._details_state == GUIStateReady) {
    		this._details_load_start();
    	}
    	if(this._in_store_state == GUIStateReady) {
    		this._in_store_load_start();
    	}
    	if(this._unit_conversion_state == GUIStateReady) {
    		this._unit_conversion_load_start();
    	}
    };

    /*
     * details functionality
     */
    Y.dsbox.ItemUpdate.prototype._details_load_start = function () {
    	this._details_state = GUIStateLoading;
    	this._details_gui_update();
    	this._details_model = null;
    	this._details_datasource.sendRequest({
           		callback: {
    				success: Y.bind(this._details_callback_success, this), 
    				failure: Y.bind(this._details_callback_failure, this)
    			},
           		request: 'item_uid='+this._current_item_uid
           	});
    };

    Y.dsbox.ItemUpdate.prototype._details_callback_success = function (e) {
    	if(this._details_state == GUIStateLoading) {
    		this._details_state = GUIStateReady;
    		this._details_model = e.response.results[0];
    		this._details_gui_update();
    	}
    };
    
    Y.dsbox.ItemUpdate.prototype._details_callback_failure = function (e) {
    	if(this._details_state == GUIStateLoading) {
    		this._details_model = null;
    	}
    };

    Y.dsbox.ItemUpdate.prototype._details_gui_update = function () {
    	if(this._details_model) {
    		var shop_group_html = '';
    		for (shop_group_id in this._details_model.shop_groups) {
        		var shop_group = this._details_model.shop_groups[shop_group_id];
        		if (shop_group.selected) {
        			shop_group_html += '<option value="'+ shop_group.uid +'" selected="yes" />';
        		}
        		else {
        			shop_group_html += '<option value="'+ shop_group.uid +'"/>';
        		}
				for (var level = 0; level < shop_group.level; level++) {
					shop_group_html += '&#8594; ';
				}
    			shop_group_html += shop_group.name +'</option>';
        		
        	}
    		Y.one("#form_shop_group").setContent(shop_group_html);

    		// Need to reset form for select to work on Firefox
    		var form_id = this._config.gui_uid +'_form_details';
    		Y.one("#"+form_id).reset();

    		
    		Y.one("#form_item_name").setAttribute('value', this._details_model.name);
    		Y.one("#form_keywords").setContent( this._details_model.keywords);

    		if (this._config.is_item_manager) {
    			Y.Node.getDOMNode(Y.one("#form_is_public")).checked = false;
	    		if(this._details_model.is_public == 1) {
	    			Y.Node.getDOMNode(Y.one("#form_is_public")).checked = true;
	    		}
	    		Y.one("#form_uid").setContent( this._details_model.uid);
    		}

    		
        	var form_id = this._config.gui_uid +'_form_details';
        	var node_id_button_delete = form_id +'_delete';
        	if(this._details_model.use_count == 0) {
        		Y.one("#"+node_id_button_delete).removeAttribute('disabled');
        	}
        	else {
        		Y.one("#"+node_id_button_delete).setAttribute('disabled', 'yes');
        	}
    		
        	var node_id_details = this._config.gui_uid + '_details';
    		Y.one("#"+node_id_details).setStyle('display', 'block');


    	}
    }

    /*
     * in_store functionality
     */
    Y.dsbox.ItemUpdate.prototype._in_store_load_start = function () {
    	this._in_store_state = GUIStateLoading;
    	this._in_store_model = null;
    	this._in_store_datasource.sendRequest({
           		callback: {
    				success: Y.bind(this._in_store_callback_success, this), 
    				failure: Y.bind(this._in_store_callback_failure, this)
    			},
           		request: 'item_uid='+this._current_item_uid
           	});
    };

    Y.dsbox.ItemUpdate.prototype._in_store_callback_success = function (e) {
    	if(this._in_store_state == GUIStateLoading) {
    		this._in_store_state = GUIStateReady;
    		this._in_store_model = e.response.results;
    		this._in_store_gui_update();
    	}
    };
    
    Y.dsbox.ItemUpdate.prototype._in_store_callback_failure = function (e) {
    	if(this._in_store_state == GUIStateLoading) {
    		this._in_store_model = null;
    	}
    };

    Y.dsbox.ItemUpdate.prototype._in_store_gui_update = function () {
    	if(this._in_store_model) {
    		var in_store_html = '';
    		in_store_html += '<div class="dsbox_table_no_select">';
    		in_store_html += '<ul>';
        	for (in_store_id in this._in_store_model) {
        		var in_store = this._in_store_model[in_store_id];
            	var form_id = 'in_store_form_' + in_store.uid;
        		in_store_html += this._in_store_gui_update_gen_row_html(form_id, in_store);
        	}
        	in_store_html += '</ul>';
        	in_store_html += '</div>';
    		Y.one("#in_store_node_id").set('innerHTML', in_store_html);
    		
        	for (in_store_id in this._in_store_model) {
        		var in_store = this._in_store_model[in_store_id];
            	var form_id = 'in_store_form_' + in_store.uid;
            	var node_id_button_del = form_id + '_del';
            	var node_id_button_save = form_id + '_save';
            	var node_id_default = form_id + 'form_default';

    			Y.Node.getDOMNode(Y.one("#"+node_id_default)).checked = false;
	    		if(in_store.is_default == 1) {
	    			Y.Node.getDOMNode(Y.one("#"+node_id_default)).checked = true;
	    		}
            	
        		Y.on("click", Y.bind(this._in_store_click_save, this, in_store.uid), "#"+node_id_button_save);
        		Y.on("click", Y.bind(this._in_store_click_del, this, in_store.uid), "#"+node_id_button_del);
        	}
        	var node_id_in_store = this._config.gui_uid + '_in_store';
    		Y.one("#"+node_id_in_store).setStyle('display', 'block');    		
    	}
    }

    Y.dsbox.ItemUpdate.prototype._in_store_gui_update_gen_row_html = function (form_id, in_store) {
    	var node_id_button_del = form_id + '_del';
    	var node_id_button_save = form_id + '_save';
    	var node_id_sub_unit = form_id + 'form_sub_unit';
    	var node_id_count = form_id + 'form_count';
    	var node_id_short_name = form_id + 'form_short_name';
    	var node_id_long_name = form_id + 'form_long_name';
    	var node_id_long_names = form_id + 'form_long_names';
    	var node_id_default = form_id + 'form_default';
    	var html = '';
		html += '<li>';
		html += '  <div class="yui3-g" style="height:100%;">';
		html += '  <div class="yui3-u-4-5" style="height:100%;">';
		html += '    <form id="'+form_id+'">';
		
		html += '      <div class="dsbox_form_field dsbox_float_left" style="width:110px;">';
		html += '        <div class="dsbox_form_field_label">'+this._config.dictionary.count_title+'</div>';
		html += '        <div class="dsbox_form_field_input_box">';
		html += '          <input type="text" name="form_count" id="'+node_id_count+'" value="' + in_store.count + '"></input>';
		html += '        </div>';
		html += '      </div>';

		html += '      <div class="dsbox_form_field dsbox_float_left" style="width:110px;">';
		html += '        <div class="dsbox_form_field_label">'+this._config.dictionary.unit_title+'</div>';
		html += '        <div class="dsbox_form_field_input_box">';
		html += '          <select name="form_sub_unit" id="'+node_id_sub_unit+'">';
		html += this._gui_gen_row_unit_select_options_html(in_store.unit_subs, in_store.unit_sub_uid);
		html += '          </select>';
		html += '        </div>';
		html += '      </div>';

		html += '      <div class="dsbox_form_field dsbox_float_left" style="width:70px;">';
		html += '        <div class="dsbox_form_field_label">'+this._config.dictionary.default_title+'</div>';
		html += '        <div class="dsbox_form_field_input_box">';
		html += '      <input type="checkbox" name="form_default" id="'+node_id_default+'"/>';
		html += '        </div>';
		html += '      </div>';

		html += '      <div class="dsbox_float_end">';
		html += '      </div>';

		html += '      <div class="dsbox_form_field dsbox_float_left" style="width:110px;">';
		html += '        <div class="dsbox_form_field_label">'+this._config.dictionary.unit_long_name_title+'</div>';
		html += '        <div class="dsbox_form_field_input_box">';
		html += '          <input  type="text" name="form_long_name" id="'+node_id_long_name+'" value="'+in_store.long_name+'"></input>';
		html += '        </div>';
		html += '      </div>';
		
		html += '      <div class="dsbox_form_field dsbox_float_left" style="width:110px;">';
		html += '        <div class="dsbox_form_field_label">'+this._config.dictionary.unit_long_names_title+'</div>';
		html += '        <div class="dsbox_form_field_input_box">';
		html += '          <input  type="text" name="form_long_names" id="'+node_id_long_names+'" value="'+in_store.long_names+'"></input>';
		html += '        </div>';
		html += '      </div>';

		html += '      <div class="dsbox_form_field dsbox_float_left" style="width:70px;">';
		html += '        <div class="dsbox_form_field_label">'+this._config.dictionary.unit_short_name_title+'</div>';
		html += '        <div class="dsbox_form_field_input_box">';
		html += '          <input type="text" name="form_short_name" id="'+node_id_short_name+'" value="'+in_store.short_name+'"></input>';
		html += '        </div>';
		html += '      </div>';

		html += '      <div class="dsbox_float_end">';
		html += '      </div>';
		html += '    </form>';
		html += '  </div>';
		html += '  <div class="yui3-u-1-5" style="height:100%;">';
		html += '    <div class="dsbox_button_box_small	dsbox_float_right dsbox_margin_small">';
		html += '      <input class="dsbox_button_small" id="'+node_id_button_save+'" type="button" value="'+this._config.dictionary.button_name_save+'" />';
		html += '    </div>';
		html += '    <div class="dsbox_button_box_small	dsbox_float_right dsbox_margin_small">';
		html += '      <input class="dsbox_button_small dsbox_button_warning" id="'+node_id_button_del+'" type="button" value="'+this._config.dictionary.button_name_delete+'" />';
		html += '    </div>';
		html += '  </div>';
		html += '  </div>';
		html += '</li>';
		return html
    }

    
    /*
     * unit_conversion functionality
     */
    Y.dsbox.ItemUpdate.prototype._unit_conversion_load_start = function () {
    	this._unit_conversion_state = GUIStateLoading;
    	this._unit_conversion_model = null;
    	this._unit_conversion_datasource.sendRequest({
           		callback: {
    				success: Y.bind(this._unit_conversion_callback_success, this), 
    				failure: Y.bind(this._unit_conversion_callback_failure, this)
    			},
           		request: 'item_uid='+this._current_item_uid
           	});
    };

    Y.dsbox.ItemUpdate.prototype._unit_conversion_callback_success = function (e) {
    	if(this._unit_conversion_state == GUIStateLoading) {
    		this._unit_conversion_state = GUIStateReady;
    		this._unit_conversion_model = e.response.results;
    		this._unit_conversion_gui_update();
    	}
    };
    
    Y.dsbox.ItemUpdate.prototype._unit_conversion_callback_failure = function (e) {
    	if(this._unit_conversion_state == GUIStateLoading) {
    		this._unit_conversion_model = null;
    	}
    };

    Y.dsbox.ItemUpdate.prototype._unit_conversion_gui_update = function () {
    	if(this._unit_conversion_model) {
    		var unit_conversion_html = '';
    		unit_conversion_html += '<div class="dsbox_table_no_select">';
    		unit_conversion_html += '<ul>';
        	for (unit_conversion_id in this._unit_conversion_model) {
        		var unit_conversion = this._unit_conversion_model[unit_conversion_id];
            	var form_id = 'unit_conversion_form_' + unit_conversion.uid;
            	unit_conversion_html += this._unit_conversion_gui_update_gen_row_html(form_id, unit_conversion);
        	}
        	unit_conversion_html += '</ul>';
        	unit_conversion_html += '</div>';
    		Y.one("#unit_conversion_node_id").set('innerHTML', unit_conversion_html);
    		
        	for (unit_conversion_id in this._unit_conversion_model) {
        		var unit_conversion = this._unit_conversion_model[unit_conversion_id];
            	var form_id = 'unit_conversion_form_' + unit_conversion.uid;
            	var node_id_button_del = form_id + '_del';
            	var node_id_button_save = form_id + '_save';
        		Y.on("click", Y.bind(this._unit_conversion_click_save, this, unit_conversion.uid), "#"+node_id_button_save);
        		Y.on("click", Y.bind(this._unit_conversion_click_del, this, unit_conversion.uid), "#"+node_id_button_del);
        	}
        	var node_id_conversion = this._config.gui_uid + '_conversion';
    		Y.one("#"+node_id_conversion).setStyle('display', 'block');
    	}
    }

    Y.dsbox.ItemUpdate.prototype._unit_conversion_gui_update_gen_row_html = function (form_id, unit_conversion) {
    	var node_id_button_del = form_id + '_del';
    	var node_id_button_save = form_id + '_save';
    	var node_id_sub_unit_from = 'form_sub_unit_from';
    	var node_id_sub_unit_to = 'form_sub_unit_to';
    	var node_id_factor = 'form_factor';
    	var html = '';
		html += '<li>';
		html += '  <div class="yui3-g" style="height:100%;">';
		html += '  <div class="yui3-u-4-5" style="height:100%;">';

		html += '  <form id="'+form_id+'">';
		html += '  <div class="dsbox_form_field dsbox_float_left" style="width:110px;">';
		html += '    <div class="dsbox_form_field_label">'+this._config.dictionary.unit_from_title+'</div>';
		html += '    <div class="dsbox_form_field_input_box">';
		html += '      <select class="dsbox_form_select" name="'+node_id_sub_unit_from+'" id="'+node_id_sub_unit_from+'">';
		html += this._gui_gen_row_unit_select_options_html(unit_conversion.unit_subs, unit_conversion.unit_sub_from_uid);
    	html += '      </select>';
		html += '    </div>';
		html += '  </div>';

		html += '  <div class="dsbox_form_field dsbox_float_left" style="width:110px;">';
		html += '    <div class="dsbox_form_field_label">'+this._config.dictionary.unit_to_title+'</div>';
		html += '    <div class="dsbox_form_field_input_box">';
		html += '      <select class="dsbox_form_select" name="'+node_id_sub_unit_to+'" id="'+node_id_sub_unit_to+'">';
		html += this._gui_gen_row_unit_select_options_html(unit_conversion.unit_subs, unit_conversion.unit_sub_to_uid);
    	html += '      </select>';
		html += '    </div>';
		html += '  </div>';

		html += '  <div class="dsbox_form_field dsbox_float_left" style="width:70px;">';
		html += '    <div class="dsbox_form_field_label">'+this._config.dictionary.factor_title+'</div>';
		html += '    <div class="dsbox_form_field_input_box">';
		html += '      <input type="text" name="'+node_id_factor+'" id="'+node_id_factor+'" value="'+unit_conversion.factor+'"></input>';
		html += '    </div>';
		html += '  </div>';

		html += '  </form>';
		html += '  </div>';
		
		html += '  <div class="yui3-u-1-5" style="height:100%;">';
		html += '    <div class="dsbox_button_box_small	dsbox_float_right dsbox_margin_small">';
		html += '      <input class="dsbox_button_small" id="'+node_id_button_save+'" type="button" value="'+this._config.dictionary.button_name_save+'" />';
		html += '    </div>';
		html += '    <div class="dsbox_button_box_small	dsbox_float_right dsbox_margin_small">';
		html += '      <input class="dsbox_button_small dsbox_button_warning" id="'+node_id_button_del+'" type="button" value="'+this._config.dictionary.button_name_delete+'" />';
		html += '    </div>';
		html += '  </div>';
		html += '  </div>';
		html += '</li>';
		return html
    }

    Y.dsbox.ItemUpdate.prototype._gui_gen_row_unit_select_options_html = function (unit_subs, unit_sub_to_uid_selected) {
    	var html = '';
    	for (unit_id in unit_subs) {
    		var unit_sub = unit_subs[unit_id];
    		if (unit_sub.unit_sub_uid == unit_sub_to_uid_selected) {
    			html += '<option value="'+ unit_sub.unit_sub_uid +'" selected="yes" />'+ unit_sub.long_name +'</option>';
    		}
    		else {
    			html += '<option value="'+ unit_sub.unit_sub_uid +'"/>'+ unit_sub.long_name +'</option>';
    		}
    	}
    	return html;
    }
    
    Y.dsbox.ItemUpdate.prototype._init = function () {
    	var form_id = this._config.gui_uid +'_form_details';
    	var node_id_button_save = form_id +'_save';
    	var node_id_button_delete = form_id +'_delete';
    	var node_id_button_new_item_in_store = form_id + '_new_item_in_store';
    	var node_id_button_new_unit_conversion = form_id + '_new_unit_conversion';

    	var node_id_details = this._config.gui_uid + '_details';
    	var node_id_conversion = this._config.gui_uid + '_conversion';
    	var node_id_in_store = this._config.gui_uid + '_in_store';

    	var html = '';
    	html += '<div class="dsbox_box_with_margin_and_background dsbox_hidden" id="'+node_id_details+'">';
    	html += '<div class="dsbox_box_headline" id ="item_list_items_header_node_id">';
		html += this._config.dictionary.item_details_title;
    	html += '</div>';

		html += '<form id="'+form_id+'">';
		html += '  <div class="dsbox_form_field dsbox_float_left">';
		html += '    <div class="dsbox_form_field_label">'+this._config.dictionary.name_title+'</div>';
		html += '    <div class="dsbox_form_field_input_box">';
		html += '      <input class="dsbox_form_field_input_text" style="width:370px;" type="text" name="form_item_name" id="form_item_name"></input>';
		html += '    </div>';
		html += '  </div>';
		
		if (this._config.is_item_manager) {
			html += '<div class="dsbox_form_field dsbox_float_left">';
			html += '  <div class="dsbox_form_field_label dsbox_manager">'+this._config.dictionary.public_title+'</div>';
			html += '  <div class="dsbox_form_field_input_box">';
			html += '    <input type="checkbox" name="form_is_public" id="form_is_public"></input>';
			html += '  </div>';
			html += '</div>';

			html += '<div class="dsbox_form_field dsbox_float_left">';
			html += '  <div class="dsbox_form_field_label dsbox_manager" id="form_uid"></div>';
			html += '</div>';
		}
		html += '  <div class="dsbox_float_end">';
		html += '  </div>';

		html += '  <div class="dsbox_form_field">';
		html += '    <div class="dsbox_form_field_label">'+this._config.dictionary.shop_group_title+'</div>';
		html += '    <div class="dsbox_form_field_input_box">';
		html += '      <select class="dsbox_form_select" name="form_shop_group" id="form_shop_group"></select>';
		html += '    </div>';
		html += '  </div>';

		html += '  <div class="dsbox_form_field">';
		html += '    <div class="dsbox_form_field_label">'+this._config.dictionary.keywords_title+'</div>';
		html += '    <div class="dsbox_form_field_input_box">';
		html += '      <textarea class="dsbox_form_input_text" name="form_keywords" id="form_keywords"></textarea>';
		html += '    </div>';
		html += '  </div>';

		html += '  <div class="yui3-g" style="height:100%;">';
		html += '  <div class="yui3-u-1-2" style="height:100%;">';
		html += '  <div class="dsbox_button_box">';
		html += '    <input class="dsbox_button" type="button" value="'+this._config.dictionary.button_name_save+'" id="'+node_id_button_save+'"/></input>';
		html += '  </div>';
		html += '  </div>';

		html += '  <div class="yui3-u-1-2" style="height:100%;">';
		html += '  <div class="dsbox_button_box">';
		html += '    <input class="dsbox_button dsbox_button_warning" type="button" value="'+this._config.dictionary.button_name_delete+'" id="'+node_id_button_delete+'"/></input>';
		html += '  </div>';
		html += '  </div>';
		html += '  </div>';

		html += '</form>';
		html += '</div>';
    	
    	html += '<div class="dsbox_box_with_margin_and_background dsbox_hidden" id="'+node_id_conversion+'">';
    	html += '  <div class="dsbox_box_headline">';
		html += this._config.dictionary.item_unit_conversion_title;
    	html += '  </div>';
    	html += '  <div class="dsbox_box_with_margin" id="unit_conversion_node_id"></div>';
		html += '  <div class="dsbox_button_box">';
		html += '    <input class="dsbox_button" type="button" value="'+this._config.dictionary.button_name_add+'" id="'+node_id_button_new_unit_conversion+'"/></input>';
		html += '  </div>';
    	html += '</div>';

    	html += '<div class="dsbox_box_with_margin_and_background dsbox_hidden" id="'+node_id_in_store+'">';
    	html += '  <div class="dsbox_box_headline"">';
		html += this._config.dictionary.item_in_shop_title;
    	html += '  </div>';

    	html += '  <div class="dsbox_box_with_margin" id="in_store_node_id"></div>';
		html += '  <div class="dsbox_button_box">';
		html += '    <input class="dsbox_button" type="button" value="'+this._config.dictionary.button_name_add+'" id="'+node_id_button_new_item_in_store+'"/></input>';
		html += '  </div>';

    	html += '</div>';
		Y.one("#"+this._config.gui_node_id).set("innerHTML", html);

    	Y.on("click", Y.bind(this._details_click_del, this), "#"+node_id_button_delete);
    	Y.on("click", Y.bind(this._details_click_save, this), "#"+node_id_button_save);
		Y.on("click", Y.bind(this._in_store_click_new, this), "#"+node_id_button_new_item_in_store);
		Y.on("click", Y.bind(this._unit_conversion_click_new, this), "#"+node_id_button_new_unit_conversion);
    };


    
    Y.dsbox.ItemUpdate.prototype._details_click_save = function (e) {
		this._details_state = GUIStateSaving;

    	var url = "/start/do_save_item/" + this._current_item_uid;
    	var cfg = {
    			method: "POST",
    			form: {
    				id: Y.Node.one('#'+this._config.gui_uid +'_form_details'),
    				useDisabled: true
    			},
    			on: {
    				success: Y.bind(this._item_detail_save_success, this)
    			}
    	};
    	var request = Y.io(url, cfg);
    };
    Y.dsbox.ItemUpdate.prototype._item_detail_save_success = function (e) {
		this._details_state = GUIStateReady;
    };
 

    Y.dsbox.ItemUpdate.prototype._details_click_del = function (e) {
    	var url = "/start/action_delete_item/" + this._current_item_uid;
    	var cfg = {
    			method: "POST",
    			on: {
    				success: Y.bind(this._details_del_success, this),
    				failure: Y.bind(this._details_del_failure, this)
    			}
    	};
    	var request = Y.io(url, cfg);
    };
    Y.dsbox.ItemUpdate.prototype._details_del_success = function (e) {
		this.start();
		this._config.cb_item_details_deleted();
    };
    Y.dsbox.ItemUpdate.prototype._details_del_failure = function (e) {
		this.start();
    };

    
    Y.dsbox.ItemUpdate.prototype._in_store_click_new = function (e) {
    	var url = "/start/create_in_store/" + this._current_item_uid;
    	var cfg = {
    			method: "POST",
    			on: {
    				success: Y.bind(this._in_store_new_success, this)
    			}
    	};
    	var request = Y.io(url, cfg);
    };
    Y.dsbox.ItemUpdate.prototype._in_store_new_success = function (e) {
		this._in_store_load_start()
    };

    
    Y.dsbox.ItemUpdate.prototype._in_store_click_del = function (in_store_uid, e) {
    	var url = "/start/del_in_store/" + in_store_uid;
    	var cfg = {
    			method: "POST",
    			on: {
    				success: Y.bind(this._in_store_del_success, this),
    				failure: Y.bind(this._in_store_del_failure, this)
    			}
    	};
    	var request = Y.io(url, cfg);
    };
    Y.dsbox.ItemUpdate.prototype._in_store_del_success = function (e) {
		this._in_store_load_start()
    };
    Y.dsbox.ItemUpdate.prototype._in_store_del_failure = function (e) {
		this._in_store_load_start()
    };
    

    Y.dsbox.ItemUpdate.prototype._in_store_click_save = function (in_store_uid, e) {
    	var form_id = 'in_store_form_' + in_store_uid;
    	var url = "/start/save_in_store/" + in_store_uid;
    	var cfg = {
    			method: "POST",
				form: {
					id: Y.Node.one('#'+form_id),
					useDisabled: true
				},
    			on: {
    				success: Y.bind(this._in_store_save_success, this),
    				failure: Y.bind(this._in_store_save_failure, this)
    			}
    	};
    	var request = Y.io(url, cfg);
    };
    Y.dsbox.ItemUpdate.prototype._in_store_save_success = function (e) {
		this._in_store_load_start()
    };
    Y.dsbox.ItemUpdate.prototype._in_store_save_failure = function (e) {
		this._in_store_load_start()
    };


	Y.dsbox.ItemUpdate.prototype._unit_conversion_click_new = function (e) {
    	var url = "/start/create_unit_conversion/" + this._current_item_uid;
    	var cfg = {
    			method: "POST",
    			on: {
    				success: Y.bind(this._unit_conversion_new_success, this)
    			}
    	};
    	var request = Y.io(url, cfg);
    };
	Y.dsbox.ItemUpdate.prototype._unit_conversion_new_success = function (e) {
		this._unit_conversion_load_start()
	};
    

	Y.dsbox.ItemUpdate.prototype._unit_conversion_click_del = function (unit_conversion_uid, e) {
    	var url = "/start/del_unit_conversion/" + unit_conversion_uid;
    	var cfg = {
    			method: "POST",
    			on: {
    				success: Y.bind(this._unit_conversion_del_success, this),
    				failure: Y.bind(this._unit_conversion_del_failure, this)
    			}
    	};
    	var request = Y.io(url, cfg);
    };
	Y.dsbox.ItemUpdate.prototype._unit_conversion_del_success = function (e) {
		this._unit_conversion_load_start()
	};
	Y.dsbox.ItemUpdate.prototype._unit_conversion_del_failure = function (e) {
		this._unit_conversion_load_start()
	};

    
	Y.dsbox.ItemUpdate.prototype._unit_conversion_click_save = function (unit_conversion_uid, e) {
    	var form_id = 'unit_conversion_form_' + unit_conversion_uid;

    	var url = "/start/save_unit_conversion/" + unit_conversion_uid;
    	var cfg = {
    			method: "POST",
				form: {
					id: Y.Node.one('#'+form_id),
					useDisabled: true
				},
    			on: {
    				success: Y.bind(this._unit_conversion_save_success, this),
    				failure: Y.bind(this._unit_conversion_save_failure, this)
    			}
    	};
    	var request = Y.io(url, cfg);
    };
	Y.dsbox.ItemUpdate.prototype._unit_conversion_save_success = function (e) {
		this._unit_conversion_load_start()
		this._in_store_load_start()
	};
	Y.dsbox.ItemUpdate.prototype._unit_conversion_save_failure = function (e) {
		this._unit_conversion_load_start()
	};


}, '1.0.0', { requires: ['base', 'base-base', "datasource-jsonschema", "datasource-xmlschema", "datasource-polling", "datasource-function"] });

