/*

 Collection of usablity functions for tourist-online.de
 Author: Tobias Tuschen (sup4u GmbH)
 Last change: 2007-05-15

*/

var offset_left = 0;

if (typeof(languageCode) == 'undefined') var languageCode = 'de';

function unloadImage(evt)
{

	/* check if mouse cursor is on image (because of loading loop), else unload */

	// get event
	if (!evt)
	evt = window.event;

	// get current cursor position
	positionX = mouseX(evt);
	positionY = mouseY(evt);

	// imagePreview position (left/top)
	scrollXY = getScrollXY();
	previewX = scrollXY[0];
	previewY = scrollXY[1];

	// imagePreview dimensions
	if (document.getElementById && document.getElementById("imgPrvImg"))
	{
	  previewWith = document.getElementById("imgPrvImg").width;
	  previewHeight = document.getElementById("imgPrvImg").height;
  }
  else if (document.all && document.all.imgPrv)
	{
		previewWith = document.all.imgPrv.width;
		previewHeight = document.all.imgPrv.height;
	}

	// imagePreview area (10 = margin, 10 = border)
	previewAreaX = previewX + previewWith + 10 + 22;
	previewAreaY = previewY + previewHeight + 10 + 16;

	if ((positionX < previewAreaX) && (positionY < previewAreaY) && (positionX > 170))
	{
		/* nothing to do */
		/* alert(previewAreaX + ' ' + previewAreaY + ' / ' + positionX + ' ' + positionY );  */
	}
	else
	{

		if (document.getElementById && document.getElementById("imgPrvShadow")) {
			document.getElementById("imgPrvShadow").style.visibility = 'hidden';
			document.getElementById("imgPrvShadow").style.display = 'none';
			document.getElementById("imgPrv").innerHTML = '';
			document.getElementById("imgPrvShadow").style.left  = '1px';
			document.getElementById("imgPrvShadow").style.top = '1px';
		}
		else if (document.all && document.all.imgPrvShadow)
		{
			document.all.imgPrvShadow.style.visibility = 'hidden';
			document.all.imgPrvShadow.style.display = 'none';
			document.all.imgPrv.innerHTML = '';
			document.all.imgPrvShadow.style.left = '1px';
			document.all.imgPrvShadow.style.top = '1px';
		}

  }

}

function loadImage(evt, imageUrl)
{
	// get event
	if (!evt)
	evt = window.event;

	// get current cursor position
	/* DISABLED, now controlled by left/top corner
	positionX = mouseX(evt);
	positionY = mouseY(evt);
	*/

	scrollXY = getScrollXY();

	// now in top left corner
	positionX = scrollXY[0];
	positionY = scrollXY[1];

	// set image and display
	if (document.getElementById && document.getElementById("imgPrvShadow")) {
		document.getElementById("imgPrvShadow").style.visibility = 'visible';
		document.getElementById("imgPrvShadow").style.display = 'block';
		document.getElementById("imgPrv").innerHTML = '<div class="imgBorder" onMouseMove="unloadImage(event)" onMouseOut="unloadImage(event)"><img id="imgPrvImg" src="' + imageUrl + '" alt=""></div>';
		document.getElementById("imgPrvShadow").style.left  = (positionX + offset_left + 10) + 'px';
		document.getElementById("imgPrvShadow").style.top = (positionY + 4) + 'px';
	}
	else if (document.all && document.all.imgPrvShadow)
	{
		document.all.imgPrvShadow.style.visibility = 'visible';
		document.all.imgPrvShadow.style.display = 'block';
		document.all.imgPrv.innerHTML = '<div class="imgBorder" onMouseMove="unloadImage(event)" onMouseOut="unloadImage(event)"><img id="imgPrvImg" src="' + imageUrl + '" alt=""></div>';
		document.all.imgPrvShadow.style.left  = (positionX + offset_left + 10) + 'px';
		document.all.imgPrvShadow.style.top = (positionY + 4) + 'px';
	}
}

function mouseX(evt)
{
	if (evt.pageX) return evt.pageX;
	else if (evt.clientX)
	return evt.clientX + (document.documentElement.scrollLeft ?
	document.documentElement.scrollLeft :
	document.body.scrollLeft);
	else return null;
}

