//-----------------------------showHelp--------------------------------------
var helpDiv;
function showHelp(help){
	if(helpDiv==null){
		helpDiv=document.createElement('div');
		helpDiv.className="helpDiv";
		var spaceWidth=10,spaceHeight=22;
		var width=894,height=525,ratio=1;
		if(clientWidth()-spaceWidth<width){
			ratio=(clientWidth()-spaceWidth)/width;
			width=clientWidth()-spaceWidth;
			height=height*ratio;
		}
		if(clientHeight()-spaceHeight<height){
			ratio=(clientHeight()-spaceHeight)/height;
			height=clientHeight()-spaceHeight;
			width=width*ratio;
		}
		helpDiv.id="helpDiv";
		helpDiv.style.left=((clientWidth()-width-spaceWidth)/2)+"px";
		helpDiv.style.top=((clientHeight()-height-spaceHeight)/2)+"px";
		helpDiv.style.width=(width+spaceWidth)+"px";
		helpDiv.style.height=(height+spaceHeight)+"px";
		var s="<div class=\"bar\" style=\"width:100px;\" onmousedown=\"dragStart(event, 'helpDiv')\">Help</div>";
		s+="<img onclick=\"closeHelp()\" style=\"position:absolute;top:0px;left:"+(width+spaceWidth-13)+"px;cursor:pointer;\" src=\"../images/close.gif\" id=\"imageHelp\">";
		s+="<div style=\"padding-left:5px\"><object id=\"objectHelp\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" ";
		s+="codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\" ";
		s+="width=\""+width+"\" height=\""+height+"\" id=\"helpfiles/"+help+".swf\" align=\"\"> ";
		s+="<param name=movie value=\"helpfiles/"+help+".swf\"><param name=quality value=high><param name=bgcolor value=#ffffff><param name=\"SCALE\" value=\"exactfit\">";
		s+="<embed id=\"embedHelp\" src=\"helpfiles/"+help+".swf\" quality=high bgcolor=#37e width=\""+width+"\" height=\""+height+"\" name=\"helpfiles/"+help+".swf\" align=\"\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" scale=\"exactfit\"></embed></object></div>";
		helpDiv.innerHTML=s;
	}
	document.getElementsByTagName("body")[0].appendChild(helpDiv);
	if(helpDiv.embed==null){
		helpDiv.image=id('imageHelp');
		if(id('embedHelp')!=null){
			helpDiv.embed=id('embedHelp');
		}else{
			helpDiv.embed=id('objectHelp');
		}
	}
}

function resizeHelp(){
	if(helpDiv==null)return;
	var spaceWidth=10,spaceHeight=22;
	var width=894,height=525,ratio=1;
	if(clientWidth()-spaceWidth<width){
		ratio=(clientWidth()-spaceWidth)/width;
		width=clientWidth()-spaceWidth;
		height=height*ratio;
	}
	if(clientHeight()-spaceHeight<height){
		ratio=(clientHeight()-spaceHeight)/height;
		height=clientHeight()-spaceHeight;
		width=width*ratio;
	}
	helpDiv.style.left=((clientWidth()-width-spaceWidth)/2)+"px";
	helpDiv.style.top=((clientHeight()-height-spaceHeight)/2)+"px";
	helpDiv.style.width=(width+spaceWidth)+"px";
	helpDiv.style.height=(height+spaceHeight)+"px";
	helpDiv.image.style.left=(width+spaceWidth-13)+"px";
	helpDiv.embed.width=width;
	helpDiv.embed.height=height;
}

