Object.extend(Element, {
	getWidth: function(element) {
	   	element = $(element);
	   	return element.offsetWidth; 
	},
	setWidth: function(element,w) {
	   	element = $(element);
    	element.style.width = w +"px";
	},
	setHeight: function(element,h) {
   		element = $(element);
    	element.style.height = h +"px";
	},
	setTop: function(element,t) {
	   	element = $(element);
    	element.style.top = t +"px";
	},
	setSrc: function(element,src) {
    	element = $(element);
    	element.src = src; 
	},
	setHref: function(element,href) {
    	element = $(element);
    	element.href = href; 
	},
	setInnerHTML: function(element,content) {
		element = $(element);
		element.innerHTML = content;
	}
});

		
function showDetailsWithResize(obj,eleId,pos,dragBar,resBtn,maxBtn){
	
  var ele =  document.getElementById(eleId);
  var elewd = ele.style.width.substring(0,ele.style.width.indexOf('p'));

  if(ele.style.display == 'none'){
	
	var objBody = document.getElementsByTagName("body").item(0);
	var objOverlay = document.createElement("div");
	objOverlay.setAttribute('id','overlay');
	objOverlay.className = 'overlay';
	objOverlay.style.display = 'none';
	//objOverlay.onclick = function() { myLightbox.end(); return false; }
	objBody.appendChild(objOverlay);
	if(pos == 'side')
     ele.style.top = findPosY(obj)+'px';
	else if(pos == 'down')
	 ele.style.top = findPosY(obj)+obj.offsetHeight+'px';
	if(findPosX(obj) > elewd){
	 if(pos == 'side')
	  ele.style.left = findPosX(obj)-elewd+'px';
	 else if(pos == 'down')
	  ele.style.left = findPosX(obj)-elewd+obj.offsetWidth+'px';
	}
    else{
		if((document.body.clientWidth - findPosX(obj)) < elewd){
			ele.style.left = (document.body.clientWidth - elewd)/2; 	
		}else{
		 if(pos == 'side')
		  ele.style.left = findPosX(obj)+obj.offsetWidth+'px';
		 else if(pos == 'down')
		  ele.style.left = findPosX(obj)+'px';
		}
	}
	var x = parseInt(ele.style.left);
	var y = parseInt(ele.style.top);
    //hideSelectBoxes();
	var arrayPageSize = getPageSize();
	Element.setHeight('overlay', arrayPageSize[1]);
	new Effect.Appear('overlay', { duration: 0.2, from: 0.0, to: 0.8 });
	//new Effect.Appear(eleId, { duration: 0.5, queue: 'end', afterFinish: function(){} });
	fen = new xFenster(eleId, x, y, dragBar, resBtn, maxBtn);
	var rBtn =  xGetElementById(resBtn);
	var mBtn =  xGetElementById(maxBtn);
	xMoveTo(rBtn, xWidth(ele) - xWidth(rBtn), xHeight(ele) - xHeight(rBtn));
	xMoveTo(mBtn, xWidth(ele) - xWidth(mBtn), 0);
	ele.style.left = x;
	ele.style.top = y;
  }
 else{

   if(document.getElementById('overlay')){
   	Element.hide('overlay');
   }
   Element.hide(eleId);
   //showSelectBoxes();
   fen.onunload();
   }
}



