/*******************************	DEFAULT CONFIGS		************************

	 var fairepart = loadfairepart({
		fairepartGlobalContainer:'faire-part',		===> 	IDENTIFIANT DU BLOC PRINCIPALE
		fairepartJsonSrc:'json/fp_json0001.json',	===>	URL DU JSON A INTEROGER
                fairePartBase:0,				===>	base
                fairePartLimit:12,				===>	limite
                fairepartCurrentPage:0,				===>	Page en cours
		fairepartNbrItemPerPage:6			===>	Nobre de faire-part pas page
	});

							BY MALEK AKA RADOK THE ROOXXOR :D

****************************************************************************************/

var loadfairepart = function (fairepartObj){


	// INSTANTIATION DE L'OBJET RECU
	// VALEURS PAR DEFAUT
	var defaultConfigs = {
		fairepartGlobalContainer:'',
		fairepartJsonSrc:'',
                fairePartBase:0,
                fairePartLimit:12,
                fairepartCurrentPage:0,
		fairepartNbrItemPerPage:6
	};
	// EXTENSION DE L'OBJET RECU PAR LES VALEUR PAR DEFAUT
	if (!fairepartObj) fairepartObj = {};
	$extend(defaultConfigs, fairepartObj);
	fairepartObj = defaultConfigs;

	if (fairepartObj.fairepartGlobalContainer == '') {console.error('fairepartObj.fairepartGlobalContainer : Veuillez indiquer CONTENAIRE PRINCIPAL A CIBLER');return false;}
	if (fairepartObj.fairepartJsonSrc == '') {console.error('fairepartObj.fairepartJsonSrc : Veuillez indiquer le fichier JSON A CIBLER');return false;}


	var fairepartView = fairepartObj;
	fairepartView.animation = false;
	fairepartView.init = function(){
		// CHARGEMENT DU HTML NECCESSAIRE AUX FAIRE-PARTS
		// CONTEUNEURS
		var div = new Element('div',{'id':'contenair_faire-part'});
		var ul = new Element('ul');
		div.adopt(ul);
		fairepartView.contenairElement = div;
		/// BARRE DE NAVIGATION
		var navBar = new Element('div',{'class':'defaultBlockNavBar'});
		var p = new Element('p',{'class':'navTools'});
		var suivant = new Element('a',{'id':'contenair_faire-part_suivant','html':'suivant'});
		var precedent = new Element('a',{'id':'contenair_faire-part_precedente','html':'pr&eacute;c&eacute;dent'});
		var creerFp = new Element('a',{'href':'#','title':'creer un Faire-part', 'html':'&raquo; cr&eacute;er un Faire-part'});

		navBar.adopt(p);
		p.adopt(suivant);
		p.adopt(precedent);
		navBar.adopt(creerFp);
		fairepartView.navBar = navBar;
		$(fairepartView.fairepartGlobalContainer).empty();

		fairepartView.firstLoad = true;
		fairepartView.loadDataJson();
	}
	fairepartView.loadDataJson = function () {
		// REQUETE JSON
		var reqFairePartUrl = fairepartView.fairepartJsonSrc;
		var fairepartObj;
		var fairepartObjJsonReq = new Request.JSON({
			url:reqFairePartUrl,
			onRequest:function(){

			},
			onSuccess:function(responseJSON, responseText) {
				fairepartView.itemObj = responseJSON.fairepart;
				fairepartView.loadHtml();
			}
		}).send('base='+fairepartView.fairePartBase+'&limit='+fairepartView.fairePartLimit);
	}
	fairepartView.loadHtml = function() {
		// CREATION DES FAIRE-PART
		// ATTRIBUTION DES CLASS LIEES AUX THEMES
		var j=0;
		for (i=0;i<2;i++) {
			var li = new Element('li');
			var jMax = fairepartView.fairepartNbrItemPerPage*(i+1);
			for (j=j;j<jMax;j++) {
				var dl = new Element('dl',{'class':fairepartView.itemObj[j].theme});
				li.adopt(dl);
				var dt = new Element('dt',{'html':'<a href="index.php?ref='+fairepartView.itemObj[j].refecard+'"><img src="'+http_static+'/'+fairepartView.itemObj[j].img+'" height="70" width="70" /></a>'});
				dl.adopt(dt);
				var dd = new Element('dd',{
					'html':'<p class="fp_titre">'+fairepartView.itemObj[j].rubrique+'</p><p class="fp_description"><a href="index.php?ref='+fairepartView.itemObj[j].refecard+'">'+fairepartView.itemObj[j].text+'</a></p>'
				});
				dl.adopt(dd);
			}
			fairepartView.contenairElement.getChildren('ul').adopt(li);
		}
		// AU PREMIER CHARGEMENT EFFET DE CHARGEMENT HORIZONTAL
		if (fairepartView.firstLoad == true) {
			$(fairepartView.fairepartGlobalContainer).setStyle('height','auto');
			$(fairepartView.fairepartGlobalContainer).removeClass('loadData');

			// POUR IE 6 LES EFFETS SONT REDUIT
			if (Browser.Engine.trident!=true || Browser.Engine.version>4 ) {
				fairepartView.contenairElement.setStyle('padding-left', '500px');
				var transition = new Fx.Tween(fairepartView.contenairElement,{duration:800});
				transition.start('padding-left', '500px', '0px');
			}

			$(fairepartView.fairepartGlobalContainer).adopt(fairepartView.contenairElement)
			$(fairepartView.fairepartGlobalContainer).adopt(fairepartView.navBar);
			$('contenair_faire-part_suivant').addClass('disableLink');
			fairepartView.firstLoad = false;
		}
		// POUR IE 6 ATTRIBUTIONS DE STYLES SPECIFIQUES
		if (Browser.Engine.trident==true && Browser.Engine.version==4 ) {
			nbrLi = $(fairepartView.fairepartGlobalContainer).getChildren('div')[0].getChildren('ul')[0].getChildren('li');
			$(fairepartView.fairepartGlobalContainer).getChildren('div')[0].getChildren('ul')[0].setStyle('width',(nbrLi.length)*504+'px');
			nbrLi.each(function(item, key){
				item.setStyle('float','left');
			});
		}

		fairepartView.makeNavigable();
	}
	fairepartView.makeNavigable = function () {
		// ATTRIBUTION DES
		$('contenair_faire-part_suivant').addEvent('click', function(){
			fairepartView.moove(+1);
		});
		$('contenair_faire-part_precedente').addEvent('click', function(){
			fairepartView.moove(-1);
		});

	}
	fairepartView.moove = function (direction) {

		// DEPLACEMENTS LATERAUX SUR CLIC
		// DANS LA BARRE DE NAVIGATION
		var element = $(fairepartView.fairepartGlobalContainer).getChildren('div')[0].getChildren('ul')[0];
		var listElementViewable = $(fairepartView.fairepartGlobalContainer).getChildren('div')[0].getChildren('ul')[0].getChildren('li');
		var distanceMoove = 500;
		var transition = new Fx.Tween(element,{
			onStart:function(){
				fairepartView.animation = true;
			},
			onComplete:function(){
				fairepartView.animation = false;
			}
		});

		if (direction==+1) {
			if (fairepartView.fairepartCurrentPage != 0) {
				if (fairepartView.animation == false ) {
					transition.start('margin-left', element.getStyle('margin-left'), ((element.getStyle('margin-left').toInt())+(distanceMoove))+'px');
					fairepartView.fairepartCurrentPage += -1;
					if (fairepartView.fairepartCurrentPage==0) {
						$('contenair_faire-part_suivant').addClass('disableLink');
						$('contenair_faire-part_precedente').removeClass('disableLink');
					}
				}
			}else {
				if (fairepartView.fairepartCurrentPage+1 == listElementViewable.length) {
					$('contenair_faire-part_precedente').addClass('disableLink');
					$('contenair_faire-part_suivant').removeClass('disableLink');
				}
			}
		} else {
			$('contenair_faire-part_suivant').removeClass('disableLink');
			if (fairepartView.fairepartCurrentPage+1 == listElementViewable.length) {
				fairepartView.lastPage = false;
				for (l=0;l<12;l++) {
					if (fairepartView.itemObj[l].last == 'true') fairepartView.lastPage = true;
				}
				if (fairepartView.lastPage == false ) {
					// chargemetn de la suite
					if (fairepartView.animation == false ) {
						fairepartView.fairePartBase += (1*fairepartView.fairePartLimit);
						fairepartView.loadDataJson();
						transition.start('margin-left', element.getStyle('margin-left'), ((element.getStyle('margin-left').toInt())-(distanceMoove))+'px');
						fairepartView.fairepartCurrentPage += 1;
						$('contenair_faire-part_suivant').removeClass('disableLink');
						$('contenair_faire-part_precedente').removeClass('disableLink');
					}
				}else{
					$('contenair_faire-part_suivant').removeClass('disableLink');
					$('contenair_faire-part_precedente').addClass('disableLink');
				}
			} else {
				if (fairepartView.animation == false ) {
					transition.start('margin-left', element.getStyle('margin-left'), ((element.getStyle('margin-left').toInt())-(distanceMoove))+'px');
					fairepartView.fairepartCurrentPage += 1;
					for (l=0;l<12;l++) {
						if (fairepartView.itemObj[l].last == 'true') fairepartView.lastPage = true;
					}
					if (fairepartView.lastPage == true) $('contenair_faire-part_precedente').addClass('disableLink');
				}
			}
		}
	}
	fairepartView.init();
}