function closeHelp(){
	helpDiv.embed.StopPlay();
	document.getElementsByTagName("body")[0].removeChild(helpDiv);
}
function getFlashMovieObject(movieName){
	if(window.document[movieName]){
		return window.document[movieName];
	}
	if(navigator.appName.indexOf("Microsoft Internet")==-1){
		if(document.embeds && document.embeds[movieName])return document.embeds[movieName]; 
	}else{
		return document.getElementById(movieName);
	}
}
//------------------------------XML Prepare------------------------------------
function prepareText(_text){
	if(_text==null)return "";
	var _dest="";
	for(var a=0;a<_text.length;a++){
		if(_text.substring(a,a+1)==">")_dest+="&gt;";
		else if(_text.substring(a,a+1)=="<")_dest+="&lt;";
		else if(_text.substring(a,a+1)=="\\")_dest+="&quot;";
		else if(_text.substring(a,a+1)=="&")_dest+="&amp;";
//		else if(_text.substring(a,a+1)=="'")_dest+="&apos;";
		else _dest+=_text.substring(a,a+1);
	}
	return _dest;
}
function cleanText(text){
	var dest="";
	for(a=0;a<text.length;a++){
		if(text.substring(a,a+4)=="&gt;"){dest+=">";a+=3;}
		else if(text.substring(a,a+4)=="&lt;"){dest+="<";a+=3;}
		else if(text.substring(a,a+6)=="&quot;"){dest+="\\";a+=5;}
		else if(text.substring(a,a+5)=="&amp;"){dest+="&";a+=4;}
//		else if(text.substring(a,a+6)=="&apos;"){dest+="'";a+=5;}
		else dest+=text.substring(a,a+1);
	}
	return dest;
}


//------------------------------------EMAIL-Functions---------------------------
var mailDivIDCount=0;

function readMail(email){
	if(alias==null){
		alert("Please log in for sending a mail to this user.");return;
	}
	var mailDiv=document.createElement('div'),html;
	mailDivIDCount++;
	html="<image style=\"position:absolute;top:0px;left:422px;cursor:pointer;z-index:5\" src=\"../images/close.gif\" id=\"closeMail"+mailDivIDCount+"\">";
	html+="<div class=\"bar\" style=\"position:absolute;width:100px;z-index:5\" onmousedown=\"dragStart(event, 'mailDiv"+mailDivIDCount+"')\">Read Message</div>";
	html+="<div style=\"position:absolute;left:0px;top:0px;width:100%;height:250px;z-index:0;opacity:0.5;filter:alpha(opacity=50);background-color: #fbffb2;\"></div>";
	html+="<div style=\"position:absolute;left:0px;top:15px;width:100%;z-index:1;padding: 2px 1em 2px 1em;\">";
	html+="<table style=\"width:400px;\"><tr><td>From:<br><input id=\"mailFrom"+mailDivIDCount+"\" type=\"text\" style=\"width:200px;\" readonly><br>Subject<br><input id=\"mailSubject"+mailDivIDCount+"\" type=\"text\" style=\"width:200px;\" readonly><br>";
	html+="Received "+email.time+"<br>"
	html+="<div id=\"mailContent"+mailDivIDCount+"\" class=\"textKasten\" style=\"width:200px;height:121px\"></div>";
	html+="<input id=\"mailButton"+mailDivIDCount+"\" type=\"button\" value=\"Reply\"></td><td><img id=\"mailImage"+mailDivIDCount+"\" src=\"\"></td></tr></table>";
	mailDiv.id="mailDiv"+mailDivIDCount;
	mailDiv.innerHTML=html;
	mailDiv.style.position="absolute";
	mailDiv.style.left=((clientWidth()-435)/2)+"px";
	mailDiv.style.top=((clientHeight()-250)/2)+"px";
	mailDiv.style.width="435px";
	mailDiv.style.height="250px";
	mailDiv.style.zIndex=1000;
	mailDiv.style.border="1px solid #000000";
	document.getElementsByTagName("body")[0].appendChild(mailDiv);
	id("mailImage"+mailDivIDCount).src="myFoto.php?id="+encodeURI(email.fromAlias);
	id("mailFrom"+mailDivIDCount).value=email.fromAlias;
	id("mailSubject"+mailDivIDCount).value=email.subject;
	id("mailContent"+mailDivIDCount).innerHTML=prepareText(email.message);
	id("mailButton"+mailDivIDCount).email=email;
	id("mailButton"+mailDivIDCount).mailDiv=mailDiv;
	id("mailButton"+mailDivIDCount).mailDivIDCount=mailDivIDCount;
	id("closeMail"+mailDivIDCount).mailDiv=mailDiv;
	id("closeMail"+mailDivIDCount).onclick=function(){
		document.getElementsByTagName("body")[0].removeChild(this.mailDiv);
	};
	id("mailButton"+mailDivIDCount).onclick=function(){
		document.getElementsByTagName("body")[0].removeChild(this.mailDiv);
		sendMail(this.email.fromAlias,this.email.stayid,this.email.voyageid,this.email.subject);
	};
}




