/**
 * Array.implement: David Walsh, http://davidwalsh.name/array-shuffling-mootools
 */
Array.implement({
	shuffle: function() {
		//destination array
		for(var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
		return this;
	}
});

document.write('<style type="text/css">.hide-at-start {display: none;}</style>');
document.write('<style type="text/css">.banner-hide-at-start {display: none;}</style>');
document.write('<style type="text/css">.teamIndividualsHolder {display: none;}</style>');

if (Browser.Engine.trident && /MSIE\s6/.test(navigator.userAgent) && typeof DD_belatedPNG != 'undefined') {
	DD_belatedPNG.fix('#footer, #propertyReelCorner');
}

//tabs
tabs = new Jp_Tab({
	show: 0,
	duration: 0,
	linkActiveClass: 'on',
	targetHiddenClass: 'hidden',
	classToHide: 'tabs-hide-at-start'
});

window.addEvent('domready', function() {
	if ($('fullBanner') && $('propertyBanner')) {
		if ($random(0, 1)) {
			$('fullBanner').setStyle('display', 'none').removeClass('fadingBanner');
		}
		else {
			$('propertyBanner').setStyle('display', 'none').removeClass('fadingBanner');
		}
	}

	$$('.hide-at-start').removeClass('hide-at-start');

	if ($(document.body).get('id') == 'home' && window.Jp_Background) {
		var el = new Element('div', {id: 'background', html: '<img src="img/bg_home.jpg" alt="" />'}).inject(document.body, 'top');
		new Jp_Background(el, {width: 1920, height: 1100});
	}

	//smooth anchor
	new Fx.SmoothScroll({
		links: '.smoothScroll'
	});

	//slide menu (explore)
	//overwrite that style as we'll add some fancy effect to that element instead
	$$('#exploreNavOn ul').setStyle('display', 'block');
	$$('a.slide').each(function(e) {
		new SlideMenu(e, {
			duration: 250
		});
	});

	//tabs
	tabs.start($$('.tab-menu li a'));

	//right hand side images slide show
	var imageContainer = $('flashCol');
	if (imageContainer && typeof backgroundImages != 'undefined' && backgroundImages.length) {
		imageContainer.empty();
		imageContainer.setStyle('background: none;');
		var ul = new Element('ul').injectInside(imageContainer);
		var cases = [];
		for (var i = 0; i < backgroundImages.length; i++) {
			var li = new Element('li').injectInside(ul);
			new Element('img', {src: backgroundImages[i]}).injectInside(li);
			cases.push(li);
		}
		new Jp_Showcase(cases, {
			delay: 6000, //time the case will be shown
			duration: 1000, //effect duration
			stopOnMouseOver: false,
			randomize: true
		});
	}

	//page images images slide show
	var imageContainer = $('picBlock');
	if (imageContainer && typeof blockImages != 'undefined' && blockImages.length) {
		imageContainer.empty();
		imageContainer.setStyle('background: none;');
		var ul = new Element('ul').injectInside(imageContainer);
		var cases = [];
		for (var i = 0; i < blockImages.length; i++) {
			var li = new Element('li').injectInside(ul);
			new Element('img', {src: blockImages[i]}).injectInside(li);
			cases.push(li);
		}
		new Jp_Showcase(cases, {
			delay: 6000, //time the case will be shown
			duration: 1000, //effect duration
			stopOnMouseOver: false,
			randomize: true
		});
	}

	//forms
	new jpForm('frmContact', {
		displayErrorMsg: false,
		errorMessageContainerTag: 'div',
		errorMessageContainerId: 'jpFrmMessageContact',
		onError: function(form) {
			handleContactFormsError(form, 'formWrapper');
		}
	});
	new jpForm('frmLandAcquisition', {
		autoFocus: false,
		displayErrorMsg: false,
		errorMessageContainerTag: 'div',
		errorMessageContainerId: 'jpFrmMessageLA',
		onError: function(form) {
			handleContactFormsError(form, 'formWrapper2');
		}
	});
	new jpForm('frmPrintedBrochure', {
		autoFocus: false,
		inlineErrorMsg: false
	});
	new jpForm('frmPDFBrochure', {
		autoFocus: false,
		inlineErrorMsg: false
	});

	//meet the team slider
	var triggers = $$('.slider li a');
	var container = $$('.teamIndividualsHolder');
	if (container.length) {
		jpSliderDuration = 500;
		jpSliderFadeFxOptions = {duration: jpSliderDuration, property: 'opacity', link: 'cancel'};
		jpSliderHeightFxOptions = {duration: jpSliderDuration, property: 'height', link: 'cancel'};
		jpSliderMarginFxOptions = {duration: jpSliderDuration, property: 'margin-bottom', link: 'cancel'};

		teamIndividualsHolderHeight = 0;
		teamIndividualsHolderFadeFx = null;
		teamIndividualsHolderHeightFx = null;

		tIIntroHeight = 0;
		tIIntroMargin = 0;
		var introCol = $$('#colTwo .introCol');
		if (introCol.length) {
			tIIntroHeight = introCol[0].getStyle('height');
			tIIntroMargin = parseInt(introCol[0].getStyle('margin-bottom'));
		}
		tIRightColMargin = 0;
		tIRightColHeight = 0;
		var rightCol = $$('#colTwo .rightCol');
		if (rightCol.length) {
			tIRightColHeight = rightCol[0].getStyle('height');
			tIRightColMargin = rightCol[0].getStyle('margin-bottom');
		}

		var tISlider = new Jp_Slider(triggers, container[0], {
			duration: jpSliderDuration,
			transition: Fx.Transitions.Expo.easeOut,
			goToFirstOnEmpty: false,
			onTargetChange: function (slider) {
				if (slider.initialState || (typeof slider.startState != 'undefined' && slider.startState)) {
					//first call
					if (teamIndividualsHolderHeight) {
						slider.startState = false;
						//hide the intro copy
						var items = $$('#colTwo .introCol');
						if (items.length) {
							slider.hadleyIntroFadeFx = new Fx.Tween(items[0], jpSliderFadeFxOptions).start(0);
							slider.hadleyIntroHeightFx = new Fx.Tween(items[0], jpSliderHeightFxOptions).start(0);
							slider.hadleyIntroMarginFx = new Fx.Tween(items[0], jpSliderMarginFxOptions).start(0);
						}
						var items = $$('#colTwo .rightCol');
						if (items.length) {
							slider.hadleyIntro2FadeFx = new Fx.Tween(items[0], jpSliderFadeFxOptions).start(0);
							slider.hadleyIntro2HeightFx = new Fx.Tween(items[0], jpSliderHeightFxOptions).start(0);
							slider.hadleyIntro2MarginFx = new Fx.Tween(items[0], jpSliderMarginFxOptions).start(0);
						}
						//reveal the details panel
						if (teamIndividualsHolderFadeFx) {
							teamIndividualsHolderFadeFx.start(1);
						}
						if (teamIndividualsHolderHeightFx) {
							teamIndividualsHolderHeightFx.start(teamIndividualsHolderHeight);
						}
						slider.initialState = true; //prevent the scrolling inside the details panel
					}
					else {
						//go directly to the selected item without any animation
						$$('#colTwo .introCol').setStyle('display', 'none');
						$$('#colTwo .rightCol').setStyle('display', 'none');
						$$('.teamIndividualsHolder').setStyle('display', 'block');
					}
				}
			},
			onEmptyTarget: function (slider) {
				if (slider.hadleyIntroFadeFx && slider.hadleyIntroHeightFx && slider.hadleyIntroMarginFx) {
					slider.hadleyIntroFadeFx.start(1);
					slider.hadleyIntroHeightFx.start(tIIntroHeight);
					slider.hadleyIntroMarginFx.start(tIIntroMargin);
				}
				if (slider.hadleyIntro2FadeFx && slider.hadleyIntro2HeightFx && slider.hadleyIntro2MarginFx) {
					slider.hadleyIntro2FadeFx.start(1);
					slider.hadleyIntro2HeightFx.start(tIRightColHeight);
					slider.hadleyIntro2MarginFx.start(tIRightColMargin);
				}
				if (teamIndividualsHolderFadeFx && teamIndividualsHolderHeightFx) {
					teamIndividualsHolderFadeFx.start(0);
					teamIndividualsHolderHeightFx.start(0);
				}
				slider.startState = true;
			}
		});

		var teamIndividualsHolders = $$('.teamIndividualsHolder');
		if (teamIndividualsHolders.length) {
			if (tISlider.initialState) {
				teamIndividualsHolders[0].setStyle('display', 'block');
				teamIndividualsHolderHeight = teamIndividualsHolders[0].getStyle('height');
				teamIndividualsHolderFadeFx = new Fx.Tween(teamIndividualsHolders[0], jpSliderFadeFxOptions);
				teamIndividualsHolderHeightFx = new Fx.Tween(teamIndividualsHolders[0], jpSliderHeightFxOptions);
				teamIndividualsHolders[0].setStyle('height', '0');
			}
		}
	}
	//eo meet the team slider

});

window.addEvent('load', function() {
	$$('.banner-hide-at-start').removeClass('banner-hide-at-start');

	//home banner
	new Jp_Showcase($$('.fadingBanner .fade-item'), {
		delay: 4000, //time the case will be shown
		duration: 1000, //effect duration
		stopOnMouseOver: false,
		fadeImageOnly: false,
		fadeOnStart: true
	});
});

function handleContactFormsError(form, containerClass) {
	if (typeof form.hadley == 'undefined' || typeof form.hadley.errorMessageContainer == 'undefined' || !form.hadley.errorMessageContainer) {
		var formWrapper = $$('.' + containerClass);
		if (formWrapper && formWrapper.length) {
			form.hadley = {};
			form.hadley.errorMessageContainer = new Element(form.options.errorMessageContainerTag, {
				id: form.options.errorMessageContainerId,
				'class': form.options.errorMessageContainerClass
			}).inject(formWrapper[0], 'before');
			new Element('strong', {'text': 'Error -'}).injectInside(form.hadley.errorMessageContainer);
			new Element('span', {'text': ' ' + form.options.errorMessage}).injectInside(form.hadley.errorMessageContainer);
		}
		else {
			form.options.inlineErrorMsg = true;
			form.options.displayErrorMsg = true;
		}
	}
}

