var arrayShowTOC = new Array("advs1", "advs2");

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() { 
	for(var i = 0; i < arrayShowTOC.length; i++) {
	    $('#' + arrayShowTOC[i]).click(function(e) {
			setTOCDisplay(e);
	    });
	}
	displayToc();
	switchToc();
	if(document.getElementById("advs4").checked){
		showBulletinCriteriasPrompt();
	}
	$('#advs1').click(function(e) {
		unchedAllTypeDoc();
		if(e.target.checked) fiterDisplayToc(false);
		else fiterDisplayToc(true);
		filetrLabels();
	});
	$('#advs2').click(function(e) {
		unchedAllTypeDoc();
		if(e.target.checked) fiterDisplayToc(true);
		else fiterDisplayToc(false);
		filetrLabels();
	});
	
	$('#advs3').click(function(e) {
		unchedAllTypeDoc();
	});
	$('#advs5').click(function(e) {
		selectAllTypeDoc(e);
	});
	$('#advs4').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");
			
			if(showDivTOC) {
				divToc.style.display = "block";
				break;
			}
			else {
				divToc.style.display = "none";
			}
		}
	}
}
function displayToc() {
	advs1Checked = document.getElementById("advs1");
	advs2Checked = document.getElementById("advs2");
	if(advs1Checked.checked && advs2Checked.checked){
		var divToc = document.getElementById("TOCElements");
		if(divToc) {
			divToc.style.display = "block";
		}
	}
	else{
		if(advs1Checked.checked) fiterDisplayToc(false);
		else fiterDisplayToc(true);
		if(advs2Checked.checked) fiterDisplayToc(true);
		else fiterDisplayToc(false);
	}
}

function fiterDisplayToc(isFormule) {
	var fond = "";
	if(isFormule) fond = "F";
	else fond = "E";
	var advs2 = document.getElementById("advs2");
	var advs1 = document.getElementById("advs1");
	isFormuleAndEtude = advs2.checked && advs1.checked;
	tableauToc = document.getElementById('tabPrincTOC');
	if(tableauToc){
		childNodesTr =  tableauToc.getElementsByTagName("tr");
		var nombre = childNodesTr.length;
		for(var j = 0; j < nombre; j++ ){
			idNode = childNodesTr[j].getAttributeNode("id").nodeValue;		
			subs = idNode.split('-')[1];		
			if(subs != fond && subs != "FE"){
				tocTrDisplay(idNode, fond, isFormuleAndEtude);
			}
			else if(subs == fond){
				tocTrDisplay(idNode, fond, isFormuleAndEtude);
			}
		}
	}
}

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 tocTrDisplay(idNode, fond, isFormuleAndEtude){
	var display = false;
	if(idNode.indexOf('tr0')>=0){
		tr = document.getElementById(idNode);
		childNodesTrTr = tr.getElementsByTagName("tr");
		var nbre = childNodesTrTr.length;
		for(var i = 0; i < nbre; i++ ){
			attribId = childNodesTrTr[i].getAttributeNode("id");
			if(attribId){
				id = attribId.nodeValue;
				subs = id.split('-')[1];					
				if(subs != fond && subs != "FE"){							
					if(id.indexOf('tr1')>=0 && !isFormuleAndEtude){
						trtr = document.getElementById(id);
						trtr.style.display = "none";
					}
				}
				else{
					display = true;
					if(id.indexOf('tr1')>=0){
						trtr = document.getElementById(id);
						trtr.style.display = "";
						tocTrDisplayLeafs(id, fond, isFormuleAndEtude);
					}
				}
			}
		}
		if(!display && !isFormuleAndEtude){
			tr.style.display = "none";
		}
		else {
			tr.style.display = "";
			tocTrDisplayLeafs(idNode, fond, isFormuleAndEtude);
		}
	}
}

function switchToc(){
	$("#TOCElements").find("a[class='sdocs_link1']").each( function(i) 
            {
                joly_docs_view_switchDisplay(this);
           }
        );	
}

function tocTrDisplayLeafs(idN, fond, isFormuleAndEtude){
	var display = false;
	if(idN.indexOf('tr1')>=0){
		trr = document.getElementById(idN);
		childNodes = trr.getElementsByTagName("tr");
		var nbre = childNodes.length;
		for(var i = 0; i < nbre; i++ ){
			attribId = childNodes[i].getAttributeNode("id");
			if(attribId){
				id = attribId.nodeValue;
				subs = id.split('-')[1];					
				if(subs != fond && subs != "FE"){							
					if(id.indexOf('tr2')>=0 && !isFormuleAndEtude){
						trrtrr = document.getElementById(id);
						trrtrr.style.display = "none";
					}
				}
				else{
					display = true;
					if(id.indexOf('tr2')>=0){
						trrtrr = document.getElementById(id);
						trrtrr.style.display = "";
					}
				}
			}
		}
	}
}

function setJurisprudenceDisplay(e) {
	if(e.target.checked) {
		showBulletinCriteriasPrompt();
	}
	else {
		closeBulletinCriterias();
	}
}

function selectAllTypeDoc(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;
		var divToc = document.getElementById("TOCElements");
		divToc.style.display = "none";
	}
}
function unchedAllTypeDoc(){
	advs1Checked = document.getElementById("advs1");
	advs2Checked = document.getElementById("advs2");
	advs3Checked = document.getElementById("advs3");
	advs4Checked = document.getElementById("advs4");
	advs5Checked = document.getElementById("advs5");

	allChecked = advs1Checked.checked && advs2Checked.checked && advs3Checked.checked && advs4Checked.checked;
	if(allChecked) {
		advs5Checked.checked = true;
	}
	else {
		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");
	checked = false;
	if(advs4Checked.checked) checked = true;
	document.getElementById("bulCritereOpen").value = 'false';
	advs4Checked.click();
	if(checked){
		document.getElementById("advs4").checked = true;
		showBulletinCriteriasPrompt();
	}
}

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";
/*	document.getElementById('advs1').checked = false;
	document.getElementById('advs2').checked = false;
	document.getElementById('advs3').checked = false;
	document.getElementById('advs4').checked = false;*/
	
}

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;
		}
	}
}