var messageWindows = new Array();
var y_versatz=334;
var x_versatz=286;

var ie = document.all;
var nn6 = document.getElementById &&! document.all;

var isdrag = false;
var x, y;
var dobj;
var zIndex=10;


function showMessenger(){
	document.getElementById("ys_messenger").style.display="block";
	
}

function disableMessenger(){
	document.getElementById("ys_messenger").style.display="none";
}


function playSound() {
  if (soundManagerLoaded == true) {
  	soundManager.createSound('newMessageSound', 'content/sound/newMessage.mp3');
  	soundManager.play('newMessageSound');
  }
}

function EnableDisableNewMessageSound(){
	if(PlayNewMessageSound==1){
		PlayNewMessageSound=0;
		//document.getElementsByName('img_newmessagesound').src='images/buttons/button_newmessagesound_aus.png'
		var imgs = document.getElementsByName("img_newmessagesound");
		for (var i = 0; i < imgs.length; i++) {
			imgs[i].src = "images/buttons/button_newmessagesound_aus.png";
		}
	} else {
		PlayNewMessageSound=1;
		//document.getElementsByName('img_newmessagesound').src='images/buttons/button_newmessagesound_an.png'
		var imgs = document.getElementsByName("img_newmessagesound");
		for (var i = 0; i < imgs.length; i++) {
			imgs[i].src = "images/buttons/button_newmessagesound_an.png";
		}
	}
	// Update DB
	if (sendReq.readyState == 4 || sendReq.readyState == 0) {
		sendReq.open("POST", 'content/boxes/mysql_messagesound.php', true);
		sendReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		//sendReq.onreadystatechange = handleSendChat;
		var param = 'member_id=' + sender_id;
					param += '&newmessagesound=' + PlayNewMessageSound;
					sendReq.send(param);
	} 
}

function newExcitingAlerts() {   
  	var oldTitle = document.title;
  	var msg = "Neue Nachricht erhalten";
	//if (windowHasFocus==false){
//	if (PlayNewMessageSound == 1) {
		//playSound();
	//}
	//}
  	var timeoutId = setInterval(function(){
	    if (windowHasFocus == false) {
			document.title = document.title == msg ? oldTitle : msg;
		}
		else {
			//alert("x");
			//   window.onmousemove = function() {
			clearInterval(timeoutId);
			document.title = oldTitle;
			//window.onfocus = null;
		//};
		}
	}, 1000);


if (document.all){
         document.onmousemove = function(event){
		 	windowHasFocus = true;
		 	clearInterval(timeoutId);
		 	document.title = oldTitle;
		 	window.onmousemove = null;
		 }
} else {
         window.captureEvents(Event.MOUSEMOVE);
         window.onMouseMove = function(event){
	   	windowHasFocus=true;
	   	clearInterval(timeoutId);
	   	document.title = oldTitle;
		window.onmousemove=null;
	   }
}

		
  }


function checkForEnter(e, inputId){
	//if(!e) e=window.event;
	//key = e.keycode ? e.keycode : e.which;
	if (window.event) keycode = window.event.keyCode;
        else if (e) keycode = e.which;
        else return false;

  	if(keycode==13){
		sendChatText(inputId);
		if(e.preventDefault)
	      e.preventDefault();
	    else
	      e.returnValue=false;


	} else {
		return true;
	}
}


var layer=
  {
   minindex:100,				//leaves the first available layer free (reserved for Desktop)
   count:2,
   index:101,
   lastobj:null,
   
   setToForeground:function(obj)
   {
    if(layer.lastobj!=null)
    {
     if(layer.lastobj!=obj)
     {
      document.getElementById(obj).style.zIndex=layer.index+this.count++;
	  layer.lastobj=document.getElementById(obj);
     }
    }
    else
    {
     layer.lastobj=obj;
	 document.getElementById(obj).style.zIndex=layer.index+this.count++;
    }
   }
  }



