
/* Vircity Chat function */

var activChatFrame = false;
var ChatFrames = new Array();
var ChatActiv = false;
var curChannel = "";
var curId = 0;
var curNick = "unknown";

var dragObject = false;
var resizeObject = false;
var curObject = null;

var posMouseX = 0;
var posMouseY = 0;
var dragX = 0;
var dragY = 0;

function setCurUser(userId, userNick ) {
	curId = userId;
	curNick = userNick;
}

/* ChatGet Frame neu laden */
function reloadGet (secs) {
	if ( ChatActiv )
		secs = 2;
	else
		secs = 11;
	var waitfor = secs * 1000;
	
	window.setTimeout("reloadGetNow()",waitfor);	
}
function reloadGetNow () {
	document.getElementById('chatGet').src = document.getElementById('chatGet').src;
}
function reloadUser ( frameid ) {
	document.getElementById('chatu_'+ frameid).src = document.getElementById('chatu_'+ frameid).src;
	
}
/* Clock */
function startClock () {
	
	
}

/* Einladung zeigen */
function showInvitation ( usernick, userid, userpic, locheigth, locwidth, channel ) {
	curChannel = channel;
	document.getElementById("chatInvitation_pic").src = userpic;
	document.getElementById("chatInvitation_pic").locheigth = locheigth;
	document.getElementById("chatInvitation_pic").width = locwidth;
	document.getElementById("chatInvitation_pic_link").href = "?d=user&uid="+ userid;
	
	document.getElementById("chatInvitation").style.display = "block";
	
	/* Einladung automatisch ablehnen */
	window.setTimeout("declineInvitation()", 30000);
}
function declineInvitation () {
	
	document.getElementById("chatInvitation").style.display = "none";
	document.getElementById('chatSend').src = document.getElementById('chatSend').src +"&cmd=leave:"+ curChannel; 	
}

/* Neue Mitteilung im Channel */
function newMsgInChan ( frameid, msg, postNotice, userId, userNick ) {
	if ( ChatActiv == true ) {
		writeToChat( frameid, msg, userId, userNick );
		
	} else if ( postNotice == true ) {
		
		document.getElementById("chatNotice").style.display = block;	
			
	}
}
/* Befehlszeile schicken */
function sendToChat ( frameid) {
	if ( document.getElementById('chats_'+ frameid).value.charAt(0) == "." ) {
		document.getElementById('chatSend').src = document.getElementById('chatSend').src +"&cmd="+ document.getElementById('chats_'+ frameid).value;
		document.getElementById('chats_'+frameid).value=""; 
		document.getElementById('chats_'+frameid).focus(); 
	} else {
		document.getElementById('chatSend').src = document.getElementById('chatSend').src +"&cmd=.msg:"+ frameid +":"+ document.getElementById('chats_'+ frameid).value;
	
		var str = document.getElementById('chats_'+ frameid).value;
		document.getElementById('chats_'+frameid).value=""; 
	
		writeToChat(frameid,str, curId, curNick);
		document.getElementById('chats_'+frameid).focus(); 
	}
}

/* MSG in Chat posten */
function writeToChat ( framid, msg, userId, userNick ) {

	var chatSpan = document.createElement("span");
	var chatBreak = document.createElement("br");
	
	if ( userId != false ) {
		var a = document.createElement('a');
		a.href = 'index.php?d=user&uid='+ userId;
		a.target = "_parent";
		var txt = document.createTextNode(userNick);
		a.appendChild( txt ); 
		
		var jetzt = new Date();
		var msg2 = "["+ jetzt.getHours() +":"+ jetzt.getMinutes() +"] ";
		msg = ": "+ msg;
		
	    var chatTText = document.createTextNode(msg2);
	    var chatText = document.createTextNode(msg);
	     
	    chatSpan.className = "";
	    chatSpan.appendChild(chatTText);
	    chatSpan.appendChild(a);
	    chatSpan.appendChild(chatText);
	} else {
		
		var chatText = document.createTextNode(msg);
   		chatSpan.appendChild(chatText);
	}
		
	if ( framid == false ) {	
		
		parent["chatf_"+ activChatFrame].document.getElementById("chatFrame").appendChild(chatSpan);
		parent["chatf_"+ activChatFrame].document.getElementById("chatFrame").appendChild(chatBreak);
		parent["chatf_"+ activChatFrame].document.getElementById("chatEnd").focus();
	} else if ( activChatFrame != framid ) {
		focusChatFrame(framid);
		parent["chatf_"+ framid].document.getElementById("chatFrame").appendChild(chatSpan);
		parent["chatf_"+ framid].document.getElementById("chatFrame").appendChild(chatBreak);
		parent["chatf_"+ framid].document.getElementById("chatEnd").focus();
	} else {
		
		parent["chatf_"+ framid].document.getElementById("chatFrame").appendChild(chatSpan);
		parent["chatf_"+ framid].document.getElementById("chatFrame").appendChild(chatBreak);
		parent["chatf_"+ framid].document.getElementById("chatEnd").focus();
	}
	document.getElementById('chats_'+activChatFrame).focus(); 
}

