var g_ListNbRetries = Array();
var g_NewTips = null;

function LoadInWorkSpace( page_id, extra_param, div_work, aMethod )
{
	if( typeof(global_ModeUtilisation) != 'undefined' )
		RestartPacemaker(); // Car sur IE, il ne traite pas l'evenement click !
	
	var aUrl = '?';
	var aArgs = 'a_Page=' + page_id + extra_param;
	var aDiv = null;
	
	if( $chk( $(div_work) ) ) aDiv = $(div_work);
	else alert( "La zone " + div_work + " n'existe plus !!" );

	if( !aDiv ) return false;
	
//	if( $chk($$('.tip-wrap')) ) $$('.tip-wrap').destroy();
	if( g_NewTips ) g_NewTips.detach($$('.Tips'));
	if( $chk($('MootoolsTip') ) ) $('MootoolsTip').destroy();
	if( $chk($('log_load') ) ) $('log_load').set( 'text', aUrl + aArgs );  
	
	/*aDiv.set('load', {method:'get'});*/
//	return aDiv.load( aUrl + aArgs );
	
	var current_cmd = "LoadInWorkSpace('" + page_id + "','" + extra_param + "','" + div_work + "','" + aMethod + "');";
	var currentcmd = page_id + '-' + extra_param + "-" + div_work;

//	alert( extra_param );
	if( aMethod == '' ) aMethod = 'get';

	aDiv.set('text','');
	aDiv.addClass( 'ajax-loading' );
	//We can use one Request object many times.
	aDiv.myReq = new Request.HTML( 
	{
		url: aUrl,
		method: aMethod, 
		evalResponse: true,
		update: aDiv, 
		onSuccess: function(html) 
		{
			aDiv.removeClass( 'ajax-loading' );
			var NbRetries = ( g_ListNbRetries[currentcmd] && g_ListNbRetries[currentcmd] != 'undefined' ) ? g_ListNbRetries[currentcmd] : 0; 
			g_ListNbRetries[currentcmd] = null;
			
			setTimeout( "InitTips();", 1000 );
			
			//cas sp�ficique des chargements de li � la vol�e pour les listes de r�sultats de recherche 
			if(page_id == 'load_content_div_result' && $('a_id_load_line_result').value)
				intervertir_li($('a_id_load_line_result').value);
		},
		//Our request will most likely succeed, but just in case, we'll add an
		//onFailure method which will let the user know what happened.
		onFailure: function() 
		{
			aDiv.removeClass( 'ajax-loading' );
			var NbRetries = ( g_ListNbRetries[currentcmd] && g_ListNbRetries[currentcmd] != 'undefined' ) ? g_ListNbRetries[currentcmd] : 0; 
			if( NbRetries > 3 ) 
			{
				aDiv.set('text', '!!!');
				g_ListNbRetries[currentcmd] = null;
			}
			else
			{
				g_ListNbRetries[currentcmd] = 1 + NbRetries;
				setTimeout( current_cmd, 1000 );
			}
		}
	});
	aDiv.myReq.send( aArgs );

	return true;
}

/** Permettra d'ordonner les onglets
*
*/
function InitSortable()
{
		var sb = new Sortables('sortable-list', {
			/* set options */
			clone:true,
			revert: true,
			/* initialization stuff here */
			initialize: function() { 
				
			},
			/* once an item is selected */
			onStart: function(el) { 
				el.setStyle('background','#add8e6');
			},
			/* when a drag is complete */
			onComplete: function(el) {
				el.setStyle('background','#ddd');
			}
		});
}

/** Permet de fournir l'ordre de rangements de onglets
*
*/
function get_tab_order()
{
	var elts = document.getElementsByTagName('li');
	var list_tab = '';
	if(elts)
	{
		for(i = 0; i < elts.length; i++)
		{
			if ( elts[i].id.search('onglet') >= 0)//uniquement les li pour la mise en ordre des onglets
				list_tab += elts[i].id.charAt(6);
		}
	}
	
	return list_tab;
}

