﻿
var CWS_sOnLoad = '';
var CWS_sOnUnload = '';
var CWS_sOnResize = '';
var CWS_bUnload = true;
var CWS_xmlResponse = null;

function CWS_onResize() { eval(CWS_sOnResize); }

/* Helpers */

// Css
function changeCssRule(sCssName, sCssRule, sStyle, sValue) {

	aCss = document.styleSheets;
	if (aCss == null) return;

	c = 0;
	while (c < aCss.length) {
		if (aCss[c].href.indexOf(sCssName) != -1) {
			aRules = aCss[c].cssRules;
			if (aRules == null) aRules = aCss[c].rules;
			if (aRules == null) return;

			r = 0;
			while (r < aRules.length) {
				if (aRules[r].selectorText.indexOf(sCssRule) != -1) {
					aRules[r].style.setProperty(sStyle, sValue, null);

					return;
				}

				r++;
			}

			if (aCss[c].addRule) aCss[c].addRule(sCssRule, sStyle + ': ' + sValue);
			else aCss[c].insertRule(sCssRule + '{' + sStyle + ': ' + sValue + ';}', aRules.length);

			return;
		}

		c++;
	}
}

function getStyle(oObj, styleProp)
{
	var sResult = null;

	if (oObj.currentStyle) sResult = oObj.currentStyle[styleProp];
	else if (window.getComputedStyle) sResult = document.defaultView.getComputedStyle(oObj, null).getPropertyValue(styleProp);

	if (sResult == null) sResult = "0";

	return sResult;
}

function getCSSProperty(mixed, sProperty)
{

	oNode = (typeof mixed == "object") ? mixed : document.getElementById(mixed);

	if (document.defaultView)
	{
		return document.defaultView.getComputedStyle(oNode, null).getPropertyValue(sProperty);
	}
	else if (oNode.currentStyle)
	{
		sProperty = sProperty.replace(/\-(\w)/g, function (m, c) { return c.toUpperCase(); });
		return oNode.currentStyle[sProperty];
	}
	else
	{
		return null;
	}
}

// Metrics
function ieGetCoords(elt)
{
	var coords = elt.getBoundingClientRect();
	var border = getCSSProperty(document.getElementsByTagName('HTML')[0], 'border-width');
	var border = (border == 'medium') ? 2 : parseInt(border);

	coords.left += Math.max(elt.ownerDocument.documentElement.scrollLeft, elt.ownerDocument.body.scrollLeft) - border;
	coords.top += Math.max(elt.ownerDocument.documentElement.scrollTop, elt.ownerDocument.body.scrollTop) - border;

	return coords;
}

function getElementCoords(element, eltReferant)
{

	var coords = { left: 0, top: 0 };

	// IE pour résoudre le problème des marges (IE comptabilise dans offsetLeft la propriété marginLeft).
	if (false && element.getBoundingClientRect)
	{

		coords = ieGetCoords(element);

		if (typeof (eltReferant) == 'object')
		{
			var coords2 = ieGetCoords(eltReferant);

			coords.left -= coords2.left;
			coords.top -= coords2.top;

			coords2 = null;
		}
	}
	// Les autres : récursivité sur offsetParent.
	else
	{

		while (element)
		{

			if (/^table$/i.test(element.tagName) && element.getElementsByTagName('CAPTION').length == 1 && getCSSProperty(element, 'position').toLowerCase() == 'relative')
			{
				coords.top += element.getElementsByTagName('CAPTION')[0].offsetHeight;
			}

			coords.left += element.offsetLeft;
			coords.top += element.offsetTop;
			element = element.offsetParent;

			if (typeof (eltReferant) == 'object' && element === eltReferant)
			{
				break;
			}
		}
	}

	return coords;
}

// Events
function CWS_OnMouseLeave(obj, evt)
{
	oParent = window.event ? evt.toElement : evt.relatedTarget;
	while (oParent != null)
	{
		if (oParent == obj) return false;
		oParent = oParent.parentNode;
	}

	return true;
}

// Dom
function CWS_GetParent(oNode, sNodeName, nLevel)
{
	while (oNode)
	{
		if (oNode.nodeName == sNodeName)
		{
			nLevel--;

			if (nLevel <= 0) return oNode;
		}

		oNode = oNode.parentNode;
	}
}

