    /**     
     * @Author: Simon Aulin     
     * @date: 2008-04-11
     * Description: Hanterar select dropdowns f�r produkter.
     *
     * Todo:
     * - Fixa in spr�kst�d.
     * - Fixa s� den kan populera selects med hj�lp av produktID.
     *
     * Updates:
     */
	
var SonoSelector = {
	currentCompany: 0,
	currentProductGroup: 0,
	currentProduct: 0,
	currentModel: 0,
	language: 1,
	
	Init: function() {
		// Set onchange on selects.
		$('company').onchange = function() {
			SonoSelector.currentCompany = this.options[this.selectedIndex].value;
			SonoSelector.PopulateProductGroup();
		};
		$('product_group').onchange = function() {
			SonoSelector.currentProductGroup = this.options[this.selectedIndex].value;
			if (SonoSelector.currentProductGroup != 0) {
		//		SonoSelector.PopulateProduct();
				window.location = '/category/' + SonoSelector.currentProductGroup;
			} else {
				SonoSelector.DisableSelect($('product'));
				SonoSelector.DisableSelect($('model'));
			}
		};
		$('product').onchange = function() {
			SonoSelector.currentProduct = this.options[this.selectedIndex].value;

			if (SonoSelector.currentProduct != 0) {
				/*if (SonoSelector.currentProduct == 5)
				{
					SonoSelector.GotoProduct();
				}*/


                var tmpSplit = SonoSelector.currentProduct.split(":");
                if (tmpSplit[1] > 0) {
                        SonoSelector.currentProduct = tmpSplit[1];
                }
                else {
                        SonoSelector.currentProduct = tmpSplit;
                }
                var type = tmpSplit[0];

                if (type == 'Product') {
                        SonoSelector.GotoProduct();
                }
		else
		{
		//		SonoSelector.PopulateModel();
				window.location = '/category/' + SonoSelector.currentProductGroup + '/' + SonoSelector.currentProduct;
		}
		}
		};
		$('model').onchange = function() {
			SonoSelector.currentModel = this.options[this.selectedIndex].value;
			if (SonoSelector.currentModel != 0) {
				var tmpSplit = SonoSelector.currentModel.split(":");
				if (tmpSplit[1] > 0) {
					SonoSelector.currentModel = tmpSplit[1];
				}
				
				SonoSelector.GotoProduct();
			}
		};
		
		// Always populate company select.
		var company = $('company');
		SonoSelector.PopulateCompany();

		if (getCategory() > 0) {
			SonoSelector.PopulateProductGroup(getCategory());

			if ((getSubCategory() > 0 ) && getSubCategory() != getProduct()) {
				SonoSelector.PopulateProduct(getSubCategory());
				if (getProduct() > 0) {
					
					SonoSelector.PopulateModel(getProduct());
				}
				else {
					SonoSelector.PopulateModel();
				}
			}
			else if (getPage() == 'product')
			{
				//SonoSelector.SubCategoryID = getProduct();
				SonoSelector.PopulateProduct(getProduct());
			}
			else {
				SonoSelector.PopulateProduct();
			}
		} else {
			SonoSelector.PopulateProductGroup();
		}
	},
	
	PopulateCompany: function()
	{	
		param = {
			type: 'company'
		}
				
		SonoSelector.GetSelectData('company', param);
	},
	
	PopulateProductGroup: function(selectedId)
	{
		if (selectedId > 0) {
			SonoSelector.currentProductGroup = selectedId;
		}
		else {
			SonoSelector.DisableSelect($('product'));
			SonoSelector.DisableSelect($('model'));
		}

//		if (SonoSelector.currentProductGroup > 0) {
			param = {
				type: 'productGroup',
				CompanyID: SonoSelector.currentCompany,
				LanguageID: 1,
				Selected: selectedId
			}
			
			SonoSelector.GetSelectData('product_group', param);
		//}
	},
	
	PopulateProduct: function(selectedId)
	{
		if (selectedId > 0) {
			SonoSelector.currentProduct = selectedId;
		}
		else {
			SonoSelector.DisableSelect($('model'));
		}
			
			param = {
				type: 'product',
				CompanyID: SonoSelector.currentCompany,
				ProductGroup: SonoSelector.currentProductGroup,
				LanguageID: 1,
				Selected: selectedId
			}
	
			SonoSelector.GetSelectData('product', param);
			$('product').disabled = false;
	
	},
	
	PopulateModel: function(selectedId)
	{
		if (selectedId > 0) {
			SonoSelector.currentModel = selectedId;
		}
		else {
			selectedId = 0;
		}

		var tmpSplit = SonoSelector.currentProduct.split(":");
		if (tmpSplit[1] > 0) {
			SonoSelector.currentProduct = tmpSplit[1];
		}
		else {
			SonoSelector.currentProduct = tmpSplit;
		}
		var type = tmpSplit[0];
		
		if (type == 'Product') {
			SonoSelector.GotoProduct();
		}
		else {
		
			param = {
				type: 'model',
				CompanyID: SonoSelector.currentCompany,
				ProductGroup: SonoSelector.currentProductGroup,
				Product: SonoSelector.currentProduct,
				LanguageID: 1,
				Selected: selectedId
			}
			SonoSelector.GetSelectData('model', param);
			$('model').disabled = false;
		}
	},
	
	GetSelectData: function(eId, param)
	{
		//alert("CompanyID: " + SonoSelector.currentCompany + "\nProductGroupID: " + SonoSelector.currentProductGroup + "\nProductID: " + SonoSelector.currentProduct + "\nModelID: " + SonoSelector.currentModel);
		new Ajax.Updater(eId, '/selector_data.php', {
				method: 'get',
				parameters: param,
				onSuccess: function(transport){
					var response = transport.responseText || "no response text";
				},
				onFailure: function(){
					alert('Something went wrong...')
				}
			});
	},
	
	FormatData: function(eId, param)
	{
		
	},
	
	DisableSelect: function(e)
	{
		e.disabled = true;
		e.innerHTML = '<option value="0">Välj</option>';
	},
	
	GotoProduct: function()
	{
		var url = '/product';
		var CategoryID = SonoSelector.currentProductGroup;
		var SubCategoryID = SonoSelector.currentProduct;
		var ProductID = SonoSelector.currentModel;

		if (ProductID < 1 || ProductID == getProduct())
		{
			ProductID = SonoSelector.currentProduct;
		}
		
		if (CategoryID > 0) {
			url = url + '/' + CategoryID;
				
			if (SubCategoryID > 0)
				url = url + '/' + SubCategoryID;
		}

		if (ProductID > 0) {
			
			url = url + '/' + ProductID;
			window.location = url;
		}
	}
	
	
};

