/*************************************************************************
	F O N C T I O N S   U T L I S E E S   P A R   L A   G A L L E R I E
************************************************************************* */
function returnGallery(IdNomCache, IdNomImg, ImgPath, typeGallery, width, height) {
	var Choix = opener.document.getElementById(IdNomImg);
	var cacheChoix = opener.document.getElementById(IdNomCache);

	if ( typeGallery == js_constant["C_GAL_IMG"] ) {
		if ( opener.document.getElementById(IdNomCache+"_width") ) {
			opener.document.getElementById(IdNomCache+"_width").value = width;
		}
		if ( opener.document.getElementById(IdNomCache+"_height") ) {
			opener.document.getElementById(IdNomCache+"_height").value = height;
		}
		Choix.src = ImgPath;
		Choix.alt = ImgPath;
	}
	else {
		a = ImgPath.split("/");
		Choix.value = a[a.length-1];
	}
	cacheChoix.value = ImgPath.replace('vig_','');
}

function changeGallery(IdNomImg,IdNomCache,type,dossier,getDir) {
	var newwin = popupscroll("index.php?type=mediatheque&bo_action=list&type_gallery="+type+"&dir_origine="+dossier+"&view=popup&mode=view&returngalhid="+IdNomCache+"&returngalvis="+IdNomImg+"&getdir="+getDir,500,750);
}

function getDocManagerFile(fieldId) {
	var newwin = popupscroll("index.php?type=doc_manager&bo_action=link_file&view=popup&mode=popup&field_id="+fieldId,500,700);
}

function copyFiche(Id,type,dossier) {
	var newwin = popupscroll("index.php?type=mediatheque&bo_action=list&type_gallery="+type+"&dir_origine="+dossier+"&view=popup&mode=view&copie_id="+Id,500,700);
}

function changeGalleryImageFront(IdNomImg,IdNomCache,base_dir_config,base_dir_lib,array_post,p) {
	var newwin = popupscroll(c_reverse_path+"service_project/mediatheque/index.php?type=mediatheque&bo_action=list&p="+p+"&base_dir_lib=" + base_dir_lib + "&base_dir="+base_dir_config+array_post+"&mode=view&returngalhid="+IdNomCache+"&returngalvis="+IdNomImg,550,500);
}

function changeGalleryFront(IdNomImg,IdNomCache,type,dossier) {
	var newwin = popupOpen(c_reverse_path+"service_project/middle_office/index.php?type=mediatheque&bo_action=list&type_gallery="+type+"&dir_origine="+dossier+"&view=popup&mode=view&returngalhid="+IdNomCache+"&returngalvis="+IdNomImg+"&javascript_path=javascript_back",700,500,"yes");
}

function getDocManagerFileFront(fieldId) {
	var newwin = popupOpen(c_reverse_path+"service_project/middle_office/index.php?type=doc_manager&bo_action=link_file&view=popup&mode=popup&field_id="+fieldId+"&javascript_path=javascript_back",700,500,"yes");
}

function supprimeImage(NomImg,NomCache,ImgPath) {
	var ObjImg = document.getElementById(NomImg);
	var ObjHidden = document.getElementById(NomCache);
	if ( ObjImg.type == "text" ) {
		ObjImg.value = "";
	}
	else {
	    if ( ImgPath != undefined ) {
			ObjImg.src = ImgPath+"pix_transp.gif";
		}
		else {
            ObjImg.src = images_path+"generique/pix_transp.gif";
		}
		ObjImg.alt = "Choisissez une image";
	}
	ObjHidden.value = "";
}

function defaultImage(NomImg,NomCache,ImgPath) {
	var ObjImg = document.getElementById(NomImg);
	var ObjHidden = document.getElementById(NomCache);

	var replaceValue = "{" + ObjHidden.name + "}";

	// Prise en compte des images multi
	if( ObjHidden && (ObjHidden.value == "" || ObjHidden.value == replaceValue ||  ObjHidden.value.substr(1,7) == 'multi__') ) {
    	supprimeImage(NomImg,NomCache,ImgPath);
	}
	else {
		a = ObjHidden.value.split("/");
		if ( ObjImg.type == "text" ) {
			ObjImg.value = a[a.length-1];
		}
		else {
	    	ObjImg.src = ObjHidden.value.replace(a[a.length-1],'vig_'+a[a.length-1]);
			ObjImg.alt = ObjHidden.value;
		}
	}
}