function movemouse( e ) {
  if( isdrag ) {
  	var newValX = nn6 ? tx + e.clientX - x : tx + event.clientX - x;
	var newValY = nn6 ? ty + e.clientY - y : ty + event.clientY - y;
  	if(newValX > 0){
	    document.getElementById(dobj).style.left = newValX + "px"; 
	} else {
		 document.getElementById(dobj).style.left = "0px";
		 newValX=0;
	}
  	if (newValY > 0) {
		document.getElementById(dobj).style.top = newValY + "px";
	} else {
		newValY=0;
		document.getElementById(dobj).style.top="0px";
	}
	
	var tempId=dobj.substr(17);
	updatePositions(tempId,newValX+"px",newValY+"px");
	saveMessageWindows();
	//messageWindows[newPosition][0]=id;
	//messageWindows[newPosition][1]=alias;
	//messageWindows[newPosition][2]=x_pos;
	//messageWindows[newPosition][3]=y_pos;
	
    return false;
  }
}

function selectmouse( e ) {
  var fobj       = nn6 ? e.target : event.srcElement;
  var topelement = nn6 ? "HTML" : "BODY";
  if (fobj.tagName != "HTML") {
  
  // 	while (fobj.tagName != topelement && fobj.className != "messenger_move") {
  		//fobj = nn6 ? fobj.parentNode : fobj.parentElement;
  		//zIndex++;
			//setToForeground(dobj);
//	}
	
	
			if (fobj.className == "messenger_move" || fobj.className=="messenger_move_2") {
				isdrag = true;
				
				if(fobj.className=="messenger_move"){
					dobj = fobj.parentNode.parentNode.id;
				} else {
					dobj = fobj.parentNode.parentNode.parentNode.parentNode.id;
				}
				//dobj = fobj.parentNode.id;
				
				//layer.setToForeground(dobj); //SPÄTER REINNEHMEN
				
				tx = parseInt(document.getElementById(dobj).style.left + 0);
				ty = parseInt(document.getElementById(dobj).style.top + 0);
				x = nn6 ? e.clientX : event.clientX;
				y = nn6 ? e.clientY : event.clientY;
				document.onmousemove = movemouse;
				return false;
			}
			
		}
  
}

function closeMessageWindow(inputId, Id) {
	//tinyMCE.execCommand("mceRemoveControl", false, "text_" + inputId);
	var olddiv= document.getElementById(inputId);
	olddiv.style.display = "none";
	document.getElementById("ys_messenger").removeChild(olddiv);
	removeMessageWindows(Id);
	document.getElementById("messenger_friendentry_" + Id).style.color="";
	//document.removeChild(olddiv);
//  var d = document.getElementById('myDiv');
 // var olddiv = document.getElementById(divNum);
  //d.removeChild(olddiv);

  // DESTROY DES DIVS NOCH EINBAUEN
}


