﻿/*************************************************************
*  Project: Hotel Kuracyjny Site
*  Version: 1.0
*  Author: Przemyslaw Berlinski  
*  Filename: hotelkuracyjny.js
*  Description:
*      General JavaScript file containing global site navigation engine
*      and other generic functions.
**************************************************************/

var last_location = 'hotel';
var clicked1 = false;
var clicked2 = false;
var http_request = false;

/*************************************************************
*  Link builder from sitenav object
**************************************************************/
function getLinks(target) {
	var output = '';
	var temp = '';
	var str_br = false;
	
	// druga linijka
	if (typeof(sitenav[target][1]) != "undefined") {
		if (typeof(sitenav[target][1].links) != "undefined") {
			var link = sitenav[target][1].links.split("|");
			last_location = target;
			
			if (link[0] == 'null') {
				output = ' ';
			} else {
				for (i=0; i<link.length; i++) {
					switch (lang_prefix) {
						case 'pl': var link_name = sitenav[link[i]][0].text_pl; break
						case 'en': var link_name = sitenav[link[i]][0].text_en; break
						case 'de': var link_name = sitenav[link[i]][0].text_de; break
						case 'ru': var link_name = sitenav[link[i]][0].text_ru; break
						default: var link_name = sitenav[link[i]][0].text_pl;
					}
					
					
					if (i>0) { 
						output=output+' | ';
					}
					
					temp = temp+link_name+' | ';
					
					if (temp.length > 70 && str_br == false) {
						output = output + '<br/>';
						str_br = true;
					}
				
					output=output+'<a href="javascript:showPage(\''+link[i]+'\');">'+link_name+'</a>';
				}
			}
		}
		if (typeof(sitenav[target][1].prev) != "undefined") {
			if (output.length > 0) {
				output = output + ' | ';
			}
			switch (lang_prefix) {
						case 'pl': var powrot_txt = 'Powrót'; break
						case 'en': var powrot_txt = 'Return'; break
						case 'de': var powrot_txt = 'Zurück'; break
						case 'ru': var powrot_txt = 'Назад'; break
						default: var powrot_txt = 'Powrót';
					}
			
			output=output+'<a href="javascript:showPage(\''+sitenav[target][1].prev+'\');">'+powrot_txt+'</a>';
		}
	} 	
	return output;
}

/*************************************************************
*  Location title parser from sitenav object
**************************************************************/
function getTitle(target) {
	if (typeof(sitenav[target][0]) != "undefined") {
		return sitenav[target][0].text;
	}
}

/*************************************************************
*  Right panel content parser from sitenav object
**************************************************************/
function getRightPanel(target) {
	if (typeof(sitenav[target][0]) != "undefined") {
		return sitenav[target][0].rightPanel;
	}
}

/*************************************************************
*  Left panel content parser from sitenav object
**************************************************************/
function getLeftPanel(target) {
	if (typeof(sitenav[target][0]) != "undefined") {
		return sitenav[target][0].leftPanel;
	}
}

/*************************************************************
*  Site navigation global function
**************************************************************/
function showPage(target,id) {
	
	if (typeof(sitenav[target][0].anim) != "undefined" && sitenav[target][0].anim != "") {
		var so = new SWFObject("flash/"+sitenav[target][0].anim, "animacja", "521", "526", "1", "#000000");
		so.useExpressInstall('flash/expressinstall.swf');
		so.addParam("wmode", "transparent");
		so.addParam("swLiveConnect", "true");
		so.write("mainanim");
	} else {
		var so = new SWFObject("flash/animacja_glowna.swf", "animacja", "521", "526", "1", "#000000");
		so.useExpressInstall('flash/expressinstall.swf');
		so.addParam("wmode", "transparent");
		so.addParam("swLiveConnect", "true");
		so.write("mainanim");
	}
	
	if (typeof(sitenav[target][0].gallery) != "undefined" && sitenav[target][0].gallery != "") {
		enlargeForGallery(sitenav[target][0].gallery);
	} else
	if (typeof(sitenav[target][0].leftPanel) != "undefined" && sitenav[target][0].leftPanel != "") {
		enlargeForLeftPanel(target);
	} else {
		backToNormal();
	}
	
	
	//document.getElementById("pageTitle").innerHTML=getTitle(target);
	document.getElementById("pageTitle").innerHTML=getTitle(target);
	ajaxpage('includes/'+getRightPanel(target), 'mainTextArea');
	
	if (target=='guestbook') {
		ajaxpage('includes/entries.inc', 'guestBookTxt');
	}

}

/*************************************************************
*  Helper for contact page
**************************************************************/
function Clear(field) {
	var ff = xbGetElementById(field);
	if (field == 'subject' && clicked1 == false) {
		ff.value = '';
		clicked1 = true;
	} else if (field == 'message' && clicked2 == false) {
		ff.value = '';
		clicked2 = true;
	}	
}

