/*****************************   anDeRan   ************************************/

jQuery(function($) {
	Cufon.replace("#header h2, h3");

	if ($.fancybox) {
		var styles = {
			'transitionIn'	: 'elastic',
			'transitionOut'	: 'elastic',
			'titlePosition'	: 'over',
			'overlayColor'  : 'transparent',
			'overlayOpacity': 0.9,
			'cyclic': true,
			'onStart'       : function (objs, index, current) {

			},
			'onComplete'    : function (objs, index, current) {
				$("#fancybox-wrap").hover(function () {
					$("#fancybox-title, #fancybox-close").stop(true).animate({opacity: 1});
				}, function () {
					$("#fancybox-title, #fancybox-close").stop(true).animate({opacity: 0});
				}).mouseover();
			},
			'onClosed'      : function (link) {
				location.hash = "#-";
			}
		};

		$("a.fancybox").fancybox(styles);

		$("a[href^='#gallery-']").live("click", function () {
			$(this).blur();
			$.getJSON("/scripts/requests.php?action=gallery&item=" + this.href.replace(/.*gallery-(\d+)/, "$1"), function(data) {
				$.fancybox(data, $.extend({autoScale: false}, styles));
			});
//			return false;
		});

		$("a[href^='#event-']").click(function () {
			$(this).blur();
			$.get("/scripts/requests.php?action=events&item=" + this.href.replace(/.*event-(\d+)/, "$1"), function(data) {
				var ajax = $("#ajax-tmp");
				if (!ajax.length) {
					ajax = $("<DIV>").attr("id", "ajax-tmp").appendTo(document.body);
				}
				ajax.html(data);
				Cufon.replace(".ajax-data h3");
				$.fancybox(ajax.html(), styles);
				Cufon.refresh(".ajax-data h3");
			});
//			return false;
		});

		$("div.block-contacts a[href='#send-form']").click(function () {
			$(this).blur();
			$.get("/scripts/requests.php?action=form", function(data) {
				$.fancybox(data, styles);
				var send = function () {
					$.post(this.action, $(this).serialize(), function (data) {
						$(".ajax-data").replaceWith(data);
						$("form.form").submit(send);
					});
					return false;
				};
				$("form.form").submit(send);
			});
			location.hash = $(this).attr("href");
			return false;
		});
	}

	$.extend($.easing, {
		easeOutBack: function (x, t, b, c, d, s) {
			if (s == undefined) s = 1.70158;
			return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
		},
		easeOutExpo: function (x, t, b, c, d) {
			return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
		}
	});

	var current = 0;
	$("<span>").addClass("arrow-left").css("top", $("div.c-" + current).height() / 2 - 39).appendTo("#content");
	$("<span>").addClass("arrow-right").css("top", $("div.c-" + current).height() / 2 - 39).appendTo("#content");
	$("div.container").mouseover(function (e) {
		if ($(e.target).hasClass("banner-back")) {
			return false;
		}
		if ($(this).find("div.screen").length > 1) {
			current = this.className.replace(/.*c\-(\d+).*/, '$1');
			var offset = $(this).offset().top - 134 + ($(this).height() / 2 - 39);
			if ($(this).parent().hasClass("block-portfolio")) {
				var offsetTop = -($(this).offset().top - e.pageY);
				var index = Math.ceil(offsetTop / 226) || 1;
				offset = $(this).offset().top + ((index - 1) * 226 - 50);
			}
			$(".arrow-left, .arrow-right").stop(true).animate({top: offset}, "slow", "easeOutExpo");
		}
	});
	$(".arrow-left, .arrow-right").click(function () {
		var dir = this.className.replace(/.*arrow\-(\w+).*/, '$1');
		var block = $(".c-" + current);
		block.height(block.height());
		if (block.parent().hasClass("scroll-fade")) {
			var next, screen = block.find("div.screen-front");
			if (dir == "right") {
				next = screen.next();
				if (!next.length) {
					next = block.find("div.screen:first");
				}
			} else {
				next = screen.prev();
				if (!next.length) {
					next = block.find("div.screen:last");
				}
			}
			screen.css("position", "absolute").fadeOut("normal", function () {
				$(this).removeClass("screen-front").addClass("screen-back");
			});
			next.css("position", "absolute").fadeIn("normal", function () {
				$(this).removeClass("screen-back").addClass("screen-front");
			});
		} else if (block.parent().hasClass("scroll-side")) {
			var scroll = block.find("div.scrolling");
			var step   = 960;
			var offset = parseInt(scroll.position().left, 10) || 0;
			var width  = scroll.width();
			var margin;
			if (dir == "right") {
				margin = offset - step;
				if (margin < -width + step) {
					margin = 0;
				}
			} else {
				margin = offset + step;
				if (margin > 0) {
					margin = -width + step;
				}
			}

			scroll.animate({left: margin}, "normal", "swing");
		}
	});
	$("div.scroll-side div.container").each(function () {
		$(this).height($(this).find(".screen-front").innerHeight());
		$(this).wrapInner('<div class="scrolling" />');
		var total = $(this).find("div.screen").length;
		$(this).find("div.scrolling").width(960 * total);
	});

	$("#header ul a, .circle a").click(function (event) {
		$(this).blur();
		var elementClick = $(this).attr("href");
		var destination = $(".block-" + elementClick.replace("#", ""));
		if (!destination.length) {
			destination = $("#header");
		}
		var offset = destination.offset().top - 18;
		if (elementClick == '#portfolio') {
			offset -= 30;
		}
		$(($.browser.webkit ? "body" : "html") + ":not(:animated)").animate({scrollTop: offset}, "normal", "swing", function() {
			location.hash = elementClick;
		});

		return false;
	});

	$("<img>").attr("src", "/images/common/star_red.png");
	var portfolio = $("div.block-portfolio div.scrolling").clone();
	$("div.stars a").click(function () {
		$(this).blur();

		var cat_id = this.href.replace(/.*(cat\-[^\s]+).*/, '$1');
		var scroll = $("div.block-portfolio div.scrolling");
		var scroll_new = $("<div>").addClass("scrolling");
		var scroll_out = $("<div>").hide();
		var screen, i = 0, j = 0, total = 0;
		portfolio.find("p.item").each(function () {
			if (cat_id == "cat-all" || $(this).hasClass(cat_id)) {
				if (!j) {
					if (i) {
						$("<br>").addClass("clear").appendTo(screen);
						scroll_new.append(screen);
					}
					screen = $("<div>").addClass("screen").addClass((i ? "screen-back" : "screen-front"));
					total++;
				}
				screen.append($(this).clone());
				if (j == 3 || j == 7) {
					$("<br>").addClass("clear").appendTo(screen);
				}
				if (++j == 12) {
					j = 0;
					i++;
				}
			} else {
				scroll_out.append($(this).clone());
			}
		});
		$("<br>").addClass("clear").appendTo(screen);
		scroll_new.append(screen).append(scroll_out).width(960 * total).css({opacity: 0});
		scroll.stop(true).animate({opacity: 0}, function () {
			scroll.replaceWith(scroll_new);
			scroll_new.stop(true).animate({opacity: 1});
		});

		var stars = $(this).parent().parent();
		if (cat_id == "cat-all") {
			stars.find("p.cat-on").removeClass("cat-on");
			$(this).parent().addClass("cat-on");
		} else {
			stars.find("p.cat-on").removeClass("cat-on");
			$(this).parent().addClass("cat-on").before(stars.find("p.cat-all"));
		}

		return false;
	});

	if ($.browser.msie && $.browser.version < 7) {
		$("body").hide();
		location = "http://www.microsoft.com/windows/internet-explorer/default.aspx";
	}

	if (window.opera) {
		$("body").addClass("opera");
	}

	if (location.hash.indexOf("#") != -1) {
		var path = location.hash.split("#")[1];
		if (path.indexOf("event-") != -1) {
			$.get("/scripts/requests.php?action=events&item=" + path.replace(/event-(\d+)/, "$1"), function(data) {
				var ajax = $("#ajax-tmp");
				if (!ajax.length) {
					ajax = $("<DIV>").attr("id", "ajax-tmp").appendTo(document.body);
				}
				ajax.html(data);
				Cufon.replace(".ajax-data h3");
				$.fancybox(ajax.html(), styles);
				Cufon.refresh(".ajax-data h3");
			});
		} else if (path.indexOf("gallery-") != -1) {
			$.getJSON("/scripts/requests.php?action=gallery&item=" + path.replace(/gallery-(\d+)/, "$1"), function(data) {
				$.fancybox(data, $.extend({autoScale: false}, styles));
			});
		} else if (path == "send-form") {
			$.get("/scripts/requests.php?action=form", function(data) {
				$.fancybox(data, styles);
				var send = function () {
					$.post(this.action, $(this).serialize(), function (data) {
						$(".ajax-data").replaceWith(data);
						$("form.form").submit(send);
					});
					return false;
				};
				$("form.form").submit(send);
			});
		} else {
			var link = $("#header ul a[href='#" + path + "']");
			if (link.length) {
				link.click();
			}
		}
	}
});
