var hintCurrentPage = 1;
var hintLeftStatus = [];		

jQuery(document).ready(function() {

	initSmallPager();
	initLargePager();
	initRandomPager();
	initHintPager();
	initProjectNavigation();
	initSmallPagerImageClick(1);
	
});

/* SMALL pager */

initSmallPager = function()
{
	var pager = jQuery('#small-pager');
	var wrapper = jQuery('#small-project-image');
	var pictures = jQuery('#small-project-image img');
	var prevLink = jQuery('#small-pager-prev');
	var nextLink = jQuery('#small-pager-next');
	if (jQuery(pager).attr('id') != undefined && pictures.length > 0 && jQuery(prevLink).attr('id') != undefined && jQuery(nextLink).attr('id') != undefined) {
		var pageLinks = jQuery('#small-pager ul a');
		jQuery.each(pageLinks, function(index, item){
			jQuery(item).click(function(){
				smallPagerClickHandler(this);
				return false;
			});
		});
		jQuery(prevLink).click(function(){
			if (!jQuery(this).hasClass('disabled')) { smallPagerClickHandler(this); }
			return false;
		});
		jQuery(nextLink).click(function(){
			if (!jQuery(this).hasClass('disabled')) { smallPagerClickHandler(this); }
			return false;
		});
	}
	
	if(pictures.length > 0)
	{	
		if(pictures.length == 1)
		{
			jQuery.each(pictures, function(i, item){
				jQuery(item).css('left',((i) * jQuery(wrapper).width()) + 'px');
				jQuery(item).removeClass('hidden');
			});
		}
		else
		{
			/* Starting from 1 page (i) */
			jQuery.each(pictures, function(i, item){
				jQuery(item).css('left',((i) * jQuery(wrapper).width()) + 'px');
				jQuery(item).removeClass('hidden');
			});
		}

		
		//in the work section sometimes the examples don't appear right away 
		/*jQuery(jQuery('#small-project-image').find('img').images).ready(function(){
			jQuery(document.images).ready(function(){
				jQuery('#small-project-image').animate({height: (jQuery(pictures[0]).height() + 15) + 'px' }, 0);
				});*/
		
		/* Fix:
		jQuery('#small-project-image').animate({height: (jQuery(pictures[0]).height() + 15) + 'px' }, 0);*/

	}	
}

function smallPagerClickHandler(item)
{
	showSmallPager(parseInt(jQuery(item).attr('rel')));
}

function showSmallPager(selectedPage)
{
	var wrapper = jQuery('#small-project-image');
	var pictures = jQuery('#small-project-image img');
	setPage('small-pager',selectedPage);
	
	jQuery.each(pictures, function(i, item){
		jQuery(item).animate({left: ((i - selectedPage + 1) * jQuery(wrapper).width()) + 'px' }, 300);
	});
	jQuery(wrapper).attr('href',smallProjectImages[selectedPage - 1]);
	
	jQuery(wrapper).animate({height: (jQuery(pictures[selectedPage - 1]).height()) + 'px' }, 0);
}

/* COMMON */

function setPage(pagerId,selectedPage)
{
	var pager = jQuery('#'+pagerId);
	var prevLink = jQuery('#'+pagerId + '-prev');
	var nextLink = jQuery('#'+pagerId + '-next');
	
	var prevPage = jQuery.toInt(selectedPage) - 1;
	var nextPage = jQuery.toInt(selectedPage) + 1;
	
	var pageCount = jQuery(pager).attr('class').match(/lastpage-(.*)/)[1];
	
	jQuery(prevLink).attr('rel',prevPage);
	jQuery(nextLink).attr('rel',nextPage);
	
	if (prevPage < 1) {
		jQuery(prevLink).addClass('disabled');//css('display','none');
	} else {
		jQuery(prevLink).removeClass('disabled');//css('display','block');
	}
	if (nextPage > pageCount) {
		jQuery(nextLink).addClass('disabled');//css('display','none');
	} else {
		jQuery(nextLink).removeClass('disabled');//css('display','block');
	}
	
	var pageLinks = jQuery('#'+pagerId+' ul a');
	jQuery.each(pageLinks, function(index, item){
		jQuery(item).parent().removeClass('active');
		if (parseInt(jQuery(item).attr('rel')) == selectedPage) {
			jQuery(item).parent().addClass('active');
		}
	});
}

/* LARGE pager */

