// librairie de fonctions utiles javascript multinavigateur

// compatible uniquement IE
function copier_coller(element) {
   window.clipboardData.setData('Text', valeur_formulaire(element) );
}

function favoris(lien, nom) {
	if ( navigator.appName != 'Microsoft Internet Explorer' ) { 
		window.sidebar.addPanel(nom,lien,"");
	} else { 
		window.external.AddFavorite(lien,nom);
	} 
} 

// Gestion formulaire ===========================================================================================

// getElementById compatible avec tous les navigateurs
function findElement(object) {
	if (document.layers)
    { 
    	//alert(1);
		return document.layers[object];
    } 
  	else if (document.all[object])
    {
 		//alert(2);
		return document.all[object];
    }
  	else if (document.getElementById) 
    {
 		//alert(3);
		return document.getElementById(object); 
    } 
}

function ListeMultiple_AddLdSelectedIndex(lm, ld, label_start, label_end) {
	var listeMultiple = findElement(lm);
	var donnees_existantes = "";
	for (j = 0; j < listeMultiple.options.length; j++) {
		donnees_existantes = donnees_existantes + "|" + listeMultiple.options[j].value;
	}
	if (!sous_string(value_liste(ld), donnees_existantes)) {
		o = new Option(label_start + valeur_liste(ld) + label_end, value_liste(ld) );
		listeMultiple.options[listeMultiple.options.length] = o;
	}
}

function ListeMultiple_DeleteSelectedIndex(lm) {
	var listeMultiple = findElement(lm);
	var index = listeMultiple.options.selectedIndex;
	if (index >= 0) listeMultiple.options[index] = null;
}

function ListeMultiple_DeleteAll(lm) {
	var listeMultiple = findElement(lm);
	for (i=listeMultiple.length-1;i>=0;i--) listeMultiple.options[i] = null;
}

function ListeMultiple_SelectAll(lm) {
	var listeMultiple = findElement(lm);
	for (i=listeMultiple.length-1;i>=0;i--) listeMultiple.options[i].selected=true;
}

function ListeMultiple_controle(lm, message, controle) {
	if (!controle) return false;
	var listeMultiple = findElement(lm);
	if (listeMultiple.length == 0) {
		element_focus(lm);
		alert(message);
		return false;
	}
return true;
} 

// controle les liste deroulantes avec "index = 0" contenues dans le formulaire "name"
function check_all_ld(name, msg) {
	for (var i = 0; i < document.forms[name].elements.length; i++) {
		if (document.forms[name].elements[i].type == 'select-one') { 
			if (document.forms[name].elements[i].selectedIndex == 0) {
				alert(msg);
				document.forms[name].elements[i].focus();
				return false;
			}
		}
	}
	return true;	
}

// controle si champ vide
function check_champ(nom_element, message) {
	if (valeur_formulaire(nom_element) == "") {
		alert(message);
		return false;
	} else {
		return true;
	}
}

function confirmation(message){
		if(confirm(message))
		supr = true;
		else
		supr = false;
	return supr;
}

function is_element_formulaire(nom_element) {
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) { return true; }
    }
  }
return false;
} 

function is_liste_deroulante(nom_element){
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element && document.forms[i].elements[j].type == 'select-one') { return true; }
    }
  }
return false;
} 

function valeur_formulaire(nom_element){
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) { return document.forms[i].elements[j].value; }
    }
  }
return false;
} 

function index_formulaire(nom_element){
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) { return document.forms[i].elements[j].selectedIndex; }
    }
  }
return false;
}

function valeur_liste(nom_element){
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) { return document.forms[i].elements[j].options[document.forms[i].elements[j].selectedIndex].text; }
    }
  }
return false;
}

function value_liste(nom_element){
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) { return document.forms[i].elements[j].options[document.forms[i].elements[j].selectedIndex].value; }
    }
  }
return false;
}

function champ_controle(nom_element, message, controle){
	if (!controle) return false;
	var element = findElement(nom_element);
	if (formulaire_disabled(nom_element)) return true;  // si disabled on controle pas
	if (element) {	
		if (element.value == "") {
			element.focus();
			alert(message);
			return false;
		}
	}
return true;
}

function champ_numeric_controle(nom_element, message, controle){
	if (!controle) return false;
	if (formulaire_disabled(nom_element)) return true;  // si disabled on controle pas
	if (is_element_formulaire(nom_element)) {
		ch = valeur_formulaire(nom_element);
		ch = ch.replace(/^\s*|\s*$/,"");
		ch = ch.replace(/\s+/g,""); 
		if ( (ch == "") || (isNaN(ch) ) ) {   // verifie si nombre !!
			element_focus(nom_element);
			alert(message);
			return false;
		}
	}
return true;
} 

