/* Scrollbar rechts */

var ss_rubrik = ''; var ss_farbe = 0;		// gewaehlte Rubrik -gewaehlte Farbe

var event_scroll;
var hoehe_banner = 200;
var scrollpos = 0;
var scrollmax = 0;      // die minimale Scrollposition - die maximale Scrollposition ist 0

// ss ... ScrollStart --> Startpositionen der Scrollbar am rechten Rand
var ss_plissee_1 =     0;
var ss_plissee_2 =   420;
var ss_plissee_3 =   536;
var ss_plissee_4 =  2863;
var ss_plissee_5 =  3739;
var ss_plissee_6 =  5214;
var ss_plissee_7 =  2710;
var ss_plissee_8 =     0;
var ss_plissee_9 =     0;
var ss_plissee_11 =    0;
var ss_plissee_16 = 1652;
var ss_plissee_17 = 3429;
var ss_plissee_18 =    0;
var ss_plissee_99 =    0;

var ss_rollo_1 =     0;
var ss_rollo_2 =   769;
var ss_rollo_3 =   978;
var ss_rollo_4 =     0;
var ss_rollo_5 =  1706;
var ss_rollo_6 =  1385;
var ss_rollo_7 =     0;
var ss_rollo_8 =     0;
var ss_rollo_9 =  2036;
var ss_rollo_11 =    0;
var ss_rollo_16 =    0;
var ss_rollo_17 =    0;
var ss_rollo_18 =    0;
var ss_rollo_99 =    0;

var ss_lamelle_1 =     0;
var ss_lamelle_2 =   811;
var ss_lamelle_3 =     0;
var ss_lamelle_4 =  1825;
var ss_lamelle_5 =  2398;
var ss_lamelle_6 =  3285;
var ss_lamelle_7 =  1241;
var ss_lamelle_8 =  2398;
var ss_lamelle_9 =   565;
var ss_lamelle_11 =    0;
var ss_lamelle_16 = 1363;
var ss_lamelle_17 = 2286;
var ss_lamelle_18 =    0;
var ss_lamelle_99 =    0;

var ss_flaeche_1 =     0;
var ss_flaeche_2 =   739;
var ss_flaeche_3 =  2506;
var ss_flaeche_4 =  3373;
var ss_flaeche_5 =  3074;
var ss_flaeche_6 =  2627;
var ss_flaeche_7 =  1051;
var ss_flaeche_8 =  2318;
var ss_flaeche_9 =  1776;
var ss_flaeche_11 =    0;
var ss_flaeche_16 = 1231;
var ss_flaeche_17 = 3670;
var ss_flaeche_18 =    0;
var ss_flaeche_99 =    0;

var ss_jalousie_1 =     0;
var ss_jalousie_2 =     0;
var ss_jalousie_3 =     0;
var ss_jalousie_4 =  2233;
var ss_jalousie_5 =  1454;
var ss_jalousie_6 =  1102;
var ss_jalousie_7 =   936;
var ss_jalousie_8 =     0;
var ss_jalousie_9 =     0;
var ss_jalousie_11 =    0;
var ss_jalousie_13 =    0;
var ss_jalousie_16 =  579;
var ss_jalousie_17 =    0;
var ss_jalousie_18 =    0;
var ss_jalousie_99 =    0;


/* Javascript Menue */

function menue_auf(elem) {

		if (elem == 'links' || elem == 'logo') {
				document.getElementById('menue_1_links_img').src = '/bilder/oben_menue_links_hover-trans.png';
				document.getElementById('menue_1_logo').style.backgroundImage = 'url(/bilder/oben_menue_hintergrund-hover.png)';
		} else if (elem == 'rechts' || elem == 'service') {
				document.getElementById('menue_1_rechts_img').src = '/bilder/oben_menue_rechts_hover-trans.png';
				document.getElementById('menue_1_service').style.backgroundImage = 'url(/bilder/oben_menue_hintergrund-hover.png)';
				document.getElementById('menue_2_service').style.display = 'block';
		} else {
				document.getElementById('menue_1_' + elem).style.backgroundImage = 'url(/bilder/oben_menue_hintergrund-hover.png)';
				document.getElementById('menue_2_' + elem).style.display = 'block';
		}
}

