// Show/UnShow Teaser and content text
function display(unshow, show) {
  if (document.getElementById) {
    document.getElementById(unshow).style.display = 'none';
    document.getElementById(show).style.display = 'block';
  } else if (document.all) {
    document.all[unshow].style.display = 'none';
    document.all[show].style.display = 'block';
  } else if (document.layers) {
    document.layers[unshow].display = 'none';
    document.layers[show].display = 'block';
  }
}

// Simple Show/Unshow 
function simpleDisplay (show) {
    if (document.getElementById) {
        var value = document.getElementById(show).style;
    } else if (ducument.all) {
        var value = document.all[show].style;
    } else if (document.layers) {
        var value = document.layers[show];
    }
    
    if (value.display == 'block') {
        value.display = 'none';
    } else {
        value.display = 'block';
    }
    
}
// Show Products popup 
function popupWindow(url, title, dimensions, options)
{
    if (title == null)
    {
        var title = "popupWindow";
    }
    if (dimensions == null)
    {
        var dimensions = "width=100,height=100,screenX=150,screenY=150,top=150,left=150";
    }
    if (options == null)
    {
        var options = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no, resizable,scrollbars";
    }

    win = window.open(url, title, dimensions + "," + options)
    win.focus();
}
// show wait screen
function show_wait_sceen() {
	if(document.getElementById) {
		document.getElementById("wait1").style.display = "block";
		document.getElementById("wait2").style.display = "block";
	} else if(document.all) {
        document.all["wait1"].style.setAttribute("display","block","false");
        document.all["wait2"].style.setAttribute("display","block","false");
	}
}

// Stellt Verbindung zwischen Profisuche-Maske und Filter her
function setURLSearchProperty(section, key, value)
{
    link = document.getElementById("link_"+section);
    var pattern = "("+key+")=(\\d+)";
    var exp = new RegExp(pattern);
    erg = link.href.replace(exp, "$1="+value);
    link.href=erg;
}

function setInputDefault(key, text) {
    if (document.getElementById(key).value == '' || document.getElementById(key).value == text) {
        document.getElementById(key).value = text;
        /*document.getElementById(key).style.backgroundColor = "#EFEDEC";*/
        document.getElementById(key).style.color = '#868686';
    } 
}

function setInputDefaultClear(key, text) {
    if (text && key) {
        if (document.getElementById(key).value == text) {
            document.getElementById(key).value = '';
            /*document.getElementById(key).style.backgroundColor = "#ffffff";*/
            document.getElementById(key).style.color = '#000000';
        }
    } 
}

