// (C) 2003 - 2010  Serge Lamarche
// http://sergewebservice.ca/
// All codes copyrights Serge Lamarche, any reproduction and 
// use strictly forbidden without written consent.
// Tous les codes droits d'auteurs Serge Lamarche, toute reproduction et 
// utilisation est strictement interdite sans autorisation écrite.
// Contact: info@sergewebservice.ca, sergewebservice@yahoo.ca or/ou sergelamarche@gmail.com 
// ...for help with your website. Reliable, inexpensive website service. Thanks.
// ...pour de l'aide avec votre site. Service internet abordable et professionnel. Merci. 

versgeo="http://sergewebservice.ca/ancien/"; 


///////////////////////////////////////

//fonctions diaporama:
var repertoire = "images"; var imgdiapo=new Array(); 
function precharge(nomdiapo) { 
if (!imgdiapo[nomdiapo]) imgdiapo[nomdiapo] = new Array(); 
for (var i=0;i<diapodata[nomdiapo].length;i++) { 
imgdiapo[nomdiapo][i] = new Image(); 
imgdiapo[nomdiapo][i].src = repertoire+"/"+diapodata[nomdiapo][i][0]; }; 
if (document.documentElement) document.documentElement.style.cursor = "auto"; }; 

var nbidiapo = -1; if (!nbidiapo) nbidiapo=1; //prévient false; 
function diaporama(direction, nomdiapo) { 
var ladiapoimg = document.getElementById ? document.getElementById("diapoimg") : document.images["diapoimg"]; 
	if (ladiapoimg.style) ladiapoimg.style.filter="blendTrans(duration=0.5)";
	if (typeof(ladiapoimg.filters)!="undefined") { 
	ladiapoimg.filters.blendTrans.apply();
	ladiapoimg.src = imgdiapo[nomdiapo][nbidiapo].src; 
	ladiapoimg.filters.blendTrans.play(); }
	else ladiapoimg.src = imgdiapo[nomdiapo][nbidiapo].src; 
if (document.getElementById) { document.getElementById("diapolegende").innerHTML = ''; 
document.getElementById("diapolegende").innerHTML = diapodata[nomdiapo][nbidiapo][1]; }; }

var todiapo=false; 
function diapoaction(direction, nomdiapo) { if (todiapo) niltodiapo(); 
var nbidiapoavant = nbidiapo; 
if (direction) { nbidiapo++; if (nbidiapo==diapodata[nomdiapo].length) nbidiapo=0; } 
else { nbidiapo--; if (nbidiapo<0) nbidiapo = diapodata[nomdiapo].length-1; };
if (imgdiapo[nomdiapo][nbidiapo].complete) { diaporama(direction, nomdiapo); } 
else nbidiapo = nbidiapoavant;
diapoto = window.setTimeout("diapoaction("+direction+", '"+nomdiapo+"')",5000); todiapo=true; }

function niltodiapo() { if (todiapo) { window.clearTimeout(diapoto); todiapo=false; }; }


// fonction visible-invisible. 
function montrer(elemt,metoupas) { if (rejet) return; 
if (tofermernavs) clearTimeout(fermernavsto); 
if (metoupas=="hidden") { 
fermernavsto = setTimeout('fermernavs()',500); tofermernavs = true; return; }; 
if (metoupas=="ferme") metoupas = "hidden"; else fermernavs(elemt); 
//metoupas = (metoupas=="none") ? "hidden" : "visible"; //visibility au lieu de display!
if (typeof(document.getElementById(elemt).style.visibility)=="string") document.getElementById(elemt).style.visibility = metoupas;
else if (typeof(document.all(elemt).style.visibility)=="string") document.all(elemt).style.visibility = metoupas; }; 

//fonction montre ou disparait element:
var dispto = dispto1 = dispto2 = false; 
function montre(elementId, quoi, position) { 
if (!document.getElementById) { alert("Your browser can't open this element."); return; }; 
var lelement = document.getElementById(elementId); 
if (position&&document.documentElement) lelement.style.top = (document.body.scrollTop + document.documentElement.scrollTop + position) + "px"; //alert(event.clientY);
lelement.style.display = (quoi) ? "block" : "none"; 
if (dispto) { clearTimeout(dispto); dispto = false; };
if (dispto1) { clearTimeout(dispto1); dispto1 = false; };
if (dispto2) { clearTimeout(dispto2); dispto2 = false; }; };


