//for dragging
var x,y;
var tx, ty;
var isDrag=false;
var firefox=document.getElementById&&!document.all;
//alert("ffox="+firefox);
//var firefox=true;

document.onmousemove=mouseMove;
document.onmousedown=selectMouse;
document.onmouseup=function(){
	isDrag=false;
}

function selectMouse(e) 
{	
	if (firefox){
		//verify that user clicked the 'titlebar' element 
		var p=e.target;	
		if (p.attributes['id'] && p.attributes['id'].value=="actionwindow" || p.attributes['id'].value=="actionwindow-menu"){
			isDrag=true;
			x=e.clientX;
			y=e.clientY;
			//get the widget coordinates from the root, 'widget1' element
			tx=parseInt(document.getElementById('actionwindow').style.left);
			ty=parseInt(document.getElementById('actionwindow').style.top);
		}
	} else {		//IE
		//verify that user clicked the 'titlebar' element
		var p=event.srcElement;		
		if (p.attributes['id'] && p.attributes['id'].value=="actionwindow" || p.attributes['id'].value=="actionwindow-menu"){
			isDrag=true;
			x=event.clientX;
			y=event.clientY;
			//get the widget coordinates from the root, 'widget1' element
			tx=parseInt(document.getElementById('actionwindow').style.left);
			ty=parseInt(document.getElementById('actionwindow').style.top);
		}
	}
}
	

function mouseMove(e) {

	if (isDrag)	{ //only move the box if the user is dragging it
		var box = document.getElementById("actionwindow");
		if (firefox){
			box.style.left = e.clientX + (tx - x) + 'px';
			box.style.top  = e.clientY + (ty - y) + 'px';
		} else {		//IE
			box.style.left = event.clientX + (tx - x) + 'px';
			box.style.top  = event.clientY + (ty - y) + 'px';
		}    
	}
}


function ajaxpage(page, preview_div){
	var page_request = false;
	
	if (window.XMLHttpRequest) {// if Mozilla, Safari etc
		page_request = new XMLHttpRequest();
		//alert("is firefox or safari");

	} else if (window.ActiveXObject) { // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e){
			try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){}
		}
		//alert("is IE");

	} else {
		//alert("i don't know your browser");
		return false;
	}
	page_request.onreadystatechange=function(){
		loadpage(page_request, preview_div);
	}
	
	page_request.open('GET', page, true);
	//alert("url="+url);
	page_request.send(null);
}

function loadpage(page_request, preview_div){
	//alert(preview_div);
	//|| window.location.href.indexOf("http")==-1)
	//&& (page_request.status==200 
		  //readyState=="complete"
	if (page_request.readyState == 4 ) {
		document.getElementById(preview_div).innerHTML = page_request.responseText;
		document.getElementById(preview_div).style.display='block';
		//alert("page loaded" );
	}
}