function menue_zu(elem) {

		if (elem == 'links' || elem == 'logo') {
				document.getElementById('menue_1_links_img').src = '/bilder/oben_menue_links-trans.png';
				document.getElementById('menue_1_logo').style.backgroundImage = 'url(/bilder/oben_menue_hintergrund.png)';
		} else if (elem == 'rechts' || elem == 'service') {
				document.getElementById('menue_1_rechts_img').src = '/bilder/oben_menue_rechts-trans.png';
				document.getElementById('menue_1_service').style.backgroundImage = 'url(/bilder/oben_menue_hintergrund.png)';
				document.getElementById('menue_2_service').style.display = 'none';
		} else {
				document.getElementById('menue_1_' + elem).style.backgroundImage = 'url(/bilder/oben_menue_hintergrund.png)';
				document.getElementById('menue_2_' + elem).style.display = 'none';
		}
}

/* ---------------- */

function scrollen(dir) {
        if (dir == 'up') {
                scrollpos = scrollpos + 20;
                if (scrollpos >= 0) {
                        scrollpos = 0;
                        document.getElementById('mitte_links_scrolllayer').style.top = scrollpos + 'px';
                        scroll_stop();
                } else {
                        document.getElementById('mitte_links_scrolllayer').style.top = scrollpos + 'px';
                }
        } else {        // down
                scrollpos = scrollpos - 20;
                if (scrollpos <= scrollmax) {
                        scrollpos = scrollmax;
                        document.getElementById('mitte_links_scrolllayer').style.top = scrollpos + 'px';
                        scroll_stop();
                } else {
                        document.getElementById('mitte_links_scrolllayer').style.top = scrollpos + 'px';
                }
        }
}

function scroll(dir) {
        event_scroll = window.setInterval('scrollen(\'' + dir + '\')', 30);
}

function scroll_stop() {

        window.clearInterval(event_scroll);
        if (scrollpos == 0) {
                document.getElementById('mitte_links_banner_scroll-up').style.display = 'none';
                document.getElementById('mitte_links_banner_scroll-dn').style.display = 'block';
                document.getElementById('mitte_links_banner').style.height = (hoehe_banner + 22) + 'px';
        } else if (scrollpos == scrollmax) {
                document.getElementById('mitte_links_banner_scroll-up').style.display = 'block';
                document.getElementById('mitte_links_banner_scroll-dn').style.display = 'none';
                document.getElementById('mitte_links_banner').style.height = (hoehe_banner + 22) + 'px';
        } else {
                document.getElementById('mitte_links_banner_scroll-up').style.display = 'block';
                document.getElementById('mitte_links_banner_scroll-dn').style.display = 'block';
                document.getElementById('mitte_links_banner').style.height = hoehe_banner + 'px';		// ohne die Korrekturpixel
        }

}
/*
function getVerfuegbareFensterbreite() {
// Wegen Browserinkompatibilitaeten
// Achtung! Die Breite kann variieren > deshalb vorher pruefen, welches Ergebnis diese Fkt. mit welchem Browser liefert!
		if (window.innerWidth) {
				return window.innerWidth;
		} else if (document.body && document.body.offsetWidth) {
				return document.body.offsetWidth + 40;	// IE
		} else {
				return 0;
		}
}
*/
function init () {
/*
		// Menuebox - Position korrigieren bei zu kleiner Browserfenstergroesse
		var verfuegbareFensterbreite = getVerfuegbareFensterbreite();
		if (verfuegbareFensterbreite < 1086) {
				document.getElementById('menue_box').style.left = '-40px';
		}
*/
/*
		if (navigator.userAgent.indexOf('MSIE 6.0') > -1) {
				if (document.getElementById('menue_box')) {
						document.getElementById('menue_box').style.width = '170px';
				}
		};
*/

		// Scrollbar
		if (document.getElementById('inhalt') != null && document.getElementById('footer') != null && document.getElementById('mitte_links_banner') != null && document.getElementById('menue') != null && document.getElementById('mitte_links_banner') != null && document.getElementById('mitte_links_scrolllayer') != null) {
		// normalerweise wird init() bei onload() aufgerufen, d.h. erst, wenn alle Elemente geladen sind - Im Konfigurator rufe ich diese Funktion auf, wenn ein Stoff geladen wird. Beim Aufruf eines Konfigurators wird init() unter Umstaenden aufgerufen, bevor diese Elemente uebrhaupt geladen sind

				hoehe_banner =
						  document.getElementById('inhalt').offsetHeight * 1
						+ document.getElementById('footer').offsetHeight * 1
						- document.getElementById('outside_scrollbanner').offsetHeight * 1
						- 27;
				if (hoehe_banner < 10) {
						hoehe_banner = 10;
				};

				document.getElementById('mitte_links_banner').style.height = hoehe_banner + 'px';

				// setzt den vertikalen Balken rechts auf die gleiche Hoehe wie die Hauptbox links daneben -- oder clientHeight statt offsetHeight

				scrollpos = 0;
				scrollmax = -(document.getElementById('mitte_links_scrolllayer').offsetHeight * 1) + hoehe_banner + 24;
				if (   (ss_rubrik != '')   &&   (ss_farbe != 0)   ) {	// normalerweise muesste hier noch abgefragt werden, ob die Variable "'ss_' + ss_rubrik + '_' + ss_farbe" auch existiert - geht aber nicht - bei typeof() kommt immer 'string' raus, und typeof(eval()) geht nicht, weil eine nicht vorhandene variable sich nicht evaluieren laesst
						scrollpos = eval('ss_' + ss_rubrik + '_' + ss_farbe) * -1;
				}
				document.getElementById('mitte_links_scrolllayer').style.top = scrollpos + 'px';

				scroll_stop();

		}

};

