//Funktionen onload ausfuehren
document.observe("dom:loaded", function() {
	set_external_links ();
	set_boxes_clickable();
	initCartLink();

	start_mainteaser_rotation();
	
	/* important vars */
	offer_slide_cnt = 0;
	initOfferSlider();
	
	similar_slide_cnt = 0;
	initSimilarSlider();
	
	bestseller_slide_cnt = 0;
	initBestsellerSlider();	
});


/* 
 * 
 * box is clickable
 * 
 * */

function set_boxes_clickable () {
    var clickbox = $$(".clickable");

    for (var i = 0; i < clickbox.length; i++) {
      clickbox[i].onclick = function () {
    	  a = this.getElementsByTagName("a");
    	  if (typeof a[0] != "undefined") {
    		  if (a[0].onclick) {
    			  //bei onclick pruefen, ob link onlcik-Attribut besitzt
                  var eval_str = a[0].getAttribute('onclick').toString();
                  eval_str = eval_str.replace(/return false;/,"");
                  //ie benoetigt folgendes replace!!
                  eval_str = eval_str.replace("function onclick()","");
                  eval_str = eval_str.replace("function anonymous()","");
                  eval_str = eval_str.replace("{","");
                  eval_str = eval_str.replace("}","");
                  eval (eval_str);
                  return false;    			  
    		  } else {
           		  //link aus dem href verwenden	
    			  if (a[0].target=="_blank"){
    				  window.open (a[0].href,"_blank");
    				  return false;
    			  } else {
         			self.location.href = a[0].href;
         			return false;    			  
    			  }

    		  }
    	  }
      }
    }
}

function goBack() {
	url_referer = document.referrer;
    eval("such = /" + window.location.host + "/;");
    if (!(such.test(url_referer))) {
    	self.location.href = 'http://'+ window.location.host;
    } else {
    	history.back();  
    }
	return false;       
}

/* 
 * add cart dropdown
 * 
 * 
 */

function initCartLink() {
	var cart_link = $$('.top-link-cart')[0];

	if(cart_link){
		var cart_id = cart_link.id;
		var cart_num = cart_id.replace(/top-link-cart-/g, "");

		
		//create link to dropdown cart
		var cart_count_link = document.createElement("a");
		cart_count_link.href = "#";
		cart_count_link.id = "show-dropdown-cart";
		cart_count_link.innerHTML = cart_num;
		
		cart_link.parentNode.appendChild(cart_count_link);
		cart_count_link.onclick = function () {
			showCart();
			return false;
		}
	}
}

function showCart(timeout){
	if($$('.top-link-cart')[0].parentNode.className == "active-cart-link"){
		$$('.top-link-cart')[0].parentNode.removeClassName("active-cart-link");			
	} else {
		$$('.top-link-cart')[0].parentNode.className = "active-cart-link";		
	}
	new Effect.toggle('cart_box','slide',{duration:0.4});
	
	if(typeof(timeout)!="undefined"){
		window.setTimeout("showCart()", timeout);
	}
}

function initShowMoreHome(){
	var more_box = $('home-more-infos');
	if (more_box){
		var pager_more = $$('.home-msg .more')[0];
		var pager_less = $$('.home-msg .less')[0];
		
		more_box.style.height = (more_box.offsetHeight + 20) + 'px'; 	;
		more_box.style.margin = "0px";
		more_box.style.display = "none";
		
		pager_more.onclick = function(){
			showMoreInfos(more_box.id);
			this.style.display = "none";
			pager_less.style.display = "block";
			return false;
		}
		pager_less.onclick = function(){
			showMoreInfos(more_box.id);
			this.style.display = "none";
			pager_more.style.display = "block";			
			return false;
		}		
		pager_less.style.display = "none";
		
	}
}

function showMoreInfos(el_id){
	if ($(el_id).style.display=="none"){
		new Effect.BlindDown(el_id, {
			  duration: 0.8, // Core Effect properties
			  afterFinish: function(){
				$(el_id).style.display = "block";
		}
		});		
	} else {
		new Effect.BlindUp(el_id, {
			  duration: 0.8, // Core Effect properties
			  afterFinish: function(){
				$(el_id).style.display = "none";
		}
		});				
	}

}


