var bigFavPos = 0;
var bigFavs = new Array();
var favs_containers = new Array();
var overlay_display;
var bRestartSearch = 0;
var featuredAdsRefreshed = 0;

var ovltitles = new Array();
ovltitles['fr'] = new Array();
ovltitles['en'] = new Array();
ovltitles['fr'][0] = "Ville introuvable";
ovltitles['en'][0] = "City not found";
ovltitles['fr'][1] = "Ville erronnée";
ovltitles['en'][1] = "City not found";
ovltitles['fr'][2] = "Code postal invalide";
ovltitles['en'][2] = "Invalid postal code";
ovltitles['fr'][3] = " ville trouvée";
ovltitles['en'][3] = " city found";
ovltitles['fr'][4] = " villes trouvées";
ovltitles['en'][4] = " cities found";
ovltitles['fr'][5] = "Où cherchez-vous?";
ovltitles['en'][5] = "Search area";
ovltitles['fr'][6] = "CATÉGORIE : ";
ovltitles['en'][6] = "CATEGORY : ";

var overlay_title = '';

var citiesList = new Array();
var categDescs = new Array();
var ovlCatLst = new Array();
var categIndex = new Array();

var current_srch_form = 'searchfrm';
var last_valid_geo = ''; // TO SET DYNAMICALLY
var search_type = '';

var lang_prefs = readCookie('prefs_canoextra_prod');
if(lang_prefs == null){
	lang_prefs = readCookie('prefs_canoextra_preprod');
	if(lang_prefs == null){
		lang_prefs = readCookie('prefs_canoextra_dev');
		if(lang_prefs == null){
			lang_prefs = 'fr';
		}
		else{
			lang_prefs = unescape(lang_prefs);
			if (lang_prefs.indexOf('fr::')==0){
				lang_prefs = 'fr';
			}
			else if (lang_prefs.indexOf('en::')==0){
				lang_prefs = 'en';
			}
			else{
				lang_prefs = 'fr';
			}
		}
	}
	else{
		lang_prefs = unescape(lang_prefs);
		if (lang_prefs.indexOf('fr::')==0){
			lang_prefs = 'fr';
		}
		else if (lang_prefs.indexOf('en::')==0){
			lang_prefs = 'en';
		}
		else{
			lang_prefs = 'fr';
		}
	}
}
else{
	lang_prefs = unescape(lang_prefs);
	if (lang_prefs.indexOf('fr::')==0){
		lang_prefs = 'fr';
	}
	else if (lang_prefs.indexOf('en::')==0){
		lang_prefs = 'en';
	}
	else{
		lang_prefs = 'fr';
	}
}

var defaultSliderDisplayVal = "";
if(lang_prefs == "fr"){
	defaultSliderDisplayVal = "illimité";
}
else{
	defaultSliderDisplayVal = "unlimited";
}

function showWaitMsg(wb,wm){
	hideAllOvItems();
	if(lang_prefs == "fr"){
		document.getElementById(wm).innerHTML = 'SVP Patientez...';
	}
	else {
		document.getElementById(wm).innerHTML = 'Please wait...';
	}
	document.getElementById(wb).style.display='block';
}

