// =============================================================================
//
// publications/script/bd_rom.js
//
// Version: ofdt.2001.11.28
//
// =============================================================================
// Owner:
//
// Observatoire Francais des Drogues et Toxicomanies
// 105, rue La Fayette
// 75 010 PARIS
//
// Contact:
// Bernard Legoueix
// 33+(0)1 53 20 16 16
// beleg@ofdt.fr
//
// =============================================================================
// Creation:
//
// E-PLUME VISION
// 69, rue de Lyon
// 75 012 PARIS
//
// Contact:
// Sylvain Cote
// 33+(0)1 43 40 26 41
// sylvain.cote@e-plumevision.com
//
// =============================================================================

var _BROWSER_W3_=(document.getElementById)?true:false;
var _BROWSER_N_=(document.layers)?true:false;
var _BROWSER_IE_=(document.all)?true:false;
var _QUERY_ ;

if ( _BROWSER_N_ ) {
	function toto ( id ) {
		if ( id == 'bd_rom_modeles' ) {
			return document.layers.divbdrommodeles.document.forms.bd_rom_modeles ;
		}
		else {
			alert ("Can't find elem: " + id ) ;
		}
	}

	document.getElementById = toto ;

}


// -----------------------------------------------------------------------------
// bd_rom::bd_rom
// -------------------------------------
function bd_rom () {
	this.nb_results = 0 ;
	this.results = new Array ;
	this.display = '' ;
}
bd_rom.prototype.bd_rom = bd_rom ;
// /bd_rom::bd_rom
// --------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::url_resultats_suivants
// -------------------------------------
function bd_rom_url_resultats_suivants () {
	var url = window.location.href ;
	url = url.replace ( 'page=' + _QUERY_.page, 'page=' + (parseInt(_QUERY_.page,10)+1) ) ;
	return url ;
}
bd_rom.prototype.url_resultats_suivants = bd_rom_url_resultats_suivants ;
// /bd_rom::url_resultats_suivants
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::url_resultats_precedents
// -------------------------------------
function bd_rom_url_resultats_precedents () {
	var url = window.location.href ;
	url = url.replace ( 'page=' + _QUERY_.page, 'page=' + (parseInt(_QUERY_.page,10)-1) ) ;
	return url ;
}
bd_rom.prototype.url_resultats_precedents = bd_rom_url_resultats_precedents ;
// /bd_rom::url_resultats_precedents
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::get_params
// -------------------------------------
function bd_rom_get_params () {
	var str_search = '' ;
	if ( _BROWSER_N_ ) {
		str_search = window.location.search.substr (1) ;
	}
	else {
		temp1 = window.location.href.split( '?' ) ;
		if (temp1.length > 1) {
			temp2 = temp1[1].split( '#' ) ;
			str_search = temp2[0] ;
		}
		else {
			str_search = '' ;
		}
	}
	var parameters = str_search.split( '&' ) ;
	this.query = new Array ;
	var regexp1 = new RegExp ( "\\x2b" , 'g' ) ;
	for (i in parameters) {
		decl = parameters[i].split( "=" ) ;
		if (this.query[decl[0]] == null) {
			this.query[decl[0]] = unescape (decl[1].replace( regexp1 , ' ' )) ;
		}
		else if ( typeof (this.query[decl[0]]) == 'object' ) {
			this.query[decl[0]][this.query[decl[0]].length] = unescape (decl[1].replace( regexp1 , ' ' )) ;
		}
		else {
			tmp = this.query[decl[0]] ;
			this.query[decl[0]] = new Array ;
			this.query[decl[0]][0] = tmp ;
			this.query[decl[0]][1] = unescape (decl[1].replace( regexp1 , ' ' )) ;
		}
	}
}
bd_rom.prototype.get_params = bd_rom_get_params ;
// /bd_rom::get_params
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::s_reg
// -------------------------------------
function bd_rom_s_reg ( s_reg_obj ) {
	this.nb_results ++ ;  
	if ((this.nb_results-1)>(this.num_page-1)*this.max_nb_results-1&&(this.nb_results-1)<(this.num_page)*this.max_nb_results) {
		this.last_result = this.nb_results ;
		this.results[this.results.length] = s_reg_obj ;
		this.page_last_result_number = this.nb_results ;
	}
	this.nb_pages = Math.ceil( this.nb_results / this.max_nb_results ) ;
	this.page_first_result_number = (this.num_page-1)*this.max_nb_results + 1 ;
}
bd_rom.prototype.s_reg = bd_rom_s_reg ;
// /bd_rom::s_reg
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::d_reg
// -------------------------------------
function bd_rom_d_reg ( d_reg_obj ) {
	for ( i in this.results) {
		if ( this.results[i]._o_id == d_reg_obj._o_id ) {
			for ( j in d_reg_obj ) {
				this.results[i][j] = d_reg_obj[j] ;
			}
		}
	}
}
bd_rom.prototype.d_reg = bd_rom_d_reg ;
// /bd_rom::d_reg
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::disp_val
// -------------------------------------
function bd_rom_disp_val ( val_name , sing_label , plur_label ) {
	if ( this[val_name] < 2 ) {
		document.write(  this[val_name] + sing_label ) ;
	}
	else {
		document.write(  this[val_name] + plur_label ) ;
	}
}
bd_rom.prototype.disp_val = bd_rom_disp_val ;
// /bd_rom::disp_val
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::disp_link_previous_page
// -------------------------------------
function bd_rom_disp_link_previous_page ( link_text ) {
	if ( this.num_page > 1 ) {
		var url = window.location.href ;
		url = url.replace ( 'num_page=' + this.num_page, 'num_page=' + (parseInt(this.num_page,10)-1) ) ;
		document.write( '<a href="' + url + '">' + link_text + '</a>' ) ;
	}
	return '' ;
}
bd_rom.prototype.disp_link_previous_page = bd_rom_disp_link_previous_page ;
// /bd_rom::disp_link_previous_page
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::disp_link_next_page
// -------------------------------------
function bd_rom_disp_link_next_page ( link_text ) {
	if ( this.num_page < this.nb_pages ) {
		var url = window.location.href ;
		url = url.replace ( 'num_page=' + this.num_page, 'num_page=' + (parseInt(this.num_page,10)+1) ) ;
		document.write( '<a href="' + url + '">' + link_text + '</a>' ) ;
	}
	return '' ;
}
bd_rom.prototype.disp_link_next_page = bd_rom_disp_link_next_page ;
// /bd_rom::disp_link_next_page
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::disp_results
// -------------------------------------
function bd_rom_disp_results ( ) {
	var elem = document.getElementById('bd_rom_modeles') ;
	var model = elem.result.value ;

	var result = '' ;
	
	for (i in this.results ) {
		var modeli = model ;
		var obj = this.results[i] ;
		for (prop in obj) {
			var sar = new RegExp ( "## " +prop+ " ##" , "g" ) ;
			modeli = modeli.replace( sar , obj[prop] ) ;
		}
		result += modeli ;
	}
	document.write( result ) ;
}
bd_rom.prototype.disp_results = bd_rom_disp_results ;
// /bd_rom::disp_results
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::disp_recherche
// -------------------------------------
function bd_rom_disp_recherche ( ) {
	var elem = document.getElementById('bd_rom_modeles') ;
	var model = elem.recherche.value ;

	if (! this.query.collection) {
		this.query.collection = "Indifférent" ;
	}
	if (! this.query.key_words) {
		this.query.key_words = "Indifférent" ;
	}

	
	var obj = this.query ;
	var modeli = model ;
	for (prop in obj) {
		var sar = new RegExp ( "## " +prop+ " ##" , "g" ) ;
		modeli = modeli.replace( sar , obj[prop] ) ;
	}
	document.write( modeli ) ;

}
bd_rom.prototype.disp_recherche = bd_rom_disp_recherche ;
// /bd_rom::disp_recherche
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::disp_resume
// -------------------------------------
function bd_rom_disp_resume ( ) {
  
	if ( this.nb_results > 0 ) {
		var elem = document.getElementById('bd_rom_modeles') ;
		var model = elem.resume.value ;
		
		var obj = this ;
		var modeli = model ;
		for (prop in obj) {
			var sar = new RegExp ( "## " +prop+ " ##" , "g" ) ;
			modeli = modeli.replace( sar , obj[prop] ) ;
		}
		document.write( modeli ) ;
	}
	else {
		var elem = document.getElementById('bd_rom_modeles') ;
		var model = elem.no_results.value ;
		
		var obj = this ;
		var modeli = model ;
		for (prop in obj) {
			var sar = new RegExp ( "## " +prop+ " ##" , "g" ) ;
			modeli = modeli.replace( sar , obj[prop] ) ;
		}
		document.write( modeli ) ;
	}

}
bd_rom.prototype.disp_resume = bd_rom_disp_resume ;
// /bd_rom::disp_resume
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::add_result
// -------------------------------------
function bd_rom_add_result ( result ) {
	this.nb_results ++ ;  
	if ((this.nb_results-1)>(this.num_page-1)*this.max_nb_results-1&&(this.nb_results-1)<(this.num_page)*this.max_nb_results) {
		this.last_result = this.nb_results ;
		this.results[this.results.length] = result ;
		this.page_last_result_number = this.nb_results ;
	}
	this.nb_pages = Math.ceil( this.nb_results / this.max_nb_results ) ;
	this.page_first_result_number = (this.num_page-1)*this.max_nb_results + 1 ;
}
bd_rom.prototype.add_result = bd_rom_add_result ;
// /bd_rom::add_result
// -------------------------------------



