// JavaScript Document
/**
 * Image src URLs
 **/
 
// ************************************************************************************************************ 
// ************************************************************************************************************
// **********************************************    ATENÇÃO    ***********************************************
// ************************************************************************************************************ 
// ******** ao incluir ou remover uma imagem na lista, não esquecer de adicionar ou reduzir um número *********
// ******** ao valor dos seguintes campos : "MaxValue", "NumUnique" e "size". *********************************
// ************************************************************************************************************ 
// ************************************************************************************************************
// ************************************************************************************************************
// ************************************************************************************************************

var imageList = [
				 "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/banner_pldo_2011.jpg",
				 //"http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/tlc_banner.jpg",
				 "http://www.planejamento.gov.br//secretarias/upload/Imagens/pag_principal_banners/Banner_pac2.jpg",
				 "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/estatistica_fiscal.jpg",
			     "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/processo_contasAnuais.jpg",
				 "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/transparencia.jpg",
				 "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/banner_inventario.jpg",
				 "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/banner_servidor.jpg",
				 "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/banner_enap.jpg",
				 "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/banner_ibge.jpg",
				 "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/banner_anteprojeto2.jpg",	
				 "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/banner_destaque.jpg",	
				 "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/Banner_software.jpg",	
				 "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/banner_dest.jpg",
				 "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/banner_eleicoes.jpg",
				 "http://www.planejamento.gov.br/secretarias/upload/Imagens/pag_principal_banners/banner_2sof.jpg",
				 
				 ];
var imageURL = [
				 "http://www.planejamento.gov.br/noticia.asp?p=not&cod=6036&cat=47&sec=8",
				 //"http://www.inclusaodigital.gov.br",
				 "/noticia.asp?p=not&cod=2194&cat=264&sec=29",
				 "/secretaria.asp?cat=226&sec=8",			
				 "http://www.planejamento.gov.br/noticia.asp?p=not&cod=4298&cat=244&sec=25",
				 "http://www.planejamento.gov.br/transparencia",
				 "http://www.planejamento.gov.br/secretarias/upload/Arquivos/seges/arquivos/091211_Inventario.pdf",
				 "http://www.servidor.gov.br", 
				 "http://www.enap.gov.br/", 
				 "http://www.ibge.gov.br/", 
				 "/link_secretaria.asp?cod=4836&cat=34&sec=6&sub=",				 
				 "http://www.presidencia.gov.br/estrutura_presidencia/Subsecretaria/publicacoes/destaques/", 				 
				 "http://www.softwarepublico.gov.br", 
				 "http://www.planejamento.gov.br/noticia.asp?p=not&cod=6128&cat=22&sec=4", 
				 "http://www.planejamento.gov.br/secretarias/upload/Arquivos/publicacao/eleicoes/Condutas_Vedadas_2010.pdf",
				 "http://www.planejamento.gov.br/2-seminario-orcamento/",
				  ];

/**
 * Since carousel.addItem uses an HTML string to create the interface
 * for each carousel item, this method formats the HTML for an LI.
 **/
var fmtItem = function(imgUrl, url, title) {
  	var innerHTML = 
  		'<a href="' + 
  		url + 
  		'"><img src="' + 
  		imgUrl +
		'" width="' +
		100 +
		'" height="' +
		50+
		'" alt="destaques" target="_blank"/>' + 
  		title + 
  		'<\/a>';
  
	return innerHTML;
};

/**
 * Custom inital load handler. Called when the carousel loads the initial
 * set of data items. Specified to the carousel as the configuration
 * parameter: loadInitHandler
 **/
var loadInitialItems = function(type, args) {

	var start = args[0];
	var last = args[1]; 

	load(this, start, last);	
};

/**
 * Custom load next handler. Called when the carousel loads the next
 * set of data items. Specified to the carousel as the configuration
 * parameter: loadNextHandler
 **/
var loadNextItems = function(type, args) {	

	var start = args[0];
	var last = args[1]; 
	var alreadyCached = args[2];
	
	if(!alreadyCached) {
		load(this, start, last);
	}
};

/**
 * Custom load previous handler. Called when the carousel loads the previous
 * set of data items. Specified to the carousel as the configuration
 * parameter: loadPrevHandler
 **/