/* 
 * 
 * slide all products, offers
 * 
 * */
function initOfferSlider() {
	var slide_lists = $$('#offer-items .item');
	
	for (m=0; m<slide_lists.length; m++) {
		if(m!=0){
			slide_lists[m].style.display = "none";
		}
	}
}

function offer_paginate(pag) {
		var slide_el = $$('#offer-items .item');

		//aktuelles slide
		for (i=0; i < slide_el.length;i++) {			
			m = i + 1;
			slide_el[i].id = "offer_slide_item_"+m;
			if (slide_el[i].style.display != "none") {			
				var cur = slide_el[i].id;
			}
		}		

		//next slide		
		var cur_num = cur.split("_");
		var cur_num = cur_num[3];
	
		if(pag=="prev"){
			//previous items
			var nex_num = parseInt(cur_num,10) - 1;		
			
			if (!($('offer_slide_item_' + nex_num))){
				nex_num = slide_el.length;	
			}
		
			offer_slide (cur, 'offer_slide_item_' + nex_num, 'prev');			
			
		} else if (pag=="next"){
			//next items			
			var nex_num = parseInt(cur_num,10) + 1;	
			
			if (!($('offer_slide_item_' + nex_num))){
				nex_num = 1;	
			}

			offer_slide (cur, 'offer_slide_item_' + nex_num, 'next');
			
		}


}

function offer_slide (cur, nex, direction) {
	//$('similar-slider').style.overflow = "hidden";
	offer_slide_cnt++;
	if (direction=="next"){
		$(nex).style.left 	= "239px";
		$(nex).style.display = "block";
	
		new Effect.Parallel([
		  	new Effect.Move(cur, {x: -239, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal}),
		  	new Effect.Move(nex, {x: 0, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal})
		], {
		  duration: 1.0,
		  afterFinish: function () {
				$(cur).style.display = "none";
				if (similar_slide_cnt <= 1) 
					{
						//$('similar-slider').style.overflow = "visible";	
					}
				offer_slide_cnt--;		
		  }
		});

	} else {
		$(nex).style.left 	= "-239px";
		$(nex).style.display = "block";

		new Effect.Parallel([
		  	new Effect.Move(cur, {x: 239, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal}),
		  	new Effect.Move(nex, {x: 0, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal})
		], {
		  duration: 1.0,
		  beforeStart: function () {
				//$('similar-slider').style.overflow = "hidden";		  
		  },
		  afterFinish: function () {
				$(cur).style.display = "none";
				if (offer_slide_cnt <= 1) 
					{
						//$('similar-slider').style.overflow = "visible";	
					}
				offer_slide_cnt--;	
		  }
		});
	}
}



/* 
 * 
 * slide all products in product view
 * 
 * */

function initSimilarSlider() {
	var slide_lists = $$('#upsell-product-list .item');
	
	for (m=0; m<slide_lists.length; m++) {
		if(m!=0){
			slide_lists[m].style.display = "none";
		}
	}
}

function similar_paginate(pag) {
		var slide_el = $$('#upsell-product-list .item');

		//aktuelles slide
		for (i=0; i < slide_el.length;i++) {			
			m = i + 1;
			slide_el[i].id = "slide_item_"+m;
			if (slide_el[i].style.display != "none") {			
				var cur = slide_el[i].id;
			}
		}		

		//next slide		
		var cur_num = cur.split("_");
		var cur_num = cur_num[2];
	
		if(pag=="prev"){
			//previous items
			var nex_num = parseInt(cur_num,10) - 1;		
			
			if (!($('slide_item_' + nex_num))){
				nex_num = slide_el.length;	
			}
		
			similar_slide (cur, 'slide_item_' + nex_num, 'prev');			
			
		} else if (pag=="next"){
			//next items			
			var nex_num = parseInt(cur_num,10) + 1;	
			
			if (!($('slide_item_' + nex_num))){
				nex_num = 1;	
			}

			similar_slide (cur, 'slide_item_' + nex_num, 'next');
			
		}


}