function champ_email_controle(nom_element, message, controle){
	if (!controle) return false;
	if (formulaire_disabled(nom_element)) return true;  // si disabled on controle pas
	if (is_element_formulaire(nom_element)) {
		if ( (valeur_formulaire(nom_element) == "") || (!isEmail(valeur_formulaire(nom_element))) ) {   // verifie si email valide !!
			element_focus(nom_element);
			alert(message);
			return false;
		}
	}
return true;
} 

function liste_controle(nom_element, message, controle){
	if (!controle) return false;
	if (formulaire_disabled(nom_element)) return true;  // si disabled on controle pas
	if (is_element_formulaire(nom_element)) {	
		if (index_formulaire(nom_element) == 0) {
			element_focus(nom_element);
			alert(message);
			return false;
		}
	}
return true;
} 

function element_focus(nom_element){
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element)  document.forms[i].elements[j].focus();
	}
  }
}

function champ_setValue(nom_element, valeur) {
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) { 
			//alert(valeur);
			document.forms[i].elements[j].value = valeur;
		}
    }
  }
}

function champ_set(nom_element, valeur, etat){
  if (etat == "actif") etat = false; else etat = true;
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) { 
			document.forms[i].elements[j].value = valeur;
			document.forms[i].elements[j].disabled = etat;
		}
    }
  }
}

function liste_setByValue(nom_element, valeur, etat){
  if (etat == "actif") etat = false; else etat = true;
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) { 
			document.forms[i].elements[j].selectedIndex = liste_get_index_value(nom_element, valeur);
			document.forms[i].elements[j].disabled = etat;
		}
    }
  }
}

function liste_setByText(nom_element, valeur, etat){
  if (etat == "actif") etat = false; else etat = true;
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) { 
			document.forms[i].elements[j].selectedIndex = liste_get_index_texte(nom_element, valeur);
			document.forms[i].elements[j].disabled = etat;
		}
    }
  }
}

function case_set_all(nom_element, nom_tab_case) {
   var etat = findElement(nom_element).checked;
   for (var i = 0; i < document.forms.length; i++) {
	  for (var j = 0; j < document.forms[i].elements.length; j++) {
		 if (document.forms[i].elements[j].name == nom_tab_case) { document.forms[i].elements[j].checked = etat; }
	  }
   }
}

function case_set(nom_element, valeur, etat){
  if (etat == "actif") etat = false; else etat = true;
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) { 
			document.forms[i].elements[j].checked = valeur; 
			document.forms[i].elements[j].disabled = etat;
		}
    }
  }
}

function case_check(nom_element){
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) return document.forms[i].elements[j].checked;
    }
  }
  return false;
}

function formulaire_disabled(nom_element){
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) return document.forms[i].elements[j].disabled;
    }
  }
  return false;
}

function liste_get_index_texte(nom_element, texte){
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) { 
			for (var ind = 0; ind < document.forms[i].elements[j].length; ind++) {
				if (document.forms[i].elements[j].options[ind].text == texte) return ind;
			}  
		}
    }
  }
  return 0;
}

function liste_get_index_value(nom_element, value){
  for (var i = 0; i < document.forms.length; i++) {
    for (var j = 0; j < document.forms[i].elements.length; j++) {
     	if (document.forms[i].elements[j].name == nom_element) { 
			for (var ind = 0; ind < document.forms[i].elements[j].length; ind++) {
					if (document.forms[i].elements[j].options[ind].value == value) return ind;
			}  
		}
    }
  }
  return 0;
}

/*
bug a supprimer dans la fonction
function listeDeroulante_getValeurByValue(ld, value){
  var listeD = findElement(ld);
	for (var ind = 0; ind < listeD.length; ind++) {
			if (listeD.options[ind].value == value) return listeD.options[ind].text;
		}  
	}
  return "";
}*/

// Fin gestion formulaire ==================================================================================

// Gestion calques =========================================================================================

function calque_montre(id) {
	if (findElement) {
		findElement(id).style.visibility="visible";
	} else if (document.all) {
		document.all[id].style.visibility="visible";
	} else if (document.layers) {
		document.layers[id].visibility="visible";
	}
}

function calque_masque(id) {
	if (findElement) {
		findElement(id).style.visibility="hidden";
	} else if (document.all) {
		document.all[id].style.visibility="hidden";
	} else if (document.layers) {
		document.layers[id].visibility="hidden";
	}
}