//parse xml:
function xmlenhtml(element) { var lelement = document.getElementById(element);
var xml = lelement.innerHTML; var debut = xml.search("<title>Conditions actuelles:"); 
var fin = xml.search("<category>Conditions actuelles"); var html = xml.substring(debut, fin); 
lelement.innerHTML = html; alert(html); };


// adresse paypal seulement:
function utiliseppadr() { if (!document.getElementById) return; 
document.getElementById('formulairepp').removeChild(document.getElementById('address_override')); montre('nouvadr', false); paypal = true; }; 

var paypal = false; 
// calcul du formulaire:
function calcule() { if (!document.getElementById||!document.createElement) { alert("You need a browser with more javascript capability to register. Please, try again with a modern browser."); return false; }; 
var formulaire = document.forms['inscriptionwilli']; var formpp = document.forms['formulairepp']; 
var millidate = new Date(); millidate = millidate.getTime(); 
if (formulaire.prenom.value=="") { alert("Please enter your first name \nVeuillez entrer votre prénom"); formulaire.prenom.focus(); return false; }; 
formpp.first_name.value = formulaire.prenom.value;
if (formulaire.nom.value=="") { alert("Please enter your last name \nVeuillez entrer votre nom de famille"); formulaire.nom.focus(); return false; }; 
formpp.last_name.value = formulaire.nom.value;
if (formulaire.tel.value=="") { alert("Please enter your phone number"); formulaire.tel.focus(); return false; }; 
formpp.night_phone_b.value = formulaire.tel.value;
if (formulaire.courriel.value=="") { alert("Please enter your email \nVeuillez entrer votre courriel"); formulaire.courriel.focus(); return false; }; 
formpp.email.value = formulaire.courriel.value;
// si n'utilise pas les données de paypal:
if (!paypal) {
if (formulaire.adresse.value=="") { alert("Please enter your address \nVeuillez entrer votre adresse"); formulaire.adresse.focus(); return false; }; 
formpp.address1.value = formulaire.adresse.value;
if (formulaire.ville.value=="") { alert("Please enter your city or town \nVeuillez entrer votre ville"); formulaire.ville.focus(); return false; }; 
formpp.city.value = formulaire.ville.value;
if (formulaire.prov.value=="") { alert("Please enter your province or state \nVeuillez entrer votre province ou état"); formulaire.prov.focus(); return false; }; 
formpp.state.value = formulaire.prov.value;
if (formulaire.poste.value=="") { alert("Please enter your postal code \nVeuillez entrer votre code postal"); formulaire.poste.focus(); return false; };
formpp.zip.value = formulaire.poste.value;
 }; 

var nbgam = 0; var leformpp = document.getElementById('formulairepp'); 
var lalangue = langue.search(/en,fr/); if (lalangue!=-1) { formpp.item_name_1.value = "Inscription"; formpp.item_name_2.value = "Dîner supplémentaire(s)"; formpp.item_name_3.value = "Dîner enfant supplémentaire(s)"; formpp.item_name_4.value = "Gaminet supplémentaire(s)"; }; 
var q1 = document.getElementById('quantity_1'); 
var q2 = document.getElementById('quantity_2'); 
var q3 = document.getElementById('quantity_3'); 
var q4 = document.getElementById('quantity_4'); 
if (formulaire.inscrit.checked) { if (!q1) { var laq1 = document.createElement('input'); laq1.type = "hidden"; laq1.name = laq1.id = "quantity_1"; leformpp.appendChild(laq1); }; formpp.quantity_1.value = "1"; formpp.amount_1.value = formulaire.inscription.value = 80; montre("gaminet", true); } else { if (q1) leformpp.removeChild(document.getElementById('quantity_1')); formpp.amount_1.value = formulaire.inscription.value = 0; montre("gaminet", false); }; 
formulaire.nbdiner.value = Math.round(Math.abs(formulaire.nbdiner.value));
formulaire.montantdiner.value = formulaire.nbdiner.value*20;
if (formulaire.nbdiner.value!=0) { if (!q2) { var laq2 = document.createElement('input'); laq2.type = "hidden"; laq2.name = laq2.id = "quantity_2"; leformpp.appendChild(laq2); }; formpp.quantity_2.value = formulaire.nbdiner.value; formpp.amount_2.value = 20; } else { if (q2) leformpp.removeChild(document.getElementById('quantity_2')); formpp.amount_2.value = 0; }; 
formulaire.nbdinerenfant.value = Math.round(Math.abs(formulaire.nbdinerenfant.value));
formulaire.montantdinerenfant.value = formulaire.nbdinerenfant.value*10;
if (formulaire.nbdinerenfant.value!=0) { if (!q3) { var laq3 = document.createElement('input'); laq3.type = "hidden"; laq3.name = laq3.id = "quantity_3"; leformpp.appendChild(laq3); }; formpp.quantity_3.value = formulaire.nbdinerenfant.value; formpp.amount_3.value = 10; } else { if (q3) leformpp.removeChild(document.getElementById('quantity_3')); formpp.amount_3.value = 0; }; 
formulaire.nbgaminets.value = nbgam = Math.round(Math.abs(formulaire.nbgaminets.value));
formulaire.montantgaminets.value = nbgam*20;
if (nbgam!=0) { if (!q4) { var laq4 = document.createElement('input'); laq4.type = "hidden"; laq4.name = laq4.id = "quantity_4"; leformpp.appendChild(laq4); }; formpp.quantity_4.value = nbgam; formpp.amount_4.value = 20; } else { if (q4) leformpp.removeChild(document.getElementById('quantity_4')); formpp.amount_4.value = 0; }; 
formulaire.total.value = Number(formulaire.inscription.value) + Number(formulaire.montantdiner.value) + Number(formulaire.montantdinerenfant.value) + Number(formulaire.montantgaminets.value); 

if (nbgam!=0) montre("extragaminets", true); else montre("extragaminets", false); 
if (nbgam>1) { montre("extragaminets2", true); } else { montre("extragaminets2", false); };
if (nbgam>2) { montre("extragaminets3", true); } else { montre("extragaminets3", false); };
if (nbgam>3) { montre("gplus", true); } else { montre("gplus", false); };

//if (isNaN(total)) alert("Calculation error. Please recalculate.");
//formpp.tax_cart.value = formulaire.gst.value = gst = 0.01*Math.round(0*total); 
//formulaire.total.value = total + gst;  
//for (var i=0;i<formulaire.g0.length;i++) { if (formulaire.g0[i].checked) { formulaire.g0.value = formulaire.g0[i].value; }; }; <-cas de boutons radios.
formpp.custom.value = "willi2010-"+millidate+";"+formulaire.num_acvl.value+";"+formulaire.courriel.value+";"+formulaire.tel_mobile.value+";"+formulaire.delta.checked+";"+formulaire.para.checked+";"+formulaire.dist.value+";"+formulaire.contact_urgence.value+";"+formulaire.g0.value+";"+formulaire.gc0.value+";"+formulaire.g1.value+";"+formulaire.gc1.value+";"+formulaire.g2.value+";"+formulaire.gc2.value+";"+formulaire.g3.value+";"+formulaire.gc3.value; 
//alert(formpp.custom.value.length+"  "+formpp.custom.value);
formpp.invoice.value = "willi2010-"+millidate; //return true; 
 }; 


