/**
 * Hotspot Funktionen
 */
function openHS(objnr) {
	objektnr=objnr;
	if (bCounter) counter(objektnr);
	if (thickbox) {
		tb_show('','popup'+ objnr + curr_lang +'.html?keepThis=true&TB_iframe=true&width=' + (objekt[objektnr]["size-x"] ) + '&height=' + (objekt[objektnr]["size-y"] ) + '&modal=true','');
	} else {
		popupwindow = window.open('popup.html','','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=' + (objekt[objektnr]["size-x"] ) + ',height=' + (objekt[objektnr]["size-y"] ) + ',');
	}
}

function openPDF(objnr) {
	objektnr=objnr;
	if (bCounter) counter(objektnr);
	popupwindow = window.open("pdfs/" + objekt[objektnr]["pdf"],'','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=' + (objekt[objektnr]["size-x"] ) + ',height=' + (objekt[objektnr]["size-y"] ) + ',');
}

function openPage(objnr) {
	objektnr=objnr;
	if (bCounter) counter(objektnr);
	if (parent.opener == null || parent.opener.closed) {
		window.open(objekt[objektnr]["link"],'Produktinformationen','toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,copyhistory=yes,width=' + (objekt[objektnr]["size-x"] ) + ',height=' + (objekt[objektnr]["size-y"] ) + ',');
	} else {	
		parent.opener.location.href=objekt[objektnr]["link"];
	}
}

function openANIM(objnr) {
	objektnr=objnr;
	if (bCounter) counter(objektnr);
	popupwindow = window.open('anim' + objektnr +  '.html','','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=' + (objekt[objektnr]["size-x"] ) + ',height=' + (objekt[objektnr]["size-y"] ) + ',');
}

function openForm() {
//	produkt  = false;
//	objektnr = false;
	popupwindow = window.open('form.php','','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=400,height=571');
}

/**
 * Player-Controls
 */
function getPano(s) {
	stopPanning ();
	if (is.macie) {
		parent.curr_spin = s;
		location.reload();		// lädt die Seite neu im Falle von MacIE
	} else {
		loaded    = false;
		old_spin  = curr_spin;
		curr_spin = s;
		
		if (spinplayer == "java") {
			document.getElementById('ptviewer').newPanoFromList(s-1);
		} else {
			writeFlashCode();
		}
	}
	if(bMenuType == 2 || bMenuType == 3) showHotspots(curr_spin);
	if(bGrundriss == true) setCurrent();
	if(bCounter) writeCounterScript('spin'+s);
}


function getPage(s) {
	stopPanning ();
	// if (bCounter) counter(s);
	curr_spin = s;
	eval('document.location.href = "spin' + (s) + '.html";');
}


function mousehs(n) {
	if(bMouseHs == true) {
		showImage(n);
	}
}

function hotspot(hsnr) {
	if (loaded || is.macie || spinplayer == "flash") {
		var panangle = Math.round(spin[curr_spin-1]['hotspot'][hsnr-1]['pos_x']  * 3.6 - 180);
		var tilt     = Math.round(spin[curr_spin-1]['hotspot'][hsnr-1]['pos_y'] * -1.8 + 90);
		var fov      = spin[curr_spin-1]['fov'];
		target = spin[curr_spin-1]['hotspot'][hsnr-1]['target'];
		if (spinplayer == "java") {
	        if (document.ptviewer && !is.macie && !is.macff) {
	        	try {
					var curr_pan = getById("ptviewer").pan();
					var diffangle = Math.abs(Math.round(curr_pan)-panangle);
					if (diffangle > 2) {
						if (is.macff) {
							document.getElementById('ptviewer').moveTo(panangle,tilt,fov,30);
						} else {
							document.getElementById('ptviewer').moveTo(panangle,tilt,fov,30);
							document.getElementById('ptviewer').waitWhilePanning();
						}
					}
				} catch(e) {}
				
	    	}
		    eval(target);
		} else {
			if (navigator.appName.indexOf("Netscape") == -1) {
				document.getElementById('flashspin').SetVariable("_root.angle",panangle);
				document.getElementById('flashspin').SetVariable("_root.hs",hsnr-1);
				document.getElementById('flashspin').GotoFrame(1);
			} else {
				document.flashspin.SetVariable("_root.angle",panangle);
				document.flashspin.SetVariable("_root.hs",hsnr-1);
				document.flashspin.TGotoLabel("_root","moveTo");
			}
			if(target.match(/getPano/) && cachHS) {
				var searchNumber = /(\d+)/;
				searchNumber.exec(target);
				pano = RegExp.$1;
				
				var nTarget = spin[pano-1]['hotspot'][cachHS-1]['target'];
				eval(nTarget);
			}
		}
	}
}

function callFromFlash() {
	eval(target);
}
	
function stopPanning () {
       if (spinplayer == "java" && document.getElementById('ptviewer')) {
		if (!is.macie) {
			document.getElementById('ptviewer').stopAutoPan();
		}
	}
}

/**
 * Misc
 */
function writeInto(obj, text, win) {
	if(!obj || typeof obj != "string") return;
	
	obj = getById(obj, win);
	
	if(typeof obj == "undefined" || obj == null) return;
	
	if(typeof obj.innerHTML != 'undefined') {
  		obj.innerHTML = text;
	} else if(typeof document.layers != 'undefined') {
		obj.document.open('text/html');
	    	obj.document.write(text);
	     	obj.document.close();
	}
}

