/**
* bibliothèque javaScript KMT 2
* Created nov 2006
*/

/**
* Navigateur
*/
var myAgent   = navigator.userAgent.toLowerCase();
var myVersion = parseInt(navigator.appVersion);

var is_ie   = ((myAgent.indexOf("msie") != -1)  && (myAgent.indexOf("opera") == -1));
var is_nav  = ((myAgent.indexOf('mozilla')!=-1) && (myAgent.indexOf('spoofer')==-1)
&& (myAgent.indexOf('compatible') == -1) && (myAgent.indexOf('opera')==-1)
&& (myAgent.indexOf('webtv') ==-1)       && (myAgent.indexOf('hotjava')==-1));
var is_opera= (navigator.userAgent.indexOf("Opera" ) != -1);

var is_win   =  ((myAgent.indexOf("win")!=-1) || (myAgent.indexOf("16bit")!=-1));
var is_mac    = (myAgent.indexOf("mac")!=-1);
var is_firefox = (myAgent.indexOf("firefox") != -1);

/** 
* Admin access functions 
*/

function showAdminPanel(){
	ajaxUpdaterRequest('adminPanelContainer','get','ajax=1&kmt_login=&view=showAdminPanel');
}

function showAdminControl(){
	$('adminSpacer').style.height='28px';
	$('adminPanelContainer').style.display='block';
	$('adminPanelContainer').style.height='24px';
	new Effect.SlideDown('adminTopBar');
}

/**
* multiple Onload event function
*/
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

/**
* Pop up
*/
function openWindow(theURL,winName,features) {
	var fs=window.open(theURL, winName, features);
	fs.focus();
}

/**
* Pub array
*/
var pubArray=new Array();

/**
* Ajax basic functions
*/
function handlerFunc(t) {
	return true;
}

function errFunc(t) {
	alert('Error ' + t.status + ' -- ' + t.statusText);
}

function ajaxSimpleRequest(requestParams,myMethod){
	myMethod=myMethod=='' ? 'get' : myMethod;
	new Ajax.Request(ajaxCallURI, {asynchronous:true,method:myMethod,parameters:requestParams, onSuccess:handlerFunc, onFailure:errFunc});
}

function ajaxUpdaterRequest(target,myMethod,viewParams,completeParam,synchro){
	$(target).innerHTML ='<div style="text-align:center;margin:20px"><img src="/icones/common/wait.gif" style="margin-bottom:15px;" alt="Chargement..."/><br/>Chargement...</div>'
	new Ajax.Updater(target,ajaxCallURI, {asynchronous:synchro,method:myMethod,evalScripts:true,onComplete:completeParam,parameters:viewParams});
}

/**
* Keyword
*/
function showKeyword(div,keyword_id){
	ajaxUpdaterRequest(div+'_text','get','ajax=1&keywords='+keyword_id+'&view=afficher_keyword_definition&divName='+div);
	$(div).style.display='block';
	$(div).style.margin='35px 0 0 120px';
}

/**
* fckEditor
*/
function createEditor(instance,width,height,toolbar){
	
	var oTextarea = $(instance) ;
	if ( !oTextarea )	oTextarea = document.getElementsByName(instance)[0] ;
	if ( oTextarea && oTextarea.tagName == 'TEXTAREA' )		{
		Width = !width ? 550 :width ;
		Height =!height ? 250 : height;
		var oFCKeditor = new FCKeditor(instance,Width,Height) ;
		oFCKeditor.BasePath	= "/js/fckeditor/" ;
		oFCKeditor.ToolbarSet = !toolbar ? 'KMT' :toolbar ;
		
		oFCKeditor.ReplaceTextarea() ;
	}
}

/**
* Position tools
*/

// retourne la taille de la fenêtre
function windowSize(){
	var winWidth, winHeight, d=document;
	if (typeof window.innerWidth!='undefined') {
		winWidth = window.innerWidth;
		winHeight = window.innerHeight;
	} else {
		if (d.documentElement && typeof d.documentElement.clientWidth!='undefined' && d.documentElement.clientWidth!=0) {
			winWidth = d.documentElement.clientWidth;
			winHeight = d.documentElement.clientHeight;
		} else {
			if (d.body && typeof d.body.clientWidth!='undefined') {
				winWidth = d.body.clientWidth;
				winHeight = d.body.clientHeight;
			}
		}
	}
	return [winWidth, winHeight];
}

