/******************************
 * Copyright© GardenaNet 2007 *
 * ****************************
 * info@gardena.net           *
 * ***************************/

// Parameter für PopUps definiren
var AutoClose = true;		// sollen PopUps automatisch geschlossen werden?
var PositionX = 100;		// X Position auf dem Bildschirm
var PositionY = 100;		// Y Position auf dem Bildschirm
var defaultWidth  = 800;	// Breite des Fensters
var defaultHeight = 800;	// breite des Fensters

// Parameter für Slide-Show definieren
var overlayOpacity = 0.8;	// controls transparency of shadow overlay
var animate = true;			// toggles resizing animations
var resizeSpeed = 10;		// controls the speed of the image resizing animations (1=slowest and 10=fastest)
var borderSize = 10;		//if you adjust the padding in the CSS, you will need to update this variable
var fileLoadingImage = "../images/lightbox/loading.gif";		
var fileBottomNavCloseImage = "../images/lightbox/close.gif";


// Eigenschaften zum ermitteln von Flash
var AC_FL_RunContent = 0;
var requiredMajorVersion = 6;
var requiredMinorVersion = 0;
var requiredRevision = 0;

// Optionen für pngbg_ie.js
// angeben auf was für Elemente es sich beziehen soll:
	// classname: Elemente mit Klassennamen
	// parenttags: bestimmte Kind-Elemente eines Elternelements
var pngBgType = 'parenttags';
// Klassenname (für pngBgType == classname)
var pngBgClassName = 'nav';
// ID des Elternelements (für pngBgType == parenttags)
var pngBgParentId = 'nav';
// Tag-Name der Kinder-Elemente (für pngBgType == parenttags)
var pngBgChildTag = 'a';
// Methode zum anzeigen der Bilder
	// scale » skaliert das Bild
	// crop  » schneidet das Bild
var sizingMethod = 'scale';

// mögliche Sprachen angeben
var available_languages = new Array('deu', 'ita', 'eng', 'fra', 'nla');
// default Sprache angeben
var default_langauge = 'eng';

// Funktion die mit dem event-handler onload in body gestartet wird
function load()
{
	myLightbox = new Lightbox();
	build_calendars();	// calendar aktivieren
	loadformconditions();	// Checkform für Formulare aktivieren
	painttablerows('prezzi', '#ffffff', '#dad2b4');		// Preis-Tabellen formattieren
	painttablerows('prezzis', '#ffffff', '#999999');	// Preis-Tabellen formattieren
	painttablerows('prezziw', '#ffffff', '#999999');	// Preis-Tabellen formattieren
	//runSlideShow();	// slideshow aktivieren
	//correctPNG();	// PNG im IE6 korrigieren
	//var pngHandler = new PNGHandler();	// Instantiate and initialize PNG Handler
	//activateflash();	// flash Objekte mit der einfachen Methode aktivieren
							// ACHTUNG: funktioniert nicht immer!
}

function build_calendars()
{
	if (!Calendar) return;
	if (!document.getElementById('arrival')) return;
	Calendar.setup({
		inputField     :    "arrival",		// id of the input field
		ifFormat       :    "%d/%m/%Y",		// format of the input field
		showsTime      :    false,			// will display a time selector
		button         :    "arrival",		// trigger for the calendar (button ID)
		singleClick    :    true,			// double-click mode
		step           :    1				// show all years in drop-down boxes (instead of every other year as default)
	});
	
	if (!document.getElementById('icon1')) return;
	Calendar.setup({
		inputField     :    "arrival",		// id of the input field
		ifFormat       :    "%d/%m/%Y",		// format of the input field
		showsTime      :    false,			// will display a time selector
		button         :    "icon1",		// trigger for the calendar (button ID)
		singleClick    :    true,			// double-click mode
		step           :    1				// show all years in drop-down boxes (instead of every other year as default)
	});
	
	if (!document.getElementById('departure')) return;
	Calendar.setup({
		inputField     :    "departure",	// id of the input field
		ifFormat       :    "%d/%m/%Y",		// format of the input field
		showsTime      :    false,			// will display a time selector
		button         :    "departure",	// trigger for the calendar (button ID)
		singleClick    :    true,			// double-click mode
		step           :    1				// show all years in drop-down boxes (instead of every other year as default)
	});
	
	if (!document.getElementById('icon2')) return;
	Calendar.setup({
		inputField     :    "departure",	// id of the input field
		ifFormat       :    "%d/%m/%Y",		// format of the input field
		showsTime      :    false,			// will display a time selector
		button         :    "icon2",		// trigger for the calendar (button ID)
		singleClick    :    true,			// double-click mode
		step           :    1				// show all years in drop-down boxes (instead of every other year as default)
	});
	setDate('arrival', 'departure');
}

