//SET_DHTML("titlebar"+CURSOR_MOVE, "frame"+NO_DRAG, "clientarea"+NO_DRAG, "resizehandle"+MAXOFFLEFT+210+MAXOFFTOP+90+CURSOR_NW_RESIZE, "resizebutton"+VERTICAL+HORIZONTAL);
SET_DHTML();
var myinterval;
// Some vars to customize window:
var frame_padding = 0;
var titlebar_h = 19;
var toolbar_h = 20;
var statusbar_h = 10;
var clientarea_margin = 4;

// preload button images to ensure un-delayed image swapping    
var button_down_outset = new Image();
var button_down_inset = new Image();
var button_up_outset = new Image();
var button_up_inset = new Image();
button_down_outset.src = '/include/js/dragdrop/images/button_down_outset.gif';
button_down_inset.src = '/include/js/dragdrop/images/button_down_inset.gif';
button_up_outset.src = '/include/js/dragdrop/images/button_up_outset.gif';
button_up_inset.src = '/include/js/dragdrop/images/button_up_inset.gif';

// to save window height when window is minimized
var last_window_h;


// initWindow() moves elements to their adequate locations
// and builds coherences between these elements by converting outer frame, client area and images for resize functionalities
// to 'childern' of the draggable titlebar 
function initWindow()
{
    dd.elements.titlebar.moveTo(dd.elements.frame.x+2+frame_padding, dd.elements.frame.y+2+frame_padding);
    dd.elements.titlebar.addChild("frame");
    dd.elements.titlebar.setZ(dd.elements.frame.z+1); // ensure that titlebar is floating above frame
    dd.elements.titlebar.resizeTo(dd.elements.frame.w-4-(frame_padding<<1), titlebar_h);

    dd.elements.clientarea.moveTo(dd.elements.frame.x+2+frame_padding+clientarea_margin, dd.elements.titlebar.y+titlebar_h+toolbar_h+clientarea_margin);
    dd.elements.titlebar.addChild("clientarea");
    dd.elements.clientarea.resizeTo(dd.elements.frame.w-4-(frame_padding<<1)-(clientarea_margin<<1), dd.elements.frame.h-titlebar_h-toolbar_h-statusbar_h-4-(frame_padding<<1)-clientarea_margin);

    dd.elements.resizehandle.moveTo(dd.elements.frame.x+dd.elements.frame.w-dd.elements.resizehandle.w-2, dd.elements.frame.y+dd.elements.frame.h-dd.elements.resizehandle.h-2);
    dd.elements.resizebutton.moveTo(dd.elements.titlebar.x+dd.elements.titlebar.w-dd.elements.resizebutton.w-frame_padding-(titlebar_h>>1)+Math.round(dd.elements.resizebutton.w/2), dd.elements.titlebar.y+Math.round(titlebar_h/2)-Math.round(dd.elements.resizebutton.h/2));
    dd.elements.titlebar.addChild("resizebutton");
    dd.elements.titlebar.addChild("resizehandle");
    
    dd.elements.titlebar.show();
}

// my_PickFunc, my_DragFunc and my_DropFunc override their namesakes in wz_dragdrop.js
function my_PickFunc()
{
    if (dd.obj.name == "resizebutton")
    {
        dd.obj.swapImage(dd.elements.clientarea.visible? button_up_inset.src : button_down_inset.src);
    }
}


function my_DragFunc()
{
    if (dd.obj.name == "resizehandle")
    {
    	
        dd.elements.frame.resizeTo(dd.obj.x-dd.elements.frame.x+dd.obj.w+2, dd.obj.y-dd.elements.frame.y+dd.obj.h+2);
        dd.elements.titlebar.resizeTo(dd.obj.x-dd.elements.titlebar.x+dd.obj.w-frame_padding, titlebar_h);
        dd.elements.clientarea.resizeTo(dd.elements.frame.w-4-(frame_padding<<1)-(clientarea_margin<<1), dd.elements.frame.h-titlebar_h-toolbar_h-statusbar_h-4-(frame_padding<<1)-clientarea_margin);
        dd.elements.resizebutton.moveTo(dd.elements.titlebar.x+dd.elements.titlebar.w-dd.elements.resizebutton.w-frame_padding-(titlebar_h>>1)+Math.round(dd.elements.resizebutton.w/2), dd.elements.resizebutton.y);
    }
}


