function dims_openwin(url,w,h)
{
	dimswin=window.open(url,'dimswin','width='+w+', height='+h+', status=no, menubar=no, toolbar=no, scrollbars=yes, resizable=yes, screenY=20, screenX=20');
	dimswin.moveTo((screen.width-w)/2,(screen.height-(h+60))/2);
	dimswin.focus();
}


function dims_confirmform(form, message)
{
	if (confirm(message)) form.submit();
}

function dims_confirmlink(link, message)
{
	if (confirm(message)) location.href=link;
}


function dims_switchstyle(obj, opacity)
{
	obj.style.filter='alpha(opacity:'+(opacity)+')';
	obj.style.MozOpacity = opacity/100;
}

function dims_validatefield(field_label, field_object, field_type)
{
	var ok = true;
	var i;
	var nbpoint = 0;
	var msg = new String();
	var reg = new RegExp("<FIELD_LABEL>","gi");

	field_value = field_object.value;

	if (field_type == 'email')
	{

		var email = field_value;
		var aroba = email.indexOf("@");

		if (aroba == -1)
		{
			ok = false;
			msg = lstmsg[0];
		}

		if (ok)
		{
			var point = email.indexOf(".", aroba);
			if ((point == -1) || (point == (aroba + 1)))
			{
				ok=false;
				msg = lstmsg[1];
			}
		}

		if (ok)
		{
			var point = email.lastIndexOf(".");
			if ((point + 1) == email.length)
			{
				ok = false;
				msg = lstmsg[2];
			}
		}

		if (ok)
		{
			point = email.indexOf("..")
			if (point != -1)
			{
				ok = false;
				msg = lstmsg[3];
			}
		}
	}

	if (field_type == 'string')
	{
		if (field_value.length==0)
		{
			ok = false;
			msg = lstmsg[4];
		}
	}

	if (field_type == 'int')
	{
		if (field_value.length==0 || field_value.length>12) ok = false;
		for (i=0;i<field_value.length;i++)
		{
			if (field_value.charAt(i)<'0' || field_value.charAt(i)>'9') ok = false;
		}
		if (!ok) msg = lstmsg[5];
	}

	if (field_type == 'float')
	{
		if (field_value.length==0) ok = false;
		for (i=0;i<field_value.length;i++)
		{
			if (field_value.charAt(i)=='.') nbpoint++;
			if (field_value.charAt(i)<'0' || field_value.charAt(i)>'9') ok = false;
		}
		if (nbpoint>1) ok = false;

		if (!ok) msg = lstmsg[6];
	}

	if (field_type == 'date')
	{
		if (field_value.length!=10) ok = false;
		else
		{
			j=field_value.substring(0,2);
			m=field_value.substring(3,5);
			a=field_value.substring(6,10);

			madate=new Date(a,m,j);
			if (madate=="NaN" || field_value.charAt(2)!='/' || field_value.charAt(5)!='/') ok = false;
		}
		if (!ok) msg = lstmsg[7];
	}

	if (field_type == 'time')
	{
		if (field_value.length!=5) ok = false;
		else
		{
			h=field_value.substring(0,2);
			m=field_value.substring(3,5);
			if (parseInt(h)<0 || parseInt(h)>23) ok = false;
			if (parseInt(m)<0 || parseInt(m)>59) ok = false;
			madate=new Date(01,01,2000,h,m);
			if (madate=="NaN" || field_value.charAt(2)!=':') ok = false;
		}
		if (!ok) msg = lstmsg[8];
	}

	if (field_type=='emptydate')
	{
		if (field_value.length!=0)
		{
			if (field_value.length!=10) ok = false;
			else
			{
				j=field_value.substring(0,2);
				m=field_value.substring(3,5);
				a=field_value.substring(6,10);
				madate=new Date(a,m,j);
				if (madate=="NaN" || field_value.charAt(2)!='/' || field_value.charAt(5)!='/') ok = false;
			}
			if (!ok) msg = lstmsg[7];
		}
	}

	if (field_type=='emptytime')
	{
		if (field_value.length!=0)
		{
			if (field_value.length!=5) ok = false;
			else
			{
				h=field_value.substring(0,2);
				m=field_value.substring(3,5);
				if (parseInt(h)<0 || parseInt(h)>23) ok = false;
				if (parseInt(m)<0 || parseInt(m)>59) ok = false;
				madate=new Date(01,01,2000,h,m);
				if (madate=="NaN" || field_value.charAt(2)!=':') ok = false;
			}
			if (!ok) msg = lstmsg[8];
		}
	}

	if (!ok)
	{
		alert(msg.replace(reg,field_label));
		field_object.style.background = error_bgcolor;
		field_object.focus();
	}

	return (ok);
}

