
function lightBox(){

  var thisFunction = this;
  var objBody = $("body")[0];
  var objloading;
  var lightBack;
  var lightBox;
  var windowSize = getWindowSize();
  var pageSize = getPageSize();
  var pageScroll = getPageScroll();
  
  this.setLightBack = function(){  
    lightBack = document.createElement("div");
    lightBack.setAttribute('id','light_back');
    objBody.insertBefore(lightBack, objBody.firstChild);
    var pageSize = getPageSize();
    lightBack.style.height = pageSize.height+'px'; 
  }
  
  this.setLightBox = function(widthBox,heightBox){  
    lightBox = document.createElement("div");
    lightBox.setAttribute('id','light_box');
    lightBox.style.visibility="hidden";
    objBody.insertBefore(lightBox, objBody.firstChild);
    lightBox.style.width = (widthBox)+'px';
    lightBox.style.height = (heightBox+20)+'px';
    this.centerObj(lightBox);
    lightTop = document.createElement("div");
    lightTop.setAttribute('id','light_top');
    lightBox.appendChild(lightTop);
    lightBox.onclick = function(){
      lightBox.style.display = 'none';
      $('#light_back').style.display = 'none';
    }
  }
  
  this.centerObj = function(obj){
    var topPos = ((windowSize.height-obj.offsetHeight)>0)? (windowSize.height-obj.offsetHeight) : 10;
    var leftPos = ((pageSize.width - obj.offsetWidth)>0)? pageSize.width - obj.offsetWidth : 10;
    obj.style.top = (topPos/2)+pageScroll.top + 'px';
    obj.style.left = (leftPos/2)+pageScroll.left + 'px';		
    obj.style.visibility="visible";
  }
  
  this.showLoading = function(){
    objloading = document.createElement("img");
    objloading.setAttribute('id','photo_loading');
    objBody.insertBefore(objloading, objBody.firstChild);
    objloading.style.visibility="hidden";
    objloading.src='images/light_loading.gif';
  
    var imagesLoading=new Image();
    imagesLoading.onload = function() {         
      setTimeout(function(){   
        thisFunction.centerObj(objloading);
      }, 100);                
    };
    imagesLoading.src='images/light_loading.gif';
  }
  
  this.showImg = function(srcPhoto,legend){
    var objImg = document.createElement("img");
    objImg.setAttribute('id','photo_element');
    objBody.insertBefore(objImg, objBody.firstChild);
    objImg.style.visibility="hidden";
    objImg.src=srcPhoto;
    
    var objLegend = document.createElement("div");
    objLegend.setAttribute('id','photo_legend');
    objLegend.innerHTML = legend;
  
    var imagesLoader=new Image();
    imagesLoader.onload = function() {         
      setTimeout(function(){
        objloading.style.display = 'none';
        var lightBoxHeight = (legend)? (objImg.offsetHeight+30) : (objImg.offsetHeight+10);
        thisFunction.setLightBox((objImg.offsetWidth+10),lightBoxHeight);
        lightBox.appendChild(objImg);
        lightBox.appendChild(objLegend);
        objImg.style.visibility="visible";
      }, 1000);                
    };
    imagesLoader.src=srcPhoto;
  }
  
  this.showAjax = function(srcAjax){
    var objContent = document.createElement("div");
    objContent.setAttribute('id','light_content');
    objContent.style.width = '850px';
    objContent.style.height = '600px';   
    $('#photo_loading').style.display = 'none';
    thisFunction.setLightBox(850,600);
    $('#light_box').appendChild(objContent);
    $('#light_top').innerHTML = srcAjax.getElementsByTagName('title')[0].firstChild.nodeValue;
    objContent.innerHTML = srcAjax.getElementsByTagName('content')[0].firstChild.nodeValue;
  }

}

function lightBoxImg(srcPhoto,legend){  
  var lightImg = new lightBox();
  lightImg.setLightBack();
  lightImg.showLoading();
  lightImg.showImg(srcPhoto,legend);
  
}

function lightBoxAjax(xmlSrc){ 
  var lightAjax = new lightBox();
  lightAjax.setLightBack();
  lightAjax.showLoading();
  ajaxRequest("ayuda.xml",null, setAjaxBox); 
}

function setAjaxBox(data){  
  var setAjax = new lightBox();
  setAjax.showAjax(data.responseXML);
}

