function CreateSythusAjax()
{
	try	
		{ 
			return new XMLHttpRequest(); 
		} 
	catch (e) 
		{ 
			try	
				{
					return new ActiveXObject("Msxml2.XMLHTTP"); 
				} 
			catch (e) 
				{ 
					try 
						{
							return new ActiveXObject("Microsoft.XMLHTTP");	
						} 
					catch (e) 
						{ 
							alert("Seu navegador não suporta AJAX!"); 
							return null; 
						} 
				} 
		}  
}

function Id (ObjectId) 
{ 
var VarObject
VarObject = document.getElementById(ObjectId);
if (!VarObject)
	{
		VarObject = document.getElementsByName(ObjectId);
		if (VarObject.length == 0) 
			{
				VarObject = null;
			}
		else
			{
				VarObject = VarObject[0];
			}
	}
return VarObject;
}

function AjaxLoadScript(ScriptName)
{
	ScriptId = '_Script_' + ScriptName;
	ScriptFileName = ScriptName + '.js';
	if(document.getElementById(ScriptId) == null)
		{
			var FirstHead  = document.getElementsByTagName("head").item(0);
			ScriptHandle = document.createElement("script");
			ScriptHandle.id = ScriptId;
			ScriptHandle.setAttribute('type','text/javascript')
			ScriptHandle.setAttribute('src', ScriptFileName)
			void(FirstHead.appendChild(ScriptHandle));
		}
}

function SetInnerHTML (TargetElement, HtmlString)
{
	var ScriptExpr = '<script[^>]*>(.|\s|\n|\r)*?</script>';
	if (TargetElement) 
		{
			//alert(HtmlString);
			TargetElement.innerHTML = HtmlString.replace(new RegExp(ScriptExpr, 'img'), '');
		}
	var s = null;
	var matches = HtmlString.match(new RegExp(ScriptExpr, 'img'));
	if (matches) 
		{
			for (var i = 0; i < matches.length; i++)
				{
					s = matches[i].replace(/<script[^>]*>[\s\r\n]*(<\!--)?|(-->)?[\s\r\n]*<\/script>/img, '');
	  				eval(s);
	 			}
	 	}
	return false;
}

function AjaxPost(FormObject, HomePage, ObjectName)
{
	var StartTime = new Date().getTime();
	var SythusAjax = CreateSythusAjax();
	SythusAjax.onreadystatechange=function()
		{
			if(SythusAjax.readyState==4)
			  {
				SetInnerHTML(Id(ObjectName), SythusAjax.responseText);
				//SetInnerHTML(Id(ObjectName), SythusAjax.responseText + '<br><table><tr><td bgcolor="Red"><b><font color="White" style="font-size: 6pt">&nbsp;' + Math.round(SythusAjax.responseText.length / 100) / 10 + ' kb / ' + Math.round((new Date().getTime() - StartTime) / 10) / 100 + ' s = ' + Math.round((SythusAjax.responseText.length) / (new Date().getTime() - StartTime) * 100) / 100 +  ' kb/s&nbsp;</font></b></td></tr>');
				SythusAjax = null;
				StartTime = null;
			  }
		} 
	if (HomePage.indexOf('?') == -1) 
		{
			HomePage += '?';
		} 
	else 
		{
			HomePage += '&';
		}
	HomePage += 'AjaxTimeID=' + new Date().getTime();
	var SubmitData = ExtractParamsFromForm(FormObject);
	SythusAjax.open('POST', HomePage, true);
	SythusAjax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');     
	SythusAjax.setRequestHeader('encoding','windows-1252');     
	SythusAjax.setRequestHeader('Content-length', SubmitData.length); 
	SythusAjax.send(SubmitData);
	//alert(SubmitData);
	return false;
}

function AjaxGet(HomePage, ObjectName)
{
	var StartTime = new Date().getTime();
	var SythusAjax = CreateSythusAjax();
	SythusAjax.onreadystatechange=function()
		{
			if(SythusAjax.readyState==4)
			  {
				SetInnerHTML(Id(ObjectName), SythusAjax.responseText);
				//SetInnerHTML(Id(ObjectName), SythusAjax.responseText + '<br><table><tr><td bgcolor="Red"><b><font color="White" style="font-size: 6pt">&nbsp;' + Math.round(SythusAjax.responseText.length / 100) / 10 + ' kb / ' + Math.round((new Date().getTime() - StartTime) / 10) / 100 + ' s = ' + Math.round((SythusAjax.responseText.length) / (new Date().getTime() - StartTime) * 100) / 100 +  ' kb/s&nbsp;</font></b></td></tr>');
				SythusAjax = null;
				StartTime = null;
			  }
		} 
	if (HomePage.indexOf('?') == -1) 
		{
			HomePage += '?';
		} 
	else 
		{
			HomePage += '&';
		}
	HomePage += 'AjaxTimeID=' + new Date().getTime();
	SythusAjax.open('GET', HomePage, true);
	SythusAjax.send(null);
	return false;
}


