var renderIntial = false;

/////////////////////////////
//PAGE RENDERING FUNC
/////////////////////////////

function renderIntialPage()
{
	onIntialRenderer();
	resetPage();
	debug(rendererDebug, "segs.length:"+segs.length);
	if(segs.length == 0)
	{
		//get fresh data for first item in menu
		var firsthref = findFirstListLink($('#sitemap'));
		if(firsthref)
		{
			page_url = firsthref.replace(site_url, '');
			debug(rendererDebug, "do intial data call to :"+page_url);
	    	SWFAddress.setValue(page_url);
			//processPageCall();
		}
		else
		{
			pageData = {"current":{'type':type}};
			renderRequestData();
		}
	}
	renderIntial = true;
}

//resets the page before loading new content
function resetPage(renderPageOnFade)
{
	stopCarouselTimer();
	
	if($('#content .pageblock').size() > 0)
	{
		//if there is a page already visible on the screen
		pageblock 	= $('#content .pageblock');
				
		//add preloader at same size as pageblock
		$('#content').prepend('<span id="preloadblock" class="block"></span>');
		preblock 	= $('#content  #preloadblock');	
		preblock.height(pageblock.innerHeight()).width(pageblock.innerWidth());
		
		//fadeout content
		pageblock.find('.wrap').animate({"opacity": 0}, 0, "linear", 
			function()
			{
				//remove pageblock an show preloader
				pageblock.remove(); 
				preblock.show();
				showPreloader($('#preloadblock'));
				
				var shrinkTime = 0;
				if(!pageData)
				{
					if(!pageData){shrinkTime = 500;}
					preblock.animate({"height": $('#content .block:last').height(), "width": $('#content .block:last').width()}, shrinkTime, "linear", 
						function()
						{
							renderOnBodyHidden(renderPageOnFade);
						}
					);
				}
				else
				{
					renderOnBodyHidden(renderPageOnFade);
				}
			}
		);
	}
	else
	{
		//if viewing the homepage
		renderOnBodyHidden(renderPageOnFade);
	}
}

function renderOnBodyHidden(renderPageOnFade)
{
	//show preloader
	//showPreloader();
	
	//remove scroll war actual height property
	//$(this).find('.scroll_wrap').removeAttr(aHAtt);
	
	//if render is true then 
	//renders new page
	if(renderPageOnFade)
	{
		//this is true when we already have the data
		renderRequestData();
	}
}

//renderer function
function renderRequestData()
{
	intialDeepLink = false;
	
	//show or hide hidden thumb blocks
	//depending on if the new page is a child of the block hidden
	//eg. about has child services, if about was visible, and you click services
	//dont show the about thumb block
	if(pageData.selected_ids != undefined && pageData.selected_ids)
	{
		var notArr = [];
		for(var i=0; i < pageData.selected_ids.length; i++)
		{
			notArr.push('#block'+pageData.selected_ids[i]);
		}
		//console.log(notArr.join(', '));
		$('#content .block').not(notArr.join(', ')).show();
		$(notArr.join(', ')).hide();
	}
	else
	{
		$('#content .block').show();
	}
	
	//set page title
	if(pageData.seo != undefined)
	{
		document.title = pageData.seo.title;
	}
	
	if(pageData.page != undefined)
	{
		//if there is data
		
		//scroll to top
		$(document).scrollTop(0);
		
		//if a tumb block of this page exist then hide it
		var block = $('#content #block'+pageData.page.id);
		if(block.size() > 0){block.hide();}
		
		//if there isnt a preloader then add one
		if($('#content #preloadblock').size() == 0)
		{
			$('#content').prepend('<span id="preloadblock" class="block"></span>');
			showPreloader($('#preloadblock'));
		}
		
		//set the new page data, but hidden
		$('#content').prepend('<span class="toload">'+pageData.page.html+'</div>');
		$('#content .pageblock').hide().unwrap();
		checkPageLoadingDelay($('#content .pageblock'));
	}
	else
	{
		//else if there is no data
		//show homepage
		if(pageData && pageData.html != undefined && $('#content').html() == '')
		{
			$('#content').html(pageData.html);
		}
		else
		{
			$('#content #preloadblock').remove();
		}
		checkPageLoadingDelay($('#content'));
	}
}

//on render request action complete
function renderRequestComplete()
{
	debug(rendererDebug, "show new page content");
	
	//add page listeners
	addLinkClickListeners();
	
	//gallery carousel
	initGalleryCarousel()
	
	//hide preloader
	hidePreloader(null, onPreloaderRemoved);
}

function onPreloaderRemoved()
{
	//show content
	var preblock = $('#content #preloadblock');
	var pageblock = $('#content .pageblock');

	if(preblock.size() > 0 && pageblock.size() > 0)
	{
		//if there is a preloader and there is a pageblock
		preblock.animate({"height": pageblock.innerHeight(), "width": pageblock.innerWidth()}, 300, "linear", function(){preblock.remove(); pageblock.show();});
	}
	else
	{
		//else show content
		$('#content').css('z-index', '').css('opacity', '');
	}
}

//if there are media items queued
function onQueuedItems()
{
	//theres nothing really to do
}

function onQueueComplete()
{
	debug(rendererDebug, "queue complete, resize and show "+pageData.page_type_name+" content");
	
	//once all page data is loaded
	//refresh dimensions and resize content
	onPageRefreshed();
	
	//render text page
	renderRequestComplete();
}