function getPage() {
  var query = window.location.pathname;
  var vars = query.split("/");

  return vars[1];
}


function getCategory() {
  var query = window.location.pathname;
  var vars = query.split("/");

  return vars[2];
}

function getSubCategory() {
  var query = window.location.pathname;
  var vars = query.split("/");

  return vars[3];
}
function getProduct() {
  var query = window.location.pathname;
  var vars = query.split("/");

  return vars[4];
}

	
/*
init_SonoSelector = function()
{
	var e;
	var currentCompany;
	var currentProductGroup;
	var currentProduct;
	var currentModel;
	
	// Set onchange on selects.
	$('company').onchange = function() {update_product_group(true);}
	$('product_group').onchange = function() {update_product(true);}
	$('product').onchange = function() {update_model(true);}
	$('model').onchange = function() {gotoProduct(true);}
	
	if (getQuery("CategoryID") > 0) {
		currentProductGroup = getQuery("CategoryID");
	}
	
	if (getQuery("SubCategoryID") > 0) {
		currentProduct = getQuery("SubCategoryID");
	}
	
	if (getQuery("ProductID") > 0) {
		currentModel = getQuery("ProductID");
	}
	
	// Populate company select on load.
	update_company(false);
	update_product_group(false);
	
	
	
	// Function to populate company select.
	function update_company()
	{	
		param = {
			type: 'company',
			LanguageID: 1
		}
				
		get_select_data('company', param);
	}
	
	// Function to populate the product group
	function update_product_group(updateNextSelect)
	{
		var selCompany = $('company');
		if (selCompany.selectedIndex > -1)
			currentCompany = selCompany.options[selCompany.selectedIndex].value;
			
		alert(selCompany.options[selCompany.selectedIndex].value);
		if (currentProductGroup > 0) {
			selectedId = currentProductGroup;
		}
		else
			selectedId = 0;
			
		param = {
			type: 'productGroup',
			CompanyID: currentCompany,
			LanguageID: 1,
			Selected: selectedId
		}
		
		get_select_data('product_group', param);
		
		if (updateNextSelect != false) {
			update_product(currentProductGroup);
		}
		else
		{
			disable_select($('product'));
		}
		
		disable_select($('model'));
	}
	
	function update_product(selected)
	{
		var selProductGroup = $('product_group');
		
		if (selected < 1) {
			if (selProductGroup.selectedIndex > -1) 
				currentProductGroup = selProductGroup.options[selProductGroup.selectedIndex].value;
		}	
		
		if (currentProductGroup > 0) 
		{
			if (currentProduct > 0) {
				selectedId = currentProduct;
			}
			else
				selectedId = 0;
			
			param = {
				type: 'product',
				CompanyID: currentCompany,
				ProductGroup: currentProductGroup,
				LanguageID: 1,
				Selected: selectedId
			}
	
			get_select_data('product', param);
		
		
			$('product').disabled = false;
		}
		else {
			disable_select($('product'));
		}
			
		disable_select($('model'));
	}
	
	function update_model()
	{
		var selProduct = $('product');
		if (selProduct.selectedIndex > -1)
			currentProduct = selProduct.options[selProduct.selectedIndex].value;
		
		var tmpSplit = currentProduct.split(":");
		if (tmpSplit[1] > 0) {
			currentProduct = tmpSplit[1];
		}
		else {
			currentProduct = tmpSplit;
		}
		var type = tmpSplit[0];
		
		if (currentProduct > 0) {
			if (type == 'Product') {
				gotoProduct(currentProduct);
			}
			else {
				selectedId = 0;
				
				param = {
					type: 'model',
					CompanyID: currentCompany,
					ProductGroup: currentProductGroup,
					Product: currentProduct,
					LanguageID: 1,
					Selected: selectedId
				}
				get_select_data('model', param);
				
				
				$('model').disabled = false;
			}
		}
		else {
			disable_select($('model'));
		}

	}
	
	function get_select_data(eId, param)
	{
		new Ajax.Updater(eId, '/selector_data.php', {
				method: 'get',
				parameters: param,
				onSuccess: function(transport){
					var response = transport.responseText || "no response text";
				},
				onFailure: function(){
					alert('Something went wrong...')
				}
			});
	}

	function disable_select(e)
	{
		e.disabled = true;
		e.innerHTML = '<option value="0">V�lj</option>';
	}

	function update_select(e, selectedId)
	{
		var selCompany = $('company');
		if (selCompany.selectedIndex > -1)
			var selectedCompany = selCompany.options[selCompany.selectedIndex].value;
		
		var selProductGroup = $('product_group');
		if (selProductGroup.selectedIndex > -1)
			var selectedProductGroup = selProductGroup.options[selProductGroup.selectedIndex].value;
		
		var selProduct = $('product');
		if (selProduct.selectedIndex > -1)
			var selectedProduct = selProduct.options[selProduct.selectedIndex].value;

		var param;
		var elUpdate;
		
		
		test2 = e.options[e.selectedIndex].value.split(":");
		var id = test2[1];
		var type = test2[0];

		// If the selected option is a product, redirect to product page.
		if (type == 'Product') {
			gotoAccessories(e);
		}
		else {
			// If no select ELEMENT is provided fill the company select.
			if (e == 'company') {
				param = {
					type: 'company',
					LanguageID: 1
				}
				elUpdate = 'company';
			}
			// If company select ELEMENT is changed, update product_group
			if (e.id == 'company') {
				param = {
					type: 'productGroup',
					CompanyID: id,
					LanguageID: 1,
					Selected: selectedId
				}
				elUpdate = 'product_group';
				
				if (selectedId > 0) {
					update_select($('product_group'), selectedId);
				}
				else {
					$('product').disabled = true;
					$('model').disabled = true;
					$('product').innerHTML = '<option value="0">V�lj</option>';
					$('model').innerHTML = '<option value="0">V�lj</option>';
				}
			}
				if (e.id == 'product_group') {
					if (selectedProductGroup == 0) {
						$('product').disabled = true;
						$('product').innerHTML = '<option value="0">V�lj</option>';
						
						$('model').disabled = true;
						$('model').innerHTML = '<option value="0">V�lj</option>';
					}
					else {
						if (selectedId > 0)						
							selectedProductGroup = selectedId;

						param = {
							type: 'product',
							CompanyID: selectedCompany,
							ProductGroup: selectedProductGroup,
							LanguageID: 1,
							Selected: selectedId
						}
						elUpdate = 'product';
						$('model').disabled = true;
						$('model').innerHTML = '<option value="0">V�lj</option>';
					}
					
				}
				else 
					if (e.id == 'product') {
						if (selectedProduct == 0) {
							$('model').disabled = true;
							$('model').innerHTML = '<option value="0">V�lj</option>';
						}
						else {
							param = {
								type: 'model',
								CompanyID: selectedCompany,
								ProductGroup: selectedProductGroup,
								Product: selectedProduct,
								LanguageID: 1,
								Selected: selectedId
							}
							elUpdate = 'model';
						}
					}
			
			new Ajax.Updater(elUpdate, '/selector_data.php', {
				method: 'get',
				parameters: param,
				onSuccess: function(transport){
					var response = transport.responseText || "no response text";
					$(elUpdate).disabled = false;
				},
				onFailure: function(){
					alert('Something went wrong...')
				}
			});
		}
	}

}
*/

