$(document).ready(function(){
	
	// Center loading dialog
	$("#loading").center();
	
	$("a.lightbox").colorbox({
		close: 'X'						 
	});
	
	$(".slidePaging a img").css('opacity','0.5');
	$("img",$(".slidePaging a").eq(0)).css('opacity','1');
	
	$(".slideshow","body.products").cycle({
		//fx:     'scrollHorz', 
		timeout: 0, 
    	speed:   600 								  
	});
	
	$(".slide .instructions").bind('click',function(){
		$(".slideshow a:visible",$(this).parent()).trigger('click');												
	});
	
	// Set up easy alternating row colours for tables
	$(".productData table tr:even").addClass("even");
	$(".productData table tr:odd").addClass("odd");
	
	$("img#cboxPhoto").live('click',function(){
		$.fn.colorbox.close();							
	});
	
	$("img#cboxPhoto").live('click',function(){
		$.fn.colorbox.close();							
	});
	
	$(document).keyup(function(e) {
	  //if (e.keyCode == 13) { $('.save').click(); }     // enter
	  	if (e.keyCode == 27) {  // esc
	  		$.fn.colorbox.close();
		}   
	});
	
	$(".products-listing li").each(function(){
		$(this).bind('click', function(){
			window.location = $(this).find('a').attr('href');
		});
	});
	
	$(".submenuWrapper h2").bind('click', function(e){
		e.preventDefault();
		$(this).toggleClass('closed').next('ul.submenu').slideToggle();
	});
	
	$(".submenu span.toggle").bind('click', function(e){
		e.preventDefault();
		$(this).toggleClass('closed').parent().next('ul').slideToggle();
	});
	
	if(window._activeCategory != null) {
		$(".submenuWrapper ul").css('display', 'none');
		$("span#" + _activeCategory).trigger('click').next('a').addClass('active');
		$("span#" + _activeCategory).parents('ul.submenu2').each(function(){
			var span = $(this).prev('span');
			$('span.toggle',span).trigger('click');
		});
		$("span#" + _activeCategory).parents('ul.submenu').each(function(){
			var h2 = $(this).prev('h2');
			$('a',h2).trigger('click');
		});
		
		$("a#" + _activeCategory).trigger('click').addClass('active');
		
	}
	
	if(window._activeProduct != null) {
		$(".submenuWrapper ul").css('display', 'none');
		$("a#pro_" + _activeProduct).addClass('active');
		
		$("a#pro_" + _activeProduct).parent().parent().prev('span').find('span.toggle').trigger('click');
		$("a#pro_" + _activeProduct).parents('ul.submenu2').each(function(){
			var span = $(this).prev('span');
			$('span.toggle',span).trigger('click');
		});

		$("a#pro_" + _activeProduct).parents('ul.submenu').each(function(){
			var h2 = $(this).prev('h2');
			$('a',h2).trigger('click');
		});
		
	}
	
	/**
	 * Product ordering
	 */
	if($(".product-ordering").length) {
		$(".product-ordering").bind('change', function(e){
			e.preventDefault();
			var parsedURL = $.url.parse(window.location.href);
			var newURL = $.url.build({
				protocol: 'http',
				host: parsedURL.host,
				path: parsedURL.path,
				params: {
					'order': $(".product-ordering option:selected").val()	
				}
			});
			
			//console.log(newURL);
			
			window.location = newURL;
		});
	}
	
	/**
	 * Product Detail Tabs
	 */
	 
	$("#downloads").css({'display': 'none'});
	
	$(".product-information-tabs a").bind('click', function(e){
		e.preventDefault();
		$(".product-information-tabs a").removeClass('active');
		$(this).addClass('active');
		$(".product-information > div").stop().slideUp('slow');
		$("#" + $(this).attr('rel')).stop().slideDown('slow');
	});
	
	$("#downloads td").bind('click', function(e){
		e.preventDefault();
		var href = $(this).parent().find('a').attr('href');
		window.open(href);
	});
	
	
	/**
	 * Product image popup
	 */
	 
	 $("a.lightbox2").fancybox({
		'transitionIn'	:	'elastic',
		'transitionOut'	:	'elastic',
		'speedIn'		:	600, 
		'speedOut'		:	200, 
		'overlayShow'	:	true,
		'overlayOpacity':   0.5,
		'overlayColor'  :   '#000000',
		'titlePosition' :   'inside'
		/*'titleFormat'   :   function(titleStr, currentArray, currentIndex, currentOpts) {
			return '<div class="fancyboxCustomTitle">Image </div>';	
		}*/
	});
	
	$("#fancybox-title-inside").live('click', function(){
		$("#fancybox-close").trigger('click');
	});
	
	$(".instructions").bind('click', function(e){
		e.preventDefault();
		$(".slideshow a:visible").eq(0).trigger('click');
	});

		
});