function getById(id, win) {
	if(typeof id == "undefined" || id == null) return null;
	
	var doc = (win) ? win.document : document;
	var obj  = null;

	if(document.getElementById) obj = doc.getElementById(id);
	else if(typeof document.layers != 'undefined')  obj = _findObj_(id, doc);
	else if(document.all) obj = doc.all[id];
	
	return obj;
}

function anleitung() {
	stopPanning ();
	var popup = window.open('','Anleitung','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=auto,resizable=no,copyhistory=no,width=300,height=300,');
	if (popup !=null) {
		var d = popup.document;
		d.write('<!doctype html public -//W3C//DTD HTML 4.0 Transitional//EN" http://www.w3.org/TR/REC-html40/loose.dtd><HTML><HEAD>');
		d.write('<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <TITLE>spin-Anleitung</TITLE> </HEAD> <BODY bgcolor="#FFFFFF" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">');
		d.write('<MAP name="control">');
		d.write('<AREA shape=rect coords="52,267,244,292"  alt="schliessen/close" href="javascript:window.close()">');
		d.write('</MAP>');
		d.write('<img src="images/anleitung.gif" width="300" height="300" border="0" usemap="#control">');
		d.write('</BODY></HTML>');
		d.close();
	}
}

function extLink(link) {
	 stopPanning();
	 var re = new RegExp ("mailto:", "i");
	 if (re.test(link)) {
	 	document.location.href = link;
	 } else {
	 	window.open(link, 'newWindow');
	 }
}




/**
 * Schreiben des Players
 */
 function writeCodeAfterWait() {
	if (navigator.javaEnabled() && spinplayer == "java") {
		writeJavaCode();
	} else {
		writeFlashCode();
		spinplayer = "flash";
	}
}

function writeFlashCode() {
	var path = (multilang == true) ? curr_lang+"/" : "";

	path += "spin.swf?initscene=scene"+curr_spin;
	path += (multilang == true) ? "&multilang="+curr_lang : "";

	var flashcode = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="' + spin[0]['size_x'] + '" height="' + spin[0]['size_y'] + '" id="flashspin">';
	flashcode += '<param name="allowScriptAccess" value="always" />';
	flashcode += '<param name="movie" value="'+path+'" />';
	flashcode += '<param name="swLiveConnect" value="true" />';
	flashcode += '<param name=scale value=noBorder>';
	flashcode += '<param name="bgcolor" value="#cccccc" />';
	flashcode += '<embed src="'+path+'" bgcolor="#ffffff" width="' + spin[0]['size_x'] + '" height="' + spin[0]['size_y'] + '" id="flashspin" name="flashspin" allowScriptAccess="always" scale=noBorder type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" swLiveConnect="true"/>';
	flashcode += '</object>';
	writeInto(spinplayerID,flashcode);
}

function writeJavaCode() {
	var javacode = '<applet id="ptviewer" name="ptviewer" archive="ptviewer.jar" code="ptviewer.class" width="' + spin[0]['size_x'] + '" height="' + spin[0]['size_y'] + '" mayscript="true">';
	for(s=0; s<spin.length;s++) {
		if(is.mac) {
			var file = spin[s]['file'];
			file = file.replace(/.jpg/,"_3000.jpg",file);
		} else {
			var file = spin[s]['file'];
		}
		var pan = spin[s]['initangle'];
		var tilt = spin[s]['inittilt'];
		var fov = parseInt(spin[s]['fov']) + 0;
		var fovmin = fov / (parseInt(spin[s]['maxzoom']) / 100);
		javacode += '<param name="pano' + s + '" value=" {file=' + file + '};';
		javacode += '{pan=' + pan + '}';
		javacode += '{tilt=' + tilt + '}';
		javacode += '{fov=' + fov + '}';
		javacode += '{fovmin=' + fovmin + '}';
		if (parseInt(spin[s]['part']) != 360) {
			var panmin = -175;
			var panmax = parseInt(spin[s]['part']) / 2 - 80;
			javacode += '{panmin=' + panmin + '}';
			javacode += '{panmax=' + panmax + '}';
		}
		hsNr = 0;
		for(hs=0; hs<spin[s]['hotspot'].length; hs++) {
			var hs_text = spin[s]['hotspot'][hs]['hs_text'];
			var hs_textcolor = spin[s]['hotspot'][hs]['hs_textcolor'];
			var pos_x = spin[s]['hotspot'][hs]['pos_x'];
			var pos_y = spin[s]['hotspot'][hs]['pos_y'];
			var pos_a = spin[s]['hotspot'][hs]['pos_a'];
			var pos_b = spin[s]['hotspot'][hs]['pos_b'];
			var position;
			if (typeof pos_a == "undefined" || pos_a == "null" || pos_a == null) {
				position = "X" + pos_x + " Y" + pos_y;
			} else {
				position = "X" + Math.round(pos_x - pos_a/2) + " Y" + Math.round(pos_y - pos_b/2) + " A" + Math.round(Number(pos_x) + pos_a/2) + " B" + Math.round(Number(pos_y) + pos_b/2);
			}						
			var hs_img = spin[s]['hotspot'][hs]['hs_img'];
			var target = spin[s]['hotspot'][hs]['target'];
			javacode += "{hotspot" + hsNr++ + "= " + position + " n'" + hs_text + "' q i'" + hs_img + "' u'" + target + "'}";
			javacode += "{hotspot" + hsNr++ + "= " + position + " c" + hs_textcolor + " n'" + hs_text + "' p i'" + hs_text + "' e}";
		}							
		javacode += '">';
	}
	javacode += '<param name="file" value="ptviewer:' + (curr_spin-1) + '">';
	javacode += '</applet>';
	writeInto(spinplayerID,javacode);
}

function writeNotSupported() {
}