/** Permet de g�rer l'accord�on suivant l'item cliqu� dans le menu
* div : id qui correspond � la zone accord�on
* toogle : id de la zone de clik pour plier ou d�plier item du menu accord�on
* divelement : contenu cach� ( afficher en cas de click sur l'item qui lui correspond)
*/
function InitAccordeon(div,item,divelement)
{
	if(window.ie6) var heightValue='100%';
	else var heightValue='';

	global_Accordion = new Accordion($(div), item, divelement, 
	{
		opacity: true,
		onActive: function(toggler, element){
		
			toggler.addClass('titre_bloc_ouvert');
			
			if($('a_Contexte_lien_mespreferences').value && $('a_Contexte_lien_mespreferences').value!='lien_notes_perso' && toggler.id=='notes_perso')
				SetLastActiveLinkMesPreferences();//permettra de retouver le dernier lien cliqu� dans mes pr�f�rences apr�s un changement d'onglet dans l'accord�on
			else
			{
				var extra_param = ( global_AnneeCourante != '' ) ? '&a_AnneeCourante=' + global_AnneeCourante : '2012';
				if( global_LangueCourante != '' ) extra_param += '&a_LangueCourante=' + global_LangueCourante;
				LoadInWorkSpace( toggler.id, extra_param, 'content', 'post' );
			}
			
			if($('a_result_item_id').value!='-1')//pour �viter qu'on rafraichisse les type doc coch�s lorsqu'on essait d'actver une recherche depuis "Mes pr�f�rences"  
				UpdateDisplayTypeDoc(toggler.id,0); //permettra de mettre � jour les type de doc coch�s ( modifi�s entre temps dans un des sous menu de l'accord�on)
		},
		onComplete: function() {
			var element=$(this.elements[this.previous]);
			if(element && element.offsetHeight>0) element.setStyle('height', heightValue);
		},
		onBackground: function(toggler, element){
			toggler.removeClass('titre_bloc_ouvert');
		}
	});
}

 //permettra de retouver le dernier lien cliqu� dans mes pr�f�rences apr�s un changement d'onglet dans l'accord�on
function SetLastActiveLinkMesPreferences()
{
	if ($('a_Contexte_lien_mespreferences') && $('a_Contexte_lien_mespreferences').value)
		LoadFromLink($('a_Contexte_lien_mespreferences').value);//champ hidden
}

/**
* Suppression des espaces de d�but et de fin et globalement en trop (espaces multiples)
* @param  chaine 
* @return chaine trait�
*/
function suppr_espace_inutile(chaine)
{
	chaine = chaine.replace(/[\s]{1,}/gi, ' '); // change multi-space to 1-space
    chaine = chaine.replace(/^\s+|\s+$/g, ''); // remove trim
	return chaine;
}

function removeAllSpaces(string) {
 return string.split(' ').join('');
}


function Deconnection()
{
	ZoneLoginSlideOut();
	setTimeout( "RetourLogin();", 700 );
}

function RetourLogin()
{
	document.frmGo.a_Page.value = 'login';
	document.frmGo.a_Action.value = 'Deconnection';
	document.frmGo.submit();
}

function ZoneLoginSlideIn()
{
	var myZoneLogin = new Fx.Slide('Utilisateur'); //, {mode: 'horizontal'} );
	
	myZoneLogin.hide();
	myZoneLogin.slideIn();
}

function ZoneLoginSlideOut()
{
	var myZoneLogin = new Fx.Slide('Utilisateur', {mode: 'horizontal'} );
	
	myZoneLogin.slideOut();
}

function isdefined( variable )
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}

function ActiverBouton(btn,etat)
{
	if(!$(btn))
		return false;
		
	if(!etat)
	{
		$(btn).disabled = 'disabled';
		$(btn).removeClass('orange_button');
		$(btn).addClass('grey_button');
	}
	else
	{
		$(btn).disabled = '';
		$(btn).removeClass('grey_button');
		$(btn).addClass('orange_button');
	}
	
	$(btn).setStyle('display','inline'); //au cas il �tait invisible
}