function checkEnter(e, inputDiv){ //e is event object passed from function invocation
	var characterCode //literal character code will be stored in this variable
	if(e && e.which){ //if which property of event object is supported (NN4)
		e = e
		characterCode = e.which //character code is contained in NN4's which property
	}else{
		e = event
		characterCode = e.keyCode //character code is contained in IE's keyCode property
	}
	
	if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
		sendChatText(newdiv.id);
	}
	else{
		return false
	}

}




   
  var win=  {
   elements:Array(),
   lastindex:0,
   add:function(inputNewId,posx,posy)
   {
   	if (messageWindows.length < 4) {
		if (!document.getElementById("messenger_message_" + inputNewId)) {
		
			this.elements[this.lastindex] = new windows();
			var ele = this.elements[this.lastindex];
			
			//Werte setzen
			ele.id = inputNewId; //this.lastindex;
			ele.name = "nc_messenger_div_" + inputNewId; //this.lastindex;
			//ele.backgroundColor="orange";
			
			
			//if (posx) {
			//	ele.x = posx;
			//}
			//if (posy) {
			//	ele.y = posy;
			//}
			
			
			this.lastindex++;
		}
		else { // Wenn Fenster schon vorhanden ist, dann focus setzen
			layer.setToForeground("messenger_message_" + inputNewId);
			layer.setToForeground("messenger_container");
		}
	}
   },
   draw:function(inputNewId, chatpartner, startedbyme,id)  {
   	if (messageWindows.length >= 4) {
		alert("Du kannst nur mit 4 Freunden gleichzeitig chatten.");
		return;
	}
	
	if (!document.getElementById("nc_messenger_div_" + inputNewId)) {
	    if(!id){id=this.lastindex-1;}
		if(!inputNewId){inputNewId=0;}
	    var ele=this.elements[id];
	    
	    if ((ele.name)) {
			newdiv = document.createElement("div");
			
			//Insert into Document
			//document.getElementsByTagName("body")[0].appendChild(newdiv);
			document.getElementById("ys_messenger").style.display="block";
			document.getElementById("ys_messenger").appendChild(newdiv);
			
			
			//set Attributes
			newdiv.id = ele.name;
			newdiv.style.position = ele.position;
			//newdiv.style.border = ele.border;
			newdiv.style.width = ele.width;
			newdiv.style.height = ele.height;
			//if (!ele.y) {
			//	newdiv.style.top = 50 * (this.lastindex / 2 + 1) + "px";
			//} else {
				//newdiv.style.top=ele.y;
			//}
			//if (!ele.x) {
			//	newdiv.style.left = 50 * (this.lastindex / 2 + 1) + 100 + "px";
			//} else {
			//	newdiv.style.left=ele.x;
			//}
			//newdiv.style.backgroundColor = '#f9e2ac';
			// onkeydown='checkForEnter(event, \""+ newdiv.id +"\")';

			
			//if (messageWindows.length==1){
			//	newdiv.style.top=newdiv.style.top+y_versatz + "px";		
			//} else if(messageWindows.length==2){
			//	newdiv.style.top=newdiv.style.top+y_versatz*2 + "px";
			//}

		
			var varinnerhtml = "";
			/*varinnerhtml += "<div class='message_main' onclick='layer.setToForeground(\"" + newdiv.id + "\");'>";
			varinnerhtml += "<div class='message_drag' id='drag_" + newdiv.id + "'><div style='margin-left:10px;padding-top:8px;' id='chatpartner_" + newdiv.id + "'><b>" + chatpartner + "</b></div></div>";
			varinnerhtml += "<div class='message_close'><a href='javascript:styledPopupClose(\"" + newdiv.id + "\", \"" + inputNewId + "\");'><img src='images/backgrounds/message_bg_right.png' border='0'></a></div>";
			varinnerhtml += "<div class='message_content'>";
			varinnerhtml += "		<form id='frmmain' name='frmmain' onsubmit='return blockSubmit()'; style='display:inline'>";
			varinnerhtml += "		<table width='100%' border='0'><tr><td>";
			varinnerhtml += "		<a href='javascript:open_member_popup_message(\"" + chatpartner + "\")'><img src='http://www.niteclubs.de/~niteclubspics/members/" + inputNewId + ".jpg' width='68' border='0'></a>";
			varinnerhtml += "		</td><td>";
			varinnerhtml += "		<div id='chat_" + newdiv.id + "' class='message_chat'>";
			varinnerhtml += "		</div>";
			varinnerhtml += "		</td></tr><tr><td>";
			varinnerhtml += "		<img src='http://www.niteclubs.de/~niteclubspics/members/" + sender_id + ".jpg' width='68' border='0'>";
			varinnerhtml += "		</td><td>";
			varinnerhtml += "			<input type='hidden' name='empfaenger_id' id='empfaenger_" + newdiv.id + "' />";
			varinnerhtml += "			<div class='message_tinybox'><div class='tinyMessenger' id='text_" + newdiv.id + "' name='text_" + newdiv.id + "' style='width:405px;height:70px;background-color:#FFFFFF' ></div>";
			varinnerhtml += "		</td></tr><tr><td>";
			varinnerhtml += "		</td><td>";
			varinnerhtml += "			<div class='message_send'><img style='margin-top:5px;border:0px;cursor:pointer;' src='images/senden_2.jpg' name='btn_send_chat' id='btn_send_chat' onclick='javascript:sendChatText(\"" + newdiv.id + "\");' /></div>";
			//if (PlayNewMessageSound == 1) {
			//	varinnerhtml += "			<div class='message_sound'><img style='cursor:pointer' name='img_newmessagesound' src='images/buttons/button_newmessagesound_an.png' border='0' onclick='javascript:EnableDisableNewMessageSound();'></a></div>";
			//} else {
			//	varinnerhtml += "			<div class='message_sound'><img style='cursor:pointer' name='img_newmessagesound' src='images/buttons/button_newmessagesound_aus.png' border='0' onclick='javascript:EnableDisableNewMessageSound();'></a></div>";				
			//}
			
			varinnerhtml += "</td></tr>";
			
			
			varinnerhtml += "<tr><td></td><td>";
			

			
			varinnerhtml += "</td></tr></table>";
			varinnerhtml += "		</form>";
			varinnerhtml += "</div></div>";
			
			*/
			
			varinnerhtml +="<div id='messenger_message_" + inputNewId + "' class='messenger_message'>";
			varinnerhtml +="<div id='messenger_chatpartner'>Chat mit: " + chatpartner + "</div>"
			varinnerhtml +="<div class='messenger_message_close_button'><a href='javascript:closeMessageWindow(\"" + newdiv.id + "\", \"" + inputNewId + "\");'>X</a></div>";
			varinnerhtml +="<input id='empfaenger_nc_messenger_div_" + inputNewId + "' style='display:none;'>";
			varinnerhtml +="<input id='empfaenger_" + newdiv.id + "' style='display:none;'>";
			varinnerhtml +="<input id='timestamp_" + newdiv.id + "' style='display:none;' value='0'>";
			varinnerhtml +="<input id='lastwriter_" + newdiv.id + "' style='display:none;' value='0'>";
			varinnerhtml +="<div style='margin-left:78px;margin-top:22px;'>";
			varinnerhtml +="	<div style='width:250px;height:270px;border:0px #FF0000 solid;overflow-y:auto;' id='chat_nc_messenger_div_" + inputNewId + "'></div>";
			varinnerhtml +="</div>";
			varinnerhtml +="<div style='margin-left:85px;margin-top:9px;width:170px;height:20px;float:left;'>";
			varinnerhtml +="	<input type='text' style='width:170px;height:18px;border:0px #FF0000 solid;background-color:#FFFFFF;' id='text_" + newdiv.id + "' onKeyPress=\"javascript:checkEnter(event,'" + newdiv.id + "')\">";
			varinnerhtml +="</div>";
			varinnerhtml +="<div style='width:60px;margin-top:9px;margin-left:4px;height:20px;float:left;cursor:pointer;border:0px #FF0000 solid' name='btn_send_chat' id='btn_send_chat' onclick='javascript:sendChatText(\"" + newdiv.id + "\");' /></div>";						
			varinnerhtml +="<div style='clear:both;'></div>";
			varinnerhtml +="</div>";
			
			newdiv.innerHTML = varinnerhtml;
			
			
			
			//alert(newdiv.id);
			//alert(inputNewId);
			
			// Empf�nger eintragen
			document.getElementById("empfaenger_nc_messenger_div_" + inputNewId).value = inputNewId;
			//layer.setToForeground(newdiv.id);
			
			
	
			//tinyMCE.execCommand("mceAddControl", false, "text_" + newdiv.id);
			
			if (startedbyme == 1) {
				getLastChatMessages_Sender(inputNewId);
			} else if (startedbyme == 2) {
				getLastChatMessages_Sitechange(inputNewId);
			} else {
				getLastChatMessages_Empfaenger(inputNewId);
			}
			
			//document.getElementById("text_nc_messenger_div_" + inputNewId).focus();
			
			//tinyMCE.execCommand("mceFocus", false, "text_" + newdiv.id);
			
			document.getElementById("text_" + newdiv.id).focus();
			
			//Cookie-Var setzen
			addMessageWindows(inputNewId, chatpartner,newdiv.style.left,newdiv.style.top);

			
		} 
     //newdiv.innerHTML="ID:"+ele.name+"<br>z-index:"+newdiv.style.zIndex+"<br>style.position:"+newdiv.style.position;
     
     
   //  if(ele.backgroundColor!=null){newdiv.style.backgroundColor=ele.backgroundColor;}
 
     //set Events:
     //newdiv.onmousedown=function(){ddrop.startDrag(this);}
    }
   }
  }
  
  var windows = function()
  {
   this.id=0;
   this.name=null;
//   this.x=Math.round(doc.getWidth()/2);
  // this.y=Math.round(doc.getHeight()/2);
   this.position="absolute";
   //this.border="0px solid";
   this.width="0px";
   this.height="0px";
   //this.backgroundColor=null;
   this.display='none';
   
    
  }
    
  
  
  
  
  //Functions:
  
  
  function Init_Messenger()
  {
    document.onmousemove=ddrop.setStart;
  }
  
  
  function getStatus()
  {
   var div=$$("DIV");
   for (i=0;i<div.length;i++)
   {
    $w(div[i].id,"ID: "+div[i].id+"<br>F: "+div[i].onmousedown+"<br>z-Index:"+div[i].style.zIndex,true);
   }
  }
  
  function loadMessageWindows(){
	if(Get_Cookie("ys_messages")!=null ){
		var messageWindowsArray=new Array();
		messageWindowsArray=Get_Cookie("ys_messages").split(";");
		for(var i=0;i<=messageWindowsArray.length-1;i++){
			//alert(messageWindows[i]);
			if (messageWindowsArray[i] != "") {
				window.setTimeout("TimerCreateMessageWindow('" + messageWindowsArray[i] +"')",i * 2000);
			}
		}
	}
}