// =============================================================================
// bd_rom: sintes
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::sin_init
// -------------------------------------
function bd_rom_sin_init () {
	this.get_params () ;

	if (this.query.produits_contenus == null) {
		this.query.produits_contenus = new Array ;
	}
	else if ( typeof(this.query.produits_contenus) == 'string' ) {
		tmp = this.query.produits_contenus ;
		this.query.produits_contenus = new Array ;
		this.query.produits_contenus[0] = tmp ;
	}
	
	_QUERY_ = this.query ;
	if (_QUERY_.chaine == null) {
		_QUERY_.annees = _QUERY_.annee.split( ',' ) ;
	}

	this.max_nb_results = this.query.nb_results ;
	this.page = this.query.page ;
	
	this.nb_results = 0 ;
	this.display_result = '' ;
}
bd_rom.prototype.sin_init = bd_rom_sin_init ;
// /bd_rom::sin_init
// --------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::sin_F
// -------------------------------------
function bd_rom_sin_F (
	id,
	annee,
	photo,
	code_aspect,
	diametre,
	epaisseur,
	code_taches,
	code_coloration,
	code_couleur,
	code_forme_haut,
	code_forme_bas,
	logo,
	logo_corrige,
	produits_contenus ) {
	
	var fiche_cherchee = false ;
	
	if (_QUERY_.chaine != null) {
		var pattern = new RegExp( _QUERY_.chaine, "i" ) ;
		var couleur = list_couleurs[code_couleur] ;
		var aspect = list_aspects[code_aspect] ;
		var taches = list_taches[code_taches] ;
		
		if (_QUERY_.critere == '') {
			fiche_cherchee = (pattern.test(annee)||pattern.test(couleur)||pattern.test(taches)
				||pattern.test(photo)||pattern.test(logo)||pattern.test(logo_corrige)
				)?true:false;
			
			if ( !fiche_cherchee ) {
				for (j in produits_contenus) {
					if (pattern.test(produits_contenus[j])) {
						fiche_cherchee = true ;
						break ;
					}
				}
			}
		}
		else if (_QUERY_.critere == 'produits') {
			for (j in produits_contenus) {
				if (pattern.test(produits_contenus[j])) {
					fiche_cherchee = true ;
					break ;
				}
			}
		}
		else {
			fiche_cherchee = (
				(_QUERY_.critere == 'annee' && pattern.test(annee))
			||	(_QUERY_.critere == 'couleur' && pattern.test(couleur))
			||	(_QUERY_.critere == 'taches' && pattern.test(taches))
						||	(_QUERY_.critere == 'photo' && pattern.test(photo))
			||	(_QUERY_.critere == 'logo' && pattern.test(logo))
			||	(_QUERY_.critere == 'famille' && pattern.test(logo_corrige))
			)?true:false;
		}
	}
	else {
		fiche_cherchee = (
				(_QUERY_.aspect 		== '' || _QUERY_.aspect 		== code_aspect)
			&&	(_QUERY_.couleur		== '' || _QUERY_.couleur		== code_couleur)
			&&	(_QUERY_.taches 		== '' || _QUERY_.taches 		== code_taches)
			&&	(_QUERY_.photo			== '' || _QUERY_.photo			== photo)
			&&	(_QUERY_.famille_logo	== '' || _QUERY_.famille_logo	== logo_corrige)
		)?true:false;
		
		if (_QUERY_.annees.length > 1) {
			ok = false ;
			for (i in _QUERY_.annees) {
				if (annee == _QUERY_.annees[i]) { ok = true ; break }
			}
			if (!ok) {fiche_cherchee = false }
		}
		else if (! (_QUERY_.annee == '' || _QUERY_.annee == annee)) {
			fiche_cherchee = false ;
		}
	
	
		
		if (_QUERY_.combi_produit == 'ET') {
			for (i in _QUERY_.produits_contenus) {
				ok = false ;
				for (j in produits_contenus) {
					if (produits_contenus[j] == _QUERY_.produits_contenus[i]) { ok = true ; break ; }
				}
				if ( ! ok ) {fiche_cherchee = false ; break ; }
			}
		}
		else {
			ok = (_QUERY_.produits_contenus.length == 0)?true:false ;
			for (i in _QUERY_.produits_contenus) {
				for (j in produits_contenus) {
					if (produits_contenus[j] == _QUERY_.produits_contenus[i]) { ok = true ; break ; }
				}
				if ( ok ) {break}
			}
			if (!ok) { fiche_cherchee = false }
		}
	}
	if ( fiche_cherchee ) {
		if (this.nb_results>(this.page-1)*this.max_nb_results-1&&this.nb_results<(this.page)*this.max_nb_results) {
			this.nb_results ++ ;
			this.last_result = this.nb_results ;
			
			var fiche_cour = new Object ;
			fiche_cour.id = id ;
			fiche_cour.annee = annee ;
						fiche_cour.photo = photo ;
			fiche_cour.logo_corrige = logo_corrige ;
			fiche_cour.logo = logo ;
			fiche_cour.code_aspect = code_aspect ;
			fiche_cour.code_couleur = code_couleur ;
			fiche_cour.code_taches = code_taches ;
			fiche_cour.diametre = diametre ;
			fiche_cour.epaisseur = epaisseur ;
			fiche_cour.code_coloration = code_coloration ;
			fiche_cour.code_forme_haut = code_forme_haut ;
			fiche_cour.code_forme_bas = code_forme_bas ;

			
			this.display_result += "<table border=0 bgcolor=#ffffff cellpadding=0 cellspacing=0 width=600>" ;
			this.display_result += '<tr><td rowspan=2 valign=top><b>' +this.nb_results+ ':</b></td>' + this.display_fiche(fiche_cour) + '</tr>' ;
			this.display_result += "</table>" ;
		}
		else {
			this.nb_results ++ ;
		}
	}
}
bd_rom.prototype.sin_F = bd_rom_sin_F ;
// /sintes_index::sin_F
// --------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::sin_display_recherche
// -------------------------------------
function bd_rom_sin_display_recherche () {
	var result = '<center><table width=600 bgcolor=#ccffcc border=0><tr><td colspan=2 bgcolor=#99ff99>'
	if ( _QUERY_.chaine != null ) {
		result += "<b>Recherche simple:</b></td></tr><tr><td colspan=2>Chaine cherchée: '" + _QUERY_.chaine +"'<br>" ;
		result += "Dans: " + _QUERY_.critere ;
	}
	else {
		aspect = (_QUERY_.aspect == '')?'Tous les aspects':list_aspects[parseInt(_QUERY_.aspect,10)] ;
		couleur = (_QUERY_.couleur == '')?'Toutes les couleurs':list_couleurs[parseInt(_QUERY_.couleur,10)] ;
		taches = (_QUERY_.taches == '')?'Tous les types de taches':list_taches[parseInt(_QUERY_.taches,10)] ;
		logo = (_QUERY_.famille_logo == '')?'Tous les logos':_QUERY_.famille_logo ;
		annee = (_QUERY_.annee == '')?'Toutes les années':_QUERY_.annee ;
				
		result += "<b>Recherche par critères:</b></td></tr><tr><td>" ;
		result += "Famille / Logo:</td><td>" +logo+ "</td></tr><tr><td>" ;
		result += "Année:</td><td>" +annee+ "</td></tr><tr><td>" ;
		result += "Aspect:</td><td>" +aspect+ "</td></tr><tr><td>" ;
		result += "Couleur:</td><td>" +couleur+ "</td></tr><tr><td>" ;
				
		result += "Taches:</td><td>" +taches+ "</td></tr><tr><td valign=top>" ;
		result += "Produits contenus:</td><td>&nbsp;" +_QUERY_.produits_contenus.join( '<br><b> ' +_QUERY_.combi_produit+ ' </b>') ;
	}
	result += '</td></tr></table></center>' ;
	return result ;
}
bd_rom.prototype.sin_display_recherche = bd_rom_sin_display_recherche ;
// /sintes_index::sin_display_recherche
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::sin_display_fiche
// -------------------------------------
function bd_rom_sin_display_fiche (fiche) {
	var result = '' ;
	
	result += "<td bgcolor=#fff3dd><a href='fiches/" +fiche.id+ ".htm'>" ;
	result += "Fiche n°" +fiche.id+ "</a></td><td align=right bgcolor=#fff3dd>" ;
	result += "<table border=0 width=300><tr>" ;
	result += "<td class='codage' width=30>" +fiche.code_aspect+ "</td>" ;
	result += "<td class='codage' width=30>" +fiche.diametre+ "</td>" ;
	result += "<td class='codage' width=30>" +fiche.epaisseur+ "</td>" ;
	result += "<td class='codage' width=30>" +fiche.code_taches+ "</td>" ;
	result += "<td class='codage' width=30>" +fiche.code_coloration+ "</td>" ;
	result += "<td class='codage' width=30>" +fiche.code_couleur+ "</td>" ;
	result += "<td class='codage' width=30>" +fiche.code_forme_haut+ "</td>" ;
	result += "<td class='codage' width=30>" +fiche.code_forme_bas+ "</td>" ;
	result += "</tr></table>" ;
	
	result += "</td></tr><tr><td colspan=2><i>Année: " +fiche.annee+ ", Logo: " +fiche.logo+ "</i>" ;
	result += "</td>" ;
	
	return result ;
}
bd_rom.prototype.sin_display_fiche = bd_rom_sin_display_fiche ;
// /bd_rom::sin_display_fiche
// -------------------------------------