function dims_openwin(url,w,h,name)
{
   var top = (screen.height-(h+60))/2;
   var left = (screen.width-w)/2;

   if(name == '') name = 'dimswin';
   dimswin=window.open(url,name,'top='+top+',left='+left+',width='+w+', height='+h+', status=no, menubar=no, toolbar=no, scrollbars=yes, resizable=yes, screenY=20, screenX=20');
   dimswin.focus();
}

function dims_confirmform(form, message)
{
	if (confirm(message)) form.submit();
}

function dims_confirmlink(link, message)
{
	if (confirm(message)) location.href=link;
}


function dims_switchstyle(obj, opacity)
{
	obj.style.filter='alpha(opacity:'+(opacity)+')';
	obj.style.MozOpacity = opacity/100;
}


/**
 * A class to parse color values
 * @author Stoyan Stefanov <sstoo@gmail.com>
 * @link   http://www.phpied.com/rgb-color-parser-in-javascript/
 * @license Use it if you like it
 */

function dims_rgbcolor(color_string)
{
    this.ok = false;

    // strip any leading #
    if (color_string.charAt(0) == '#') { // remove # if any
        color_string = color_string.substr(1,6);
    }

    color_string = color_string.replace(/ /g,'');
    color_string = color_string.toLowerCase();

    // before getting into regexps, try simple matches
    // and overwrite the input
    var simple_colors = {
        aliceblue: 'f0f8ff',
        antiquewhite: 'faebd7',
        aqua: '00ffff',
        aquamarine: '7fffd4',
        azure: 'f0ffff',
        beige: 'f5f5dc',
        bisque: 'ffe4c4',
        black: '000000',
        noir: '000000',
        blanchedalmond: 'ffebcd',
        blue: '0000ff',
        bleu: '0000ff',
        blueviolet: '8a2be2',
        brown: 'a52a2a',
        burlywood: 'deb887',
        cadetblue: '5f9ea0',
        chartreuse: '7fff00',
        chocolate: 'd2691e',
        coral: 'ff7f50',
        cornflowerblue: '6495ed',
        cornsilk: 'fff8dc',
        crimson: 'dc143c',
        cyan: '00ffff',
        darkblue: '00008b',
        darkcyan: '008b8b',
        darkgoldenrod: 'b8860b',
        darkgray: 'a9a9a9',
        darkgreen: '006400',
        darkkhaki: 'bdb76b',
        darkmagenta: '8b008b',
        darkolivegreen: '556b2f',
        darkorange: 'ff8c00',
        darkorchid: '9932cc',
        darkred: '8b0000',
        darksalmon: 'e9967a',
        darkseagreen: '8fbc8f',
        darkslateblue: '483d8b',
        darkslategray: '2f4f4f',
        darkturquoise: '00ced1',
        darkviolet: '9400d3',
        deeppink: 'ff1493',
        deepskyblue: '00bfff',
        dimgray: '696969',
        dodgerblue: '1e90ff',
        feldspar: 'd19275',
        firebrick: 'b22222',
        floralwhite: 'fffaf0',
        forestgreen: '228b22',
        fuchsia: 'ff00ff',
        gainsboro: 'dcdcdc',
        ghostwhite: 'f8f8ff',
        gold: 'ffd700',
        goldenrod: 'daa520',
        gray: '808080',
        gris: '808080',
        green: '008000',
        vert: '008000',
        greenyellow: 'adff2f',
        honeydew: 'f0fff0',
        hotpink: 'ff69b4',
        indianred : 'cd5c5c',
        indigo : '4b0082',
        ivory: 'fffff0',
        khaki: 'f0e68c',
        lavender: 'e6e6fa',
        lavenderblush: 'fff0f5',
        lawngreen: '7cfc00',
        lemonchiffon: 'fffacd',
        lightblue: 'add8e6',
        lightcoral: 'f08080',
        lightcyan: 'e0ffff',
        lightgoldenrodyellow: 'fafad2',
        lightgrey: 'd3d3d3',
        lightgreen: '90ee90',
        lightpink: 'ffb6c1',
        lightsalmon: 'ffa07a',
        lightseagreen: '20b2aa',
        lightskyblue: '87cefa',
        lightslateblue: '8470ff',
        lightslategray: '778899',
        lightsteelblue: 'b0c4de',
        lightyellow: 'ffffe0',
        lime: '00ff00',
        limegreen: '32cd32',
        linen: 'faf0e6',
        magenta: 'ff00ff',
        maroon: '800000',
        mediumaquamarine: '66cdaa',
        mediumblue: '0000cd',
        mediumorchid: 'ba55d3',
        mediumpurple: '9370d8',
        mediumseagreen: '3cb371',
        mediumslateblue: '7b68ee',
        mediumspringgreen: '00fa9a',
        mediumturquoise: '48d1cc',
        mediumvioletred: 'c71585',
        midnightblue: '191970',
        mintcream: 'f5fffa',
        mistyrose: 'ffe4e1',
        moccasin: 'ffe4b5',
        navajowhite: 'ffdead',
        navy: '000080',
        oldlace: 'fdf5e6',
        olive: '808000',
        olivedrab: '6b8e23',
        orange: 'ffa500',
        orangered: 'ff4500',
        orchid: 'da70d6',
        palegoldenrod: 'eee8aa',
        palegreen: '98fb98',
        paleturquoise: 'afeeee',
        palevioletred: 'd87093',
        papayawhip: 'ffefd5',
        peachpuff: 'ffdab9',
        peru: 'cd853f',
        pink: 'ffc0cb',
        rose: 'ffc0cb',
        plum: 'dda0dd',
        powderblue: 'b0e0e6',
        purple: '800080',
        red: 'ff0000',
        rouge: 'ff0000',
        rosybrown: 'bc8f8f',
        royalblue: '4169e1',
        saddlebrown: '8b4513',
        salmon: 'fa8072',
        sandybrown: 'f4a460',
        seagreen: '2e8b57',
        seashell: 'fff5ee',
        sienna: 'a0522d',
        silver: 'c0c0c0',
        skyblue: '87ceeb',
        slateblue: '6a5acd',
        slategray: '708090',
        snow: 'fffafa',
        springgreen: '00ff7f',
        steelblue: '4682b4',
        tan: 'd2b48c',
        teal: '008080',
        thistle: 'd8bfd8',
        tomato: 'ff6347',
        turquoise: '40e0d0',
        violet: 'ee82ee',
        violetred: 'd02090',
        wheat: 'f5deb3',
        white: 'ffffff',
        blanc: 'ffffff',
        whitesmoke: 'f5f5f5',
        yellow: 'ffff00',
        jaune: 'ffff00',
        yellowgreen: '9acd32'
    };
    for (var key in simple_colors) {
        if (color_string == key) {
            color_string = simple_colors[key];
        }
    }
    // emd of simple type-in colors

    // array of color definition objects
    var color_defs = [
        {
            re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,
            example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],
            process: function (bits){
                return [
                    parseInt(bits[1]),
                    parseInt(bits[2]),
                    parseInt(bits[3])
                ];
            }
        },
        {
            re: /^(\w{2})(\w{2})(\w{2})$/,
            example: ['#00ff00', '336699'],
            process: function (bits){
                return [
                    parseInt(bits[1], 16),
                    parseInt(bits[2], 16),
                    parseInt(bits[3], 16)
                ];
            }
        },
        {
            re: /^(\w{1})(\w{1})(\w{1})$/,
            example: ['#fb0', 'f0f'],
            process: function (bits){
                return [
                    parseInt(bits[1] + bits[1], 16),
                    parseInt(bits[2] + bits[2], 16),
                    parseInt(bits[3] + bits[3], 16)
                ];
            }
        }
    ];

    // search through the definitions to find a match
    for (var i = 0; i < color_defs.length; i++) {
        var re = color_defs[i].re;
        var processor = color_defs[i].process;
        var bits = re.exec(color_string);
        if (bits) {
            channels = processor(bits);
            this.r = channels[0];
            this.g = channels[1];
            this.b = channels[2];
            this.ok = true;
        }

    }

    // validate/cleanup values
    this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);
    this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);
    this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);

    // some getters
    this.toRGB = function () {
        return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';
    }
    this.toHex = function () {
        var r = this.r.toString(16);
        var g = this.g.toString(16);
        var b = this.b.toString(16);
        if (r.length == 1) r = '0' + r;
        if (g.length == 1) g = '0' + g;
        if (b.length == 1) b = '0' + b;
        return '#' + r + g + b;
    }

    // help
    this.getHelpXML = function () {

        var examples = new Array();
        // add regexps
        for (var i = 0; i < color_defs.length; i++) {
            var example = color_defs[i].example;
            for (var j = 0; j < example.length; j++) {
                examples[examples.length] = example[j];
            }
        }
        // add type-in colors
        for (var sc in simple_colors) {
            examples[examples.length] = sc;
        }

        var xml = document.createElement('ul');
        xml.setAttribute('id', 'rgbcolor-examples');
        for (var i = 0; i < examples.length; i++) {
            try {
                var list_item = document.createElement('li');
                var list_color = new dims_rgbcolor(examples[i]);
                var example_div = document.createElement('div');
                example_div.style.cssText =
                        'margin: 3px; '
                        + 'border: 1px solid black; '
                        + 'background:' + list_color.toHex() + '; '
                        + 'color:' + list_color.toHex()
                ;
                example_div.appendChild(document.createTextNode('test'));
                var list_item_value = document.createTextNode(
                    ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()
                );
                list_item.appendChild(example_div);
                list_item.appendChild(list_item_value);
                xml.appendChild(list_item);

            } catch(e){}
        }
        return xml;

    }

}


