Array.prototype.indexOf = function()
{
	switch (arguments.length)
	{
		// recherche CS AS
		case 1 :
			if (arguments.length==1)
				for(var i=0;i<this.length;i++)
					if(this[i]==arguments[0])
						return i;
			break;
		case 2 : 
			switch (arguments[1])
			{
				//si = 1 => CS AS
				case 1 :
					for(var i=0;i<this.length;i++)
						if(this[i]==arguments[0])
							return i;
					break;
				//si = 2 => CI AS
				case 2 :
					for(var i=0;i<this.length;i++)
					{
						if(this[i].toLowerCase()==arguments[0].toLowerCase())
							return i;
					}
					
					break;
				//si = 3 => CI AI
				case 3 :
					var val_tab = "";
					var argument = arguments[0].toLowerCase();
					myregexp = new RegExp("[eéèëe]","gi");
					argument = argument.replace(myregexp,"[eéèëe]");
					
					myregexp = new RegExp("[iîï]","gi");
					argument = argument.replace(myregexp,"[iîï]");
					
					myregexp = new RegExp("[aà]","gi");
					argument = argument.replace(myregexp,"[aà]");
						
					myregexp = new RegExp("[uù]","gi");
					argument = argument.replace(myregexp,"[uù]");
						
					myregexp = new RegExp("( |\-)","gi");
					argument = argument.replace(myregexp,"( |\-)");
					
					for(var i=0;i<this.length;i++)
					{
						val_tab = this[i].toLowerCase();
						
						myregexp = new RegExp("[eéèëe]","gi");
						val_tab = val_tab.replace(myregexp,"[eéèëe]");
						
						myregexp = new RegExp("[iîï]","gi");
						val_tab = val_tab.replace(myregexp,"[iîï]");
						
						myregexp = new RegExp("[aà]","gi");
						val_tab = val_tab.replace(myregexp,"[aà]");
							
						myregexp = new RegExp("[uù]","gi");
						val_tab = val_tab.replace(myregexp,"[uù]");
							
						myregexp = new RegExp("( |\-)","gi");
						val_tab = val_tab.replace(myregexp,"( |\-)");
						
						if(val_tab==argument)
							return i;
					}
					break;
			}
			
			break;
	}
	

	/*if (arguments.length==1)
		for(var i=0;i<this.length;i++)
			if(this[i]==arguments[0])
				return i;*/

	return -1;
}

function modifier_villes(Id_Province,langue)
{
	OuvreFenetre("modifier_villes.aspx?l="+langue+"&p="+Id_Province,"Villes",380,200,'yes')
}

function get_tab_villes(str_ids)
{
	if (str_ids == "")
		return new Array();
	else
		return str_ids.split(",");
}



function valider(str_ids)
{
	var cit = "";
	var spanParent = window.opener.document.getElementById('span' + Province);
	var parent = window.opener.document.forms[0];
	var modifier = (Langue=="fr" ? "modifier" : "modify");
	
	if (!window.opener.document.getElementById('hiddenVilles' + Province))
	{
		span = window.opener.document.getElementById('lbl_Villes');
		span.innerHTML += "<div id='layerVilles" + Province + "' style='position:absolute;left:-500;top:-500;z-index:2;'><table bgcolor='#FFFFFF' border='1' cellpadding=2 cellspacing=2 style='border-collapse: collapse; border: 1px solid #000000; padding: 2' width='250'><tr><td id='cellVilles" + Province + "'></td></tr></table></div>"
		span.innerHTML += "<input type='hidden' name='hiddenVilles" + Province + "' id='hiddenVilles" + Province + "' value=''>";
	}
	
	switch (tab_li.length)
	{
		case 0 :
			window.opener.document.getElementById('hiddenVilles' + Province).value = "";
			window.opener.document.getElementById('cellVilles' + Province).innerHTML = "";
			spanParent.innerHTML = TouteLaProvince;
			break;
		case 1 :
			window.opener.document.getElementById('hiddenVilles' + Province).value = document.getElementById("cities").value;
			window.opener.document.getElementById('cellVilles' + Province).innerHTML = show_li(tab_li,"parent");
			spanParent.innerHTML = "<span class='Clique'>" + NomProvince + " - " + tab_li[0][2] + "</span>";
			break;
		default:
			window.opener.document.getElementById('hiddenVilles' + Province).value = document.getElementById("cities").value;
			window.opener.document.getElementById('cellVilles' + Province).innerHTML = show_li(tab_li,"parent");
			spanParent.innerHTML = "<a href='#' class='Clique' onmouseover='javascript:display_villes(\"" + Province + "\",\"on\");' onmouseout='javascript:display_villes(\"" + Province + "\",\"off\")'>" + PlusieursVilles + "</a>";
			break;
	}
	
	
	
	spanParent.innerHTML += "&nbsp;<a class='petit' href='javascript:modifier_villes(\"" + Province + "\",\"" + Langue + "\");'>[" + modifier + "]</a>";
	
	/* on enlève le code de la province du hidden prov
	car on doit envoyer seulement le code de le province
	si aucune ville n'est choisie. */
	str_prov = window.opener.document.getElementById('prov').value;
	reg = new RegExp(Province + ",?|," + Province + "$")
	str_prov = str_prov.replace(reg,"");
	
	window.opener.document.getElementById('prov').value = str_prov;
	window.opener.document.getElementById('cit').value = MAJ_Villes(parent);
	
	
	
	window.self.close();
		
}