function slideBar (name, max, speed, breite, leftbutton, rightbutton) {
    this.zbarposition = 0;
    this.zbarspeed = speed;
    
    this.zslidebar = document.getElementById(name);
    this.zleftbutton = document.getElementById(leftbutton);
    this.zrightbutton = document.getElementById(rightbutton);
    
    this.zslidebar.style.width = breite + 'px';
    this.zbarmin = 0;
    this.zbarmax = -(this.zslidebar.scrollWidth - max);
    this.zaktiv;
    
    this.tabsliderspeed = 50;
    this.tabslidersteps = 100;
    
    this.SetTabsliderspeed = function (newTabsliderspeed)
         {
             this.tabsliderspeed = newTabsliderspeed;
         }
         
    this.SetTabslidersteps = function (newTabslidersteps)
         {
             this.tabslidersteps = newTabslidersteps;
         }

    if (navigator.appName.indexOf("Explorer") != -1) {
        this.zbarspeed = this.zbarspeed * 3;
    } else if (navigator.appName.indexOf("Netscape") != -1) {
        this.zbarspeed = this.zbarspeed * 3;
    }
        
    this.ztabslideLeft = function (slide) {
        if (slide == 0 || slide == 'NaN' || slide == 'undefined' || slide == undefined) {
            slide = 300;
        }
        
        slide = slide - this.tabslidersteps;
        steps = this.tabslidersteps;
        if (slide < 0) {
            steps = (steps + slide);
        } else {
            if (slide <= 135) {
                steps = 35;
                slide = slide + this.tabslidersteps - 35;
            } else if (slide <= 205) {
                steps = 50;
                slide = slide + this.tabslidersteps - 50;
            } else if (slide <= 290) {
                steps = 75;
                slide = slide + this.tabslidersteps - 75;
            } else if (slide >= 590) {
                steps = 35;
                slide = slide + this.tabslidersteps - 35;
            } else if (slide >= 535) {
                steps = 50;
                slide = slide + this.tabslidersteps - 50;
            } else if (slide >= 465) {
                steps = 75;
                slide = slide + this.tabslidersteps - 75;
            }
        }
        
        this.zbarposition = this.zbarposition - steps;
        if (this.zbarposition <= this.zbarmax) {
            this.zbarposition = this.zbarmax;
            slide = 0;
            this.endArrowRight();
        }
        this.zslidebar.style.left =  this.zbarposition + 'px';
        
        if (slide > 0) {
            oThis = this;
            var scroller = function() {oThis.ztabslideLeft(slide)}
            setTimeout(scroller, this.tabsliderspeed);
        }
        
        this.startArrowLeft();
    }
    this.ztabslideRight = function (slide) {
        if (slide == 0 || slide == 'NaN' || slide == 'undefined' || slide == undefined) {
            slide = 300;
        }
        
        slide = slide - this.tabslidersteps;
        steps = this.tabslidersteps;
        if (slide < 0) {
            steps = (steps + slide);
        } else {
            if (slide <= 135) {
                steps = 35;
                slide = slide + this.tabslidersteps - 35;
            } else if (slide <= 205) {
                steps = 50;
                slide = slide + this.tabslidersteps - 50;
            } else if (slide <= 290) {
                steps = 75;
                slide = slide + this.tabslidersteps - 75;
            } else if (slide >= 590) {
                steps = 35;
                slide = slide + this.tabslidersteps - 35;
            } else if (slide >= 535) {
                steps = 50;
                slide = slide + this.tabslidersteps - 50;
            } else if (slide >= 465) {
                steps = 75;
                slide = slide + this.tabslidersteps - 75;
            }
        }
        
        this.zbarposition = this.zbarposition + steps;
        if (this.zbarposition >= this.zbarmin) {
            this.zbarposition = 0;
            slide = 0;
            this.endArrowLeft();
        }
        this.zslidebar.style.left =  this.zbarposition + 'px';
        
        if (slide > 0) {
            oThis = this;
            var scroller = function() {oThis.ztabslideRight(slide)}
            setTimeout(scroller, this.tabsliderspeed);
        }
        
        this.startArrowRight();
    }
    this.setzslideLeft = function  () {

        this.zslideLeft();
        var that = this;
        this.zaktiv = window.setInterval(function() {that.zslideLeft();}, this.zbarspeed);
    }
    this.zslideLeft = function () {
        if (this.zbarposition <= this.zbarmax) {
            this.zbarposition = this.zbarmax;
            this.endArrowRight();
            this.startArrowLeft();
        } else {
            if (navigator.appName.indexOf("Explorer") != -1) {
                if (navigator.userAgent.indexOf("IE 8") != -1)
                {
                    this.zbarposition = this.zbarposition - 5;
                }
                else
                {
                    this.zbarposition = this.zbarposition - 2;
                }
            } else if (navigator.appName.indexOf("Netscape") != -1) {
                this.zbarposition = this.zbarposition - 5;
            } else {
                this.zbarposition = this.zbarposition - 1;
            }
            this.startArrowLeft();
        }
        this.zslidebar.style.left =  this.zbarposition + 'px';
    }
    this.setzslideRight = function () {

        this.zslideRight();
        var that = this;
        this.zaktiv = window.setInterval(function() {that.zslideRight();}, this.zbarspeed);
    }
    this.zslideRight = function () {
        if (this.zbarposition >= this.zbarmin) {
            this.zbarposition = 0;
            this.endArrowLeft();
            this.startArrowRight();
        } else {
            if (navigator.appName.indexOf("Explorer") != -1) {
                if (navigator.userAgent.indexOf("IE 8") != -1)
                {
                    this.zbarposition = this.zbarposition + 5;
                }
                else
                {
                    this.zbarposition = this.zbarposition + 2;
                }
            } else if (navigator.appName.indexOf("Netscape") != -1) {
                this.zbarposition = this.zbarposition + 5;
            } else {
                this.zbarposition = this.zbarposition + 1;
            }
            this.startArrowRight();
        }
        this.zslidebar.style.left =  this.zbarposition + 'px';
    }
    this.zstopSlide = function () {
        window.clearInterval(this.zaktiv);
    }
    this.endArrowLeft = function () {
        if (navigator.appName.indexOf("Explorer") != -1) {
            this.zleftbutton.firstChild.style.filter = "Alpha(opacity=30)";
        } else {
            this.zleftbutton.style.opacity = 0.3;
        }
    }
    this.startArrowLeft = function() {
        if (navigator.appName.indexOf("Explorer") != -1) {
            this.zleftbutton.firstChild.style.filter="Alpha(opacity=100)";
        } else {
            this.zleftbutton.style.opacity = 1;
        }
    }
    this.endArrowRight = function () {
        if (navigator.appName.indexOf("Explorer") != -1) {
            this.zrightbutton.firstChild.style.filter="Alpha(opacity=30)";
        } else {
            this.zrightbutton.style.opacity = 0.3;
        }
    }
    this.startArrowRight = function() {
        if (navigator.appName.indexOf("Explorer") != -1) {
            this.zrightbutton.firstChild.style.filter="Alpha(opacity=100)";
        } else {
            this.zrightbutton.style.opacity = 1;
        }
    }
    this.init = function () {
        this.zleftbutton.style.display = 'block';
        this.zrightbutton.style.display = 'block';
        this.endArrowLeft();
    }
}

