function clearList(oSelect)
{
	if( oSelect == null ) return;
	while(oSelect.options.length > 0 )
		oSelect.remove(0);
}

function clearGrid(oGrid)
{
	if( oGrid == null ) return;
	while(oGrid.rows.length>0)
		oGrid.rows[0].removeNode(true);
}

function AddSelectOption(oSelect,text,value)
{
	if( oSelect == null ) return;
	var oOption = document.createElement("OPTION");
	oOption.text = text;
	oOption.value = value;
	oSelect.add(oOption);
}

function loadXML(url)
{
	
	try
	{
		var xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');

		xmlhttp.open('GET', url, false);
		xmlhttp.send();

		if(xmlhttp.status != 200 )
		{
			alert(xmlhttp.responseText);
			return null;
		}
		var xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
		xmlDoc.loadXML(xmlhttp.responseText);

		return xmlDoc;
	}
	catch(e)
	{
		document.write(e.description);
		return null;
	}	
	/*try
	{
		var xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
		xmlDoc.async = false;
		xmlDoc.load(url);
		if( xmlDoc.parseError.errorCode != 0 ) 
		{
			alert(xmlDoc.parseError.reason);
			return null;
		}
		return xmlDoc;
	}
	catch(e)
	{
		alert(e.description);
		return null;
	}*/

}

/*function DisplayCalendar(dt)
{
	return showModalDialog( "Calendar.asp", dt,"dialogWidth:110px; dialogHeight:189px; Scroll: No; help:No; resizable:No; status:No;" );

}*/

function sendXML(url)
{
	try
	{
		var xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
		
		xmlhttp.open('GET', url, false);
		xmlhttp.send();

		if(xmlhttp.status != 200 )
		{
			alert(xmlhttp.responseText);
			return null;
		}
		var xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
		var vResponse = xmlhttp.responseText.toString();
		if (vResponse.indexOf("'") == 0) vResponse = vResponse.substr(1);
		xmlDoc.loadXML(vResponse);
		
		return xmlDoc;
	}
	catch(e)
	{
		alert(e.description);
		return null;
	}

}	

function GetProps(node,propertyName)
{
	try
	{
		return node.selectSingleNode(propertyName).text;
	}
	catch(e)
	{
		return '';
	}
}

function EncodeString(str)
{
	if( str == null ) return ""; 
	str = new String(str);
	str = str.replace(new RegExp("&","ig"),"&amp;");
	str = str.replace(new RegExp("\"","ig"),"&quot;");
	str = str.replace(new RegExp("<","ig"),"&lt;");
	str = str.replace(new RegExp(">","ig"),"&gt;");
	return str;
	
}


function URLEncodeJS(strURL)
{
	var strSpecialUrl = " <>\"#%{}|^~[]`'&?+\n\r";
	var strEncode="";
	var i;
	var chUrl;
	var iCode;
	var num;
	var iCodeBin;
	var tempBin;
	var j, leadingzeros;

	strURL+="";
	for (i=0; i<strURL.length; i++) {
		chUrl = strURL.charAt(i);
		iCode = chUrl.charCodeAt(0);
		if (iCode<=parseInt("0x7F")) {
			if (strSpecialUrl.indexOf(chUrl)!=-1) {
				if (iCode<=parseInt("0x0F")) {
					strEncode+="%0"+iCode.toString(16).toUpperCase();
				}
				else {
					strEncode+="%"+iCode.toString(16).toUpperCase();
				}
			} else {
				//otherwise chrUrl is normal
				strEncode+=chUrl;
			}
		} 
		else
			strEncode+=chUrl;
		
	}
	return strEncode;
}


/*
Olivier

*/

function DoResizeControls()
{
	var i;
	var obj;
	var lenTitle1=0;
	var lenTitle2=0;
	var lenControl1=0;
	var lenControl2=0;
	var table = document.getElementById('CRMCtrlListTable');
	for(i=0;i<table.rows.length;i++)
	{
		obj = getControlElement(table.rows[i].cells[0],'TD', 'CRMCtrlTitle');
		if (obj!=null && lenTitle1 < obj.clientWidth)
			lenTitle1 = obj.clientWidth;
	
		obj = getControlElement(table.rows[i].cells[1],'TD', 'CRMCtrlTitle');
		if (obj!=null && lenTitle2 < obj.clientWidth)
			lenTitle2 = obj.clientWidth;
			
		obj = getControlElement(table.rows[i].cells[0],'', 'CRMFrmItemSelect');
		if (obj!=null && lenControl1 < obj.clientWidth)
			lenControl1 = obj.clientWidth;
	
		obj = getControlElement(table.rows[i].cells[1],'', 'CRMFrmItemSelect');
		if (obj!=null && lenControl2 < obj.clientWidth)
			lenControl2 = obj.clientWidth;
	}
	if (lenControl1<50) lenControl1 = table.clientWidth/2 - lenTitle1;
	if (lenControl2<50) lenControl2 = table.clientWidth/2 - lenTitle2;
		
	for(i=0;i<table.rows.length;i++)
	{
		obj = getControlElement(table.rows[i].cells[0],'TD', 'CRMCtrlTitle');
		if(obj!=null && obj.children[0]!=null) obj.children[0].style.pixelWidth = lenTitle1;
		obj = getControlElement(table.rows[i].cells[1],'TD', 'CRMCtrlTitle');
		if(obj!=null && obj.children[0]!=null) obj.children[0].style.pixelWidth = lenTitle2;
		
		obj = getControlElement(table.rows[i].cells[0],'', 'CRMFrmItemSelect');
		if(obj!=null && obj.children[0]!=null) obj.style.pixelWidth = lenControl1 + 5;
		obj = getControlElement(table.rows[i].cells[1],'', 'CRMFrmItemSelect');
		if(obj!=null && obj.children[0]!=null) obj.style.pixelWidth = lenControl2 + 5;
	}

	var oElem = document.getElementById('lblRoleList');
	if (oElem!=null) oElem.style.pixelWidth = lenTitle1;
	oElem = document.getElementById('lblUserList');
	if (oElem!=null) oElem.style.pixelWidth = lenTitle1;

	oElem = document.getElementById('Select_Role');
	if (oElem!=null) oElem.style.pixelWidth = lenControl1 + 5;
	oElem = document.getElementById('Select_User');
	if (oElem!=null) oElem.style.pixelWidth = lenControl1 + 5;

}

		
function getControlElement(elem,searchElem, classElem)
{
	if(elem != null)
	{
		var i;
		var ret = null;
		
		if((searchElem=="" && elem.className == classElem) || (elem.className == classElem && elem.tagName == searchElem)) return elem;
			
		for(i=0;i<elem.childNodes.length;i++)
		{
			ret = getControlElement(elem.childNodes[i],searchElem,classElem);
			if(ret != null)	return ret;
		}
	}
	return null;
}