function extensionByValue(NomImg,NomInput,ExtensionPath) {
	laExt = file_extensions.split(',')
	var ObjImg = document.getElementById(NomImg);
	var ObjInput = document.getElementById(NomInput);
	a = ObjInput.value.split('?')

	if (a != '' ) {
		a = a[0].split('.')
	}
	else
		a = ObjInput.value.split('.')

	if ( a != '' ) {
		for (var i=0; i < laExt.length; i++) {
			if ( laExt[i] == a[a.length-1] ) {
				imgpath = ExtensionPath + a[a.length-1] + '.gif'
	   			ObjImg.src = imgpath
			}
		}
	}
}

function InitExtensionByValue(NomImg,InputValue,NomInput,ExtensionPath) {
	laExt = file_extensions.split(',')
	var ObjImg    = document.getElementById(NomImg);
	var ObjInput  = document.getElementById(NomInput);
	a = ObjInput.value.split(".")
	imgpath =ExtensionPath + 'shim.gif'
	ObjImg.src = imgpath
	if ( a != '' ) {
		for (var i=0; i < laExt.length; i++) {
			if ( laExt[i] == a[a.length-1] ) {
				imgpath = ExtensionPath + a[a.length-1] + '.gif'
	   			ObjImg.src = imgpath
			}
		}
	}
}

/*************************************************************************
	FONCTIONS utiles
************************************************************************* */
function setFormGeneriqueValue(obj,value) {
	obj.value=value;
}

/* Permet l'affichage d'une ligne d'un tableau */
function afficheLigne(id) {
	// On efface d'abord la ligne précédemment affichée (si il y en a une)
	if ( document.wizard.ligne_affichee.value ) {
		if ( document.getElementById(document.wizard.ligne_affichee.value) ) {
			document.getElementById(document.wizard.ligne_affichee.value).style.display='none';
		}
	}

	// Et on affiche la ligne demandée
	if ( document.getElementById(id) ) {
		document.getElementById(id).style.display='block';
		document.wizard.ligne_affichee.value = id;
	}
}

/*************************************************************************
	FONCTIONS BLOC COLOR
************************************************************************* */
function setColorFormElement(name) {
	eval("var textInput=document.wizard."+name);
	eval("var colorInput=document.wizard.color_"+name);
	var myColor=webColor(textInput.value);
	setFormGeneriqueValue(textInput,myColor);
	colorInput.style.backgroundColor=myColor;
}

function resetColorFormElement(name) {
	eval("var textInput=document.wizard."+name);
	eval("var colorInput=document.wizard.color_"+name);
	setFormGeneriqueValue(textInput,'');
	colorInput.style.backgroundColor='white';
}

function setDivColor(obj,value) {
	obj.innerText='<font color="'+value+'">&nbsp;&nbsp;</font>';
}

/*************************************************************************
	FONCTIONS LINK
************************************************************************* */
function setFreeUrl(name) {
	eval("var obj=document.wizard." + name);
	obj.value='';
	obj.focus();
	if(typeof ie != "undefined" && ie) {
		document.execCommand("CreateLink");
	}
}

function setTreeUrlFront(name,page) {
	var obj = document.getElementById(name);
	var newwin = popupOpen(c_reverse_path+"service_project/middle_office/index.php?type=publication&bo_action=link_rubrik&link_interne_restrict=all&view=popup&name="+name+"&formulaire="+obj.form.name,700,500,"yes");
}

function setTreeUrlOnlyRubFront(name,level) {
	var newwin = popupOpen(c_reverse_path+"service_project/middle_office/index.php?type=publication&bo_action=link_rubrik&link_interne_restrict=only_rub&view=popup&name="+name+"&level="+level,700,500,"yes");
}

function setTreeUrlOnlyArtFront(name) {
	var newwin = popupOpen(c_reverse_path+"service_project/middle_office/index.php?type=publication&bo_action=link_rubrik&link_interne_restrict=only_art&view=popup&name="+name,700,500,"yes");
}

function setTreeUrlOnlyPrivateFront(name) {
	var newwin = popupOpen(c_reverse_path+"service_project/middle_office/index.php?type=publication&bo_action=link_rubrik&link_interne_restrict=only_private&view=popup&name="+name,700,500,"yes");
}

function setTreeUrl(name,page) {
	var newwin = popupscroll("index.php?type=publication&bo_action=link_rubrik&link_interne_restrict=all&view=popup&name="+name,500,700);
}

function setTreeUrlOnlyRub(name,level) {
	var newwin = popupscroll("index.php?type=publication&bo_action=link_rubrik&link_interne_restrict=only_rub&view=popup&name="+name+"&level="+level,500,700);
}

function setTreeUrlOnlyArt(name) {
	var newwin = popupscroll("index.php?type=publication&bo_action=link_rubrik&link_interne_restrict=only_art&view=popup&name="+name,500,700);
}