function initLargePager()
{
	var pager = jQuery('#large-pager');
	var wrapper = jQuery('#large-project-image');
	var pictures = jQuery('#large-project-image img');
	var prevLink = jQuery('#large-pager-prev');
	var nextLink = jQuery('#large-pager-next');
	if (jQuery(pager).attr('id') != undefined && pictures.length > 0 && jQuery(prevLink).attr('id') != undefined && jQuery(nextLink).attr('id') != undefined) {
		var pageLinks = jQuery('#large-pager ul a');
		jQuery.each(pageLinks, function(index, item){
			jQuery(item).click(function() {
				if (!jQuery(this).parent('li').hasClass('active')) { largePagerClickHandler(this);
				var prodcoords = jQuery('#product-box').getCoordinates();
				jQuery(window).scrollTo({top: prodcoords.top + 20}, 500); }
				return false;
			});
		});
		jQuery(prevLink).click(function() {
			if (!jQuery(this).hasClass('disabled')) { largePagerClickHandler(this);
			prodcoords = jQuery('#product-box').getCoordinates();
			jQuery(window).scrollTo({top: prodcoords.top + 20}, 500); }
			return false;
		});
		jQuery(nextLink).click(function() {
			if (!jQuery(this).hasClass('disabled')) { largePagerClickHandler(this);
			var prodcoords = jQuery('#product-box').getCoordinates();
			jQuery(window).scrollTo({top: prodcoords.top + 20}, 500); }
			return false;
		});
	}
	
	if(pictures.length > 0)
	{
		jQuery.each(pictures, function(i, item){
			jQuery(item).css('left',(i * jQuery(wrapper).width()) + 'px');
			jQuery(item).removeClass('hidden');
			
		});
		
		// in the work section sometimes the examples don't appear right away
		//jQuery(jQuery('#large-project-image').find('img').images).ready(function () {
		/*jQuery(document.images).ready(function(){
			jQuery(wrapper).animate({height: (jQuery(pictures[0]).height() + 15) + 'px' }, 0);
		});*/
		
		/*Fix:
		jQuery(wrapper).animate({height: (jQuery(pictures[0]).height() + 15) + 'px' }, 0);*/
	}
	preload_big_image(1, function(){pictures.css('opacity',1);});
}

function largePagerClickHandler(item)
{
	showLargePager(parseInt(jQuery(item).attr('rel')));
}


function preload_big_image(idx, callback)
{
	var wrapper = jQuery('#large-project-image');
	var img = wrapper.find('img').eq(idx-1);	
	if(img.length>0)
		{		
			if(img.attr('src')=='')
				{	
					jQuery(img).css('display','block');			
					jQuery(img).bind("load", function () { jQuery(this).animate({'opacity':1}, 1000, callback).css('display','block') });
					img.attr('src', largeProjectImages[idx - 1]);
				}
			else
				{
					callback();
				}
		}
}

function showLargePager(selectedPage)
{
	var wrapper = jQuery('#large-project-image');
	var pictures = jQuery('#large-project-image img');
	setPage('large-pager',selectedPage);
	
	wrapper.addClass('load-image');
	pictures.css('opacity',0.5);
	
	preload_big_image(selectedPage, function(){
		jQuery.each(pictures, function(i, item){
			jQuery(item).animate({left: ((i - selectedPage + 1) * jQuery(wrapper).width()) + 'px' }, 0);
		});
		wrapper.removeClass('load-image');
		pictures.css('opacity',1);
	});
	jQuery(wrapper).attr('href',originalProjectImages[selectedPage - 1]);
	jQuery(wrapper).animate({height: (jQuery(pictures[selectedPage - 1]).height() + 15) + 'px' }, 0);
}

/* RANDOM pager */

function initRandomPager()
{
	var pager = jQuery('#rand-pager');
	var picturesContainer = jQuery('#rand-container');
	var pictures = jQuery('#rand-container img');
	var prevLink = jQuery('#rand-pager-prev');
	var nextLink = jQuery('#rand-pager-next');
	if (jQuery(pager).attr('id') != undefined && pictures.length > 0 && jQuery(prevLink).attr('id') != undefined && jQuery(nextLink).attr('id') != undefined) {
		var pageLinks = jQuery('#rand-pager ul a');
		
		jQuery.each(pageLinks, function(index, item){
			jQuery(item).click(function() {
				randomPagerClickHandler(this);
				return false;
			});
		});
		jQuery(prevLink).click(function() {
			if (!jQuery(this).hasClass('disabled')) randomPagerClickHandler(this);
			return false;
		});
		jQuery(nextLink).click(function() {
			if (!jQuery(this).hasClass('disabled')) randomPagerClickHandler(this);
			return false;
		});
		
		jQuery.each(pictures, function(i, item){
			jQuery(item).css('left',(i * jQuery(picturesContainer).width()) + 'px');
			jQuery(item).removeClass('hidden');
		});
	}	
}