function initsearch(q,loc,categ,csrch){
	q = trim(q);
	loc = trim(loc);

	if(!csrch){
		search_type = 'keywd';

		if(document.forms['searchfrm'] && document.forms['searchfrm'].elements['head_categ']){
			document.forms['searchfrm'].elements['head_categ'].value = '';
			document.forms['searchfrm'].elements['head_subcateg'].value = '';
			if((loc == '' || loc == 'Code postal OU ville' || loc == 'Postal code or city')){
				if(document.forms['searchfrm'].elements['head_ucoord'].value != '' && document.forms['searchfrm'].elements['head_ucoord'].value != loc) {
					loc = document.forms['searchfrm'].elements['head_ucoord'].value;
					document.forms['searchfrm'].elements['ucoord'].value = document.forms['searchfrm'].elements['head_ucoord'].value;
				}
			}
			document.forms['searchfrm'].elements['head_ucoord'].value = '';
			document.forms['searchfrm'].elements['head_udist'].value = '';
		}

		if(q == '' || q == "Mot-clé ou id de l'annonce" || q == "Keyword or ad id"){
			if(categ.length!=32){
				if(lang_prefs == "fr"){
					alert("Insérez un mot clé, l'identifiant de l'annonce ou choisissez une catégorie");
				}
				else{
					alert("Insert a keyword, an ad id or select a category");
				}
				return false;
			}

		}
	}
	else {
		search_type = 'categ';
	}

	if((loc == '' || loc == 'Code postal OU ville' || loc == 'Postal code or city')){
		if(csrch) {
			hideAllOvItems();
			showLocOverlay();
			return false;
		}
		else {
			if(lang_prefs == "fr"){
				alert("Pour initier une recherche, vous devez spécifier une ville ou un code postal");
			}
			else{
				alert("To initiate a search, you must specify a search location (area)");
			}
			return false;
		}
	}

	if(last_valid_geo == ''){
		last_valid_geo = readCookie('geo_location');
	}

	current_srch_form = 'searchfrm';
	if(last_valid_geo != document.forms[current_srch_form].ucoord.value){
		ajaxReq('/cgi-bin/search/localize.cgi', 'GET', 'json', 'geoRef', 'coord', loc);
		return false;
	}
	else {
		if(csrch) {
			document.forms[current_srch_form].submit();
		}
		else {
			return true;
		}
	}
}

function cxsrch(c,s){
	var uc = cxsrch.arguments[2];
	var ud = cxsrch.arguments[3];
	var uvideo = cxsrch.arguments[4];

	if(c != false){
		document.forms['searchfrm'].head_categ.value = c;
	}
	else if(typeof(uc) != 'undefined'){
		// document.forms['searchfrm'].head_categ.value = '';
	}

	if(s != false){
		document.forms['searchfrm'].head_subcateg.value = s;
	}
	else if(typeof(uc) == 'undefined'){
		document.forms['searchfrm'].head_subcateg.value = '';
	}

	if(typeof(uc) != 'undefined' && uc != false){
		document.forms['searchfrm'].head_ucoord.value = uc;
	}
	else {
		if(typeof(document.getElementById('ovucoord')) != 'undefined' && document.getElementById('ovucoord').value != ''){
			document.forms['searchfrm'].head_ucoord.value = document.getElementById('ovucoord').value;
		}
		else if(document.forms['searchfrm'].ucoord.value != '' && document.forms['searchfrm'].ucoord.value != 'Code postal OU ville' && document.forms['searchfrm'].ucoord.value != 'Postal code or city'){
			document.forms['searchfrm'].head_ucoord.value = document.forms['searchfrm'].ucoord.value;
		}
	}

	if(typeof(ud) != 'undefined' && uc != false){
		document.forms['searchfrm'].head_udist.value = ud;
	}

	if(typeof(uvideo) != 'undefined' && uvideo == true){
		document.forms['searchfrm'].userf.value = 'video:1';
	}

	initsearch('',document.forms['searchfrm'].head_ucoord.value,c,true);
}

function showsubc(c){
	hideAllOvItems();
	for(var i=0;i<ovlCatLst.length;i++){
		document.getElementById('ovl_categ_'+ovlCatLst[i]).style.display='none';
	}
	document.getElementById('ov_section_subc').style.display='block';
	document.getElementById('ovl_categ_'+c).style.display='block';
	if (document.getElementById("bigbox1")) {
		document.getElementById("bigbox1").style.display = "none";
	}
	tb_show(ovltitles[lang_prefs][6]+categDescs[c], '#TB_inline?height=270&width=400&inlineId=overlay_prov_cities', false);
}