$(document).ready(function(){
						   
	$("#faq").faq2();
	$("#faq-all").toggle(function() {
		$(this).html('Hide all answers').addClass('faq-all-open');
		$("#faq dt").addClass('faqOpen').removeClass('faqClosed').next('dd').addClass('faqItemOpen').removeClass('faqItemOpen').slideDown("slow");
	}, function() {
		$(this).html('Reveal all answers').removeClass('faq-all-open');
		$("#faq dt").removeClass('faqOpen').addClass('faqClosed').next('dd').removeClass('faqItemOpen').addClass('faqItemOpen').slideUp("slow");
	});

});

function changeProductSlide(slideshow,position,obj) {
	//$("#"+slideshow+'_pager a').removeClass('active').css('opacity','0.5');
	//obj.addClass('active');
	//$("#"+slideshow+'_pager a').eq(position).css('opacity','1');
	$(".slidePaging a img").css('opacity','0.5');
	$("img",$(".slidePaging a").eq(position)).css('opacity','1');
	$("#"+slideshow).cycle(position);	
}

// FAQs
(function($) {
    jQuery.fn.faq2 = function(tog){
		return this.each(function () {
			var dl = $(this).addClass('faq');
			var dt = $("dt").addClass('faqClosed').click(function()
			{
				$(this).toggleClass('faqOpen').toggleClass('faqClosed').next("dd").addClass('faqItemOpen').slideToggle(300).siblings("dd").removeClass('faqItemOpen').slideUp("slow");
				$(this).siblings('dt').addClass('faqClosed').removeClass('faqOpen');
			});
			var dd = $('dd', dl).hide();
		});
    };
})(jQuery);


function submitContactForm() {
	//alert('hi');
	$.post('/contact/email_a_friend/', { 'field1': 'hi' }, 
		   function(data) { $.facebox(data); }
	);
}

var timeout         = 300;
var closetimer		= 0;
var ddmenuitem      = 0;

function jsddm_open()
{	
	jsddm_canceltimer();
	jsddm_close();
	ddmenuitem = $(this).find('ul').eq(0).show()
	id = $(" a",this).attr("id");
	$(" a",this).addClass(id + '-mouseover');
}

function jsddm_close()
{	
	if(ddmenuitem) ddmenuitem.hide();
	if(ddmenuitem) ddmenuitem.parent().find('a').removeClass();
}

function jsddm_timer()
{	
	closetimer = window.setTimeout(jsddm_close, timeout);
}

function jsddm_canceltimer()
{	if(closetimer)
	{	window.clearTimeout(closetimer);
		closetimer = null;}}

$(document).ready(function()
{	$('#navigation > li').bind('mouseover', jsddm_open);
	$('#navigation > li').bind('mouseout',  jsddm_timer)
});

document.onclick = jsddm_close;



/**
 * @author Alexandre Magno
 * @desc Center a element with jQuery
 * @version 1.0
 * @example
 * $("element").center({
 *
 * 		vertical: true,
 *      horizontal: true
 *
 * });
 * @obs With no arguments, the default is above
 * @license free
 * @param bool vertical, bool horizontal
 * @contribution Paulo Radichi
 *
 */
jQuery.fn.center = function(params) {

		var options = {

			vertical: true,
			horizontal: true

		}
		op = jQuery.extend(options, params);

   return this.each(function(){

		//initializing variables
		var $self = jQuery(this);
		//get the dimensions using dimensions plugin
		var width = $self.width();
		var height = $self.height();
		//get the paddings
		var paddingTop = parseInt($self.css("padding-top"));
		var paddingBottom = parseInt($self.css("padding-bottom"));
		//get the borders
		var borderTop = parseInt($self.css("border-top-width"));
		var borderBottom = parseInt($self.css("border-bottom-width"));
		//get the media of padding and borders
		var mediaBorder = (borderTop+borderBottom)/2;
		var mediaPadding = (paddingTop+paddingBottom)/2;
		//get the type of positioning
		var positionType = $self.parent().css("position");
		// get the half minus of width and height
		var halfWidth = (width/2)*(-1);
		var halfHeight = ((height/2)*(-1))-mediaPadding-mediaBorder;
		// initializing the css properties
		var cssProp = {
			position: 'absolute'
		};

		if(op.vertical) {
			cssProp.height = height;
			cssProp.top = '50%';
			cssProp.marginTop = halfHeight;
		}
		if(op.horizontal) {
			cssProp.width = width;
			cssProp.left = '50%';
			cssProp.marginLeft = halfWidth;
		}
		//check the current position
		if(positionType == 'static') {
			$self.parent().css("position","relative");
		}
		//aplying the css
		$self.css(cssProp);


   });

};