function ColorByStateLink(btn,etat)
{
	if(!$(btn))
		return false;
		
	if(etat)
	{
		$(btn).setStyle('color','#0084BE');
		$(btn).setStyle('cursor','pointer');
	}
	else
	{
		$(btn).setStyle('color','#C0C0C0');
		$(btn).setStyle('cursor','default');
	}
}

function is_at_least_one_type_doc_checked()
{
	return (!($('p_si_au_moins_un_type_doc_cocher').value=='000'));
}

function VersionCourante()
{
	var a_version_actif = ( global_AnneeCourante != '' ) ? global_AnneeCourante : '2012';
	
	if( $chk($('a_version_first_year')) )
	{
		global_AnneeCourante = a_version_actif = ( $('a_version_first_year').className == "active" ) ? $('a_version_first_year').get( 'text' ) : (( $('a_version_second_year').className == "active" ) ? $('a_version_second_year').get( 'text' ) : $('a_version_third_year').get( 'text' )); //l'ann�e de la version correspondra � celui de l'onglet activ�
		if( global_AnneeCourante == '2012' )
		{
			$('a_version_first').checked = false;
			$('a_version_second').checked = false;
			$('a_version_third').checked = true;
		}
		if( global_AnneeCourante == '2007' )
		{
			$('a_version_first').checked = false;
			$('a_version_second').checked = true;
			$('a_version_third').checked = false;
		}
		if( global_AnneeCourante == '2002' )
		{
			$('a_version_first').checked = true;
			$('a_version_second').checked = false;
			$('a_version_third').checked = false;
		}
	}

	return a_version_actif;
}

function change_note_by_frame(id,Id_prec,Version,Lang,inframe,mode,hightligthing)
{
	var hightligthing = hightligthing ? 'yes': '';
	id = id.replace(/\./g, ''); //on enleve les points '.'
	var url = '&g_Id='+id+'&g_Lang='+Lang+'&g_version='+Version+'&g_note_liee='+Id_prec+'&g_Highlight='+hightligthing;
	
	var div = 'modal_body'; //pour mode arbo
	var page= 'display_note_popup';//pour mode arbo
	
	if(mode!='l_arbo')//sinon cas mode � plat
	{
		div = 'display_note';
		page = 'display_note';
	}

	if (inframe)//selon qu'on navigue � l'int�rieur du frame ou en dehors(retour)
		parent.LoadInWorkSpace(page,url,div,'get'); //on charge la nouvelle note
	else
		LoadInWorkSpace(page,url,div,'get'); //retour � la note de d�but
}

function CloseSqueezeBox()
{
	if (this.parent.SqueezeBox)
		this.parent.SqueezeBox.close();
	else
		this.close();
}

function CloseAjaxPopupBox()
{
	if( isdefined( 'SexyLightbox' ) )
		SexyLightbox.close();
	else 
		CloseSqueezeBox();
}

function ChangeLangue( NouvelleLangue )
{
	document.frmGo.a_Page.value = '';
	document.frmGo.a_Action.value = '';
	document.frmGo.a_DisplayLanguage.value = NouvelleLangue;
	document.frmGo.submit();
}

function DepliOuPli(div_id, action, type,version, lang,note_or_mark_perso) /* si action = true on d�plie */
{
	if(!action)
	{
		document.getElementById(div_id+'on').style.display = ('none');
		document.getElementById(div_id+'off').style.display = ('block');
	}
	else
	{
		if(document.getElementById(div_id+'on')) // on a d�j� eu � d�pli� ce div
		{
			document.getElementById(div_id+'off').style.display = ('none');
			document.getElementById(div_id+'on').style.display = ('block');
		}
		else //first time qu'on tente de d�pli� ce div ( dans ce cas chargement ajax du contenu cach�)
		{
			var divCacheOn = $(div_id+'off').clone();
			divCacheOn.id = div_id+'on';
			divCacheOn.style.display = ('none');
			divCacheOn.inject(div_id+'off', 'after');
			var type = type ? type : '';
			var note_or_mark_perso = note_or_mark_perso ? note_or_mark_perso : '';
			var parameters = "&g_Div_id="+div_id+"&g_Type="+type+"&g_note_or_mark_perso="+note_or_mark_perso+"&g_version="+version+"&g_lang="+lang;
			$('a_id_load_line_result').value = div_id;
			$('spinner'+div_id+'off').setStyle('display','inline');
			$('img'+div_id+'off').setStyle('display','none');
			setTimeout( "LoadInWorkSpace( 'load_content_div_result', '"+parameters+"', '"+divCacheOn.id+"','get' );", 100 );
		}
	}
	
}