function mouseY(evt)
{
	if (evt.pageY) return evt.pageY;
	else if (evt.clientY)
	return evt.clientY + (document.documentElement.scrollTop ?
	document.documentElement.scrollTop :
	document.body.scrollTop);
	else return null;
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function OpenBooking(url)
{
	//resize window to width 850, was too small with 820, Thomas 2007-08-17
	BookingWindow = window.open(url, "Booking", "width=850,height=600,scrollbars=yes");
 	BookingWindow.focus();
}

function showNotes(evt)
{
	// get current notice id
	var notice_id = 0;
	if (parseInt(document.cookie.search(/notice_id=.+/)) >= 0)
	{
		notice_id = document.cookie.substring(document.cookie.search(/notice_id=.+/)) + ';';
	  notice_id = parseInt(notice_id.substring(10, notice_id.search(/;/)));
	}

	if (notice_id > 0)
	{
		// get event
		if (!evt)
		evt = window.event;

		// get current cursor position (check because of only refresh without event)
		if (evt)
		{
			positionX = mouseX(evt);
			positionY = mouseY(evt);
	  }

		// set image and display
		if (document.getElementById("noticeList")) {
			document.getElementById("noticeList").style.visibility = 'visible';
			document.getElementById("noticeList").style.display = 'block';
			//document.getElementById("noticeList").innerHTML = '<div class="imgBorder"><img src="' + imageUrl + '" alt=""></div>';
			if (positionX) document.getElementById("noticeList").style.left  = (positionX + 10) + 'px';
			if (positionY) document.getElementById("noticeList").style.top = (positionY + 10) + 'px';
		}
		else if (document.all && document.all.noticeList)
		{
			document.all.noticeList.style.visibility = 'visible';
			document.all.noticeList.style.display = 'block';
			//document.all.noticeList.innerHTML = '<div class="imgBorder"><img src="' + imageUrl + '" alt=""></div>';
			if (positionX) document.all.noticeList.style.left  = (positionX + 10) + 'px';
			if (positionY) document.all.noticeList.style.top = (positionY + 10) + 'px';
		}

		// get notice list

		// initialize http request
		if (window.ActiveXObject)
		{
			xmlDoc = new ActiveXObject("Microsoft.XMLHTTP"); // Mircosoft
			xmlDoc.onreadystatechange = processNotes ;
		}
		else
		{
			xmlDoc = new XMLHttpRequest(); // Others
			xmlDoc.onload = processNotes ;
		}

		// with random number because of caching
		var requestXML = "/xmlRequest/?method=notice&xml=&xsl=notice.xsl&output=html&note=" + notice_id + "&" + Math.round(Math.random()*100000);

		// local request
		xmlDoc.open("GET", requestXML, true);
		xmlDoc.setRequestHeader( "Content-type", "text/html;charset=ISO-8859-1" );
		xmlDoc.send( null );

	}
}

function processNotes()
{
	// modifiy contents of "hidden" div tag
	if (xmlDoc.readyState == 4) {
		document.getElementById("noticeList").innerHTML = xmlDoc.responseText;
	}
}

function hideNotes()
{

	if (document.getElementById) {
		document.getElementById("noticeList").style.visibility = 'hidden';
		document.getElementById("noticeList").style.display = 'none';
		document.getElementById("noticeList").innerHTML = '';
		document.getElementById("noticeList").style.left  = '1px';
		document.getElementById("noticeList").style.top = '1px';
	}
	else if (document.all)
	{
		document.all.noticeList.style.visibility = 'hidden';
		document.all.noticeList.style.display = 'none';
		document.all.noticeList.innerHTML = '';
		document.all.noticeList.style.left = '1px';
		document.all.noticeList.style.top = '1px';
	}

}

function changeStaff2()
{

	if(which >= pics.length-1) which = 0;
	else which += 1;

	if (employeeImages = document.getElementsByName("employeeImage"))	{
		for(i=0; i < employeeImages.length; i++) {
			employeeImages[i].src = pics[which];
		}
	}
	if (employeeNames = document.getElementById("employeeInfo")) {
		//for(i=0; i < employeeNames.length; i++) {
			employeeNames.innerHTML = names[which];
		//}
	}
	if (employeeTimes = document.getElementById("employeeTime")) {
		//for(i=0; i < employeeTimes.length; i++) {
			employeeTimes.innerHTML = timeBegin + " - " + timeEnd + " Uhr";
		//}
	}

	window.setTimeout('changeStaff2()', changePeriod);
}


function openRequest2(url) {
	requestWindow = window.open(url, "request", "width=820,height=550,scrollbars=yes");
 	requestWindow.focus();
}

function setPartnerCookieField()
{
			// get current notice id
		var partnerCookieID = 0;
		if (parseInt(document.cookie.search(/partnerCookieID=.+/)) >= 0)
		{
			  partnerCookieID = document.cookie.substring(document.cookie.search(/partnerCookieID=.+/)) + ';';
		    partnerCookieID = parseInt(partnerCookieID.substring(16, partnerCookieID.search(/;/)));
		    document.write('<input type="hidden" name="partnerCookieID" value="' + partnerCookieID + '">');
		}

}

function pr(objectNumber, objectPart, date, fieldID, bookable)
{
	// show price information for current date
	if (date)
	{
		showRequestPriceShadow(objectNumber, objectPart, date, '', fieldID, bookable);
    }
}

var fieldHeightlight   = '';
var fieldHeightlightBG = '';

function hi(fieldID)
{
	// reset
	if (fieldHeightlight)
	{
		document.getElementById(fieldHeightlight).style.backgroundColor = fieldHeightlightBG;
		document.getElementById(fieldID).style.cursor = "";
	}

	if (document.getElementById(fieldID))
	{
		fieldHeightlight = fieldID;
		fieldHeightlightBG = document.getElementById(fieldID).style.backgroundColor;
		document.getElementById(fieldID).style.backgroundColor = "#FFFFFF";
		document.getElementById(fieldID).style.color = "#000000";
		if (document.getElementsByTagName('body')[0].style.cursor == 'default' || document.getElementsByTagName('body')[0].style.cursor == '')
		{
			document.getElementById(fieldID).style.cursor = "pointer";
		}else document.getElementById(fieldID).style.cursor = "wait";
	}
}

var xmlDoc = new Array();

function showRequestPriceShadow(objectNumber, objectPart, date, duration, fieldID, bookable)
{
	if (!xmlDoc)
		var xmlDoc = new Array();
		
	if (document.getElementById("pricearea[" + objectNumber + ((objectPart != '') ? ':' + objectPart : '') + "]")) 
	{
		documentElement = document.getElementById("pricearea[" + objectNumber + ((objectPart != '') ? ':' + objectPart : '') + "]");
	} 
	else if ( document.getElementById("pricearea_" + objectNumber + ((objectPart != '') ? '_' + objectPart : '')) )
	{
		documentElement = document.getElementById("pricearea_" + objectNumber + ((objectPart != '') ? '_' + objectPart : ''));
	}
		
		
	if (objectNumber && objectPart)
	{
		setPriceView("<div style='text-align: center;'><br><b>" + Translations[languageCode]["calculatePrices"] + "</b><br><br><br><br></div>", 'wait', fieldID);
		// object identity given, get price data

		// initialize http request
		if (window.ActiveXObject)
		{
			xmlDoc[objectNumber + ":" + objectPart] = new ActiveXObject("Microsoft.XMLHTTP"); // Mircosoft
			xmlDoc[objectNumber + ":" + objectPart].onreadystatechange = function()
			{
				if (xmlDoc[objectNumber + ":" + objectPart].readyState == 4) {
					if (documentElement)
					{
						priceTable = xmlDoc[objectNumber + ":" + objectPart].responseText;
						if (priceTable.length > 15) setPriceView(priceTable, 'default',fieldID);
						//document.getElementById("pricearea[" + objectNumber + ":" + objectPart + "]").innerHTML = priceTable;
					}
				}
			}
		}
		else
		{
			xmlDoc[objectNumber + ":" + objectPart] = new XMLHttpRequest(); // Others
			xmlDoc[objectNumber + ":" + objectPart].onload = function()
			{
				if (xmlDoc[objectNumber + ":" + objectPart].readyState == 4) {
					if (documentElement)
					{
						priceTable = xmlDoc[objectNumber + ":" + objectPart].responseText;
						if (priceTable.length > 15) setPriceView(priceTable, 'default',fieldID);
						//document.getElementById("pricearea[" + objectNumber + ":" + objectPart + "]").innerHTML = priceTable;
					}
				}
			}
		}
		//var requestXML = "/xmlRequest/?method=object_prices2&xsl=../xsl/object_prices2.xsl&output=html&params=isolang:" + languageCode + "&object=" + objectNumber + "&part=" + objectPart + "&date=" + date + ((duration) ? "&duration=" + duration: "");
		var requestXML = "/xmlProcessing/prices.php?languageCode" + languageCode + "&objectNumbers=" + objectNumber + "|" + objectPart + "&direct=Y&startDate=" + date + ((duration) ? "&duration=" + duration : "") + ((bookable) ? "&bookable=" + objectNumber : "");

		// local request
		xmlDoc[objectNumber + ":" + objectPart].open("GET", requestXML, true);
		xmlDoc[objectNumber + ":" + objectPart].setRequestHeader( "Content-type", "text/html;charset=UTF-8" );
		xmlDoc[objectNumber + ":" + objectPart].send( null );


  }

}

function setPriceView(text, cursor, fieldID)
{
	evt = window.event;

	scrollXY = getScrollXY();

	// now in top left corner
	positionX = scrollXY[0];
	positionY = scrollXY[1];

	// set image and display
	if (document.getElementById)
	{
		document.getElementById("pricePrvShadow").style.visibility = 'visible';
		document.getElementById("pricePrvShadow").style.display = 'block';
		document.getElementById("pricePrv").innerHTML = '<div class="priceBorder">' + text + '<div id="PriceCloseLink"><a href="javascript:hidePriceView()" onClick="hidePriceView()">[x] ' + Translations[languageCode]["close"] + '</a></div></div>';
		document.getElementById("pricePrvShadow").style.left  = (positionX + offset_left + 10) + 'px';
		document.getElementById("pricePrvShadow").style.top = (positionY + 4) + 'px';
	}
	else if (document.all)
	{
		document.all.pricePrvShadow.style.visibility = 'visible';
		document.all.pricePrvShadow.style.display = 'block';
		document.all.pricePrv.innerHTML = '<div class="priceBorder">' + text + '<div id="PriceCloseLink"><a href="javascript:hidePriceView()" onClick="hidePriceView()">[x] ' + Translations[languageCode]["close"] + '</a></div></div>';
		document.all.pricePrvShadow.style.left  = (positionX + offset_left + 10) + 'px';
		document.all.pricePrvShadow.style.top = (positionY + 4) + 'px';
	}
	document.getElementsByTagName('body')[0].style.cursor= cursor;
	if (cursor == 'wait')
	{
		document.getElementById(fieldID).style.cursor = "wait";
	}else document.getElementById(fieldID).style.cursor = "pointer";
	priceViewActive = 1;
}

function hidePriceView(text)
{
	// set image and display
	if (document.getElementById) {
		document.getElementById("pricePrvShadow").style.visibility = 'hidden';
		document.getElementById("pricePrvShadow").style.display = 'none';
		document.getElementById("pricePrv").innerHTML = '';
		document.getElementById("pricePrvShadow").style.left  = '1px';
		document.getElementById("pricePrvShadow").style.top = '1px';
	}
	else if (document.all)
	{
		document.all.pricePrvShadow.style.visibility = 'hidden';
		document.all.pricePrvShadow.style.display = 'none';
		document.all.pricePrv.innerHTML = '';
		document.all.pricePrvShadow.style.left  = '1px';
		document.all.pricePrvShadow.style.top = '1px';
	}
	document.getElementsByTagName('body')[0].style.cursor= 'default';
	priceViewActive = 0;
}

function showMoveAbleOffice(posY)
{
	// set image and display
	if (document.getElementById)
	{
		document.getElementById("officeMoveAbleShadow").style.visibility = 'visible';
		document.getElementById("officeMoveAbleShadow").style.display = 'block';
		document.getElementById("officeMoveAbleShadow").style.top = (posY  + 4) + 'px';
	}
	else if (document.all)
	{
		document.all.officeMoveAbleShadow.style.visibility = 'visible';
		document.all.officeMoveAbleShadow.style.display = 'block';
		document.all.officeMoveAbleShadow.style.top = (posY  + 4)+ 'px';
	}
	moveAbleOfficeActive = 1;
	offset_left = 200;
}

function hideMoveAbleOffice()
{
	// set image and display
	if (document.getElementById)
	{
		document.getElementById("officeMoveAbleShadow").style.visibility = 'hidden';
		document.getElementById("officeMoveAbleShadow").style.display = 'none';
	}
	else if (document.all)
	{
		document.all.officeMoveAbleShadow.style.visibility = 'hidden';
		document.all.officeMoveAbleShadow.style.display = 'none';
	}
	moveAbleOfficeActive = 0;
	offset_left = 0;
}

function checkDifference()
{
	scrollXY = getScrollXY();
	act_positionY = scrollXY[1];

	if (positionY != act_positionY)
	{
		if (moveAbleOfficeBlocked == 0)
		{
			if (positionY > 460)
			{
				showMoveAbleOffice(act_positionY);
			}else{
				if (moveAbleOfficeActive == 1) hideMoveAbleOffice();
			}
		}
		if (priceViewActive == 1)
		{
			hidePriceView();
		}
		positionY = act_positionY;
	}
}

function blockMoveAbleOffice()
{
	hideMoveAbleOffice();
	moveAbleOfficeBlocked = 1;
}

function showRequestPrice(objectNumber, objectPart, date, duration)
{
	if (!xmlDoc) var xmlDoc = new Array();
	if (!documentElement) var documentElement = new Array();	
	documentElement[objectNumber + ":" + objectPart] = false;
	if (document.getElementById("pricearea[" + objectNumber + ((objectPart != '') ? ':' + objectPart : '') + "]")) 
	{		
		documentElement[objectNumber + ":" + objectPart] = document.getElementById("pricearea[" + objectNumber + ((objectPart != '') ? ':' + objectPart : '') + "]");
	} 
	else if ( document.getElementById("pricearea_" + objectNumber + ((objectPart != '') ? '_' + objectPart : '')) )
	{		
		documentElement[objectNumber + ":" + objectPart] = document.getElementById("pricearea_" + objectNumber + ((objectPart != '') ? '_' + objectPart : ''));
	}	
	if (objectNumber && objectPart)
	{
		// object identity given, get price data

		// initialize http request
		if (window.ActiveXObject)
		{
			xmlDoc[objectNumber + ":" + objectPart] = new ActiveXObject("Microsoft.XMLHTTP"); // Mircosoft
			xmlDoc[objectNumber + ":" + objectPart].onreadystatechange = function()
			{
				if (xmlDoc[objectNumber + ":" + objectPart].readyState == 4) 
				{
					if (documentElement[objectNumber + ":" + objectPart])
					{
						priceTable = xmlDoc[objectNumber + ":" + objectPart].responseText;
						if (priceTable.length > 15) documentElement[objectNumber + ":" + objectPart].innerHTML = priceTable;
					}
				}
			}
		}
		else
		{
			xmlDoc[objectNumber + ":" + objectPart] = new XMLHttpRequest(); // Others
			xmlDoc[objectNumber + ":" + objectPart].onload = function()
			{
				if (xmlDoc[objectNumber + ":" + objectPart].readyState == 4) {
					if (documentElement[objectNumber + ":" + objectPart])
					{
						priceTable = xmlDoc[objectNumber + ":" + objectPart].responseText;
						if (priceTable.length > 15) documentElement[objectNumber + ":" + objectPart].innerHTML = priceTable;
					}
				}
			}
		}

		var requestXML = "/xmlRequest/?method=object_prices2&xsl=../xsl/object_prices2.xsl&output=html&params=isolang:" + languageCode + "&object=" + objectNumber + "&part=" + objectPart + "&date=" + date + ((duration) ? "&duration=" + duration: "");

		// local request
		xmlDoc[objectNumber + ":" + objectPart].open("GET", requestXML, true);
		xmlDoc[objectNumber + ":" + objectPart].setRequestHeader( "Content-type", "text/html;charset=UTF-8" );
		xmlDoc[objectNumber + ":" + objectPart].send( null );


  }

}

function getDocument(objectNumber, documentName, isocode, part)
{
	if (!xmlDoc)
		var xmlDoc = new Array();
		
	if (document.getElementById("missingDocument[" + objectNumber + ":" + documentName + ((part != '') ? '_' + part : '') + "]")) 
	{
		documentElement = document.getElementById("missingDocument[" + objectNumber + ":" + documentName + ((part != '') ? '_' + part : '') + "]");
	} 
	else if ( document.getElementById("missingDocument_" + objectNumber + "_" + documentName + ((part != '') ? '_' + part : '')) )
	{
		documentElement = document.getElementById("missingDocument_" + objectNumber + "_" + documentName + ((part != '') ? '_' + part : ''));
	}
		
	if (objectNumber)
	{
		if (window.ActiveXObject)
		{
			xmlDoc[objectNumber + ":" + documentName] = new ActiveXObject("Microsoft.XMLHTTP"); // Mircosoft
			xmlDoc[objectNumber + ":" + documentName].onreadystatechange = function()
			{
				if (xmlDoc[objectNumber + ":" + documentName].readyState == 4) {
					if ( documentElement )
					{
						doc = xmlDoc[objectNumber + ":" + documentName].responseText;
						documentElement.innerHTML = doc;
					}
				}
			}
		}
		else
		{
			xmlDoc[objectNumber + ":" + documentName] = new XMLHttpRequest(); // Others
			xmlDoc[objectNumber + ":" + documentName].onload = function()
			{
				if (xmlDoc[objectNumber + ":" + documentName].readyState == 4) {
					if (documentElement)
					{
						doc = xmlDoc[objectNumber + ":" + documentName].responseText;
						documentElement.innerHTML = doc;
					}
				}
			}
		}
		var requestXML = "/xmlRequest/?xsl=../xsl/object.getDocument.xsl&output=html&method=object&object=" + objectNumber + "&language=" + isocode + "&params=document:" + documentName + ",part:" + part;

		xmlDoc[objectNumber + ":" + documentName].open("GET", requestXML, true);
		xmlDoc[objectNumber + ":" + documentName].setRequestHeader( "Content-type", "text/html;charset=UTF-8" );
		xmlDoc[objectNumber + ":" + documentName].send( null );
  }

}

function changeDocument(objectNumber, documentName, isocode, part)
{
	if (!xmlDoc)
		var xmlDoc = new Array();
		
	if (document.getElementById("missingDocument[" + objectNumber + ":" + documentName + ((part != '') ? '_' + part : '') + "]")) 
	{
		documentElement = document.getElementById("missingDocument[" + objectNumber + ":" + documentName + ((part != '') ? '_' + part : '') + "]");
	} 
	else if ( document.getElementById("missingDocument_" + objectNumber + "_" + documentName + ((part != '') ? '_' + part : '')) )
	{
		documentElement = document.getElementById("missingDocument_" + objectNumber + "_" + documentName + ((part != '') ? '_' + part : ''));
	}		
		
	if (objectNumber)
	{
		if (window.ActiveXObject)
		{
			xmlDoc[objectNumber + ":" + documentName] = new ActiveXObject("Microsoft.XMLHTTP"); // Mircosoft
			xmlDoc[objectNumber + ":" + documentName].onreadystatechange = function()
			{
				if (xmlDoc[objectNumber + ":" + documentName].readyState == 4) {
					if (documentElement)
					{						
						if (part == '')
						{						
							if (document.getElementById(documentName + "_" + actlanguage[documentName])) document.getElementById(documentName + "_" + actlanguage[documentName]).className = 'inactive';
							if (document.getElementById(documentName + "_" + isocode)) document.getElementById(documentName + "_" + isocode).className = 'active';						
							actlanguage[documentName] = isocode;
							
						}else
						{	
							if (!actlanguage[documentName]) actlanguage[documentName] = new Array();
							if (!actlanguage[documentName][part]) actlanguage[documentName][part] = languageCode;							
							if (document.getElementById(documentName + "_" + part + "_" + actlanguage[documentName][part])) document.getElementById(documentName + "_" + part + "_" + actlanguage[documentName][part]).className = 'inactive';
							if (document.getElementById(documentName + "_" + part + "_" + isocode)) document.getElementById(documentName + "_" + part + "_" + isocode).className = 'active';						
							actlanguage[documentName][part] = isocode;
						}
						doc = xmlDoc[objectNumber + ":" + documentName].responseText;
						documentElement.innerHTML = doc;
					}
				}
			}
		}
		else
		{
			xmlDoc[objectNumber + ":" + documentName] = new XMLHttpRequest(); // Others
			xmlDoc[objectNumber + ":" + documentName].onload = function()
			{
				if (xmlDoc[objectNumber + ":" + documentName].readyState == 4) {
					if (documentElement)
					{	
						if (part == '')
						{						
							if (document.getElementById(documentName + "_" + actlanguage[documentName])) document.getElementById(documentName + "_" + actlanguage[documentName]).className = 'inactive';
							if (document.getElementById(documentName + "_" + isocode)) document.getElementById(documentName + "_" + isocode).className = 'active';						
							actlanguage[documentName] = isocode;
							
						}else
						{	
							if (!actlanguage[documentName]) actlanguage[documentName] = new Array();
							if (!actlanguage[documentName][part]) actlanguage[documentName][part] = languageCode;
							if (document.getElementById(documentName + "_" + part + "_" + actlanguage[documentName][part])) document.getElementById(documentName + "_" + part + "_" + actlanguage[documentName][part]).className = 'inactive';
							if (document.getElementById(documentName + "_" + part + "_" + isocode)) document.getElementById(documentName + "_" + part + "_" + isocode).className = 'active';						
							actlanguage[documentName][part] = isocode;
						}	
						doc = xmlDoc[objectNumber + ":" + documentName].responseText;				
						documentElement.innerHTML = doc;						
					}
				}
			}
		}
		var requestXML = "/xmlRequest/?xsl=../xsl/object.getDocument.xsl&output=html&method=object&object=" + objectNumber + "&language=" + isocode + "&params=document:" + documentName + ",part:" + part;

		xmlDoc[objectNumber + ":" + documentName].open("GET", requestXML, true);
		xmlDoc[objectNumber + ":" + documentName].setRequestHeader( "Content-type", "text/html;charset=UTF-8" );
		xmlDoc[objectNumber + ":" + documentName].send( null );
  }

}

function changeDocuments(objectNumber, isocode, part)
{
	if (document.getElementById('loading_costsAdditionalText')) 
	{
		document.getElementById('loading_costsAdditionalText').style.visibility = 'visible';
		document.getElementById('loading_costsAdditionalText').style.display = 'inline';
	}
	if (document.getElementById('loading_documentCompact')) 
	{
		document.getElementById('loading_documentCompact').style.visibility = 'visible';
		document.getElementById('loading_documentCompact').style.display = 'inline';
	}
	if (document.getElementById('loading_documentDetailed')) 
	{
		document.getElementById('loading_documentDetailed').style.visibility = 'visible';
		document.getElementById('loading_documentDetailed').style.display = 'inline';
	}
	if (document.getElementById('loading_documentSights')) 
	{
		document.getElementById('loading_documentSights').style.visibility = 'visible';
		document.getElementById('loading_documentSights').style.display = 'inline';
	}
	var scriptpath = "/xmlProcessing/getTranslatedDocuments.php?object=" + objectNumber + "&languageCode=" + isocode + "&objectPart=" + part;
	var htmlhead = document.getElementsByTagName("head")[0];
	var script_id = "getTranslatedDocuments";

	if(document.getElementById(script_id)) {
	htmlhead.removeChild(document.getElementById(script_id));
	}

	var updatescript = document.createElement("script");
	updatescript.id = script_id;
	updatescript.src = scriptpath;
	htmlhead.appendChild(updatescript);
}

function digits_only(id)
{
	id.value = id.value.replace(/[^0-9\,]/g,"");
}