function sendMail(destAlias,stayid,voyageid,staydescription){
	if(alias==null){
		alert("Please log in for sending a mail to this user.");return;
	}else if(alias==destAlias){
		alert("You cannot send a mail to yourself.");return;		
	}
	var mailDiv=document.createElement('div'),html;
	mailDivIDCount++;
	html="<image style=\"position:absolute;top:0px;left:422px;cursor:pointer;z-index:5\" src=\"../images/close.gif\" id=\"closeMail"+mailDivIDCount+"\">";
	html+="<div class=\"bar\" style=\"position:absolute;width:100px;z-index:5\" onmousedown=\"dragStart(event, 'mailDiv"+mailDivIDCount+"')\">Send Message</div>";
	html+="<div style=\"position:absolute;left:0px;top:0px;width:100%;height:250px;z-index:0;opacity:0.5;filter:alpha(opacity=50);background-color: #fbffb2;\"></div>";
	html+="<div style=\"position:absolute;left:0px;top:15px;width:100%;z-index:1;padding: 2px 1em 2px 1em;\">";
	html+="<div style=\"overflow:auto\"><table style=\"width:400px;\"><tr><td>To:<br><input id=\"mailTo"+mailDivIDCount+"\" type=\"text\" style=\"width:200px;\"><br>Subject<br><input id=\"mailSubject"+mailDivIDCount+"\" type=\"text\" style=\"width:200px;\"><br>";
	html+="<textarea id=\"mailContent"+mailDivIDCount+"\" style=\"width:200px;height:132px\"></textarea><br>";
	html+="<input id=\"mailButton"+mailDivIDCount+"\" type=\"button\" value=\"Send Mail\"></td><td><img id=\"mailImage"+mailDivIDCount+"\" src=\"\"></td></tr></table></div>";
	mailDiv.id="mailDiv"+mailDivIDCount;
	mailDiv.innerHTML=html;
	mailDiv.style.position="absolute";
	mailDiv.style.left=((clientWidth()-435)/2)+"px";
	mailDiv.style.top=((clientHeight()-250)/2)+"px";
	mailDiv.style.width="435px";
	mailDiv.style.height="250px";
	mailDiv.style.zIndex=1000;
	mailDiv.style.border="1px solid #000000";
	document.getElementsByTagName("body")[0].appendChild(mailDiv);
	id("mailImage"+mailDivIDCount).src="myFoto.php?id="+encodeURI(destAlias);
	id("mailTo"+mailDivIDCount).value=destAlias;
	id("mailSubject"+mailDivIDCount).value="RE: "+staydescription;
	id("mailButton"+mailDivIDCount).stayid=stayid;
	id("mailButton"+mailDivIDCount).voyageid=voyageid;
	id("mailButton"+mailDivIDCount).mailDiv=mailDiv;
	id("mailButton"+mailDivIDCount).mailDivIDCount=mailDivIDCount;
	id("closeMail"+mailDivIDCount).mailDiv=mailDiv;
	id("closeMail"+mailDivIDCount).onclick=function(){
		document.getElementsByTagName("body")[0].removeChild(this.mailDiv);
	};
	id("mailButton"+mailDivIDCount).onclick=function(){
		var post="toAlias="+encodeURI(id("mailTo"+this.mailDivIDCount).value)+"&subject="+encodeURI(id("mailSubject"+this.mailDivIDCount).value)+"&stayid="+this.stayid+"&voyageid="+this.voyageid+"&message="+encodeURI(id("mailContent"+this.mailDivIDCount).value)
		ajaxXML("sendMessage.php",post,sendMailReply,true);
		if(sendMailOK){
			document.getElementsByTagName("body")[0].removeChild(mailDiv);
		}
	};
}
var sendMailOK;
function sendMailReply(xml){
	var errors=xml.getElementsByTagName('error');
	if(errors.length>0){
		sendMailOK=false;
		alert(errors[0].getElementsByTagName('description')[0].firstChild.data);
	}else{
		sendMailOK=true;
		alert(xml.getElementsByTagName('ok')[0].firstChild.data);
		
	}
}

