/* 	Funktion: 	Fancy Product Scroller (FPS)
	Author: 	Marc Widmer
*/

var $j = jQuery.noConflict();
$j(document).ready(function(){
	//wichtige globale variablen
	var SITE_URL = "http://preview.netzbarkeit.ch/redshop/"
	var PATH_product_detail = "img/products/product_detail/";
	var modx_base = "assets/";
	
	//var act_button = "img/product_switch_1.png";
	//var pas_button = "img/product_switch_0.png";

	// jqueryObj, damit DOM nur einmal abgefragt wird
	var scroller = $j("div.hide_area");
	var produkt_wrap = $j("div.prod_wrap");
	var produkt = $j("div.prod");
	var produkt_bild = $j("div.prod img");
	var produkt_bild_detail = $j("div.show_pic img");
	var descriptions = $j('div.prod_desc_wrap');
	//var slide_menu = $j('div #slide_menu');
	var slide_menu_element = $j('div.slider');
	var menu_element = $j('div #menu img');
	var loading = $j('div #loading');
	var moving = 0; //Animationsstatus, damit keine Klicks möglich, wenn
	var max_prod = $j('div.prod').size(); //Anzahl Produkte
	var max_kat = $j('div.slider').size(); //Anzahl Produkte

	var anim_pos = 0; //Position der Animation

	var product_div_w = 965;
	var oWidth = 965; //Halbe Bildbreite
	var oHeight = 278; //Halbe Bildh�he
	var skalierer = 1; //Skalierungsfaktor
	var desc_h = 20; //Höhe des farbigen Beschreibungsdivs
	var desc_hmin = 1; //Höhe des farbigen Beschreibungsdivs
	var menu_height = (max_kat+1)*22;

	var cat_pos = new Array();

	//browser detection, wird bald abgelöst schon depricated, aber keine andere l�sung gefunden
	$j.browser.msie6 = jQuery.browser.msie &&
    	parseInt(jQuery.browser.version) == 6 &&
    	typeof window['XMLHttpRequest'] != "object";


	//berechnet die positionen an denen eine produktekategorie beginnt
	function init_product_cats () {
		cat_pos[0] = 0;
		cat_pos[1] = $j('div.grp0').size()+cat_pos[0];;
		cat_pos[2] = $j('div.grp1').size()+cat_pos[1];
		cat_pos[3] = $j('div.grp2').size()+cat_pos[2];
		cat_pos[4] = $j('div.grp3').size()+cat_pos[3];
		cat_pos[5] = $j('div.grp4').size()+cat_pos[4];
	}

	//alert(max_prod);
	
	if (max_prod <= 1) {
		$j('.move_right').hide();
		$j('.move_left').hide();
	}
	
	//scrollt an die gew�nschte produkte position, via pfeil, oder dropdown menu
	function scrollslide(pos,moving) {
			var margin = parseInt(scroller.css("marginLeft"), 10); //MarginLeft ohne "px"
			var change_pos = anim_pos+1;
			var anim_0 = 'img.a'+(change_pos);
			var anim_1 = 'img.a'+(pos);
			var desc_0 = 'div.d'+(pos); //Beschreibung zum vergr�ssern
			var desc_1 = 'div.d'+(change_pos); //Beschreibung zum verkleinern
			var sprod_0 = 'div.s'+(pos); //Produkt einblenden
			var sprod_1 = 'div.s'+(change_pos); //Produkt ausblenden
			//zoom_out(anim_0);
			//zoom_in(anim_1);
			$j(sprod_1).hide();

			$j(scroller) //verschiebt den gesamten DIV
					.animate({
					marginLeft: -((pos-1)*product_div_w)
				},function () {
					anim_pos = pos-1;
					$j(sprod_0).show();
					$j('#arrow_left').show();
					if (pos == 1) {
						$j('.move_left').show();
						$j('.move_right').hide();
					}
					else if (pos == max_prod) {
						$j('.move_left').hide();
					}
					else {
						$j('.move_right').show();
						$j('.move_left').show();
					}
			});
	}



	//initialisierung der divs aufgrund der anzhal produkte
	init_product_cats();
	$j(scroller).width(max_prod*product_div_w);
	$j(produkt_wrap).width((max_prod*product_div_w));
	$j(descriptions).width(max_prod*product_div_w);




	//user-interaktionen auf den folgenden zeilen
	$j('img.p_switch').click(function() {
		var parent = $j(this).parent().attr("id");
		var img_nr = parent.substring(1,2);
		$j('#'+parent+' img:eq(0)').attr("src",PATH_product_detail+"p"+img_nr+"_"+$j(this).attr("name")+".png");
		$j("#"+parent+' img.p_switch').attr("src",pas_button);
		$j(this).attr("src",act_button);
	});


	$j('#arrow_left img.arrow').hover(function() {
		oversrc = modx_base+"img/arrow_left_a.gif";
		$j(this).attr("src",oversrc);
	},function() {
		outsrc = modx_base+"img/arrow_left.gif";
		$j(this).attr("src",outsrc);
	});

	$j('#arrow_right img.arrow').hover(function() {
		oversrc = modx_base+"img/arrow_right_a.gif";
		$j(this).attr("src",oversrc);
	},function() {
		outsrc = modx_base+"img/arrow_right.gif";
		$j(this).attr("src",outsrc);
	});

	$j(menu_element).hover(function() {

		if ($j(this).attr("class")!= "act") {
			menu_src = $j(this).attr("src");
			new_menu_src = menu_src.substring(0,(menu_src.length)-7)+"over.png";
			$j(this).attr("src",new_menu_src);
		}
	},function() {
		if ($j(this).attr("class")!= "act") {
			$j(this).attr("src",menu_src);
		}
	});


	$j('.move_left').click(function() {
		if (anim_pos <= max_prod) { // prüft ob noch Produkte dargestellt werden können
			$j('.move_right').show();
			if (moving != 1) { // prüft ob derzeit bereits am Scrollen
				moving = 1; // gesetzt, damit keine Doppelklicks möglich sind
				scrollslide(anim_pos+2,moving);
				setTimeout(function(){
				    moving = 0;
				},550);
			}
		}
	});

	$j('.move_right').click(function() {
		if (anim_pos > 0) { // prüft ob noch Produkte dargestellt werden k�nnen
			$j('.move_left').show();
			if (moving != 1) { // prüft ob derzeit bereits am Scrollen
				moving = 1; // gesetzt, damit keine Doppelklicks möglich sind
				scrollslide(anim_pos,moving);
				setTimeout(function(){
				    moving = 0;
				},550);
			}
		}
	});
	
	function autoleft() {
		//alert(anim_pos,max_prod);
		if (anim_pos < max_prod-1) { // prüft ob noch Produkte dargestellt werden k�nnen
			$j('.move_right').show();
			if (moving != 1) { // prüft ob derzeit bereits am Scrollen
				moving = 1; // gesetzt, damit keine Doppelklicks m�glich sind
				scrollslide(anim_pos+2,moving);
				setTimeout(function(){
				    moving = 0;
				},550);
			}
		}
		else {
			$j('.move_left').hide();
			$j('.move_right').hide();
			$j(scroller) //verschiebt den gesamten DIV
					.animate({
					marginLeft: 0
				},function () {
					anim_pos = 0;
					$j('.move_left').show();
				});
		}
	}

	var counter;
	var timer;
	function setTimer() {
		if (max_prod > 1) {
			timer = setInterval(automove, 6000);
			counter = 0;
		}
	}

	function automove() {
	    counter++;
		autoleft();
	    //if (counter == 1) { counter=0; clearInterval(timer);}
	}
	
	$j('#showroom_slide').mouseenter(function(){
      clearInterval(timer);
    }).mouseleave(function(){
       setTimer();
    });
	
	$j('#arrow_left').mouseenter(function(){
      clearInterval(timer);
    }).mouseleave(function(){
       setTimer();
    });
	
	$j('#arrow_right').mouseenter(function(){
      clearInterval(timer);
    }).mouseleave(function(){
       setTimer();
    });

	setTimer();
	
});