function dims_validatefield(field_label, field_object, field_type)
{
	var ok = true;
	var i;
	var nbpoint = 0;
	var msg = new String();
	var reg = new RegExp("<FIELD_LABEL>","gi");

	if (field_object)
	{
		field_value = field_object.value;
		if (field_type == 'selected')
		{
			msg = lstmsg[9];
			ok = (field_object.selectedIndex > 0);
		}

		if (field_type == 'checked')
		{
			msg = lstmsg[9];
			ok = false;
			for (c = 0; c < field_object.length; c++)
			{
				if (field_object[c].checked) ok = true;
			}
		}

		if (field_type == 'email')
		{

			var email = field_value;
			var aroba = email.indexOf("@");

			if (aroba == -1)
			{
				ok = false;
				msg = lstmsg[0];
			}

			if (ok)
			{
				var point = email.indexOf(".", aroba);
				if ((point == -1) || (point == (aroba + 1)))
				{
					ok=false;
					msg = lstmsg[1];
				}
			}

			if (ok)
			{
				var point = email.lastIndexOf(".");
				if ((point + 1) == email.length)
				{
					ok = false;
					msg = lstmsg[2];
				}
			}

			if (ok)
			{
				point = email.indexOf("..")
				if (point != -1)
				{
					ok = false;
					msg = lstmsg[3];
				}
			}
		}

		if (field_type == 'emptyemail')
		{
			if (field_value.length!=0)
			{
				var email = field_value;
				var aroba = email.indexOf("@");

				if (aroba == -1)
				{
					ok = false;
					msg = lstmsg[0];
				}

				if (ok)
				{
					var point = email.indexOf(".", aroba);
					if ((point == -1) || (point == (aroba + 1)))
					{
						ok=false;
						msg = lstmsg[1];
					}
				}

				if (ok)
				{
					var point = email.lastIndexOf(".");
					if ((point + 1) == email.length)
					{
						ok = false;
						msg = lstmsg[2];
					}
				}

				if (ok)
				{
					point = email.indexOf("..")
					if (point != -1)
					{
						ok = false;
						msg = lstmsg[3];
					}
				}
			}
		}

		if (field_type == 'color')
		{
			var color = new dims_rgbcolor(field_value);
			if (!color.ok)
			{
				ok = false;
				msg = lstmsg[10];
				alert('ici');
			}
		}

		if (field_type == 'string')
		{
			if (field_value.length==0)
			{
				ok = false;
				msg = lstmsg[4];
			}
		}

		if (field_type == 'int')
		{
			if (field_value.length==0 || field_value.length>12) ok = false;
			for (i=0;i<field_value.length;i++)
			{
				if (field_value.charAt(i)<'0' || field_value.charAt(i)>'9') ok = false;
			}
			if (!ok) msg = lstmsg[5];
		}

		if (field_type == 'emptyint')
		{
			if (field_value.length>12) ok = false;
			for (i=0;i<field_value.length;i++)
			{
				if (field_value.charAt(i)<'0' || field_value.charAt(i)>'9') ok = false;
			}
			if (!ok) msg = lstmsg[5];
		}

		if (field_type == 'float')
		{
			if (field_value.length==0) ok = false;
			for (i=0;i<field_value.length;i++)
			{
				if (field_value.charAt(i)=='.') nbpoint++;
				if (field_value.charAt(i)<'0' || field_value.charAt(i)>'9') ok = false;
			}
			if (nbpoint>1) ok = false;

			if (!ok) msg = lstmsg[6];
		}

		if (field_type == 'emptyfloat')
		{
			for (i=0;i<field_value.length;i++)
			{
				if (field_value.charAt(i)=='.') nbpoint++;
				if (field_value.charAt(i)<'0' || field_value.charAt(i)>'9') ok = false;
			}
			if (nbpoint>1) ok = false;

			if (!ok) msg = lstmsg[6];
		}

		if (field_type == 'date')
		{
			var thedate = field_value.split("/");
			if (thedate.length != 3 || isNaN(parseInt(thedate[0])) || isNaN(parseInt(thedate[1])) || isNaN(parseInt(thedate[2]))) thedate = field_value.split("-");
			if (thedate.length != 3 || isNaN(parseInt(thedate[0])) || isNaN(parseInt(thedate[1])) || isNaN(parseInt(thedate[2]))) thedate = field_value.split(":");
			if (thedate.length != 3 || isNaN(parseInt(thedate[0])) || isNaN(parseInt(thedate[1])) || isNaN(parseInt(thedate[2]))) ok = false;
			if (ok)
			{
				var datetotest = new Date(eval(thedate[2]),eval(thedate[1])-1,eval(thedate[0]));
				var year = datetotest.getYear()
				if ((Math.abs(year)+"").length < 4) year = year + 1900
				ok = ((datetotest.getDate() == eval(thedate[0])) && (datetotest.getMonth() == eval(thedate[1])-1) && (year == eval(thedate[2])));
			}
			if (!ok) msg = lstmsg[7];
		}

		if (field_type == 'time')
		{
			if (field_value.length!=5) ok = false;
			else
			{
				h=field_value.substring(0,2);
				m=field_value.substring(3,5);
				if (parseInt(h)<0 || parseInt(h)>23) ok = false;
				if (parseInt(m)<0 || parseInt(m)>59) ok = false;
				madate=new Date(01,01,2000,h,m);
				if (madate=="NaN" || field_value.charAt(2)!=':') ok = false;
			}
			if (!ok) msg = lstmsg[8];
		}

		if (field_type=='emptydate')
		{
			if (field_value.length!=0)
			{
				var thedate = field_value.split("/");
				if (thedate.length != 3 || isNaN(parseInt(thedate[0])) || isNaN(parseInt(thedate[1])) || isNaN(parseInt(thedate[2]))) thedate = field_value.split("-");
				if (thedate.length != 3 || isNaN(parseInt(thedate[0])) || isNaN(parseInt(thedate[1])) || isNaN(parseInt(thedate[2]))) thedate = field_value.split(":");
				if (thedate.length != 3 || isNaN(parseInt(thedate[0])) || isNaN(parseInt(thedate[1])) || isNaN(parseInt(thedate[2]))) ok = false;
				if (ok)
				{
					var datetotest = new Date(eval(thedate[2]),eval(thedate[1])-1,eval(thedate[0]));
					var year = datetotest.getYear()
					if ((Math.abs(year)+"").length < 4) year = year + 1900
					ok = ((datetotest.getDate() == eval(thedate[0])) && (datetotest.getMonth() == eval(thedate[1])-1) && (year == eval(thedate[2])));
				}
				if (!ok) msg = lstmsg[7];
			}
		}

		if (field_type=='emptytime')
		{
			if (field_value.length!=0)
			{
				if (field_value.length!=5) ok = false;
				else
				{
					h=field_value.substring(0,2);
					m=field_value.substring(3,5);
					if (parseInt(h)<0 || parseInt(h)>23) ok = false;
					if (parseInt(m)<0 || parseInt(m)>59) ok = false;
					madate=new Date(01,01,2000,h,m);
					if (madate=="NaN" || field_value.charAt(2)!=':') ok = false;
				}
				if (!ok) msg = lstmsg[8];
			}
		}
	}
	else
	{
		ok = false;
	}

	if (!ok)
	{
		alert(msg.replace(reg,field_label));
		if (field_type != 'checked')
		{
			field_object.style.background = error_bgcolor;
			field_object.focus();
		}
	}

	return (ok);
}