// retourne la taille du document
function documentSize(){
	var winWidth, winHeight, d=document;
	if (typeof window.innerWidth!='undefined') {
		winWidth = window.innerWidth+window.pageXOffset;
		winHeight = window.innerHeight+window.pageYOffset;
	} else {
		if (d.documentElement && typeof d.documentElement.scrollWidth!='undefined' && d.documentElement.scrollWidth!=0) {
			
			winWidth = d.documentElement.scrollWidth;
			winHeight = d.documentElement.scrollHeight;
		} else {
			if (d.body && typeof d.body.scrollWidth!='undefined') {
				winWidth = d.body.scrollWidth;
				winHeight = d.body.scrollHeight;
			}
		}
	}
	return [winWidth, winHeight];
}

// centre un objet dans la fenêtre
function putOnCenter(obj,parentObj,yRetrait,xRetrait){
	if(!parentObj){
		myWindowSize=windowSize();
		windowXmiddle=myWindowSize[0]/2;
		windowYmiddle=myWindowSize[1]/2;
	} else {
		myWindowSize=Element.getDimensions(parentObj);
		windowXmiddle=myWindowSize.width/2;
		windowYmiddle=myWindowSize.height/2;
	}
	elementDimensions = Element.getDimensions(obj);
	eWidth = elementDimensions.width;
	eHeight = elementDimensions.height;
	//alert(eWidth+" "+eHeight);
	obj.style.left=(windowXmiddle-(eWidth/2))+"px";
	obj.style.top=(windowYmiddle-((eHeight/2)+yRetrait))+"px";
	return true;
}

// centre un objet dans la fenêtre et le fait disparaitre au bout du time out
function putOnCenterAndHide(objName,parentDiv,timeOut,yRetrait){
	putOnCenter($(objName),$(parentDiv),yRetrait);
	$(objName).style.visibility='visible';
	string="Effect.Fade('"+objName+"');";
	setTimeout(string, timeOut);
}

function showBox(box,handler,appear){
	
	if(appear=='undefined') {Effect.Appear(box);} else {box.style.display='block';}
	if(handler!='') new Draggable(box,{scroll:window,handle:handler});
}

function hideBox(box,fade){
	if (fade=='undefined') {Effect.Fade(box);} else { box.style.display='none';}
}

// input tools
function clearInput(obj){
	obj.value="";
}


function hideDelayed(objName,timeOut){
	$(objName).style.visibility='visible';
	string="Effect.Fade('"+objName+"');";
	setTimeout(string, timeOut);
}

// renvoi la position d'un objet
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

// affichage de la date
function afficher_date(){
navvers = navigator.appVersion.substring(0,1);
if (navvers > 3)
	navok = true;
else
	navok = false;

today = new Date;
jour = today.getDay();
numero = today.getDate();
if (numero<10)
	numero = "0"+numero;
mois = today.getMonth();
if (navok)
	annee = today.getFullYear();
else
	annee = today.getYear();
TabJour = new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
TabMois = new Array("janvier","février","mars","avril","mai","juin","juillet","aout","septembre","octobre","novembre","décembre");
return messageDate = TabJour[jour] + " " + numero + " " + TabMois[mois] + " " + annee;
}


format=function(valeur,decimal,separateur) {
	// formate un chiffre avec 'decimal' chiffres après la virgule et un separateur
	var deci=Math.round( Math.pow(10,decimal)*(Math.abs(valeur)-Math.floor(Math.abs(valeur)))) ;
	var val=Math.floor(Math.abs(valeur));
	if ((decimal==0)||(deci==Math.pow(10,decimal))) {val=Math.floor(Math.abs(valeur)); deci=0;}
	var val_format=val+"";
	var nb=val_format.length;
	for (var i=1;i<4;i++) {
		if (val>=Math.pow(10,(3*i))) {
			val_format=val_format.substring(0,nb-(3*i))+separateur+val_format.substring(nb-(3*i));
		}
	}
	if (decimal>0) {
		var decim="";
		for (var j=0;j<(decimal-deci.toString().length);j++) {decim+="0";}
		deci=decim+deci.toString();
		val_format=val_format+"."+deci;
	}
	if (parseFloat(valeur)<0) {val_format="-"+val_format;}
	return val_format;
}


/***************** Google maps ******************/
function googlemaps_load(latitude,longitude) {
      if (GBrowserIsCompatible()) {
        var map = new GMap2($("googlemap"));
        map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GOverviewMapControl());
		map.addControl(new GScaleControl());
		
		/* GEvent.addListener(map, "moveend", function() {
          var center = map.getCenter();
          document.getElementById("message").innerHTML = center.toString();
        });*/
        

        map.setCenter(new GLatLng(latitude,longitude), 14);
      }
    }