function screenSize(wi) {
	var screenSize = [];
	if (self.innerHeight) // all except Explorer
	{
		screenSize['x'] = self.innerWidth;
		screenSize['y'] = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
	{
		screenSize['x'] = document.documentElement.clientWidth;
		screenSize['y'] = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		screenSize['x'] = document.body.clientWidth;
		screenSize['y'] = document.body.clientHeight;
	}
	return(screenSize[wi]);
}

function screenOffset(wi) {
	var so = [];
	if (self.pageYOffset) // all except Explorer
	{
		so['x'] = self.pageXOffset;
		so['y'] = self.pageYOffset; // avant c'était self.
	}
	else if (document.documentElement && document.documentElement.scrollTop)
		// Explorer 6 Strict
	{
		so['x'] = document.documentElement.scrollLeft;
		so['y'] = document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{
		so['x'] = document.body.scrollLeft;
		so['y'] = document.body.scrollTop;
	}
	return(so[wi]);
}

function pageSize(wi) {

	var pageSize = [];
	
	var test1 = document.body.scrollHeight;
	var test2 = document.body.offsetHeight
	if (test1 > test2) // all but Explorer Mac
	{
		pageSize['x'] = document.body.scrollWidth;
		pageSize['y'] = document.body.scrollHeight;
	}
	else // Explorer Mac;
		 //would also work in Explorer 6 Strict, Mozilla and Safari
	{
		pageSize['x'] = document.body.offsetWidth;
		pageSize['y'] = document.body.offsetHeight;
	}	

	return(pageSize[wi]);
}

/*fct-js
2006.09.10.0.0.1: Ouvre la fenetre de préférences. (overwindow)
*/
function actionwindowOpen(page_url, sizeH, sizeW) {
	var screenH = screenSize('y');
	var screenW = screenSize('x');
	var screenOffsetX = screenOffset('x');
	var screenOffsetY = screenOffset('y');

	var top_left_Y = (screenH/2 - sizeH/2) + screenOffsetY;
	var top_left_X = (screenW/2 - sizeW/2) + screenOffsetX;
		
	
		//alert('top_left_X:' + top_left_X + ' top_left_Y:' + top_left_Y);
	
		
	var actionwindow = document.getElementById('actionwindow');
	actionwindow.style.display = 'block';
	actionwindow.style.top = top_left_Y + 'px';
	actionwindow.style.left = top_left_X + 'px';
	actionwindow.style.height = sizeH + 'px';
	actionwindow.style.width = sizeW + 'px';
	
	var actionwindow_content = document.getElementById('actionwindow-content');
	var content_height = sizeH - 45;
	var content_width = sizeW - 30;
	//alert("h=" + content_height + " w" + content_width);
	actionwindow_content.style.height = content_height + 'px';
	actionwindow_content.style.width = content_width + 'px';

	var actionwindow_menu = document.getElementById('actionwindow-menu');
	actionwindow_menu.style.width = content_width + 'px';
	
	
	ajaxpage(page_url, 'actionwindow-content');
	//alert('ok2...');
	var iwc = document.getElementById('actionwindow-cache');
	iwc.style.width = pageSize('x') + 'px';
	iwc.style.height = pageSize('y') + 'px';
		
	//alert('pageSizeX = ' + pageSize('x') + "pageSizeY = " + pageSize('y') );
		
	iwc.style.display = 'block';
	return(true);
}

function actionwindowClose() {
	var actionwindow = document.getElementById('actionwindow');
	actionwindow.style.display = 'none';
	var iwc = document.getElementById('actionwindow-cache');
	iwc.style.display = 'none';
}

























	function getAction(e, vAction, target) {
		//alert("vAction:"+vAction+" target:"+target);
		
		f = e.form;
		f.a.value = vAction;
		
		//targ = e.name;
		/*if (e.target) {
			targ = e.target;
		} else if (e.srcElement) {
			targ = e.srcElement;
		}
		if (targ.nodeType == 3) {// defeat Safari bug
			targ = targ.parentNode;	
		}*/
		
		//alert("targ="+targ);
		
		action_page = f.action;
		
		
		var getstr = "?";
		
		//alert("nb elements = " + f.elements.length);
		
		for (i=0; i<f.elements.length; i++) {
			
			
			//alert( "element["+i+"].tagName="+f.elements[i].tagName + "and name= " + f.elements[i].name + " and type = " + f.elements[i].type + " and value = " + f.elements[i].value);
			
			if (f.elements[i].tagName == "INPUT") {
				if (f.elements[i].type == "text") {
					getstr += f.elements[i].name + "=" + f.elements[i].value + "&";
				}

				// Button type form element
				if (f.elements[i].type == "button") {
					
					// Set value to 1 when it's the clicked element.
					// Else set is value to false.
					targ = e.name;
					
					if( f.elements[i].name == targ ) {
						value = 1;
					} else {
						value = 0;
					}
					
					getstr += f.elements[i].name + "="+ value +"&";
					
					
				}

				
				if (f.elements[i].type == "hidden") {
					getstr += f.elements[i].name + "=" + f.elements[i].value + "&";
				}
				
				
				if (f.elements[i].type == "checkbox") {
					if (f.elements[i].checked) {
						getstr += f.elements[i].name + "=" + f.elements[i].value + "&";
					} else {
						getstr += f.elements[i].name + "=&";
					}
				}
			
				if (f.elements[i].type == "radio") {
					if (f.elements[i].checked) {
						getstr += f.elements[i].name + "=" + f.elements[i].value + "&";
					}
				}
			}   
			if (f.elements[i].tagName == "SELECT") {
				var sel = f.elements[i];
				if ( sel.options ) {
					getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
				}
			}
         
		}
		//alert( "str= " + getstr);
		ajaxpage(action_page + getstr, target);
	}