function similar_slide (cur, nex, direction) {
	//$('similar-slider').style.overflow = "hidden";
	similar_slide_cnt++;
	if (direction=="next"){
		$(nex).style.left 	= "715px";
		$(nex).style.display = "block";
	
		new Effect.Parallel([
		  	new Effect.Move(cur, {x: -715, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal}),
		  	new Effect.Move(nex, {x: 0, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal})
		], {
		  duration: 1.0,
		  afterFinish: function () {
				$(cur).style.display = "none";
				if (similar_slide_cnt <= 1) 
					{
						//$('similar-slider').style.overflow = "visible";	
					}
				similar_slide_cnt--;		
		  }
		});

	} else {
		$(nex).style.left 	= "-715px";
		$(nex).style.display = "block";

		new Effect.Parallel([
		  	new Effect.Move(cur, {x: 715, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal}),
		  	new Effect.Move(nex, {x: 0, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal})
		], {
		  duration: 1.0,
		  beforeStart: function () {
				//$('similar-slider').style.overflow = "hidden";		  
		  },
		  afterFinish: function () {
				$(cur).style.display = "none";
				if (similar_slide_cnt <= 1) 
					{
						//$('similar-slider').style.overflow = "visible";	
					}
				similar_slide_cnt--;	
		  }
		});
	}
}

/* 
 * 
 * slide all products, bestseller
 * 
 * */
function initBestsellerSlider() {
	var slide_lists = $$('#bestseller-items .item');
	
	for (m=0; m<slide_lists.length; m++) {
		if(m!=0){
			slide_lists[m].style.display = "none";
		}
	}
}

function bestseller_paginate(pag) {
		var slide_el = $$('#bestseller-items .item');

		//aktuelles slide
		for (i=0; i < slide_el.length;i++) {			
			m = i + 1;
			slide_el[i].id = "bestseller_slide_item_"+m;
			if (slide_el[i].style.display != "none") {			
				var cur = slide_el[i].id;
			}
		}		

		//next slide		
		var cur_num = cur.split("_");
		var cur_num = cur_num[3];
	
		if(pag=="prev"){
			//previous items
			var nex_num = parseInt(cur_num,10) - 1;		
			
			if (!($('bestseller_slide_item_' + nex_num))){
				nex_num = slide_el.length;	
			}
		
			bestseller_slide (cur, 'bestseller_slide_item_' + nex_num, 'prev');			
			
		} else if (pag=="next"){
			//next items			
			var nex_num = parseInt(cur_num,10) + 1;	
			
			if (!($('bestseller_slide_item_' + nex_num))){
				nex_num = 1;	
			}

			bestseller_slide (cur, 'bestseller_slide_item_' + nex_num, 'next');
			
		}


}

function bestseller_slide (cur, nex, direction) {
	//$('similar-slider').style.overflow = "hidden";
	bestseller_slide_cnt++;
	if (direction=="next"){
		$(nex).style.left 	= "239px";
		$(nex).style.display = "block";
	
		new Effect.Parallel([
		  	new Effect.Move(cur, {x: -239, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal}),
		  	new Effect.Move(nex, {x: 0, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal})
		], {
		  duration: 1.0,
		  afterFinish: function () {
				$(cur).style.display = "none";
				if (similar_slide_cnt <= 1) 
					{
						//$('similar-slider').style.overflow = "visible";	
					}
				bestseller_slide_cnt--;		
		  }
		});

	} else {
		$(nex).style.left 	= "-239px";
		$(nex).style.display = "block";

		new Effect.Parallel([
		  	new Effect.Move(cur, {x: 239, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal}),
		  	new Effect.Move(nex, {x: 0, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal})
		], {
		  duration: 1.0,
		  beforeStart: function () {
				//$('similar-slider').style.overflow = "hidden";		  
		  },
		  afterFinish: function () {
				$(cur).style.display = "none";
				if (bestseller_slide_cnt <= 1) 
					{
						//$('similar-slider').style.overflow = "visible";	
					}
				bestseller_slide_cnt--;	
		  }
		});
	}
}

