var firefox=document.getElementById&&!document.all;

function popupWindow(url) {
	window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,left=150')
}
function popupInfoWindow(url) {
	window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=700,height=500,screenX=50,screenY=50,top=50,left=50')
}
function decrease_qty()
{
	if (document.cart_quantity.qty.value >= 2) {
		eval ("document.cart_quantity.qty.value--");
	}
}
function increase_qty()
{
	eval ("document.cart_quantity.qty.value++");
}
function toggle_description(description_active) {
	var products_description = document.getElementById('products_description');
	if (products_description) products_description.className  = 'products_description';
	var products_description_heading = document.getElementById('products_description_heading');
	if (products_description_heading) products_description_heading.className  = 'products_description_menu_item';

	var products_reviews = document.getElementById('products_reviews');
	if (products_reviews) products_reviews.className  = 'products_description';
	var products_reviews_heading = document.getElementById('products_reviews_heading');
	if (products_reviews_heading) products_reviews_heading.className  = 'products_description_menu_item';

	var products_sizes = document.getElementById('products_sizes');
	if (products_sizes) products_sizes.className  = 'products_description';
	var products_sizes_heading = document.getElementById('products_sizes_heading');
	if (products_sizes_heading) products_sizes_heading.className  = 'products_description_menu_item';
	
	var products_faq = document.getElementById('products_faq');
	if (products_faq) products_faq.className  = 'products_description';
	var products_faq_heading = document.getElementById('products_faq_heading');
	if (products_faq_heading) products_faq_heading.className  = 'products_description_menu_item';

	
	var products_description_active = document.getElementById(description_active);
	if (products_description_active) products_description_active.className  = 'products_description_active';
	var products_description_heading_active = document.getElementById(description_active + '_heading');
	if (products_description_heading_active) products_description_heading_active.className  = 'products_description_menu_item_active';

	if (description_active == 'products_faq') {
		hideAll();	
	}
}

function opacity(id, opacStart, opacEnd, millisec) {
	//speed for each frame
	var percent = Math.abs(opacStart - opacEnd);
	var speed = Math.round(millisec / percent);
	var timer = 0;

	//determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++)
			{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function currentOpac(id, opacEnd, millisec) {
	//standard opacity is 100
	var currentOpac = 100;
	
	//if the element has an opacity set, get it
	if(document.getElementById(id).style.opacity < 100) {
		currentOpac = document.getElementById(id).style.opacity * 100;
	}

	//call for the function that changes the opacity
	opacity(id, currentOpac, opacEnd, millisec)
}

function getscroll() {
	 if (firefox) { // Firefox
	 	gescrollt_oben = parseInt(window.pageYOffset);
	 }
	 else {
	 	gescrollt_oben = parseInt(document.body.scrollTop);
	 }	
	 return  gescrollt_oben;
}

function popupmaximize(id) {
	var object = document.getElementById(id);
	screen_sizes = getPageSize();
	object.style.width = screen_sizes[0]+'px';
	object.style.height = screen_sizes[1]+'px';
}
function  maxhoehe(bild_id) {
		var bild=document.getElementById(bild_id);
		bild.style.marginTop=getscroll()+20+"px";
}

function getPageSize() {

	var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY) {
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) { // all except Explorer
		if(document.documentElement.clientWidth) {
			windowWidth = document.documentElement.clientWidth;
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}
	
	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = xScroll;
	} else {
		pageWidth = windowWidth;
	}
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}

function showSelectBoxes(){
	var selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}
}

function hideSelectBoxes(){
	var selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "hidden";
	}
}

function getElementsByClassName(class_name) {
  var all_obj,ret_obj=new Array(),j=0;
  if(document.all)all_obj=document.all;
  else if(document.getElementsByTagName && !document.all)all_obj=document.getElementsByTagName("*");
  var bla = "/\b"+class_name+"\b/";
  for(i=0;i<all_obj.length;i++)
  {
	var classtest = new RegExp(bla,'gi');
    if(all_obj[i].className.indexOf(class_name) != -1)
    {
      ret_obj[j]=all_obj[i];
      j++
    }
  }
  return ret_obj;
}

function addClassToElement(element,addclass) {
    if (element) {
        if (!element.className) {
            element.className = '';
        }
        if (element.className.indexOf(addclass) == -1) {
            element.className = (element.className != ''?element.className + ' ':'') + addclass;
        }
    }
}

