
var moveNode = new Object();

function npLayer(content,id,name,cssClass,width,height,top,left,path,tgt,texte,fromPoint){

	this.content = (content != null && content != "")? content : "";
	this.id = (id != null && id != "")? id : "preview";
	this.name = (name != null && name != "")? name : "pr&eacute;visualisation";
	this.cssClass = (cssClass != null && cssClass != "")? cssClass : "";
	this.width = (width != null && width != "")? width+"px" : "400px";
	this.height = (height != null && height != "")? height+"px" : "150px";
	this.topPos = (top != null && top != "")? top : "100px";
	this.leftPos = (left != null && left != "")? left : "100px";
	this.path = path;
	this.tgt = tgt;
	this.texte = (texte != null)? texte : "upload";
	this.fromPoint = (fromPoint != null && fromPoint != "")? fromPoint : "";

}

npLayer.prototype.buildBar = function(){

	cTablebar = document.createElement("TABLE");
	setTable(cTablebar);
	cTablebar.style.width = "100%";
	mytablebarbody = document.createElement("TBODY");
	barrow = document.createElement("TR");
	barCell=document.createElement("TD");
	cImg = document.createElement("IMG");
	cImg.src = this.fromPoint+"shared/img/clear.gif";
	cImg.className = this.cssClass +"barleft";
	barCell.appendChild(cImg);
	barrow.appendChild(barCell);
	
	barCell=document.createElement("TD");
	barCell.setAttribute("noWrap","yes");
	barCell.className = this.cssClass+"barbg";
	barCell.id = "title"+this.id;
	emptyTxt = document.createTextNode(this.texte);
	barCell.appendChild(emptyTxt);
	barrow.appendChild(barCell);
	
	barCell=document.createElement("TD");
	barCell.className = this.cssClass+"barrightbg";
	cImg = document.createElement("IMG");
	cImg.src = this.fromPoint+"shared/img/clear.gif";
	cImg.className = this.cssClass+"close0";
	
	cImg.name = this.name;
	if(ie){
		cImg.attachEvent("onmouseover",bubcloseon);
		cImg.attachEvent("onmouseout",bubcloseoff);
		cImg.attachEvent("onclick",closePreview);
		}
	else
		{
		cImg.addEventListener("mouseover",bubcloseon,true);
		cImg.addEventListener("mouseout",bubcloseoff,true);
		cImg.addEventListener("click",closePreview,true);
		}	
	barCell.appendChild(cImg);
	barrow.appendChild(barCell);
	
	mytablebarbody.appendChild(barrow);
	cTablebar.appendChild(mytablebarbody);
	if(ie) cTablebar.attachEvent("onmousedown",setDrag);
	else cTablebar.addEventListener("onmousedown",setDrag,true)
	return cTablebar;
}

npLayer.prototype.buildSide = function(cssClass){
	cCell=document.createElement("TD");
	if(ie) cCell.attachEvent("onmousedown",setDrag);
	else cCell.addEventListener("onmousedown",setDrag,true);
	cCell.className = this.cssClass + cssClass;
	return cCell;
}

npLayer.prototype.buildCorner = function(cssClass){

	cCell = document.createElement("TD");
	if(ie) cCell.attachEvent("onmousedown",setDrag);
	else cCell.addEventListener("onmousedown",setDrag,true);
	cImg = document.createElement("IMG");
	cImg.src = this.fromPoint+"shared/img/clear.gif";
	cImg.className = this.cssClass + cssClass;
	cCell.appendChild(cImg);
	return cCell;
}

npLayer.prototype.buildWin = function(){ 

	cDIV = document.createElement("DIV");
	cDIV.id = this.id;
	cDIV.style.width = this.width;
	cDIV.style.height = this.height;
	cDIV.style.position = "absolute";
	cDIV.style.top = this.topPos;
	cDIV.style.left = this.leftPos;
	cDIV.className = this.cssClass;
	cDIV.style.zIndex = ++g_zindex;
	
	cTable = document.createElement("TABLE");
	setTable(cTable);
	cTable.style.width = this.width;
	mytablebody = document.createElement("TBODY");
	
	firstRow = document.createElement("TR");	
	firstRow.appendChild(this.buildCorner("tl"));
	cBar = document.createElement("TD");
	cBar.setAttribute("noWrap","yes");
	cBar.style.width = "100%";
	cBar.appendChild(this.buildBar());
	firstRow.appendChild(cBar);	
	firstRow.appendChild(this.buildCorner("tr"));
	mytablebody.appendChild(firstRow);
	
	contentRow = document.createElement("TR");
	contentRow.appendChild(this.buildSide("left"));
	contentCell=document.createElement("TD");
	
	contentCell.className = this.cssClass + "inside";
	if(ie) contentCell.attachEvent("onmousedown",setDrag);
	else contentCell.addEventListener("onmousedown",setDrag,true);
	contentDiv = document.createElement("DIV");
	contentDiv.id = this.tgt;
	contentDiv.style.overflow = "auto";
	contentDiv.style.width = this.width;
	contentDiv.style.height = this.height;
	contentDiv.innerHTML = this.content;
	contentCell.appendChild(contentDiv);
	contentRow.appendChild(contentCell);
	contentRow.appendChild(this.buildSide("right"));
	mytablebody.appendChild(contentRow);
	
	bottomRow = document.createElement("TR");
	bottomRow.appendChild(this.buildCorner("bl"));
	bottomRow.appendChild(this.buildSide("bottom"));
	bottomRow.appendChild(this.buildCorner("br"));
	mytablebody.appendChild(bottomRow);
	cTable.appendChild(mytablebody);
	cDIV.appendChild(cTable);
	return cDIV;
}

