
//JAVASCRIPT BEHAVIOUR VARIABLES
var $sitecontainer = $('#outer');
var $nav = $('#divide');
var $contentarea = $('#bodywrap');
var $backtotop = $('#backtotop');
var navcrop = 12;
var floatclass = 'floating';

var navscrollback = $contentarea.offset().top - $nav.height();

// CONVERTING IMAGE ATTRIBUTES TO CSS
function newelements() {
	if(!(jQuery.browser.msie&&parseInt(jQuery.browser.version,10)<8&&parseInt(jQuery.browser.version,10)>4)){
		$('a.enlarge:not(#gallery a.enlarge)').append('<span class="click">Click to enlarge</span>');
		$('a.enlarge:not(#gallery a.enlarge)').wrapInner('<div />');
		$('a.enlarge:not(#gallery a.enlarge)').addClass('processed');
		$('#cmscontent a.enlarge img:not(.system, form img, .buttonbar img, .buttons img, #gallery img)').each(function(){
			if($(this).attr('width') != ''){$(this).parent().css({border:$(this).attr('width')+'px'});}
			if($(this).attr('height') != ''){$(this).parent().css({border:$(this).attr('height')+'px'});}
			if($(this).attr('border') != ''){$(this).parent().css({border:$(this).attr('border')+'px solid #000000'}).removeAttr('border');}
			if($(this).attr('vspace') != ''){$(this).parent().css({marginTop:$(this).attr('vspace')+'px',marginBottom:$(this).attr('vspace')+'px'}).removeAttr('vspace');}
			if($(this).attr('hspace') != '' && $(this).attr('align') == 'left'){$(this).parent().css({marginRight:$(this).attr('hspace')+'px'});}
			if($(this).attr('hspace') != '' && $(this).attr('align') == 'right'){$(this).parent().css({marginLeft:$(this).attr('hspace')+'px'});}
			if($(this).attr('hspace') != '' && $(this).attr('align') == ''){$(this).parent().css({marginRight:$(this).attr('hspace')+'px',marginLeft:$(this).attr('hspace')+'px'});}
			$(this).removeAttr('hspace');
			if($(this).attr('align') != ''){$(this).parent().css({float:$(this).attr('align')}).removeAttr('align');}
		});
	}
	$('#cmscontent img:not(.system, .processed img, form img, .buttonbar img, .buttons img, #gallery img)').each(function(){
		if($(this).attr('width') != ''){$(this).css({border:$(this).attr('width')+'px'});}
		if($(this).attr('height') != ''){$(this).css({border:$(this).attr('height')+'px'});}
		if($(this).attr('border') != ''){$(this).css({border:$(this).attr('border')+'px solid #000000'}).removeAttr('border');}
		if($(this).attr('vspace') != ''){$(this).css({marginTop:$(this).attr('vspace')+'px',marginBottom:$(this).attr('vspace')+'px'}).removeAttr('vspace');}
		if($(this).attr('hspace') != '' && $(this).attr('align') == 'left'){$(this).css({marginRight:$(this).attr('hspace')+'px'});}
		if($(this).attr('hspace') != '' && $(this).attr('align') == 'right'){$(this).css({marginLeft:$(this).attr('hspace')+'px'});}
		if($(this).attr('hspace') != '' && $(this).attr('align') == ''){$(this).css({marginRight:$(this).attr('hspace')+'px',marginLeft:$(this).attr('hspace')+'px'});}
		$(this).removeAttr('hspace');
		if($(this).attr('align') != ''){$(this).css({float:$(this).attr('align')}).removeAttr('align');}
	});

	$('a.enlarge').colorbox({rel:'listingthumbs',photo:true});

	//SET COLUMNNS TO EQUAL HEIGHTS
	$('.body .column:not(.image)').equalHeights();

}//newelements

//REGEX FOR EXTERNAL LINKS
var regex = RegExp('^(?:f|ht)tps?://(?!' + location.hostname + ')');

