// Settings
var motion_speed = 700;
var slide_width = 802;
var slide_height = 335;
var slide_width2 = 966;
var slide_height2 = 453;
var slide_width3 = 802;
var slide_height3 = 432;

// Set Gfx Object
$.fn.gfx_object = function(src, f){

	// Image object
	if (src.lastIndexOf(".swf") == -1) {
		
		return this.each(function(){
			var i = new Image(slide_width, slide_height);
			i.src = src;
			i.onload = f;
			$(this).html(i);
			
			$("#slide_container").fadeIn("fast");
		});
		
	// Swf object
	} else {
		
		return this.each(function(){			
			
			// Empty current content
			$(this).empty();			
			
			// Determine browser
			var useragent = navigator.userAgent.toLowerCase();
			var browser = useragent.indexOf('msie 6') > 0 || useragent.indexOf('msie 7') > 0 || useragent.indexOf('msie 8') > 0 ? false : true;		
						
			if (!browser) {
				
				// Object
				var obj = '<embed src="' + src + '" width="' + slide_width + '" height="' + slide_height + '"></embed>';
				
				// Add new content
				document.getElementById("slide_container").innerHTML = obj;

			} else {
				
				// Object
				var obj = document.createElement("object");
				obj.setAttribute("type", "application/x-shockwave-flash");
				obj.setAttribute("width", slide_width);
				obj.setAttribute("height", slide_height);
				obj.setAttribute("data", src);			
				
				// Param
				var param_a = document.createElement("param");
				param_a.setAttribute("name", "movie");
				param_a.setAttribute("value", src);
				obj.appendChild(param_a);
				
				// Param
				var param_b = document.createElement("param");
				param_b.setAttribute("name", "wmode");
				param_b.setAttribute("value", "opaque");
				obj.appendChild(param_b);				
				
				// Embed
				var embed = document.createElement("embed");
				embed.setAttribute("width", slide_width);
				embed.setAttribute("height", slide_height);
				embed.setAttribute("type", "application/x-shockwave-flash");
				embed.setAttribute("src", src);
				obj.appendChild(embed);
				
				// Add new content
				document.getElementById("slide_container").appendChild(obj);				
			}
			
			// Show content
			$("#slide_container").css("display", "block");
		});
	}
}

// Set Gfx Object
$.fn.gfx_object2 = function(src, f){

	// Image object
	if (src.lastIndexOf(".swf") == -1) {
		
		return this.each(function(){
			var i = new Image(slide_width2, slide_height2);
			i.src = src;
			i.onload = f;
			$(this).html(i);
			
			$("#header_slider_container").fadeIn("fast");
		});
		
	// Swf object
	} else {
		
		return this.each(function(){			
			
			// Empty current content
			$(this).empty();			
			
			// Determine browser
			var useragent = navigator.userAgent.toLowerCase();
			var browser = useragent.indexOf('msie 6') > 0 || useragent.indexOf('msie 7') > 0 || useragent.indexOf('msie 8') > 0 ? false : true;		
						
			if (!browser) {
				
				// Object
				var obj = '<embed src="' + src + '" width="' + slide_width2 + '" height="' + slide_height2 + '"></embed>';
				
				// Add new content
				document.getElementById("header_slider_container").innerHTML = obj;

			} else {
				
				// Object
				var obj = document.createElement("object");
				obj.setAttribute("type", "application/x-shockwave-flash");
				obj.setAttribute("width", slide_width);
				obj.setAttribute("height", slide_height);
				obj.setAttribute("data", src);
				
				// Param
				var param_a = document.createElement("param");
				param_a.setAttribute("name", "movie");
				param_a.setAttribute("value", src);
				obj.appendChild(param_a);				
				
				// Param
				var param_b = document.createElement("param");
				param_b.setAttribute("name", "wmode");
				param_b.setAttribute("value", "opaque");
				obj.appendChild(param_b);
				
				// Embed
				var embed = document.createElement("embed");
				embed.setAttribute("width", slide_width);
				embed.setAttribute("height", slide_height);
				embed.setAttribute("type", "application/x-shockwave-flash");
				embed.setAttribute("src", src);
				obj.appendChild(embed);
				
				// Add new content
				document.getElementById("header_slider_container").appendChild(obj);				
			}
			
			// Show content
			$("#header_slider_container").css("display", "block");
		});
	}
}