function CWS_GetChild(oNode, sNodeName, nLevel)
{
	var i;

	if (oNode)
	{
		for (i = 0; i < oNode.childNodes.length; i++)
		{
			if (oNode.childNodes[i].nodeName == sNodeName)
			{
				nLevel--;
				if (nLevel <= 0) return oNode.childNodes[i];
				else return CWS_GetChild(oNode.childNodes[i], sNodeName, nLevel - 1)
			}
		}
	}

	return null;
}

function CWS_GetNextNode(oNode)
{
	var sNodeName = oNode.nodeName;

	while (oNode)
	{
		oNode = oNode.nextSibling;
		if (oNode != null && oNode.nodeName == sNodeName) return oNode;
	}

	return null;
}

function CWS_GetFirstChild(oNode)
{
	for (i = 0; i < oNode.childNodes.length; i++)
	{
		if (oNode.childNodes[i].nodeName != '#text') return oNode.childNodes[i];
	}
}

function CWS_GetLastChild(oNode)
{
	for (i = oNode.childNodes.length - 1; i >= 0; i--)
	{
		if (oNode.childNodes[i].nodeName != '#text') return oNode.childNodes[i];
	}
}

function CWS_OpenWindow(ur)
{
	return CWS_OpenWindow(ur, 20, 20);
}

function CWS_OpenWindow(ur, nX, nY)
{
	return window.open(ur, '', 'width=' + nX + ',height=' + nY + ',scrollbars=yes,toolbar=no,menubar=no,location=no,resizable=yes,systembar=no');
}

function CWS_OpenViewWindow(ur)
{
	return CWS_OpenWindow(ur, 800, 600);
}

function CWS_OpenFixedWindow(ur)
{
	return CWS_OpenFixedWindow(ur, 100, 100);
}

function CWS_OpenFixedWindow(ur, nX, nY)
{
	return window.open(ur, '', 'width=' + nX + ',height=' + nY + ',scrollbars=no,toolbar=no,menubar=no,location=no,resizable=no,systembar=no');
}

function CWS_Toggle(sDivName, sImgName, sSrc1, sSrc2) {
	CWS_Toggle(sDivName, sImgName, sSrc1, sSrc2, false, '');
}

function CWS_Toggle(sDivName, sImgName, sSrc1, sSrc2, bSetCookie, sDisplay) {
	b = 0;
	if (sDisplay == null || sDisplay.length == 0) sDisplay = 'inline';

	if (document.getElementById(sDivName).style.display == 'none') {
		document.getElementById(sDivName).style.display = sDisplay;
		if (sImgName != null) document.getElementById(sImgName).src = sSrc1;
		b = 1;
	}
	else {
		document.getElementById(sDivName).style.display = 'none';
		if (sImgName != null) document.getElementById(sImgName).src = sSrc2;
	}

	if (bSetCookie) document.cookie = sDivName + "=" + b + ";expires=Thu, 31 Dec 2099 23:59:59 GMT";

	CWS_AutoResize();
}

function CWS_ShowPopmenu(sDivName) {
	oDiv = document.getElementById(sDivName);

	if (oDiv) {
		nPosLeft = oEvent.clientX - 12;
		nPosTop = oEvent.clientY - 12 + document.body.scrollTop;

		oParent = oDiv.offsetParent;
		while (oParent) {
			nPosLeft -= oParent.offsetLeft;
			nPosTop -= oParent.offsetTop;
			oParent = oParent.offsetParent;
		}

		oDiv.style.display = 'inline';
		oDiv.style.left = nPosLeft;
		oDiv.style.top = nPosTop;
		oDiv.scrollIntoView;

		oDiv.style.zIndex = 1000;
	}
}

function CWS_ShowObj(sObjId) {
	oObj = document.getElementById(sObjId);
	if (oObj != null) {
		oObj.style.display = 'inline';

		oDivs = oObj.getElementsByTagName('DIV');
		for (i = 0; i < oDivs.length; i++) {
			if (oDivs.item(i).getAttribute('id') != null) {
				if (oDivs.item(i).getAttribute('id').substr(0, 8) == 'cmsAjax_') eval(oDivs.item(i).getAttribute('id') + '_Load()');
			}
		}
	}
}

function CWS_HideObj(sObjId) {
	oObj = document.getElementById(sObjId);
	if (oObj != null) {
		oObj.style.display = 'none';
	}
}