/* Scrollbar rechts Ende */



function radioSelectedIndex (radioname)
// da man sich bei RadioButtons den selektierten Wert nicht so einfach mit .selectedIndex liefern lassen kann wie z.B. bei Listboxen, habe ich diese Funktion hier geschrieben
// uebergabe des Paramters als Objekt (nicht nur der radiobuttonname): z.B.: document.formular.radioname oder document.forms.formular.radioname
// man koennte in der Funktion auch gleich den Value (Wert) uebergeben, aber ich brauch manchmal auch ein anderes Attribut des gewaehlten Radio Buttons
{
		var wert = 0;

		for (var i = 0; i < radioname.length; i++) {

                if( radioname[i].checked) {
                		wert = i;
                		break;
                		// man koennte auch gleich hier mit return den Wert zurueckgeben, return bricht gleich die gesamte Funktion ab
                }
		}

		return wert;
}

function radioIndexByValue (radioname, val)
// liefert den Radiobutton aus einer Kollektion mit einem entsprechenden Value
{
		var wert = 0;

		for (var i = 0; i < radioname.length; i++) {

                if( radioname[i].value == val) {
                		wert = i;
                		break;
                		// man koennte auch gleich hier mit return den Wert zurueckgeben, return bricht gleich die gesamte Funktion ab
                }
		}

		return wert;
}

function checkboxChecked (checkb)
{
		if (checkb.checked == true) {
				return 1;
		} else {
				return 0;
		};
}

function entfUngZeichen (zk)
{
        var ergebnis = '';
        var chr;
        for(var i=0; i < zk.length; i++) {
            chr = zk.charAt(i) + '';
            if  ( (chr>="0") & (chr<="9") )
            { ergebnis = ergebnis + chr; };
        }
        return ergebnis;
}

function isFarbeDunkel(farbcode) {
		var durchschnitt = parseInt('0x' + farbcode.substring(0, 2)) + parseInt('0x' + farbcode.substring(2, 4)) + parseInt('0x' + farbcode.substring(4, 6));
		durchschnitt = durchschnitt / 3;
		if (durchschnitt < 128) {
				return true;
		} else {
				return false;
		}
}

function add(field)
{
	if ( (! isNaN(field.value)) && (field.value < 99) )
	{
		field.value++;
	}
}

function sub(field)
{
	if ( (! isNaN(field.value)) && (field.value > 1) )
	{
		field.value--;
	}
}

var CURRENCY_OMNIS = 1;
var CURRENCY_HTMLSHORT = 2;
var CURRENCY_HTML = 3;
var kDefWaehrung = 'EUR';

