// *****************
// **** ImageGallery ****
// *****************
function ImageGallery(objectname, objTargetDIV) {
    
    
    //variables
    this.objectname = objectname;
    this.objDIV = objTargetDIV
    this.objDIVList = null;
    this.selectedIndex = 0;
    
    //constructor
    this.constructor = constructor;
    function constructor() {
        this.objDIVList = document.createElement("DIV");
        var index = 0;
        var listhtml = "";
        for (var i=0; i<this.objDIV.childNodes.length; i++){
            if (this.objDIV.childNodes[i].nodeName=="IMG") {
                var title = this.objDIV.childNodes[i].getAttribute("title");
                listhtml += "<a href='#' onclick='" + this.objectname + ".showSelecteIndexAsBigImage();' onmouseover='" + this.objectname + ".setSelecteIndex(" + index + ")'>" + title +"</a>";
                index++;
                var s = this.objectname + ".showBigImage(this)";
                this.objDIV.childNodes[i].onclick = function() {eval(s);};
            }
        }
        this.objDIVList.innerHTML = listhtml;
        this.objDIVList.className = "list";
        this.objDIV.appendChild(this.objDIVList)
        this.setSelecteIndex(0);
    }
    
    //methods
    this.setSelecteIndex = setSelecteIndex;
    function setSelecteIndex(index) {
        var counter = 0;
        for (var i=0; i<this.objDIV.childNodes.length; i++){
            if (this.objDIV.childNodes[i].nodeName=="IMG") {
                if (counter==index) {
                    this.objDIV.childNodes[i].style.display = "block";
                } else {
                    this.objDIV.childNodes[i].style.display = "none";
                }
                counter++;
            }
        }
        counter=0;        
        for (var i=0; i<this.objDIVList.childNodes.length; i++){
            if (this.objDIVList.childNodes[i].nodeName=="A") {
                var anchor = this.objDIVList.childNodes[i];
                if (counter==index) {                    
                    anchor.className = "selected";
                } else {
                    anchor.className = "";
                }
                counter++;
            }
        }
        this.selectedIndex = index;
    }
    this.showSelecteIndexAsBigImage = showSelecteIndexAsBigImage;
    function showSelecteIndexAsBigImage() {
        var counter = 0;
        for (var i=0; i<this.objDIV.childNodes.length; i++){
            if (this.objDIV.childNodes[i].nodeName=="IMG") {
                if (counter==this.selectedIndex) {
                    this.showBigImage(this.objDIV.childNodes[i])
                }
                counter++;
            }
        }
    }
    this.showBigImage = showBigImage;
    function showBigImage(objIMGsource) {
        var aUrl = objIMGsource.src.replace(".jpg","_big.jpg");
        var objDIV = document.createElement("DIV");
        var objIMG = document.createElement("IMG");
        var s = this.objectname + ".showBigImageLoaded(this)";        
        objIMG.onload = function(e) {eval(s)};
        objIMG.onclick  = function () {this.parentNode.parentNode.removeChild(this.parentNode);}
        objIMG.src = aUrl;        
        objDIV.appendChild(objIMG)
        objDIV.style.position = "absolute";
        objDIV.left = "1048px";       
        objDIV.top = "0px";       
        objDIV.className = "imageGalleryPopup";
        objDIV.onclick = function(e) {
            this.parentNode.removeChild(this);
        }     
        objDIV.style.display = "none";   
        document.body.appendChild(objDIV);
        objAjax.showLoadingMessage(objIMGsource)
    }
    this.showBigImageLoaded = showBigImageLoaded;
    function showBigImageLoaded(objIMG) {
        objAjax.hideLoadingMessage();
        if (objIMG) {
            var objDIV = objIMG.parentNode;
            objDIV.style.display = "block";
            objDIV.style.top = parseInt(document.body.clientHeight/2-objIMG.offsetHeight/2,10) + "px";        
            objDIV.style.left = parseInt(document.body.clientWidth/2-objIMG.offsetWidth/2,10) + "px";
        }
    }

        
    //llama al constructor
    this.constructor();
}    