function CWS_HidePopup(sName)
{
	if (sName == null) oPopup = oCWS_Popup;
	else oPopup = document.getElementById(sName);

	if (oPopup) oPopup.style.display = 'none';
}

function CWS_ShowPopup(sName, bCloseOnleave, bKeepOldPos)
{
	if (sName == null) sName = 'div_CWSPopup';

	oPopup = document.getElementById(sName);

	if (oPopup == null)
	{
		if (bCloseOnleave)
		{
			//	oPopup = document.createElement('DIV id="' + sName + '" onmouseleave="CWS_HidePopup(\'' + sName + '\');"');
			oPopup = document.createElement('DIV');
			oPopup.onmouseout = function () { CWS_HidePopup(sName); };
		}
		else oPopup = document.createElement('DIV');

		oPopup.setAttribute('id', sName);

		document.body.insertBefore(oPopup, null);
		oPopup.style.display = 'none';
		oPopup.style.position = 'absolute';
		oPopup.style.border = 'solid 1px #000000';
		oPopup.style.padding = '2px';
		oPopup.style.backgroundColor = '#E8E8E8';
		oPopup.style.filter = 'progid:DXImageTransform.Microsoft.Shadow(color=\'#808080\', Direction=135, Strength=5)';

		oPopup.style.left = CWS_curPosX - 10;
		oPopup.style.top = CWS_curPosY - 10;
	}

	if (oPopup)
	{
		oPopup.style.display = 'inline';
		if (!bKeepOldPos)
		{
			px = CWS_curPosX - 10;
			py = CWS_curPosY - 10;
			oParent = oPopup.offsetParent;
			while (oParent)
			{
				px -= oParent.offsetLeft;
				py -= oParent.offsetTop;
				oParent = oParent.offsetParent;
			}

			oPopup.style.left = px; //CWS_curPosX - 10;
			oPopup.style.top = py; //CWS_curPosY- 10;
		}
		oPopup.style.zIndex = 20;
		//	oPopup.scrollIntoView();

		Drag.init(oPopup);
	}

	return oPopup;
}

function CWS_HtmlDecode(sValue)
{
	s = sValue;
	if (s == null) return '';

	while (s.indexOf('&eacute;') != -1) s = s.replace('&eacute;', 'é');
	while (s.indexOf('&egrave;') != -1) s = s.replace('&egrave;', 'è');
	while (s.indexOf('&agrave;') != -1) s = s.replace('&agrave;', 'à');
	while (s.indexOf('&ccedil;') != -1) s = s.replace('&ccedil;', 'ç');
	while (s.indexOf('&acirc;') != -1) s = s.replace('&acirc;', 'â');
	while (s.indexOf('&ecirc;') != -1) s = s.replace('&ecirc;', 'ê');
	while (s.indexOf('&ucirc;') != -1) s = s.replace('&ucirc;', 'û');
	while (s.indexOf('&icirc;') != -1) s = s.replace('&icirc;', 'î');
	while (s.indexOf('&ocirc;') != -1) s = s.replace('&ocirc;', 'ô');
	while (s.indexOf('&ugrave;') != -1) s = s.replace('&ugrave;', 'ù');
	while (s.indexOf('&auml;') != -1) s = s.replace('&auml;', 'ä');
	while (s.indexOf('&euml;') != -1) s = s.replace('&euml;', 'ë');
	while (s.indexOf('&iuml;') != -1) s = s.replace('&iuml;', 'ï');
	while (s.indexOf('&ouml;') != -1) s = s.replace('&iuml;', 'ö');
	while (s.indexOf('\\r\\n') != -1) s = s.replace('\\r\\n', '\r\n');

	return s;
}

function CWS_Alert(sAlert) {

	if (sAlert.indexOf('[') == 0) sAlert = sAlert.substr(sAlert.indexOf(']') + 1);
	if (sAlert.indexOf('-DIV-') == 0) {
		oPopup = CWS_ShowPopup('Alert', false, true);
		oPopup.InnerHTML = sAlert.substr(5);
		return;
	}

	if (sAlert.indexOf('-WIN-') == 0) {
		CWS_OpenWindow(sAlert.substr(5), 700, 700);
		return;
	}

	if(document.getElementById('CWSAlert'))
	{
		document.getElementById('CWSAlertMsg').innerHTML = sAlert;
		document.getElementById('CWSAlert').style.display = 'block';
	}
	else
	{
		sAlert = CWS_HtmlDecode(sAlert);

		alert(sAlert);
	}
}