// Set Gfx Object
$.fn.gfx_object3 = function(src, f){

	// Image object
	if (src.lastIndexOf(".swf") == -1) {
		
		return this.each(function(){
			var i = new Image(slide_width3, slide_height3);
			i.src = src;
			i.onload = f;
			$(this).html(i);
			
			$("#slide_container").fadeIn("fast");
		});
		
	// Swf object
	} else {
		
		return this.each(function(){			
			
			// Empty current content
			$(this).empty();			
			
			// Determine browser
			var useragent = navigator.userAgent.toLowerCase();
			var browser = useragent.indexOf('msie 6') > 0 || useragent.indexOf('msie 7') > 0 || useragent.indexOf('msie 8') > 0 ? false : true;		
						
			if (!browser) {
				
				// Object
				var obj = '<embed src="' + src + '" width="' + slide_width3 + '" height="' + slide_height3 + '"></embed>';
				
				// Add new content
				document.getElementById("slide_container").innerHTML = obj;

			} else {
				
				// Object
				var obj = document.createElement("object");
				obj.setAttribute("type", "application/x-shockwave-flash");
				obj.setAttribute("width", slide_width3);
				obj.setAttribute("height", slide_height3);
				obj.setAttribute("data", src);			
				
				// Param
				var param_a = document.createElement("param");
				param_a.setAttribute("name", "movie");
				param_a.setAttribute("value", src);
				obj.appendChild(param_a);
				
				// Param
				var param_b = document.createElement("param");
				param_b.setAttribute("name", "wmode");
				param_b.setAttribute("value", "opaque");
				obj.appendChild(param_b);				
				
				// Embed
				var embed = document.createElement("embed");
				embed.setAttribute("width", slide_width3);
				embed.setAttribute("height", slide_height3);
				embed.setAttribute("type", "application/x-shockwave-flash");
				embed.setAttribute("src", src);
				obj.appendChild(embed);
				
				// Add new content
				document.getElementById("slide_container").appendChild(obj);				
			}
			
			// Show content
			$("#slide_container").css("display", "block");
		});
	}
}

// Get current slider position
function get_slider_pos () {
	
	return $("div#slide_options").css("marginLeft");
}

