/**
 * Librairie de fonctions javascript generales.
 *
 * @author Anthony Nivet <nivux@free.fr>
 * @package Librairies
 * @subpackage Javascript
 * @license http://www.gnu.org/licenses/gpl.html GNU Public License
 */

// Detection du navigateur
var AGENT=navigator.userAgent.toLowerCase(),DOM=document.getElementById?1:0,OP=AGENT.indexOf("opera")!=-1?1:0,OP5=OP&&DOM?1:0,IE4=document.all&&!DOM&&!OP?1:0,IE5=document.all&&DOM&&!OP?1:0,NS4=AGENT.indexOf('mozilla')!=-1&&AGENT.indexOf('spoofer')==-1&&AGENT.indexOf('compatible')==-1&&parseInt(navigator.appVersion)==4?1:0,NS5=AGENT.indexOf("gecko")!=-1&&DOM?1:0,AOL=AGENT.indexOf('aol')!=-1?1:0,IE=IE4||IE5?1:0,NS=NS4||NS5?1:0,DHTML=IE||NS||OP5?1:0,NAV=AGENT.substring(AGENT.indexOf("opera"),AGENT.length),VEROP=NAV.substring(NAV.indexOf(" "),NAV.length),OP7=OP&&VEROP.indexOf('7.')!=-1?1:0;

empty = function (val, empty0) {
  empty0 = empty0 ? true : false ;
  return (val == null) || (val == '') || ((val == 0) && empty0) ;
} ;

getElement = function (e,f) {

  if(document.layers) {
    f=(f)?f:self ;
    if(f.document.layers[e]) {
      return f.document.layers[e] ;
    }
    for(W=0;i<f.document.layers.length;W++) {
      return(getElement(e,f.document.layers[W])) ;
    }
  }
  if(document.all) {
    return document.all[e];
  }

  return document.getElementById(e);
} ;

changerAffichage = function (ele,class_display_none,display) {
  if ( ( typeof(class_display_none) == 'undefined' ) || ( class_display_none = '' ) ) {
    class_display_none = 'invisible' ;
  }
  var el = getElement(ele) ;
  if ( el && el.style ) {
    var display_el = el.style.display ;
    var class_el = el.className ;
    if ( typeof(display) == 'undefined' )
    {
      el.style.display = ( ( display_el == 'none' ) || ( ( display_el == '' ) && ( class_el.toLowerCase().indexOf(class_display_none)!=-1 ) ) ) ? 'block' : 'none' ;
    }
    else
    {
      el.style.display = ( display == true ) ? 'block' : 'none' ;
    }
  }
} ;

setFocusInput = function (frmName) {
  var frm = document.forms[frmName] ;
  var i = 0;
  for( i = 0 ; i < frm.length; i++ ) {
    if ( frm.elements[i].type == 'text' ) { frm.elements[i].focus(); return; }
  }
} ;

popup = function (url,w,h,wname,scroll,msg)
{
  var param = '' ;
  if( ( typeof(msg) == 'undefined' ) || ( msg == '' ) ) {
    msg = "Les fenętres ne peuvent pas s'ouvrir. Il est possible que vous ayez activé la fonction de blocage des fenętres surgissantes ?" ;
  }

  // if( ( typeof(w) == 'undefined' ) || ( typeof(w) == 'undefined' ) param+= 'fullsize=yes' ;
  if ( typeof(scroll) == 'undefined' ) { scroll = true ; }
  if ( typeof(w) == 'undefined' ) { w = screen.availWidth / 2 ; }
  if ( typeof(h) == 'undefined' ) { h = screen.availHeight / 2 ; }
  var width = w > screen.availWidth ? screen.availWidth - 50 : w;
  var height = h > screen.availHeight ? screen.availHeight - 50 : h;
  var left = (screen.availWidth - width) / 2;
  var top = (screen.availHeight - height) / 2;
  var now = new Date();

  if ( typeof(wname) == 'undefined' ) { wname = "popup_window_" + now.getTime() ; }

  param+="width="+width+",height="+height+",left="+left+",top="+top+","+(scroll?"scrollbars=yes":"scrollbars=no")+",resizable=yes";

  wname = window.open(url,wname,param);

  if( ! wname ) {
    alert( msg ) ;
  } else {
    if( ! eval("wname.opener") ) {
      wname.opener = self ;
    }
  }
  return wname ;
} ;

decodeEmail = function (el) {
  var val = el.href ;
  var dataHref = el.innerHTML;
  var reg = new RegExp("^mailto:(.*)%20CHEZ%20(.*)%20POINT%20(.*)", "g");
  el.href = val.replace(reg,"mailto:$1@$2.$3");
  el.innerHTML = dataHref ;
} ;

encodeEmail = function (el) {
  var val = el.href ;
  var dataHref = el.innerHTML;
  var reg = new RegExp("^mailto:([a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*)@([a-zA-Z0-9\-_]+)\.([a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+)", "g");
  el.href = val.replace(reg,"mailto:$1%20CHEZ%20$2%20POINT%20$3");
  el.innerHTML = dataHref ;
} ;

getAbsolutePos = function(el) {
  var SL = 0, ST = 0;
  var is_div = /^div$/i.test(el.tagName);
  if (is_div && el.scrollLeft) {
    SL = el.scrollLeft;
  }
  if (is_div && el.scrollTop) {
    ST = el.scrollTop;
  }
  var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
  if (el.offsetParent) {
    var tmp = this.getAbsolutePos(el.offsetParent);
    r.x += tmp.x;
    r.y += tmp.y;
  }
  return r;
} ;

display_bulle = function ( el, id, width, align ) {
  var pos = getAbsolutePos( el ) ;
  var el_bulle = document.getElementById( id ) ;
  width = ( typeof( width ) != 'undefined' ) ? width : 150 ;
  el_bulle.style.top = eval( pos.y + 25 ) + 'px';
  if ( IE || OP ) { el_bulle.style.width = width + 'px'; }
  el_bulle.style.display = 'block' ;
  // Alignement de la bulle (ne peut se faire qu'une fois le bloc activé)
  var left = -5 ;
  switch ( align ) {
  case 'left':
    left = -5 ;
    break;
  case 'right':
    left = ( el_bulle.offsetWidth ) - 10 ;
    break;
  case 'center':
    left = ( el_bulle.offsetWidth / 2 ) - 10 ;
    break;
  default:
    left = ( ( typeof( align ) != 'undefined' ) && ( align != '' ) && ( typeof( align ) == 'integer') ) ? align : -5 ;
  }
  el_bulle.style.left = eval( pos.x - left ) + 'px';

} ;

clear_bulle = function ( id ) {
  var el_bulle = document.getElementById( id ) ;
  el_bulle.style.display = 'none' ;
} ;

set_focus = function ( id ) {
  var el=document.getElementById( id );
  if ( el ) el.focus();
} ;

getBulle = function ( id_over, id_bulle, class_cursor ) {
  if ( typeof( class_cursor ) == 'undefined' ) class_cursor = '' ;
  var el = document.getElementById( id_over ) ;
  if ( el ) {
    if ( typeof( el.className ) == 'undefined' ) el.className = '' ;
    if ( el.className.toLowerCase().indexOf(class_cursor) == -1 ) {
      el.className+= (( el.className != '' ) ? ' ' : '') + class_cursor ;
    }
    el.onmouseover = function() { display_bulle(el,id_bulle,300) ; } ;
    el.onmouseout = function () { clear_bulle(id_bulle) ; } ;
  }
} ;
