var browsertype = "";
if(window.ie6){
	if (document.all && document.styleSheets && document.styleSheets[0] && document.styleSheets[0].addRule){
	    new Asset.javascript(rooturl+'javascript/?iepngfix_tilebg');
        var htcurl = rooturl+'webapp/templates/styles/';
		document.styleSheets[0].addRule('fieldset', 'behavior: url('+htcurl+'/pngfix.htc)');
	}
}
window.addEvent('domready', function(){
	// IE6 Message
	if(window.ie6) 	$('browsermsg').style.display = '';
		
	// Global site stuff
	var mySmoothScroll = new SmoothScroll({duration:1000 }, window);
	
	if(window.ie6 && location.href.indexOf('/about') > -1 && location.href.indexOf('/contact') == -1 && $('breadcrumb')){
		$('breadcrumb').setStyles({
			'top': -10,
			'left': -135
		});
	}
	
	if($('cloverArea'))
		new Swiff(rooturl + 'webapp/templates/flash/clover_grow_smaller.swf', {
			container: 'cloverArea',
			width: 210,
			height: 250 ,
			params: {
				bgcolor: '#fff'
			}
		});

	if($('flashWave')) {
		new Swiff(rooturl + 'webapp/templates/flash/wave.swf', {
			container: 'flashWave',
			width: 2800,
			height: 80,
			params: {
				bgcolor: '#000'
			}
		});
	
		window._flashWave = $('flashWave');
		window.fireEvent('resize');
	}
	
	$$('.navItems a').each(function(navItem){
		if(!navItem.hasClass('current'))
			createHoverBackground(navItem);
	});
	
	
	// Page specific calls
	
	if($('map')) setupGoogleMap();
	
	if($('siteImages')) setupSiteImages();
	
	if($('portfolioSites')) setupPortfolio();
	
	if($('fp_Backgrounds')) setupHomePage();
	
	if($('contactForm')) {
		$('contactForm').method = 'post';
		$('contactForm').action = rooturl + 'about/contact';
		$('contactForm').addEvent('submit', function(){
			var senderName = $('contactForm').getElement('input[name="name"]').value;
			var senderEmail = $('contactForm').getElement('input[name="email"]').value;
			var question = $('contactForm').getElement('textarea[name="question"]').value
			var isOK = true;
			
			if(senderName.search(/^[\w\d\s\-\']+$/i) == -1 && senderName.length < 32){
			    alert('You must enter a valid name');
				isOK = false;
				return false;
			}
		
			if(senderEmail.search(/^([\w]+)([\.\+][\w]+)*@([\w\-]+)(\.[\w]{2,4}){1,2}$/i) == -1 && senderEmail.length < 48){
				alert('You must enter a valid email address');
				isOK = false;
				return false;
			}
			
	
			
			if(question.trim().length == 0){
				alert('You haven\'t entered a question or comment for us!');
				isOK = false;
				return false;
			}
			
			
		});
	}
	
});

window.addEvent('resize', function(){
	if(window._flashWave) window._flashWave.style.left = (getWindowSize().width / 2 - 1000) + 'px';
});



/*
 * Code for portfolio browse page AJAX jumps
 */
function portfolioJump(url){
	//alert (url);
	
	window.portfolioListItems.each(function(li){
		li.morph({'opacity': 0});
	});
	
	new Request.JSON({
		'url': url,
		'onComplete': function(ret){
			//alert (ret);
			$('goStart').setStyle('opacity', parseInt(ret.portfolio.paging.page.value) == ret.portfolio.paging.start ? '0.5' : '1');
			$('goBack').setStyle('opacity', parseInt(ret.portfolio.paging.page.value) == ret.portfolio.paging.start ? '0.5' : '1');
			$('goNext').setStyle('opacity', parseInt(ret.portfolio.paging.page.value) == ret.portfolio.paging.end ? '0.5' : '1');
			$('goEnd').setStyle('opacity', parseInt(ret.portfolio.paging.page.value) == ret.portfolio.paging.end ? '0.5' : '1');

			$('goBack').href = rooturl + 'portfolio/?portfolio_page=' + ret.portfolio.paging.back;
			$('goNext').href = rooturl + 'portfolio/?portfolio_page=' + ret.portfolio.paging.next;

			$$('.pageNumbers a').each(function(eA, i){
				if(i+1 == parseInt(ret.portfolio.paging.page.value))
					eA.addClass('current');
				else
					eA.removeClass('current');
			}.bind(this));
			
			ret.portfolio.rows.each(function(item, i){
				var listItem = portfolioListItems[i];

				listItem.getElement('h3').set('html', item.name.value);
				
				with(listItem.getElement('.details').getElement('a')) {
					href = 'http://' + item.url.value;
					set('text', item.url.value); 
				};

				listItem.getElement('.image').getElement('a').href = rooturl + 'portfolio/site/' + item.shortname.value;

				var eLink = listItem.getElement('.image').getElement('a');
				eLink.empty();

				new Element('img', {
					'src': rooturl + 'portfolio/image/thumbnail' + item.primary_image.value,
					'width': '240', 
					'height': '180',
					'alt': item.name.value
				}).inject(eLink).addReflection({'height': 0.25, 'opacity': 0.5});				

				listItem.morph({'opacity': 1});
				
			}.bind(this));
			
		}.bind(this)
	}).send();
}



/*
 * Home page functionality
 */
function setupHomePage(){
	window.serviceBoxes = $$('.fp_ServiceBox');
	window.backgroundBoxes = $('fp_Backgrounds').getElements('img');
	window.serviceTitleHeight = $$('.fp_ServiceTitle')[0].getStyle('height');
	window.serviceBoxHeight = 395;
	window.serviceBoxes.each(function(serviceBox, i){
		serviceBox.getElement('form').set('send', {
			'url': rooturl,
			'method': 'post',
			'onComplete': function(r){
				if(r.indexOf('SENT') > -1)
					alert('Thank you for signing up, your details will be kept safe!\nYou will receive an email from Clever Clover very soon.\n\nDon\'t forget to click on the \'ENTER\' button below for more information about our websites!');
				else
					alert('There was an error with your submission.\nPlease try again later.');
			}
		});
		new Element('input', {'type': 'hidden', 'name': 'sendit', 'value': 'true'}).inject(serviceBox.getElement('fieldset'));
		new Element('input', {'type': 'hidden', 'name': 'nval', 'value': ''}).inject(serviceBox.getElement('fieldset'));
		serviceBox.getElement('fieldset').getElement('.button').addEvent('click', function(e){
			e.stopPropagation();
			var targetForm = $(e.target).getParent('form');
			var senderName = targetForm.getElement('input[name="name"]').value;
			var senderEmail = targetForm.getElement('input[name="email"]').value;
			var senderType = targetForm.getElement('input[name="business_type"]').value;
			var isOK = true;
			
			if(senderName.search(/^[\w\d\s\-\']+$/i) == -1 && senderName.length < 32){
			    alert('You must enter a valid name');
				isOK = false;
				return false;
			}
		
			if(senderEmail.search(/^([\w]+)([\.\+][\w]+)*@([\w\-]+)(\.[\w]{2,4}){1,2}$/i) == -1 && senderEmail.length < 48){
				alert('You must enter a valid email address');
				isOK = false;
				return false;
			}
			
			if(senderType == '' || senderType == 'What is your business?'){
				alert('Please tell us the type of business you do. \r\ne.g. Legal services, Manufacture, Mining, Retail, Wholesale')
				isOK = false;
				return false;
			}
			                       
			if(targetForm.getElement('input[name="nval"]').value != '') return false;
			
			if(isOK == false) return false;
			targetForm.send();
			return false;
		});
		serviceBox.setStyle('top', 0);
		//serviceBox.getElement('.fp_ServiceTitle').addEvent('click', toggleServiceBox);
	});
}
function toggleServiceBox(e){
	var targetServiceBox = $(e.target).getParent('.fp_ServiceBox');
	
	var bgOpac = 0;

	if(parseInt(targetServiceBox.getStyle('top')) !== 0) {
		targetServiceBox = null;
		bgOpac = 1;
	}
	
	
	window.backgroundBoxes[3].morph({'opacity': bgOpac});
	
	window.serviceBoxes.each(function(serviceBox, i){
		serviceBox.morph({
			'height': serviceBox == targetServiceBox ? window.serviceBoxHeight : 49,
			'top': serviceBox == targetServiceBox ? '-' + (window.serviceBoxHeight-45) : 0
		})
		serviceBox.getElement('.fp_ServiceTitle').setStyle('background-position', serviceBox == targetServiceBox ? '0 -' + window.serviceTitleHeight : '0 0');
		window.backgroundBoxes[i].morph({
			'opacity': serviceBox == targetServiceBox ? 1 : 0
		})
	}.bind(this));
}

function showHomeForm(e){
	var target = $(e.target);
	
	if(!target.hasClass('switchstate') && target.get('tag') != 'fieldset') return;
	
	var isY = false;
	var offX = 999;
	var offY = 0;
	
	if(target.get('tag') != 'fieldset')
		var fieldset = target.getParent('fieldset');
	else
		var fieldset = target;
	
	var button = fieldset.getElement('.switchstate');
	
	if(Browser.Engine.trident) {
		offY = button.getStyle('background-position-y');
	}else{
		var bgStyle = button.getStyle('background-position');
		offX = bgStyle.substring(0, bgStyle.indexOf(' '));
		offY = bgStyle.substring(bgStyle.indexOf(' '))+1;
	}
	
	offX = parseInt(offX);
	offY = parseInt(offY);
	
	if(parseInt(fieldset.getStyle('top')) == 0){
		offY = -331;
		fieldset.morph({'top': 65});
	}else{
		offY = -348;
		fieldset.morph({'top': 0});
	}
	
	offY +=  'px';
	
	if(Browser.Engine.trident)
		button.setStyle('background-position-y', offY);
	else
		button.setStyle('background-position', offX + 'px ' + offY)
}



/*
 * Code to set up portfolio page
 */
function setupPortfolio(){
	window.portfolioListItems = $('portfolioSites').getChildren('li');

	window.portfolioListItems.each(function(li){
		li.get('morph').addEvents({
			'onStart': function(e){e.style.visibility = 'visible';},
			'onComplete': function(e){if(e.getStyle('opacity') == 0) e.style.visibility = 'hidden';}
		});
		if(li.getElement('h3').get('text').length == 0)
			li.setStyle('opacity', 0);
		li.getElement('.image').addEvent('click', function(e){
			e.stop();
			
			var target = $(e.target);
			if(target.get('tag') != 'li')
				target = target.getParent('li');
			
			location = target.getElement('a').href;
		});
	});
	
	var curPage = 0;
	var lastPage = 0;
	$$('.pageNumbers a').each(function(eA, i){
		if(eA.hasClass('current')) curPage = i;
		lastPage = i;
		eA.addEvent('click', function(e){
			//e.stop();
			var target = $(e.target);
			if(target.get('tag') != 'a') target = target.getParent('a');

			portfolioJump(target.href);						
		});
	}.bind(this));

	$('goStart').setStyle('opacity', curPage == 0 ? '0.5' : '1');
	$('goBack').setStyle('opacity', curPage == 0 ? '0.5' : '1');
	$('goNext').setStyle('opacity', curPage == lastPage ? '0.5' : '1');
	$('goEnd').setStyle('opacity', curPage == lastPage ? '0.5' : '1');
	
	[$('goStart'), $('goBack'), $('goNext'), $('goEnd')].each(function(btn){
		btn.addEvent('click', function(e){
			//e.stop();
			var target = $(e.target);
			if(target.get('tag') != 'a') target = target.getParent('a');
			
			if(target.getStyle('opacity') == 0.5) return;

			portfolioJump(target.href);						
		});
	});

	window.addEvent('beforeunload', function(){
		window.portfolioListItems.each(function(li, i){
			li.getElements('a').each(function(eLink){eLink.removeEvents('click');});
			li.destroy();
		});
		
		[$('goStart'), $('goBack'), $('goNext'), $('goEnd')].each(function(btn){
			btn.removeEvents('click');
		});	

		$$('.pageNumbers a').each(function(eA){
			eA.removeEvents('click');
		});
	});	
}



/*
 * Code for google maps on contact page
 * URL /about/contact
 */
function setupGoogleMap(){
	Google.createMap('map', {'zoom': 13, 'controls': {'earth': true}} , function(){
		var marker = {
			'lat': 53.66827436506973,
			'lng': -1.5054863691329956,
			'options': {
				'center': true
			},
			'icon': {
				'top': 53,
				'left': 31,
				'image': {
					'src': rooturl + 'webapp/templates/images/googlemap_wearehere.png',
					'width': 63,
					'height': 53
				}
			}
		};
		window.mapMarker = Google.addMapMarker('map', marker);
	});
	
	$('frm_directions').getElement('input').addEvent('click', function(e){
		e.preventDefault();
		var postcode = $$('input[name=postcode]')[0].value;
		
		Google.postcodeSearch(postcode, 'UK', function(result){
			Google.getDirections('map', $('googleDirections'), postcode + '@' + result.y + ',' + result.x, 'Clever Clover', function(){$('googleDirections').empty();window.mapMarker.hide()}, function(){}, 3, {'lat':function(){return 53.66827436506973}, 'lng':function(){return -1.5054863691329956}}, true);
		});
		
		return false;
	});
}



/*
 * Code for portfolio site details pages
 * URL /portfolio/site/site-name
 */
function setupSiteImages(){
	window.addEvent('beforeunload', function(){
		for(var i = window._siteImages_rawImages.length - 1; i >= 0; i--){
			window._siteImages_rawImages[i].destroy();
			window._siteImages_imgContainers[i].destroy();
			delete window._siteImages_rawImages[i];
			delete window._siteImages_imgContainers[i];
		}
		$('siteImagesBack').removeEvents('click');
		$('siteImagesForward').removeEvents('click');
	});
	window._siteImages_rawImages = $('siteImages').getElement('div').getElements('img');
	window._siteImages_center = Math.floor(window._siteImages_rawImages.length / 2);
	window._siteImages_imgContainers = [];
	
	for(var i = 0; i < window._siteImages_rawImages.length; i++){
		var variance = Math.abs(i - window._siteImages_center);
		var offset = Math.pow(variance * 2, 2);
		
		var left = 180;
		if(i < window._siteImages_center) left = (1 / offset) * 180;
		if(i > window._siteImages_center) left = 360 - (1 / offset) * 180;

		var holderDiv = new Element('div', {
			'styles': {
				'top': 40 + offset,
				'left': left,
				'width': 320 - offset,
				'height': 240 - offset * 2,
				'z-index': 100 - variance,
				'cursor': 'pointer'
			},
			'events': {
				'click': function(e){
					var target = $(e.target);
					if(target.get('tag') == 'div')
						target = target.getElement('img');
					
					var imgSrc = target.src;
					imgSrc = imgSrc.substring(imgSrc.indexOf('/media/'));
					Milkbox.showThisImage(rooturl + 'webapp/data' + imgSrc);
				}
			}
		}).inject($('siteImages').getElement('div'))
		  .set('morph', {'link': 'chain'});

		window._siteImages_rawImages[i]
			.inject(holderDiv)
			.setStyles({
				'width': 320 - offset,
				'height': 240 - offset * 2,
				'opacity': 1 - (variance*2) / (window._siteImages_rawImages.length > 5 ? window._siteImages_rawImages.length : 5)
			})
			.set('morph', {'link': 'chain'});

		window._siteImages_imgContainers.include(holderDiv);
	}
	
	$('siteImagesBack').addEvent('click', rotateImages.pass(-1));
	$('siteImagesForward').addEvent('click', rotateImages.pass(1));
}

function rotateImages(dir){
	window._siteImages_center += dir;
	
	if(window._siteImages_center < 0) window._siteImages_center = 0;
	if(window._siteImages_center > window._siteImages_rawImages.length - 1) window._siteImages_center = window._siteImages_rawImages.length - 1;
	
	for(var i = 0; i < window._siteImages_rawImages.length; i++){
		var variance = Math.abs(i - window._siteImages_center);
		var offset = Math.pow(variance * 2, 2);
		
		var left = 180;
		if(i < window._siteImages_center) left = 180 / offset;
		if(i > window._siteImages_center) left = 360 - (180 / offset);
		
		window._siteImages_imgContainers[i].morph({
			'top': 40 + offset,
			'left': left,
			'width': 320 - offset,
			'height': 240 - offset * 2,
			'z-index': 100 - variance 
		});

		window._siteImages_rawImages[i].morph({
			'width': 320 - offset,
			'height': 240 - offset * 2,
			'opacity': 1 -(variance*2) / (window._siteImages_rawImages.length > 5 ? window._siteImages_rawImages.length : 5)
		});
	}
}

function initAccordian() {
	window.addEvent('domready', function() {
		//create our Accordion instance
		var myAccordion = new Accordion($('accordianArea'), 'h3.toggler', 'div.element', {
			display: -1,
			opacity: true,
			alwaysHide: true,
			onActive: function(toggler, element){
				//toggler.setStyle('color', '#e58e1a');
			},
			onBackground: function(toggler, element){
				//toggler.setStyle('color', '#0070ad');
			}
		});
	});
}

function validateForm(form) {
	
	window.addEvent('domready', function(){
	    
		if(form == 'requestQuote'){
			new FormCheck('requestQuote',{
				tipsClass: 'formCheckPink'
			});
		} 
		
		if(form == 'bookConsultation'){
			new FormCheck('bookConsultation',{
				tipsClass: 'formCheckBlue'
			});
		}
	
	});
}