var arrayShowTOC = new Array("advs1", "advs2");
var arrayShowTOCBourse = new Array("advs10");

var DEFAULT_PROXIMITE_VALUE = "3";
var ID_JURISPRUDENCE_CRITERIAS_DIV = "bulletinCriteriaDialog";
var HTML_PLUS_DE_CRITERES = "<a href=\"javascript:void(0);\" onclick=\"showBulletinCriterias();\">Plus de crit&egrave;res</a>";
var HTML_FERMER_LES_CRITERES = "<a href=\"javascript:void(0);\" onclick=\"hideBulletinCriterias();\">Fermer les crit&egrave;res</a>";

$(function() { 
	showHideToc();
	displayToc();
	filterFondByToc();
	switchToc();
	unchedAllTypeDoc();
	if(document.getElementById("advs4").checked || document.getElementById("advs40").checked){
		showBulletinCriteriasPrompt();
	}
	$('#advs1').click(function(e) {
		unchedAllTypeDoc();
		showHideToc();
		fiterDisplayToc();
		filetrLabels();
	});
	$('#advs10').click(function(e) {
		unchedAllTypeDoc();
		showHideToc();
		fiterDisplayToc();
		filetrLabels();
	});
	$('#advs2').click(function(e) {
		unchedAllTypeDoc();
		showHideToc();
		fiterDisplayToc();
		filetrLabels();
	});	
	$('#advs3').click(function(e) {
		unchedAllTypeDoc();
	});
	$('#advs30').click(function(e) {
		unchedAllTypeDoc();
	});
	$('#advs5').click(function(e) {
		selectAllTypeDoc(e);
		setJurisprudenceDisplay(e);
	});
	$('#advs50').click(function(e) {
		selectAllTypeDocSociete(e);
		fiterDisplayToc();
		unchedAllTypeDoc();
		setJurisprudenceDisplay(e);
	});
	$('#advs51').click(function(e) {
		selectAllTypeDocBourse(e);
		fiterDisplayToc();
		unchedAllTypeDoc();
		setJurisprudenceDisplay(e);
	});
	$('#advs4').click(function(e) {
		setJurisprudenceDisplay(e);
		unchedAllTypeDoc();
	});
	$('#advs40').click(function(e) {
		setJurisprudenceDisplay(e);
		unchedAllTypeDoc();
	});
	$('#radio1J0').click(function(e) {
		onKeyUp0('radio1J0','0');
	});
	$('#radio1M0').click(function(e) {
		onKeyUp0('radio1M0','0');
	});
	$('#radio1A0').click(function(e) {
		onKeyUp0('radio1A0','0');
	});
	$('#radio1J1').click(function(e) {
		onKeyUp0('radio1J1','0');
	});
	$('#radio1M1').click(function(e) {
		onKeyUp0('radio1M1','0');
	});
	$('#radio1A1').click(function(e) {
		onKeyUp0('radio1A1','0');
	});
	$('#radio1J2').click(function(e) {
		onKeyUp0('radio1J2','1');
	});
	$('#radio1M2').click(function(e) {
		onKeyUp0('radio1M2','1');
	});
	$('#radio1A2').click(function(e) {
		onKeyUp0('radio1A2','1');
	});
	$('#radio1J0').focus(function(e) {
		onValueChange0('radio1J0');
	});
	$('#radio1M0').focus(function(e) {
		onValueChange0('radio1M0');
	});
	$('#radio1A0').focus(function(e) {
		onValueChange0('radio1A0');
	});
	$('#radio1J1').focus(function(e) {
		onValueChange0('radio1J1');
	});
	$('#radio1M1').focus(function(e) {
		onValueChange0('radio1M1');
	});
	$('#radio1A1').focus(function(e) {
		onValueChange0('radio1A1');
	});
	$('#radio1J2').focus(function(e) {
		onValueChange0('radio1J2');
	});
	$('#radio1M2').focus(function(e) {
		onValueChange0('radio1M2');
	});
	$('#radio1A2').focus(function(e) {
		onValueChange0('radio1A2');
	});
	for(var j = 1; j <= 3; j++) {	
		$('#operateur' + j).change(function(e) {
			setProximite(e);
	    });
	}
	for(var j = 1; j <= 2; j++) {	
		$('#radio' + j).click(function(e) {
			setDateJurisprudence(e,null);
	    });
	}
}); 
function onKeyUp0(ID, type) {
	value = document.getElementById(ID).value;
	if(value == 'JJ' || value == 'MM' ||value == 'AAAA')
		document.getElementById(ID).value= '';
	if(type == '0'){
		$('#'+ID).keyup(function(e) {
			document.getElementById("radio1").checked = true;
			document.getElementById("radio2").checked = false;
		});
	}else{
		$('#'+ID).keyup(function(e) {
			document.getElementById("radio1").checked = false;
			document.getElementById("radio2").checked = true;
		});
	}
}
function onValueChange0(ID) {
	$('#'+ID).keyup(function(e) {
		value = document.getElementById(ID).value;
		if(ID == 'radio1J0'){
			if(value.length == 2){
				document.getElementById("radio1M0").focus();
				document.getElementById("radio1M0").select();
			}
		}else if(ID == 'radio1M0'){
			if(value.length == 2){
				document.getElementById("radio1A0").focus();
				document.getElementById("radio1A0").select();
			}
		}else if(ID == 'radio1A0'){
			if(value.length == 4){
				document.getElementById("radio1J1").focus();
				document.getElementById("radio1J1").select();
			}
		}else if(ID == 'radio1J1'){
			if(value.length == 2){
				document.getElementById("radio1M1").focus();
				document.getElementById("radio1M1").select();
			}
		}
		else if(ID == 'radio1M1'){
			if(value.length == 2){
				document.getElementById("radio1A1").focus();
				document.getElementById("radio1A1").select();
			}
		}else if(ID == 'radio1A1'){
			if(value.length == 4){
				document.getElementById("radio1J0").focus();
				document.getElementById("radio1J0").select();
			}
		} else if(ID == 'radio1J2'){
			if(value.length == 2){
				document.getElementById("radio1M2").focus();
				document.getElementById("radio1M2").select();
			}
		}else if(ID == 'radio1M2'){
			if(value.length == 2){
				document.getElementById("radio1A2").focus();
				document.getElementById("radio1A2").select();
			}
		}else if(ID == 'radio1A2'){
			if(value.length == 4){
				document.getElementById("radio1J2").focus();
				document.getElementById("radio1J2").select();
			}
		}
	});
}
function setTOCDisplay(e) {
	var showDivTOC = e.target.checked;
	for(var i = 0; i < arrayShowTOC.length; i++) {
		if(arrayShowTOC[i] != e.target.id) {
			showDivTOC = showDivTOC || document.getElementById(arrayShowTOC[i]).checked;
			
			var divToc = document.getElementById("TOCElements");
			var divTocInfos = document.getElementById("infosTOCElements");
			var divTocInfos2 = document.getElementById("infosTOCElements2");
			
			if(showDivTOC) {
				divToc.style.display = "block";
				divTocInfos.style.display = "none";
				divTocInfos2.style.display = "none";
				break;
			}
			else {
				divToc.style.display = "none";
			}
		}
	}
}

