var flashSuccess = false;
var moviePlaying = false;

window.addEvent('domready',function(){
	modalHandler = new kamModalHandler();	
	kamPan = new kamPan({transitionPeriod:6000, transitionDelay:3000});	
	
	if($('portfolioPanel')){									
		initFader(false);		
	}
	
	modalHandler.addEvent('maskVisible', function(evt){						  
		if($('portfolioDescription') != null ){
			$('portfolioDescription').destroy();									
		
			initFader(true);
			modalHandler.centreContent();		
		}else{
			kamPan.init('emailPan');
		}
	});
	
	embedMap();
	flash();
});

function flash(){
	var stepDiv = $('steps');
	var index = 0;
	var movieControllers = $$('.movieController');
	var currentStartFrame = 0;
	var currentEndFrame = 0;
	var framesets = new Array();
	
	if(stepDiv != null){
		movieControllers.each( function(controller){
         var rel = controller.get('rel').toString();
			var relArray = rel.split('-');	
			framesets[framesets.length] = relArray;
			
			controller.addEvent('click', function(evt){
				evt.stop();														  	
				if(flashSuccess == true && moviePlaying == false){
							
					currentStartFrame = framesets[index][1];
					currentEndFrame = framesets[index][2];
					
					$('flashInner').playToFrom(currentStartFrame,currentEndFrame);
					
					moviePlaying = true;		
					
					lis.each( function(li){
						li.setStyle('display','none');
					});
					index++;	
					if(index == lis.length) index = 0;
					lis[index].setStyle('display','block');
					
				
				}
			});
		});
		
		var prevs = $$('.previous');
		prevs.each( function(prev){
			prev.addEvent('click', function(evt){
				evt.stop();
				if(flashSuccess == true && moviePlaying == false){
					index--;	
					
					currentStartFrame = framesets[index][1];
					currentEndFrame = framesets[index][2];
					
					$('flashInner').playToFrom(currentStartFrame,currentEndFrame);
					
					moviePlaying = true;		
					
					lis.each( function(li){
						li.setStyle('display','none');
					});
					
					lis[index].setStyle('display','block');
					
					if(index == 0) index = 0;
				}
			});
		});
		
		var resetButton = $$('.reset')[0];
		resetButton.setStyle('display','none');
				
		
		var lis = $$('#steps li');
		lis.each( function(li){
			li.setStyle('display','none');
		});
		lis[0].setStyle('display','block');
		
		var replays = $$('.replay');
		replays.each( function(replay){
			replay.addEvent('click', function(evt){
				evt.stop();													 	
				$('flashInner').playToFrom(currentStartFrame,currentEndFrame);										 
			});
		});
		
		var playAlls = $$('.playAll');
		playAlls.each( function(playAll){
			playAll.addEvent('click', function(evt){
				evt.stop();
				$('flashInner').playToFrom(0,parseFloat(playAll.get('rel')));
				hideShow(playAlls,replays,movieControllers,prevs,lis);
				resetButton.setStyle('display','block');
			});
		});
		
		resetButton.addEvent('click', function(evt){
			index = 0;
			playAlls.each( function(playAll){ playAll.setStyle('display','block'); });
			replays.each( 	function(replay){ replay.setStyle('display','block'); });
			movieControllers.each( function(controller){ controller.setStyle('display','block'); });
			prevs.each( function(prev){ prev.setStyle('display','block'); });
			lis.each( function(li){ li.setStyle('display','none'); });
			$('steps').setStyle('height','80');
			$('flashInner').playToFrom(0,2);
			
			resetButton.setStyle('display','none');
			lis[0].setStyle('display','block');
		});
		
	}
}