function toCurrency(a, format) {
	var b = a;
	if (format == CURRENCY_OMNIS) {
		b = b.toFixed(0) + ' ' + kDefWaehrung;
	} else if (format == CURRENCY_HTMLSHORT) {
		b = b.toFixed(0) + '&nbsp;&euro;';
	} else {		// CURRENCY_HTML
		b = b.toFixed(0) + '&nbsp;' + kDefWaehrung;
	}
	b = b.replace('.', ',');
	return b;
}

function getRabatt(preis, rabatt) {		// dies in eine Extra-Funktion schreiben, damit die Rabatt-Berechnung immer gleich ist (zwecks Auf-, Ab, Runden) - Diese Funktion muss 1:1 auch in ASP abgebildet sein (dbconn)
		var rabattierterPreis = preis * rabatt / 100;
		return rabattierterPreis;
}

function getRabattierterPreisString(preis, rabatt) {
		var neuerPreis = preis - getRabatt(preis, rabatt);
		neuerPreis = neuerPreis.toFixed(2);		// gleichzeitige Umwandlung zu String
		neuerPreis = neuerPreis.replace('.', ',');
		return neuerPreis;
}

function openInfoWindow(thema) {
		var breite = 560;
		var hoehe = 440;
		var links = Math.ceil((screen.width - breite) / 2);
		var oben = Math.ceil((screen.height - hoehe) / 2);
		var fenster_property = 'width=' + breite + ',height=' + hoehe + ',resizable=1' + ',screenX=' + links + ',screen=' + oben + ', left=' + links + ',top=' + oben + ',scrollbars=yes';  //Platzieren(screen x/y für NN, left/top für IE
		window.open('/rts/' + thema + '.asp','_blank',fenster_property);
}

/************************************************************************************/
/* Dessin und Artikel */


function Ao (i, ar_no, ar_groesse, ar_picture, me_bez, pa_vk1, pa_vk2, fb_id, fb_bez, fb_picture, has_mini) {   // Artikelobjekt
		this.i = i;		// sozusagen die GruppenID (fuer die Gruppierung), um nicht den Titel und den Artikeltext abzufragen kann diese Nr genommen werden
		this.ar_no = ar_no;
		this.ar_groesse = ar_groesse;
		this.ar_picture = ar_picture;
		this.me_bez = me_bez;
		this.pa_vk1 = pa_vk1;
		this.pa_vk2 = pa_vk2;
		this.fb_id = fb_id;
		this.fb_bez = fb_bez;
		this.fb_picture = fb_picture;
		this.has_mini = has_mini;
};
var a = new Array();		// Artikel

function changedGroesse (i) {

		var farbe_alt = document.getElementById('FRB_' + i)[document.getElementById('FRB_' + i).selectedIndex].text;
		document.getElementById('FRB_' + i).length = 0;

		var gewaehlte_groesse;
		if (document.getElementById('groessen_' + i)) {
				gewaehlte_groesse = document.getElementById('groessen_' + i).value;
		} else {
				gewaehlte_groesse = '';
		}
		
		var icons_farben = '';
		var count_icons = 0;
		var attribute_set;		// caching
		
        for (var c = 1; c <= a.length - 1; c++) {
		
				attribute_set = a[c];

                if (i == attribute_set.i && attribute_set.ar_groesse == gewaehlte_groesse) {

						// Farben in Dropdown-Box setzen
						if (attribute_set.fb_bez == farbe_alt) {
								farbeGewaehlt = true;
						} else {
								farbeGewaehlt = false;
						}
                        document.getElementById('FRB_' + i).options[document.getElementById('FRB_' + i).length] = new Option(attribute_set.fb_bez, attribute_set.fb_id, false, farbeGewaehlt);
                        // Farben in bei Farb-Boxen setzen
						if (attribute_set.fb_picture != '') {
								if (attribute_set.has_mini == 1) {
										icons_farben = icons_farben + '<img src="' + PFAD_BILDER_MINI + attribute_set.fb_picture +'.jpg" alt="" style="width: 42px; border: 1px solid #999999; margin: 3px; cursor: pointer;" onclick="document.getElementById(\'gw\').FRB_' + i + '.options[selectIndexByValue(document.getElementById(\'gw\').FRB_' + i + ',' + attribute_set.fb_id + ')].selected = true; changedFarbe(' + i + ');">';
								} else {
										icons_farben = icons_farben + '<img src="' + PFAD_BILDER_KLEIN + attribute_set.fb_picture +'.jpg" alt="" style="width: 42px; border: 1px solid #999999; margin: 3px; cursor: pointer;" onclick="document.getElementById(\'gw\').FRB_' + i + '.options[selectIndexByValue(document.getElementById(\'gw\').FRB_' + i + ',' + attribute_set.fb_id + ')].selected = true; changedFarbe(' + i + ');">';
								}
								count_icons++;
						}

                }
        }
		if (document.getElementById('lieferbare_farben_' + i)) {
				if (count_icons < 1) {
						document.getElementById('lieferbare_farben_' + i).style.display = 'none';
				} else {
						document.getElementById('lieferbare_farben_' + i).style.display = 'block';
						document.getElementById('icons_farben_' + i).innerHTML = icons_farben;
				}
		}

		
		changedFarbe(i);
}