function prepareDefaultDisplay() {
	overlay_title = ovltitles[lang_prefs][0];
	setCities(document.getElementById('ovl_province'), document.getElementById('ovl_city'));
	hideAllOvItems();

	document.getElementById('msg_city_unknown').style.display='block';
	document.getElementById('ovl_prov_selection').style.display='block';
	document.getElementById('ovl_city_selection').style.display='block';
	document.getElementById('ovl_btnbar_select').style.display='block';

	document.getElementById('selcity').value = document.getElementById('ovl_city').options[0].value;
	if (document.getElementById("bigbox1")) {
		document.getElementById("bigbox1").style.display = "none";
	}
	tb_show(overlay_title, '#TB_inline?height=300&width=400&inlineId=overlay_prov_cities', false);
}

function hideAllOvItems() {
	document.getElementById('msg_city_unknown').style.display='none';
	document.getElementById('msg_city_error').style.display='none';
	document.getElementById('ovl_prov_selection').style.display='none';
	document.getElementById('ovl_city_selection').style.display='none';
	document.getElementById('ovl_links_selection').style.display='none';
	document.getElementById('ovl_btnbar_select').style.display='none';
	document.getElementById('ovl_btnbar_new').style.display='none';
	if(document.getElementById('ov_section_subc')){
		document.getElementById('ov_section_subc').style.display='none';
		document.getElementById('ov_section_location').style.display='none';
	}
	document.getElementById('ovl_wait').style.display='none';
}

function new_city() {
	if(search_type == 'keywd') {
		tb_remove();
		document.forms[current_srch_form].ucoord.focus();
		document.forms[current_srch_form].ucoord.select();
	}
	else {
		hideAllOvItems();
		showLocOverlay();
	}
}

function showLocOverlay() {
	overlay_title = ovltitles[lang_prefs][5];
	document.getElementById('ov_section_location').style.display='block';
	if (document.getElementById("bigbox1")) {
		document.getElementById("bigbox1").style.display = "none";
	}
	tb_show(overlay_title, '#TB_inline?height=150&width=400&inlineId=overlay_prov_cities', false);
	document.getElementById('ovucoord').focus();
	document.getElementById('ovucoord').select();
}