// Fin gestion calques =====================================================================================

// Fonctions usuelles ======================================================================================
function redimage (oImg, fileImg, inMW, inMH)
{
  // inImg : Chemin relatif de l'image
  // inMW  : Largeur maximale
  // inMH   : Hauteur maximale
  var maxWidth = inMW;
  var maxHeight = inMH;
  var dW = 0;
  var dH = 0;
  var img = new Image();
  img.src = fileImg;     // Affectation du chemin de l'image a l'objet
  // On recupere les tailles reelles
  var h = dH = img.height;      
  var w = dW = img.width;
  if ((h >= maxHeight) || (w >= maxWidth)) {
    // Si la largeur et la hauteur depasse la taille maximale
    if ((h >= maxHeight) && (w >= maxWidth)) {
      // On cherche la plus grande valeur
      if (h > w) {
        dH = maxHeight;
        // On recalcule la taille proportionnellement
        dW = parseInt((w * dH) / h, 10);
      } else {
        dW = maxWidth;
        // On recalcule la taille proportionnellement
        dH = parseInt((h * dW) / w, 10);
      }
    } else if ((h > maxHeight) && (w < maxWidth)) {
      // Si la hauteur depasse la taille maximale
      dH = maxHeight;
        // On recalcule la taille proportionnellement
      dW = parseInt((w * dH) / h, 10);
    } else if ((h < maxHeight) && (w > maxWidth)) {
      // Si la largeur depasse la taille maximale
      dW = maxWidth;
        // On recalcule la taille proportionnellement
      dH = parseInt((h * dW) / w, 10);
    }
  } 
  oImg.width = dW;
  oImg.height = dH;
  
  // On ecrit l'image dans le document
  //document.writeln("<img src=\"" + inImg + "\" width=\"" + dW + "\" height=\"" + dH + "\" border=\"0\">");
}

function sous_string(cherche, string) {
	tab = string.split('|');
	for (u = 0; u < tab.length ; u++) {
		if (tab[u].lastIndexOf(cherche) != -1) { return true;}
	}
	return false;
}


function getUrlArg(arg) {
	urlvar = new Array();
	urlvarnum = new Array();
	listeArguments = window.location.search.split(new RegExp(arg+"=", "g"));
	if (listeArguments.length != 1) {   // si l'argument est present dans l'url
		longueur = window.location.search.length - 1;
		data = window.location.search.substr(1,longueur);
		donnees = data.split("&");
		for (var i=0; i < donnees.length; i++) {
			position = donnees[i].indexOf("=");
			variable = donnees[i].substr(0,position);
			pos = position + 1;
			valeur = decodeURI(donnees[i].substr(pos,donnees[i].length));
			while (valeur.search(/\+/) != -1)
			valeur = valeur.replace(/\+/," ");
			urlvar[variable] = valeur;
			urlvarnum[i] = valeur;
			//alert(valeur);
		}
	}
	return urlvar[arg];
}

function redirige (link) {
   	var new_url = link;
   	window.location = new_url;
}

function redirige_Confirmation(page_Url, message){
	if(confirm(message))
	redirige(page_Url);
	else
	return false;
}

function redirige_Value(page_Url, arg) {
	tab_arg = arg.split('|');
	for (i = 0; i < tab_arg.length ; i++) {
		//alert(tab_arg[i]);
		if (!sous_string("?", page_Url)) {char = '?'; } else {char = '&';}
		if (is_liste_deroulante(tab_arg[i])) page_Url += char + tab_arg[i] + '=' + value_liste(tab_arg[i]);
		else if (is_element_formulaire(tab_arg[i])) page_Url += char + tab_arg[i] + '=' + valeur_formulaire(tab_arg[i]);
		else if (getUrlArg(tab_arg[i])) page_Url += char + tab_arg[i] + '=' + getUrlArg(tab_arg[i]);
		//alert(page_Url);
	}
	redirige(page_Url);
}

function redirige_Value_Page(page_Url, arg, page) {
	tab_arg = arg.split('|');
	var separateur;
	for (i = 0; i < tab_arg.length ; i++) {
		if (!sous_string("?", page_Url)) {char = '?'; } else {char = '&';}
		if (is_liste_deroulante(tab_arg[i])) page_Url += char + tab_arg[i] + '=' + value_liste(tab_arg[i]);
		else if (is_element_formulaire(tab_arg[i])) page_Url += char + tab_arg[i] + '=' + valeur_formulaire(tab_arg[i]);
	}
	if ( sous_string('?', page_Url) ) separateur = '&';
	else separateur = '?';
	page_Url = page_Url + separateur + 'page=' + page;
	redirige(page_Url);
}

