var app = new Array();
app["pano"] = new Array();

app["pano"][0] = "tiles";
app["pano"][1] = "tiles";

var dbl = 1;
var prev_click = 0;
var dblclck_timeout = 500;
var status=0;
var tag=0;

function makedoubleclick(){
	var krpano = document.getElementById("krpanoObject");
	if((status==0) && (tag==1) && (krpano.get('plugin[taggen].visible') == true)){
     date = new Date();
     now_click = date.getTime();
    
     if(now_click < (prev_click+dblclck_timeout)){
        prev_click = 0;
		center();
		status=1;
     }else{
        prev_click = now_click;
     }
	}
	
}


function center() {	
	var krpano = document.getElementById("krpanoObject");
	if (krpano.get('plugin[action_pending].alpha') != 0) return false;
	document.getElementById("sniper_box").style.top = "-9999px";

		var mousex = krpano.get("mouse.x");
		var mousey = krpano.get("mouse.y");
		var zoom = krpano.get("view.fov");
		var xml = krpano.get("xml.url");
		//alert(xml);
		//var test = document.getElementById("pano1").value;


		//document.getElementById("pano1").value=xml;

		
		//var test = document.getElementById("pano1").value;

		if (mousex && mousey)
		{
			var hvs = krpano.get("screentosphere("+mousex +","+mousey +")");

			if (hvs)
			{
				var hva = hvs.split(",");

				var ath = Number( hva[0] );
				var atv = Number( hva[1] );
				
				if(ath != 0 && atv != 0){
				
				 krpano.call("lookto("+ath+","+atv+",0,smooth(50,20,100));");
				}
			}
		}
	setTimeout("layer("+ath+", "+atv+")", 2000);

	return false;
}

function layer(ath, atv) {
	var krpano = document.getElementById("krpanoObject");
	
	var hvs1 = krpano.get("spheretoscreen("+ath +","+atv +")");
	var hva1 = hvs1.split(",");

	var mousex1 = Number( hva1[0] );
	var mousey1 = Number( hva1[1] );
	
	var browserweite = document.getElementById("pano").offsetWidth;
	var browserhoehe = document.getElementById("pano").offsetHeight;
	
	if ((ath < -0.44) || (ath > 0.44) || (atv < -0.18) || (atv > 0.18))
	 {
	 if (ath > 0.47) {
	 document.getElementById("sniper_box").style.top = parseInt(mousey1)+100+"px";
	 document.getElementById("sniper_box").style.left = parseInt(mousex1)-340+"px";
	 document.getElementById("sniper_box").style.background = "url(_tools/img/layer1.png) no-repeat top left";
	 }
	 else
	 {
	 document.getElementById("sniper_box").style.top = parseInt(mousey1)+100+"px";
	 document.getElementById("sniper_box").style.left = parseInt(mousex1)+"px";
	 document.getElementById("sniper_box").style.background = "url(_tools/img/layer.png) no-repeat top left";
	 }
	}
	else
	{
	 document.getElementById("sniper_box").style.top = (parseInt(browserhoehe/2)+100)+"px";
	 document.getElementById("sniper_box").style.left = "50%";
	 document.getElementById("sniper_box").style.background = "url(_tools/img/layer.png) no-repeat top left";
	}
}

function freeze() {
	var krpano = document.getElementById("krpanoObject");
	krpano.call("freezeview(true);");
}

function close_layer() {
	document.getElementById("sniper_box").style.top = "-9999px";
	var krpano = document.getElementById("krpanoObject");
	krpano.call("freezeview(false);");
	status = 0;
}

function close_info_box() {
	document.getElementById("info_box").style.top = "-9999px";
	//document.getElementById("info_box").style.height = "0px";
	//document.getElementById("info_box").style.width = "0px";
	//var krpano = document.getElementById("krpanoObject");
	//krpano.call("freezeview(false);");
	status = 0;
	document.getElementById("tour").style.display="none";
	document.getElementById('boxcontent').innerHTML="";
}

function taggen() {
	var krpano = document.getElementById("krpanoObject");

	if (tag == 0) {
		tag = 1; 
		krpano.set("plugin[taggen].url","_tools/img/tag1.png");
	} else {
		tag = 0; 
		krpano.set("plugin[taggen].url","_tools/img/tag.png");
	}
}

function taggen_full() {
	var krpano = document.getElementById("krpanoObject");
	
	if (krpano.get('plugin[taggen].visible') == false) {
		tag = 0; 
	} else {
		tag = 1; 
	}
}

var overview = true;