function dims_getelem(elem, doc)
{
	if (!doc) doc = document;
	return (doc.getElementById) ? doc.getElementById(elem) : eval("document.all['"+dims_addslashes(elem)+"']");
}


/* declaration de variables permettant la maj de contenu dynamique */
var tabxmlarg = new Array();
var tabxmlresult = new Array();
var nbxmlarg=0;
var modexmlarg=0;
var xmlfinished=0;

function getHTTPObject()
{
	var xmlhttp = false;

	/*@cc_on
	@if (@_jscript_version >= 5)
	try
	{
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
		try
		{
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (E)
		{
			xmlhttp = false;
		}
	}
	@else
	xmlhttp = false;
	@end @*/

	/* on essaie de créer l'objet si ce n'est pas déjà fait */
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
	{
		try
		{
			xmlhttp = new XMLHttpRequest();
		}
		catch (e)
		{
			xmlhttp = false;
		}
	}

	if (xmlhttp)
	{
		/* on définit ce qui doit se passer quand la page répondra */
		xmlhttp.onreadystatechange=function()
		{
			if (xmlhttp.readyState == 4) /* 4 : état "complete" */
			{

				if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
				{
					/*
					Traitement de la réponse.
					Ici on affiche la réponse dans une boîte de dialogue.
					*/
					var tabxmlvalue = new Array();
					var result= xmlhttp.responseText;
					//alert(result);
					tabxmlvalue=result.split("|");
					for(i=0;i<nbxmlarg;i++)
					{
						if (modexmlarg == 0)
						{
							document.getElementById(tabxmlarg[i]).innerHTML=tabxmlvalue[i];
						}
						else
						{
							tabxmlresult[i]=tabxmlvalue[i];
						}
					}
				}
			}
		}
	}

	return xmlhttp;
}