function showHideToc() {
	var isFondBourseChecked = true;
	var isFondSocieteChecked = true;
	for(var i = 0; i < arrayShowTOC.length; i++) {
		if(document.getElementById(arrayShowTOC[i]).checked){
			isFondSocieteChecked = true;
			break;
		}else isFondSocieteChecked = false;
	}
	for(var j = 0; j < arrayShowTOCBourse.length; j++) {
		if(document.getElementById(arrayShowTOCBourse[j]).checked){
			isFondBourseChecked = true;
			break;
		}else isFondBourseChecked = false;
	}
	var divToc = document.getElementById("TOCElements");
	var divTocInfos = document.getElementById("infosTOCElements");
	var divTocInfos2 = document.getElementById("infosTOCElements2");
	if((isFondSocieteChecked && !isFondBourseChecked) || (!isFondSocieteChecked && isFondBourseChecked)) {
		var ongletBourse = document.getElementById("tocOngletBourse");			
		var ongletSoc = document.getElementById("tocOngletSoc");			
		if(isFondSocieteChecked){
			ongletBourse.className = "ong_toc_fonds_bourse_off";
			ongletSoc.className = "ong_toc_fonds_soc_on";
			var listTOCVideInfo = document.getElementById("listTOCVide");
			if(listTOCVideInfo){
				listTOCVideInfo.style.display = "block";
			}
		}
		else if(isFondBourseChecked){
			ongletBourse.className = "ong_toc_fonds_bourse_on";
			ongletSoc.className = "ong_toc_fonds_soc_off";
			var listTOCVideInfoB = document.getElementById("listTOCVideB");
			if(listTOCVideInfoB){
				listTOCVideInfoB.style.display = "block";
			}
		}
		divToc.style.display = "block";
	}
	else {
		divToc.style.display = "none";
	}
	if(isFondSocieteChecked && isFondBourseChecked){
		divTocInfos.style.display = "block";
		divTocInfos2.style.display = "none";
	}
	else if(!isFondSocieteChecked && !isFondBourseChecked){
		divTocInfos.style.display = "none";
		divTocInfos2.style.display = "block";
	}
	else{
		divTocInfos.style.display = "none";
		divTocInfos2.style.display = "none";
	}

}