/* Chatframe aktivieren */
function focusChatFrame ( frameid ) {
	
	if ( activChatFrame == false ) {
		document.getElementById("chat_"+ frameid).style.display = "block";
		activChatFrame = frameid;
	} else {

		document.getElementById("chat_"+ activChatFrame).style.display = "none";
		document.getElementById("tab_"+ activChatFrame).style.width = "10%";
		document.getElementById("chat_"+ frameid).style.display = "block";
		document.getElementById("tab_"+ frameid).style.width = "11%";
		activChatFrame = frameid;
	}
	document.getElementById('chats_'+ activChatFrame).focus(); 
}

/* Chatframe erstellen */
function createChatFrame ( framename, frameid ) {
	
	var newDivChat = document.getElementById("chat__pattern").cloneNode(true);
	var newDivTab = document.getElementById("tab__pattern").cloneNode(true);
	
	/* Neue werte dem Chat zuweisen */
	newDivChat.id = "chat_"+ frameid;
	newDivChat.childNodes[1].action = "javascript: sendToChat('"+ frameid +"');"; //form
	var tbody = newDivChat.childNodes[1].childNodes[1].childNodes[1];				//tbody
	newDivChat.childNodes[1].childNodes[1].childNodes[1].childNodes[0].childNodes[1].childNodes[0].nodeValue = framename; //Chatname
	newDivChat.childNodes[1].childNodes[1].childNodes[1].childNodes[4].childNodes[1].childNodes[0].id = "chats_"+ frameid;	// inputtype
	newDivChat.childNodes[1].childNodes[1].childNodes[1].childNodes[4].childNodes[3].childNodes[0].onclick = "sendToChat('"+ frameid +"');"; //button
	newDivChat.childNodes[1].childNodes[1].childNodes[1].childNodes[2].childNodes[1].childNodes[1].name = "chatf_"+ frameid;  //Iframe Chat name
	newDivChat.childNodes[1].childNodes[1].childNodes[1].childNodes[2].childNodes[3].childNodes[1].id = "chatu_"+ frameid;  //Iframe User name
	newDivChat.childNodes[1].childNodes[1].childNodes[1].childNodes[2].childNodes[1].childNodes[1].src = "index.php?d=chat_show&uid="+ frameid; // Iframe Chat src
	newDivChat.childNodes[1].childNodes[1].childNodes[1].childNodes[2].childNodes[3].childNodes[1].src = "index.php?d=chat_user&uid="+ frameid;  //Iframe user src
		
	/* Neue werte dem tab zuweisen */
	newDivTab.id = "tab_"+ frameid;
	newDivTab.style.display = "block";
	newDivTab.childNodes[1].childNodes[0].nodeValue = framename;
	newDivTab.childNodes[1].href = "javascript: focusChatFrame('"+ frameid +"')";
	 
	/* Objekte hinzufügen */
	document.getElementById("chatFrame").appendChild(newDivChat);
	document.getElementById("chatTabs").appendChild(newDivTab);
		
	focusChatFrame(frameid);
	
}

/* Chatframe verwerfen */
function delChatFrame ( frameid ) {

	document.getElementById("chat_"+ frameid).style.display = "none";
	document.getElementById("tab_"+ frameid).style.display = "none";
	
}

/* Chatframe registrieren */
function registerChatFrame ( frameid ) {
	if ( activChatFrame == false ) {
		activChatFrame = frameid;
	}

	ChatFrame.push ( frameid );		
}

/* Frame bewegen */

function initMouseListener() {
	document.onmousemove = drag;
	document.onmouseup = dragStop;
}
function selectWindow(object) {
	curObject = object;
	
	zindex = zindex + 100;
	curObject.style.zIndex = zindex;
}
function dragStart(id) {

	dragObject = true;
	resizeObject = false;
	curObject= document.getElementById(id);

	curObject.style.filter = "alpha(opacity=70)";
 	curObject.style.opacity = 0.70;

	dragX = posMouseX - curObject.offsetLeft;
	dragY = posMouseY - curObject.offsetTop;
}
function resizeStart ( id ) {
	dragObject = false;
	resizeObject = true;

	curObject= document.getElementById ( id );
	dragX = curObject.offsetLeft;
	dragY = curObject.offsetTop;
}
function dragStop () {
	curObject.style.filter = "alpha(opacity=100)";
 	curObject.style.opacity = 1;

	dragObject = false;
	resizeObject = false;
	curObject = null;
}
function drag ( ereignis ) {
	posMouseX = document.all ? window.event.clientX : ereignis.pageX;
	posMouseY = document.all ? window.event.clientY : ereignis.pageY;

	if ( curObject!= null ) {
		if ( dragObject == true ) {
			curObject.style.left = ( posMouseX - dragX ) + "px";
			curObject.style.top = ( posMouseY - dragY ) + "px";
		} else if ( resizeObject == true ) {
			curObject.style.width = ( posMouseX - dragX ) + "px";
			curObject.style.height = ( posMouseY - dragY ) + "px";
		}
	}
}