/**
 * makeElementComplex
 * @path : string, XPath like with element identifiers and tag name, dot separated
 * @pattern : string, content target replacement, use %S to retreive actual content of target
 **/
function makeElementComplex(path, pattern) {
    var container = document;
    if (path.indexOf('.')!=-1) {
        var items = path.split('.');
        var tag2search = items[items.length-1];
        for(var i=0; i<items.length-1; i++) {
            container = container.getElementById(items[i]);
        }
    } else
        tag2search = path;
    var items = container.getElementsByTagName(tag2search);
    for (var i=0; i<items.length; i++) {
        items[i].innerHTML = pattern.replace("%S", items[i].innerHTML);
    }
}

    /**
     * Toggle visibility status of an identified element
     * @id : string, target identifier
     **/
    function toggleVisible(id) {
        var item = document.getElementById(id);
        if ( item ) {
            if (!item.style.display || item.style.display =='block')
                item.style.display= 'none';
            else
                item.style.display= 'block';
        
        } else
            alert(id+' existe pas !!');
    }
    
  /**
   * Return all childs with specified tag name & CSS class name attribute
   * @tag : string, tag name to get
   * @classname : string, CSS class name associated with tag name
   * @container : optional string, container identifier for target restriction
   *              if not specified, container is set to HTML...
   **/
  function getElementsByTagClass(tag, className) {
    var items = new Array();
    if(getElementsByTagClass.arity==3) {
        // parent by ID
        if(typeof(getElementsByTagClass.arguments[2])==string)
            var container = document.getElementById(getElementsByTagClass.arguments[2]);
        else
            var container = getElementsByTagClass.arguments[2];
    } else {
        // no param 3 : get all from HTML
        var container = document.getElementsByTagName('html')[0];
    }
    var collection = container.getElementsByTagName(tag);
    for (var i=0; i<collection.length; i++) {
        if (collection[i].className == className) {
            items.push(collection[i]);
        }
    }
    if (items.length>0) {
        return items;
    }
    else {
        return false;
    }
  }
  
  function childsOnlyTagName(item, tag) {
    if( item.hasChildNodes() ) {
        var max = item.childNodes.length;
        var n = 0;
        for(var i=0; i<max; i++) {
            var cur = item.childNodes[i];
            if ( cur.nodeName.toLowerCase() == tag) {
                n++;
                break;
            }
        }
        if (n>0)
            return true;
        else
            return false;
    } else
        return false;
  }
  
    function galleryBuilder() {
        if ( document.URL.toLowerCase().indexOf('/gyt/')!=-1 && (document.URL.toLowerCase().indexOf('/details')!=-1 || document.URL.toLowerCase().indexOf('/volets')!=-1 || document.URL.toLowerCase().indexOf('/clotures')!=-1) ) {
        // parse content for a potential gallery to build.
        var items = getElementsByTagClass('div', 'colright', document.getElementById('text'));
        if ( items ) {
            var imgs = items[0].getElementsByTagName('img');
            if (imgs.length>=2) {
                // gallery contains minimum 2 images in their childs.
                var basedir = '/media/';
                var links = '';
                var maxHeight = 0;
                for (var i=0; i<imgs.length; i++) {
                    imgs[i].setAttribute('id', 'zoomImage'+i);
                    imgs[i].style.position = 'absolute';
                    imgs[i].style.top = '0';
                    imgs[i].style.marginLeft = '50%';
                    imgs[i].style.left = '-'+Math.floor(imgs[i].offsetWidth/2)+'px';
                    imgs[i].style.display = 'none';
                    var thbURL = imgs[i].src.replace(basedir, basedir+'thumbnails/');
                    links += '<a href="#'+imgs[i].id+'" onmouseover="javascript:toggleVisible(\''+imgs[i].id+'\');" onmouseout="javascript:toggleVisible(\''+imgs[i].id+'\');" title="'+imgs[i].alt+'"><img src="'+thbURL+'" alt="'+imgs[i].alt+'"/></a>';
                    maxHeight = (imgs[i].height > maxHeight) ? imgs[i].height : maxHeight;
                    }
                imgs[0].parentNode.style.position = 'relative';
                imgs[0].parentNode.style.height = maxHeight+'px';
                imgs[0].parentNode.style.background = 'url(/images/gyt/perso_boite.gif) no-repeat center center';
                items[0].parentNode.innerHTML += '<blockquote id="galleryMenu"><em>Détails disponibles :</em><br/>'+links+'</blockquote>';
            }
        }}
    }
    
/*****  third party scripts  ******/
/**
 * window.onload manager by http://www.ibilab.net/
 */
function addToStart(fnc){
  if(!window.listStart) window.listStart = new Array();
  window.listStart.push(fnc);
}
function start(){
  var ls = window.listStart;
  if(ls){
    for(i=0; i<ls.length; i++){
      fnc = ls[i];
      if(typeof(fnc) == 'function'){
        fnc();
      } else {
        eval(fnc);
      }
    }
  }
}
window.onload = start;
/*****  /third party scripts  ******/

/***********  Events on load  ***********/

function gammeSpecific() {
    if(content = document.getElementById('gamme')) {
        titleAr = content.getElementsByTagName('h3');
        for(var i=0; i<titleAr.length; i++) {
            titleAr[i].innerHTML = '<span>'+titleAr[i].innerHTML+'</span>';
        }
    }
}

function checkTheme(name) {
   var i, a, main;
   for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
     if(a.getAttribute("rel").indexOf("style") != -1
        && a.getAttribute("href").indexOf(name) != -1) {
        return true;
        break;
     }
   }
}

function bannerBuilder() {
    if(document.getElementById('chaptban').innerHTML.length==0) {
        if( document.getElementById('argumentaires') && document.getElementById('rubriques') ) {
            var fo = new FlashObject("/images/gyt/preloader.swf?movie=/images/gyt/gyt.swf", "banswf", "950", "190", "7", "#000");
            fo.addParam("scale", "exactfit");
            fo.addParam("quality", "best");
            fo.write("chaptban");
        } else {
            document.getElementById('chaptban').innerHTML += '<img src="/images/gyt/bangen.jpg" alt="Gammes de produits GYT" />';
        }    
    }
}

addToStart(bannerBuilder);  // build correct banner
addToStart(gammeSpecific);  // gamme related mods
addToStart(galleryBuilder); // build a rollover gallery (URL details-* && 2 cols && colright contains >= 2 images)
// Complex elements, CSS related
if( document.URL.toLowerCase().indexOf('/gyt/index.html')==-1) {
    addToStart("makeElementComplex('contents.h1', '<img src=\"/images/gyt/h1_gauche.gif\"/>%S')");
    addToStart("makeElementComplex('contents.h2', '<img src=\"/images/gyt/h1_gauche.gif\"/>%S')");
}


