// ***********************************************
// JavaScript Document
// *****




// ***********************************************
// global vars
// **********************************************

// data / params
var gDATAFILE    = "projects/index.txt"; // data file name

// html tags
var gPARENTID     = "__news__";
//...

// thumbnail
//var gIMAGELIST    = ""; // pas possible les gars ??
//var gIMAGELIST=new Array([3][3]); // news
var gIMAGELIST=new Array(5); // news
for(var i=0; i<gIMAGELIST.length; i++) 
  gIMAGELIST[i]=new Array(3);

var gMAXPOS       = 5; // max images in thumbnail
var gIMGDEFAULT   = {"name":"PT","uri":"pt.gif","caption":""};
var gIMG          = new Object();
// ***********************************************




// ***********************************************
// parse data file into variables
// **********************************************
function parsingFile(_file) {

    // ****
    c=new Array();

    // ****
    e=load(_file);

	a=e.split('\n\n');
    //alert ('load ok ?' + a);
    	
	for(i=0;i<a.length;i++){
      //alert('ai:' + a[i]);

      //parameters : image + title + info
        b=a[i].split('\n');
        //b.shift(); // drop 1st line
  	    //alert('blong:' + b.length);
  	  
  	    //image
  	    gIMAGELIST[i][0]=b.shift();
  	    //alert ('j=0' + i + '.' + '0:' + b.shift());
  	        
        //title
        c=b.shift();
        c=c.replace(/-LINE-/g,''); //paragraph space treatment
        c=c.replace(/-BLACK--/g,'<span>'); //black text treatment
        c=c.replace(/--BLACK-/g,'</span>');
        gIMAGELIST[i][1]=c;
                //  	    //alert ('j=1' + i + '.' + '0:' + b.shift());


        //info
        http=b.pop();
        //alert (c);
        type=http.substr(0,7);
        //alert(type);
        if (type=='http://'){
            link='<span><a href='+http+' target="_blank">'+b.pop()+'</a></span>';
        } else if (type=='PROJECT'){
            link='<span><a href='+http.substr(8,http.length)+'/project.html>'+b.pop()+'</a></span>';
        } else {
            b.push(http);
            link='';
        }
        
        b=b.join('<BR />');
        b=b.replace(/-LINE-/g,''); //paragraph space treatment
        b=b.replace(/-BLACK--/g,'<span>'); //black text treatment
        b=b.replace(/--BLACK-/g,'</span>');
        //
        gIMAGELIST[i][2]=b+link;
//        gIMAGELIST[i][2]=b+'<BR />'+link;
        //alert ('gIMAGELIST' + i + ':' + gIMAGELIST[i][2]);

//        gIMAGELIST[i][3]=link;
        } 
      

      }

      //alert ('gIMAGE 2 0 :' + gIMAGELIST[2]);