/*************************************************************
*  Generic AJAX POST request
**************************************************************/
function makePOSTRequest(url, parameters) {
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('Nie można utwożyć instancji XMLHTML!');
		return false;
	}
      
	
	http_request.onreadystatechange = alertContents;
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
	
}

/*************************************************************
*  AJAX response parser
**************************************************************/
function alertContents() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			result = http_request.responseText;
			//document.getElementById('mainTextArea').innerHTML = result;            
			//alert(result);
		} else {
			alert('There was a problem with the request.');
		}
	}
}

/*************************************************************
*  Contact page POST request
**************************************************************/   
function postContactForm() {
	var poststr = "surname=" + encodeURI( xbGetElementById('nazwisko').value ) +
				  "&tel=" + encodeURI( xbGetElementById('tel').value ) +
				  "&email=" + encodeURI( xbGetElementById('email').value ) +
				  "&subject=" + encodeURI( xbGetElementById('temat').value ) +
				  "&message=" + encodeURI( xbGetElementById('tresc').value ) +
				  "&submit=" + encodeURI('submit');
	makePOSTRequest('includes/kontakt.php', poststr);
	showPage('kontakt');
}

function postGuestbookForm() {
	var poststr = "username=" + encodeURI( xbGetElementById('username').value ) +
				  "&txt=" + encodeURI( xbGetElementById('txt').value ) +
				  "&verification_key=" + encodeURI( xbGetElementById('verification_key').value ) +
				  "&submit=" + encodeURI('submit');
	makePOSTRequest('includes/guestbook.php', poststr);
	//alert("Dziękujemy za dodanie wpisu do Księgi Gości!");
	showPage('guestbook');
	ajaxpage('includes/entries.inc', 'guestBookTxt');
	ajaxpage('includes/txt_guestbook.inc', 'mainTextArea');
}



function getAbsoluteLeft(objectId) {
	// Get an object left position from the upper left viewport corner
	// Tested with relative and nested objects
	o = document.getElementById(objectId)
	oLeft = o.offsetLeft            // Get left position from the parent object
	while(o.offsetParent!=null) {   // Parse the parent hierarchy up to the document element
		oParent = o.offsetParent    // Get parent object reference
		oLeft += oParent.offsetLeft // Add parent left position
		o = oParent
	}
	// Return left postion
	return oLeft
}

function getAbsoluteTop(objectId) {
	// Get an object top position from the upper left viewport corner
	// Tested with relative and nested objects
	o = document.getElementById(objectId)
	oTop = o.offsetTop            // Get top position from the parent object
	while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element
		oParent = o.offsetParent  // Get parent object reference
		oTop += oParent.offsetTop // Add parent top position
		o = oParent
	}
	// Return top position
	return oTop
}

function findPos(obj) {
	obj = document.getElementById(obj);
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

var viewEnlarged = false;

function showAnimatedLogotype() {
	var so = new SWFObject("flash/logotyp.swf", "logo", "288", "288", "8");
	so.useExpressInstall('flash/expressinstall.swf');
	so.addParam("wmode", "transparent");
	so.addParam("swLiveConnect", "true");
	so.write("animowane-logo-swf");
	var top = getAbsoluteTop(document.getElementById('srodeczek'))+'px';
	var left = getAbsoluteLeft(document.getElementById('srodeczek'))+'px';
	document.getElementById('animowane-logo').style.visibility='visible';
	
}

function enlargeForGallery(galleryName) {
	if (viewEnlarged == false) {
		viewEnlarged = true;
		var anim = document.getElementById('animacja');
		anim.StopPlay();
		anim.GotoFrame(275);
		anim.Play();
		var anim = document.getElementById('logo');
		anim.StopPlay();
		anim.GotoFrame(200);
		anim.Play();
		var fo = new SWFObject("flash/viewer.swf", "viewer", "521", "526", "3");	
			fo.addVariable("preloaderColor", "0xffffff");
			fo.addParam("wmode", "transparent");
			fo.addVariable("xmlDataPath", "galeria/"+galleryName+"/gallery.xml");	
			fo.write("fotki");
			}
}

function enlargeForLeftPanel(target) {
	if (viewEnlarged == false) {
		viewEnlarged = true;
		var anim = document.getElementById('animacja');
		anim.StopPlay();
		anim.GotoFrame(275);
		anim.Play();
		var anim = document.getElementById('logo');
		anim.StopPlay();
		anim.GotoFrame(200);
		anim.Play();
	}
		ajaxpage('includes/'+getLeftPanel(target), 'fotki');
}

function backToNormal() {
	if (viewEnlarged == true) {
		viewEnlarged = false;
		document.getElementById('fotki').innerHTML='';
		var anim = document.getElementById('animacja');
		anim.StopPlay();
		anim.GotoFrame(284);
		anim.Play();
		var anim = document.getElementById('logo');
		anim.StopPlay();
		anim.GotoFrame(207);
		anim.Play();
	}
}