/**
  * Envoie des données à l'aide d'XmlHttpRequest?
  * @param string methode d'envoi ['GET'|'POST']
  * @param string url
  * @param string données à envoyer sous la forme var1=value1&var2=value2...
  */
function sendData(method, url, data)
{
    var xmlhttp = getHTTPObject();

    if (!xmlhttp)
    {
        return false;
    }

    if(method == "GET")
	{
		if(data == 'null')
		{
			xmlhttp.open("GET", url, true); /* ouverture asynchrone */
			xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=ISO-8859-15');
		}
		else
		{
			xmlhttp.open("GET", url+"?"+data, true);
			xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=ISO-8859-15');
		}
		xmlhttp.send(null);
	}
	else if(method == "POST")
	{
		xmlhttp.open("POST", url, true); /* ouverture asynchrone */
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=ISO-8859-15');
		xmlhttp.send(data);
	}
	return true;
}

function dims_getxmlhttp_test(script,params,mode)
{
	modexmlarg = mode;
	xmlfinished = 0;
	nbxmlarg = dims_getxmlhttp.arguments.length-3;

	for(i=0;i<nbxmlarg;i++) tabxmlarg[i]=dims_getxmlhttp.arguments[i+3];

	return !sendData(
		'GET',script,
		params
	);
}