function zoom(action) {
	var krpano = document.getElementById("krpanoObject");

	if (krpano.get('plugin[action_pending].alpha') != 0) return false;
	
	if (!overview)
	krpano.call("action(overview,0,0,0.291413);");
	
	if (action == '0')	{
		overview = true;
		return false;
	}
	
	overview = false;
	
	if (action == '1')
	krpano.call("action(zoom,-0.11,0.04,0.015728);");
	
	if (action == '2')
	krpano.call("action(zoom,0.28,0.03,0.004367);");
	
	if (action == '3')
	krpano.call("action(zoom,0.14,0.02,0.02);");

	if (action == '4')
	krpano.call("action(zoom,0.07,0.01,0.003108);");
	
	return false;
}


function display(width,height) {
	var krpano = document.getElementById("krpanoObject");

	if (typeof krpano.get == 'function') {
	if (krpano.get('view.fov') != 90) {

		if (document.getElementById("pano").className == "")
		document.getElementById("pano").className = krpano.get('view.fov');
		
		var ratio = document.getElementById("pano").className;

		var view_res_x = new Number(krpano.get('view.fov')*width/ratio);
		var view_res_y = new Number(krpano.get('view.fov')*height/ratio);
		
		var view_res_xy = view_res_x*view_res_y;		

		if (view_res_xy > 1000) 
		{
			view_res_xy=view_res_xy/1000;
			view_res_xy=view_res_xy/1000;
			document.getElementById('res_xy_desc').innerHTML = 'megapixel';
			if (view_res_xy > 100) {view_res_xy=view_res_xy/1000;document.getElementById('res_xy_desc').innerHTML = 'gigapixel';}
		}
		else
		{
			document.getElementById('res_xy_desc').innerHTML = 'pixel';
		}
		
		var view_res_xy = new Number(view_res_xy);

		
		if(document.getElementById('res_x').innerHTML != view_res_x.toFixed(0) || document.getElementById('res_y').innerHTML != view_res_y.toFixed(0) || document.getElementById('res_xy').innerHTML != view_res_xy.toFixed(2))
		{
			document.getElementById('res_x').innerHTML = view_res_x.toFixed(0);
			document.getElementById('res_y').innerHTML = view_res_y.toFixed(0);
		
			document.getElementById('res_xy').innerHTML = view_res_xy.toFixed(2);
			
		}
		var hlookat = krpano.get("view.hlookat");
		var vlookat = krpano.get("view.vlookat");
		var fov     = krpano.get("view.fov");

		document.getElementById("positionx").value=hlookat;
		document.getElementById("positiony").value=vlookat;
		document.getElementById("zoom").value=fov;
		//alert(fov+" "+hlookat+" "+vlookat);
		//make_panourl();
	}}
}

function start_tour(nr,name,width,height,hfov,previews) {
	var viewer = createPanoViewer({swf:"http://"+document.location.hostname+"/_tools/krpano.swf", id:"krpanoObject", target:"pano"});

	viewer.addParam("wmode","transparent"); 
	// set the default xml file
	viewer.addVariable("xml", "http://"+document.location.hostname+"/panos/"+name+"/pano.xml");
	// pass all parameters from the html file to the viewer
	viewer.passQueryParameters();

	// pass the url of the html file to the viewer
	var curhtmlpath = String(document.location);
	curhtmlpath = curhtmlpath.substring(0,curhtmlpath.indexOf(".html")+5);
	viewer.addVariable("js_htmlpath", curhtmlpath);

	// embed and start the viewer
	viewer.embed();

	// set interval
	var aktiv = window.setInterval("display("+width+","+height+")", 1500);
}
	
// function that generates the pano url
function make_panourl()
{
	var krpano = document.getElementById("krpanoObject");
			
	var htmlpath = document.location.hostname;
	htmlpath = "http://" + htmlpath + "/index.html";
			
	// get the current xml
	var xml = krpano.get("xml.url");

//	alert(xml);

	// get the current looking directing
	var hlookat = krpano.get("view.hlookat");
	var vlookat = krpano.get("view.vlookat");
	var fov     = krpano.get("view.fov");//alert(vlookat);

	var parameters = "?xml=" + xml + "%26view.hlookat=" + hlookat.toFixed(2) + "%26view.vlookat=" + vlookat.toFixed(2) + "%26view.fov=" + fov.toFixed(2);
	if(document.getElementById("vlookat").innerHTML!=vlookat || document.getElementById("hlookat").innerHTML!=hlookat  || document.getElementById("fov").innerHTML!=fov)
	{
		document.getElementById("vlookat").innerHTML=vlookat;
		document.getElementById("hlookat").innerHTML=hlookat;
		document.getElementById("fov").innerHTML=fov;
		
		//document.getElementById("recommend1").href="mailto:?subject=Panoramaausschnitt&body="+htmlpath+parameters;
		window.location.href="mailto:?subject=panorama-view&body="+htmlpath+parameters;
	}
      else
	{
	alert("Please move the panorama.");
	}
}

function showCat(categorie) {
	krpano.set("plugin["+_name + "].visible",false);

}

function loadingComplete() {
	document.getElementById('loader').style.display="none";
}