function delClassFromElement(element,delclass) {
    if (element) {
        if (!element.className) {
            element.className = '';
        }
        if (element.className.indexOf(delclass) != -1) {

            element.className = element.className.replace(new RegExp(delclass,'gi'),'');
            //element.className = element.className.replace(/  /gi,' ');
        }
    }
}

function highlightClass(classSelect,classAdd) {
	var selectedElements = getElementsByClassName(classSelect);
	for (var i = 0; i < selectedElements.length; i++) {
		addClassToElement(selectedElements[i],classAdd);
	}
}

function unhighlightClass(classSelect,classAdd) {
	var selectedElements = getElementsByClassName(classSelect);
	for (var i = 0; i < selectedElements.length; i++) {
		delClassFromElement(selectedElements[i],classAdd);
	}
}

function show(id,delay) {
	if (delay > 0) {
		setTimeout('show(\''+id+'\',0)',delay);
	}
	else {
		var object = document.getElementById(id);
		object.style.display = 'block';
	}
}

function showimage(id,percent) {
	show(id,0);
	//changeOpac(percent,id)
	opacity(id,0,percent,10);
}

function hide(id) {
	var object = document.getElementById(id);
	object.style.display = 'none';
}

function hideimage(id) {
	changeOpac(0,id);
	//currentOpac(id,0,10);
	hide(id);
	//setTimeout('hide(\''+id+'\')',10);
}

function showImagePopup(image_no) {
	// 
	popupmaximize('imagepopup_background');
	maxhoehe('imagepopup_content');
	show('imagepopup',10);
	showimage('imagepopup_background',30);
	highlightClass('tooltip_icon','invisible');
	hideSelectBoxes();
	showImage(image_no);
}

function hideImagePopupFinish() {
	unhighlightClass('tooltip_icon','invisible');
	showSelectBoxes();
}
function hideImagePopup() {
	if (old_image > 0) var image_main_old = document.getElementById('imagemain'+old_image);
	if (old_image > 0) image_main_old.style.display = 'none';
	hide('imagepopup');
	hideimage('imagepopup_background');
	hideImagePopupFinish();
	//setTimeout('hideImagePopupFinish()',10);
}

var old_image = -1;
function showImage(image_no) {
	if (old_image > 0) var image_main_old = document.getElementById('imagemain'+old_image);
	var image_main = document.getElementById('imagemain'+image_no);
	if (old_image > 0) var image_preview_old = document.getElementById('imagepreview'+old_image);
	var image_preview = document.getElementById('imagepreview'+image_no);
	//if (old_image != image_no) {
		if (old_image > 0 && old_image != image_no) changeOpac(50,'imagepreview'+old_image);
		//if (old_image > 0) currentOpac('imagepreview'+old_image,30,500);
		//changeOpac(30,'imagepreview'+old_image);
		if (old_image > 0 && old_image != image_no) image_main_old.style.display = 'none';
		changeOpac(100,'imagepreview'+image_no);
		image_main.style.display = 'block';
		//setTimeout('changeOpac(100,\'imagepreview'+image_no+'\')',300);
		old_image = image_no;
	//}
	//image_main.innerHTML = products_images[image_no]['large'];
	
}

function createThumbs() {
	var image_preview = document.getElementById('imagepreview');
	var image_preview_main = document.getElementById('imagepreviewmain');
	var image_main = document.getElementById('imagemain');
	content = '';
	content_main = '';
	content_preview_main = '';
	for(var index in products_images) {
		if (typeof(products_images[index]['thumb']) != 'undefined') {
			content_main = content_main + '<div id="imagemain'+index+'" class="maindiv" style="display:none">'+products_images[index]['large']+'</div>';
			content = content + '<div class="div_imagepreview"><div id="imagepreview'+index+'" class="previewdiv" href="#" onclick="showImage('+index+'); return false;"><div>'+products_images[index]['thumb']+'</div></div></div>';
			content_preview_main = content_preview_main + '<div class="div_imagepreview"><div id="imagepreview'+index+'" class="previewdiv" href="#" onclick="showImagePopup('+index+'); return false;"><div>'+products_images[index]['thumb']+'</div></div></div>';
			setTimeout('changeOpac(30,\'imagepreview'+index+'\')',100);
		}
	}
	image_preview.innerHTML = content+'<div style="clear:both"></div>';
	if (image_preview_main) image_preview_main.innerHTML = content_preview_main+'<div style="clear:both"></div>';
	image_main.innerHTML = content_main;

}