function CWS_GotoAnchor(sID) {
	sURL = window.location.href;
	if (sURL.indexOf('#') != -1) sURL = sURL.substring(0, sURL.indexOf('#'));

	window.location = sURL + '#' + sID;
}

// Others
function CWS_HTMLEncode(str)
{
	var div = document.createElement('div');
	var text = document.createTextNode(str);
	div.appendChild(text);
	return div.innerHTML;
}

function CWS_HTMLDecode(str)
{
	var div = document.createElement('div');
	div.innerHTML = str;
	if (div.firstChild) return div.firstChild.nodeValue;
	else return '';
}

function CWS_SetCookie(sName, sValue) {
	document.cookie = sName + "=" + sValue + ";path=/;expires=Thu, 31 Dec 2099 23:59:59 GMT";
	//	alert(document.cookie);
}

function CWS_SetCookieVolatile(sName, sValue) {
	document.cookie = sName + "=" + sValue + ";path=/";
	//	alert(document.cookie);
}

function CWS_GetCookie(sName) {
	//	alert(document.cookie);
	sCookies = '' + document.cookie + ';';
	s = 0;
	while (-1 != (e = sCookies.indexOf(';', s))) {
		sCookie = sCookies.substr(s, e - s);
		if (sCookie.indexOf('=') != -1) {
			sCookieName = sCookie.substr(0, sCookie.indexOf('=')).replace(' ', '');
			//	alert(sCookieName + ' ' + sName);
			if (sCookieName == sName) return sCookie.substr(sCookie.indexOf('=') + 1);
		}

		s = e + 1;
	}

	return '';
}

function CWS_Print(sParams) { CWS_Print(sParams, 520, 600); }
function CWS_Print(sParams, nWidth, nHeight)
{
	try
	{
		sLocation = '' + window.location;
		if (sLocation.indexOf('?') == -1) sLocation += '?bPrint=1';
		else sLocation += '&bPrint=1';
		if (sParams && sParams.length > 0) sLocation += '&' + sParams;

		CWS_OpenWindow(sLocation, nWidth, nHeight);
	}
	catch (e) { }
}

function CWS_HttpRequest(sURL, sPostData) {
	var xml_objet = false;

	while (sURL.indexOf('&amp;') != -1) sURL = sURL.replace('&amp;', '&');

	try { xml_objet = new ActiveXObject("Msxml2.XMLHTTP"); }
	catch (e) {
		try { xml_objet = new ActiveXObject("Microsoft.XMLHTTP"); }
		catch (E) { xml_objet = false; }
	}

	if (!xml_objet && typeof XMLHttpRequest != 'undefined') {
		try { xml_objet = new XMLHttpRequest(); }
		catch (e) { xml_objet = false; }
	}

	if (!xml_objet && window.createRequest) {
		try { xml_objet = window.createRequest(); }
		catch (e) { xml_objet = false; }
	}

	if (xml_objet) {
		if (sPostData != null && sPostData.length > 0) {
			xml_objet.open('POST', sURL, false);
			xml_objet.setRequestHeader('Cache-Control', 'no-cache');
			xml_objet.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
			xml_objet.setRequestHeader('Content-length', sPostData.length);
			xml_objet.setRequestHeader('Connection', 'close');
			xml_objet.send(sPostData);
		}
		else {
			xml_objet.open('GET', sURL, false);
			xml_objet.setRequestHeader('Cache-Control', 'no-cache');
			xml_objet.send(null);
		}

		if (xml_objet.readyState == 4) {
			return xml_objet.responseText;
			//	return xml_objet.responseXML;
		}
	}

	return '';
}

function CWS_IsOK(sXml) {
	if (sXml.indexOf('<STATUS>0</STATUS>') != -1) return true;
	else return false;
}

function CWS_Trim(sValue) {
	sValue = '' + sValue;

	while (sValue.length > 0 && sValue.substr(0, 1) == ' ') sValue = sValue.substr(1);
	while (sValue.length > 0 && sValue.substr(sValue.length - 1, 1) == ' ') sValue = sValue.substr(0, sValue.length - 1);

	return sValue;
}