function intervertir_li(div_id)
{
	if($(div_id+'on'))
	{
		$(div_id+'off').style.display = ('none');
		$(div_id+'on').style.display = ('block');
		
		$('a_id_load_line_result').value = '';
		$('spinner'+div_id+'off').setStyle('display','none');
		$('img'+div_id+'off').setStyle('display','inline');
		
		return true;
	}
	
	return false;
}

function Mark(position,seq_no,version,type)
{
	var objEchangeAjax = new Object;

	var url_action_json = 'traite_json.php?a_Page=notes_perso&a_Action=UpdateMark';
		url_action_json += '&g_position='+position+'&g_version='+version+'&g_seq_no='+seq_no+'&g_type_obj='+type;

	objEchangeAjax.position = position+' '; //+'' sinon le 0 devant saute ?? : trouver solution plus commode	
	objEchangeAjax.version = version;
	objEchangeAjax.seq_no = seq_no;
	objEchangeAjax.type_obj = type;
	
	var jSonRequest = new Request.JSON( {
		url:url_action_json,
		data: {p_Json: JSON.encode( objEchangeAjax )},
		onComplete: function( objEchangeAjax ) {
			TraiteReponseAjaxSaveMarkPerso( objEchangeAjax );
			}
		} ).send();
}

function TraiteReponseAjaxSaveMarkPerso( objEchangeAjax )
{
	if( !objEchangeAjax ) return false;
	
	if(objEchangeAjax.etat)
	{
		var position = suppr_espace_inutile(objEchangeAjax.position);
		var seq_no = objEchangeAjax.seq_no;
		
		seq_no = (!seq_no) ? '_' : seq_no;
		 
		var suffixeimage = (objEchangeAjax.etat=='_mark') ? '_mark' : '';
		
		if($('picto_mark'))
			$('picto_mark').src="img/ico_heart"+suffixeimage+".png";//on change dynamiquement (l'�tat de ) l'image
		else if($('picto_mark'+position+seq_no))
		{
			$('picto_mark'+position+seq_no).src="img/ico_heart"+suffixeimage+".png";//on change dynamiquement (l'�tat de ) l'image
			
		}
		else
		{
			var elts = document.getElementsByTagName('img');
			if(elts)
			{
				var i;
				for(i = 0; i < elts.length; i++)
				{
					if ( elts[i].id.search('picto_mark'+position) >= 0)//uniquement les img qui nous interessent
						elts[i].src="img/ico_heart"+suffixeimage+".png";//on change dynamiquement (l'�tat de ) l'image
				}
			}
		}
			
	//	CloseSqueezeBox();
	}
	
	return true;
}

function PopupCenter(pageURL, title,w,h) 
{
	var left = (screen.width/2)-(w/2);
	var top = (screen.height/2)-(h/2);
	var targetWin = window.open( pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left );
} 

function InitTips()
{
//	if( $chk($$('.tip-wrap')) ) $$('.tip-wrap').destroy();
	if( g_NewTips ) g_NewTips.detach($$('.Tips'));
	if( $chk($('MootoolsTip') ) ) $('MootoolsTip').destroy();
	
	g_NewTips = new Tips($$('.Tips'), { showDelay: 500, hideDelay: 250 } );
	g_NewTips.addEvent('show', function(tip){ tip.fade('in'); });
	g_NewTips.addEvent('hide', function(tip){ tip.fade('out'); });
}