//fonctions de base:

function rien() { return; };

//change le bg comme :hover:
function cefonddevient(cetelement,couleurfond) { 
if (cetelement.style) cetelement.style.background = couleurfond; }; 

//change image comme rollover
function cetteimagedevient(cetelement,lesrc) { 
if (cetelement.src) cetelement.src = lesrc; }; 

function btnlangues() { 
if (document.styleSheets&&document.getElementById) { 
var chg = document.styleSheets[0]; if (chg.insertRule||chg.addRule) { 
for (var i=0;i<document.styleSheets.length;i++) { 
var chg = document.styleSheets[i]; 
if (chg.insertRule) { chg.insertRule('div#langue {display: block; }',chg.cssRules.length); } 
if (chg.addRule) { chg.addRule('div#langue', 'display: block;'); }; }; }; }; }

function unilingue(langue0, langue1) { if (!document.styleSheets) return; 
for (var i=0;i<document.styleSheets.length;i++) { 
var chg = document.styleSheets[i]; 
if (chg.insertRule) { 
chg.insertRule('*.'+langue0+', span.'+langue0+', span.langsep {display: none; }',chg.cssRules.length);
chg.insertRule('*.'+langue1+' {display: block; }',chg.cssRules.length); 
chg.insertRule('span.'+langue1+' {display: inline; }',chg.cssRules.length); } 
if (chg.addRule) { 
chg.addRule('*.'+langue0, 'display: none;'); 
chg.addRule('span.'+langue0, 'display: none;'); 
chg.addRule('span.langsep', 'display: none;'); 
chg.addRule('*.'+langue1, 'display: block;'); 
chg.addRule('span.'+langue1, 'display: inline;'); }; }; metbiscuitsws(langue0+","+langue1); }