/* product_listing start */
function changeCheckForMatchProducts(ID)
{
    if(document.getElementById('check_product_'+ID).checked)
    {
        addToMatchProducts(ID);
    }
    else
    {
        unsetFromMatchProducts(ID);
    }
}
function addToMatchProducts(ID)
{
    PRODUCTS.push(ID);
    refreshCountMatch();
}
function unsetFromMatchProducts(ID)
{
    var NEW_PRODUCTS = new Array();
    for (var i = 0; i < PRODUCTS.length; i++)
    {
        if (PRODUCTS[i] != ID)
        {
            NEW_PRODUCTS.push(PRODUCTS[i]);
        }
    }
    PRODUCTS = NEW_PRODUCTS;
    refreshCountMatch();
}
function refreshCountMatch()
{
    if (PRODUCTS.length == 0)
    {
        document.getElementById('countMatch').innerHTML = 'keine';
    }
    else
    {
        document.getElementById('countMatch').innerHTML = PRODUCTS.length;
    }
}
function MatchProducts()
{
    var LINK_ADD = '';
    if(PRODUCTS.length < 1)
    {
        alert('Bitte wählen Sie ein Produkt aus!');
    }
    else
    {
        for (var i = 0; i < PRODUCTS.length; i++)
        {
            LINK_ADD = LINK_ADD + '&product_id%5B%5D=' + PRODUCTS[i];
        }
        LINK_ADD = LINK_HREF + LINK_ADD;
        popupWindow(LINK_ADD,'vergleich','width=670,height=500');
    }
}
/* product_listing end */

var openMSOfficeSlide = 0;
function msOfficeBox() {
    if (openMSOfficeSlide == 1) {
        msOfficeClose();
    } else if (openMSOfficeSlide == 0) {
        getAjaxData('track&code=' + mstrackingcode, '');
        msOfficeOpen();
    } else {
        msOfficeOpen();
    }
}
function msOfficeClose() {
    document.getElementById('msOfficeSlider').style.display = 'none';
    document.getElementById('msOfficePfeil').src = '/images/gfx/boxen/arrow_white_down.gif';
    openMSOfficeSlide = 2;
}
function msOfficeOpen() {
    document.getElementById('msOfficeSlider').style.display = 'block';
    document.getElementById('msOfficePfeil').src = '/images/gfx/boxen/arrow_white_up.gif';
    openMSOfficeSlide = 1;
}