function dims_getxmlhttp(url,op,params)
{
	mode=0;
	var args='xmlhttp=1&op='+op+params;
	modexmlarg=mode;
	//alert(mode);
	xmlfinished=0;
	nbxmlarg=dims_getxmlhttp.arguments.length-3;

	for(i=0;i<nbxmlarg;i++)
	{
		tabxmlarg[i]=dims_getxmlhttp.arguments[i+3];
	}

	return !sendData(
		'GET',url,
		args
	);
}

function dims_gethttpobject(callback)
{
	var xmlhttp = false;

	/*@cc_on
	@if (@_jscript_version >= 5)
	try
	{
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
		try
		{
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (E)
		{
			xmlhttp = false;
		}
	}
	@else
	xmlhttp = false;
	@end @*/

	/* on essaie de créer l'objet si ce n'est pas déjà fait */
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
	{
		try
		{
			xmlhttp = new XMLHttpRequest();
		}
		catch (e)
		{
			xmlhttp = false;
		}
	}

	return xmlhttp;
}

/**
  * Envoie des données à l'aide d'XmlHttpRequest?
  * @param string methode d'envoi ['GET'|'POST']
  * @param string url
  * @param string données à envoyer sous la forme var1=value1&var2=value2...
  */
function dims_sendxmldata(method, url, data, xmlhttp, asynchronous)
{
    if (!xmlhttp)
    {
        return false;
    }

    if(method == "GET")
	{
		if(data == 'null')
		{
			xmlhttp.open("GET", url, asynchronous);
			xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=ISO-8859-15');
		}
		else
		{
			xmlhttp.open("GET", url+"?"+data, asynchronous);
			xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=ISO-8859-15');
		}
		xmlhttp.send(null);
	}
	else if(method == "POST")
	{
		xmlhttp.open("POST", url, asynchronous);
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=ISO-8859-15');
		xmlhttp.send(data);
	}
	return true;
}

