var disappeardelay=500 ;
var delais = 0;
var ie5=document.all
var ns6=document.getElementById&&!document.all
var subobj
var browserName=navigator.userAgent ;
var str_id_rubrique;

function padSearchSpip()
{
	$('searchSpip').style.paddingTop=(ie5?"0px":"4px");
}


function init()
{
	//if (ie5) alert('ie5')
}
function omo(id,o)
{
	$('l_'+id).style.backgroundColor=(o?'Silver':'White');
	$('r_'+id).style.backgroundColor=(o?'Silver':'White');
}
function swap_li(id,o)
{
	$(id).style.backgroundColor=(o?'Silver':'White');
	$(id).style.color=(o?'White':'Black');
}

function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}

function swap_td(id,o)
{
	if (o && $('td_'+id) && $('a_'+id)) {
		$('td_'+id).style.backgroundColor = "#"+$('c_'+id).value;
		$('a_'+id).style.color = "White";
	} 
	if (!o && id!=$F('cat') && $('td_'+id) && $('a_'+id)) {
		setTimeout("$('td_"+id+"').style.backgroundColor = 'transparent';$('a_"+id+"').style.color = '#"+$('t_'+id).value+"';",delais);
	}
}

function dropdownmenu(obj, e, dropmenuID){
	
	obj.className='horizontal_on';
	if (window.event) event.cancelBubble=true
	else if (e.stopPropagation) e.stopPropagation()
	if (typeof dropmenuobj!="undefined") //hide previous menu
		dropmenuobj.style.display="none"
		clearhidemenu()
	if (ie5||ns6){
		//obj.onmouseout=delayhidemenu(obj)
		dropmenuobj=$("ul_"+dropmenuID)
		if (trim(dropmenuobj.innerHTML)=="") return;
		dropmenuobj.onmouseover=clearhidemenu
		dropmenuobj.style.display="block"
		dropmenuobj.x=getposOffset(obj, "left")
		dropmenuobj.y=getposOffset(obj, "top")
		var yOffset=ie5?28:28
		//var xOffset=ss?obj.offsetWidth:""
		dropmenuobj.style.left=dropmenuobj.x+"px"
		dropmenuobj.style.top=dropmenuobj.y+yOffset+"px"
		
		/*
		dropmenuobj.onmouseout=ie5? function(){ dynamichide(event)} : function(event){ dynamichide(event)}
		showhide(dropmenuobj.style, e, "visible", "hidden")
		dropmenuobj.x=getposOffset(obj, "left")
		dropmenuobj.y=getposOffset(obj, "top")
		dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+horizontaloffset+"px"
		dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px"
		*/
	}
	return clickreturnvalue()
}
function showsubmenu(subid,o)
{	
	if (typeof subobj!="undefined") { //hide previous menu
		subobj.style.display="none"
		clearsubhidemenu()
		clearhidemenu()
	}
	subobj=$(subid)
	subobj.style.display='block';
	o.style.backgroundColor="#CECECE";
	o.style.color="White";
}


function clearhidemenu(){
	if (typeof delayhide!="undefined") clearTimeout(delayhide)
}

function clearsubhidemenu()
{
	if (typeof delayhide!="undefined") clearTimeout(delayhide)
	if (typeof delaysubhide!="undefined") clearTimeout(delaysubhide)
}
function delayhidemenu(obj){
	delayhide=setTimeout("dropmenuobj.style.display='none'",disappeardelay)
	if (obj) {obj.className='horizontal';}
}
function delayhidesubmenu(subid,o)
{	
	delaysubhide=setTimeout("subobj.style.display='none'",disappeardelay)
	o.style.backgroundColor="White";
	o.style.color="#646464";
}

