// Allgemeine Funktionalitaeten

function popUpFenster(seite, fenstername, breite, hoehe) {
	var popup = window.open(seite,fenstername, 'toolbar=0,location=0, directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=' + breite + ',height=' + hoehe);
}

// Shop
function rechneGesamt() {
	cd = document.forms["shop"].elements["Monstertunes CD"].value;
	cdPreisGesamt = cd*13;
	
	/*
	shirt = document.forms["shop"].elements["Monstertunes T-Shirt"].value;
	ShirtPreisGesamt = shirt*18;
	*/
	ShirtPreisGesamt = 0;
	// Gesamtpreis wird uebergeben	
	
	zahlung = document.forms["shop"].elements["Bezahlung"].value;
	if (zahlung == "Nachnahme") {
		document.forms["shop"].elements["Gesamtkosten"].value = (cdPreisGesamt+ShirtPreisGesamt+2+3)+",00";
	} else {
		document.forms["shop"].elements["Gesamtkosten"].value = (cdPreisGesamt+ShirtPreisGesamt+3)+",00";
	}
}

// Shop Validierung
function CheckInput() {
	Name = document.forms["shop"].elements["Name"].value;
	Mail = document.forms["shop"].elements["E-Mail"].value;
	Strasse = document.forms["shop"].elements["Strasse"].value;
	Ort = document.forms["shop"].elements["Ort"].value;
	Telefon = document.forms["shop"].elements["Telefon"].value;

	if(Name == "")  {
		alert("Wir brauchen Deinen Vor- und Nachnamen!");
		document.forms[0].elements["Name"].focus();
        return false;
	} else if(Mail == "") {
		alert("Bitte Deine E-Mail Adresse angeben!");
		document.forms[0].elements["E-Mail"].focus();
        return false;
	} else if(Strasse == "") {
		alert("Deine Strasse brauchen wir auch noch!");
		document.forms[0].elements["Strasse"].focus();
        return false;
	} else if(Ort == "") {
		alert("Gebe bitte Deinen Wohnort an!");
		document.forms[0].elements["Ort"].focus();
        return false;
	} else if(Telefon == "") {
		alert("Jetzt brauchen wir noch Deine Telefonnummer!");
		document.forms[0].elements["Telefon"].focus();
        return false;
	} else if(document.forms["shop"].elements["Bestaetigung"].checked != true) {
		alert("Bestätige bitte, dass Du die Bestell-, Bezahl- und Versandbedingungen sowie die Garantie gelesen hast!");
		document.forms[0].elements["Bestaetigung"].focus();
        return false;
	}
  return true;
}

// Flash-Detect

function einfuegeFlashDeFacto(flashUri, flashName, flashBgColor, breitePx, hoehePx, altBildUri, altBildAltText) {
	var d = document;
	if (flashUri && flashName && breitePx && hoehePx) {
		if (detectFlash() && !((navigator.appName=="Netscape")&&(parseInt(navigator.appVersion)==4))) {
			d.write('<table border="0" cellpadding="0" cellspacing="0"><tr><td class="blk"><obj'+'ect ');
			d.write('  classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ');
			d.write('  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"');
			d.write('  width="'+breitePx+'" height="'+hoehePx+'">');
			d.write('  <param name="movie" value="'+flashUri+'">');
			d.write('  <param name="quality" value="high"><param name="wmode" value="transparent"><param name="scale" value="exactfit"><param name="bgcolor" value="'+flashBgColor+'">');
			d.write('  <em'+'bed src="'+flashUri+'" quality="high" ');
			d.write('    pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"');
			d.write('    type="application/x-shockwave-flash" width="'+breitePx+'" height="'+hoehePx+'" bgcolor="'+flashBgColor+'" border="0" hspace="0" vspace="0"></em'+'bed></obj'+'ect></td></tr></table>');
		} else if (altBildUri) {
			var alt = altBildAltText;
			if (!altBildAltText)
				alt = "";
			d.write('<table border="0" cellpadding="0" cellspacing="0"><tr><td class="blk"><img src="'+altBildUri+'" alt="'+alt+'" width="'+breitePx+'" height="'+hoehePx+'"></td></tr></table>');
		}
	}
}

var detectableWithVB = false;

if ((navigator.userAgent.indexOf('MSIE') != -1) && (navigator.userAgent.indexOf('Win') != -1)) {
	var d = document;
    d.writeln('<script language="VBscript">');

    d.writeln('detectableWithVB = False');
    d.writeln('If ScriptEngineMajorVersion >= 2 then');
    d.writeln('  detectableWithVB = True');
    d.writeln('End If');

    d.writeln('Function detectActiveXControl(activeXControlName)');
    d.writeln('  on error resume next');
    d.writeln('  detectActiveXControl = False');
    d.writeln('  If detectableWithVB Then');
    d.writeln('     detectActiveXControl = IsObject(CreateObject(activeXControlName))');
    d.writeln('  End If');
    d.writeln('End Function');

    d.writeln('</scr' + 'ipt>');
}