function showDetailsWithDrag(obj,eleId,pos,dragBar,maxBtn,left,top){
  //var obj = document.getElementById(obj);
  
  var ele =  document.getElementById(eleId);
  
  var elewd = ele.style.width.substring(0,ele.style.width.indexOf('p'));
  if(ele.style.display == 'none'){
	hideSelectBoxes();
	var objBody = document.getElementsByTagName("body").item(0);
	var objOverlay = document.createElement("div");
	objOverlay.setAttribute('id','overlay');
	objOverlay.style.display = 'none';
	//objOverlay.onclick = function() { myLightbox.end(); return false; }
	objBody.appendChild(objOverlay);
	if(pos == 'side')
     ele.style.top = findPosY(obj)+'px';
	else if(pos == 'down')
	 ele.style.top = findPosY(obj)+obj.offsetHeight+'px';
	if(findPosX(obj) > elewd){
	 if(pos == 'side')
	  ele.style.left = findPosX(obj)-elewd+'px';
	 else if(pos == 'down')
	  ele.style.left = findPosX(obj)-elewd+obj.offsetWidth+'px';
	}
    else{
		if((document.body.clientWidth - findPosX(obj)) < elewd){
			ele.style.left = (document.body.clientWidth - elewd)/2; 	
		}else{
		 if(pos == 'side')
		  ele.style.left = findPosX(obj)+obj.offsetWidth+'px';
		 else if(pos == 'down')
		  ele.style.left = findPosX(obj)+'px';
		}
	}
	var x = parseInt(ele.style.left);
	var y = parseInt(ele.style.top);
    //hideSelectBoxes();
	var arrayPageSize = getPageSize();
	Element.setHeight('overlay', arrayPageSize[1]);
	new Effect.Appear('overlay', { duration: 0.2, from: 0.0, to: 0.8 });
	//new Effect.Appear(eleId, { duration: 0.5, queue: 'end', afterFinish: function(){} });
	fen = new xFensterDrag(eleId, x, y, dragBar,maxBtn);
	var mBtn =  xGetElementById(maxBtn);
	xMoveTo(mBtn, xWidth(ele) - xWidth(mBtn), 0);
	if(left)
		x = x + left;
	if(top)
		y = y + top;
		
	ele.style.left = x + 'px';
	ele.style.top = y + 'px';
  }
 else{

   if(document.getElementById('overlay')){
   showSelectBoxes();
   	Element.hide('overlay');
   }
   Element.hide(eleId);
   //showSelectBoxes();
   fen.onunload();
   }
}

function showUserDetailsWithDrag(obj,eleId,pos,dragBar,maxBtn,left,top){
  //alert(obj);
  var obj = document.getElementById(obj);
  var ele =  document.getElementById(eleId);
  
  var elewd = ele.style.width.substring(0,ele.style.width.indexOf('p'));
  if(ele.style.display == 'none'){
	var objBody = document.getElementsByTagName("body").item(0);
	var objOverlay = document.createElement("div");
	objOverlay.setAttribute('id','overlay');
	objOverlay.style.display = 'none';
	//objOverlay.onclick = function() { myLightbox.end(); return false; }
	objBody.appendChild(objOverlay);
	if(pos == 'side')
     ele.style.top = findPosY(obj)+'px';
	else if(pos == 'down')
	 ele.style.top = findPosY(obj)+obj.offsetHeight+'px';
	if(findPosX(obj) > elewd){
	 if(pos == 'side')
	  ele.style.left = findPosX(obj)-elewd+'px';
	 else if(pos == 'down')
	  ele.style.left = findPosX(obj)-elewd+obj.offsetWidth+'px';
	}
    else{
		if((document.body.clientWidth - findPosX(obj)) < elewd){
			ele.style.left = (document.body.clientWidth - elewd)/2; 	
		}else{
		 if(pos == 'side')
		  ele.style.left = findPosX(obj)+obj.offsetWidth+'px';
		 else if(pos == 'down')
		  ele.style.left = findPosX(obj)+'px';
		}
	}
	var x = parseInt(ele.style.left);
	var y = parseInt(ele.style.top);
    //hideSelectBoxes();
	var arrayPageSize = getPageSize();
	Element.setHeight('overlay', arrayPageSize[1]);
	new Effect.Appear('overlay', { duration: 0.2, from: 0.0, to: 0.8 });
	//new Effect.Appear(eleId, { duration: 0.5, queue: 'end', afterFinish: function(){} });
	fen = new xFensterDrag(eleId, x, y, dragBar,maxBtn);
	var mBtn =  xGetElementById(maxBtn);
	xMoveTo(mBtn, xWidth(ele) - xWidth(mBtn), 0);
	if(left)
		x = x + left;
	if(top)
		y = y + top;
		
	ele.style.left = x + 'px';
	ele.style.top = y + 'px';
  }
 else{

   if(document.getElementById('overlay')){
   	Element.hide('overlay');
   }
   Element.hide(eleId);
   //showSelectBoxes();
   fen.onunload();
   }
}



function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

// ---------------------------------------------------

function showSelectBoxes(){
	selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}
}

// ---------------------------------------------------

function hideSelectBoxes(){
	selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "hidden";
	}
}

