window.onload = function(){
	// Initialize The Menu.
	navMenu('main-nav');
	
	// Initialize The Product Selector.
	if ($('product-selector') != null && $('company') != null) {
		//init_selector();
		SonoSelector.Init();
	}

	// Initialize The Product Gallery.
	if ($('product_images') != null) {
		init_gallery();
	}

	var el;
	
	if (el = document.getElementById('accessories-link')) {
		changeAccessories();
		el.onclick = function(){
			gotoAccessories();
			return false;
		}
	}
	
        // Create tooltips.
        $$("a.questionmark").each( function(link) {
                new Tooltip(link, {mouseFollow: false});
        });

        $$("label.questionmark").each( function(link) {
                new Tooltip(link, {mouseFollow: false});
        });

        $$(".show-tooltip").each( function(link) {
                new Tooltip(link, {mouseFollow: false});
        });


}




function getQuery(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
}

navMenu = function(nav) {
	if(document.all && document.getElementById(nav).currentStyle){
		var ie = true;
	}
		var navroot = document.getElementById(nav); 
		var lis=navroot.getElementsByTagName("LI");

		for(i=0;i<lis.length;i++){
			// Firefox
			if (lis[i].parentNode.id == 'main-nav')
			{
				lis[i].onmouseover = function() {
					this.className = 'hover';
				}

				lis[i].onmouseout = function() {
					this.className = '';
				}
			}

			// IE
			if(lis[i].lastChild.tagName=="UL"){
				lis[i].onmouseover=function(){
					if (ie) this.lastChild.style.display="block";
					if (this.parentNode.id == 'main-nav')
					{ this.className = 'hover';
					}
				}
				lis[i].onmouseout=function(){
					if (ie) this.lastChild.style.display="none";
					if (this.parentNode.id == 'main-nav') this.className = '';
				}
			}
		}
	//}
}

function changeCustomOption(id)
{
	var img = $("custom_img_" + id + "_1");
	var select = $("custom_select_" + id);
	var selected = select.options[select.selectedIndex].value;

	new Ajax.Request('/fetch_image.php', {
				method: 'get',
				parameters: {
							type: 'custom',
							OptionID: selected
						},
				onSuccess: function(transport){
					var response = transport.responseText || "no response text";
					img.src = response;
				},
				onFailure: function(){
					alert('Something went wrong...')
				}
			});
}

init_gallery = function()
{
	var currentImage = 0;
	var maxImages = $('max-images').innerHTML - 1;
	var numHolder = $('num-images');
	var img = $('product-image');
	var link = img.parentNode;

	$('product-image-prev').onclick = function() {previousProductImage(); return false;}
	$('product-image-next').onclick = function() {nextProductImage(); return false;}
	
	function nextProductImage(){
		if (currentImage == maxImages)
		{
			currentImage = -1;
		}
		
		new Ajax.Request('/fetch_image.php', {
			method: 'get',
			parameters: {
				type: 'product',
				ProductID: getProduct(),
				Image: currentImage + 1
			},
			onSuccess: function(transport){
				var response = transport.responseText || "no response text";
				currentImage++;
				numHolder.innerHTML = currentImage + 1;
				img.src = response;
				link.href = getNewLink(response);
			},
			onFailure: function(){
				alert('Something went wrong...')
			}
		});
	}

	function getNewLink(url)
	{
		var url_split_1 = url.split('images/');
		var url_split_2 = url_split_1[1].split("/");

		var new_url = url_split_1[0] + 'images/large/' + url_split_2[1];
		
		return new_url;
	}
	
	function previousProductImage(){
		if (currentImage == 0)
		{
			currentImage = maxImages + 1;
		}

		new Ajax.Request('/fetch_image.php', {
			method: 'get',
			parameters: {
				type: 'product',
				ProductID: getProduct(),
				Image: currentImage - 1
			},
			onSuccess: function(transport){
				var response = transport.responseText || "no response text";
				currentImage--;
				numHolder.innerHTML = currentImage + 1;
				img.src = response;
				link.href = getNewLink(response);
			},
			onFailure: function(){
				alert('Something went wrong...')
			}
		});
	}
}
function changeAccessories()
{
	var img = $('accessories_img_1');
	var select = $('accessories');
	var selected = select.options[select.selectedIndex].value;
	
	new Ajax.Request('/fetch_image.php', {
				method: 'get',
				parameters: {
							type: 'product',
							ProductID: selected
						},
				onSuccess: function(transport){
					var response = transport.responseText || "no response text";
					img.src = response;
				},
				onFailure: function(){
					alert('Something went wrong...')
				}
			});
}

function getProductId(value)
{
	var ProductID;
	var tmpSplit = value.split(":");
	
	if (tmpSplit[1] > 0) {
		ProductID = tmpSplit[1];
	}
	else {
		ProductID = tmpSplit;
	}
	
	return ProductID;
}

function gotoAccessories(e)
{
	if (e)
		var select = e;
	else
		var select = $('accessories');
	
	window.location = '/product/' + select.options[select.selectedIndex].value;
}

function gotoProduct(ProductID)
{
	var url = '/product_details.php?';
	var CategoryID = getQuery("CategoryID");
	var SubCategoryID = getQuery("SubCategoryID");
	
	if (CategoryID > 0) {
		url = url + 'CategoryID=' + CategoryID;
			
		if (SubCategoryID > 0)
			url = url + '&SubCategoryID=' + SubCategoryID;
	}
		
	if (ProductID > 0) {
		
		url = url + '&ProductID=' + ProductID;
		window.location = url;
	}
	else {
		ProductID = getProductId(ProductID.options[ProductID.selectedIndex].value);
		url = url + '&ProductID=' + ProductID;
		window.location = url;
	}
}

Ajax.Responders.register({
  onCreate: function() {
    $('sono_loading').show();
  },
  onComplete: function() {
    $('sono_loading').hide();
  }
});