function detectFlash() {
	var pluginFound = false;
    pluginFound = detectPlugin('Shockwave', 'Flash');
    if(!pluginFound && detectableWithVB) {
		pluginFound = detectActiveXControl('ShockwaveFlash.ShockwaveFlash.1');
    }
    return pluginFound;
}

function detectPlugin() {
    var daPlugins = detectPlugin.arguments;
    var pluginFound = false;
    if (navigator.plugins && navigator.plugins.length > 0) {
		var pluginsArrayLength = navigator.plugins.length;
		for (pluginsArrayCounter=0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ ) {
			var numFound = 0;
			for (namesCounter=0; namesCounter < daPlugins.length; namesCounter++) {
				if( (navigator.plugins[pluginsArrayCounter].name.indexOf(daPlugins[namesCounter]) >= 0) ||
					(navigator.plugins[pluginsArrayCounter].description.indexOf(daPlugins[namesCounter]) >= 0) ) {
					numFound++;
				}
			}
			if(numFound == daPlugins.length) {
				pluginFound = true;
				break;
			}
		}
    }
    return pluginFound;
}
			

// preload
function preloadBilder() {
	var d = document;
	if (d.images) {
		d.bilder = new Array();
		d.bilder[0] = new Image(7, 10);
		d.bilder[1] = new Image(7, 10);
		d.bilder[2] = new Image(7, 10);
		d.bilder[0].src = '/standards/bilder/pixel.gif';
		d.bilder[1].src = '/standards/bilder/navpfeil_top.gif';
		d.bilder[2].src = '/standards/bilder/navpfeil_r.gif';
	}
}

function swapBilder(id, anaus) {
	var d = document;
	if (d.images) {
		if (id && d.images[id] && anaus) {
			if (id.indexOf('meta') > -1 && d.bilder[1])
				d.images[id].src = d.bilder[1].src;
			else if (d.bilder[2])
				d.images[id].src = d.bilder[2].src;
		} else if (id && d.images[id] && d.bilder[0]) {
			d.images[id].src = d.bilder[0].src;
		}
	}
}

preloadBilder();


// Funktionalitaet zur Darstellung in der Marginalspalte

function MarginalObjekte() {
	// Initialisierung
	this.bildIdPrefix = "MObild-";
	this.layerIdPrefix = "MOlayer-";
	this.layerIdEnde = "layerEnde-";
	this.margSpalteId = "margspalte";
	this.margSpalteEndeId = "margspalteende";
	this.bildPfadPrefix = "/de/Bilder/bild-";
	this.bildPfadSuffix = ".gif";
	this.bilder = new Array();
	this.lastY = 0;
	this.zwischenraum = 30;

	// Oeffentliche Methoden des Objekts
	this.addBild = MO_addBild;
	this.render = MO_render;
	this.resize = MO_resize;

	// Private Methoden des Objektes
	this.getMargSpalteX = MO_getMargSpalteX;
	this.getBildId = MO_getBildId;
	this.getLayerId = MO_getLayerId;
	this.getLayerEndeId = MO_getLayerEndeId;
	this.getBildY = MO_getBildY;
}


// Medhoden der MarginalObjekte-Objekts


/**
 * Fuegt ein Bild zu der Liste der darzustellenden Elemente hinzu
 */
function MO_addBild(lfdNummer, id, width, height, alt, beschriftung) {
	var j = this.bilder.length;
	this.bilder[this.bilder.length] = [lfdNummer, id, width, height, alt, beschriftung];
}

/**
 * Stellt die Bilder in der Marginalspalte dar
 */
function MO_render() {
	if (this.bilder.length > 0) {
		var d = document;
		var i;
		var links = this.getMargSpalteX();
		for (i = 0; i < this.bilder.length; i++) {
			var out = '';
			if (d.layers)
				out += '<layer name="'+this.getLayerId(i)+'" left="'+links+'" top="'+this.getBildY(this.bilder[i][0])+'" visibility="hidden">';
			else
				out += '<div id="'+this.getLayerId(i)+'" style="position: absolute; left: '+links+'; top: '+this.getBildY(this.bilder[i][0])+'; visibility: hidden">';
			out += '<table border="0" cellpadding="0" cellspacing="0" width="170"><tr class="blk"><td colspan="3">';
			out += '<img src="'+this.bildPfadPrefix+this.bilder[i][1]+this.bildPfadSuffix+'" alt="'+this.bilder[i][4]+'" width="'+this.bilder[i][2]+'" height="'+this.bilder[i][3]+'">';
			if (this.bilder[i][5] && this.bilder[i][5] != "") {
				out += '</td></tr>';
				out += '<tr class="blk"><td colspan="3" class="beschriftungbg"><img src="/standards/bilder/pixel.gif" alt="" width="1" height="7"></td></tr>';
				out += '<tr class="beschriftungbg"><td width="10" class="normal">&nbsp;</td><td width="150"><span class="normal"><span class="farbe1">'+this.bilder[i][5]+'</span></span></td><td width="10" class="normal">&nbsp;</td></tr>';
				out += '<tr class="blk"><td colspan="3" class="beschriftungbg"><a name="'+this.getLayerEndeId(i)+'" id="'+this.getLayerEndeId(i)+'"><img src="/standards/bilder/pixel.gif" alt="" width="1" height="7"></td></tr>';
			} else {
                out += '</td></tr>';
                out += '<tr><td colspan="3" class="beschriftungbg"><img src="/standards/bilder/pixel.gif" alt="" width="170" height="20" border="0">';   
				out += '<a name="'+this.getLayerEndeId(i)+'" id="'+this.getLayerEndeId(i)+'"></td></tr>';
			}
            out += '</table>';
			if (d.layers)
				out += '</layer>';
			else
				out += '</div>';
			d.writeln(out);
			// nur anzeigen, wenn genug Raum fuer das Bild vorhanden ist
			if ((getPosY(this.getLayerEndeId(i)) < getPosY(this.margSpalteEndeId))) {
				var el = getElement(this.getLayerId(i));
				if (el) {
					if (!document.layers)
						el.style.visibility = 'visible';
					else
						el.visibility = 'visible';
				}
			}
		}
	}
}