function randomPagerClickHandler(item)
{
	showRandomPager(parseInt(jQuery(item).attr('rel')));
}

function showRandomPager(selectedPage)
{
	var pictures = jQuery('#rand-container img');
	var picturesContainer = jQuery('#rand-container');
	setPage('rand-pager',selectedPage);
	
	jQuery.each(pictures, function(i, item){
		jQuery(item).animate({left: ((i - selectedPage + 1) * jQuery(picturesContainer).width()) + 'px' }, 300);
	});	
	
	jQuery('#rand-container a').attr('href',originalProjectImages[selectedPage - 1]); 
}

/* THUMBNAILS pager */

function initHintPager()
{
	var pager = jQuery('#hint-pager');
	var prevLink = jQuery('#hint-pager-prev');
	var nextLink = jQuery('#hint-pager-next');
	if (jQuery(pager).attr('id') != undefined && jQuery(prevLink).attr('id') != undefined && jQuery(nextLink).attr('id') != undefined) {		
		var pageLinks = jQuery('#hint-pager ul a');	
		jQuery.each(pageLinks, function(index, item){
			jQuery(item).click(function() {
				hintPagerClickHandler(this);
				return false;
			});
		});
		jQuery(prevLink).click(function() {
			if (!jQuery(this).hasClass('disabled')) hintPagerClickHandler(this);
			return false;
		});
		jQuery(nextLink).click(function() {
			if (!jQuery(this).hasClass('disabled')) hintPagerClickHandler(this);
			return false;
		});
	}	
	if (jQuery('#products-detail').attr('id') != undefined) {
		setTimeout("showPortfolioHints", 200); 
		var pages = jQuery('#products-detail ul.list');
		jQuery.each(pages, function(index, item){
			hintLeftStatus[index] = jQuery.toInt(jQuery(item).css('left').replace('px',''));
		});
	}
}

function showPortfolioHints()
{
	jQuery('#products-detail').css('visibility','visible');
}

function hintPagerClickHandler(item)
{
	showHintPager(parseInt(jQuery(item).attr('rel')));
}

function showHintPager(selectedPage)
{
	setPage('hint-pager',selectedPage);
	var prevPage = hintCurrentPage;
	var nextPage = selectedPage;
	hintCurrentPage = selectedPage;
	var pages = jQuery('#products-detail ul.list');
	jQuery.each(pages, function(index, item){
		var currentLeft = hintLeftStatus[index];
		hintLeftStatus[index] = currentLeft - (nextPage - prevPage) * 966;	
		jQuery(item).animate({left: (currentLeft - (nextPage - prevPage) * 966) + 'px' }, 500);
	});
}

/* Project Ajax Navigation */
function initProjectNavigation()
{
/*
	jQuery('#products-detail a').each(function(index, item){
		jQuery(item).click(function() { 
			getProjectDetails(item);
			return false;
		});
	});
	jQuery('#thumbs-slider a').each(function(index, item){
		jQuery(item).click(function() { 
			getProjectDetails(item);
			return false;
		});
	});
*/
}

function getProjectDetails(item)
{
/*
	if (/::/.test(jQuery(item).attr('rel'))) {
		var requestUrl = '/work/project-details-ajax';
		var params = 'domain=' + this.getProperty('rel');
		var projectDetailsAjax = new Ajax(requestUrl, {method: 'post',postBody:params,onSuccess: function(req) {
				if (req != '')
				{
					jQuery('product-box').innerHTML = req;
					updateSifr();
					if (jQuery('#jsscript')) {
						var newJS = jQuery('jsscript').innerHTML.replace(/<.*>([^<]*)<.*>/ig,'jQuery1');
						eval(newJS);
					}
					initPagers();
				}
			}
		});	
		return false;
	}
*/
}

function initSmallPagerImageClick(selectedPage)
{

	if (jQuery('#small-project-image').attr('id') != undefined) {
		jQuery('#small-project-image').parent().unbind("click");
		jQuery('#small-project-image').parent().click(function(){
			var selectedPage = parseInt(jQuery('#small-pager ul li.active a').attr('rel'));
			showLargePager(selectedPage);
			var prodcoords = jQuery('#product-box').getCoordinates();
			jQuery(window).scrollTo({top: prodcoords.top + 20}, 500);
			return false;
		});
	}
};