// ***********************************************
// create news list
// **********************************************
function IMGManager2(){
    // ****
    this.maxpos     = gMAXPOS;
    this.imgdefault = gIMGDEFAULT;
    this.img        = new Object();
    this.parent     = getEl(gPARENTID);
        

    // ***********************************************
    // ***********************************************
    this.Add = function(_pos, _name, _title, _info){
      // **** name + title + info
      //_pos = ( isNaN(_pos) ) ? 0 : Math.abs(parseInt(_pos, 10))
      //_pos = (_pos > this.maxpos) ? this.maxpos - 1: _pos - 1;

      // ****
      this.img[_pos] = new Object();

      // ****
      this.img[_pos].name    = _name;
      this.img[_pos].title   = _title;
      this.img[_pos].info    = _info;
      //this.img[_pos].thumb   = getThumb(_name);
      //alert (this.img[_name].name); 
    }

    // ***********************************************
    // ***********************************************
    this.preLoad = function(){
      // ****
      var i, iMax = gIMAGELIST.length;

      // ****
      for(i in gIMAGELIST){
        // ****
        //alert(i + " : " + gIMAGELIST[i][0] + ":" + gIMAGELIST[i][1] + ":" + gIMAGELIST[i][2] )
        gIMG[i] = document.createElement("img");
        gIMG[i].src = 'projects/'+gIMAGELIST[i][0]+'.jpg';
      }
    }


    // ***********************************************
    // ***********************************************
    this.buildHtmlImgBlock = function(_o){
      // ****
      //_o = this.img2[i]
      //alert('_o:' + _o.name);
      // _o = this.img[i] filled by function Add
      var oDiv  = document.createElement("div");

      var oDiv1 = document.createElement("div");
//      var oA1   = document.createElement("a");
      var oImg  = document.createElement("img");

      var oDiv2 = document.createElement("div");
//      var oA2   = document.createElement("a");

      // **** IMAGE        
      oImg.src = 'projects/'+_o.name+'.jpg';
      oImg.name = _o.name;
//        oA1.href = _o.name+'/project.html?categ='+gCATEG; // TODO : project.html vers index.html pour affichage auto ??
//        oA2.href = _o.name+'/project.html?categ='+gCATEG; // TODO : project.html vers index.html pour affichage auto ??
//        oA2.innerHTML = '<span>' + this.img[_o.name].title + '</span><BR />' + this.img[_o.name].intro + '<BR /><span>⎮ more ⎮</span>'
      
      oDiv2.innerHTML = _o.title+'<BR />'+_o.info;
      
      //css    
      oDiv1.id = '__newsimage__';
      oDiv2.id = '__newsinfo__';
      oDiv.id = '__newsbox__';
      //css IE6    
      oDiv1.className = 'NewsImage';
      oDiv2.className = 'NewsInfo';
      oDiv.className = 'NewsBox';
      //css IE6    
 
      // ****
      var __o__ = this;

      // ****
      oImg.onclick = function(){
        //
//        alert("image name : " + this.name)
      }

       // ****
      oImg.onmouseover = function(){
        //__o__.imgviewer.src     = _o.name; //this.name; //gIMG[this.name].src;
        //__o__.caption.innerHTML = _o.caption;
        //showit(gVIEWERID);
        //
        //__o__.infolink.className = ""; // deselection if selected...
      }
      
       // ****
//      oImg.onmouseout = function(){
        //
//        showit(gOPENERID);
//        __o__.imgviewer.src     = "";
//        __o__.caption.innerHTML = "";
//      }

      // ****
//      oA1.appendChild(oImg);
      oDiv1.appendChild(oImg);
//      oDiv2.appendChild(oA2);
      oDiv.appendChild(oDiv1);
      oDiv.appendChild(oDiv2);

      // ****
      this.parent.appendChild(oDiv);

    }

    // ***********************************************
    // ***********************************************
    this.buildDefaultHtmlImgBlock = function(_o){
      // ****
      var oDiv  = document.createElement("div");

      // ****
      //oDiv.className = "EmptyBlock";

      // ****
      this.parent.appendChild(oDiv);
    }

    // ***********************************************
    // ***********************************************
    this.Show = function(){
      // ****
      if( this.parent != null ){
        // ****
        var i, iMax = this.maxpos;
        var tmp = null;
        
        // **** thumbnail
        for(i = 0; i < iMax; i++){
          // ****
          if(i in this.img){
            // **** build img blocks
            this.buildHtmlImgBlock(this.img[i]);
          }
          else
          {
            // **** set default img
            this.buildDefaultHtmlImgBlock(this.imgdefault);
          }
        }
      }
      else{
        // **** TODO : HAS NO PARENT
      }
    }

    // ***********************************************
    // ***********************************************
    this.Init = function(){
      
      var i, iMax = gIMAGELIST.length;

      // ****
      for(i in gIMAGELIST){
        // ****
        if (gIMAGELIST[i][0] != null){
          //alert(i + " : " + gIMAGELIST[i][0] )
          this.Add(i, gIMAGELIST[i][0], gIMAGELIST[i][1], gIMAGELIST[i][2]);
        }
      }
    }

    // ***********************************************
    // ***********************************************
      //??? c'est le main ??
    this.Init();
}





// *********************************************
// ****
function init(){

    // **** 
    loadParam();

    // **** Parsing text file
    //alert( "gDATAFILE : " + gDATAFILE)

    parsingFile(gDATAFILE);
       
    // **** Preload IMG
    var im = new IMGManager2();
    im.Show();    // first we show text and thumbnail
    im.preLoad(); // after we make preload of big images
}
// ****