function afficheDate(maj) { if (!document.createTextNode||!document.appendChild) return; 
var dmaj = new Array(); var now = new Date(); 
var jour = new Array("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi");
var mois = new Array("janvier","février","mars","avril","mai","juin","juillet", "août","septembre","octobre","novembre","décembre");
var day = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var month = new Array("January","February","March","April","May","June","July", "August","September","October","November","December");
dmaj[0]=Number(maj.getDay()); dmaj[1]=Number(maj.getDate()); 
dmaj[2]=Number(maj.getMonth()); dmaj[3]=Number(maj.getYear()); 
if (isNaN(dmaj[0])||isNaN(dmaj[1])||isNaN(dmaj[2])||isNaN(dmaj[3])||(dmaj[3]==1970)||((1000*60*60*24)>(now.getTime() - maj.getTime()))) return; 
if (dmaj[3] < 99) {dmaj[0]=dmaj[0]-1};
var MM = dmaj[3] + ((dmaj[3] < 1999) ? (dmaj[3] < 99 ? 2000 : 1900) : 0) ;
var un = one = ""; if (dmaj[1] == 1) {un = "er"; one = "st"; }; 
var dmajtxten = document.createTextNode("Last update "+day[dmaj[0]]+", "+MM+" "+month[dmaj[2]]+" "+dmaj[1]+one+"."); document.getElementById('dmajen').appendChild(dmajtxten); 
var dmajtxtfr = document.createTextNode("Mis à jour "+jour[dmaj[0]]+", le "+dmaj[1]+un+" "+mois[dmaj[2]]+" "+MM+"."); document.getElementById('dmajfr').appendChild(dmajtxtfr); }; 

function fureteur() { var navteur = navigator.userAgent.toLowerCase(); 
var fureteurs = ["konqueror", "safari", "omniweb", "opera", "webtv", "icab", "msie", "firefox", "gecko", "compatible", "mozilla"]; 
for (var i=0;i<fureteurs.length;i++) { var furteur = new RegExp(fureteurs[i], "i"); 
if (-1!=navteur.search(furteur)) return fureteurs[i]; }; return "inconnu"; }
//Thanks to PPK www.quirksmode.com. His infos helped me quickly create these two functions.
function systOp() { var navteur = navigator.userAgent.toLowerCase(); 
var codesSystOp = ["linux", "x11", "mac", "win"]; 
var systOps = ["linux", "unix", "macintosh", "windows"]; 
for (var i=0;i<codesSystOp.length;i++) { var OSys = new RegExp(codesSystOp[i], "i"); 
if (-1!=navteur.search(OSys)) return systOps[i]; }; return "inconnu"; }

//ajuste grandeur textes selon grandeur écran: *** à mettre à jour!!!!
function ajuste() { ; return; 
if (!document.styleSheets||!document.getElementById||!document.body.clientWidth) return; 
if (document.body.clientWidth>900) return; 
//var pasfirefox = fureteur(); pasfirefox = (pasfirefox!="firefox"); 
for (var i=0;i<document.styleSheets.length;i++) { 
var chg = document.styleSheets[i]; 
if (chg.insertRule) { //&&pasfirefox// plusieurs changements de css fait capoter firefox.
chg.insertRule('p {font-size: 12px; line-height: 16px; }', chg.cssRules.length); 
chg.insertRule('h1 {font-size: 20px; text-align: center;}', chg.cssRules.length); 
chg.insertRule('h3 {font-size: 14px; line-height: 18px; }', chg.cssRules.length); 
chg.insertRule('li span.titre {font-size: 14px; line-height: 18px; font-weight: bold;}', chg.cssRules.length); } 
else if (chg.addRule) { 
chg.addRule('p', 'font-size: 12px; line-height: 16px; '); 
chg.addRule('h1', 'font-size: 20px; '); 
chg.addRule('h3', 'font-size: 14px; line-height: 18px; '); 
chg.addRule('li span.titre', 'font-size: 14px; line-height: 18px; font-weight: bold;'); }; }; }; 