function redirige_Valeur(page_Url, arg) {
	tab_arg = arg.split('|');
	for (i = 0; i < tab_arg.length ; i++) {
		if (!sous_string("?", page_Url)) {char = '?'; } else {char = '&';}
		if (is_liste_deroulante(tab_arg[i])) page_Url += char + tab_arg[i] + '=' + valeur_liste(tab_arg[i]);
		else if (is_element_formulaire(tab_arg[i])) page_Url += char + tab_arg[i] + '=' + valeur_formulaire(tab_arg[i]);
	}
	redirige(page_Url);
}

function CARaNUM(nombreCar) {
  Mt = parseFloat(nombreCar.replace(/,/,'.'));
  return isNaN(Mt)?-1:Mt;
}

function NUMaCAR(nombre) {
    if (isNaN(nombre)) return "0,00";
	var num_string = Math.abs(Math.round(nombre*100)).toString();
	var moin = nombre<0?"-":"";
	var pos = num_string.length-2;
	var zero = num_string.length==1?'0':'';
	var chiffre = ","+zero+num_string.substr(pos);
	if(nombre==0)
		return "0,00";
	if(nombre>-1 && nombre <1)
		return moin+"0"+chiffre;
	while(pos>3) {
		pos = pos-3;
		chiffre = " "+num_string.substr(pos,3)+chiffre
	}
	return moin+num_string.substring(0,pos)+chiffre;	
}
function redirige_pagination(link) {
	var separateur;
	if ( sous_string('?', link) ) separateur = '&';
	else separateur = '?';
	var new_url = link + separateur + 'page=' + (index_formulaire("page")+1);
   	window.location = new_url;
}
function extension_fichier(nom_file){
	return (nom_file.substring(nom_file.lastIndexOf(".")));
}
function isAnnee(annee){
	return (parseInt(annee) && (annee.length==4) );
}
function remplace_dans_string(expr, a, b) {
      var i=0
      while (i!=-1) {
         i=expr.indexOf(a,i);
         if (i>=0) {
            expr=expr.substring(0,i)+b+expr.substring(i+a.length);
            i+=b.length;
         }
      }
      return expr
}
function isLogin(login, mini, maxi) {
	var reg = new RegExp("^[a-zA-Z0-9\\-\\._]{" + mini + "," + maxi + "}$", "i");
	return reg.test(login);
}
function isPassword (pass, pass_bis, size_min, size_max) {
	if (pass != pass_bis) {
		alert("Le mot de passe et sa confirmation ne sont pas cohérents...");
		return false;
	}
	var exp = new RegExp("^[a-zA-Z0-9]{" + size_min + "," + size_max + "}$","g");
    if (!exp.test(pass) ) {
	    alert("Le champ 'mot de passe' n'est pas correct, celui-ci doit être composé de lettres et/ou de chiffres sans espace ni ponctuation et supérieur à " + size_min + " caractères...");
		return false;
	}
return true;
}
function isNumeroSS(num){
	var num_ss = num.toLowerCase();
	if (num_ss.length != 15) return false;
	var clef = eval(num_ss.substring(13, 15));
	var sous_num = num_ss.substring(0, 13);
   	// pour la corse ================================================================= 
	var departement = num_ss.substring(5, 7);
   	if (departement == "2a") {	sous_num = eval(remplace_dans_string(sous_num, '2a', '20')) - 1000000; }
	if (departement == "2b") {	sous_num = eval(remplace_dans_string(sous_num, '2b', '20')) - 2000000; }
	// =============================================================================== 
	var clef_right = 97 - (Math.floor(eval(sous_num) % 97));
	return (clef_right == clef);
}

function isEmail(email) {
	invalidChars = " /:,;"
	for(i=0;i<invalidChars.length; i++) {
		badChar = invalidChars.charAt(i)
		if(email.indexOf(badChar,0) > -1) {
			return false
		}
	}
	atPos = email.indexOf("@",1)
	if(atPos == -1) {
		return false
	}
	if(email.indexOf("@",atPos+1) > -1) {
		return false
	}
	periodPos = email.indexOf(".",atPos)
	if(periodPos == -1) {
		return false
	}
	return true
}

function isCP(cp){
	return cp.length == 5 && ! isNaN(cp);
}
	

function annee_courante() {
maintenant = new Date;
an = maintenant.getYear();
	if ( (navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 4) ) {
		an = eval(an) + 1900;
	}
return an;
}

