$.browser.msie6 =
    $.browser.msie
    && /MSIE 6\.0/i.test(window.navigator.userAgent)
    && !/MSIE 7\.0/i.test(window.navigator.userAgent)
    && !/MSIE 8\.0/i.test(window.navigator.userAgent);

$.browser.msie7 =
    $.browser.msie
    && /MSIE 7\.0/i.test(window.navigator.userAgent)
    && !/MSIE 8\.0/i.test(window.navigator.userAgent);

var currentHover = null;
var mouseOverDivs = '<div id="TrainingMO" class="mainMO" style="display:none"></div>' +
					'<div id="RentalsMO" class="mainMO" style="display:none"></div>' +
					'<div id="ServiceMO" class="mainMO" style="display:none"></div>' +
					'<div id="SalesMO" class="mainMO" style="display:none"></div>' +
					'<div id="ProductionsMO" class="mainMO" style="display:none"></div>';

function Initialize()
{
	AdjustTransparentBanners();

	$('#baseBox').append('<div id="copyright">&copy; 2009-2011 Platinum Aviation Holdings</div>');
	$('body').supersleight();	// Transparency fix for displaying PNGs within IE6
}

function AdjustTransparentBanners()
{
	$('#topStripe').contents().wrapAll('<div class="opaqueContent"></div>').end().prepend('<div class="transparentBackground"></div>');
	$('.bottomImgBanner').contents().wrapAll('<div class="opaqueContent"></div>').end().prepend('<div class="transparentBackground"></div>');

	AdjustTransparentBannerProps();
}

// Fix richiesto per visualizzare correttamente i banner traslucenti su Explorer 6

function AdjustTransparentBannerProps()
{
	$('.transparentBackground').each(function() {
		$(this).width($(this).parent().outerWidth(false))
			   .height($(this).parent().outerHeight(false));
	});
}

function InitializeMouseOvers()
{
	$('#rightSide').prepend(mouseOverDivs);

	$('#Rentals').hover(
		function() { $('#RentalsMO').fadeIn(500); },
		function() { $('.mainMO:visible').fadeOut(500); }
	);

	$('#Training').hover(
		function() { $('#TrainingMO').fadeIn(500); },
		function() { $('.mainMO:visible').fadeOut(500); }
	);

	$('#Service').hover(
		function() { $('#ServiceMO').fadeIn(500); },
		function() { $('.mainMO:visible').fadeOut(500); }
	);

	$('#Productions').hover(
		function() { $('#ProductionsMO').fadeIn(500); },
		function() { $('.mainMO:visible').fadeOut(500); }
	);

	$('#Sales').hover(
		function() { $('#SalesMO').fadeIn(500); },
		function() { $('.mainMO:visible').fadeOut(500); }
	);
}

function MainHover(divID)
{
	if (currentHover)
		currentHover.fadeOut(500);

	if (divID.length > 0)
	{
		currentHover = $('#' + divID);
		currentHover.fadeIn(500);
	}
}

// Common Scroll Features

var scrollDone = true;
var totItems, scrolledItems;
var itemWidth;
var scrollJQ;

function InitializeAboutScroll(divID)
{
	scrollJQ = $('#' + divID);
	totItems = scrollJQ.find('ul li').size();
	scrolledItems = 0;
	itemWidth = scrollJQ.find('li:first').outerWidth(true);
	scrollJQ.css('width', (totItems * itemWidth) + "px");

	$('div.opaqueImgBanner span').each(function(idx) {
		var parentHeight = $(this).parent().innerHeight();
		var thisHeight = $(this).outerHeight(true);
		var vOffset = (parentHeight - thisHeight) / 2;
		$(this).css('top', vOffset + 'px');
	});
}