// =============================================================================
// bd_rom: publications
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::pub_init
// -------------------------------------
function bd_rom_pub_init ( ) {
	this.get_params () ;
	this.pub_results = new Array ;

	this.max_nb_results = this.query["max_nb_results"] ;
	if (!this.max_nb_results) {
		this.max_nb_results = 5 ;
	}

	this.num_page = this.query["num_page"] ;
	if (!this.num_page) {
		this.num_page = 1 ;
	}

	var key_words_string = this.query["key_words"] ;
	//_QUERY_ = new Object ;
	//_QUERY_.mots_clef = key_words_string.split( '+' ) ;
}
bd_rom.prototype.pub_init = bd_rom_pub_init ;
// /bd_rom::pub_init
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::pub_MC
// -------------------------------------
function bd_rom_pub_MC ( mot_clef , documents ) {
	for (i in _QUERY_.mots_clef) {
		var i2 = _QUERY_.mots_clef[i].toUpperCase() ;
		if ( mot_clef == i2 ) {
			for (j=0;j<documents.length;j++) {
				this.pub_results[documents[j]] = 1 ;
			}
		}
	}
}
bd_rom.prototype.pub_MC = bd_rom_pub_MC ;
// /bd_rom::pub_MC
// -------------------------------------

// -----------------------------------------------------------------------------
// bd_rom::pub_D
// -------------------------------------
function bd_rom_pub_D ( doc_id , file_name , titre , edition , type_edition ) {
	if ( this.pub_results[doc_id] == 1 ) {
		var new_result = new Object ;
		new_result.doc_id = doc_id ;
		new_result.file_name = file_name ;
		new_result.titre = titre ;
		new_result.edition = edition ;
		new_result.type_edition = type_edition ;
		this.add_result ( new_result ) ;
	}
}
bd_rom.prototype.pub_D = bd_rom_pub_D ;
// /bd_rom::pub_D
// -------------------------------------


