/**
* @version $Id: item.js 27608 2009-08-11 13:27:21Z servers_svn $
*/
//===========================================================================//
/**
* Toggles the elements
*
* @param String element_id
* @param boolean show - show or hide element
*/
function toggle_element(element_id, show)
{
	var element = document.getElementById(element_id);

	element.style.visibility = 'hidden';
	element.style.display = 'none';

	if(show)
	{ // change
		element.style.visibility = 'visible';
		element.style.display = '';
	}
}

//===========================================================================//

var select_child_cache = Array();

/**
*/
function select_child(form, column, width, height, rel_html_url, width_large, height_large) {
	var search_data = {};

	// walk the parent-selectable-columns
	// and look for the search data ...
	//
	for (var i = 0; i < parent_selectable_columns.length; i++) {
		if (form.elements['children_' + parent_selectable_columns[i]]) {
			search_data[parent_selectable_columns[i]] = form.elements['children_' + parent_selectable_columns[i]].options[form.elements['children_' + parent_selectable_columns[i]].selectedIndex].text;
		}
	}

	// walk the actual parent data, and
	// look for a search data match ...
	//
	for (var key in parent_data) {
		var matches = true;
		for (var search_key in search_data) {
			if (trim(search_data[search_key]) != trim(parent_data[key][search_key])) {
				matches = false;
				break;
			}
		}

		if (!matches) {
			continue;
		}


		// the sku is put in the "id" element of the form!
		//
		form.id.value = parent_data[key]['sku'];
		for (var i in parent_data[key]) {
			var element = document.getElementById(i);

			if (element && i != 'id') {
				element.innerHTML = parent_data[key][i];
			}
		}

		if (parent_data[key]['applied_inventory_control']) {
			if (parent_data[key]['store_quantity'] > 0 || (parent_data[key]['applied_inventory_control'] == 'no_control')) {
				buy = 'buy';
			} else if (parent_data[key]['applied_inventory_control'] == 'backorder') {
				buy = 'backorder';
			} else if (parent_data[key]['applied_inventory_control'] == 'in_stock_email') {
				buy = 'in_stock_email';
			} else {
				// hide
				buy = '';
			}

			if (buy) {
				var buttons = Array('item_buy_button', 'item_buy_button_buy', 'item_buy_button_backorder', 'item_buy_button_in_stock_email');
				for (var i = 0; i < buttons.length; i++) {
					var element = document.getElementById(buttons[i]);
					if (element) {
						element.style.display = (element.id == 'item_buy_button_' + buy) ? 'block' : 'none';
					}
				}
			}
		}

		if (parent_data[key]['default_image'] && document.images.product_image) {
			var sku = parent_data[key]['default_image'];
			sku = sku.substring(0, sku.length - 4); // strip off .jpg
			var url = rel_html_url + "index.php?type=bare&page=image&smarty_param_type=product&redirect=1&id=" + escape(sku) + "&width=" + width + "&height=" + height;
			document.images.product_image.src = url;


			var product_image_link = document.getElementById('product_image_link')
			if (product_image_link) {
				$.ajax(
				{
					url: rel_html_url + "index.php?type=bare&page=image&smarty_param_type=product&id=" + escape(sku) + "&width=" + width_large + "&height=" + height_large,
					async: true,
					dataType: 'html',
					complete: function (xhr)
					{
						product_image_link.href = xhr.responseText;
					},
					error: function (xhr)
					{

					}
				});
			}
		}

		break; // stop after first match
	}
}

var validate_item_elements = Array();
function validate_item(form) {
	for (var i = 0; i < validate_item_elements.length; i++) {
		var value;
		switch (form.elements[validate_item_elements[i].name].type) {
			case 'radio':
				break;

			case 'select-multiple':
				break;

			case 'text':
			case 'select-one':
			case 'checkbox':
			default:
				value = form.elements[validate_item_elements[i].name].value;
				break;
		}

		if (validate_item_elements[i].required && value == '') {
			form.elements[validate_item_elements[i].name].focus();
			alert(validate_item_elements[i].title + ' is required.');
			return false;
		}
	}

	return true;
}