var langue = ""; 
function litbiscuitsws() { if (!document.styleSheets) return; 
if (!document.cookie) { unilingue("fr","en"); return; }
var lang = document.cookie.search(/lang=/); if (lang!=-1) { 
lang=document.cookie.substr(5+lang,5); lang = lang.split(","); unilingue(lang[0],lang[1]); } ; }
function metbiscuitsws(cssoulang) { //if (!document.cookie||!document.styleSheets) return; 
var echu=new Date(); var lang = ""; var temp = cssoulang=="fr,en" || cssoulang=="en,fr" ; 
echu.setTime(echu.getTime()+1000*60*60*24*7*52); //réinitialise pour un an
if (temp) { var lecss = document.cookie.search(/csssws=/); 
lecss = (lecss!=-1) ? document.cookie.substr(7+lecss,1) : 0; 
lang = "lang="+cssoulang; } else { lecss = cssoulang; var lang = document.cookie.search(/lang=/); 
lang = (lang!=-1) ? "lang="+document.cookie.substr(5+lang,5) : ""; }; langue = lang; 
document.cookie="csssws="+lecss+lang+"; expires="+echu; 
if (document.contactwilli) document.contactwilli.lang.value = lang; 
if (document.inscriptionwilli) document.inscriptionwilli.lang.value = lang; }

// (C) 2003 - 2010  Serge Lamarche
// http://sergewebservice.ca/
// All codes copyrights Serge Lamarche, any reproduction and 
// use strictly forbidden without written consent.
// Tous les codes droits d'auteurs Serge Lamarche, toute reproduction et 
// utilisation est strictement interdite sans autorisation écrite.
// Contact: info@sergewebservice.ca, sergewebservice@yahoo.ca or/ou sergelamarche@gmail.com 
// ...for help with your website. Reliable, inexpensive website service. Thanks.
// ...pour de l'aide avec votre site. Service internet abordable et professionnel. Merci. 


//fonctions pour trainer la carte gracieuseté de (C) PPK 2010  au quirksmode.org:
//Following codes authored by PPK (C) 2010  at quirksmode.org:
//Codes were modified to apply to the map:
function addEventSimple(obj,evt,fn) { 
	if (obj.addEventListener) obj.addEventListener(evt,fn,false);
	else if (obj.attachEvent) obj.attachEvent('on'+evt,fn);
}

function removeEventSimple(obj,evt,fn) {
	if (obj.removeEventListener) obj.removeEventListener(evt,fn,false);
	else if (obj.detachEvent) obj.detachEvent('on'+evt,fn);
}

