var x,y;
var pointerX,pointerY;
var currentScale=0;
var initScale=0;
var navx, navy;
var lastPage;
initEventHandlers();

if (navigator.appName=='Netscape') {
	document.captureEvents(Event.MOUSEMOVE);
	document.onmousemove=NetscapeMouseMove;
	var nestscapePosX=0;
	var nestscapePosY=0;
}


function NetscapeMouseMove(e) {
	nestscapePosX=e.clientX + document.body.scrollLeft;
	nestscapePosY=e.clientY + document.body.scrollTop;
	// if (document.forms['fdebug']) document.forms['fdebug'].debug.value=nestscapePosX+' '+nestscapePosY+' '+e.clientX+' '+e.clientY+' '+document.body.scrollLeft+' '+document.body.scrollTop;
}

function getXY(e) {
	var width;
	var hg=document.images['mapsrc'];
	anotherTrueX = getRealLeft(hg);
	anotherTrueY = getRealTop(hg);

	if (navigator.appName=='Netscape') {
		navx=nestscapePosX;
		navy=nestscapePosY;
	}
	else {
		navx=event.clientX;
		navy=event.clientY;
		if (!e) var e = window.event;
		if (e.pageX || e.pageY) {
			navx=e.pageX;
			navy=e.pageY;
		}
		else if (e.clientX || e.clientY) {
			navx=e.clientX + document.body.scrollLeft;
			navy=e.clientY + document.body.scrollTop;
		}
	}
	wgSX = document.documentElement.scrollLeft;
	wgSY = document.documentElement.scrollTop;
	x=navx-anotherTrueX+wgSX;
	y=navy-anotherTrueY+wgSY;	//document.forms['fdebug'].debug.value=navigator.appName+' '+anotherTrueX+' '+anotherTrueY+' '+navx+' '+navy+' '+x+' '+y;
}

function getRealLeft(el) {
	if (arguments.length==0) el = this;
	xPos = el.offsetLeft;
	tempEl = el.offsetParent;
	while (tempEl != null) {
		xPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
	}
	return xPos;
}

function getRealTop(el) {
	if (arguments.length==0) el = this;
	yPos = el.offsetTop;
	tempEl = el.offsetParent;
	while (tempEl != null) {
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}
	return yPos;
}

function getPage(container, page, formName) {
	  // if (lastPage!=page) hashListener.setHash(page);
	 if (formName!='history') dhtmlHistory.add(page,12);
	 if (formName=='history') formName='';

	  lastPage=page;

	  // document.getElementById(container).innerHTML='<div style="width:100%;height:100%;vertical-align:middle;text-align:center"><img src="images/ajax-loader.gif"></div>';
	   method='GET';
	   //alert(formName);
	   if (formName!='') {
	   	var data = '';
	   	for (var i = 0; i<document.forms[formName].elements.length; i++) {
            		// alert(document.forms[formName].elements[i].name+' '+document.forms[formName].elements[i].value);
            		// alert(document.forms[formName].elements[i].type);
            		if (document.forms[formName].elements[i].type=='select-one') {
            			data=data+document.forms[formName].elements[i].name+"="+document.forms[formName].elements[i].options[document.forms[formName].elements[i].selectedIndex].value+"&";
            		}
            		else if (document.forms[formName].elements[i].checked==true && document.forms[formName].elements[i].type=='radio') {
            			data=data+document.forms[formName].elements[i].name+"="+encodeURI(document.forms[formName].elements[i].value)+"&";
            		}
				else if (document.forms[formName].elements[i].checked==true && document.forms[formName].elements[i].type=='checkbox') {
            			data=data+document.forms[formName].elements[i].name+"="+encodeURI(document.forms[formName].elements[i].value)+"&";
            		}
				else if (document.forms[formName].elements[i].type=='hidden' || document.forms[formName].elements[i].type == 'text'  || document.forms[formName].elements[i].type == 'password') {
            			data=data+document.forms[formName].elements[i].name+"="+document.forms[formName].elements[i].value+"&";
            		}
    		}
    		method='POST';
    		// data=encodeURI(data);
	     // page=page+"?"+data;
	     // alert(data);
        }
	   if (method=='GET') {
	   	//page=page+"?"+data;
	   	//page=encodeURI(page);
	   	data = null
	   }
	//alert(container+' - '+page+' -  '+formName);
	   // document.write(page);

	   http_request = false;
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
                http_request = new XMLHttpRequest();
                if (http_request.overrideMimeType) {
                        http_request.overrideMimeType('text/xml');
                }
        } else if (window.ActiveXObject) { // IE
                try {
                                http_request = new ActiveXObject("Msxml2.XMLHTTP");
                        } catch (e) {
                        try {
                                http_request = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {}
                }
        }

        if (!http_request) {
                alert('Abandon :( Impossible de créer une instance XMLHTTP');
                return false;
        }
        http_request.open(method, page, true);

        http_request.onreadystatechange = function() {
                if (http_request.readyState == 4 && http_request.status == 200) {
                        // alert(http_request.responseText);
                        document.getElementById( container ).innerHTML= http_request.responseText;
                }
        }
        if (method == "POST") {
        		http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1");
        }
        http_request.send(data);

}