function CWS_GetNodeValue(oXml, sName) {
	if (oXml.getElementsByTagName(sName).length > 0) {
		if (oXml.getElementsByTagName(sName)[0].childNodes.length > 0) return oXml.getElementsByTagName(sName)[0].childNodes[0].nodeValue;
	}

	return '';
}


function CWS_GetTagValue(sXml, sTagName, sDefault) {
	s = sXml.indexOf('<' + sTagName + '>');
	e = sXml.indexOf('</' + sTagName + '>');

	if (s != -1 && e > s) {
		s += 2 + sTagName.length;
		return sXml.substr(s, e - s);
	}
	else return sDefault;
}

function CWS_CancelBubble(evt) {
	var e = (window.event) ? window.event : evt;
	e.cancelBubble = true;
	return false;
}

function CWS_ShowWithTimer(oDiv) {
	if (oDiv == null) return;

	nTimerID = oDiv.getAttribute('TimerID');
	if (nTimerID != null) {
		window.clearTimeout(nTimerID);
		oDiv.removeAttribute('TimerID');
	}

	oDiv.style.display = 'inline';
}

function CWS_HideWithTimer(oDiv, nMilisec) {
	if (oDiv == null) return;

	nTimerID = oDiv.getAttribute('TimerID');
	if (nTimerID != null) {
		window.clearTimeout(nTimerID);
		oDiv.removeAttribute('TimerID');
	}

	sID = oDiv.getAttribute('id');
	nTimerID = window.setTimeout('CWS_Hide(\'' + sID + '\')', nMilisec);
	oDiv.setAttribute('TimerID', nTimerID);
}

function CWS_Hide(sID) {
	oDiv = document.getElementById(sID);
	if (oDiv == null) return;

	oDiv.style.display = 'none';
}