function displayToc() {
	advs1Checked = document.getElementById("advs1");
	advs2Checked = document.getElementById("advs2");
	advs10Checked = document.getElementById("advs10");
	var isFondBourseChecked = advs10Checked.checked;
	var isFondSocieteChecked = advs1Checked.checked || advs2Checked.checked;
	showHideToc();
	if(advs1Checked.checked && advs2Checked.checked){
		//showHideToc();
	}
	else{
		fiterDisplayToc();
	}
}
function filterFondByToc(){
	advs1Checked = document.getElementById("advs1");
	advs2Checked = document.getElementById("advs2");
	advs10Checked = document.getElementById("advs10");
	var isFondBourseChecked = advs10Checked.checked;
	var isFondSocieteChecked = advs1Checked.checked || advs2Checked.checked;
	var isFondSocieteAllChecked = advs1Checked.checked && advs2Checked.checked;
	
	/* * 
	Niveau 1  -- tr = tr0-E-GEN-A
	Niveau 2  -- tr = tr1-E-GEN-TA010
	Niveau 3  -- tr = tr2-E-GEN-TA010-EA010 */
	// Sélectionne les éléments tr dont l'attribut id commence par "tr0".
	$("#TOCElements").find('tr[id^="tr0"]').each(function(i){
		var display1 = false;
		
		$(this).find('tr[id^="tr1"]').each(function(u){	
			var display2 = false;
			
			$(this).find('tr[id^="tr2"]').each(function(o){
				//Traitement des Niveaux 3
				if(hideDisplayElt(this,advs1Checked,advs2Checked,advs10Checked,false)){
					display2 = true;
				}
			})
			//Traitement des Niveaux 2
			if(hideDisplayElt(this,advs1Checked,advs2Checked,advs10Checked,display2)){
				display1 = true;
			}
		})
		
		//Traitement des Niveaux 1
		hideDisplayElt(this,advs1Checked,advs2Checked,advs10Checked,display1);	
    });
}

function hideDisplayElt(elt,advs1Checked,advs2Checked,advs10Checked,display){
	retour = false;
	if(display){
		elt.style.display = "";
		return true;
	}
	else{
		var fondE = "E";//type etude societe
		var fondF = "F";//type formule societe
		var fondFE = "FE";//type etude et formule societe
		var fondEB = "E_B";//type etude bourse
		var fondFB = "F_B";//type formule bourse
		var fondFE_B = "FE_B";//type etude et formule bourse
		
		var isFondBourseChecked = advs10Checked.checked;
		var isFondSocieteChecked = advs1Checked.checked || advs2Checked.checked;
		var isFondSocieteAllChecked = advs1Checked.checked && advs2Checked.checked;
		subs = elt.id.split('-')[1];
		if(!isFondBourseChecked || isFondSocieteChecked){
			if(advs1Checked.checked) {
				if((subs == fondE)||(subs == fondFE)){
					elt.style.display = "";
					retour = true;
				}
			}
			else{
				if(subs == fondE) elt.style.display = "none";
			}
			if(advs2Checked.checked) {
				if((subs == fondF)||(subs == fondFE)){
					elt.style.display = "";
					retour = true;
				}
			}
			else{
				if(subs == fondF) elt.style.display = "none";
			}
			if(subs == fondEB || subs == fondFB || subs == fondFE_B ) elt.style.display = "none";
		}else if(isFondBourseChecked || !isFondSocieteChecked){
			if(subs == fondEB){
				elt.style.display = "";
				retour = true;
			}
			else elt.style.display = "none";	
		}
		else if(isFondBourseChecked || isFondSocieteAllChecked){
			elt.style.display = "";
			retour = true;
		}
	}
	return 	retour ;
} 

function filetrLabels(){
	var advs2 = document.getElementById("advs2");
	var advs1 = document.getElementById("advs1");
	isFormule = !advs2.checked;
	isEtude = !advs1.checked;
	isFormuleAndEtude = advs2.checked && advs1.checked;
    tableauToc = document.getElementById('tabPrincTOC');
	$(tableauToc).find("span").each(    
		function(){
				if(($(this).attr("id") == 'spF' && isFormule) 
					|| ($(this).attr("id") == 'spE' && isEtude)) {
					$(this).css('display','none');
				}
				else if(($(this).attr("id") == 'spT' && isEtude) 
					|| ($(this).attr("id") == 'spT' && isFormule)){
					$(this).css('display','none');
				}
				else $(this).css('display','');
		}
    );	
}