// Funktion in der die Konditionen der Formulare definiert sind
function loadformconditions()
{
	// beschreiben der Werte die geprüft werden sollen
	// es werden folgende Felder dem Array hinzugefügt:
		// Name der Variable im Formular
		// Typ der Variable: string, email, checkbox';
	
	if (document.getElementById('defaultform'))
	{
		fields2check[0] = new Array('name',		 'string');
		fields2check[1] = new Array('surname',	 'string');
		fields2check[2] = new Array('email',	 'email');
		fields2check[3] = new Array('conditions','checkbox');	
	}
}

// Arrays für Slide-Show
var Picture = new Array();
var Caption = new Array();
var Title   = new Array();
var PictureBig = new Array();

// Funktion zum starten der SlideShow
function runSlideShow ()
{
	// überprüfen ob Bilder vorhanden sind
	if (Picture.length == 0) return false;
	
	// überprüfen ob nötige Elemente vorhanden sind
	if (!document.getElementById || !document.getElementById("PictureBox") || !document.getElementById("CaptionBox") || !document.getElementById('SlideImage')) return false;
	
	// preLoad erzeugen
	if (preLoad == false)
	{
		preLoad = new Array();
		for (iss = 1; iss < Picture.length; iss++)
		{
			preLoad[iss] = new Image();
			preLoad[iss].src = Picture[iss];
		}
	}
	
	// Bild wechseln
	if (document.all)
	{
		document.images.PictureBox.style.filter="blendTrans(duration=2)";
		document.images.PictureBox.style.filter="blendTrans(duration=CrossFadeDuration)";
		document.getElementById("PictureBox").filters.blendTrans.Apply();
	}
	document.images.PictureBox.src = preLoad[jss].src;
	
	// Titel wechseln
	document.getElementById("CaptionBox").innerHTML = Title[jss];
	
	// Bildunterschrift wechseln
	document.getElementById("SlideImage").title = Caption[jss];
	
	// Href des Links wechseln (wenn gn_tipozoom » new)
	if (gn_tipozoom == 'new')
	{
		if (PictureBig[jss] == '')
			document.getElementById('SlideImage').href = '#';
		else
			document.getElementById('SlideImage').setAttribute('href', PictureBig[jss]);
	}
	
	// Filter starten (falls IE)
	if (document.all) document.images.PictureBox.filters.blendTrans.Play();
	jss = jss + 1;
	if (jss > Picture.length - 1) jss = 1;
	setTimeout('runSlideShow()', SlideShowSpeed);
}

// leere Funktion um Fehler bei der Initialisation zu vermeiden
function initLightbox ()
{}


// Funktion und Variablen für das einfache PopUp definieren
var openpage = false;
function opennew (file, breite, hoehe, scrollbars, status)
{
	if (typeof(scrollbars) == 'undefined' || typeof(status) == 'undefined')
	{
		var toreturn = false;
	}
	else
	{
		var toreturn = true;
	}
	
	if (typeof(scrollbars) != 'undefined' && scrollbars != 'no')
	{
		scrollbars = 'yes';
	} else {
		scrollbars = 'no';
	}
	if (typeof(status) != 'undefined' && status != 'no')
	{
		status = 'yes';
	} else {
		status = 'no';
	}
	openpage = window.open(file, 'page', 'width=' + breite + ', height=' + hoehe + ', toolbar=no,location=no,status="+status+",directories=no,menubar=no,scrollbars="+scrollbars+",resizable=no,screenX=120,screenY=80,top=80,left=120');
	if (toreturn)
	{
		return false;
	}
}