/* 
 *  Mainteaser-Slider (automatical only!)
 * 
 * */
function start_mainteaser_rotation() {
	mainteaser_items = $$('#mainteaser_container .item');
	if (mainteaser_items.length > 1) {
		act_id = 2;
		is_running = 0;
		stop_rotation = false;

		for(var m=0; m<mainteaser_items.length; m++){
			mainteaser_items[m].id = "mainteaser_"+m;	
			if(m>0){
				//mainteaser_items[m].style.display = "none";	
				mainteaser_items[m].style.opacity = "0";
			}
		}
		
		rotate_mainteaser();	
	} else if (mainteaser_items.length==1) {
		mainteaser_items[0].style.display = "block";
	}
}

function stop_mainteaser_rotation() {
	stop_rotation = true;
}

/* only display block and display none for mouseover, otherwise use effect */
function change_mainteaser(item_id) {
	// setting each picture invisible and each link as not active
	var item_num = item_id - 1;
	for (var i=0; i<mainteaser_items.length; i++) {
		//eval('$("mainteaser_pager_' + i + '").className ="";');
		//mainteaser_items[i].style.display = "none";		
		mainteaser_items[i].style.left = "0px";
	}

	// display the chosen picture
	//eval('$("mainteaser_pager_' + item_num + '").className ="active";');	
	mainteaser_items[item_num].style.display = "block";
	mainteaser_items[item_num].style.left = "0px";
}

function change_mainteaser_effect(next_id) {

	var next_num = next_id - 1;
	var next_item_h = mainteaser_items[next_num].id;
	
	var act_num = next_id - 2;
	if (act_num<0){
		act_num = mainteaser_items.length-1;
	}

	var act_item_h = mainteaser_items[act_num].id
	
	//$(next_item_h).style.left 	= "736px";
	//$(next_item_h).style.display = "block";

	new Effect.Parallel([
	                     /*
	                     new Effect.Move(act_item_h, {x: -736, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal}),
	                     new Effect.Move(next_item_h, {x: 0, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal})
						*/
	                     new Effect.Opacity(act_item_h, {from:1, to:0, transition: Effect.Transitions.sinoidal}),
	                     new Effect.Opacity(next_item_h, {from: 0, to: 1, transition: Effect.Transitions.sinoidal})	                     
	                    ], {
		  duration: 1.0,
	});

}

function rotate_mainteaser_step() {
	if (!stop_rotation) {
		change_mainteaser_effect(act_id);
		act_id++;
		
		var mainteaser_count = mainteaser_items.length;
		if (act_id > mainteaser_count) {
			act_id = 1;
		}
		is_running = 0;
		if (!stop_rotation) rotate_mainteaser();
	} else {
		is_running = 0;
	}
}

function rotate_mainteaser(mouseout_act_id) {
	var mainteaser_count = mainteaser_items.length;	
	if (mouseout_act_id) {
		stop_rotation = false;
		mouseout_act_id = mouseout_act_id.replace(/mainteaser_pager_/g, "");
		mouseout_act_id = parseInt(mouseout_act_id) + 1;		
		act_id =  parseInt(mouseout_act_id) + 1;
		if (act_id > mainteaser_count) act_id = 1;
	}
	
	if (is_running == 0) {
		is_running = 1;
		if (act_id == 0) {
			act_id = 1;
			window.setTimeout("rotate_mainteaser_step(act_id)", 3000);
		} else {
			window.setTimeout("rotate_mainteaser_step(act_id)", 12000);
		}
	}
}


//
// set external links target=blank
//
function set_external_links() {
  var a = document.getElementsByTagName("a");

  for (i=0; i < a.length; i++) {
    linkurl = a[i].href;
    eval("such = /" + window.location.host + "/;");
    if (!(such.test(linkurl))) {
      a[i].href = linkurl;
      a[i].setAttribute("target", "_blank");
    }
  }
}