/**
  * Bestseller Menü ausklappen
  * einleiten der Ajax Funktion -> wegen Wartescreen Umweg über eigene Funktion
  */
function showAllAjaxBestseller (category, shopType)
{
    
    // wartescreen einblenden
    simpleDisplay('wait1');
    simpleDisplay('wait3');
    
    getAjaxData('showBestseller&cat='+category+'&type='+shopType, 'setBestseller')
}

/**
  * Bestseller Liste sortieren nach Artikeleigenschaft
  * einleiten der Ajax Funktion -> wegen Wartescreen Umweg über eigene Funktion
  */
function sortAjaxBestseller (category, shopType, property, position)
{
    // wartescreen einblenden
    simpleDisplay('wait1');
    simpleDisplay('wait3');
    
    var check_id    = 'property_sort_'+position+'_image'
    var check_index = document.getElementById(check_id);
    
    /**
      * Der IE kann Event-Attribute nicht dynamisch ändern
      * somit wird nach dem Bildnamen entschieden, welche Sortierung ausgeführt werden soll
      */
    if (check_index.src.indexOf('listing_arrow_up') != -1)
    {
        getAjaxData('sortBestseller&cat='+category+'&type='+shopType+'&sort=DESC&property='+property, 'setSortBestseller');
    }
    else if (check_index.src.indexOf('listing_arrow_down') != -1)
    {
        getAjaxData('sortBestseller&cat='+category+'&type='+shopType+'&sort=ASC&property='+property, 'setSortBestseller');
    }
    else
    {
        if (property == 'name' || property == 'price')
        {
            getAjaxData('sortBestseller&cat='+category+'&type='+shopType+'&sort=ASC&property='+property, 'setSortBestseller');
        }
        else
        {
            getAjaxData('sortBestseller&cat='+category+'&type='+shopType+'&sort=DESC&property='+property, 'setSortBestseller');
        }
    }
}

/**
  * Klappt die Bestseller Liste erneut auf, indem alle Elemente auf display="block" gesetzt werden
  * dazu muss die Bestseller liste einmal durch setBestseller erstell worden sein
  *
  * @param array products_id
  * ACHTUNG - genauso wie bei setBestseller, products_id[0] ist jenes Element, welches zum Schluss stehen bleibt
  */
function showAllBestseller(products_id)
{
	bestseller_array = new Array();
	bestseller_array[0] = products_id[0];
	
	for (var i = 1; i < products_id.length; i++)
	{
		document.getElementById('mouseover_'+products_id[i]).style.display = 'block';
		document.getElementById('line_'+products_id[i]).style.display = 'block';
		
		bestseller_array[i] = products_id[i];
	}
	
	// alle deaktivierten Elemente für 1 Bestseller aktivieren
	document.getElementById('property_head').style.display = 'block';
	document.getElementById('ecke_oben').style.display = 'block';
	document.getElementById('listing_main').style.marginTop = '0px';
	document.getElementById('listing_main').style.borderLeft = '1px solid #F0EFEF';
	document.getElementById('line_0').style.display = 'block';
	document.getElementById('line_'+products_id[0]).style.display = 'block';
	document.getElementById('check_product_'+products_id[0]).style.display = 'block';
	document.getElementById('check_product_'+products_id[0]).style.marginLeft = '-27px';
	document.getElementById('vergleich').style.display = 'block';
	
    // no_1 bild nicht anzeigen und richtig anzeigen
    if (document.getElementById('bestseller_number')) {
        document.getElementById('bestseller_number').style.visibility = 'hidden';
    }
	
	// "mehr Bestseller" ausblenden und "weniger Bestseller" sichtbar machen
	document.getElementById('bestseller_slider_more').style.display = 'none';
	//document.getElementById('bestseller_slider').style.display = 'block';
	document.getElementById('bestseller_slider_less').style.display = 'block';
}

/**
  * Klappt die Bestseller Liste wieder ein, indem alle Elemente auf display="none" gesetzt werden  
  *
  * @param array products_id
  * ACHTUNG - genauso wie bei setBestseller, products_id[0] ist jenes Element, welches zum Schluss stehen bleibt
  */