function hideShow(playAlls,replays,movieControllers,prevs,lis){
	playAlls.each( function(playAll){ playAll.setStyle('display','none'); });
	replays.each( 	function(replay){ replay.setStyle('display','none'); });
	movieControllers.each( function(controller){ controller.setStyle('display','none'); });
	prevs.each( function(prev){ prev.setStyle('display','none'); });
	lis.each( function(li){ li.setStyle('display','block'); });
	$('steps').setStyle('height','auto');
}

function flashStopped(){
	moviePlaying = false;
}

function flashLoaded(){
	flashSuccess = true;
}

function embedMap(){
	var map = $("map");
	if( map ){
		var geocoder = new google.maps.Geocoder();
		if (geocoder) {
			geocoder.geocode( { 'address': "3 riverside court, castle street, barnstaple, devon"}, function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					var myOptions = {
					  zoom: 12,
					  center: results[0].geometry.location,
					  mapTypeId: google.maps.MapTypeId.ROADMAP
					}
					gmap = new google.maps.Map(map, myOptions);
					var marker = new google.maps.Marker({
						map: gmap, 
						position: results[0].geometry.location,
						icon: "/style/images/mapMarker.png",
						title: "Kameleon Digital"
					});
				}
				else {
					alert("Geocode was not successful for the following reason: " + status);
				}
			});
		}
	}
}

function initFader(displayAlt){
	fader = new kamFader('portfolioPanel',{
		autoFadePeriod: 5000
	});
	var mainContent = $('mainContent');
	var links = $('portfolioNav').getElements('a');
	var lis = $('portfolioNav').getElements('li'); 
	var pauseButton = $$('.animationPause');
	var toggle = false;
	
	//on load have first thumb nav selected if no intro images
	if(fader.introLis == 0){
		lis[fader.relativePointer+1].addClass('selected');	
	}
	
	if(displayAlt){	
		// create the alt tag container 
		altContainer = new Element('div',{
			'id': 'altContainer',
			'styles': {
				'width': '250px',
				'margin-top': '28px',
				'margin-left': '20px', 
				'float': 'left',
				'color':'#ffffff'
			}
		});
		
		var title = $$('#portfolioPanel h2'); 
		closeLink = new Element('a',{
			'id': 'close',
			'href': '#'
		});
		
		closeLink.set('text','[x]');
		closeLink.addEvent('click', function(evt){
			evt.stop();
			modalHandler.kamMask.toggle();
			fader.pauseFade();
			fader = null;
		});
		title.grab(closeLink);
		
		
		altContainer.inject($('animationPause'),'after');
		var altContent = fader.items[fader.pointer].liEl.getElement('img').get('alt');
		altContainer.set('text',altContent)
	}
	
	fader.addEvent('fadeStart', function(evt){
		if(lis.length>0){
		
			lis[fader.prevRelativePointer+1].removeClass('selected');	

			lis[fader.relativePointer+1].addClass('selected');
			//display the alt tags
			if(displayAlt){				
				var altContent = fader.items[fader.pointer].liEl.getElement('img').get('alt');
				altContainer.set('text',altContent);
			}		
		}
	});
	
	links.each( function(link){
		link.addEvent('click', function(evt){
			evt.stop();
			var linkInner = link.innerHTML;
			var linkNumber = parseFloat(linkInner) - 1;
			lis[fader.prevRelativePointer+1].removeClass('selected');
			if(linkNumber + fader.introLis >= 0){		
				fader.resetAutoFade();
				fader.fadeTo(linkNumber + fader.introLis);				
			}else{
				if(linkInner == 'prev'){
					fader.prev(true);
				}else{
					fader.next(true);
				}
			}
			lis[fader.relativePointer+1].addClass('selected');
		});
	});
	
	pauseButton.addEvent('click', function(evt){
		if(!toggle){
			pauseButton.setStyle('background-image','url(/style/images/pause-button.png)');	
			fader.pauseFade();
			toggle = true;
		}else{
			pauseButton.setStyle('background-image','url(/style/images/play-button.png)');				
			fader.resumeFade();	
			toggle = false;
		}		
	});							
}