if (window.addEventListener) {
  window.addEventListener('DOMMouseScroll', wheel, false);
}
window.onmousewheel = document.onmousewheel = wheel;

var stop_image = 0;
var size_level = 15;
var bb = 0;
var fadetime = 300; //페이드인 아웃 시간

function wheel(event){
  var delta = 0;
  if (!event) event = window.event;
  if (event.wheelDelta) {
  delta = event.wheelDelta/-120;
  if (window.opera) delta = delta;
  } else if (event.detail) {
     delta = event.detail/3;
  }
  if(stop_image==1) {
    stop(event);
    if(size_level==15) { bb = $("#clbox_image").width(); }
    if(delta>0) {
      if(size_level>1) {
        cc = $("#clbox_image").width() - Math.round(bb/15);
        $("#clbox_image").css("width",cc);
        clbox_center();
        size_level--;
      }
    } else {
      if(size_level<30) {
        cc = $("#clbox_image").width() + Math.round(bb/15);
        $("#clbox_image").css("width",cc);
        clbox_center();
        size_level++;
      }
    }
  }
}

function stop(evnt) {
	if (!evnt) return;
	try	{ evnt.stopPropagation(); }
	catch(err) {};
	evnt.cancelBubble = true;
	try { evnt.preventDefault(); }
	catch(err) {};
	return (evnt.returnValue = false);
}

function clbox_center() {
  if($("#clbox_view").html()!="") {
    var viewleft = getPageScroll()[0] + ((getPageSize()[0]-$("#clbox_view").width())/2);
    var viewtop = getPageScroll()[1] + ((getPageSize()[1]-$("#clbox_view").height())/2);
    viewleft = Math.round(viewleft);
    viewtop = Math.round(viewtop);
    if($("#clbox_view").width() >= getPageSize()[0]) { viewleft = 0; }
    if($("#clbox_view").height() >= getPageSize()[1]) { viewtop = getPageScroll()[1]; }

    $("#clbox_view").css({"left":viewleft,"top":viewtop});
    $("#clbox_back").css({"width":getPageSize()[0],"height":getPageSize()[1]});
    $("#clbox_back").css({"left":0,"top":0});
  }
}


function getPageScroll() {
  var xScroll, yScroll;
  if($.browser.safari==true) {
    yScroll = document.body.scrollTop;
    xScroll = document.body.scrollLeft;
  } else {
    yScroll = document.documentElement.scrollTop;
    xScroll = document.documentElement.scrollLeft;
  }
  return new Array(xScroll,yScroll)
}

function getPageSize() {
  var windowHeight;
  var windowWidth;
  windowWidth = document.documentElement.clientWidth;
  windowHeight = document.documentElement.clientHeight;
  return new Array(windowWidth,windowHeight)
}

var prevOnScroll = window.onscroll;
window.onscroll = function () {
  $("div#clbox_load").css("top",getPageScroll()[1]+10);
  if(getPageSize()[1] > $("#clbox_view").height()) {
    clbox_center();
  }
}


var prevOnResize = window.onresize;
window.onresize = function () {
  if(getPageSize()[1] > $("#clbox_view").height() || getPageSize()[0] > $("#clbox_view").width()) {
    clbox_center();
  }
}

function clbox_show(type,obj) {
  var image_load = 0;
  var data = "";
  var original = 0;
  var resize = 0;
  if(type=="image") {
    if(obj) {
      size_level = 15;
      data = '<img id="clbox_image" src="'+obj+'" alt="" style="cursor:crosshair;display:none;" ondblclick="clbox_show();" onmouseover="stop_image=1" onmouseout="stop_image=0" />';
      $("#clbox_view").click(function(){clbox_show()}).html(data);
      $("#clbox_image").mousedown(function(){return false;}).click(function(){return false;}).draggable();
      $("#clbox_back").hide().fadeIn(fadetime);
      $("#clbox_image").load(function(){
        if(image_load==0) {
          $("#clbox_image").hide().fadeIn(fadetime,function(){
            if($.browser.msie==true && $.browser.version=="6.0") {
	          	$('#clbox_back').css({
	          	  top:$(document).scrollTop()
	          	  ,left:$(document).scrollLeft()
	          	});
            }
          });
          clbox_center();
          image_load++;
        }
      });
      $("#clbox_view").hide().fadeIn(fadetime);
    }
  } else if(type=="html") {
    if(obj) {
      $.get(obj, {},
        function(data){
        var d= data.split("||");
        if(d[0]=="false") {
          alert(d[1]);
          return false;
        } else {
          $("#clbox_view").html(data);
          $("#clbox_view").hide().fadeIn(fadetime);
          $("#clbox_back").hide().fadeIn(fadetime,function(){
            if($.browser.msie==true && $.browser.version=="6.0") {
	          	$('#clbox_back').css({
	          	  top:$(document).scrollTop()
	          	  ,left:$(document).scrollLeft()
	          	});
            }
          });
          clbox_center();
        }
      });
    }
  } else if(type=="change") {
    if(obj) {
      $.get(obj, {},
        function(data){
        var d= data.split("||");
        if(d[0]=="false") {
          alert(d[1]);
          return false;
        } else {
          $("#clbox_view").html(data);
          $("#clbox_view").hide().fadeIn(fadetime);
          clbox_center();
        }
      });
    }
  } else {
    stop_image = 0;
    $("#clbox_view").html("").show().fadeOut(fadetime,function(){$("#clbox_view").css({"left":0,"top":0});});
    $("#clbox_back").show().fadeOut(fadetime);
  }
}