$(document).ready(function(){

// MODIFY HTML CONTENT
	// DISPLAY JAVASCRIPT FRIENDLY STYLES

	//ADD MAILTO LINK TO p.contactdetail.email ELEMENTS
	$('p.contactdetail.email').each(function(){
		$(this).wrapInner('<a href="mailto:'+$(this).text()+'" />');
	});

	// REWRITE NAV CODE
	// ADD EXTRA SUB-MENU ELEMENTS
	$('#divide > ul li ul').wrap('<div class="subnav" />');
	$('#divide > ul li div.subnav').wrapInner('<div class="content" />');
	$('#divide > ul > li > div.subnav').before('<span class="dropdown"></span>');

	//SPLIT LONG SUB NAVIGATION INTO MULTIPLE LISTS
	var maxNavListLength = 12;
	var splitNavListLength = 10;
	$('#divide > ul li div.subnav div.content').each(function(){
	$subNav = $(this);
	$list = $subNav.children('ul');
	$listItems = $list.children();
	//IF THERE ARE MORE LIST ITEMS THAN MAXIMUM, SPLIT THE LIST INTO SECTIONS
		if($listItems.size() > maxNavListLength){
			//ADD NEW EMPTY LISTS
			for(x=1;x<=Math.ceil($listItems.size()/splitNavListLength);x++){
				$subNav.append('<ul/>');
			}
			//MOVE ELEMENTS TO NEW LISTS
			$newLists = $subNav.children('ul');
			$listItems.each(function(){
				$(this).appendTo($newLists.eq(Math.ceil(($listItems.index($(this))+1)/splitNavListLength)))
			});
			//REMOVE INITIAL LIST
			$list.remove();
			//MOVE THE SUBNAV IF IT'S TOO WIDE
			$newLists = $subNav.children('ul');
			var listsWidth = 0
			$('#divide > ul li div.subnav').css({'display':'block'});
			$newLists.each(function(){
				$(this).css({'display':'block'});
				listsWidth+=$(this).outerWidth();
			});
			if(listsWidth>$subNav.width()){
				$subNav.width(listsWidth+'px');
				var subNavRightPos = $subNav.closest('li').position().left+$subNav.outerWidth();
				if(subNavRightPos > $('#divide > ul').width()){
					$subNav.closest('div.subnav').css({left:$subNav.closest('li').position().left-(subNavRightPos-$('#divide > ul').width())+'px'});
				}
			}
			$('#divide > ul li div.subnav').css({'display':'none'});
		}
	});

	// ANIMATE NAVIGATION DROP DOWNS
	$('#divide ul li').each(function(){

		$(this).mouseenter(function(){
			$(this).find("div.subnav:first").css({zIndex:10}).stop(true,true).slideDown(150);
		});

		$(this).mouseleave(function(){
			$(this).find("div.subnav:first").css({zIndex:5}).stop(true,true).delay(150).slideUp(150);
		});

	});

	//ADD LISTING LINKS TO li ELEMENT
	$('ul.listing li').css({cursor:'pointer'});
	$('ul.listing li').click(function(){window.location = $(this).find('a:first').attr('href'); return false;});

	newelements();

	//ELEMENT REWRITING COMPLETE, NOW REMOVE nojs CLASS AND DISPLAY PAGE
	$('#outer').removeClass('nojs');
/*
	$('#outer').css({opacity:0});
*/
	$('#outer').css({visibility:'visible'});
/*
	$('#outer').animate({opacity:1},{duration:100});
*/
	// >IE6 ONLY
	if(!(jQuery.browser.msie&&parseInt(jQuery.browser.version,10)<7&&parseInt(jQuery.browser.version,10)>4)){
	
		//ONLY USE AJAXIFY IF PHP HASN'T APPENDED adminlogin CLASS TO THE #logo element
		if($('#logo').hasClass('ajax')){
			//ADD AJAX LOADER BEFORE CONTENT
			$('#body').before('<div id="loader"></div>');
			$('#loader').css({display:'none'});
		
			//AJAXIFY CONTENT
			$('a:not(.enlarge)').filter(function(){
				return !regex.test(this.href);
			}).ajaxify({
				target:false,
				timeout:1000,
				tagToload:{'#body':'#bodywrap'},
				loadHash:'attr:href',
				onStart:function(options){
					if (document.documentElement.scrollTop > navposstart || self.pageYOffset > navposstart) {
						$('html').animate({scrollTop:navscrollback},1000); // PAGE TOP
					}
					$('#loader').fadeIn(50);
					$('#divide .selected').removeClass('selected');
					$(options.object).parents('li').addClass('selected');
				},
				onComplete:function(){
					newelements();
					$('#loader').fadeOut(300);
				}
			});
		};

		//NIVOSLIDER WON'T WORK CORRECTLY WITH PNG OVERLAYS & BELATED PNG
		$('div#slider').nivoSlider({
			pauseTime:7000,
			animSpeed:500,
			slices:30,
			controlNav:false,
			directionNav:false,
			effect:'fade',
			captions:false
		});

	}
	//END IE6 DIFFERENCES

}); // END DOCUMENT READY

//SCROLL MENU WHEN IT HITS WINDOW TOP
var navtopmargin = $nav.css('margin-top');
var navposstart = $nav.offset().top;
var navshift = $sitecontainer.offset().top;
var navbreakpoint = (navposstart+navcrop)-navshift;
$(document).scroll(function(){
	if (document.documentElement.scrollTop > navbreakpoint || self.pageYOffset > navbreakpoint) {
		$nav.addClass(floatclass);
		$nav.css('margin-top',navshift-navcrop+'px');
		$backtotop.fadeIn(300);
	} else if (document.documentElement.scrollTop < navbreakpoint || self.pageYOffset < navbreakpoint) {
		$nav.removeClass(floatclass);
		$nav.css('margin-top',navtopmargin);
		$backtotop.fadeOut(300);
	}
});
$backtotop.click(function(e){
	e.preventDefault();
	if (document.documentElement.scrollTop > navposstart || self.pageYOffset > navposstart) {
		$('html').animate({scrollTop:0},1000); // PAGE TOP
//		$('html').animate({scrollTop:navposstart},1000); // CONTENT TOP
	}
});

