//Stores all the data for all galleries on the page
var galleryData = new Array();
// Sets how many thumbnails show up at a time
var thumbVar = 3;
// Sets how many images the next/prev scrolling moves by at a time
var scrollVar = 3;

var linkTextArray = new Array();

//Makes it so the popup is only moved on load to the correct listing
var popupOnce = 0;

function init(searchRes){
	document.createElement('img').setAttribute('src','/img/loading_2009_269x243.gif');
	document.createElement('img').setAttribute('src','/img/loading_2009_81x70.gif');
	galleryArrayBuilder();
	flashBuilder();
	openingHoursBuilder();
	if(searchRes){ //these functions are not required on alpha page
		$('.MoreLink').each(function(i){
			currentText = $(this).html();
			if(currentText.indexOf('<span')!=-1){
				linkTextArray[i] = currentText.split('<span')[0];
			}else{
				linkTextArray[i] = currentText.split('<SPAN')[0];
			}
			$(this).attr('linktext',i);
		});
	}else{
		cffBuilder(); //only required on alpha page
	}
}
var jsKeywords, jsCompanyName, jsLocation;
$(function(){
	//create variables for capsule omniture eVars
	jsKeywords = $('#keywordsInput').val();
	jsCompanyName = $('#companyName').val();
	jsLocation = $('#location').val();
});


$('.tabLink').live("click", function(){
	theFunction(false,false,$(this));
	return false;
});
$('.parentListing a').live("click", function(){
	parentListingId = $(this).closest("div.parentListing").attr('id');
	setCookie('lastAdvertID',parentListingId);
});
//Opening hours Tabs Javascript
function openingHoursBuilder(){
	hideOHTabs();
	$('.tabLinkOH:first').addClass('selected');
	$('.tabLinkOH:first').each(function(){$($(this).attr("hash")).show()});
}
function hideOHTabs(){
	$('.tabLinkOH').each(function(){
		$(this).removeClass('selected');
		$($(this).attr("hash")).hide();
	});
}
function changeOHTab(tabLinkObj){
	hideOHTabs();
	tabLinkObj.addClass('selected');
	$(tabLinkObj.attr("hash")).show();
}
$('.tabLinkOH').live("click", function(){
	changeOHTab($(this))
	return false;
});
function theFunction(ajaxContent,parentListingId,triggerLink){
	ajaxContent = ajaxContent ? ajaxContent : triggerLink.attr('href');
	parentListingId = parentListingId ? parentListingId : triggerLink.closest("div.parentListing").attr('id');
	chosenTab = "#"+ajaxContent.split('#')[1];
	if(ajaxContent.split('#')[0] && $('#'+parentListingId+' .ajaxPod').hasClass('done')==false && triggerLink.hasClass('doAjax')){
		updateExpandLink(parentListingId,'Loading');
		url = ajaxContent.split('#')[0]+"?advertID="+parentListingId.split('_')[1]+"&advertType="+parentListingId.split('_')[2]+"&pageID="+jsOnclickPageID+"&capsule=true";
		autoPlay = triggerLink.hasClass("playVideo") ? true : false;
		$.ajax({
			method: "get",
			url: url,
			success: function(html){
				$('#'+parentListingId+' .ajaxPod').addClass('done');
				$('#'+parentListingId+' .tabbed').after(html);
				$('#'+parentListingId+' .capsuleNav').children().insertBefore('#'+parentListingId+' .contactLink').end().remove();
				galleryArrayBuilder(parentListingId);
				flashBuilder(parentListingId,autoPlay);
				openingHoursBuilder();
				tidyUpTabs(parentListingId,triggerLink);	
			}
		});
	}else{
		tidyUpTabs(parentListingId,triggerLink);	
	}
	$('#'+parentListingId+' .map img').each(function(){
		if($(this).attr('src')=='/img/loading_2009_390x295.gif'){
			var hiddenSpan = $(this).parent().children('span').text();
			$(this).attr('src',hiddenSpan);
		}
	});
}

function tidyUpTabs(parentListingId,triggerLink){
	//Choose a non default tab if necessary
	if(triggerLink.hasClass('HideLink')==false){
		changeTab(chosenTab,parentListingId);
	}
	//If clicked cff open the cff box and update iframe
	if(triggerLink.hasClass('cff-trigger')){
		$('#'+parentListingId+' .cff-box').show();
		if($('#'+parentListingId+' iframe').attr('src')=="http://www.yell.com/yell/loading.html"){
			$('#'+parentListingId+' iframe').attr('src',$('#'+parentListingId+' .hiddenCFF').text());
		}
	}
	openClose(parentListingId,triggerLink);		
}


function urlUpdater(parentListingId){
	var targetOffset = $('#'+parentListingId).offset().top;
	$('html, body').animate({scrollTop: targetOffset-7}, 400);
  if(popupOnce == 0){
    $('.popupout').css("top",targetOffset);
    popupOnce = 1;
  }
}


