
/* - zoom_image.js - */
jq(document).ready(function() {

   jq("#zoom1 img").mouseover(function() {
      zoomImage(this.src, this.title,this.width,this.height,'#zoom1');
      return false;
   });

   jq("#zoom1").mouseout(function(event) {
      if ((event.relatedTarget.nodeName == 'DIV') || 
	  (event.relatedTarget.nodeName == 'TBODY') ||
	  (event.relatedTarget.nodeName == 'TR') ||
	  (event.relatedTarget.nodeName == 'TD') ||
	  (event.relatedTarget.nodeName == 'LI') ||
	  (event.relatedTarget.nodeName == 'UL') ||
	  (event.relatedTarget.nodeName == 'BODY') ||
	  (event.relatedTarget.nodeName == 'P')) {
         rezoomImage();
      } 
   }); 

   jq("#zoom2 img").mouseover(function() {
      zoomImage(this.src, this.title,this.width,this.height,'#zoom2');
      return false;
   });

   jq("#zoom2").mouseout(function(event) {
      if ((event.relatedTarget.nodeName == 'DIV') || 
	  (event.relatedTarget.nodeName == 'TBODY') ||
	  (event.relatedTarget.nodeName == 'TR') ||
	  (event.relatedTarget.nodeName == 'TD') ||
	  (event.relatedTarget.nodeName == 'LI') ||
	  (event.relatedTarget.nodeName == 'UL') ||
	  (event.relatedTarget.nodeName == 'BODY') ||
	  (event.relatedTarget.nodeName == 'P')) {
         rezoomImage();
      } 
   }); 

   jq("#zoom3 img").mouseover(function() {
      zoomImage(this.src, this.title,this.width,this.height,'#zoom3');
      return false;
   });

   jq("#zoom3").mouseout(function(event) {
      if ((event.relatedTarget.nodeName == 'DIV') || 
	  (event.relatedTarget.nodeName == 'TBODY') ||
	  (event.relatedTarget.nodeName == 'TR') ||
	  (event.relatedTarget.nodeName == 'TD') ||
	  (event.relatedTarget.nodeName == 'LI') ||
	  (event.relatedTarget.nodeName == 'UL') ||
	  (event.relatedTarget.nodeName == 'BODY') ||
	  (event.relatedTarget.nodeName == 'P')) {
         rezoomImage();
      } 
   }); 

   jq("#zoom4 img").mouseover(function() {
      zoomImage(this.src, this.title,this.width,this.height,'#zoom4');
      return false;
   });

   jq("#zoom4").mouseout(function(event) {
      if ((event.relatedTarget.nodeName == 'DIV') || 
	  (event.relatedTarget.nodeName == 'TBODY') ||
	  (event.relatedTarget.nodeName == 'TR') ||
	  (event.relatedTarget.nodeName == 'TD') ||
	  (event.relatedTarget.nodeName == 'LI') ||
	  (event.relatedTarget.nodeName == 'UL') ||
	  (event.relatedTarget.nodeName == 'BODY') ||
	  (event.relatedTarget.nodeName == 'P')) {
         rezoomImage();
      } 
   }); 

   jq("#zoom5 img").mouseover(function() {
       zoomImage(this.src, this.title,this.width,this.height,'#zoom5');
       return false;	
   });

   jq("#zoom5").mouseout(function(event) {
       if ((event.relatedTarget.nodeName == 'DIV') || 
	   (event.relatedTarget.nodeName == 'TBODY') ||
	   (event.relatedTarget.nodeName == 'TR') ||
	   (event.relatedTarget.nodeName == 'TD') ||
   	   (event.relatedTarget.nodeName == 'LI') ||
	   (event.relatedTarget.nodeName == 'UL') ||
	   (event.relatedTarget.nodeName == 'BODY') ||
	   (event.relatedTarget.nodeName == 'P')) {
          rezoomImage();
       } 
    });

    jq("#zoomImg").mouseout(function(event) {
       rezoomImage();
    });
 
    jq("#zoomorig1 img").mouseover(function() {
       zoomOrigImage(this.src,this.title,this.width,this.height,'#zoomorig1');
       return false;	
    });

    jq("#zoomorig1").mouseout(function(event) {
       if ((event.relatedTarget.nodeName == 'DIV') || 
	   (event.relatedTarget.nodeName == 'TBODY') ||
	   (event.relatedTarget.nodeName == 'TR') ||
	   (event.relatedTarget.nodeName == 'TD') ||
   	   (event.relatedTarget.nodeName == 'LI') ||
	   (event.relatedTarget.nodeName == 'UL') ||
	   (event.relatedTarget.nodeName == 'BODY') ||
	   (event.relatedTarget.nodeName == 'P')) {
          rezoomOrigImage();
       } 
    });

    jq("#zoomorig2 img").mouseover(function() {
       zoomOrigImage(this.src,this.title,this.width,this.height,'#zoomorig2');
       return false;	
    });

    jq("#zoomorig2").mouseout(function(event) {
       if ((event.relatedTarget.nodeName == 'DIV') || 
	   (event.relatedTarget.nodeName == 'TBODY') ||
	   (event.relatedTarget.nodeName == 'TR') ||
	   (event.relatedTarget.nodeName == 'TD') ||
   	   (event.relatedTarget.nodeName == 'LI') ||
	   (event.relatedTarget.nodeName == 'UL') ||
	   (event.relatedTarget.nodeName == 'BODY') ||
	   (event.relatedTarget.nodeName == 'P')) {
          rezoomOrigImage();
       } 
    });
    jq("#zoomorig3 img").mouseover(function() {
       zoomOrigImage(this.src,this.title,this.width,this.height,'#zoomorig3');
       return false;	
    });

    jq("#zoomorig3").mouseout(function(event) {
       if ((event.relatedTarget.nodeName == 'DIV') || 
	   (event.relatedTarget.nodeName == 'TBODY') ||
	   (event.relatedTarget.nodeName == 'TR') ||
	   (event.relatedTarget.nodeName == 'TD') ||
   	   (event.relatedTarget.nodeName == 'LI') ||
	   (event.relatedTarget.nodeName == 'UL') ||
	   (event.relatedTarget.nodeName == 'BODY') ||
	   (event.relatedTarget.nodeName == 'P')) {
          rezoomOrigImage();
       } 
    });

    jq("a.zoomImage").click(function(){
       var t = this.title;
       zoomImageLink(t,this.href);
       this.blur();
       return false;
    });
});