//-----------------------------------andere------------------------------------
var alias=null,sex=null,loggedIn=false;

function getSessionData(synchronous){
	ajaxXML("getSession.php",null,fillSessionData,synchronous);
}
function fillSessionData(xml){
	alias=getElement(xml,'alias');
	sex=getElement(xml,'sex');
	email=getElement(xml,'email');
	if((alias!="")&&(alias!=null))loggedIn=true;
}

function id(s){
	return document.getElementById(s);
}

function randomColor(bright){
	if(bright==null)bright=0;
	var codes=new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
	var color="#";
	for (i=0;i<6;i++){
		color+=codes[bright+Math.round(Math.random()*(15-bright))]
	}
	return color;
}

function setError(field,text){
	var a=document.getElementById(field);
	if(text!=null){
		a.style.color='#ff0000';
		a.title=text;
	}else{
		a.style.color='#000000';
		a.title=null;
	}
}
function filterKeys(e){
	var keynum;
	if(window.event){
		keynum = e.keyCode;
	}else if(e.which){
		keynum = e.which;
	}
	keynum=String.fromCharCode(keynum);
	keynum=keynum.charCodeAt(0);
	if(((keynum>32)&&(keynum<48)&&(keynum!=45)&&(keynum!=46))||((keynum>57)&&(keynum<64))||((keynum>90)&&(keynum<97)&&(keynum!=95))||((keynum>122)&&(keynum<128))){
		return false;
	}
	return true;
}
function onlyNumbers(e){
	var keynum;
	if(window.event){
		keynum = e.keyCode;
	}else if(e.which){
		keynum = e.which;
	}
	keynum=String.fromCharCode(keynum);
	keynum=keynum.charCodeAt(0);
	if(((keynum<48)||(keynum>57))&&(keynum!=0)&&(keynum!=8)){
		return false;
	}
	return true;
}
function hitEnter(e){
	var keynum;
	if(window.event){
		keynum = e.keyCode;
	}else if(e.which){
		keynum = e.which;
	}
	return keynum==13;	
}
//-----------------------------------DATUMS-Funktionen--------------------------------------
function formatDate(d){
	if(d==null)d=new Date();
	tag=d.getDate();
	monat=d.getMonth()+1;
	jahr=d.getYear();
	if(jahr<200)jahr+=1900;
	f=jahr+"-";
	if(monat<10)f+="0"+monat;else f+=monat;
	f+="-";
	if(tag<10)f+="0"+tag;else f+=tag;
	return f;
}
  
function parseDate(d){
	return new Date(d.substring(0,4),d.substring(5,7)-1,d.substring(8,10)).getTime();
}

//----------------------------- AJAX -------------------------------------------------------
function ajaxXML(url,vars,callbackFunction,synchronous){
	if (window.XMLHttpRequest) {
		var request = new XMLHttpRequest();
	}else{
		var request = new ActiveXObject("MSXML2.XMLHTTP.3.0");
	}
	if(synchronous==null)synchronous=false;
	request.open("POST", url,!synchronous);
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
	if(!synchronous){
		request.onreadystatechange = function(){
			if (request.readyState == 4 && request.status == 200) {
//				alert((request.responseText));
				if(request.responseXML){
					callbackFunction(request.responseXML.documentElement);
				}
			}
		}
	}
	request.send(vars);
	if(synchronous){
//		alert((request.responseText));
		callbackFunction(request.responseXML.documentElement);
	}
}