function openWin(imagename,width,height) {
	imagewin=window.open(imagename,'imagewin','width=' + width + ',height=' +height);
	if (!imagewin.closed) {
		imagewin.focus();
		imagewin.resizeTo(width, height);
	}
}

function getMap(layerName,func,params) {
	$('map').innerHTML="<div align=center><img src=images/ajax-loader.gif></div>";

	var page='index.php?action=getMap&function='+func;
	if (func=='click') page=page+'&x='+x+"&y="+y;
	if (func=='pan') page=page+'&pan='+params;
	if (func=='changeGrid') page=page+'&grid='+params;
	page=encodeURI(page);
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
	      http_request = new XMLHttpRequest();
	      if (http_request.overrideMimeType) {
	              http_request.overrideMimeType('text/xml');
	      }
	} else if (window.ActiveXObject) { // IE
	      try {
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	      }
	}
	// alert(page);

	if (!http_request) {
	      alert('Abandon :( Impossible de créer une instance XMLHTTP');
	      return false;
	}
	http_request.onreadystatechange = function() {
	      if (http_request.readyState == 4 && http_request.status == 200) {
	      		// alert(page);
      			document.getElementById(layerName).innerHTML= http_request.responseText;
	       }
		}
	http_request.open('GET', page, true);
	http_request.send(null);
}

function zoomInit(end) {
	new Control.Slider('handle3','track3',{range:$R(0,end),
	   sliderValue:1,
	   onChange:function(v){getHtml('map','action=getMap&function=changeScale&layerId='+v)}});

}

function handle(delta) {
	if (document.getElementById('debug'))
		if (delta < 0)
			document.getElementById('debug').innerHTML='-';
		else
			document.getElementById('debug').innerHTML='+';
}

function getHtml(container,params) {
	var url = 'index.php?';
	var myAjax = new Ajax.Updater(container, url, {method: 'get', parameters: params});
}


function divUpdater(container,page,formName,loading,elemId,width,height) {
	if (typeof loading == 'undefined' ) loading = 'true';
	if (elemId) {
		elementHTML = document.getElementById(elemId);
		var posTxt=Position.cumulativeOffset(elementHTML);
		var myString = new String( posTxt);
		var pos = myString.split(",");
		var xPos=eval(pos[0]);
		var yPos=eval(pos[1]);
		$(container).style.visibility='visible';
		$(container).style.width=width+'px';
		$(container).style.height=height+'px';
		$(container).style.left=xPos+'px';
		$(container).style.top=yPos+'px';
	}
	/* Le chat online javascript
	var url = 'index.php?action=getMessage';
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport) {
			if (transport.responseText!='') alert(transport.responseText);
		}
	});
	*/

	if (formName=='') {
		pos=page.indexOf("?")+1;
		pars=page.substr(pos);
		if (container=='')
			var myCall=new Ajax.Request(page,{method: 'get',encoding: 'UTF-8', evalScripts : true, parameters: pars});
		else
			var myCall=new Ajax.Updater(container,page,{method: 'get',encoding: 'UTF-8', evalScripts : true, parameters: pars});
	}
	else {
		if (container=='')
			var myCall=new Ajax.Request(page,{method: 'post',encoding: 'UTF-8', parameters: Form.serialize(document.forms[formName])});
		else {
			var myCall=new Ajax.Updater(container,page,{method: 'post',encoding: 'UTF-8', parameters: Form.serialize(document.forms[formName])});
		}
	}
	if (container!='' && loading) $(container).update('<div style="width:100%;height:100%;vertical-align:middle;text-align:center"><br><br><img src="images/ajax-loader.gif"></div>');
	// pageTracker._trackPageview(page);
}

function openNymeList(value) {
	var mymPos=Array();
	$('nymeLst').style.visibility='visible';
	divUpdater('nymeLst','index.php?action=nymeSearch&name='+value,'');
}

function popit(the_form,width,height) {
	params="width="+width+",height="+height+",resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=no,screenX=100,screenY=100";
	window.open("index.php", "popup", params);
	document.forms[the_form].target = "popup";
	document.forms[the_form].submit();
}

