﻿function _debug(str){
	var div = document.createElement("div");
	div.innerHTML = str;
	$("#debugg").append(div);
}
function GetViewWidth(full)
{
	if(!jQuery)
		return null;
	return full ? Math.max(jQuery(document).width(), jQuery(window).width()) : jQuery(window).width();
}

function GetViewHeight(full)
{
	if(!jQuery)
		return null;
	return full ? Math.max(jQuery(document).height(), jQuery(window).height()) : jQuery(window).height();
}
function ShowAdWin(){
	var win = $(".popup");
	var winScroll = $(".popup div");
	winScroll.scrollTop(0);
	var scroller = $(".scroll-container");
	var tree = $(".tree");
	var dragObj = $(".drag-me");
	var updown = $(".up-down");
	var closeButton = $(".close");
	$(".overlay").css({
		width: GetViewWidth(),
		height: GetViewHeight(),
		backgroundColor: "#fff",
		opacity: 0
	});
	$(".overlay").fadeTo(200, .8);
	$(".POPUP-Container").fadeIn();
	win.css({left:GetViewWidth()/2 - win.width()/2 - 25});
	tree.css({
		left: parseInt(win.css("left")) + win.width() - 5,
		top: parseInt(win.css("top")) + 20,
		height: win.height() + 40
	});
	updown.css({
		top: parseInt(tree.css("top")) + tree.height() - updown.height() - 10,
		left: parseInt(tree.css("left")) - updown.width()/2 + 20
	});
	closeButton.css ({
		left: parseInt(win.css("left")) + win.width() + 28,
		top: parseInt(win.css("top")) + 32
	});
	var maxScroll, step;
	function _init(){
		if(maxScroll !== undefined)
			return;
		
		var scrollContent = $(".scroll-content");
		maxScroll = scrollContent.height() + 
			parseInt(scrollContent.css("padding-top")) +
			parseInt(scrollContent.css("padding-bottom")) - 
			winScroll.height();
		step = maxScroll /(scroller.height() - dragObj.height());
	};
	dragObj.draggable({
		axis: 'y',
		containment:'.scroll-container',
		scroll: false,
		drag: function(event, ui){
			_init();
			var pos = ui.position.top;
			var scrollTo = pos*step;
			winScroll.scrollTop(scrollTo);
		},
		stop: function(event, ui){
			_init();
			var pos = ui.position.top;
			var scrollTo = pos*step;
			ScrollWin(scrollTo, true);
		}
	});
	tree.click(function(e){
		_init();
		var tC = e.target.className;
		if(tC.indexOf("scroll-container") < 0 && tC.indexOf("tree") < 0) return;
		/*var scrollTo = (e.pageY - parseInt($(scroller[0].parentNode).css("top")))*step;
		_debug(scrollTo);
		*/
		var v = e.pageY - parseInt($(e.target.parentNode).css("top")) - dragObj.height()/2;
		ScrollWin(v*step);
	});
	wheeling = false;
	winScroll.bind("mousewheel", function(e, d){
		_init();
		if(wheeling)
			return;
		wheeling = true;
		var scrollFrom = winScroll.scrollTop();
		var scrollTo = scrollFrom + (-250)*d;
		ScrollWin(scrollTo);
	});
	scroller.bind("mousewheel", function(e, d){
		_init();
		if(wheeling)
			return;
		wheeling = true;
		var scrollFrom = winScroll.scrollTop();
		var scrollTo = scrollFrom + (-250)*d;
		ScrollWin(scrollTo);
	});
	
	$(".down").click(function() {
		_init();
		var scrollTo = winScroll.scrollTop() + scroller.height();
		ScrollWin(scrollTo);
	});
	$(".up").click(function() {
		_init();
		var scrollTo = winScroll.scrollTop() - scroller.height();
		ScrollWin(scrollTo);
	});
	$(".close").click(function(){
		$(".POPUP-Container").hide();
		$(".overlay").fadeOut();
	});
	function ScrollWin(scrollTo, stickHelper){
		_init();
		if(isNaN(scrollTo))
			return;
		
		scrollTo = Math.min(scrollTo, scroller.height() + dragObj.height() + 12);

		
		winScroll.stop();
		winScroll.animate({
				scrollTop: scrollTo
			}, {
				duration: 700,
				easing: "easeInOutQuad",
				complete: function(){
					wheeling = false;
				}
			}
		);
		if(stickHelper)
			return;
		
		scrollTo = parseInt(Math.min(scrollTo/step, scroller.height() - dragObj.height()));
		scrollTo = Math.max(0, scrollTo);
		
		if(isNaN(scrollTo))
			return;		
		
		dragObj.animate({
				top: scrollTo
			}, {
				duration: 700,
				easing: "easeInOutQuad"
			}
		);
	}
}
$(document).ready(function(){
	window.setTimeout(ShowAdWin, 1000);
});