function my_DropFunc()
{
    if (dd.obj.name == "resizebutton")
    {
        if (dd.elements.clientarea.visible)
        {
            dd.obj.swapImage(button_down_outset.src);
            dd.elements.clientarea.hide();
            dd.elements.resizehandle.hide();
            last_window_h = dd.elements.frame.h;
            dd.elements.frame.resizeTo(dd.elements.frame.w, titlebar_h+(frame_padding<<1)+4);
        }
        else
        {
            dd.obj.swapImage(button_up_outset.src);
            dd.elements.clientarea.show();
            dd.elements.resizehandle.show();
            dd.elements.frame.resizeTo(dd.elements.frame.w, last_window_h);
        }
    }
}

function openChat(user_id){
	
	var chatdiv = new getObj('chat');
	
	/*
	
	var frame = document.createElement('div');
	frame.id='frame';


	var titlebar = document.createElement('div');
	titlebar.id='titlebar';
	
	var titlebar_span = document.createElement('span');
	
	var clientarea = document.createElement('div');
	clientarea.id='clientarea';
	
	
	titlebar_span.appendChild(document.createTextNode('title'));
	titlebar.appendChild(titlebar_span);
	
	
	chatdiv.obj.appendChild(frame);
	chatdiv.obj.appendChild(titlebar);
	chatdiv.obj.appendChild(clientarea);
	clientarea.appendChild(document.createTextNode('test'));
	*/
	chatdiv.obj.innerHTML = '<div id="frame"></div><div id="titlebar"><span>Chat with '+user_id+ '</span></div><div id="clientarea"><table border="0" width="100%"><tr><td colspan="2"><div name="history" class="chat_history" id="chat_history"></div></td></tr><tr><td width="*"><textarea name="message" class="chat_message" id="chat_message" onkeydown="InputKeyWatch(this,event,\'' +user_id +'\');"></textarea></td><td width="60"><input type="button" name="chat_send" value="Send" class="chat_send" onclick="javascript:send_chat_msg(\'' +user_id +'\');" /></td></tr></table></div><img name="resizehandle" src="/include/js/dragdrop/images/winresize.gif" height="10" width="10" alt="" style="visibility:hidden;"><img name="resizebutton" src="/include/js/dragdrop/images/button_up_outset.gif" width="16" height="14" alt="" style="visibility:hidden;">';
	
	ADD_DHTML("titlebar"+CURSOR_MOVE);
	ADD_DHTML("frame"+NO_DRAG);
	ADD_DHTML("clientarea"+NO_DRAG);
	ADD_DHTML("resizehandle"+MAXOFFLEFT+210+MAXOFFTOP+90+CURSOR_NW_RESIZE);
	ADD_DHTML("resizebutton"+VERTICAL+HORIZONTAL);
	
	window.clearInterval(myinterval);
	myinterval = window.setInterval('check_chat_msg(\''+user_id+'\')',2000);
	initWindow();
}

function check_chat_msg(to_id){
	Http.get({
		url: "/include/php/XmlHttpRequest/check_chat_msg.php?to_id="+to_id,
		callback: update_chat,
		cache: Http.Cache.GetNoCache
	}, [to_id]);
}

function send_chat_msg(to_id){
	var msg = new getObj('chat_message');
	var chat_msg = msg.obj.value;
	
	Http.get({
		url: "/include/php/XmlHttpRequest/send_chat_msg.php?to_id="+to_id+"&msg="+chat_msg,
		callback: update_chat_send,
		cache: Http.Cache.GetNoCache
	}, [to_id]);
	msg.obj.value='';

}

function update_chat(result, to_id){
	var history = new getObj('chat_history');
	
	history.obj.innerHTML = result.responseText;
	history.obj.scrollTop = history.obj.scrollHeight;
}

function update_chat_send(result, to_id){
	
}

function InputKeyWatch(obj,evt, user_id){
  var e= (window.event)? window.event: evt;
  if(e.ctrlKey && e.keyCode==13){
    var msg = new getObj('chat_message');
    msg.obj.value+="\n";
    e.returnValue=false;
  }
  else{
    if(e.keyCode==13){
      e.returnValue=false;
      send_chat_msg(user_id);
    }
  }
}


/*
<div id="frame"></div>
<div id="titlebar"><span>Chat with </span></div>
<div id="clientarea">
<table border="0" width="100%" height="100%">
<tr>
	<td colspan="2" height="75%"><textarea name="history" class="chat_history" disabled="disabled"></textarea></td>
</tr>
<tr>
	<td width="*"><textarea name="message" class="chat_message"></textarea></td>
	<td width="60"><input type="submit" name="chat_send" value="Send" class="chat_send" /></td>
</tr>
</table>
</div>
<img name="resizehandle" src="/include/js/dragdrop/images/winresize.gif" height="10" width="10" alt="" style="visibility:hidden;">
<img name="resizebutton" src="/include/js/dragdrop/images/button_up_outset.gif" width="16" height="14" alt="" style="visibility:hidden;">
*/