function switchToc(){
	$("#TOCElements").find("a[class='sdocs_link1']").each( function(i) {
                joly_docs_view_switchDisplay(this);
           }
        );	
}

function fiterDisplayToc() {
	filterFondByToc();
}

function setJurisprudenceDisplay(e) {
	advs4Checked = document.getElementById("advs4");
	advs40Checked = document.getElementById("advs40");
	if(advs4Checked.checked || advs40Checked.checked) {
		var div = document.getElementById(ID_JURISPRUDENCE_CRITERIAS_DIV);
		if(div.style.display == "none"){
			showBulletinCriteriasPrompt();
		}
	}
	else {
		closeBulletinCriterias();
	}
}

function selectAllTypeDoc(e){
	advs50Checked = document.getElementById("advs50");
	advs51Checked = document.getElementById("advs51");
	if(!advs50Checked.checked){
		advs50Checked.click();
		advs50Checked.checked = true;
	}
	else {
		selectAllTypeDocSociete(e);
		advs50Checked.checked = false;
	}
	if(!advs51Checked.checked){
		advs51Checked.click();
		advs51Checked.checked = true;
	}
	else {
		selectAllTypeDocBourse(e);
		if(!e.target.checked) advs51Checked.checked = false;
	}
}

function selectAllTypeDocSociete(e){
	advs1Checked = document.getElementById("advs1");
	advs2Checked = document.getElementById("advs2");
	advs3Checked = document.getElementById("advs3");
	advs4Checked = document.getElementById("advs4");
	if(e.target.checked) {		
		if(advs1Checked.checked) checked = true;
		else advs1Checked.click();
		
		if(advs2Checked.checked) checked = true;
		else advs2Checked.click();
		
		if(advs3Checked.checked) checked = true;
		else advs3Checked.click();
		
		if(advs4Checked.checked) checked = true;
		else advs4Checked.click();
		
	}else{
		advs1Checked.checked = false;
		advs2Checked.checked = false;
		advs3Checked.checked = false;
		advs4Checked.checked = false;
		showHideToc();
	}
}

function selectAllTypeDocBourse(e){
	advs10Checked = document.getElementById("advs10");
	advs30Checked = document.getElementById("advs30");
	advs40Checked = document.getElementById("advs40");
	if(e.target.checked) {		
		if(advs10Checked.checked) checked = true;
		else advs10Checked.click();
		
		if(advs30Checked.checked) checked = true;
		else advs30Checked.click();
		
		if(advs40Checked.checked) checked = true;
		else advs40Checked.click();
		
	}else{
		advs10Checked.checked = false;
		advs30Checked.checked = false;
		advs40Checked.checked = false;
		showHideToc();
	}
}

function unchedAllTypeDoc(){
	advs1Checked = document.getElementById("advs1");
	advs2Checked = document.getElementById("advs2");
	advs3Checked = document.getElementById("advs3");
	advs4Checked = document.getElementById("advs4");
	advs5Checked = document.getElementById("advs5");
	advs10Checked = document.getElementById("advs10");
	advs30Checked = document.getElementById("advs30");
	advs40Checked = document.getElementById("advs40");
	advs50Checked = document.getElementById("advs50");
	advs51Checked = document.getElementById("advs51");

	allCheckedSociete = advs1Checked.checked && advs2Checked.checked && advs3Checked.checked && advs4Checked.checked;
	allCheckedBourse =  advs10Checked.checked && advs30Checked.checked && advs40Checked.checked;
	advs50Checked.checked = allCheckedSociete;
	advs51Checked.checked = allCheckedBourse;
	if(allCheckedSociete && allCheckedBourse) {
		advs5Checked.checked = true;
	}
	else if(!allCheckedSociete || !allCheckedBourse){
		advs5Checked.checked = false;
	}
}

function showBulletinCriterias() {
	var div = document.getElementById(ID_JURISPRUDENCE_CRITERIAS_DIV);
	document.getElementById("bulCritereOpen").value = 'true';
	document.getElementById("promptbulletinCriteriaDialog").innerHTML = "&nbsp;&nbsp;" + HTML_FERMER_LES_CRITERES;
	div.style.display = "block";
	if(document.getElementById("radio1").checked) {
		setDateJurisprudence(null,"radio1");
	}else{
		setDateJurisprudence(null,"radio2");
	}
}