function show_li()
{
	var li = "";
	var cities = "";
	var tab = arguments[0];
	var mode = "local";
	var supprimer = Langue=="fr" ? "Enlever" : "Remove";
	
	if (arguments.length == 2)
		mode = arguments[1];
	
	
	for (i=0;i<tab.length;i++)
	{
		li += "<li>" + tab[i][2] + (mode=="local" ? "&nbsp;<a class='petit' href='javascript:supprimer_ville(" + i + ");'>[" + supprimer + "]</a>" : "") + "</li>";
		cities += (cities == "" ? tab[i][1] : "," + tab[i][1]);
	}
	
	document.getElementById("cities").value = cities;
	
	return li;
}

function ajouter_ville(txt_ctrl,tab)
{
	
	ville = document.getElementById(txt_ctrl).value;
	index = TabNomVilles.indexOf(ville,3);
	if (index > 0)
	{
		tab[tab.length] = new Array(index,TabIdVilles[index],TabNomVilles[index]);
		document.getElementById("lbl_villes").innerHTML = show_li(tab);
		document.getElementById(txt_ctrl).value = "";
		document.getElementById("but_valider").style.visibility="visible";
	}
	else
	{
		alert(Choix_DropDown);
		document.getElementById(txt_ctrl).focus();
	}
	
}

function supprimer_ville(index)
{
	tab_li.splice(index,1)
	
	if (tab_li.length == 0)
		document.getElementById("lbl_villes").innerHTML = TouteLaProvince;
	else
		document.getElementById("lbl_villes").innerHTML = show_li(tab_li);
	
	document.getElementById("but_valider").style.visibility="visible";
}

function display_villes(Id_Province,Mode)
{
	var objCheckbox = document.getElementById("chk_prov" + Id_Province);
	var layer = document.getElementById('layerVilles' + Id_Province);
	var x = findPosX(objCheckbox)
	var y = findPosY(objCheckbox)
	var PixelTop = isIE ? objCheckbox.offsetHeight : objCheckbox.offsetHeight + 5;

	
	if (Mode=='on') 
	{
		AfficheLayer('layerVilles' + Id_Province,x + objCheckbox.offsetWidth,y + PixelTop);
		if (isIE)
		{
			cat	 = document.getElementById('Cat');
			dist = document.getElementById('Dist');
			
			if (y + layer.offsetHeight + 10 >= findPosY(dist)) dist.style.visibility="hidden";
			if (y + layer.offsetHeight + 15 >= findPosY(cat)) cat.style.visibility="hidden";
		} 
	}
	else
	{
		AfficheLayer('layerVilles' + Id_Province,-500,-500);
		if (isIE) {document.getElementById('Cat').style.visibility="visible";document.getElementById('Dist').style.visibility="visible";}
	}
}