dragDrop = { 
	//keyHTML: '<a href="#" class="keyLink">#</a>',
	//keySpeed: 10, // pixels per keypress event
	initialMouseX: undefined,
	initialMouseY: undefined,
	startX: undefined,
	startY: undefined,
	dXKeys: undefined,
	dYKeys: undefined,
	draggedObject: undefined,
	initElement: function (element) { 
		if (typeof element == 'string') element = document.getElementById(element);
		element.onmousedown = dragDrop.startDragMouse; return false; 
		element.innerHTML += dragDrop.keyHTML;
		var links = element.getElementsByTagName('a');
		var lastLink = links[links.length-1];
		lastLink.relatedElement = element;
		lastLink.onclick = dragDrop.startDragKeys;
	},
	startDragMouse: function (e) { 
		dragDrop.startDrag(this);
		var evt = e || window.event;
		dragDrop.initialMouseX = evt.clientX;
		dragDrop.initialMouseY = evt.clientY;
		addEventSimple(document,'mousemove',dragDrop.dragMouse);
		addEventSimple(document,'mouseup',dragDrop.releaseElement);
		return false;
	},
	startDragKeys: function () { 
		dragDrop.startDrag(this.relatedElement); return false; 
		dragDrop.dXKeys = dragDrop.dYKeys = 0;
		addEventSimple(document,'keydown',dragDrop.dragKeys);
		addEventSimple(document,'keypress',dragDrop.switchKeyEvents);
		this.blur();
		return false;
	},
	startDrag: function (obj) { 
		if (dragDrop.draggedObject) dragDrop.releaseElement();
		dragDrop.startX = obj.offsetLeft;
		dragDrop.startY = obj.offsetTop;
		dragDrop.draggedObject = obj;
		//obj.className += 'dragged';
	},
	dragMouse: function (e) { 
		var evt = e || window.event;
		var dX = evt.clientX - dragDrop.initialMouseX;
		var dY = evt.clientY - dragDrop.initialMouseY;
		dragDrop.setPosition(dX,dY);
		return false;
	},
	dragKeys: function(e) { return false; // mis hors fonction. 
		var evt = e || window.event;
		var key = evt.keyCode;
		switch (key) {
			case 37:	// left
			case 63234:
				dragDrop.dXKeys -= dragDrop.keySpeed;
				break;
			case 38:	// up
			case 63232:
				dragDrop.dYKeys -= dragDrop.keySpeed;
				break;
			case 39:	// right
			case 63235:
				dragDrop.dXKeys += dragDrop.keySpeed;
				break;
			case 40:	// down
			case 63233:
				dragDrop.dYKeys += dragDrop.keySpeed;
				break;
			case 13: 	// enter
			case 27: 	// escape
				dragDrop.releaseElement();
				return false;
			default:
				return true;
		}
		dragDrop.setPosition(dragDrop.dXKeys,dragDrop.dYKeys);
		if (evt.preventDefault)
			evt.preventDefault();
		return false;
	},
	setPosition: function (dx,dy) { var lediv = document.getElementById("divdeplace"); 
	if (dx<(lediv.clientWidth-dragDrop.startX-1600)) dx = lediv.clientWidth-dragDrop.startX-1600; 
	if (dx>-dragDrop.startX) dx = -dragDrop.startX; 
	if (dy<(-285-dragDrop.startY)) dy = -285-dragDrop.startY; 
	if (dy>-dragDrop.startY) dy = -dragDrop.startY; 
		dragDrop.draggedObject.style.left = dragDrop.startX + dx + 'px';
		dragDrop.draggedObject.style.top = dragDrop.startY + dy + 'px';
	},
	switchKeyEvents: function () { return false; 
		// for Opera and Safari 1.3
		removeEventSimple(document,'keydown',dragDrop.dragKeys);
		removeEventSimple(document,'keypress',dragDrop.switchKeyEvents);
		addEventSimple(document,'keypress',dragDrop.dragKeys);
	},
	releaseElement: function() { 
		removeEventSimple(document,'mousemove',dragDrop.dragMouse);
		removeEventSimple(document,'mouseup',dragDrop.releaseElement);
		//removeEventSimple(document,'keypress',dragDrop.dragKeys);
		//removeEventSimple(document,'keypress',dragDrop.switchKeyEvents);
		//removeEventSimple(document,'keydown',dragDrop.dragKeys);
		dragDrop.draggedObject.className = dragDrop.draggedObject.className.replace(/dragged/,'');
		dragDrop.draggedObject = null;
	}
}


//fonctions ajax gracieuseté de (C) PPK 2010  au quirksmode.org:
//Following codes authored by PPK (C) 2010  at quirksmode.org:
//Codes were modified to apply to my use:

function handleRequest(req) {
	var writeroot = document.getElementById("meteo");
	writeroot.innerHTML = req.responseText; }

function sendRequest(url,callback,postData) {
	var req = createXMLHTTPObject();
	if (!req) return;
	var method = (postData) ? "POST" : "GET";
	req.open(method,url,true);
	req.setRequestHeader('User-Agent','XMLHTTP/1.0');
	if (postData)
		req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	req.onreadystatechange = function () {
		if (req.readyState != 4) return;
		if (req.status != 200 && req.status != 304) {
//			alert('HTTP error ' + req.status);
			return;
		}
		callback(req);
	}
	if (req.readyState == 4) return;
	req.send(postData);
}

var XMLHttpFactories = [
	function () {return new XMLHttpRequest()},
	function () {return new ActiveXObject("Msxml2.XMLHTTP")},
	function () {return new ActiveXObject("Msxml3.XMLHTTP")},
	function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function createXMLHTTPObject() {
	var xmlhttp = false;
	for (var i=0;i<XMLHttpFactories.length;i++) {
		try {
			xmlhttp = XMLHttpFactories[i]();
		}
		catch (e) {
			continue;
		}
		break;
	}
	return xmlhttp;
}