function CWS_URLEncode(sText) {
	return encodeURIComponent(sText);

	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" + 				// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" + // Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()"; 				// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	var plaintext = sText;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++) {
		var ch = plaintext.charAt(i);
		if (ch == " ") {
			encoded += "+"; 			// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
			encoded += ch;
		} else {
			var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
				alert("Unicode Character '"
                        + ch
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted.");
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for

	return encoded;
};

function CWS_URLDecode(sText) {
	// Replace + with ' '
	// Replace %xx with equivalent character
	// Put [ERROR] in output if %xx is invalid.
	var HEXCHARS = "0123456789ABCDEFabcdef";
	var encoded = sText;
	var plaintext = "";
	var i = 0;
	while (i < encoded.length) {
		var ch = encoded.charAt(i);
		if (ch == "+") {
			plaintext += " ";
			i++;
		} else if (ch == "%") {
			if (i < (encoded.length - 2)
					&& HEXCHARS.indexOf(encoded.charAt(i + 1)) != -1
					&& HEXCHARS.indexOf(encoded.charAt(i + 2)) != -1) {
				plaintext += unescape(encoded.substr(i, 3));
				i += 3;
			} else {
				alert('Bad escape combination near ...' + encoded.substr(i));
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
			plaintext += ch;
			i++;
		}
	} // while

	return plaintext;
};

function setInnerHTML(pDivObject, pHTML) {
	pDivObject.innerHTML = pHTML;

	var All = pDivObject.getElementsByTagName("*");
	for (var i = 0; i < All.length; i++) {
		All[i].id = All[i].getAttribute("id");
		All[i].name = All[i].getAttribute("name");
		//	All[i].className = All[i].getAttribute("class");
	}
	var AllScripts = pDivObject.getElementsByTagName("script");

	for (var i = AllScripts.length - 1; i >= 0; i--) {
		var s = AllScripts[i];
		var oScript = document.createElement("script");

		oScript.type = 'text/javascript';

		if (s.src && s.src != "") {
			oScript.src = s.src;
		}
		else {
			//	oScript.innerHTML = s.innerHTML;
			eval(s.innerHTML);
		}

		//	document.body.appendChild(oScript);

		//	pDivObject.removeChild(s);
	}
}

/* Forms */
function CWS_CheckDay(fname) {
	dd = eval('document.all.' + fname + '_DD');
	mm = eval('document.all.' + fname + '_MM');
	yyyy = eval('document.all.' + fname + '_YYYY');

	if (parseInt(dd.value) < 1) dd.value = 1;
	if (parseInt(dd.value) > 31) dd.value = 31;
	if (parseInt(dd.value) > 30 && (parseInt(mm.value) == 4 || parseInt(mm.value) == 6 || parseInt(mm.value) == 9 || parseInt(mm.value) == 11)) dd.value = 30;
	if (parseInt(dd.value) > 28 && parseInt(mm.value) == 2) {
		if (parseInt(yyyy.value) % 4 != 0 || parseInt(yyyy.value) == 2000) dd.value = 28;
		else dd.value = 29;
	}
}

function CWS_CheckMonth(fname) {
	mm = eval('document.all.' + fname + '_MM');

	if (parseInt(mm.value) < 1) mm.value = 1;
	if (parseInt(mm.value) > 12) mm.value = 12;

	CWS_CheckDay(fname);
}

function CWS_CheckYear(fname) {
	yyyy = eval('document.all.' + fname + '_YYYY');

	if (parseInt(yyyy.value) < 1900) yyyy.value = 1900 + parseInt(yyyy.value);
	if (parseInt(yyyy.value) < 1950) yyyy.value = 100 + parseInt(yyyy.value);
	if (parseInt(yyyy.value) > 2100) yyyy.value = 2100;

	CWS_CheckDay(fname);
}

function CWS_CheckHour(fname) {
	hh = eval('document.all.' + fname + '_HH');

	if (parseInt(hh.value) < 0) hh.value = 0;
	if (parseInt(hh.value) > 23) hh.value = 23;
}

function CWS_CheckMinute(fname) {
	nn = eval('document.all.' + fname + '_NN');

	if (parseInt(nn.value) < 0) nn.value = 0;
	if (parseInt(nn.value) > 59) nn.value = 59;
}

function CWS_CheckSeconde(fname) {
	ss = eval('document.all.' + fname + '_SS');

	if (parseInt(ss.value) < 0) ss.value = 0;
	if (parseInt(ss.value) > 59) ss.value = 59;
}

function CWS_GetSelectedIDs(oForm) {
	sIDs = '';

	for (i = 0; i < oForm.length; i++) {
		if (oForm.elements[i].getAttribute('name') == 'IDs' && oForm.elements[i].checked) {
			if (sIDs.length > 0) sIDs += ',';
			sIDs += oForm.elements[i].value;
		}
	}

	return sIDs;
}

function CWS_GetPostDataFromForm(oForm) {
	var sPostData = 'bAjax=1', sFieldValue = '';

	if (oForm) {
		for (i = 0; i < oForm.length; i++) {
			oField = oForm.elements[i];

			if (oField.getAttribute('type') == 'checkbox') {
				if (oField.checked) sFieldValue = oField.value; //'1';
				else sFieldValue = '0';

				sPostData += '&' + oField.name + '=' + CWS_URLEncode(sFieldValue);
			}
			else if (oField.getAttribute('type') == 'radio') {
				if (oField.length > 1) {
					for (j = 0; j < oField.length; j++) {
						if (oField[j].checked) {
							sFieldValue = oField[j].value;
							sPostData += '&' + oField.name + '=' + CWS_URLEncode(sFieldValue);
						}
					}
				}
				else {
					if (oField.checked) {
						sFieldValue = oField.value;
						sPostData += '&' + oField.name + '=' + CWS_URLEncode(sFieldValue);
					}
				}
			}
			else if (oField.nodeName == 'SELECT') {
				if (oField.selectedIndex >= 0) {
					sFieldValue = oField.options[oField.selectedIndex].value;
					sPostData += '&' + oField.name + '=' + CWS_URLEncode(sFieldValue);
				}
			}
			else {
				sFieldValue = oField.value;
				sPostData += '&' + oField.name + '=' + CWS_URLEncode(sFieldValue);
			}
		}
	}

	return sPostData;
}

function CWS_isValidEMail(string) {
	var first;
	var second;
	var last;

	if ((last = string.length - 1) < 4) return false;

	if (string.indexOf(' ') != -1) return false;
	if (string.indexOf('..') != -1) return false;
	if (string.indexOf('\'') != -1) return false;
	if (string.indexOf('"') != -1) return false;
	if (string.indexOf('&') != -1) return false;
	if (string.indexOf('|') != -1) return false;
	if (string.indexOf(';') != -1) return false;
	if (string.indexOf(',') != -1) return false;
	if (string.indexOf('£') != -1) return false;
	if (string.indexOf('+') != -1) return false;
	if (string.indexOf('%') != -1) return false;
	if (string.indexOf('?') != -1) return false;
	if (string.indexOf('/') != -1) return false;
	if (string.indexOf('=') != -1) return false;
	if (string.indexOf('µ') != -1) return false;
	if (string.indexOf('$') != -1) return false;
	if (string.indexOf('\\') != -1) return false;
	if (string.indexOf(':') != -1) return false;
	if (string.indexOf('<') != -1) return false;
	if (string.indexOf('>') != -1) return false;
	if (string.indexOf('[') != -1) return false;
	if (string.indexOf(']') != -1) return false;
	if (string.indexOf('(') != -1) return false;
	if (string.indexOf(')') != -1) return false;
	if (string.indexOf('§') != -1) return false;
	if (string.indexOf('!') != -1) return false;
	if (string.indexOf('{') != -1) return false;
	if (string.indexOf('}') != -1) return false;

	if ((first = string.indexOf("@", 1)) != -1) {
		if (string.indexOf("@", first + 1) != -1) return false;

		if (((last - first) >= 3) && (second = string.indexOf(".", first + 2)) != -1) return true;
	}

	return false;
}

function CWS_ValidateNumeric(evt, nLength, bInt, bPos) {
	var e = (window.event) ? window.event : evt;
	oField = (window.event) ? e.srcElement : e.target;
	nKeyCode = (window.event) ? e.keyCode : e.charCode;

	if (nLength == null || nLength == 0) nLength = 16;

	sValue = '' + oField.value;

	if ((e.keyCode == 45 && !bPos && sValue.length == 0) || (e.keyCode == 46 && !bInt && sValue.length < (nLength - 1)) || e.keyCode == 8 || e.keyCode == 13 || e.keyCode == 9) return true;

	if (sValue.length >= nLength) {
		return false;
	}

	if (nKeyCode < 48 || nKeyCode > 58) return false;

	return true;
}

function CWS_FormatNumber(valeur, decimal, separateur)
{
	var deci = Math.round(Math.pow(10, decimal) * (Math.abs(valeur) - Math.floor(Math.abs(valeur))));
	var val = Math.floor(Math.abs(valeur));
	if((decimal == 0) || (deci == Math.pow(10, decimal))) { val = Math.floor(Math.abs(valeur)); deci = 0; }
	var val_format = val + "";
	var nb = val_format.length;
	for(var i = 1; i < 4; i++)
	{
		if(val >= Math.pow(10, (3 * i)))
		{
			val_format = val_format.substring(0, nb - (3 * i)) + separateur + val_format.substring(nb - (3 * i));
		}
	}
	if(decimal > 0)
	{
		var decim = "";
		for(var j = 0; j < (decimal - deci.toString().length); j++) { decim += "0"; }
		deci = decim + deci.toString();
		val_format = val_format + "." + deci;
	}
	if(parseFloat(valeur) < 0) { val_format = "-" + val_format; }
	return val_format;
}

function CWS_GetXMLTagValue(oXml, sName)
{
	if (oXml.getElementsByTagName(sName).length > 0)
	{
		if (oXml.getElementsByTagName(sName)[0].childNodes.length > 0) return oXml.getElementsByTagName(sName)[0].childNodes[0].nodeValue;
	}

	return '';
}

function CWS_HandleResponse(sResponse)
{
	var nError = -1;

	CWS_xmlResponse = null;

	try
	{
		CWS_xmlResponse = new ActiveXObject("Msxml2.DOMDocument.3.0");
		CWS_xmlResponse.loadXML(sResponse);
	}
	catch (e)
	{
		try
		{
			parser = new DOMParser();
			CWS_xmlResponse = parser.parseFromString(sResponse, "text/xml");
		}
		catch (e) { alert(e); }
	}

	if (CWS_xmlResponse)
	{
		sMessage = CWS_GetXMLTagValue(CWS_xmlResponse, 'MESSAGE');
		nError = parseInt(CWS_GetXMLTagValue(CWS_xmlResponse, 'STATUS'));

		if (sMessage.length > 0) CWS_Alert(sMessage);
	}

	return (nError == 0);
}