function InitializeAdventureScroll(divID, index)
{
	scrollJQ = $('#' + divID);
	totItems = scrollJQ.find('ul li').size();
	scrolledItems = index;
	itemWidth = scrollJQ.find('li:first').outerWidth(true);
	scrollJQ.css('width', (totItems * itemWidth) + "px");

	if (index > 0)
	{
		scrollJQ.css('margin-left', (parseInt(scrollJQ.css('margin-left')) - itemWidth * index) + "px");
		$('span:eq(0)').hide();
		$('span:eq(' + index + ')').show();
		$('div.mainDesc:eq(0)').hide();
		$('div.mainDesc:eq(' + index + ')').show();
	}

	$('#adventureWrapper div.bottomImgBanner span').each(function(idx) {
		var parentHeight = $(this).parent().innerHeight();
		var thisHeight = $(this).outerHeight(true);
		var vOffset = (parentHeight - thisHeight) / 2;
		$(this).css('top', vOffset + 'px');
	});
}

function InitializePlaneScroll(divID)
{
	scrollJQ = $('#' + divID);
	totItems = scrollJQ.find('ul li a').size();
	scrolledItems = 0;
	itemWidth = 249;	// scrollJQ.find('li:first a').outerWidth(true);
	scrollJQ.css('width', (totItems * itemWidth) + "px");
}

function InitializePictureScroll(divID)
{
	scrollJQ = $('#' + divID);
	totItems = scrollJQ.find('ul li a').size();
	scrolledItems = 0;
	itemWidth = 249;	// scrollJQ.find('li:first a').outerWidth(true);
	scrollJQ.css('width', (totItems * itemWidth) + "px");
}

// Scroll About Images

function ScrollAboutLeft(clickedElem)
{
	if (! scrollDone || scrolledItems + 1 == totItems)
		return;

	scrollDone = false;

	var amount = parseInt(scrollJQ.css('margin-left')) - itemWidth;

	scrollJQ.animate({marginLeft: amount + "px"}, 200, "linear", function() {
		$('span:eq(' + scrolledItems + ')').fadeOut(200, function() {
			$('span:eq(' + (scrolledItems + 1) + ')').fadeIn(200, function() {
				scrolledItems++;
				scrollDone = true;
			});
		});
	});
}

function ScrollAboutRight(clickedElem)
{
	if (! scrollDone || scrolledItems == 0)
		return;

	scrollDone = false;

	var amount = parseInt(scrollJQ.css('margin-left')) + itemWidth;

	scrollJQ.animate({marginLeft: amount + "px"}, 200, "linear", function(){
		$('span:eq(' + scrolledItems + ')').fadeOut(200, function() {
			$('span:eq(' + (scrolledItems - 1) + ')').fadeIn(200, function() {
				scrolledItems--;
				scrollDone = true;
			});
		});
	});
}

// Scroll Adventures Images

function ScrollAdventureLeft(clickedElem)
{
	if (! scrollDone || scrolledItems + 1 == totItems)
		return;

	scrollDone = false;

	InitializeSideMenu('adventures', 'Adv' + (scrolledItems + 1));

	var amount = parseInt(scrollJQ.css('margin-left')) - itemWidth;

	scrollJQ.animate({marginLeft: amount + "px"}, 200, "linear", function() {
		$('span:eq(' + scrolledItems + ')').fadeOut(200, function() {
			$('span:eq(' + (scrolledItems + 1) + ')').fadeIn(200, function() {
				$('div.mainDesc:eq(' + scrolledItems + ')').hide();
				$('div.mainDesc:eq(' + (scrolledItems + 1) + ')').show();
				scrolledItems++;
				scrollDone = true;
			});
		});
	});
}

function ScrollAdventureRight(clickedElem)
{
	if (! scrollDone || scrolledItems == 0)
		return;

	scrollDone = false;

	InitializeSideMenu('adventures', 'Adv' + (scrolledItems - 1));

	var amount = parseInt(scrollJQ.css('margin-left')) + itemWidth;

	scrollJQ.animate({marginLeft: amount + "px"}, 200, "linear", function() {
		$('span:eq(' + scrolledItems + ')').fadeOut(200, function() {
			$('span:eq(' + (scrolledItems - 1) + ')').fadeIn(200, function() {
				$('div.mainDesc:eq(' + scrolledItems + ')').hide();
				$('div.mainDesc:eq(' + (scrolledItems - 1) + ')').show();
				scrolledItems--;
				scrollDone = true;
			});
		});
	});
}