function getposOffset(what, offsettype){
	var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
	var parentEl=what.offsetParent;
	while (parentEl!=null){
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}
function clickreturnvalue(){
	if ((ie5||ns6) && !1) return false
	else return true
}
function hideall()
{
	delayhidesubmenu()
	delayhidemenu()
}

function clearallhide()
{
	if (typeof delaysubhide!="undefined") clearTimeout(delaysubhide)
	if (typeof delayhide!="undefined") clearTimeout(delayhide)
}


//*******************  Catalogue ***********************************

function grille(cid,cat,page,LANG) 
{
	var p = (LANG=="fr"?44:2);
	if (cid == "0") {
		
	} else {
		
		if ($('cid').value=='') { document.location.href='spip.php?rubrique' + p + '&cid='+cid+'&cat='+cat+'&LANG='+LANG; return;}
		
		if ($('cat').value && $('cat').value!=cat) {
			setTimeout("$('td_"+$('cat').value+"').style.backgroundColor = 'transparent';$('a_"+$('cat').value+"').style.color = '#"+$('TColor').value+"';",delais);
		} 
		$('cat').value = cat; 
		$('BColor').value = $('c_'+cat).value; 
		$('TColor').value = $('t_'+cat).value; 
		swap_td(cat,1);
	}
	var url = 'squelettes/grille.php';
	var t = new Date();
	var pars = 'cid=' + cid + '&cat=' + cat + '&page=' + page + '&LANG=' + LANG + '&t=' + t.getTime();
	
	var myAjax = new Ajax.Updater(
		'corp_fiche', 
		url, 
		{
			method: 'get', 
			parameters: pars
		});	
		
}

function fiche(cid,cat,pid,page,LANG) 
{
	if ($('cat').value && $('cat').value!=cat) {
		setTimeout("$('td_"+$('cat').value+"').style.backgroundColor = 'transparent';$('a_"+$('cat').value+"').style.color = '"+$('TColor').value+"';",0);
		$('cat').value = cat;
		swap_td(cat,1);
	}
	
	var url = 'squelettes/fiche.php';
	var t = new Date();
	var pars = 'cid=' + cid + '&cat=' + cat + '&pid=' + pid + '&page=' + page + '&LANG=' + LANG  + '&t=' + t.getTime();
	var myAjax = new Ajax.Updater(
		'corp_fiche', 
		url, 
		{
			method: 'get', 
			parameters: pars,			
			evalScripts: true
		});
}



function pgroup(cat,g,page,LANG)
{
	if ($('cat').value && $('cat').value!=cat) {
		setTimeout("$('td_"+$('cat').value+"').style.backgroundColor = 'transparent';$('a_"+$('cat').value+"').style.color = '#"+$('TColor').value+"';",delais);
	} 
	$('cat').value = cat; 
	$('BColor').value = $('c_'+cat).value; 
	$('TColor').value = $('t_'+cat).value; 
	swap_td(cat,1);
	
	
	var url = 'squelettes/group.php';
	var t = new Date();
	var pars = 'cat=' + cat + '&g=' + g + '&page=' + page + '&LANG=' + LANG  + '&t=' + t.getTime();
	var myAjax = new Ajax.Updater(
		'corp_fiche', 
		url, 
		{
			method: 'get', 
			parameters: pars,			
			evalScripts: true
		});
}

function group_unit(cat,pid,g,page,LANG)
{	
	var url = 'squelettes/group_unit.php';
	var t = new Date();
	var pars = 'cat=' + cat + '&pid=' + pid + '&g=' + g + '&page=' + page + '&LANG=' + LANG  + '&t=' + t.getTime();
	var myAjax = new Ajax.Updater(
		'corp_fiche', 
		url, 
		{
			method: 'get', 
			parameters: pars,			
			evalScripts: true
		});
}

function psearch(q,page,r,LANG)
{
	var url = 'squelettes/search.php';
	var t = new Date();
	var pars = 'q=' + escape(q) + '&page=' + page + '&r=' + r + '&LANG=' + LANG   + '&t=' + t.getTime();
	var myAjax = new Ajax.Updater(
		'corp_fiche', 
		url, 
		{
			method: 'get', 
			parameters: pars,			
			evalScripts: true
		});
}

function result(q,pid,page,LANG)
{
	var url = 'squelettes/result.php';
	var t = new Date();
	var pars = 'q=' + q  + '&pid=' + pid + '&page=' + page + '&LANG=' + LANG + '&t=' + t.getTime();
	var myAjax = new Ajax.Updater(
		'corp_fiche', 
		url, 
		{
			method: 'get', 
			parameters: pars,			
			evalScripts: true
		});
}

function sresult(q,sid,page,LANG)
{
	var url = 'squelettes/sresult.php';
	var t = new Date();
	var pars = 'q=' + q  + '&sid=' + sid + '&page=' + page + '&LANG=' + LANG + '&t=' + t.getTime();
	var myAjax = new Ajax.Updater(
		'corp_fiche', 
		url, 
		{
			method: 'get', 
			parameters: pars,			
			evalScripts: true
		});
}

function categories(cat,page,LANG)
{	
	if ($('corp_bottom')) $('corp_bottom').innerHTML='';
	var url = 'squelettes/categories.php';
	var t = new Date();
	var pars = 'cat=' + cat + '&page=' + page + '&LANG=' + LANG + '&t=' + t.getTime();
	
	var myAjax = new Ajax.Updater(
		'corp_fiche', 
		url, 
		{
			method: 'get', 
			parameters: pars,			
			evalScripts: true
		});
}

function selection(cat,sid,page,LANG)
{	
	if ($('corp_bottom')) $('corp_bottom').innerHTML='';
	var url = 'squelettes/selection.php';
	var t = new Date();
	var pars = 'cat=' + cat + '&sid=' + sid + '&page=' + page + '&LANG=' + LANG + '&t=' + t.getTime();
	
	var myAjax = new Ajax.Updater(
		'corp_fiche', 
		url, 
		{
			method: 'get', 
			parameters: pars,			
			evalScripts: true
		});
}

function getPage(page,dest)
{	
	var t = new Date();
	var pars = 't=' + t.getTime();
	var myAjax = new Ajax.Updater(
		dest, 
		page, 
		{
			method: 'get', 
			parameters: pars
		});
}

function showImageBig()
{
	$('image_big').style.display=($('image_big').style.display=='block'?'none':'block');
}

var seq=0 ;
function otherview(seqmax)
{
	$('image_big'+seq).style.display = 'none';
	seq++; seq=(seq>seqmax?0:seq);
	$('image_big'+seq).style.display = 'block';
}

function showCatDesc(id,o){	
	
	if (o) { $('popup_'+id).style.display='block';}
	else { setTimeout("$('popup_'+"+id+").style.display='none'",(delais+500)); }
	
	var x=getposOffset($('td_'+id), "left")
	var y=getposOffset($('td_'+id), "top")
	$('popup_'+id).style.left=x+118+"px";
	$('popup_'+id).style.top=y+"px";
}

function getposOffset(what, offsettype){
	var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
	var parentEl=what.offsetParent;
	while (parentEl!=null){
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}


function valideur(f)
{
/**********************************************************************
DESCRIPTION: Valide que les differents champs soit correctement popules
**********************************************************************/	
	var stop = false;
	var LANG = $('LANG').value ;
	var message = (LANG == 'fr'?'Vous devez entrer des informations dans le champ':'You have to enter information in the field ');
	for (var i = 0; i< f.length ; i++) {
		//alert(f.elements[i].name)
		switch(f.elements[i].name)
		{
		case 'title':
		case 'Send':
		case 'delete':
		case 'LANG':
		case 'Company':
		case 'Street':
		case 'City':
		case 'Phone_Number':
		case 'Fax_Number':
		case 'Who_Reach':
		case 'Requested_Info':
		case 'Describe_Yourself':
		case 'Product':
		case 'Entreprise':
		case 'Adresse':
		case 'Ville':
			break
		case 'Email': if (!emailCheck(f.elements[i].value, LANG)) { message = '';stop = true; }
			break
		default:
			if ( (trim(f.elements[i].value)=='' || f.elements[i].value==0) ) { message = (LANG == 'fr'?'SVP entrez des informations dans le champ ':'Please add information in the field ');stop = true; }
		}
		if (stop) { break; }
	}	
	if (stop) {
		if (message!='') alert(message+f.elements[i].name);
		if (f.elements[i].type == 'hidden') { i+=1; }
		f.elements[i].focus();		
	} else {  f.submit();	}
}


function emailCheck(emailStr, LANG) {

/* The following variable tells the rest of the function whether or not
to verify that the address ends in a two-letter country or well-known
TLD.  1 means check it, 0 means don't. */

	var checkTLD=0;
	
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	
	if (matchArray==null) {
		alert((LANG == 'fr'?"L'adresse de courriel est incorrecte (verifier le @ et le .).":"The email address is incorrect (check the @ and .)"));
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			alert((LANG == 'fr'?"L'adresse de courriel est incorrecte (verifier le @ et le .).":"The user name ("+user.value+")\ncontains non-valid characters"));
			return false;
	   }
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			alert((LANG == 'fr'?"Le nom de domaine contient de faux caracteres":"Ths domain name contains invalid characters."));
			return false;
	   }
	}

	if (user.match(userPat)==null) {
		alert((LANG == 'fr'?"Le nom d'utilisateur ("+user+")\nest invalide":"The user name ("+user+")\nis not valid"));
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert((LANG == 'fr'?"Le nom d'utilisateur ("+user+")\nest invalide":"The destination IP address is not valid!"));
				return false;
		   }
		}
		return true;
	}
 
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			alert((LANG == 'fr'?"Le nom de domaine ("+domArrer+")\nest invalide!":"The domain name ("+domArr+")\nis not valid!"));
			return false;
	   }
	}

	if (checkTLD && domArr[domArr.length-1].length!=2 && 
	domArr[domArr.length-1].search(knownDomsPat)==-1) {
		alert((LANG == 'fr'?"L'adresse par un domaine racine connu (ex: CA)":"The address must finish with a known domain (ex: CA)!"));
		return false;
	}

	// Make sure there's a host name preceding the domain.
	
	if (len<2) {
		alert((LANG == 'fr'?"L'adresse n'a pas de nom de domaine!":"This address does\'t have a domain name!"));
		return false;
	}
	
	return true;
}