function TimerCreateMessageWindow(messageWindowsArray){
				var messageWindowsArray_2=new Array();
				messageWindowsArray_2=messageWindowsArray.split(",");
				win.add(messageWindowsArray_2[0],messageWindowsArray_2[2],messageWindowsArray_2[3]);
				win.draw(messageWindowsArray_2[0], messageWindowsArray_2[1], 2);
}

function removeMessageWindows(id){
		for (var i = messageWindows.length-1; i >=0 ; i--) {
			if (messageWindows[i][0] == id) {
				messageWindows.splice(i,1);
			}
		}	
		if (messageWindows.length > 0) {
			saveMessageWindows();
		} else {
			resetMessageWindows();
		}
		
		sortMessageWindows();
		
}

function removeAllMessageWindows(){
	for (var i = messageWindows.length-1; i >=0 ; i--) {
			messageWindows.splice(i,1);
	}	
	resetMessageWindows();
}

function sortMessageWindows(){
	// Verbliebene Fenster ordnen
	var xpos;
	var zindex;
	//var startzindex;
	for (var i = 0; i <= messageWindows.length-1; i++) {
		xpos=0;
		if(i >= 2){
			xpos=x_versatz;
			ypos=(i-2)*y_versatz;
		} else {
			xpos=0;
			ypos=i*y_versatz;
		}
		if(i==0){
			zindex=document.getElementById("nc_messenger_div_" + messageWindows[i][0]).style.zIndex;
		} else {
			zindex=zindex-1;
		}
		document.getElementById("nc_messenger_div_" + messageWindows[i][0]).style.top=ypos + "px";
		document.getElementById("nc_messenger_div_" + messageWindows[i][0]).style.left=xpos + "px";
		document.getElementById("nc_messenger_div_" + messageWindows[i][0]).style.zIndex=zindex;
		
	}
}