function dims_xmlhttprequest(url, data, asynchronous, getxml)
{
	if (isNaN(asynchronous)) asynchronous = false;
	if (isNaN(getxml)) getxml = false;

	xmlhttp = dims_gethttpobject();
	dims_sendxmldata('GET', url, data, xmlhttp, asynchronous);

	// if asynchronous = false => return request content
	if (getxml) return(xmlhttp.responseXML);
	else return(xmlhttp.responseText);
}


function dims_xmlhttprequest_tofunction(url, data, callback, ticket, getxml)
{
    var xmlhttp = dims_gethttpobject();

	if (isNaN(getxml)) getxml = false;

	if (xmlhttp)
	{
		/* on définit ce qui doit se passer quand la page répondra */
		xmlhttp.onreadystatechange=function()
		{
			if (xmlhttp.readyState == 4) /* 4 : état "complete" */
			{
				if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
				{
					if (getxml) callback(xmlhttp.responseXML,ticket);
					else callback(xmlhttp.responseText,ticket);
				}
			}
		}
	}
	return !dims_sendxmldata('GET', url, data, xmlhttp, true);
}

function dims_xmlhttprequest_todiv(url, data, sep)
{
    var xmlhttp = dims_gethttpobject();

	if (xmlhttp)
	{
		args = dims_xmlhttprequest_todiv.arguments;

		/* on définit ce qui doit se passer quand la page répondra */
		xmlhttp.onreadystatechange=function()
		{
			if (xmlhttp.readyState == 4) /* 4 : état "complete" */
			{
				if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
				{
					var tabxmlvalue = new Array();
					var result= xmlhttp.responseText;

					if (sep == '') tabxmlvalue[0] = result;
					else tabxmlvalue=result.split(sep);
					for(i=0;i<args.length-3;i++)
					{
						if (tabxmlvalue[i]) dims_getelem(args[i+3]).innerHTML = tabxmlvalue[i];
						else dims_getelem(args[i+3]).innerHTML = '';
					}
				}
			}
		}
	}
	return !dims_sendxmldata('GET', url, data, xmlhttp, true);
}

