/* Layout columns
-------------------------------------------------------------- */
function layoutcol(){
	if($('#leftside').length != 0 && $('#rightside').length != 0){
		$('body').addClass('col3');
	}
	else if($('#leftside').length != 0 || $('#rightside').length != 0){
		$('body').addClass('col2');
	}
	else if($('#leftside').length == 0 && $('#rightside').length == 0){
		$('body').addClass('col1');
	}
}

/* Grid columns
-------------------------------------------------------------- */
function gridcol(){	
	if($('.column').length != 0) {
		var cw = parseInt($('#content').width());
		var margin = parseInt($('.column').css('margin-right'));
    var padding = parseInt($('.column').css('padding-right'));
    
		var gridcol1 = cw;
		var gridcol2 = (cw - margin)/2;
		var gridcol3 = Math.floor((cw - margin*2)/3)-20; // subtracting numeric amount is a Hack, fix it.
	
		$('head').append(
			'<style>'+
				'.gridcol1 { width: '+gridcol1+'px; }'+
				'.gridcol2 { width: '+gridcol2+'px; }'+
				'.gridcol3 { width: '+gridcol3+'px; }'+
			'</style>'
		);
	}
}

/* Aside text input width setup
-------------------------------------------------------------- */
function aside_input(){
	if($('aside input:text').length != 0){
		var cw = parseInt($('input:text').parent().css('width'));
		
		var ibl = parseInt($('aside input:text').css('border-left-width'));
		var ibr = parseInt($('aside input:text').css('border-right-width'));
		
		var ipl = parseInt($('aside input:text').css('padding-left'));
		var ipr = parseInt($('aside input:text').css('padding-right'));
		
		$('aside input:text').css('width', cw-ibl-ibr-ipl-ipr);
	}
}


/* Multi level navigation
-------------------------------------------------------------- */
function multilevel_nav(target){	
	$(target).find('li').each(function(){
		$(this).has('ul').addClass('nav-with-ul').children('a').append('<span class="nav-arrow"></span>');
	});
	
	$(target).find('.nav-with-ul').each(function(){
		$(this).hover(function(){
			$(this).children('ul').css('display', 'block');
		}, function(){
			$(this).children('ul').css('display', 'none');
		});
	});
}

jQuery.fn.init_multilevel_nav = function(){
	return this.each(function(){
		multilevel_nav(this);
	});
};

/* Accordion navigation
-------------------------------------------------------------- */
function accordion_nav(target){
	var id = $(target).attr('id');
	
	$('#'+id+' ul').hide();
	$('#'+id+' ul:first').show();
	$('#'+id+' li a').click(
		function(){
			var checkElement = $(this).next();
			if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
				return false;
			}
			if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
				$('#'+id+' ul:visible').slideUp('normal');
				checkElement.slideDown('normal');
				return false;
			}
		}
	);
}

jQuery.fn.init_accordion_nav = function(){
	return this.each(function(){
		accordion_nav(this);
	});
};

/* Document Ready
-------------------------------------------------------------- */
$(document).ready(function(){
	layoutcol(); // Layout columns
	gridcol(); // Grid columns
	aside_input(); // Aside text input width setup
	$('#product-nav').init_accordion_nav(); // Accordion navigation
	$('#main-nav ul, #sub-nav ul').init_multilevel_nav(); // Multi level navigation
	
	$("a.overlay").fancybox(); // Lightbox
});