function showOneBestseller(products_id)
{
    bestseller_array[0] = products_id[0];
    
	for (var i = 1; i < products_id.length; i++)
	{
		document.getElementById('mouseover_'+products_id[i]).style.display = 'none';
		document.getElementById('line_'+products_id[i]).style.display = 'none';
		
		bestseller_array[i] = products_id[i];
	}
	
	// alle deaktivierten Elemente für 1 Bestseller aktivieren
	document.getElementById('property_head').style.display = 'none';
	//document.getElementById('ecke_oben').style.display = 'none';
	//document.getElementById('listing_main').style.marginTop = '25px';
	//document.getElementById('listing_main').style.borderLeft = 'none';
	//document.getElementById('line_0').style.display = 'none';
	//document.getElementById('line_'+products_id[0]).style.display = 'none';
	//document.getElementById('check_product_'+products_id[0]).style.display = 'none';
	//document.getElementById('vergleich').style.display = 'none';
	
	// no_1 bild anzeigen
    if (document.getElementById('bestseller_number')) {
        document.getElementById('bestseller_number').style.visibility = 'visible';
    }
	
	// "weniger Bestseller" ausblenden und "mehr Bestseller" sichtbar machen
	//document.getElementById('bestseller_slider').style.display = 'block';
	document.getElementById('bestseller_slider_more').style.display = 'block';
	document.getElementById('bestseller_slider_less').style.display = 'none';
	
	// höhe feststellen der ersten Bestseller artikel
	var topscroll = 200;
	if (document.getElementById('bestseller_listing').offsetTop) {
	    topscroll = document.getElementById('bestseller_listing').offsetTop - 100;
	}
	
	window.scrollTo(0, topscroll);
}


// RecommendBox
function loadRecommendations(strURL,x,y,value,divTag,target,jump_form) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
            self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
    self.xmlHttpReq.setRequestHeader("If-Modified-Since","Tue,11 Jul 2000 18:23:51 GMT");
    self.xmlHttpReq.onreadystatechange = function() {
	    if (self.xmlHttpReq.readyState == 4) {
        	divTag.innerHTML= '<iframe id="iehelper" scrolling="no" frameborder="0" style="position:absolute;width:0px;height:0px;top:0px;left:0px;border:none;display:block;z-index:-1;"></iframe><div style="border:1px solid #606060;">'+self.xmlHttpReq.responseText+'</div>';
		divTag.style.left=x;
		divTag.style.top=y;
		divTag.style.display = "block";
		divTag.style.zIndex  = 9999;
		if (window.ActiveXObject) {
			document.getElementById("iehelper").style.width  = divTag.offsetWidth+'px';
			document.getElementById("iehelper").style.height = divTag.offsetHeight+'px';
		}
	     }
     }
     self.xmlHttpReq.send("value="+value+"&target="+target+"&jump_form="+jump_form);
}

function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

var LastKey=0;