$(function(){
	$('.cff-link').click(function(){
		var targetDiv = $(this).attr('href');
		$(targetDiv).show('fast');	
		var parentListingId = $(this).closest("div.parentListing").attr('id');
		if($('#'+parentListingId+' iframe').attr('src')=="http://www.yell.com/yell/loading.html"){
			$('#'+parentListingId+' iframe').attr('src',$('#'+parentListingId+' .hiddenCFF').text());
		}
		return false;
	});
});

function changeTab(chosenTab,parentListingId){
	chosenTab = chosenTab=="#undefined" ? "#"+$('#'+parentListingId+' .ajaxPod').children('div:first').attr('id') : chosenTab;
	$(chosenTab).siblings().filter("div.tab1, div.tab2, div.cff, div.contactTab").hide().end().end().show();
	$('#'+parentListingId+' .notNat').hide().show(); //IE7 bug fix
	$('#'+parentListingId+' .tabbed li a').parent().removeClass('selected').end().filter("[href*='"+chosenTab+"']").parent().addClass('selected');
}

function openClose(parentListingId,triggerLink){
	//alert(parentListingId+' - '+triggerLink);
	moreLink = $('#'+parentListingId+' a.expandLink');
	animate = $('#'+parentListingId+' div.notNat').attr('id');
	if(triggerLink.text()==moreLink.text()){ 
		if(moreLink.hasClass('MoreLink') || moreLink.hasClass('LoadingLink')){
			$('#'+animate).show();
			$('#'+parentListingId).addClass('capsuleOpen');
			updateExpandLink(parentListingId,'Close')
			urlUpdater(parentListingId);
		}else{
			$('#'+animate).hide();
			$('#'+parentListingId).removeClass('capsuleOpen');
			updateExpandLink(parentListingId)
		}	
	}
	else if(triggerLink.attr('href').split('#')[0]){ 
		if(moreLink.hasClass('MoreLink') || moreLink.hasClass('LoadingLink')){
			$('#'+animate).show();
			$('#'+parentListingId).addClass('capsuleOpen');
			updateExpandLink(parentListingId,'Close')
			urlUpdater(parentListingId);
		}	
	}
}

function galleryArrayBuilder(callback){
	(callback ? $('#'+callback+' .gallery') : $('.gallery')).each(function(){
		natid = $(this).attr('id');
		galleryData[natid] = [];
		$(this).children().each(function(i){
			galleryData[natid][i] = {
				'href' :$(this).attr('href'),
				'clickEvent':$(this).attr('onclick'),
				'src' :$(this).children(0).attr('src'),
				'alt':$(this).children(0).attr('alt'),
				'text':$(this).children(1).text()
			};           
		}).end().empty().append("<img class='mainImg' id='mainImg"+natid+"' src='/img/loading_2009_269x243.gif' alt='' title=''/><div class='thumbnails' id='thumbnails"+natid+"'></div>");
		if(galleryData[natid].length>1){
			$('#mainImg'+natid).wrap("<div class='gallerySpacer'></div>");
		}
		updateMainImg(0,natid);
		updateNav(0,natid);		
	});
}
function cffBuilder(callback){
	if($('.cff').length > 0 && $('.cff')[0].style.display=='block'){
		cffIframe = $('.cff')[0].id;
		if($('#'+cffIframe+' iframe').attr('src')=="http://www.yell.com/yell/loading.html"){
				$('#'+cffIframe+' iframe').attr('src',$('#'+cffIframe+' .hiddenCFF').text());
		}
	}
}
function updateMainImg(newImg,natid){
	$('#mainImg'+natid).attr('src','/img/loading_2009_269x243.gif');
	website = galleryData[natid][newImg]['text'] ? " ...taken from '"+galleryData[natid][newImg]['text']+"'" : "";
	$('#mainImg'+natid).attr('src',galleryData[natid][newImg]['href']);
	$('#mainImg'+natid).attr('alt',galleryData[natid][newImg]['alt']);
	$('#mainImg'+natid).attr('title',galleryData[natid][newImg]['alt']);
}	
function updateNav(curImg,natid){
	$('#thumbnails'+natid).empty();	
	if(galleryData[natid].length>1){
		for(i=curImg;i<eval(curImg+thumbVar);i++){
			if(i<galleryData[natid].length){
				$("<a href='#'><img src='"+galleryData[natid][i]['src']+"' height='70' width='81' alt='"+galleryData[natid][i]['alt']+"' title='"+galleryData[natid][i]['alt']+"' /></a>").click(function(){
					updateMainImg($(this).attr('i'),natid);
					return false;
				}).attr('i',i).appendTo('#thumbnails'+natid)[0].onclick = galleryData[natid][i]['clickEvent'];
			}
		}
		$("<div class='pusherdiv'></div>").appendTo('#thumbnails'+natid);
		if((curImg+thumbVar)<galleryData[natid].length){
			nextNo = galleryData[natid].length-(curImg+thumbVar);
			nextNo = nextNo>3 ? 3 : nextNo;
			if(nextNo==1){
				nextLink = "Next photo";
			}else{
				nextLink = "Next "+nextNo+" photos";
			}
			$("<a class='nextLink' href='#'>"+nextLink+"</a>").click(function(){
				updateNav(eval(curImg+scrollVar),natid);
				return false;
			}).appendTo('#thumbnails'+natid);	
		}
		if(curImg>0){
			$("<a class='prevLink' href='#'>Prev 3 photos</a>").click(function(){
				updateNav(eval(curImg-scrollVar),natid);
				return false;
			}).appendTo('#thumbnails'+natid);
		}
	}
}