function changedFarbe (i) {

		var gewaehlte_groesse;
		if (document.getElementById('groessen_' + i)) {
				gewaehlte_groesse = document.getElementById('groessen_' + i).value;
		} else {
				gewaehlte_groesse = '';
		}

		var gewaehlte_farbe = document.getElementById('FRB_' + i).value;
		var attribute_set;		// caching

		for (var c = 1; c <= a.length - 1; c++) {
				attribute_set = a[c];
				if (i == attribute_set.i && attribute_set.ar_groesse == gewaehlte_groesse && attribute_set.fb_id == gewaehlte_farbe) {
                        document.getElementById('id_' + i + '_me_bez_1').innerHTML = attribute_set.me_bez;
                        document.getElementById('id_' + i + '_me_bez_2').innerHTML = attribute_set.me_bez;
                        if (attribute_set.pa_vk2 == 0.0 || attribute_set.pa_vk2 == 0) {
                                document.getElementById('id_' + i + '_alterpreis_text').style.display = 'none';
                                document.getElementById('id_' + i + '_preis').innerHTML = attribute_set.pa_vk1.toFixed(2).replace('.',',');
                        } else {
                                document.getElementById('id_' + i + '_alterpreis_text').style.display = 'inline';
                                document.getElementById('id_' + i + '_alterpreis_value').innerHTML = attribute_set.pa_vk1;
                                document.getElementById('id_' + i + '_preis').innerHTML = attribute_set.pa_vk2.toFixed(2).replace('.',',');
                        }
			if (document.getElementById('id_' + i + '_preis_rabattiert_vorauskasse')) {		// nur falls das Preisschild im Template vorhanden ist
					document.getElementById('id_' + i + '_preis_rabattiert_vorauskasse').innerHTML = getRabattierterPreisString(attribute_set.pa_vk1, rabattBeiVorauskasse);
			}
						if (attribute_set.fb_picture != '') {
								document.getElementById('bild_' + i).src = PFAD_BILDER_KLEIN + attribute_set.fb_picture + '.jpg';
						}
                        break;
                }
		}

		if (typeof(changedFarbe2) == 'function') {			// zusaetzliche Sachen, die getan werden muessen, aber vom template abhaengig sind
				changedFarbe2(i);
		}

}

function bildgrossi(i)
{
		var gewaehlte_farbe = document.getElementById('FRB_' + i).value;
		var attribute_set;		// caching

		for (var c = 1; c <= a.length - 1; c++) {
				attribute_set = a[c];
				if (i == attribute_set.i && attribute_set.fb_id == gewaehlte_farbe) {
						if (attribute_set.fb_picture == '') {
								bildgross(PFAD_BILDER_GROSS + attribute_set.ar_picture + '.jpg');
						} else {
								bildgross(PFAD_BILDER_GROSS + attribute_set.fb_picture + '.jpg');
						}
                        break;
                }
		}
}