function check_popup ()
{
	if (AutoClose && openpage && openpage.closed != true)
	{
		openpage.close();
		openpage = false;
	}
}

// Funktionen zum aufrufen einer neuen URL mit JavaScript
function mylink(url)
{
	if (url == '') return;
	location.href(url);
}

// öffnet neues Popup popImage für SlideShow
function pop ()
{
	var kss = Picture.length - 1;
	if (jss != 1) kss = jss - 1;
	var file = PictureBig[kss];
	popImage(file, 'zoom');
}

if (parseInt(navigator.appVersion.charAt(0)) >= 4)
{
	var isNN = (navigator.appName == 'Netscape') ? 1 : 0;
	var isIE = (navigator.appName.indexOf('Microsoft') != -1) ? 1 : 0;
}

var optNN = 'scrollbars=no,width=' + defaultWidth + ',height=' + defaultHeight + ',left=' + PositionX + ',top=' + PositionY;
var optIE = 'scrollbars=no,width=150,height=100,left=' + PositionX + ',top=' + PositionY;

function popImage (imageURL, imageTitle)
{
	if (isNN)
	{
		imgWin = window.open('about:blank', '', optNN);
	}
	if (isIE)
	{
		imgWin = window.open('about:blank', '', optIE);
	}
	with (imgWin.document)
	{
		writeln('<html><head><title>Loading...</title>');
		writeln('<style>body{margin:0px;padding:0px;background-color:#ffffff;}</style>');
		writeln('<sc'+'ript>');
		writeln('var isNN,isIE;');
		writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
		writeln('isNN=(navigator.appName=="Netscape")?1:0;');
		writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
		writeln('function reSizeToImage(){');
		writeln('if (isIE){');
		writeln('window.resizeTo(100,100);');
		writeln('window.resizeTo(document.images[0].width + 10, document.images[0].height + 29);}');
        writeln('if (isNN){');
		writeln('window.innerWidth=document.images[0].width;');
		writeln('window.innerHeight=document.images[0].height;}}');
		writeln('function doTitle(){document.title="' + imageTitle + '";}');
		writeln('</sc'+'ript>');
		if (AutoClose)
		{
			writeln('</head><body scroll="no" onload="reSizeToImage();doTitle();self.focus();" onblur="self.close();">');
		} else {
			writeln('</head><body scroll="no" onload="reSizeToImage();doTitle();self.focus();">');
		}
		writeln('<img src=' + imageURL + ' style="display:block" /></body></html>');
		close();
	}
}

// Funktion zum ausblenden der Menüebene
function hide (obj)
{
	if (!document.getElementById(obj))
	{
		return;
	}
	document.getElementById(obj).style.left = '-999em';
}

// Funktion zum einblenden der Menüebene
function show (obj)
{
	if (!document.getElementById(obj))
	{
		return;
	}
	document.getElementById(obj).style.left = 'auto';
}

// Aktivierung Flash Objekte
function activateflash ()
{
	var obj = document.getElementsByTagName('object');  
	for (var i = 0; i < obj.length; i++) {
		obj[i].outerHTML = obj[i].outerHTML;
	}
}

// Funktionen zum ermitteln ob Flash verfügbar ist
var isIE  = (navigator.appVersion.indexOf('MSIE') != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf('win') != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf('Opera') != -1) ? true : false;
function DetectFlashVer (reqMajorVer, reqMinorVer, reqRevision) 
{
 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
	for (i = 25; i > 0; i--)
	{
		if (isIE && isWin && !isOpera)
		{
			versionStr = VBGetSwfVer(i);
		} else {
			versionStr = JSGetSwfVer(i);
		}
		if (versionStr == -1 )
		{
			return false;
		}
		else if (versionStr != 0)
		{
			if (isIE && isWin && !isOpera)
			{
				tempArray         = versionStr.split(' ');
				tempString        = tempArray[1];
				versionArray      = tempString .split(',');
			} else {
				versionArray      = versionStr.split('.');
			}
			var versionMajor      = versionArray[0];
			var versionMinor      = versionArray[1];
			var versionRevision   = versionArray[2];
			var versionString     = versionMajor + '.' + versionRevision;
			var versionNum        = parseFloat(versionString);
			if (versionMajor > reqMajorVer)
			{
				return true;
			}
			else if (versionMajor == reqMajorVer)
			{
				if (versionMinor > reqMinorVer)
				{
					return true;
				}
				else if (versionMinor == reqMinorVer)
				{
					if (versionRevision >= reqRevision)
					{
						return true;
					}
				}
			}
			return false;
		}
	}
}