function flashBuilder(callback,autoPlay){
	(callback ? $('#'+callback+' .flashMovie') : $('.flashMovie')).each(function(){
		
		vidContainer = $(this).attr('id');
		varString = $(this).children().eq(0).text();
		
		videoBaseUrl = varString.split(';')[0];
		videoPlayerName = varString.split(';')[1];
		videoHeight = varString.split(';')[2];
		videoWidth = varString.split(';')[3];
		videoStreamName = varString.split(';')[4];
		videoAutoPlay = autoPlay ? autoPlay : varString.split(';')[5];
		
	  	var so = new SWFObject(videoBaseUrl+videoPlayerName, "yellVideoPlayer_embed", videoHeight, videoWidth, "8", "#eeeeee");
		so.addParam("movie", videoBaseUrl+videoPlayerName);
		so.addParam("flashVars", "&streamName="+videoStreamName+"&autoPlay="+videoAutoPlay+"&skinName=YellAltExternalCompact");
		so.addParam("align", "middle");
		so.addParam("quality", "high");
		so.addParam("scale", "default");
		so.addParam("allowFullScreen", "true");
		so.addParam("allowScriptAccess", "always");
		so.addParam("wmode", "transparent");
		so.write(vidContainer);
		
	});
}
function loadEstara(iframeID, estaraUrl){
	$(iframeID).src=estaraUrl;
}
		
function updateExpandLink(parentListingId,linkText){
	moreLink = $('#'+parentListingId+' .expandLink');
	linkText = linkText ? linkText : linkTextArray[$('#'+parentListingId+' .expandLink').attr('linktext')];
	moreLink.html(moreLink.html().replace(/[\w\s\,\.]+<span/i,linkText+"<span").replace(/<button title=\"[\w\s\,\.]+about/i,'<button title="'+linkText+' about'));
	moreLink.attr('title',moreLink.attr('title').replace(/[\w\s\,\.]+about/i,linkText+' about'));
	if(linkText=='Loading'||linkText=='Close'){
		classText=linkText;
	}else{
		classText="More"
	}
	moreLink.removeClass('MoreLink LoadingLink CloseLink').addClass(classText+'Link');
	linkText=false;
}

  function yellVideoPlayed(playPositionPercentage) {
    // Video is playing (either from the start, or after a pause)
  }
  
  
  function myobject() {
  	this.tl = function(){
		return false;
	}
}
var s = new myobject();
  
//omniture logic functions

function expandedClickTracking(var1,var2,var3){
	if($('#'+var1.id.split('omnitureID_')[1]).hasClass('capsuleOpen')==false){
		s.tl(var1,var2,var3);
	}
}
function weblinkClickTracking(var1,var2){
	if($('#'+var1.id.split('omnitureID2_')[1]).hasClass('capsuleOpen')==true){
		s.tl(var1,var2,'CN:WL:OPEN');
	}else{
		s.tl(var1,var2,'CN:WL:CLOSED');
	}
}
function weblinkClickTrackingNonCN(var1,var2){
	if($('#'+var1.id.split('omnitureID2_')[1]).hasClass('capsuleOpen')==true){
		s.tl(var1,var2,'WL:OPEN');
	}else{
		s.tl(var1,var2,'WL:CLOSED');
	}
}
function weblinkClickTrackingFle(var1,var2){
	if($('#'+var1.id.split('omnitureID2_')[1]).hasClass('capsuleOpen')==true){
		s.tl(var1,var2,'FLE:CN:WL:OPEN');
	}else{
		s.tl(var1,var2,'FLE:CN:WL:CLOSED');
	}
}
function weblinkClickTrackingNonCNFle(var1,var2){
	if($('#'+var1.id.split('omnitureID2_')[1]).hasClass('capsuleOpen')==true){
		s.tl(var1,var2,'FLE:WL:OPEN');
	}else{
		s.tl(var1,var2,'FLE:WL:CLOSED');
	}
}