function facebook()
{
	
	var krpano = document.getElementById("krpanoObject");
			
	var htmlpath = document.location.hostname;
	htmlpath = "http://" + htmlpath + "/index.html";
			
	// get the current xml
	var xml = krpano.get("xml.url");
	// get the current looking directing
	var hlookat = krpano.get("view.hlookat");
	var vlookat = krpano.get("view.vlookat");
	var fov     = krpano.get("view.fov");

	var parameters = "?xml=" + xml + "&view.hlookat=" + hlookat.toFixed(2) + "&view.vlookat=" + vlookat.toFixed(2) + "&view.fov=" + fov.toFixed(2);

	//facebook_endurl="http://www.facebook.com/sharer.php?u="+encodeURIComponent(htmlpath+parameters+"&t=Panorama");
	//fenster = window.open(facebook_endurl, "fenster1", "width=600,height=400,status=yes,scrollbars=yes,resizable=yes");
	//fenster.focus();
	url=htmlpath+parameters;
}

function addWidth() {
	var krpano = document.getElementById("krpanoObject");

    	var curr_width = document.getElementById("pano").offsetWidth;
    	var curr_height = document.getElementById("pano").offsetHeight;
/*
    	krpano.set("action[resize_element].browser_width",curr_width);
	krpano.set("action[resize_element].browser_height",curr_height);*/

    	krpano.call("resize_element.browser_width",curr_width);
	krpano.call("resize_element.browser_height",curr_height);
}

function showMailform(){
	if(document.getElementById('mailform').style.display!=='block')
		document.getElementById('mailform').style.display='block';
	else
		document.getElementById('mailform').style.display='none';
}

function showInfobox(inhalt){
	// set the type of encoding to numerical entities e.g & instead of &
	Encoder.EncodeType = "numerical";

	// or to set it to encode to html entities e.g & instead of &
	Encoder.EncodeType = "entity";

	// Decode the now encoded text
	var decoded = Encoder.htmlDecode(inhalt);
	// Check whether the text still contains HTML/Numerical entities
	var containsEncoded = Encoder.hasEncoded(decoded);

	var curr_width = document.getElementById("pano").offsetWidth;
	var curr_height = document.getElementById("pano").offsetHeight;
	curr_width = (curr_width/2)-300;
	curr_height = curr_height-50;
	document.getElementById("tour").style.display="none";
	document.getElementById('info_box').style.top="110px";
	//document.getElementById('info_box').style.top="-"+curr_height+"px";
	document.getElementById('info_box').style.left=curr_width+"px";
	document.getElementById('boxcontent').innerHTML=decoded;
	var infobox = document.getElementById('infobox');
	if(infobox == null)
	{
		document.getElementById('info_box').style.width=(parseInt(document.getElementById('iframe').width)+10)+"px";
		document.getElementById('info_box').style.height=(parseInt(document.getElementById('iframe').height)+10)+"px";
	}
	else{
		infobox.style.width="600px";
		infobox.style.height="400px";
		document.getElementById('info_box').style.width=infobox.style.width;
		document.getElementById('info_box').style.height=infobox.style.height;
	}

}


function start_sub_tour(hotspot){
	var krpano = document.getElementById("krpanoObject");
	var path=krpano.get("hotspot["+hotspot+"].rundgang");
	var brokenstring=path.split("/");
	document.getElementById("pano1").value=brokenstring[1];
	krpano.call("freezeview(false);loadpano("+path+");");
}

function setPanoPath(){
	document.getElementById("pano1").value='palmela-galerie';
}

function getCurHotspot(curhotspot) {
	hotspot = curhotspot;
	document.getElementById("tour").style.display="inline";
}

function fullscreen() {
	window.open(this.location.href,"Pano","fullscreen=yes");
}

function popup(location,height,width) {
	if(!height || !width)
	{
		height=600;
		width=800;
	}
	fenster = window.open(String(location), "fenster1", "width="+width+",height="+height+",status=yes,scrollbars=yes,resizable=yes");
	fenster.focus();
}

function checkPano(hotspot){
	var krpano = document.getElementById("krpanoObject");
	
	if(krpano.get("xml.url") != 'http://pro-emotionen.de/panos/palmela-galerie/pano.xml' && krpano.get("xml.url") != 'http://www.pro-emotionen.de/panos/palmela-galerie/pano.xml')
	{
		var path=krpano.get("plugin[maps].spot["+hotspot+"].xmlname");
		krpano.call("freezeview(false);loadpano(../"+path+"/pano.xml);");
	}
}


function validateEmailForm()
{
	var check=true;
	var tag_name=document.getElementById('name').value;
	var tag_email=document.getElementById('email').value;

	if(tag_name==undefined || tag_name.length<=1){check=false;}
	if(tag_email==undefined || tag_email.length<=1){check=false;}

	if(!check)
		//alert(unescape("Bitte erst alle rot gekennzeichneten Felder ausf%FCllen%21"));
	return check;

}