function JSGetSwfVer (i)
{
	var flashVer = -1;
	if (navigator.plugins != null && navigator.plugins.length > 0)
	{
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"])
		{
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? ' 2.0' : '';
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(' ');
 			var tempArrayMajor = descArray[2].split('.');
 			var versionMajor = tempArrayMajor[0];
 			var versionMinor = tempArrayMajor[1];
			if ( descArray[3] != '' )
			{
				tempArrayMinor = descArray[3].split('r');
			} else {
				tempArrayMinor = descArray[4].split('r');
			}
			var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
			var flashVer = versionMajor + '.' + versionMinor + '.' + versionRevision;
		}
	}
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1)
	{
		flashVer = 4;
	}
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1)
	{
		flashVer = 3;
	}
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1)
	{
		flashVer = 2;
	}
	return flashVer;
} 

// Funktion zum abwechselnden darstellen der Farben bei Preistabellen
function painttablerows (tableclass, color1, color2)
{
    if (tableclass == '')
	{
		tableclass = 'prezzi';
	}
    var tableobjects = document.getElementsByTagName('table');
    for (var i = 0; i < tableobjects.length; i++)
    {
        if (tableobjects[i].className == tableclass)
        {
            var color = color2;
            var trobjects = tableobjects[i].getElementsByTagName('tr');
            for (var a = 0; a < trobjects.length; a++)
            {
                trobjects[a].style.background = color;
                if (color == color1)
				{
                    color = color2;
				} else {
                    color = color1;
                }
            }
        }
	}
}

// Funktion zum berechnen und anpassen der Anzahl von Personen bei Formularen 
var rooms = new Array();
rooms['singola']  = 1;
rooms['doppia']   = 2;
rooms['tripla']   = 3;
rooms['apartment']= 4;
var personTarget = 'adults';
function setPersons()
{
	if (typeof(rooms) == 'undefined' || typeof(personTarget) == 'undefined')
	{
		return;
	}
	var persons = 0;
	for (var room in rooms)
	{
		if (room != '' && document.getElementById(room))
		{
			var value = parseInt(document.getElementById(room).value * rooms[room]);
			if (!isNaN(persons))
			{
				persons = persons + value;
			}
		}
	}
	
	var pT = document.getElementById(personTarget);
	if (pT)
	{
		if(!isNaN(persons) && persons != 0)
		{
			pT.value = persons;
		} else {
			pT.value = '';
		}
	}
}

// Funktion zum ändern der required Felder bei Formularen
function set_isrequired(field, type, isrequired)
{
	var found = false;
	for (var nr in fields2check)
	{
		if (typeof(fields2check[nr]) == 'object' && fields2check[nr][0] == field)
		{
			if (isrequired == false)
			{
				fields2check[nr] = '';
				break;
			}
			else
			{
				found = true;
			}
		}
	}
	if (isrequired == true && found == false)
	{
		for (var nr = 0; typeof(fields2check[nr]) == 'object'; nr = nr + 1) {}
		fields2check[nr] = new Array(field, type);
	}
	var labels = document.getElementsByTagName('LABEL');
	for (var nr in labels)
	{
		var label = document.getElementsByTagName('LABEL')[nr];
		if (label.title == field)
		{
			var label_content = label.innerHTML.replace(/<strong>/i, "")
			label_content = label_content.replace(/<\/strong>/i, "")
			if (isrequired == true)
			{
				label.innerHTML = '<strong>'+label_content+'</strong>';
			}
			else
			{
				label.innerHTML = label_content;
			}
		}
	}
}

// ermitteln der Sprache
var url = location.href.split('/');
var lang_position = url.length - 2;
for (this_lang in available_languages)
{
	if (available_languages[this_lang] == url[lang_position])
	{
		var lang = url[lang_position];
		break;
	}
}
if (typeof(lang) == 'undefined')
{
	var lang = default_langauge;
}