function AjaxGetGuide(ThisLink, HomePage, ObjectName)
{
	AjaxGet(HomePage, ObjectName);
	for (i=0; i!=ThisLink.parentNode.parentNode.cells.length; i++) 
		{ 
			if (ThisLink.parentNode.parentNode.cells[i] == ThisLink.parentNode)	
				{ 
					ThisLink.parentNode.parentNode.cells[i].className = 'SelectecGuide'; 
				} 
			else 
				{ 
					ThisLink.parentNode.parentNode.cells[i].className = 'UnSelectecGuide'; 
				}
		}; 
	return false;
}

function AjaxGetList(ThisLink, HomePage, ObjectName)
{
	AjaxGet(HomePage, ObjectName);
	for (i=0; i!=ThisLink.parentNode.parentNode.parentNode.rows.length; i++) 
		{ 
			if (ThisLink.parentNode.parentNode.parentNode.rows[i] == ThisLink.parentNode.parentNode)	
				{ 
					if (ThisLink.parentNode.parentNode.parentNode.rows[i].cells[0].className != 'GridListSelected')
						{
							for (c=0; c!= ThisLink.parentNode.parentNode.parentNode.rows[i].cells.length;c++) 
								{
									ThisLink.parentNode.parentNode.parentNode.rows[i].cells[c].className = 'GridListSelected';  
								}
						}
				}
			else 
				{ 
					if (ThisLink.parentNode.parentNode.parentNode.rows[i].cells[0].className != 'GridList')
						{
							for (c=0; c!= ThisLink.parentNode.parentNode.parentNode.rows[i].cells.length;c++) 
								{
									ThisLink.parentNode.parentNode.parentNode.rows[i].cells[c].className = 'GridList';  
								}
						}
				}
		}; 
	return false;
}

function ExtractParamsFromForm (FormObject)
{
	var ButtonObject = null;
	if (!FormObject) return '';
	if ( typeof FormObject == 'string' ) {FormObject = Id(FormObject);}
	if ( FormObject.tagName.toLowerCase() == 'input' ) {ButtonObject = FormObject; FormObject = ButtonObject.form;}

	var compStack = new Array(); // key=value pairs
	var el;
	for (var i = 0; i < FormObject.elements.length; i++ )
	{
		el = FormObject.elements[i];

		if (el.disabled || !el.name) { continue; }
		if (!el.type) { continue; }

		switch(el.type.toLowerCase())
		{
			case 'text':
			case 'password':
			case 'textarea':
			case 'hidden': 
				compStack.push(escape(el.name) + '=' + escape(el.value)); 
				break;
			case 'submit': 
				if (el == ButtonObject) 
					{ 
						compStack.push(escape(el.name) + '=' + escape(el.value)); 
					}	
				break;
			case 'select-one':
				var value = '';
				var opt;
				if (el.selectedIndex >= 0) 
					{
						opt = el.options[el.selectedIndex];
						value = opt.value || opt.text;
					}
				compStack.push(escape(el.name) + '=' + escape(value));
				break;
			case 'select-multiple':
				for (var j = 0; j < el.length; j++)
					{
						if (el.options[j].selected)
							{
								value = el.options[j].value || el.options[j].text;
								compStack.push(escape(el.name) + '=' + escape(value));
							}
					}
				break;
			case 'checkbox':
			case 'radio':
				if (el.checked)
					compStack.push(escape(el.name) + '=' + escape(el.value));
				break;
			default:
			// file, button, reset
			break;
			}
		}
	return compStack.join('&');
};

function GetCheckedValue(RadioName) 
{
	if (RadioName == '') return '';
	var RadioObj = document.getElementsByName(RadioName);
	if (!RadioObj) return '';
	if (!RadioObj.length) return '';
	if (RadioObj.length == 0) return '';
	for(var i = 0; i < RadioObj.length; i++) 
		if(RadioObj[i].checked) 
			return RadioObj[i].value;
	return '';
}

function SetCheckedValue(RadioName, NewValue) 
{
	if (RadioName == '') return false;
	var RadioObj = document.getElementsByName(RadioName);
	if (!RadioObj) return false;
	if (!RadioObj.length) return false;
	if (RadioObj.length == 0) return false;
	for(var i = 0; i < RadioObj.length; i++)
		if (RadioObj[i].value == NewValue)
			{
				RadioObj[i].checked = true;
				if (RadioObj[i].onclick) RadioObj[i].onclick();
			}
		else
			RadioObj[i].checked = false;
		
	return true;
}