function closeBulletinCriterias() {
	var div = document.getElementById(ID_JURISPRUDENCE_CRITERIAS_DIV);
	
	div.style.display = "none";
	document.getElementById("promptbulletinCriteriaDialog").innerHTML = "&nbsp;";
}

function hideBulletinCriterias() {
	advs4Checked = document.getElementById("advs4");
	advs40Checked = document.getElementById("advs40");
	checked = false;
	if(advs4Checked.checked) checked = true;
	else if(advs40Checked.checked) checked = true;
	document.getElementById("bulCritereOpen").value = 'false';
	if(checked){
		showBulletinCriteriasPrompt();
	}
	var div = document.getElementById(ID_JURISPRUDENCE_CRITERIAS_DIV);	
	div.style.display = "none";
}

function showBulletinCriteriasPrompt() {
	document.getElementById("promptbulletinCriteriaDialog").innerHTML = "&nbsp;&nbsp;" + HTML_PLUS_DE_CRITERES;
}

function setProximite(e) {
	var target = e.target;
	var myId = target.id.toString();
	var l = myId.length;
	var proximiteNotDisabled = target.options[target.options.length - 1].value;
	
	var proximite = document.getElementById("proximite" + myId.charAt(l - 1));
	proximite.disabled = (target.value != proximiteNotDisabled);
	if(!proximite.disabled) proximite.value = DEFAULT_PROXIMITE_VALUE;
	else proximite.value = "";
}

function resetJurisprudenceForm() {
	var div = document.getElementById(ID_JURISPRUDENCE_CRITERIAS_DIV);
	
	var inputs = div.getElementsByTagName("input");
	var selects = div.getElementsByTagName("select");
	
	for(var i = 0; i < inputs.length; i++) {
		if(inputs[i].type == "text") inputs[i].value = "";
	}
	for(var i = 0; i < selects.length; i++) {
		selects[i].value = selects[i].options[0].value;
	}	
	document.getElementById("radio1").checked = false;
	document.getElementById("radio2").checked = false;
	var myForm = document.getElementById('advancedSearchForm');
	myForm.date0.value = "";
	myForm.date1.value = "" ;
}

function resetTextIntegralForm() {
	
	var myForm = document.getElementById('advancedSearchForm');
	myForm.keyword1.value = "";
	myForm.keyword2.value = "" ;
	myForm.keyword3.value = "";
	myForm.keyword4.value = "" ;
	myForm.proximite1.value = "" ;
	myForm.proximite1.disabled = true ;
	myForm.proximite2.value = "" ;
	myForm.proximite2.disabled = true ;
	myForm.operateur1.value = "ET";
	myForm.operateur2.value = "ET";
	myForm.operateur3.value = "ET";	
}

function setDateJurisprudence(e,idChekBox) {
	var id;
	var target;
	if(e){
		target = e.target;
		id = target.id;
	}else{
		target = document.getElementById(idChekBox);
		id = idChekBox;
	}
	var index = id.charAt(id.length - 1);
	
	var inverse = (index == "1") ? 2 : 1;
	document.getElementById("radio" + inverse).checked = !target.checked;
	
	var div = document.getElementById("option" + inverse + "J");
	var myDiv = document.getElementById("option" + index + "J");
	var divTo = document.getElementById("option1J_1");
	
	var inputs = div.getElementsByTagName("input");
	var selects = div.getElementsByTagName("select");
	var myInputs = myDiv.getElementsByTagName("input");
	var mySelects = myDiv.getElementsByTagName("select");
	var inputsTo = divTo.getElementsByTagName("input");
	
	for(var i = 0; i < inputs.length; i++) {
		if(inputs[i].type == "text") inputs[i].disabled = target.checked;
	}
	for(var i = 0; i < selects.length; i++) {
		selects[i].disabled = target.checked;
	}

	for(var i = 0; i < myInputs.length; i++) {
		if(myInputs[i].type == "text") myInputs[i].disabled = !target.checked;
	}
	for(var i = 0; i < mySelects.length; i++) {
		mySelects[i].disabled = !target.checked;
	}	
	if(inverse == "1"){
		for(var i = 0; i < inputsTo.length; i++) {
			if(inputsTo[i].type == "text") inputsTo[i].disabled = target.checked;
		}
	}else{
		for(var i = 0; i < inputsTo.length; i++) {
			if(inputsTo[i].type == "text") inputsTo[i].disabled = !target.checked;
		}
	}
}