/**
 * Sorgt dafuer, dass die Bilder nach einem Resize an ihrer korrekten Stelle stehen
 */
function MO_resize() {
	if (this.bilder && this.bilder.length > 0 && !document.layers) {
		var links = this.getMargSpalteX();
		for (i = 0; i < this.bilder.length; i++) {
			var el = getElement(this.getLayerId(i));
			el.style.left = links;
		}
	}
}


/**
 * Gibt die HTML-Id zu einem Bild zurueck, dass im bilder-Array an der Position posArray liegt
 */
function MO_getBildId(posArray) {
	return this.bildIdPrefix + this.bilder[posArray][0];
}


/**
 * Gibt die HTML-Id zu einem Layer zurueck, die zum Bild passt, dass im Bilder-Array an Position
 * posArray liegt
 */
function MO_getLayerId(posArray) {
	if (posArray || posArray == '0')
		return this.layerIdPrefix + this.bilder[posArray][0];
}


/**
 * Gibt die HTML-Id zu dem vertikalen Endpunkt eines Layers zurueck, das zum Bild passt, dass im
 * Bilder-Array an Position posArray liegt
 */
function MO_getLayerEndeId(posArray) {
	return this.layerIdEnde + this.bilder[posArray][0];
}


/**
 * Ermittelt den horizontalen Beginn der Marginalspalte (in px)
 */
function MO_getMargSpalteX() {
	var d = document;
	var el = getElement(this.margSpalteId);
	if (d.getElementById || d.all) {
		var links = 0;		
		while (el.offsetParent) {
			links += el.offsetLeft;
			el = el.offsetParent;
		}
		return links + "px";
	} else if (d.layers) {
		return el.x;
	}
}


/**
 * Ermittelt die vertikale Position, an die ein Bild mit der lfd. Nummer lfdNummer gesetzt werden
 * kann.
 */
function MO_getBildY(lfdNummer) {
	if (lfdNummer < 1) {
		this.lastY = getPosY(this.margSpalteId) - this.zwischenraum;
	} else {
		this.lastY = getPosY(this.getLayerEndeId(lfdNummer - 1));
		if (document.layers)
			this.lastY += getPosY(this.getLayerId(lfdNummer - 1));
	}
	var bildPos = getPosY(this.bildIdPrefix + lfdNummer);
	if (bildPos < this.lastY + this.zwischenraum)
		bildPos = this.lastY + this.zwischenraum;
	return bildPos + "px";
}



// Hilfsmethoden


/**
 * Ermittelt die vertikale Position eines Elementes element
 */
function getPosY(element) {
	var d = document;
	var el = getElement(element);
	if (el && (d.getElementById || d.all)) {
		var oben = 0;		
		while (el.offsetParent) {
			oben += el.offsetTop;
			el = el.offsetParent;
		}
		return oben;
	} else if (el && document.layers) {
		return el.y;
	}
}


/**
 * Gibt ein Element mit der Id elementId zurueck
 */
function getElement(elementId) {
	var d = document;
	if (d.getElementById)
		return d.getElementById(elementId);
	else if (d.all)
		return d.all[elementId];
	else if (d.layers) {
		var el = eval('document.'+elementId);
		var ly;
		if (el) { return el; } // Wenns das Objekt so nicht gibt, wirds als Layer oder Anchor gesucht
		el = document.layers[elementId];
		if (el) { return el; }
		el = document.anchors[elementId];
		if (el) { return el; }
		for (i = 0; i < document.layers.length; i++) { // oder innerhalb der Layer
			ly = eval('document.layers['+i+']');
			el = eval('ly.'+elementId);
			if (el) { return el; }
			el = ly.document.anchors[elementId];
			if (el) { return el; }
		}
	}
}