function vide0(valeur) {
	return (valeur == 0);	
}

function vide_ou_0(valeur) {
	return (valeur == 0 || valeur == "");	
}

function rtrim(str) {
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;       
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1) {
      i--;
	  }
      s = s.substring(0, i+1);
   }
return s;
}
function ltrim(str) {
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1){
         j++;
	  }	
      s = s.substring(j, i);
   }
   return s;
}
function trim(str){
  return rtrim(ltrim(str));
}
// Fin fontions usuelles ==================================================================================

// regle la hauteur de iframe en fonction de celle de la page appelee
function actu_iframe(){
	if(document.all) document.all.id_iframe.style.height = document.frames("id_iframe" ).document.body.scrollHeight;
	else findElement("id_iframe").style.height = findElement("id_iframe" ).contentDocument.body.scrollHeight;
}

function PopupCentrer(page,largeur,hauteur,options) {
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  window.open(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
}

// Copyright © 2000 by Apple Computer, Inc., All Rights Reserved.
//
// You may incorporate this Apple sample code into your own code
// without restriction. This Apple sample code has been provided "AS IS"
// and the responsibility for its operation is yours. You may redistribute
// this code, but you are not permitted to redistribute it as
// "Apple sample code" after having made changes.
// ********************************
// application-specific functions *
// ********************************

// store variables to control where the popup will appear relative to the cursor position
// positive numbers are below and to the right of the cursor, negative numbers are above and to the left
var xOffset = 30;
var yOffset = -5;

function showPopup (targetObjectId, eventObj) {
    if(eventObj) {
	// hide any currently-visible popups
	hideCurrentPopup();
	// stop event FROM bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	moveObject(targetObjectId, newXCoordinate, newYCoordinate);
	// and make it visible
	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	    // if we successfully showed the popup
	    // store its Id on a globally-accessible object
	    window.currentlyVisiblePopup = targetObjectId;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup

function hideCurrentPopup() {
    // note: we've stored the currently-visible popup on the global object window.currentlyVisiblePopup
    if(window.currentlyVisiblePopup) {
	changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
	window.currentlyVisiblePopup = false;
    }
} // hideCurrentPopup



// ***********************
// hacks and workarounds *
// ***********************

// initialize hacks whenever the page loads
window.onload = initializeHacks;

// setup an event handler to hide popups for generic clicks on the document
document.onclick = hideCurrentPopup;

function initializeHacks() {
    // this ugly little hack resizes a blank div to make sure you can click
    // anywhere in the window for Mac MSIE 5
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv')) {
	window.onresize = explorerMacResizeFix;
    }
    resizeBlankDiv();
    // this next function creates a placeholder object for older browsers
    createFakeEventObj();
}

function createFakeEventObj() {
    // create a fake event object for older browsers to avoid errors in function call
    // when we need to pass the event object to functions
    if (!window.event) {
	window.event = false;
    }
} // createFakeEventObj

function resizeBlankDiv() {
    // resize blank placeholder div so IE 5 on mac will get all clicks in window
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv')) {
	getStyleObject('blankDiv').width = document.body.clientWidth - 20;
	getStyleObject('blankDiv').height = document.body.clientHeight - 20;
    }
}

function explorerMacResizeFix () {
    location.reload(false);
}

// Copyright © 2000 by Apple Computer, Inc., All Rights Reserved.
//
// You may incorporate this Apple sample code into your own code
// without restriction. This Apple sample code has been provided "AS IS"
// and the responsibility for its operation is yours. You may redistribute
// this code, but you are not permitted to redistribute it as
// "Apple sample code" after having made changes.
//
// ************************
// layer utility routines *
// ************************

function getStyleObject(objectId) {
    // cross-browser function to get an object's style object given its id
    if(findElement && findElement(objectId)) {
	// W3C DOM
	return findElement(objectId).style;
    } else if (document.all && document.all(objectId)) {
	// MSIE 4 DOM
	return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
	// NN 4 DOM.. note: this won't find nested layers
	return document.layers[objectId];
    } else {
	return false;
    }
} // getStyleObject

function changeObjectVisibility(objectId, newVisibility) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.visibility = newVisibility;
	return true;
    } else {
	// we couldn't find the object, so we can't change its visibility
	return false;
    }
} // changeObjectVisibility

function moveObject(objectId, newXCoordinate, newYCoordinate) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.left = newXCoordinate;
	styleObject.top = newYCoordinate;
	return true;
    } else {
	// we couldn't find the object, so we can't very well move it
	return false;
    }
} // moveObject