function Show(evt,x,y,value,divTag,target,onlysys,jump_form){
	var key;
	if(evt.keyCode)
		key = evt.keyCode;
	else
		key = evt.which;

	if(onlysys==1){
		if(key==9||(key==32&&LastKey==1)){
			if(document.getElementById('rbox_now').value>0){
				if(document.getElementById("rbox_v"+document.getElementById('rbox_now').value+"_rep")){
					var jetzt = document.getElementById(target).value;
					var tausch = document.getElementById("rbox_v"+document.getElementById('rbox_now').value+"_rep").value;
					var type = document.getElementById("rbox_v"+document.getElementById('rbox_now').value+"_type").value;
					if(type!='Artikel'){
						var dann = jetzt.replace(tausch,document.getElementById("rbox_v"+document.getElementById('rbox_now').value+"_with").value);
						document.getElementById(target).value = trim(dann)+' ';
					}else{
						document.getElementById(target).value = trim(document.getElementById("rbox_v"+document.getElementById('rbox_now').value+"_with").value)+' ';
					}
					document.getElementById(target).focus();
				}else{
					document.getElementById(target).value=document.getElementById("rbox_v"+document.getElementById('rbox_now').value).value;
				}

				if (evt.preventDefault)
					evt.preventDefault();
				return false;
			}
			LastKey=0;
		}
		if(key==13&&LastKey==1){

		if(document.getElementById('rbox_now').value>0&&document.getElementById("rbox_v"+document.getElementById('rbox_now').value+"_rep")!="undefined"){
					var jetzt = document.getElementById(target).value;
					var tausch = document.getElementById("rbox_v"+document.getElementById('rbox_now').value+"_rep").value;
					var type = document.getElementById("rbox_v"+document.getElementById('rbox_now').value+"_type").value;
					if(type!='Artikel'){
						var dann = jetzt.replace(tausch,document.getElementById("rbox_v"+document.getElementById('rbox_now').value+"_with").value);
						document.getElementById(target).value = dann;
					}
					else{
						document.getElementById(target).value = document.getElementById("rbox_v"+document.getElementById('rbox_now').value+"_with").value;
					}
					document.getElementById(target).focus();
				return true;
			}
			if(document.getElementById('rbox_now').value>0){
				document.getElementById(target).value=document.getElementById("rbox_v"+document.getElementById('rbox_now').value).value;

				return true;
			}
			LastKey=0;
		}

		if(key==40||key==38){
			LastKey=1;
			if(key==38){
				if(document.getElementById('rbox_now').value>0){
					if(document.getElementById("rbox_"+document.getElementById('rbox_now').value))
						document.getElementById("rbox_"+document.getElementById('rbox_now').value).style.backgroundColor="#FFFFFF";
					document.getElementById('rbox_now').value=parseInt(document.getElementById('rbox_now').value)-1;
					document.getElementById("rbox_"+document.getElementById('rbox_now').value).style.backgroundColor="#CCCCCC";
				}
			}
			if(key==40){
				if(document.getElementById('rbox_now').value<parseInt(document.getElementById('rbox_max').value)-1){
					if(document.getElementById("rbox_"+document.getElementById('rbox_now').value))
						document.getElementById("rbox_"+document.getElementById('rbox_now').value).style.backgroundColor="#FFFFFF";
					document.getElementById('rbox_now').value=parseInt(document.getElementById('rbox_now').value)+1;
					document.getElementById("rbox_"+document.getElementById('rbox_now').value).style.backgroundColor="#CCCCCC";
				}			}

			if (evt.preventDefault)
				evt.preventDefault();
			return false;
		}

		return true;
	}
	if(key==40||key==38)
		return true;
	if(value.length>0){
		loadRecommendations("search_recommendations.php",x,y,value,divTag,target,jump_form);
	}else
		Hide("",divTag);
	return true;
}

function makecorrection(evt,Target,from,to,jump_form){
	var str = document.getElementById(Target).value;
	var jetzt = str.replace(from,to);
	document.getElementById(Target).value=trim(jetzt)+' ';
	document.getElementById(Target).focus();
	current_form = document.getElementsByName(jump_form);
	current_form[0].submit();
	raiseEvent("focus",Target);
	if (evt.preventDefault)
		evt.preventDefault();
	return false;
}


function makejump(evt,Target,from,to,jump_form){
	var str = document.getElementById(Target).value;
	var jetzt = to;//str.replace(from,to);
	document.getElementById(Target).value=trim(jetzt)+' ';
	document.getElementById(Target).focus();
	current_form = document.getElementsByName(jump_form);
	current_form[0].submit();
	raiseEvent("focus",Target);
	if (evt.preventDefault)
		evt.preventDefault();
	return false;
}

function raiseEvent (eventType, elementID)
{
    var o = document.getElementById(elementID);
    if (document.createEvent) {
        var evt = document.createEvent("Events");
        evt.initEvent(eventType, true, true);
        o.dispatchEvent(evt);
    }
    else if (document.createEventObject)
    {
        var evt = document.createEventObject();
        o.fireEvent('on' + eventType, evt);
    }
    o = null;
}

function Hide(ev,divTag){
	//var divTag = document.getElementById(divTag);
	divTag.style.display = "none";
}
