var libs = new Array();
var dialogZ = 1;

var addEvent;
if(document.addEventListener){
        // NS
        addEvent = function(element, type, handler){
                element.addEventListener(type, handler, false);
        }
} else if(document.attachEvent){
        // IE
        addEvent = function(element, type, handler) {
                element.attachEvent("on"+ type, handler);
        }
} else {
        addEvent = new Function;
}

var removeEvent;
if(document.removeEventListener){
        // NS
        removeEvent = function(element, type, handler){
                element.removeEventListener(type, handler, false);
        }
} else if(document.detachEvent){
        // IE
        removeEvent = function(element, type, handler) {
                element.detachEvent("on"+ type, handler);
        }
} else {
        removeEvent = new Function;
}

function rei_include(name){
	if(libs[name] == null){
		var head = document.getElementsByTagName('head').item(0);
		var newscr = document.createElement('script');
		newscr.src = name;
		libs[name] = true;
		head.appendChild(newscr);
	}		
}


function startDialogDrag(e){
        var target = e.target || e.srcElement;
        target.parentNode.style.zIndex = ++dialogZ;
        target.style.cursor = "move";

        document.heldDialog = target.parentNode;
        target.parentNode.titleDiv = target;
        addEvent(document,"mousemove", moveDialog);
        addEvent(document,"mouseup", stopDialogDrag);
			
        var dialog = target.parentNode;

        if(dialog.style.top == ""){
                dialog.style.top = dialog.offsetTop+"px"; //100+"px";
        }
        if(dialog.style.left == ""){
                dialog.style.left = dialog.offsetLeft+"px"; //200+"px";
        }

        var oldTopStr =  dialog.style.top;
        var oldLeftStr = dialog.style.left;

        var oldTop = Number(oldTopStr.substring(0,oldTopStr.length-2));
        var oldLeft = Number(oldLeftStr.substring(0,oldLeftStr.length-2));

        dialog.offsetY = e.clientY - oldTop;
        dialog.offsetX = e.clientX - oldLeft;
        changeOpac(80, document.heldDialog.id);
}

function stopDialogDrag(e){
        document.heldDialog.titleDiv.style.cursor = "";
        
        changeOpac(100, document.heldDialog.id);
        removeEvent(document, "mousemove",moveDialog);
        removeEvent(document, "mouseup", stopDialogDrag);
}

function moveDialog(e){
        var dialog = document.heldDialog;
        dialog.style.top =  e.clientY - dialog.offsetY +"px";
        dialog.style.left = e.clientX - dialog.offsetX +"px";
}

function writeNonCacheComponent(url, target_id, params){
	var target_el = $(target_id);
	var objXMLHttp=null;
	if(window.XMLHttpRequest){
		objXMLHttp = new XMLHttpRequest();
	} else if(window.ActiveXObject){
		objXMLHttp = new ActiveXObject('Microsoft.XMLHTTP');
	}
	url = url + '?c=' + new Date().getTime();
	if(params){
		url += '&' + params;
	}
	objXMLHttp.onreadystatechange = function(){
		if(objXMLHttp.readyState==4 || objXMLHttp.readyState=="complete"){
			target_el.replace(objXMLHttp.responseText);
		}
	}
	objXMLHttp.open("GET", url, true);
	objXMLHttp.send(null);
	//document.write(objXMLHttp.responseText);
}