function setTreeUrlOnlyPrivate(name) {
	var newwin = popupscroll("index.php?type=publication&bo_action=link_rubrik&link_interne_restrict=only_private&view=popup&name="+name,500,700);
}

function removeUrl(name,asIdConteneur) {
	eval("var obj=document.wizard."+name);
	setFormGeneriqueValue(obj,"");
	eval("var objConteneur=document.getElementById('"+name+"_visu')");
	if ( objConteneur ) {
		setAndExecute(name+'_visu','<input type="text" disabled="disabled" class="BackChampsTexte" size="50" value=""/>');
	}
}

function displayRubTitle(name,asIdConteneur) {
	var xhr_object = createXMLHttpRequest();
	eval("var rub_id=document.getElementById('"+name+"').value");
	query = "select rub_title FROM kernel_rubrik WHERE rub_id = '"+rub_id+"'";
	var url = c_reverse_path+"service/db/get_db_record.php?query="+encodeURIComponent(query);
	xhr_object.open("GET",url,true)
	xhr_object.onreadystatechange = function(){
		if ( xhr_object.readyState == 4 && xhr_object.status == 200 ) {
			setAndExecute(asIdConteneur,'<input type="text" disabled="disabled" class="BackChampsTexte" size="50" value="'+xhr_object.responseText+'"/>');
		}
	}
	xhr_object.send(null)
}

/*************************************************************************
	FONCTIONS CHAMPS MULTI
**************************************************************************/

/**
 * Supprime un element multi
 */
function removeElementMulti(divNum) {
	var divASupprimer = document.getElementById(divNum);
	var obj = divASupprimer.parentNode;
	obj.removeChild(divASupprimer);
}

/**
 * Ajoute un element multi
 */
function addElementMulti(divReference,mydiv,imgDel) {
	var content;
	var ni = document.getElementById(mydiv);
	var numi = document.getElementById('multi_compteur');
	var num = (document.getElementById('multi_compteur').value -1)+ 2;
	numi.value = num;
	var newdiv = document.createElement('div');
	var divIdName = 'my'+num+'Div';
	newdiv.setAttribute('id',divIdName);

	elementsReference = document.getElementById(divReference);
	content = elementsReference.innerHTML;
	// Recuperation de tous les name a modifier (a incrementer)
	// name="?[\\S_-]*\\[\\]"? => ? apres les " car sous IE les guillemets dans content ne sont pas present.
	var regExpName = new RegExp('name="?[\\S_-]*\\[[0-9]*\\]"?',"g");
	var laRegNames = content.match(regExpName);

	if ( laRegNames != null ) {
		var laIdsValeursAMettreAZero = new Array();
		// Parcours des attributs name= et de leurs valeurs ex: name="untext[]" ou pour les radio name="unradio[0]"
		for ( j=0; j<laRegNames.length; j++) {
			var regExpName = new RegExp('name="?(.*)\\[([0-9]*)\\]"?',"g");
			var laReg 	   = regExpName.exec(laRegNames[j]);
			var laNames    = document.getElementsByName(laReg[1]+"["+laReg[2]+"]");

			// Si radio
			if(laNames[0].type=="radio" || laNames[0].type=="checkbox") {
				laIdsValeursAMettreAZero[j] = addElementMultiRadio(laNames,laReg,0,mydiv);
				// Changement du name dans le div de reference
				var regExpReplace = new RegExp(laReg[1]+"\\[0\\]", "g");
			}
			// Si texte ou image ...
			else {
				laIdsValeursAMettreAZero[j] = addElementMultiBase(laNames,laReg,"");
				// Changement de l'identifiant dans le div de reference;
				var regExpReplace = new RegExp(laReg[1]+"0", "g");
			}
			content = content.replace(regExpReplace, laIdsValeursAMettreAZero[j]);
		}
	}

	newdiv.innerHTML = content + '<div style="float: right; width: 10%; padding-bottom: 3px; text-align:right"><a href="javascript:removeElementMulti(\''+divIdName+'\')" class="BackLien">Supprimer</'+'a>&nbsp;&nbsp;<a href="javascript:removeElementMulti(\''+divIdName+'\')" class="BackLien"><img align="absmiddle" border="0" src="'+imgDel+'" alt="Supprimer" title="Supprimer"/></a></div><hr style="clear: both;"/>';
	ni.appendChild(newdiv);

	// Les valeurs des nouveaux champs sont mis a ""
	if (laIdsValeursAMettreAZero) {
		for(i=0; i<laIdsValeursAMettreAZero.length;i++) {
			loChamp = document.getElementById(laIdsValeursAMettreAZero[i]);
			if (loChamp) {
				loChamp.value="";
			}
		}
	}
}