function display_provinces(ctrl,langue)
{
	var ctrl_form = ctrl.form;
	var chkbox = ctrl_form.chk_prov;
	var unchecked = false;
	var str_prov = ctrl_form.prov.value;
	var tab_chk = new Array();
	var span_obj = "";
	var modifier = (langue=="fr" ? "modifier" : "modify");

	// si on clique une "Toutes les provinces", on décoche	
	// toutes les autres provinces
	if ((ctrl.value=="") && (ctrl.checked==true))
	{
		unchecked = true;
		ctrl_form.prov.value = "";
		ctrl_form.cit.value = "";
		for (i=1;i<chkbox.length;i++)
		{
			if (chkbox[i].checked) 
			{
				//on décoche la province si elle est cochée
				span_obj = document.getElementById("span" + chkbox[i].value);
				chkbox[i].checked = false;
				span_obj.innerHTML = tab_prov[i][1];
				
				//si un control hidden des villes de provinces existe, on initialise à vide.
				if (document.getElementById("hiddenVilles" + chkbox[i].value))
				{
					hidden_obj = document.getElementById("hiddenVilles" + chkbox[i].value);
					hidden_obj.value = "";
				}
			}
		}
	}
	
	// si on clique une autre province, alors on décoche	
	// le choix toutes les provinces
	if ((chkbox[0].checked==true) && (ctrl.value!=""))
	{
		chkbox[0].checked = false;		
	}
	
	for (i=1;i<chkbox.length;i++)
	{
		if (chkbox[i].checked)
		{
			
			if (chkbox[i].value==ctrl.value)
			{
				span_obj = document.getElementById("span" + chkbox[i].value);
				switch (tab_prov[i][0])
				{
					case "AB" :
					case "ON" :
						span_obj.innerHTML = "<span class='Clique'>" + TouteLaProvince + (langue=="fr" ? " de l'" : " of ") + tab_prov[i][1] + "</span>";	
						break;
					case "BC" :
					case "NS" :
					case "SK" :
						span_obj.innerHTML = "<span class='Clique'>" + TouteLaProvince + (langue=="fr" ? " de la " : " of ") + tab_prov[i][1] + "</span>";	
						break;
					case "PE" :
					case "NL" :
						span_obj.innerHTML = "<span class='Clique'>" + TouteLaProvince + (langue=="fr" ? " de " : " of ") + tab_prov[i][1] + "</span>";	
						break;
					case "MB" :
					case "NB" :
					case "NU" :
					case "QC" :
					case "NT" : 
					case "YT" :
						span_obj.innerHTML = "<span class='Clique'>" + TouteLaProvince + (langue=="fr" ? " du " : " of ") + tab_prov[i][1] + "</span>";	
						break;
				}
				
				span_obj.innerHTML += "&nbsp;<a class='petit' href='javascript:modifier_villes(\"" + chkbox[i].value + "\",\"" + langue + "\");'>[" + modifier + "]</a>";
				
				str_prov += (str_prov=="" ? "" : ",") + chkbox[i].value;
			}
		}
		else
		{
			reg = new RegExp(chkbox[i].value + ",?|," + chkbox[i].value + "$")
			str_prov = str_prov.replace(reg,"");
			span_obj = document.getElementById("span" + chkbox[i].value);
			span_obj.innerHTML = tab_prov[i][1];
			
			if (chkbox[i].value==ctrl.value)
			{
				if (document.getElementById("hiddenVilles" + chkbox[i].value))
				{
					villes_obj = document.getElementById("hiddenVilles" + chkbox[i].value);
					villes_obj.value = "";
				}
			}
			
		}
	}
	
	//On remet à jour les villes et les provinces
	document.getElementById('cit').value = MAJ_Villes(ctrl.form);
	ctrl_form.prov.value = str_prov;
	
	
	if ((str_prov=="") && (document.getElementById('cit').value==""))
	{
		ctrl_form.prov.value = "";
		ctrl_form.cit.value = "";
		chkbox[0].checked = true;		
	}
}

function MAJ_Villes(ctrl_form)
{
	var cit = "";
	
	for (i=0;i<ctrl_form.elements.length;i++)
	{
		if (ctrl_form.elements[i].id.indexOf("hiddenVilles") > -1)
		{
			if (ctrl_form.elements[i].value!="")
				cit += (cit=="" ? "" : ",") + ctrl_form.elements[i].value;
		}
	}
	
	return cit;
}