﻿var selectedItems = new Array();
var currentListIndex = 0;
var service;

$(document).ready(function(){
    registerDef(); 		
	service = new VELUX.VCMS.DreamWeb.WebServices.DreamWebItems();   
	bindCarousel();
	
	/*jQuery('.jcarousel-skin-tango').jcarousel({
        easing: 'BounceEaseOut',
        animation: 1000
    });*/	
    bindThumbs();	
    bindLargeView();
});

function bindCarousel()
{
	$('.jcarousel-skin-tango').jcarousel();
}

jQuery.easing['BounceEaseOut'] = function(p, t, b, c, d) {
	if ((t/=d) < (1/2.75)) {
		return c*(7.5625*t*t) + b;
	} else if (t < (2/2.75)) {
		return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
	} else if (t < (2.5/2.75)) {
		return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
	} else {
		return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
	}
};

this.historyListener = function(historyHash) {	
		//back		
		if (historyHash < currentListIndex)
		{
		    currentListIndex--;
		    service.GetItems(currentListIndex, getFilter(),dreamList,dreamView, dreamValuesList, dreamXslt, dreamSPSite, dreamSPWeb, dreamLocaleId, complete, error);
		}
		//forward
		else if (historyHash>currentListIndex)
		{			
		    currentListIndex++;
			if (currentListIndex == dreamListCount)
			{
				var filter = getFilter();
				service.GetResultWithItems(0, filter, dreamList,dreamView, dreamValuesList, dreamXslt, dreamSPSite, dreamSPWeb, dreamLocaleId, complete, error);
			}
			else
			{
				service.GetItems(currentListIndex, getFilter(), dreamList,dreamView, dreamValuesList, dreamXslt, dreamSPSite, dreamSPWeb, dreamLocaleId, complete, error);
			}
		}		
	};
	// subscribe to unFocus.History
	if (typeof(unFocus)!="undefined")
	{
		unFocus.History.addEventListener('historyChange', this.historyListener);
	}
	// Check for an initial value (deep link).
	// In this demo app, the historyListener can handle the task.
	//this.historyListener(unFocus.History.getCurrent());

	var flagtorem = false;
function getFilter()
{
	var filter = '';
	for (var i=0; i < dreamListCount; i++)
	{
		filter += (selectedItems[i] + 1)+'';
		filter += ':::';
	}
	return filter;
}
	
function bindThumbs(){	
	
	//define height of opacity background 
	if(document.getElementById('dwCarouselWrapper') && document.getElementById('dwBgCarousel'))
	{
		document.getElementById('dwBgCarousel').style.height = document.getElementById('dwCarouselWrapper').clientHeight + 'px';
	}
	
	if(document.getElementById('loadingLayer') && document.getElementById('dwCarouselContainer'))
	{
		document.getElementById('loadingLayer').style.height = document.getElementById('dwCarouselContainer').clientHeight + 'px';
	}
	
	tb_init('a.thickbox');//pass where to apply thickbox
	
	//set visible of carouset
	$('#dwCarouselWrapper').css('visibility', 'visible');	

	
    $('.jcarousel-skin-tango .jcarousel-item .dwImage img').click(function(){
        var obj = $(this);		
        var imageIndex = obj.attr('sequence') - 1;
        selectedItems[currentListIndex] = imageIndex;			

		//document.title=currentListIndex +'=='+dreamListCount;
		if (currentListIndex == dreamListCount)
		{			
			//var filter = getFilter();
			var filter = obj.attr('filter');
			service.GetResult(filter, dreamIsBeforeAfter, dreamList,dreamView, dreamValuesList, dreamXslt, dreamSPSite, dreamSPWeb, dreamLocaleId, completeResult, error);
			return;
		}
		
        currentListIndex++;
        unFocus.History.addHistory(currentListIndex);   
		
//		$('.dreamwebGallery').html("<b>Loading</b>");
    	$('#loadingLayer').css('display', 'block');
		
		
		if (currentListIndex == dreamListCount)
		{
			var filter = getFilter();
			service.GetResultWithItems(0, filter, dreamList,dreamView, dreamValuesList,  dreamXslt, dreamSPSite, dreamSPWeb, dreamLocaleId, complete, error);
		}
		else
		{				
			service.GetItems(currentListIndex, getFilter(),dreamList,dreamView, dreamValuesList, dreamXslt, dreamSPSite, dreamSPWeb, dreamLocaleId, complete, error);
		}

        return false;  
    });
}

function bindSelected()
{    
	if (selectedItems.length <= currentListIndex)
	{
		selectedItems[currentListIndex] = 0;
	}		
	var expr = ".dreamwebthumb:eq("+selectedItems[currentListIndex]+") img";
	var imgUrl = $(expr).attr('longDesc');
	//alert(imgUrl);
	$('.dwView').attr('src', imgUrl);    
}

var tempVar = 0;

function completeResult(result)
{
	//alert(hehe);
	//alert('complete\r\n'+result);
	$("#dwDescription").html(result);    	
	bindLargeView();
	tb_init('a.thickbox');//pass where to apply thickbox
}

function bindLargeView()
{
	$(".dwPointer").click(function(){
        var src = $(this).attr('largeImage');
		if (src)
		{
			$.modal('<div><img src="'+src+'" /></div>');
		}
		return false;
    });
    
    $(".dwImageView").click(function(){
        var medium = $(this).attr('mediumImage');
        var large = $(this).attr('largeImage');
        
        $('#TB_FullSize img').attr('src', medium);
        $('#TB_FullSize').attr('href', large);
        
        return false;
    });
}

function complete(result){	
    $(dreamWebPartId).html(result);
	bindCarousel();
    bindThumbs();	
    bindSelected();	
	bindLargeView();
}

function error(result){
	alert(result);
}