function zoomImageLink(title,url) {
// based on ThickBox 3.1 (http://jquery.com/demo/thickbox/) adjusted to our needs, e.hilbe 2010
   jq("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
   jq("#TB_overlay").click(TB_remove);
   jq("#TB_overlay").show();
   jq("body").append("<div id='TB_load'><div id='TB_loadContent'></div></div>");

   var baseURL;
   if(url.indexOf("?")!==-1){ //ff there is a query string involved
      baseURL = url.substr(0, url.indexOf("?"));
   } else { 
      baseURL = url;
   }
   var urlString = /\.jpg|\.jpeg|\.png|\.gif|\.html|\.htm|\.php|\.cfm|\.asp|\.aspx|\.jsp|\.jst|\.rb|\.txt/g;
   var urlType = baseURL.match(urlString);
   TB_WIDTH = 600 + 30;
   TB_HEIGHT = 300 + 60;
   tb_position();
   jq("#TB_load").remove();
   jq("#TB_ImageOff").click(TB_remove);
   jq("#TB_window").css({display:"block"}); //for safari using css instead of show
// if image, get size of image
   if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif'){//code to show images
      imgPreloader = new Image();
      imgPreloader.onload = function(){    
         imgPreloader.onload = null;
        
      // Resizing large images - orginal by Christian Montoya edited by me.
         var pagesize = tb_getPageSize();
         var x = pagesize[0] - 150;
         var y = pagesize[1] - 150;
         var imageWidth = imgPreloader.width;
         var imageHeight = imgPreloader.height;
         if (imageWidth > x) {
             imageHeight = imageHeight * (x / imageWidth); 
  	     imageWidth = x; 
             if (imageHeight > y) { 
                 imageWidth = imageWidth * (y / imageHeight); 
                 imageHeight = y; 
             }
         } else if (imageHeight > y) { 
             imageWidth = imageWidth * (y / imageHeight); 
             imageHeight = y; 
             if (imageWidth > x) { 
                 imageHeight = imageHeight * (x / imageWidth); 
                 imageWidth = x;
             }
          }
         // End Resizing
      
          TB_WIDTH = imageWidth + 30;
          TB_HEIGHT = imageHeight + 60;
          jq("#TB_window").append("<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='"+url+"'width='"+imageWidth+"' height='"+imageHeight+"' alt='"+title+"'/></a>" + "<div id='TB_caption'>"+title+ "</div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>schliessen</div>");     
          jq("#TB_closeWindowButton").click(TB_remove);
      
          document.onkeydown = function(e){   
             if (e == null) { // ie
                keycode = event.keyCode;
             } else { // mozilla
                keycode = e.which;
             }
          };
          tb_position();
          jq("#TB_load").remove();
          jq("#TB_ImageOff").click(TB_remove);
          jq("#TB_window").css({display:"block"}); //for safari using css instead of show
      };
      imgPreloader.src = url;
   } 
}