// Document ready
jQuery(document).ready(function(){	
	
	// Slider settings
	var new_marginleft = 0;
	var start_marginleft = parseInt($("div#slide_options").css("marginLeft"));
	var current_marginleft = start_marginleft;
	var margin_hor_step = 149;
	var slide_amount = $("div#slide_options > img.slide").length;
	var max_marginleft = 0-(slide_amount*margin_hor_step) + (1*margin_hor_step);
	var active_slide = null;
	var center_slide_nr = 3;
	var current_center_slide_nr = center_slide_nr;	
	
	// Previous slide nav button
	$("img#slide_nav_previous").click(function (){
		
		new_marginleft = current_marginleft+margin_hor_step;

		if (new_marginleft <= start_marginleft) {

			$("div#slide_options").stop().animate({"marginTop":"0", "marginLeft":new_marginleft}, motion_speed, "easeOutBack");
			
			current_marginleft = new_marginleft;
			
			current_center_slide_nr--;
		}
	});
	
	// Next slide nav button
	$("img#slide_nav_next").click(function (){
		
		new_marginleft = current_marginleft-margin_hor_step;

		if (new_marginleft > max_marginleft) {

			$("div#slide_options").stop().animate({"marginTop":"0", "marginLeft":new_marginleft}, motion_speed, "easeOutBack");
			
			current_marginleft = new_marginleft;
			
			current_center_slide_nr++;
		}
	});
	
	// Slide handler	
	$(".slides_normal img.slide").click(function () {

		$("#slide_container").css("display", "none");

		// Get selection data [nr_src]
		var selection_data = $(this).attr("rel").split('_');
		var current_slide_nr = selection_data[0];
		var new_src = selection_data[1];
		var spec_width = selection_data[2];
		var spec_height = selection_data[3];
		var spec_depth = selection_data[4];
		var product_title = selection_data[5];
		
		// Remove previous selection
		if (active_slide != null) {
			
			$(active_slide).removeClass("selected_slide");
			active_slide = null;
		}
			
		// Show current selection
		$(this).addClass("selected_slide");
			
		// Change slider nav position so the selection will be in center position
		if (slide_amount > center_slide_nr) {
			
			change_pos_count_to_center = current_slide_nr - current_center_slide_nr;
			
			new_marginleft = current_marginleft-(change_pos_count_to_center*margin_hor_step);

			if (new_marginleft > max_marginleft) {
			
				$("div#slide_options").stop().animate({"marginTop":"0", "marginLeft":new_marginleft}, motion_speed, "easeOutBack");
				
				current_marginleft = new_marginleft;
				
				current_center_slide_nr = current_slide_nr;
			}
		}
		
		// Change object
		$("#slide_container").gfx_object(new_src ,function(){
			
			// Ready statement
			$("#product_title").text(": "+product_title);
			$("#spec_width").text(spec_width);
			$("#spec_height").text(spec_height);
			$("#spec_depth").text(spec_depth);
		});
		
		active_slide = this;
	});	
	
	// Slide handler 2
	$("div.slide img").click(function () {

		$("#header_slider_container").css("display", "none");

		// Get selection data [nr_src]
		var selection_data = $(this).attr("rel").split('|');
		var current_slide_nr = selection_data[0];
		var new_src = selection_data[1];
		
		// Remove previous selection
		if (active_slide != null) {
			
			$(active_slide).removeClass("selected_slide2");
			active_slide = null;
		}
			
		// Show current selection
		$(this).addClass("selected_slide2");
			
		// Change slider nav position so the selection will be in center position
		if (slide_amount > center_slide_nr) {
			
			change_pos_count_to_center = current_slide_nr - current_center_slide_nr;
			
			new_marginleft = current_marginleft-(change_pos_count_to_center*margin_hor_step);

			if (new_marginleft > max_marginleft) {
			
				$("div#slide_options").stop().animate({"marginTop":"0", "marginLeft":new_marginleft}, motion_speed, "easeOutBack");
				
				current_marginleft = new_marginleft;
				
				current_center_slide_nr = current_slide_nr;
			}
		}
		
		// Change object
		$("#header_slider_container").gfx_object2(new_src ,function(){
			
			// Ready statement
		});
		
		active_slide = this;
	});
	
	// Slide handler 3
	$(".slides_big img.slide").click(function () {

		$("#slide_container").css("display", "none");

		// Get selection data [nr_src]
		var selection_data = $(this).attr("rel").split('_');
		var current_slide_nr = selection_data[0];
		var new_src = selection_data[1];
		var spec_width = selection_data[2];
		var spec_height = selection_data[3];
		var spec_depth = selection_data[4];
		var product_title = selection_data[5];
		
		// Remove previous selection
		if (active_slide != null) {
			
			$(active_slide).removeClass("selected_slide");
			active_slide = null;
		}
			
		// Show current selection
		$(this).addClass("selected_slide");
			
		// Change slider nav position so the selection will be in center position
		if (slide_amount > center_slide_nr) {
			
			change_pos_count_to_center = current_slide_nr - current_center_slide_nr;
			
			new_marginleft = current_marginleft-(change_pos_count_to_center*margin_hor_step);

			if (new_marginleft > max_marginleft) {
			
				$("div#slide_options").stop().animate({"marginTop":"0", "marginLeft":new_marginleft}, motion_speed, "easeOutBack");
				
				current_marginleft = new_marginleft;
				
				current_center_slide_nr = current_slide_nr;
			}
		}
		
		// Change object
		$("#slide_container").gfx_object3(new_src ,function(){
			
			// Ready statement
			$("#product_title").text(": "+product_title);
			$("#spec_width").text(spec_width);
			$("#spec_height").text(spec_height);
			$("#spec_depth").text(spec_depth);
		});
		
		active_slide = this;
	});	
	
	// News Ticker
	$("#news").newsTicker();
	$("#news_ticker_container ul").newsTicker();

	// Product images
	$("#showroom_product_detail .images .thumb_image img#thumb1").parents("div:first").addClass("selected_thumb_con");
	$("#showroom_product_detail .images .large_image img#img1").fadeIn("fast");
	
	// Mouse action
	$("#showroom_product_detail .images .thumb_image div").mouseover(function(){
		
		// Determine image ID from thumb
		img_id = $(this).children("img").attr("id");
		img_id = img_id.replace("thumb", "");
	
		// Set new selected thumb
		$("#showroom_product_detail .images .thumb_image div").removeClass("selected_thumb_con");
		$(this).addClass("selected_thumb_con");
	
		// Hide current image
		$("#showroom_product_detail .images .large_image img").css("display","none");
		
		// Show larger image
		$("#showroom_product_detail .images .large_image #img"+img_id).fadeIn("fast");
	});	
	
	// Full header
	//if ($("#full_header").length) { set_full_header (); }
	//$("#full_header").fadeOut("slow");
	
	var full_header = $("#full_header"); 
	var full_header_image = $("#full_header div.image"); 
	
	if (full_header.length && full_header_image.length) {
		
		set_full_header (full_header, full_header_image);
	}
	
	// Slider
	$("div.slider_gallery").each(function () {

		var ul = $("ul", this);
		var productWidth = ul.innerWidth() - $(this).outerWidth();
		
		var slider = $(".slider", this).slider({
			
			handle: ".handle",
			minValue: 0, 
			maxValue: productWidth,
			
			slide: function (ev, ui) {
				ul.css("left", "-" + ui.value + "px");
			},
			
			stop: function (ev, ui) {
				ul.animate({ "left" : "-" + ui.value + "px" }, motion_speed, "linear");
			}
		});
	});
	
	// Slider menu
	var sm_current_margin_left = 0;
	var sm_margin_hor_step = 130;
	var sm_slide_amount = $(".menu_slider_gallery ul.items li").length;
	var sm_max_margin_left = 0-(sm_slide_amount*sm_margin_hor_step) + (6*sm_margin_hor_step);
		
	$(".menu_slider_gallery img#slider_menu_next").click(function(){
		
		new_left = sm_current_margin_left - sm_margin_hor_step;
		
		if (new_left >= sm_max_margin_left) {
		
			$(".menu_slider_gallery ul.items").animate({ "left" : new_left+"px" }, 200, "easeOutCubic");
			
			sm_current_margin_left = new_left;
			
			$(".menu_slider_gallery img#slider_menu_prev").css("display","block");
		}
	});
	
	$(".menu_slider_gallery img#slider_menu_prev").click(function(){
		
		new_left = sm_current_margin_left + sm_margin_hor_step;
		
		if (new_left <= 0) {
		
			$(".menu_slider_gallery ul.items").animate({ "left" : new_left+"px" }, 200, "easeOutCubic");
			
			sm_current_margin_left = new_left;
		}
		
		if (new_left == 0) {
			
			$(".menu_slider_gallery img#slider_menu_prev").css("display","none");
		}
	});	
	
	// Left menu
	$("#left_menu div.trigger").click(function() {
		
		if (typeof auto_menu_trigger_open != 'undefined') { clearTimeout(auto_menu_trigger_open); }
		if (typeof auto_menu_trigger_close != 'undefined') { clearTimeout(auto_menu_trigger_close); }
			
		// Determine current position
		var current_left_pos = parseInt($('#left_menu').css('left'));
		var new_left_pos = 0;
		
		if (current_left_pos >= 0) {
			
			new_left_pos = "-242px";
		}
		
		$("#left_menu").stop().animate({"left":new_left_pos}, motion_speed, "easeOutQuad");
	});
	
	// Header slider
	var hs_margin_left = 0;
	var hs_start_margin_left = parseInt($("div#header_slider_thumbs_options_con").css("marginLeft"));
	var hs_current_margin_left = hs_start_margin_left;
	var hs_margin_hor_step = 85;
	var hs_slide_amount = $("div#header_slider_thumbs_options_con > div.slide_con").length;
	var hs_max_margin_left = 0-(hs_slide_amount*hs_margin_hor_step) + (6*hs_margin_hor_step);
	var hs_active_slide = null;
	
	// Previous slide nav button
	$("img#header_slide_nav_previous").click(function (){
		
		hs_new_margin_left = hs_current_margin_left+hs_margin_hor_step;

		if (hs_new_margin_left <= hs_start_margin_left) {

			$("div#header_slider_thumbs_options_con").stop().animate({"marginTop":"0", "marginLeft":hs_new_margin_left}, motion_speed, "easeOutQuad");
			
			hs_current_margin_left = hs_new_margin_left;
		}
	});
	
	// Next slide nav button
	$("img#header_slide_nav_next").click(function (){
		
		hs_new_margin_left = hs_current_margin_left-hs_margin_hor_step;

		if (hs_new_margin_left > hs_max_margin_left) {

			$("div#header_slider_thumbs_options_con").stop().animate({"marginTop":"0", "marginLeft":hs_new_margin_left}, motion_speed, "easeOutBack");
			
			hs_current_margin_left = hs_new_margin_left;
		}
	});
});