function bubcloseon(event)	{	
	var event = (ie)? window.event.srcElement : event.target;
	swapCN1(event,1);
	bub(event,'closewindowbub',null,15,15);
}
	
function bubcloseoff(event)	{	
	var event = (ie)? window.event.srcElement : event.target;
	swapCN1(event,0); 
	bub();
} 

function setDrag(event)	{	
	moveNode = (ie)? window.event.srcElement : event.target;
	while(moveNode.tagName != "DIV") moveNode = moveNode.parentNode;
	moveNode.style.cursor = "move";
	moveNode.style.zIndex = ++g_zindex;
	catchCoor(event,moveNode);
  if(ie){ 
    window.event.cancelBubble = true;
    window.event.returnValue = false;
	  }
	else event.preventDefault();
	}

function closePreview(event)	{
	closeNode = (ie)? window.event.srcElement : event.target;
	while(closeNode.tagName != "DIV") closeNode = closeNode.parentNode;
	document.body.removeChild(closeNode); 
	g_prw = false; 
	bub();
	}
	
function npLayerOver(event)	{
	event = (ie)? window.event.srcElement : event.target;
	swapCN1(event,1);
}

function npLayerOut(event)	{
	event = (ie)? window.event.srcElement : event.target;
	swapCN1(event,0);
}

function catchCoor(event,moveNode){
	var event = (ie)? window.event.srcElement : event;
	moveNode.startX = (ie)? window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft : event.clientX + window.scrollX;
  moveNode.startY = (ie)? window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop : event.clientY + window.scrollY;

  moveNode.startLeft = (moveNode.style.left != null)? parseInt(moveNode.style.left, 10) : 0;
  moveNode.startTop = (moveNode.style.top != null)? parseInt(moveNode.style.top, 10) : 0;

  if(isNaN(moveNode.startLeft)) moveNode.startLeft = 0;
  if(isNaN(moveNode.startTop)) moveNode.startTop  = 0;

  moveNode.style.zIndex = ++g_zindex;
  
  if (ie) {
    document.attachEvent("onmousemove", dragStart);
    document.attachEvent("onmouseup", dragEnd);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
	  }
	else 
		{
    document.addEventListener("mousemove", dragStart,   true);
    document.addEventListener("mouseup", dragEnd, true);
    event.preventDefault();
  	}
}

function dragStart(event) {
	var x = (ie) ? window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft : event.clientX + window.scrollX;
  var y = (ie) ? window.event.clientY + document.documentElement.scrollTop  + document.body.scrollTop : event.clientY + window.scrollY;

  moveNode.style.left = (moveNode.startLeft + x - moveNode.startX) + "px";
  moveNode.style.top  = (moveNode.startTop  + y - moveNode.startY) + "px";

  if (ie){
	  window.event.cancelBubble = true;
	  window.event.returnValue = false;
	  }
	else event.preventDefault();
}

function dragEnd(event) {
  if (ie){
    document.detachEvent("onmousemove", dragStart);
    document.detachEvent("onmouseup", dragEnd);
	  }
	else 
		{
    document.removeEventListener("mousemove", dragStart, true);
    document.removeEventListener("mouseup", dragEnd, true);
 	 }
 	 moveNode.style.cursor = "default";
}

function showLay(content,id,name,cssClass,w,h,top,left,path,tgt,text,fromPoint){
	if (g_prw && document.getElementById(id) && document.getElementById(tgt)){
		document.getElementById(id).style.zIndex = ++g_zindex;
		document.getElementById(tgt).innerHTML = content;
		if (document.getElementById("title"+id)) document.getElementById("title"+id).innerHTML = text;
		}
	else
		{
		showPrw = new npLayer(content,id,name,cssClass,w,h,g_y,left,path,tgt,text,fromPoint);
		document.body.appendChild(showPrw.buildWin());
		docElm = document.getElementById(id);
		docElm.style.left = ((document.body.clientWidth - docElm.offsetWidth)/2);
		if(docElm.offsetHeight > document.body.clientHeight) docElm.style.top = document.documentElement.scrollTop  + document.body.scrollTop +10;
		else docElm.style.top = ((document.body.clientHeight - docElm.offsetHeight)/2) + document.documentElement.scrollTop  + document.body.scrollTop;
		g_prw = true;
		}
}

function winIt(event, tgt, href){
	var event = (ie)? window.event.srcElement : event;
	g_y = NPTool.getOffsetCoor(event)[NPTool.coor.Y] - 50;
	tgt.location.href = href;
}