var gross=null;
function bildgross(bildUrl)
{
		var breite = 500;
		var hoehe = 600;
		var fenster_property = "width=" + breite + ",height=" + hoehe +",resizable=1";
		var links = Math.ceil((screen.width - breite) /2);
		var oben = Math.ceil((screen.height - hoehe - 40) /2);
		if (gross != null)
		if (!gross.closed) gross.close();
		fenster_property += ",screenX=" + links + ",screen=" + oben +", left=" + links + ",top=" + oben +",scrollbars=yes";  //Platzieren(screen x/y für NN, left/top für IE
		gross=window.open("","bild",fenster_property);
		gross.document.open("text/html");
		gross.document.writeln("<html>");
		gross.document.writeln("  <head>");
		gross.document.writeln("    <title>Detailansicht</title>");
		// gross.document.writeln("  <link rel=stylesheet href=/css.css type=text/css>");
		gross.document.writeln("  </head>");
		gross.document.writeln("<body>");
		gross.document.writeln("    <div style='cursor: pointer; text-align: center;' onclick='window.close();'> ");
		gross.document.writeln("     <img src='" + bildUrl + "' title='Fenster schließen!' alt='Detailbild' style='border: 1px solid #eeeeee;'>");
		gross.document.writeln("    <div>");
		gross.document.writeln("</body>");
		gross.document.writeln("</html>");
		gross.document.close ();
		gross.focus();
}


function bestell(mng1,pic1)
{
		var menge = 0;
		var arid = "";
		for( i = 0; i < document.forms[0].elements.length; i++ )
		{

				var s = document.forms[0].elements[ i ].name;
				if ( s == mng1 )
						{ menge = document.forms[0].elements[ i ].value.replace(',', '.'); }
				if ( s == pic1 )
						{ arid = document.forms[0].elements[ i ].options[ document.forms[0].elements[ i ].selectedIndex ].value; }
		};
		if ( ! ( menge > 0 && menge <= 900 )  ) {
				alert( "Überprüfen Sie Ihre Eingaben auf gültige Mengen (0-900)!" );
		} else {
				document.getElementById('gw').BesArId.value = arid;
				document.getElementById('gw').BesMng.value = menge;
				document.getElementById('gw').submit();
		}
		return false;
}

// AJAX

// -- hier keine Meldungen anzeigen, weil der Firefox, einen Fehler bringt, wenn bereits die Seite verlassen wurde, aber das Ajaxzeugs noch laeuft
function show_exception( requestObject, ex) {
		alert("Keine AJAX-Anfrage an " + requestObject.url + " möglich: " + ex);
		Element.hide( $('ajax_lade') );
}

function show_failure( requestObject ) {
		alert("Fehler von Server: " + requestObject.statusText);
		Element.hide( $('ajax_lade') );
}

function ajax_response_artikeldetails(originalRequest) {

        var resp = originalRequest.responseText;
        var data = resp.evalJSON();
		
		document.getElementById('ar_text_erweitert_html').innerHTML = data.ar_text_erweitert_html;
		
        Element.hide( $('ajax_lade') );

}

function ajax_request_artikeldetails(fb_id) {

		Element.show( $('ajax_lade') );
        var myAjax = new Ajax.Request(
            '/autosites/artikel_ajax_request_artikeldetails.asp',
            {   method: 'post',
                // parameters: Form.serialize($('forumlar')),
                parameters: 'fb_id=' + fb_id,
                onComplete: ajax_response_artikeldetails,
                // onSuccess:   show_datum,
                onFailure:   show_failure,
                onException: show_exception
            }
        );
}


/* Dessin und Artikel */
/************************************************************************************/


// Mouseover - Texte
var h_transmission = 'Transmission: wie viel Prozent des Tageslichtes dieser Stoff hindurch lässt';
var h_reflexion = 'Reflexion: in welchem Grad Licht- und Wärmestrahlen an der Rückseite reflektiert werden';
var h_absorption = 'Absorption: in welcher Höhe Licht- und Wärmestrahlen vom Stoff verschluckt werden';

// var h_farbabweichungen = 'Achtung! Es sind Farbabweichungen durch unterschiedliche Monitoreinstellungen möglich! Nutzen Sie hierfür unseren kostenlosen Musterservice.';
var h_farbabweichungen = 'Durch unterschiedliche Monitoreinstellungen kann es in einigen Fällen zu Farbabweichungen kommen. Bitte nutzen Sie aus diesem Grund unseren kostenlosen Musterservice.';