function TB_remove() {
   jq("#TB_imageOff").unbind("click");
   jq("#TB_closeWindowButton").unbind("click");
   jq("#TB_window").fadeOut("fast",function(){jq('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
   jq("#TB_load").remove();
   if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
      jq("body","html").css({height: "auto", width: "auto"});
      jq("html").css("overflow","");
   }
   document.onkeydown = "";
   document.onkeyup = "";
   return false;
}

function tb_getPageSize(){
  var de = document.documentElement;
  var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
  var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
  arrayPageSize = [w,h];
  return arrayPageSize;
}

function tb_position() {
  jq("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
  if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
     jq("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
  }
}

function zoomImage(src,title,w,h,id) {

  var w_add = 1 * w;
  var w_new = parseInt((w + w_add),10);
  var w_margin = parseInt((w_add/2),10);

  var h_add = 1 * h;
  var h_new = parseInt((h + h_add),10);
  var h_top = parseInt((h_new),10);

  var zoomid = id;

  jq(zoomid).unbind('mouseover');

  if (jq('#zoom').length == 0) {
    var html = "<div id='zoom' style='display:none; z-index: 999;'> \
                   <img id='zoomImg' src='"+src+"' width='"+w_new+"' height='"+h_new+"' alt='"+title+"'/></div>";
    jq(zoomid).append(html);
  }

  jq('#zoom').css({marginTop: '-' + h_top + 'px'}); 
  jq('#zoom').css({marginLeft: '-' + w_margin + 'px'}); 
  jq('#zoom').css({marginRight: '-' + w_margin + 'px'}); 
  jq('#zoom').show(); 
  document.onkeydown = function(e){   
      if (e == null) { // ie
          keycode = event.keyCode;
      } else { // mozilla
          keycode = e.which;
      }
   };
   jq('#zoom').animate({
      opacity : "show",
      width   : w_new,
      height  : h_new
      }, 500, null, function() {
    }); 
}

function rezoomImage() {
   jq("#zoom").unbind('mouseout').remove();
   jq("#zoom").hide();
   document.onkeydown = "";
   document.onkeyup = "";
   return false;
}

function zoomOrigImage(src,title,w,h,id) {
   var zoomid = id;
   jq(zoomid).unbind('mouseover');
   if (jq('#zoomorig').length == 0) {
       var html = "<div id='zoomorig' style='display:none; z-index: 999;'></div>";
       jq(zoomid).append(html);
   }

   var baseURL;
   if(src.indexOf("?")!==-1){ //ff there is a query string involved
      baseURL = src.substr(0, src.indexOf("?"));
   } else { 
      baseURL = src;
   }

   baseURL = src.substr(0, src.lastIndexOf("/"));
   var urlString = /\.jpg|\.jpeg|\.png|\.gif|\.html|\.htm|\.php|\.cfm|\.asp|\.aspx|\.jsp|\.jst|\.rb|\.txt/g;
   var urlType = baseURL.match(urlString);
   url = baseURL;
// if image, get size of image
   if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif'){//code to show images
      imgPreloader = new Image();
      imgPreloader.onload = function(){    
         imgPreloader.onload = null;
        
      // Resizing large images - orginal by Christian Montoya edited by me.
         var pagesize = tb_getPageSize();
         var x = pagesize[0] - 150;
         var y = pagesize[1] - 150;
         var imageWidth = imgPreloader.width;
         var imageHeight = imgPreloader.height;
         if (imageWidth > x) {
             imageHeight = imageHeight * (x / imageWidth); 
  	     imageWidth = x; 
             if (imageHeight > y) { 
                 imageWidth = imageWidth * (y / imageHeight); 
                 imageHeight = y; 
             }
         } else if (imageHeight > y) { 
             imageWidth = imageWidth * (y / imageHeight); 
             imageHeight = y; 
             if (imageWidth > x) { 
                 imageHeight = imageHeight * (x / imageWidth); 
                 imageWidth = x;
             }
          }
         // End Resizing
         var w_add = imageWidth - w;
  	 var w_margin = parseInt((w_add/2),10);

	 var h_add = imageHeight - h;
	 var h_top = parseInt((h_add/2),10);
      
          jq("#zoomorig").append("<img id='OR_Image' src='"+url+"'width='"+imageWidth+"' height='"+imageHeight+"' alt='"+title+"'/>");     
      
  	  jq('#zoomorig').css({marginTop: '-' + h_top + 'px'}); 
  	  jq('#zoomorig').css({marginLeft: '-' + w_margin + 'px'}); 
  	  jq('#zoomorig').css({marginRight: '-' + w_margin + 'px'}); 
  	  jq('#zoomorig').show(); 
          document.onkeydown = function(e){   
             if (e == null) { // ie
                keycode = event.keyCode;
             } else { // mozilla
                keycode = e.which;
             }
          };
	  jq('#zoomorig').animate({
      		opacity : "show",
      		width   : imageWidth,
      		height  : imageHeight
      		}, 500, null, function() {
    	  }); 
          jq("#zoomorig").css({display:"block"}); //for safari using css instead of show
      };
      imgPreloader.src = url;
   } 

}

function rezoomOrigImage() {
   jq("#zoomorig").unbind('mouseout').remove();
   jq("#zoomorig").hide();
   document.onkeydown = "";
   document.onkeyup = "";
   return false;
}