function addMessageWindows(id, alias, x_pos, y_pos){
	var found=false;
	for (var i = 0; i <= messageWindows.length - 1; i++) {
		if (messageWindows[i][0] == id) {
			found = true;
		}
	}
	if (found == false) {
			var newPosition=messageWindows.length
			messageWindows[newPosition]=new Array();
			//messageWindows.push(id);
			messageWindows[newPosition][0]=id;
			messageWindows[newPosition][1]=alias;
			messageWindows[newPosition][2]=x_pos;
			messageWindows[newPosition][3]=y_pos;
			saveMessageWindows();
	}
	sortMessageWindows();
		
}

function saveMessageWindows(){
		var cookietext="";
		for (var i = 0; i <= messageWindows.length-1; i++) {
			if(i>0){
				cookietext+=";";
			}
			for (var j = 0; j <= messageWindows[i].length-1; j++) {
				if(j>0){
					cookietext+=",";
				}
				cookietext += messageWindows[i][j];
			}
		}
		Set_Cookie("ys_messages",cookietext,100,"/");
}
function resetMessageWindows(){
	Delete_Cookie("ys_messages","/","");
}

function updatePositions(inputId, pos_x, pos_y){
		for (var i = 0; i <= messageWindows.length - 1; i++) {
			if(messageWindows[i][0]==inputId){
				messageWindows[i][2]=pos_x;
				messageWindows[i][3]=pos_y;
			}
		}	
}