// Scroll Planes

function ScrollPlanesLeft(clickedElem)
{
	if (! scrollDone || scrolledItems + 3 == totItems)
		return;

	scrollDone = false;

	var amount = parseInt(scrollJQ.css('margin-left')) - itemWidth;

	scrollJQ.animate({marginLeft: amount + "px"}, 200, "linear", function() {
		scrolledItems++;
		scrollDone = true;
	});
}

function ScrollPlanesRight(clickedElem)
{
	if (! scrollDone || scrolledItems == 0)
		return;

	scrollDone = false;

	var amount = parseInt(scrollJQ.css('margin-left')) + itemWidth;

	scrollJQ.animate({marginLeft: amount + "px"}, 200, "linear", function() {
		scrolledItems--;
		scrollDone = true;
	});
}

// Scroll Pictures

function ScrollPicturesLeft(clickedElem, numItems)
{
	if (! scrollDone || scrolledItems + 5 == totItems)
		return;

	scrollDone = false;

	if (! numItems)
		numItems = 1;
	else if (scrolledItems + numItems > totItems)
		numItems = totItems - scrolledItems;

	var amount = parseInt(scrollJQ.css('margin-left')) - itemWidth * numItems;

	scrollJQ.animate({marginLeft: amount + "px"}, 300, "swing", function() {
		scrolledItems += numItems;
		scrollDone = true;
	});
}

function ScrollPicturesRight(clickedElem, numItems)
{
	if (! scrollDone || scrolledItems == 0)
		return;

	scrollDone = false;

	if (! numItems)
		numItems = 1;
	else if (scrolledItems - numItems < 0)
		numItems = scrolledItems;

	var amount = parseInt(scrollJQ.css('margin-left')) + itemWidth * numItems;

	scrollJQ.animate({marginLeft: amount + "px"}, 300, "swing", function() {
		scrolledItems -= numItems;
		scrollDone = true;
	});
}

// Contact form

function InitializeContactForm()
{
	$("#contactForm input[name='FirstName']")
		.add("#contactForm [name='LastName']")
		.add("#contactForm [name='Email']")
		.keyup(FormChanged);

	$("#contactForm input[type=checkbox][name='permission']").click(FormChanged);
}

function FormChanged()
{
	var totFilled = 0;
	var form = $("#contactForm");

	if (form.find("input[type=checkbox][name='permission']").attr('checked'))
	{
		if (form.find("input[name='FirstName']").eq(0).val().length > 0)
			++totFilled;

		if (form.find("input[name='LastName']").eq(0).val().length > 0)
			++totFilled;

		if (totFilled == 2)
		{
			var email = form.find("input[name='Email']").eq(0).val();

			if (email.length == 0)
			{
			}
			else if (! EmailCheck(email))
			{
				form.find("input[name='Email']").css('color','red');
			}
			else
			{
				form.find("input[name='Email']").css('color','black');
				++totFilled;
			}
		}
	}

	if (totFilled != 3)
	{
		form.find(":submit").attr('disabled','disabled');
	}
	else
	{
		form.find(":submit").removeAttr('disabled');
	}
}

function EmailCheck(str)
{
	return str.match(/[^@\s]+@[^@\s]+\.[^@\s]+/) != null;
//	return str.match(/[^\s@]+@[^\s@]+\.[^\s@]+/);

/*
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)

	return (str.indexOf(at) != -1 &&
			str.indexOf(at) != -1 && str.indexOf(at) != 0 && str.indexOf(at) != lstr &&
			str.indexOf(dot) != -1 && str.indexOf(dot) != 0 && str.indexOf(dot) != lstr &&
			str.indexOf(at, (lat + 1)) == -1 &&
			str.substring(lat - 1, lat) != dot && str.substring(lat + 1, lat + 2) != dot &&
			str.indexOf(dot, (lat + 2)) != -1 &&
			str.indexOf(" ") == -1);
*/
}

