/**
 * Tools
 *
 * @author Guillaume Nguyen - Virtua SA <guillaume.nguyen@virtua.ch>
 * @copyright Copyright (c) Virtua web solutions
 * @name: $Source: /vhosts/intranet/www/public/common/js/bookmarks/bookmarks.js,v $
 * @version $Revision: 459 $ $Date: 2008-07-02 17:50:21 +0200 (mer, 02 jui 2008) $ $Author: guillaume $
**/

/**
 * Affichage d'un flash permet d'éviter le clic pr activation sous IE
 
 
 "/themes/base/flash/presentation.swf", "25", 580, 200
 
 
 
**/
function load_flash(flash_url, vars, width, height) {
    var flash = '' ;
    flash += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"' ;
    flash += '    codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"' ;
    flash += '    width="' + width + '" height="' + height + '" id="PUB" align="middle">' ;
    flash += '    <param name="allowScriptAccess" value="sameDomain" />' ;
    flash += '    <param name="movie" value="' + flash_url + '" />' ;
    flash += '    <param name="flashvars" value="' + vars + '" />' ;
    flash += '    <param name="quality" value="high" />' ;
    flash += '    <param name="wmode" value="transparent"/>' ;
    flash += '    <embed src="' + flash_url + '?' + vars + '"' ;
    flash += '        quality="high" wmode="transparent" width="' + width + '" height="' + height + '" name="PUB" ' ;
    flash += '        align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"' ;
    flash += '        pluginspage="http://www.macromedia.com/go/getflashplayer" />' ;
    flash += '</object>' ;
    document.write(flash) ;
}

/**
 * OUverture PopUp
**/
function windowOpen(p_url,p_window_name,p_width,p_height,p_top,p_left,p_scrollbar,p_menubar,p_statusbar,p_toolbar,p_locationbar,p_directories,p_resizable) {

    var r_window = null;
    r_window = window.open(p_url,p_window_name,"width="+p_width+",height="+p_height+"left="+p_left+",top="+p_top+",menubar="+p_menubar+",status="+p_statusbar+",location="+p_locationbar+",scrollbars="+p_scrollbar+",resizable="+p_resizable+",directories="+p_directories+",toolbar="+p_toolbar);
    if (r_window && r_window.open) {
        r_window.focus();
        return r_window;
    }
    return false ;
}

/**
 * Conversion d'une chaîne en Xml
**/
function stringToXML(strXML) {
    
    // gestion du retour xml différent pour Explorer
    if (window.ActiveXObject)   {

        xmldoc = new ActiveXObject("Microsoft.XMLDOM");
        xmldoc.async = "false";
        if (!xmldoc.loadXML(strXML) )  {
            alert("Une erreur inconnue s'est produite durant le processus.") ;
        }
    // avec FF, rien à faire, bien entendu ....
    } else  {
        xmldoc = strXML ;
    }
    alert(xmldoc) ;
    return xmldoc ;
}

/**
 * Retourne une position en pixel à partir du haut de la fenêtre en fonction de la distance souhaitée
**/
function get_position_from_top(offset) {
    
    // IE
    if (document.all) {
        y = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
    // Good Browsers
    } else { 
        y = window.pageYOffset;
    }

    return y + offset ;
}

/**
 * Rend invisble tous les éléments de la class spécifiée
**/
function hideElementsByClass(className) {
    $$(className).each(function(e) {
        e.style.visibility = 'hidden' ;
    } ) ;
}

/**
 * Détermine si une valeur fait partie d'un tableau
 */
function in_array(ary, val) {
    for(var i = 0, l = ary.length; i < l; i++) {
        if(ary[i] == val) {
            return true;
        }
    }
    return false ;
}

/**
 * Affiche une date et heure en tenant compte du fuseau horraire du client
 * 01/06/1981 13:32 
 * @param int ts Timestamp unix en secondes depuis 1970 
 */
function dateTimeWithGmtOffset(ts) {

    var myDate = new Date();
    myDate.setTime(ts * 1000) ;
    
    day = myDate.getDate() ;
    if (day < 10) { day = "0" + day ; }
    
    month = myDate.getMonth() + 1 ;
    if (month < 10) { month = "0" + month ; }
    
    year = myDate.getFullYear() ;
    
    hour = myDate.getHours() ;
    if (hour < 10) { hour = "0" + hour ; }
    
    minute = myDate.getMinutes() ;
    if (minute < 10) { minute = "0" + minute ; }
    
    document.write(day + "/" + month + "/" + year + " " + hour + ":" + minute) ;
}

/**
 * Affiche une date en tenant compte du fuseau horraire du client => 01/06/1981
 * @param int ts Timestamp unix en secondes depuis 1970 
 */
function dateWithGmtOffset(ts) {

    var myDate = new Date();
    myDate.setTime(ts * 1000) ;
    
    day = myDate.getDate() ;
    if (day < 10) { day = "0" + day ; }
    
    month = myDate.getMonth() + 1 ;
    if (month < 10) { month = "0" + month ; }
    
    year = myDate.getFullYear() ;
    
    document.write(day + "/" + month + "/" + year) ;
}

/**
 * Affiche une heure en tenant compte du fuseau horraire du client
 * 13:32 
 * @param int ts Timestamp unix en secondes depuis 1970 
 */
function timeWithGmtOffset(ch_ts) {

    var myDate = new Date();
    myDate.setTime(ch_ts * 1000) ;
    
    hour = myDate.getHours() ;
    if (hour < 10) { hour = "0" + hour ; }
    
    minute = myDate.getMinutes() ;
    if (minute < 10) { minute = "0" + minute ; }

    document.write(hour + ":" + minute) ;
}

/**
 * Affiche / cache un élément
**/
function showHide(elem_id) {

    if (elem = $(elem_id)) {
        elem.style.display = (elem.style.display == 'none') ? 'block' : 'none' ;
    }
    return false ;
}
