﻿
function getPageWidth(){
       return document.body.scrollWidth;
}

function getPageHeight(){
       return document.body.scrollHeight;
}

function windowHeight(){
       var de = document.documentElement;
      return self.innerHeight  || (de && de.clientHeight) || document.body.clientHeight;
}

function windowWidth(){
      var de = document.documentElement;
      return self.innerWidth  || (de && de.clientWidth) || document.body.clientWidth;
}
function hideRegForm(){
       var formDiv = document.getElementById("registration-form");
       hideElement(formDiv);
}

function showRegistrationForm(){
      var formDiv = document.getElementById("registration-form");
      var linkId = document.getElementById("reglink"); 
      var coors = findElementPosition(linkId); 
      var posx  = coors[0];;
      var posy =  coors[1];
      setX(formDiv, 468);
      setY(formDiv, posy+20); 
      showElement(formDiv);
      setElementOpacity(formDiv,0);
      
      fadeInElement2(formDiv,100,300);
     // slideDown(formDiv);
}

function findElementPosition(elem){
       var curposY = 0;
       var curposX = 0;
       if(elem.offsetParent){
              while(elem.offsetParent){
                     curposX += elem.offsetLeft;
                     curposY += elem.offsetTop;
                     elem = elem.offsetParent;
              }
       } 
      return [curposX, curposY]; 
}

function showImage(contentId, url, title){
       showImageViewerOverlay();
      var wrapperDiv = document.getElementById("image-viewer");
      var pictureDiv = document.getElementById("image-viewer-picture");
      var img = document.createElement("img");
      var titleDiv = document.getElementById("image-viewer-title");
      var descriptionDiv = document.getElementById("image-viewer-description");
      img.src = url;
       img.id= "image-viewer-bigpic";
      pictureDiv.appendChild(img);
      titleDiv.innerHTML = title;
      var descContent = document.getElementById("gall-image-text" + contentId);
      descriptionDiv.innerHTML = descContent.innerHTML;      
      showElement(wrapperDiv);
      centerImageViewer();
      return false; 
}

function closeActivityConfirmation(){
      var activityConfirm = document.getElementById("activity-confirm"); 
       hideElement(activityConfirm);
}

function hideTipAFriend(){
    var tipAFriend = document.getElementById("tip-a-friend");
     hideElement(tipAFriend);
}

function showTipAFriend(){
    var tipAFriend = document.getElementById("tip-a-friend");
    showElement(tipAFriend);    
}

function showImageViewerOverlay(){
      var overlay = document.getElementById("image-viewer-overlay"); 
      //alert(overlay.id);
      //overlay.style.height = windowHeight() + "px";
     // overlay.style.width = windowWidth() + "px"; 
      overlay.onclick = hideImageViewerOverlay;
      
      
      showElement(overlay);
      setElementOpacity(overlay,40);
      //fadeInElement(overlay);
}

function hideImageViewerOverlay(){
      hideElement(document.getElementById("image-viewer-overlay"));
      hideElement(document.getElementById("image-viewer"));
      var pictureDiv = document.getElementById("image-viewer-picture");
      if(pictureDiv.firstChild) pictureDiv.removeChild(pictureDiv.firstChild);
}



function scrollX(){
       var de = document.documentElement;      
      return self.pageXOffset || (de && de.ScrollLeft) || document.body.scrollLeft; 
}

function scrollY(){
       var de = document.documentElement;      
      return self.pageYOffset || (de && de.ScrollTop) || document.body.scrollTop; 
}

function centerImageViewer(){

}

function showElement(elem){
       //elem.style.display=elem.$oldDisplay || '';
      elem.style.display = 'block'; 
}

function hideElement(elem){
      var currDisplay  = getStyle(elem,'display');
      if(currDisplay != 'none'){
              elem.$oldDisplay = currDisplay;
      } 
      elem.style.display = 'none';
}
function setElementOpacity(elem, level){
       if(elem.filters){
              elem.style.filter = 'alpha(opacity='+level+')';
              //element.style.filter = "alpha(opacity=" + opacityInPercentage + ")";
       }else{
              elem.style.opacity = level / 100;
       }
}


function fadeInElement2(elem, maxOpacity, durationMs){
       showElement(elem);
    var duration = 300; // in ms
    var fpms = 20/1000;  // frames per millisec
    for(var i=0;i<=durationMs;i+=1/fpms){
        (function(){
            var opac=Math.round(maxOpacity*i/durationMs); 
            window.setTimeout(function(){ 
                setElementOpacity(elem, opac); 
            },Math.round(i)); 
        }) ();
    }
       
}

function fadeInElement(elem){
       setElementOpacity(elem, 0);
       showElement(elem);
       for(var i = 0; i <=50; i += 5){
              (function(){
                     var pos = i;
                     setTimeout(function(){setElementOpacity(elem, pos); }, (pos + 1) *10);
              })();
       }
}

function slideDown(elem){
      elem.style.height = '0px';
      showElement(elem);
      var h = fullHeight(elem);
      for(var i = 0; i <= 100; i + 5){
              (function(){
                    var pos = i;
                    setTimeout(function(){elem.style.height = ((pos / 100) * h ) + "px"; }, (pos + 1) * 10); 
                    //setTimeout(function(){setElementOpacity(elem, pos); }, (pos + 1) *10);
              })();      
      } 
}

function fullHeight(elem){
       var propName = 'display';
       if(getStyle(elem, propName) != 'none'){
              return elem.offsetHeight;// || getHeight(elem);      
       }
      
      var old = resetCSS( elem, {
              display: '', visibility: 'hidden', position: 'absolute'      
      } );
      
      var h = elem.clientHeight || getHeight(elem);
      restoreCSS(elem, old);
      return h;
}

function resetCSS(elem, prop){
      var old = {};
      for(var i in prop){
              old[i] = elem.style[i];
              elem.style[i] = prop[i]; 
      } 
      return old; 
}
function restoreCSS(elem, prop){
       for(var i in prop){
              elem.style[i] = prop[i];
       }
}

function setX(elem, pos){
       elem.style.left = pos + "px";
}

function setY(elem, pos){
       elem.style.top = pos + "px";
}

function getStyle(elem, name){
       if(elem.style[name]){
              return elem.style[name];
       }else if(elem.currentStyle){
              return elem.currentStyle[name];
       }else if(document.defaultView && document.defaultView.getComputedStyle){
              name = name.replace(/([A-Z])/g,"-$1");
              name = name.toLowerCase();              
              var s = document.defaultView.getComputedStyle(elem, "");
              return s && s.getPropertyValue(name);
       }else{
              return null;
       }
}

function getWidth(elem){
    return parseInt(getStyle(elem, 'width'));
}
function getHeight(elem){
    return parseInt(getStyle(elem, 'height'));
}



function centerImageViewer(){
   var imageViewer = document.getElementById("image-viewer");
   if(!imageViewer) return;
   var ivHeight = 350;// getHeight(imageViewer);
   //alert("heigth: " + ivHeight);
   var ivWidth = getWidth(imageViewer);
   //alert("width: " + ivWidth);
   
   var centerY = scrollY() + (windowHeight() / 2 ) - ((ivHeight+300) / 2);
   if(centerY <0)centerY = 0;
   
   var centerX = scrollX() + (windowWidth() / 2) - (ivWidth / 2);
   if(centerX < 0) centerX = 0;
   //alert("imageViewer; " + imageViewer);
   setX(imageViewer, centerX);
   setY(imageViewer, centerY);
    
}