function addElementMultiBase(laNames,laReg,lsIdMax) {
	// On recupere le dernier ID de l'element
	for( i=0; i<laNames.length; i++) {
		if( i==0 || (laNames[i] != null && parseInt(laNames[i].id.replace(laReg[1], '')) > parseInt(lsIdMax.replace(laReg[1], ''))) ){
			lsIdMax = laNames[i].id;
		}
	}
	// Recuperation du nouvel identifiant
	var liNewId = parseInt(lsIdMax.replace(laReg[1], '')) + 1;
	return laReg[1] + liNewId;
}

function addElementMultiRadio(laNames,laReg,liIdMax,mydiv) {
	elementsReference = document.getElementById(mydiv);
	contente = elementsReference.innerHTML;

	var regExpNamed = new RegExp('name="?'+laReg[1]+'\\[([0-9]*)\\]"?',"g");
	var laRegNames = contente.match(regExpNamed);

	for ( f=0; f<laRegNames.length; f++) {

		var regExpName = new RegExp('name="?'+laReg[1]+'\\[([0-9]*)\\]"?',"g");
		var laReg2 = regExpName.exec(laRegNames[f]);

		for ( k=0; k<laReg2.length;k++) {
			if( laReg2[1] > liIdMax ) {
				liIdMax = laReg2[1];
			}
		}
	}

	// Recuperation du nouveau name
	var liNewIdForName = parseInt(liIdMax) + 1;

	return laReg[1] + "["+liNewIdForName+"]";
}


/**
 * Fonction utilisees pour les champs date et date / heure
 * Permet d'initialiser les champs date caches et les champs visuels associes
 */
function initDate(fieldName,def) {
	var field = eval("document.wizard."+fieldName);
	var fieldVisu = eval("document.wizard."+fieldName+"_visu");

	var val = field.value;

	if(val=='0000-00-00 00:00:00' || val=="0000-00-00") {
		val='';
		fieldVisu.value = val;
	}

	if(val=='') {
		if(def=='') {
			val=js_constant["current_date"];

			var reg = new RegExp("[\\s-:]+","g");
			var tab_date = val.split(reg);

			fieldVisu.value = tab_date[2]+"/"+tab_date[1]+"/"+tab_date[0];
		}
		field.value=val;
	}
	else if(def!='empty') {
		var reg = new RegExp("[\\s-:]+","g");
		var tab_date = val.split(reg);

		if ( tab_date.length > 1 ) {
			fieldVisu.value = tab_date[2]+"/"+tab_date[1]+"/"+tab_date[0];

			if ( (hoursField = eval("document.wizard."+fieldName+"_hours")) && tab_date[3] ) {
				hoursField.value=tab_date[3];
			}
			if ( (minutesField = eval("document.wizard."+fieldName+"_minutes")) && tab_date[4] ) {
				minutesField.value=tab_date[4];
			}
			if ( (secondsField = eval("document.wizard."+fieldName+"_seconds")) && tab_date[5] ) {
				secondsField.value=tab_date[5];
			}
		}
		else {
            fieldVisu.value = '';
		}
	}
}
/**
 * Fonction utilisees pour les champs time
 * Permet d'initialiser les champs time
 */
function initTime(fieldName) {
	var field = eval("document.wizard."+fieldName);

	var val = field.value;

	if ( ! val ) {
		val = '';
	}

	hoursField = eval("document.wizard."+fieldName+"_hours");
	minutesField = eval("document.wizard."+fieldName+"_minutes");
	secondsField = eval("document.wizard."+fieldName+"_seconds");

	if ( val != '' ) {
		var reg = new RegExp("[\\s-:]+","g");
		var tab_time = val.split(reg);
		
		if ( hoursField && tab_time[0] ) {
			hoursField.value=tab_time[0];
		}
		if ( minutesField && tab_time[1] ) {
			minutesField.value=tab_time[1];
		}
		if ( secondsField  && tab_time[2] ) {
			secondsField.value=tab_time[2];
		}
	}
	else {
		if ( hoursField ) {
			hoursField.value= '';
		}
		if ( minutesField ) {
			minutesField.value= '';
		}
		if ( secondsField ) {
			secondsField.value= '';
		}
		field.value = 'NULL';
	}

}