function FormToQueryObject(form)
{
	var query = {};

	$(form).find("input,select,textarea")
		   .each(function(i)
				{
					if (this.value && this.name && this.type != "button" && ((this.type != "radio" && this.type != "checkbox") || this.checked))
					{
						query[this.name] = this.value;
					}
				});

	return query;
}

function SubmitContactForm()
{
	$.ajax({
		cache: false,
		data: FormToQueryObject($('#contactForm').get(0)),
		dataType: 'html',
		type: 'POST',
		url: '/dynamic/contact.php',
		success: function(response, resultText)
		{
			if (response.length > 0)
			{
				$("#contactForm .submitError td").html(response).parent().show();
			}
			else
			{
				$("#contactForm .submitError").hide();
				$('#contactForm').hide();
				$('#postResult').show();
			}
		}
	});
}


// Home page animation

var sentences = new Array(
	"New for 2012, the Cirrus SR22T Platinum Edition!",
	"Cirrus Aircraft Factory Authorized Service and Training",
	"Nationally recognized professional flight instructors<br />All glass panel experts",
	"The Premier Flight Training Center in the Cirrus Partner Network"
);

var frontDiv, backDiv;
var nextFrameDiv;
var frameIdx;
var timer;
var stopTimer;
var image = null;
var divHeight = 0;

function StartAnimation(imageURL, imageDiv1, imageDiv2)
{
		// Il numero di passi dell'animazione e' dato dalla divisione tra l'altezza dell'immagine e l'altezza del div

	image = new Image;

	image.onload = function() {

			// Ora che l'immagine e' stata caricata posso analizzarla e procedere con l'animazione

		frontDiv = $('#' + imageDiv1);
		frontDiv.css({'background-image': 'url(' + image.src + ')', 'background-position': '0 0'}).show();

		backDiv = $('#' + imageDiv2);
		backDiv.css({'background-image': 'url(' + image.src + ')', 'background-position': '0 0'}).show();

		divHeight = frontDiv.innerHeight();
		nextFrameDiv = backDiv;

		frameIdx = 0;

		stopTimer = false;

		FadeDone();
	}

	image.src = imageURL;
}

function StopAnimation()
{
	if (frontDiv == undefined)
		return;

	frontDiv.stop();

	stopTimer = true;

	if (timer)
		clearTimeout(timer);
}

function StepAnimation()
{
	frameIdx = (frameIdx + 1) % sentences.length;	// Index of the next image to be shown
	var vPos = frameIdx ? -(frameIdx * divHeight) + 'px' : 0;

	if (nextFrameDiv == backDiv)
	{
			// The foreground div is visible, so I assign the new image to the back div and fade out the foreground one

		backDiv.css('background-position', '0 ' + vPos);
		frontDiv.fadeOut(2000, FadeDone);
		nextFrameDiv = frontDiv;
	}
	else
	{
			// The foreground div is invisible, so I assign the new image to it and fade it in

		frontDiv.css('background-position', '0 ' + vPos).fadeIn(2000, FadeDone);
		nextFrameDiv = backDiv;
	}
}

function FadeDone()
{
	if (stopTimer)
		return;

	$('#mainSloganSentence').fadeOut('fast', function() {
		$('#mainSloganSentence').html(sentences[frameIdx]).fadeIn('fast', function() {
			timer = setTimeout("StepAnimation()", 2000);
		});
	});
}


// ************** MENU FUNCTIONS ************************************************


function InitializeSideMenu(selectedID, callback)
{
	$('ul#sideMenu').sideMenu().sideMenu('select', selectedID);

	if (callback)
		callback($('#leftSide'));
}