function geoRef(jobj){
	/*
		Object definition :
			obj.original	=> user input
			obj.match		=> city match
			obj.pcode		=> postal code match
			obj.suggestions => array (combines starts, metaphon, soundex)
			obj.coord		=> .lat
							   .lon
							   .city
	*/

	if(typeof(jobj.match) != 'undefined' && typeof(jobj.match) != 'boolean'){
		var city = jobj.match;
		// City
		//		==> city is Array(2)
		//			--> .id
		//			--> .name
		if(document.forms[current_srch_form].ucoord.value != city.name){
			if(search_type == "categ"){
				document.forms[current_srch_form].head_ucoord.value = city.name;
			}
			else {
				document.forms[current_srch_form].ucoord.value = city.name;
			}
		}
		createCookie('geo_location',city.name,365);
		if (typeof(jobj.featured_ads) != 'undefined' && typeof(jobj.featured_ads.point_id) != 'undefined') {
			createCookie('featured_ads',jobj.featured_ads.point_id,365);
		}
		if(search_type == "categ"){
			showWaitMsg('ovl_wait','ovl_wait_msg');
		}
		document.forms[current_srch_form].submit();
		return true;
	}
	else if(typeof(jobj.pcode) != 'undefined'){
		// Postal code
		//		==> pcode is Array(3)
		//			--> .lon
		//			--> .lat
		//			--> .city
		if(typeof(jobj.pcode) != 'boolean' && typeof(jobj.pcode) != 'string' && typeof(jobj.pcode.pcode) != 'undefined'){
			if(document.forms[current_srch_form].ucoord.value != jobj.pcode.pcode){
				document.forms[current_srch_form].ucoord.value = jobj.pcode.pcode;
				if(search_type == "categ"){
					document.forms[current_srch_form].head_ucoord.value = jobj.pcode.pcode;
				}
				else {
					document.forms[current_srch_form].ucoord.value = jobj.pcode.pcode;
				}
			}
			createCookie('geo_location',jobj.pcode.pcode,365);
			if (typeof(jobj.featured_ads) != 'undefined' && typeof(jobj.featured_ads.point_id) != 'undefined') {
				createCookie('featured_ads',jobj.featured_ads.point_id,365);
			}
			if(search_type == "categ"){
				showWaitMsg('ovl_wait','ovl_wait_msg');
			}
			document.forms[current_srch_form].submit();
			return true;
		}
		else{
			alert(ovltitles[lang_prefs][2]);
			if(search_type == "categ"){
				if(document.getElementById('ovucoord').value == ""){
					document.getElementById('ovucoord').value = document.forms[current_srch_form].ucoord.value;
				}
				hideAllOvItems();
				showLocOverlay();
			}
			return false;
		}
	}
	else if(typeof(jobj.suggestions) != 'undefined') {
		// Suggestions
		//		==> Array of strings
		if(jobj.suggestions.length == 0) {
			// Default list
			prepareDefaultDisplay();
		}
		else {
			// overlay_title = ovltitles[lang_prefs][1];
			if(jobj.suggestions.length == 1){
				overlay_title = jobj.suggestions.length+ovltitles[lang_prefs][3];
			}
			else {
				overlay_title = jobj.suggestions.length+ovltitles[lang_prefs][4];
			}

			hideAllOvItems();
			document.getElementById('msg_city_error').style.display='block';
			document.getElementById('ovl_links_selection').style.display='block';
			document.getElementById('ovl_btnbar_new').style.display='block';

			document.getElementById('ovl_links_selection').innerHTML = '<br/>';
			for(var i=0; i < jobj.suggestions.length; i++){
				document.getElementById('ovl_links_selection').innerHTML = document.getElementById('ovl_links_selection').innerHTML + "<a style=\"text-decoration: underline;\" href=\"javascript:void(0)\" onclick=\"javascript:setUserCoord('"+jobj.suggestions[i].replace(/'/, "\\\'")+"'); return false;\">"+jobj.suggestions[i]+"</a><br /><br />";
			}
			if (document.getElementById("bigbox1")) {
				document.getElementById("bigbox1").style.display = "none";
			}
			tb_show(overlay_title, '#TB_inline?height=300&width=400&inlineId=overlay_prov_cities', false);
		}
	}
	else {
		// Default list
		prepareDefaultDisplay();
	}
	return false;
}

function innersearch(frm){
	frm.q.value = trim(frm.q.value);
	frm.pre_q.value = trim(frm.pre_q.value);

	search_type = 'keywd'; // categ = homepage only

	if(frm.usort.value==""){
		frm.usort.value = frm.trihaut[0].value;
		frm.trihaut.disabled=true;
		frm.tribas.disabled=true;
	}

	if(typeof(frm.ucoord) != 'undefined') {
		frm.ucoord.value = trim(frm.ucoord.value);
		if(last_valid_geo == ''){
			last_valid_geo = readCookie('geo_location');
		}

		current_srch_form = 'innersearchfrm';
		if(last_valid_geo != frm.ucoord.value){
			if(frm.ucoord.value == '' || frm.ucoord.value == 'Code postal OU ville' || frm.ucoord.value == 'Postal code or city'){
				if(lang_prefs == "fr"){
					alert("Pour initier une recherche, vous devez spécifier une ville ou un code postal");
				}
				else{
					alert("To initiate a search, you must specify a search location (area)");
				}
				frm.ucoord.focus();
				return false;
			}
			ajaxReq('/cgi-bin/search/localize.cgi', 'GET', 'json', 'geoRef', 'coord', frm.ucoord.value);
			return false;
		}
		else {
			return true;
		}
	}
	else {
		return true;
	}
}