function getElement(xml,s){
	if(xml.getElementsByTagName(s)[0]){
		if(xml.getElementsByTagName(s)[0].firstChild)return xml.getElementsByTagName(s)[0].firstChild.data;
		else return "";
	}
	else return null;
}

function ajax(url, vars, callbackFunction){
	if (window.XMLHttpRequest) {
		var request = new XMLHttpRequest();
	}else{
		var request = new ActiveXObject("MSXML2.XMLHTTP.3.0");
	}
	request.open("POST", url, true);
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
	request.onreadystatechange = function(){
		if (request.readyState == 4 && request.status == 200) {
			if (request.responseText){
				callbackFunction(request.responseText);
			}
		}
	}
	request.send(vars);
}

function getPost(form){
	var poststr="";
	var pamcount=0;
	for(var a=0;a<form.elements.length;a++){
//			alert(form.elements[a].type);
		if((form.elements[a].type=="text")||(form.elements[a].type=="password")||(form.elements[a].type=="hidden")||(form.elements[a].type=="select")||(form.elements[a].type=="textarea")){
			if(pamcount>0)poststr+="&";
			pamcount++;
			poststr+=form.elements[a].name+"="+encodeURI(form.elements[a].value);
		}else if((form.elements[a].type=="radio")||(form.elements[a].type=="checkbox")){
			if(form.elements[a].checked){
				if(pamcount>0)poststr+="&";
				pamcount++;
				poststr+=form.elements[a].name+"="+encodeURI(form.elements[a].value);
			}
		}
	}
	return poststr;
}
//-------------------------------- displayElements ----------------------------
function display(r,b){
	r=document.getElementById(r);
	if(navigator.userAgent.indexOf("Firefox")!=-1){
		r.style.display= b ? '' : 'none';
	}else{
		r.style.display= b ? 'block' : 'none';
	}
}
  
function displayed(r){
	r=document.getElementById(r);
	if(navigator.userAgent.indexOf("Firefox")!=-1){
		if(r.style.display=='') return true;
		if(r.style.display=='none') return false;
	}else{
		if((r.style.display=='block')||(r.style.display=='')) return true;
		if(r.style.display=='none') return false;
	}
}

//------------------- getting windowDimensions and scrollPos -------------------

function getTopPos(inputObj){
	var returnValue = inputObj.offsetTop + inputObj.offsetHeight;
	while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetTop;
	return returnValue;
}

function getLeftPos(inputObj){
	var returnValue = inputObj.offsetLeft;
	while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft;
	return returnValue;
}

function clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}


//------------------------------------------ XMLHTTPREQUEST ----------------------------------


function createXMLHttpRequest() {
    if(window.XMLHttpRequest){
      try{ 
        xmlHttpRequest = new XMLHttpRequest();
      }catch(e){return null;}
    }else if(window.ActiveXObject){
      try{
        xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
      }catch(e){
        try {
          xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(e){return null;}
      }
    }else return null;
    return xmlHttpRequest;
}



//-------------------------------------------- DRAGGING ------------------------------------
function Browser() {

  var ua, s, i;

  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

var browser = new Browser();

// Global object to hold drag information.

var dragObj = new Object();
dragObj.zIndex = 0;

function dragStart(event, id) {

  var el;
  var x, y;

  // If an element id was given, find it. Otherwise use the element being
  // clicked on.

  if (id)
    dragObj.elNode = document.getElementById(id);
  else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;

    // If this is a text node, use its parent element.

    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Save starting positions of cursor and element.

  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;

  // Update element's z-index.

  dragObj.elNode.style.zIndex = ++dragObj.zIndex;

  // Capture mousemove and mouseup events on the page.

  if (browser.isIE) {
    document.attachEvent("onmousemove", dragGo);
    document.attachEvent("onmouseup",   dragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }
}

function dragGo(event) {

  var x, y;

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Move drag element by the same amount the cursor has moved.

  dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
  dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";

  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}

function dragStop(event) {

  // Stop capturing mousemove and mouseup events.

  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",   dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,   true);
    document.removeEventListener("mouseup",   dragStop, true);
  }
}