var useragent = navigator.userAgent.toLowerCase();
var browser = useragent.indexOf('msie') > 0 ? false : true;

// Full header
function set_full_header (full_header, full_header_image) {	
	
	// Header
	if (browser) {
		
		var window_height = $('body').height();
		
	} else {
		
		var window_height = $('body').height()+16;
	}
	
	full_header.css("width", "100%");
	full_header.css("height", window_height+"px");
	full_header.css("left", "0");
	full_header.css("top", "0");
	full_header.css("position", "absolute");	
	
	full_header_image.fadeIn("slow");
	
	full_header.queue(function(){ setTimeout(function(){ full_header.dequeue(); }, 3000); }); 
	full_header.fadeOut(3000);	
}


// Set content height dependent on the menu
window.onload = set_content_height;

function set_content_height () {
	
	if (document.getElementById("left_nav")) {
		
		var content_height = parseInt(document.getElementById("main").offsetHeight);
		var left_nav_height = parseInt(document.getElementById("left_nav").offsetHeight)+50;
		
		if (content_height < left_nav_height)
			$("#main").css("height", left_nav_height+"px");
	}
}

// Shadow box
Shadowbox.init({
    handleOversize: "drag",
    modal: true,
    overlayOpacity: "0.7"
});

// Cufon
Cufon.replace(".custom_font");