function setUserCoord(){
	var selcity = '';

	if(typeof(setUserCoord.arguments[0]) != 'undefined' && typeof(setUserCoord.arguments[0]) == 'string'){
		selcity = setUserCoord.arguments[0];
	}
	else {
		selcity = document.getElementById('selcity').value;
	}

	if (!featuredAdsRefreshed) {
		if(search_type == "categ"){
			document.forms[current_srch_form].head_ucoord.value = selcity;
		}
		else {
			document.forms[current_srch_form].ucoord.value = selcity;
		}
		createCookie('geo_location',selcity,365);

		ajaxReq('/cgi-bin/search/localize.cgi', 'GET', 'json', 'setUserCoord', 'coord', selcity);
		featuredAdsRefreshed = 1;

		return false;
	}
	else if (typeof(setUserCoord.arguments[0]) != 'undefined' && typeof(setUserCoord.arguments[0]) == 'object') {
		if (typeof(setUserCoord.arguments[0].featured_ads) != 'undefined' && typeof(setUserCoord.arguments[0].featured_ads.point_id) != 'undefined') {
			createCookie('featured_ads',setUserCoord.arguments[0].featured_ads.point_id,365);
		}
	}

	showWaitMsg('ovl_wait','ovl_wait_msg');
	document.forms[current_srch_form].submit();
	// tb_remove();
}

function chkcateg(bid, c){
	if(typeof(document.getElementById('sub_'+bid+'_count')) != 'undefined' && document.getElementById('sub_'+bid+'_count') != null){
		var count = document.getElementById('sub_'+bid+'_count').value;
		var total_checked = 0;
		for(var i=0;i<count;i++){
			if(typeof(document.getElementById('sub_'+bid+'_'+i)) != 'undefined' && document.getElementById('sub_'+bid+'_'+i).checked){
				total_checked++;
			}
		}
		// if(!total_checked){
		//		c = false;
		// }
		// else {
			c = true;
		// }
	}
	document.getElementById(bid).checked = c;
}

function chksubcategs(bid, c){
	if(c == true){
		return;
	}
	var count = 0;
	if(typeof(document.getElementById(bid+'count')) != 'undefined'){
		count = document.getElementById(bid+'count').value;
	}
	for(var i=0;i<count;i++){
		if(typeof(document.getElementById(bid+i)) != 'undefined'){
			document.getElementById(bid+i).checked = c;
		}
	}
}

function trim_number(obj){
	var re = /[^0-9]/g;
	obj.value = obj.value.replace(re, "");
}

function mv(frm, p){
	frm.p.value = p;

	// Vérifie s'il faut recommencer la recherche à la page 1
	if(bRestartSearch) {
		frm.p.value = 1;
	}

	if(innersearch(frm)){
		frm.submit();
	}
}

/****
 *  Fonction appeler lorsqu'une précision de recherche a été demandé par
 *  l'utilisateur afin de commencer la recherche à la première page
 */
function restartSearch() {
	bRestartSearch = 1;
}

function ch(frm, q, p){
	frm.p.value = p;
	frm.pre_q.value = q;
	frm.q.value = '';
	if(innersearch(frm)){
		frm.submit();
	}
}

function disagree(frm, cen, cfr){
	if(typeof(frm.userf)){
		if(frm.userf[1]){
			for(var i=0;i<frm.userf.length;i++){
				if(frm.userf[i].type=="checkbox" && (frm.userf[i].value.indexOf('.categ:'+cen) || frm.userf[i].value.indexOf('.categ:'+cfr))){
					frm.userf[i].checked=false;
				}
			}
		}
		else{
			if(frm.userf.type=="checkbox" && (frm.userf.value.indexOf('.categ:'+cen) || frm.userf.value.indexOf('.categ:'+cfr))){
				frm.userf.checked=false;
			}
		}
	}
	frm.submit();
}