function callDatatrans(sessid) {
	for(var i = 0; i < document.forms['fPayment'].point_money_id.length; i++) {
		if(document.forms['fPayment'].point_money_id[i].checked==true) {
			// page='datatrans/payment.php?PHPSESSID='+sessid+'&point_money_id='+radioObj[i].value;
			page='index.php?action=member_add_credit_submit&PHPSESSID='+sessid+'&point_money_id='+document.forms['fPayment'].point_money_id[i].value;
			window.open(page,'Geolives','location=no,scrollbars=yes,menubars=no,toolbars=no,resizable=yes,width=600,height=500');
		}
	}
}

function divControl(container,page) {
	var buttonName=container+"Opener";
	if (document.images[buttonName].src=='http://www.geolives.ch/images/div-close.png') {
		document.images[buttonName].src='http://www.geolives.ch/images/div-open.png';
		$(container).innerHTML='';
	}
	else {
		divUpdater(container,page,'');
		document.images[buttonName].src='http://www.geolives.ch/images/div-close.png';
	}
}

function updateValue(){
	document.forms['fTinyMce'].htmlContent.value=tinyMCE.getContent();
	//page="index.php?action=saveTrackComment&comment="+htmlContent;
	// tinyMCE.execCommand('mceRemoveControl', false, 'codeHTML');
	divUpdater('commentListTab','index.php','fTinyMce');
	$('trackEdit').innerHTML='';
}

function getContenu(container){
	if (container!='') {
		$('codeHTML').innerHTML=$(container).innerHTML;
	}
	tinyMCE.execCommand('mceAddControl', false, 'codeHTML');
}


// chat
function addmessage()
{
  new Ajax.Request( 'index.php', {
     method: 'post',
     parameters: $('chatmessage').serialize(),
     onSuccess: function( transport ) {
       $('messagetext').value = '';
     }
  } );
}
function showBigAvatar(imgSrc){
	pointerY=pointerY-200;
	$('bigAvatarPicture').style.left='40px';
	$('bigAvatarPicture').style.top=pointerY+'px';
	document.images['bigAvatarPictureImg'].src=imgSrc;
}
function showPosition(e){
	pointerX=Event.pointerX(e);
	pointerY=Event.pointerY(e);
}

function initEventHandlers(x,y,avatar){
	Event.observe(document, "mousemove", showPosition, false);
}

function displayMap(x,y,avatar) {
	var map = new OpenLayers.Map('map', {'maxResolution': 1.40625/2});
	map.addControl(new OpenLayers.Control.PanZoomBar());
	var ol_wms = new OpenLayers.Layer.WMS( "World Map", "http://labs.metacarta.com/wms-c/Basic.py?", {layers: 'basic', format: 'image/png' } );

	map.addLayer(ol_wms);
	map.setCenter(new OpenLayers.LonLat(x,y), 8);
	var markers = new OpenLayers.Layer.Markers( "Markers" );
	map.addLayer(markers);

	var size = new OpenLayers.Size(70,70);
	var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
	var icon = new OpenLayers.Icon('http://www.geolives.ch/images/avatars/'+avatar,size,offset);
	markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(x,y),icon));

}
function CheckDate( strDate ) {
	aMonths = new Array( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );

	if( strDate.length )
	{
		astrDate = strDate.split( "." );

		if( astrDate.length != 3 )
		{
			alert( strDateErr );
			return false;
		}

		nDay = parseInt(astrDate[0], 10);
		nMonth = parseInt(astrDate[1], 10);
		nYear = parseInt(astrDate[2], 10);

		if( isNaN(nDay) || isNaN(nMonth) || isNaN( nYear ) ||
			nMonth > 12 || nMonth < 1 || nYear < 1999 || nYear > 2099 ||
		    nDay < 1 || nDay > (aMonths[nMonth-1] + IsLeapYear(nYear)))
		{
			alert( strDateErr );
			return false;
		}
	}
	return true;
}

function CheckDateField( field ) {

	if (CheckDate(field.value)) {
	} else {
		field.focus();
	}

}

function winHelp(helpId,popupW,popupH) {
	page='index.php?mode=help&helpId='+helpId;
	if ( popupW === undefined ) {popupW = 500;}
	if ( popupH === undefined ) {popupH = 400;}
	popupOption='location=no,scrollbars=yes,menubars=no,toolbars=no,resizable=yes,width='+popupW+',height='+popupH;
	window.open(page,'winHelp',popupOption);
}

function checkall( p_formname, p_state) {
        var t_elements = (eval("document." + p_formname + ".elements"));

        for (var i = 0; i < t_elements.length; i++) {
        if(t_elements[i].type == 'checkbox') {
                t_elements[i].checked = p_state;
                }
        }
}