function upDateTime (field) {
	var hours = '00';
	var minutes = '00';
	var seconds = '00';
	var doTime=true;
	if ( hoursField = eval("document.wizard."+field+"_hours") ) {
		if ( hoursField.value != '' ) {
			hours = hoursField.value;
		}
		else {
			doTime=false;
		}
	}
	if ( minutesField = eval("document.wizard."+field+"_minutes") ) {
		if ( minutesField.value != '' ) {
			minutes = minutesField.value;
		}
		else {
			doTime=false;
		}
	}
	if ( secondsField = eval("document.wizard."+field+"_seconds") ) {
		if ( secondsField.value != '' ) {
			seconds = secondsField.value;
		}
	}

	var reg = new RegExp("[\\s-:]+","g");
	var val = eval("document.wizard."+field).value;
	var tab_date = val.split(reg);

	if( doTime ){
		eval("document.wizard."+field).value = tab_date[0]+"-"+tab_date[1]+"-"+tab_date[2]+" "+hours+":"+minutes+":"+seconds;
	}
	else{
		eval("document.wizard."+field).value = tab_date[0]+"-"+tab_date[1]+"-"+tab_date[2];
	}
}

function upTime (field) {
	var hours = '';
	var minutes = '';
	var seconds = '';
	hoursField = eval("document.wizard."+field+"_hours");
	minutesField = eval("document.wizard."+field+"_minutes");
	secondsField = eval("document.wizard."+field+"_seconds");
	if ( hoursField ) {
		if ( hoursField.value != '' ) {
			hours = hoursField.value;
		}
	}
	if ( minutesField ) {
		if ( minutesField.value != '' ) {
			minutes = minutesField.value;
		}
	}
	if ( secondsField ) {
		if ( secondsField.value != '' ) {
			seconds = secondsField.value;
		}
	}
	if ( hours == '' && minutes == '' && seconds == '' ) {
		eval("document.wizard."+field).value = 'NULL';
	}
	else {
		if ( hours != '' ) {
			if ( minutes == '' ) {
				minutes = '00';
			}
			if ( seconds == '' ) {
				seconds = '00';
			}
		}
		else if ( minutes != '' ) {
			if ( hours == '' ) {
				hours = '00';
			}
			if ( seconds == '' ) {
				seconds = '00';
			}
		}
		else if ( seconds != '' ) {
			if ( hours == '' ) {
				hours = '00';
			}
			if ( minutes == '' ) {
				minutes = '00';
			}
		}
		eval("document.wizard."+field).value = hours+":"+minutes+":"+seconds;
	}
}

/**
 * Fonction utilisee pour la case a cocher qui permet de cacher ou afficher le champ date
 * Si l'argument div est passé, on doit masquer le div entier au lieu du champ tout seul
 * @author FB 08/04/08
 * @author FV 26/06/09
 */
function hideShowInputDate(name,div){
	if ( !div ) {
		div = "_visu";
		display_type = "";
	}
	else {
		display_type = "inline";
	}
	checkbox = document.getElementById("check_"+name);
	if (checkbox.checked == true ){
		if (document.getElementById(name+div)) {
			document.getElementById(name+div).style.display="none";
		}
		// On vide le champ hidden
		date_hidden = document.getElementById(name);
		date_hidden.value="";
		// On vide le visuel
		date_visu = document.getElementById(name+"_visu");
		date_visu.value="";
	}
	else {
		if (document.getElementById(name+div)) {
			document.getElementById(name+div).style.display=display_type;
		}
	}
}


/**
 * Utilisee en middle office pour mettre a jour la date au retour du calendrier 'scw.js'
 * @author FB 08/04/08
 */
function updateDate(fieldName) {
    var field = eval("document.wizard."+fieldName);
    var fieldVisu = eval("document.wizard."+fieldName+"_visu");

    var hours = '00';
    var minutes = '00';
    var seconds = '00';
    if ( hoursField = eval("document.wizard."+fieldName+"_hours") ) {
        if ( hoursField.value != '' ) {
            hours = hoursField.value;
        }
    }
    if ( minutesField = eval("document.wizard."+fieldName+"_minutes") ) {
        if ( minutesField.value != '' ) {
            minutes = minutesField.value;
        }
    }
    if ( secondsField = eval("document.wizard."+fieldName+"_seconds") ) {
        if ( secondsField.value != '' ) {
            seconds = secondsField.value;
        }
    }

    var reg = new RegExp("[\\s/:]+","g");
    var tab_date = fieldVisu.value.split(reg);

    field.value = tab_date[2]+"-"+tab_date[1]+"-"+tab_date[0]+" "+hours+":"+minutes+":"+seconds;
}

/**
 * Ajax en back
 * @author FB 23/01/09
 */
function createXMLHttpRequest() {
   try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
   try { return new XMLHttpRequest(); } catch(e) {}
   alert("XMLHttpRequest n'est pas supporte, mettez a jour votre navigateur, merci.");
   return null;
}