function TraiteReponseAjaxbyLang( objEchangeAjax )
{
	if( !objEchangeAjax ) return false;

	if (objEchangeAjax.etat)
	{
		$('spinner-result-item').setStyle('display','none');
		$('parcourir-result-item-h5').setStyle('display','block');
		$('parcourir-result-item').setStyle('display','block');

		$('NbNotes').set('text',objEchangeAjax.NbNotes >= 0 ? ' ('+objEchangeAjax.NbNotes+')': '' );
		$('NbMarchandises').set('text',objEchangeAjax.NbMarchandises >= 0 ? ' ('+objEchangeAjax.NbMarchandises+')': '' );
		$('NbAvis').set('text',objEchangeAjax.NbAvis >= 0 ? ' ('+objEchangeAjax.NbAvis+')': '' );
	}

	if( $chk($('message')) && objEchangeAjax.message )
	{
	/*	$('message').addClass('erreur_login');
		$('message').set('html', objEchangeAjax.message ? objEchangeAjax.message : '&nbsp;');*/
	}

	return true;
}

function ChangeLangueRecherche( nom_select )
{
	selectedIndex = $(nom_select).selectedIndex;
	var a_list_lang = $(nom_select).options[selectedIndex].value;
	global_LangueCourante = a_list_lang;
	 
	$('a_list_lang_simple').selectedIndex = selectedIndex;
	$('a_list_lang_avance').selectedIndex = selectedIndex;
	$('a_list_lang_simple2').selectedIndex = selectedIndex;
	
	UpdateDisplayTypeDoc( 'accueil_content', 0, a_list_lang ); 
}

function ResultatForItembyLang()
{
	var objEchangeAjax = new Object;
	var url_action_json = null;

	var a_list_lang = $('a_list_lang_simple2').options[$('a_list_lang_simple2').selectedIndex].value;
	$('a_list_lang_avance').selectedIndex = $('a_list_lang_simple2').selectedIndex;	
	$('a_list_lang_simple').selectedIndex = $('a_list_lang_simple2').selectedIndex;
	global_LangueCourante = a_list_lang;
	 
	var extra_param = ( global_AnneeCourante != '' ) ? '&a_AnneeCourante=' + global_AnneeCourante : '2012';
	if( global_LangueCourante != '' ) extra_param += '&a_LangueCourante=' + global_LangueCourante;
	LoadInWorkSpace( 'parcourir', extra_param, 'content', 'post' );
	
	var a_version_actif = VersionCourante();
		
	UpdateDisplayTypeDoc( 'parcourir', a_version_actif, a_list_lang ); 

	if (!$('a_result_item_id') || !$('a_result_item_id').value)
		return false;

	$('parcourir-result-item').setStyle('display','inline');
	$('spinner-result-item').setStyle('display','inline');
	$('parcourir-result-item-h5').setStyle('display','none');

	objEchangeAjax.Id = $('a_result_item_id').value;

	var p_si_au_moins_un_type_doc_cocher = $('p_si_au_moins_un_type_doc_cocher').value;
	url_action_json = 'traite_json.php?a_Page=parcourir&a_Action=ResultItem&a_list_lang='+a_list_lang+'&a_numero='+objEchangeAjax.Id+'&a_version='+a_version_actif+'&a_typedoc='+p_si_au_moins_un_type_doc_cocher;

	var jSonRequest = new Request.JSON( {
	url:url_action_json,
	data: {p_Json: JSON.encode( objEchangeAjax )},
	onComplete: function( objEchangeAjax ) {
		TraiteReponseAjaxbyLang( objEchangeAjax );
		}
	} ).send();
}

function TraiteReponseAjax( objEchangeAjax )
{
	if( !objEchangeAjax ) return false;

	if( $chk($('message')) && objEchangeAjax.message )
	{
		$('message').addClass('erreur_login');

		$('message').set('html', objEchangeAjax.message ? objEchangeAjax.message : '&nbsp;');
	}

	return true;
}