var	timer_started = false;
var popup_displayed = false;
var	posx = 0;
var	posy = 0;
var	msg = 'empty';

function dims_showpopup_delayed(w) {
	if (timer_started) {
		w = parseInt(w);
		var dims_popup = dims_getelem('dims_popup');

		with (dims_popup.style) {
			display = 'none';
			//dims_popup.innerHTML = msg+' '+posx+','+posy;
			dims_popup.innerHTML = msg;

			tmpleft = parseInt(posx) + 20;
			tmptop = parseInt(posy);

			if (w > 0) width = w;
			else w = parseInt(dims_popup.offsetWidth);

			if (20 + w + parseInt(tmpleft) > parseInt(document.body.offsetWidth)) {
				tmpleft = parseInt(tmpleft) - w - 40;
			}

			left = tmpleft+'px';
			top = tmptop+'px';
			display = 'block';
			visibility = 'visible';
		}
		popup_displayed = true;
	}
}

function dims_showpopup(message, w, e, origine) {
	msg = message;
	if (w == '') w = '';
	if (!origine) origine = '';
	if (!e) e = window.event;

	if (e.pageX || e.pageY)	{
		posx = e.pageX;
		posy = e.pageY;
	} else if (e.clientX || e.clientY) {
		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;
	}

	if (origine == 'click') {
		timer_started = true;
		dims_showpopup_delayed(w);
	} else {
		if (!timer_started) {
			timer_started = true;
			setTimeout("dims_showpopup_delayed(" + w + ")", 1000 * timerdelay);
		}
		if (popup_displayed) dims_showpopup_delayed(w);
	}

}

function dims_movepopup(e) {
	if (!e) e = window.event;

	if (e.pageX || e.pageY)	{
		posx = e.pageX;
		posy = e.pageY;
	} else if (e.clientX || e.clientY) {
		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;
	}
	if (popup_displayed) dims_showpopup_delayed(0);
}

function dims_hidepopup() {
	timer_started = false;
	popup_displayed = false;

	var dims_popup = (document.getElementById) ? document.getElementById('dims_popup') : eval("document.all['dims_popup']");
	dims_popup.innerHTML = '';
	with (dims_popup.style) {
		display = 'none';
		visibility = 'hidden';
	}
}

function dims_checkall(form, mask, value, byid) {
	var len = form.elements.length;
	var reg = new RegExp(mask,"g");

	if (isNaN(byid)) byid = false;

	for (var i = 0; i < len; i++) {
		var e = form.elements[i];
		if (byid) { if (e.id.match(reg)) e.checked = value; }
		else if (e.name.match(reg)) e.checked = value;
	}
}