function setsort(frm, val){
	frm.trihaut.selectedIndex = frm.tribas.selectedIndex;
	frm.usort.value = val;
	if(innersearch(frm)){
		frm.submit();
	}
}

function expand(id, ref){
	document.getElementById(id).innerHTML = document.getElementById(ref).innerHTML;
}

function reduce(id, ref){
	if(document.getElementById(ref)!=null){
		document.getElementById(id).innerHTML = document.getElementById(ref).innerHTML;
	}
}

function min(n1, n2){
	if(n1<=n2){
		return n1;
	}
	else{
		return n2;
	}
}

function max(n1, n2){
	if(n1>=n2){
		return n1;
	}
	else{
		return n2;
	}
}

function addfavorite(){
	document.frmfavoris.id.value=addfavorite.arguments[0];
	document.frmfavoris.ad_site.value=addfavorite.arguments[1];
	document.frmfavoris.action='/cgi-bin/favoris/ajouter.cgi';
	document.frmfavoris.submit();
}

function rmfilter(div_id, frm){
	document.getElementById(div_id).innerHTML = '';
	if(innersearch(document.getElementById(frm))){
		document.getElementById(frm).submit();
	}
}

function playDiapo(){
	var container = playDiapo.arguments[0];
	var positionner = playDiapo.arguments[1];
	var photo_action = playDiapo.arguments[2];
	var total_pics = playDiapo.arguments[3];
	var fixed_photo_pos = 0;
	if(typeof(playDiapo.arguments[4])){
		fixed_photo_pos = playDiapo.arguments[4];
	}
	if(photo_action == "prev"){
		if(eval(document.getElementById(positionner).value) > 0){
			document.getElementById(positionner).value = eval(document.getElementById(positionner).value)-1;
			document.getElementById(container).src = big_imgs[document.getElementById(positionner).value].src;
		}
	}
	else if (photo_action == "next"){
		if(eval(document.getElementById(positionner).value) < total_pics){
			document.getElementById(positionner).value = eval(document.getElementById(positionner).value)+1;
			document.getElementById(container).src = big_imgs[document.getElementById(positionner).value].src;
		}
	}
	else if (photo_action == "fixed_pos"){
		document.getElementById(container).src = big_imgs[fixed_photo_pos].src;
		document.getElementById(positionner).value = fixed_photo_pos;
	}
}

function chThumbLink(actpos,maxpos,baseid){
	for (var i=1; i<=maxpos; i++){
		if(i==actpos){
			document.getElementById(baseid + i).className = 'thumb_num_on';
		}
		else{
			document.getElementById(baseid + i).className = 'thumb_num_off';
		}
	}
}

function more_papers(){
	document.getElementById('hidden_papers').style.display='block';
	document.getElementById('plus_journaux').style.display='none';
	document.getElementById('moins_journaux').style.display='block';
	return false;
}

function less_papers(){
	document.getElementById('hidden_papers').style.display='none';
	document.getElementById('plus_journaux').style.display='block';
	document.getElementById('moins_journaux').style.display='none';
	return false;
}

function setCities(prov_box, city_box){
	var prov_id;
	if(typeof(setCities.arguments[2]) != 'undefined'){
		prov_id = setCities.arguments[2];
	}
	else {
		prov_id = prov_box.options[prov_box.selectedIndex].value;
	}

	if(typeof(city_box) != 'undefined'){
		city_box.options.length = 0;
		for(var i=0; i < citiesList[prov_id]['id'].length; i++){
			var element = new Option(citiesList[prov_id]['name'][i], citiesList[prov_id]['name'][i]+', '+citiesList[prov_id]['symbol'][i]);
			city_box.options[city_box.length] = element;
		}
		city_box.selectedIndex = 0;
		document.getElementById('selcity').value = city_box.options[0].value;
	}
	return false;
}