var loadPrevItems = function(type, args) {
	var start = args[0];
	var last = args[1]; 
	var alreadyCached = args[2];
	
	if(!alreadyCached) {
		load(this, start, last);
	}
};

/**
 * To simulate out of synch loading, we load these items backwards.
 * This exercises the ability to load items out of sequence.
 */

/*	for(var i=last; i>=start; i--) {
		carousel.addItem(i, fmtItem(imageList[i-1], imageURL[i-1], ""));
	}*/


/*Random test 1*/
/*var getRandom = function(max, last) {
    var randomIndex;
    do {
        randomIndex = Math.floor(Math.random()*max);
    } while(randomIndex == last);
    
    return randomIndex;
};

var load = function(carousel, start, last) {

	
	var lastRan = -1;
	
	for(var i=start;i<=last;i++) {
        var randomIndex = getRandom(10, lastRan);
        lastRan = randomIndex;
        carousel.addItem(i, fmtItem(imageList[randomIndex], imageURL[randomIndex], ""));
	}
};*/

var load = function(carousel, start, last) {

var Found=false
var Current = new Array()
var MaxValue=14 //(Example 2 is equal to: 0,1,2)
var NumUnique=15  //The number of unique numbers required
var Count=0
var Current = new Array(NumUnique)
GetUnique()

//alert("The unique numbers are: " + Current[0] + ", " + Current[1] + ", and " + Current[2])
  function GetUnique()
  {
    for (i=0;Count<NumUnique;Count++)
    {
      Found=false
      var rndValue = get_random()
      var j=0
      for (j=0;j<Current.length;j++)
      {
        if (Current[j] == rndValue)
        {
          Found=true
          break
        }
      }
      if (Found)
      {
        Count--
      } else {
        Current[Count]=rndValue
      }
    }
  }
  function get_random()
  {
    var ranNum= Math.round(Math.random()*MaxValue);
    return ranNum;
  }

	for(var i=1;i<=NumUnique;i++) {
        carousel.addItem(i, fmtItem(imageList[Current[i-1]], imageURL[Current[i-1]], ""));
	}
};

/**
 * Custom button state handler for enabling/disabling button state. 
 * Called when the carousel has determined that the previous button
 * state should be changed.
 * Specified to the carousel as the configuration
 * parameter: prevButtonStateHandler
 **/
 var handlePrevButtonState = function(type, args) {

	var enabling = args[0];
	var leftImage = args[1];
	if(enabling) {
		leftImage.src = "/layout/imagens/left-enabled.gif";		
	} else {
		leftImage.src = "/layout/imagens/left-disabled.gif";	
	}
};

/**
 * Custom button state handler for enabling/disabling button state. 
 * Called when the carousel has determined that the next button
 * state should be changed.
 * Specified to the carousel as the configuration
 * parameter: nextButtonStateHandler
 **/
var handleNextButtonState = function(type, args) {
	var enabling = args[0];
	var rightImage = args[1];
	if(enabling) {
		rightImage.src = "/layout/imagens/right-enabled.gif";	
	} else {
		rightImage.src = "/layout/imagens/right-disabled.gif";
	}
};

/**
 * You must create the carousel after the page is loaded since it is
 * dependent on an HTML element (in this case 'dhtml-carousel'.) See the
 * HTML code below.
 **/
var carousel; // for ease of debugging; globals generally not a good idea

var pageLoad = function() 
{
	carousel = new YAHOO.extension.Carousel("dhtml-carousel", 
		{
			numVisible:        6,
			animationSpeed:    0.4,
			animationMethod:   YAHOO.util.Easing.easeBoth,
			scrollInc:         6,
			navMargin:         53,
			size:              15,
			loadInitHandler:   loadInitialItems,
			prevElement:     "prev-arrow",
			nextElement:     "next-arrow",
			loadNextHandler:   loadNextItems,
			loadPrevHandler:   loadPrevItems,
			prevButtonStateHandler:   handlePrevButtonState,
			nextButtonStateHandler:   handleNextButtonState
		}
	);
};

YAHOO.util.Event.addListener(window, 'load', pageLoad);
