$(document).ready(function() {

	var adminWindowsCount = 0,
		adminWindowId = 0,
		adminIsLogged = false,
		adminOverlayOpacity = 0.6,
		adminAjaxPHPFile = 'ajax.php',
		adminTemplateDir = 'template/imgs/';

/************************************************************************************************************/

	var bgPos = 3000, adminMarquee;

	$('#footer a').click(function() {
		$('html, body').animate({scrollTop: 0}, 450);
		if ($.adminLogged() == false) {
			var adminPageSize = $.getPageSize();
			var adminCurrentWindowId = $.adminCreateWindow(adminPageSize);
			$.post(adminAjaxPHPFile, {id: adminCurrentWindowId, form: 'login'}, function(data){
				$.adminLoadWindow(data, adminCurrentWindowId, adminPageSize);
			}, 'json');
		}
		return false;
	});

	$('a#marquee').mouseover(function() {
		clearInterval(adminMarquee);
	});
	
	$('a#marquee').mouseout(function() {
		$.scrollMarquee();
	});

	$('#menu a, a#marquee').click(function(){
		if ($.adminLogged() == true) {
			var href = ($(this).attr('href')).replace(/.html/, '');
			$.get($(this).attr('href'), {1:1}, function(data){
				$('#main').removeAttr('class').addClass('pag'+href);
				$('#content').html(data);
				$.adminCreateEditTips();
			}, 'html');
			return false;
		}
	});

/************************************************************************************************************/

	$.scrollMarquee = function() {
		clearInterval(adminMarquee);
		if ($('a#marquee').get(0)) {
			adminMarquee = setInterval(function(){$('a#marquee').css({backgroundPosition: (bgPos--)+'px 0px'})}, 25);
		}
		$('a#marquee').mouseover(function() {
			clearInterval(adminMarquee);
		});
		$('a#marquee').mouseout(function() {
			$.scrollMarquee();
		});
	}

	$.adminCreateEditTips = function() {
		$('.edit-tip').each(function(){
			var left = $(this).width() + $(this).position().left,
				top = $(this).position().top;
			$(this).addClass('ahc'+$(this).attr('alt'));
			$(this).html('<em class="admin-temp" style="font-style: normal">'+$(this).html()+'</em>');
			$(this).prepend('<a href="#" class="admin-tip" alt="'+$(this).attr('alt')+'">&nbsp;</a>');
			$(this).html('<span class="admin-t" id="bg'+$(this).attr('alt')+'">'+$(this).html()+'</span>');
		});
		$('.admin-tip').mouseover(function(){
			$('#bg' + $(this).attr('alt')).css('background', '#222');
		});
		$('.admin-tip').mouseout(function(){
			$('#bg' + $(this).attr('alt')).css('background', 'transparent');
		});
		$('a.admin-tip').click(function(){
			if ($(this).attr('alt').match(/[mtkp][1-9]/)) {
				var adminPageSize = $.getPageSize();
				var adminCurrentWindowId = $.adminCreateWindow();
				$.post(adminAjaxPHPFile, {id: adminCurrentWindowId, form: 'edit', type: $(this).attr('alt')}, function(data){
					if (data.errors == 0) {
						$.adminLoadWindow(data, adminCurrentWindowId, adminPageSize);
					}
					else {
						alert(data.errorsText);
					}
				}, "json"); 
			}
			return false;
		});
	}

	$.adminRemoveEditTips = function() {
		var temp;
		$('a.admin-tip').remove();
		$('.edit-tip').each(function(){
			temp = $(this).children('span').children('em.admin-temp').html();
			$(this).removeClass('ahc'+$(this).attr('alt'));
			$(this).html(temp);
		});
	}

	$.adminCreateWindow = function(adminPageSize, name) {
		++adminWindowId;
		++adminWindowsCount;
		adminPageSize = adminPageSize || $.getPageSize();
		$.adminToggleOverlay(adminPageSize);
		$('body').append('<table class="admin-window admin-window-'+adminWindowId+'" style="display: none;"><tr><td class="admin-window-tl"></td><td class="admin-window-top"></td><td class="admin-window-tr"></td></tr><tr valign="top"><td class="admin-window-left"></td><td class="admin-window-center">&nbsp;</td><td class="admin-window-right"></td></tr><tr><td class="admin-window-bl"></td><td class="admin-window-bottom"></td><td class="admin-window-br"></td></tr></table>');
		$('.admin-window-'+adminWindowId+' .admin-window-center').addClass('admin-loading-center');
		if (name != null) {
			$('.admin-window-'+adminWindowId).attr('id', name);
		}
		$('.admin-window-'+adminWindowId).css({left: (adminPageSize[2] / 2 - 50) + "px", top: (adminPageSize[3] / 2 - 50) + "px"}).fadeIn(300);
		return adminWindowId;
	}

	$.adminLoadWindow = function(data, adminCurrentWindowId, adminPageSize) {
		adminPageSize = adminPageSize || $.getPageSize();
		$('.admin-window-'+adminCurrentWindowId+' .admin-window-center').removeClass('admin-loading-center').html(data.html);
		$('.admin-window-'+adminCurrentWindowId).hide().css({
			left: ((adminPageSize[2] / 2) - ($('.admin-window-'+adminCurrentWindowId).width() / 2)) + "px",
			top: ((adminPageSize[3] / 2) - ($('.admin-window-'+adminCurrentWindowId).height() / 2)) + "px"
		}).fadeIn(500);
		$('.admin-window-'+adminCurrentWindowId+' .admin-window-close').click(function() {
			$('.admin-window-'+adminCurrentWindowId).remove();
			if (--adminWindowsCount <= 0) {
				$.adminToggleOverlay();
				adminWindowsCount = 0;
			}
			return false;
		});
		$('.admin-window-'+adminCurrentWindowId).jqDrag('.admin-drag');
	}

	$.adminToggleOverlay = function(adminPageSize,clear) {
		if (clear) {
			adminWindowsCount = 0;
			$('table.admin-window').remove();
			$('#admin-overlay').animate({top: "0px", opacity: 0}, 500, null, function(){$(this).remove()});
			return;
		}
		if ($('#admin-overlay').get(0)) {
			if (adminWindowsCount <= 0) {
				$('#admin-overlay').animate({opacity: 0}, 500, null, function(){$(this).remove()});
				adminWindowsCount = 0;
			}
		}
		else {
			adminPageSize = $.getPageSize();
			$('body').append('<div id="admin-overlay"></div>');
			if (navigator.appName=="Microsoft Internet Explorer") {
				$('#admin-overlay').css({opacity: 0, position: 'absolute', height: document.body.offsetHeight + "px", top: ($.adminLogged() ? '43px' : '0px')}).show().animate({opacity: adminOverlayOpacity}, 500);
			}
			else {
				$('#admin-overlay').css({opacity: 0, position: 'fixed', height: (adminPageSize[1] - ($.adminLogged() ? 43 : 0) + "px"), top: ($.adminLogged() ? '43px' : '0px')}).show().animate({opacity: adminOverlayOpacity}, 500);
			}
			$('#admin-overlay').click(function(){$.adminToggleOverlay()});
		}
	}

	$.adminLogged = function(bool) {
		if (bool != null) {
			adminIsLogged = bool;
		}
		else {
			return adminIsLogged;
		}
	}

	$.getPageSize = function() {
		var xScroll, yScroll, windowWidth, windowHeight;
		if (window.innerHeight && window.scrollMaxY) {	
			xScroll = window.innerWidth + window.scrollMaxX;
			yScroll = window.innerHeight + window.scrollMaxY;
		}
		else if (document.body.scrollHeight > document.body.offsetHeight){
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}
		if (self.innerHeight) {
			windowWidth = (document.documentElement.clientWidth) ? document.documentElement.clientWidth : self.innerWidth;
			windowHeight = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight) {
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}	
		pageHeight = (yScroll < windowHeight) ? windowHeight : yScroll;
		pageWidth = (xScroll < windowWidth) ? xScroll : windowWidth;
		arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
		return arrayPageSize;
	}

});
