var oInputElement;
var iCursorPos;

function checkBox(oBox, sFormField)
{
	oFormField = document.getElementById("cb_"+sFormField);
	oElements = oBox.getElementsByTagName('div');

	if(oFormField.value == 'checked')
	{
		oElements[1].className = 'mask';
		oFormField.value = '';
	}
	else
	{
		oElements[1].className = 'mask_checked';
		oFormField.value = 'checked';
	}
}

function tickRadio(oRadio, sFormField)
{
	oFormField = document.getElementById("rb_"+sFormField);
	sCurrentValue = oFormField.value;

	oOldRB = document.getElementById('rb_'+sFormField+'_'+sCurrentValue);
	oElements = oOldRB.getElementsByTagName('div');

	oElements[2].className = 'mask';
	oElements = oRadio.getElementsByTagName('div');
	oElements[2].className = 'mask_checked';

	sNewValue = oRadio.id.replace('rb_'+sFormField+'_', '');
	oFormField.value = sNewValue;
}

function changeNumColumnsHeader(iNumColumns)
{
	for(i = 1; i <= iNumColumns; i++)
	{
		oInput = document.getElementById("faxheader_column_"+i);
		oInput.style.display = 'block';
	}

	iNumColumns = (iNumColumns * 1) + 1;

	for(i = iNumColumns; i <= 5; i++)
	{
		oInput = document.getElementById("faxheader_column_"+i);
		oInput.value = '';
		oInput.style.display = 'none';
	}

	generateFaxHeaderPreview();
}

function saveCaretPos(el)
{
	var rng, ii = -1;

	if(typeof el.selectionStart == "number")
	{
		ii = el.selectionStart;
	}
	else if(document.selection && el.createTextRange)
	{
		rng = document.selection.createRange();
		rng.collapse(true);
		rng.moveStart("character", -el.value.length);
		ii = rng.text.length;
	}

	oInputElement = el;
	iCursorPos = ii;
}

function addElement(sElement)
{
	if(!oInputElement) return;

	sValue = oInputElement.value;
	if(iCursorPos == sValue.length)
	{
		sValue += sElement;
	}
	else
	{
		sValue = sValue.substring(0, iCursorPos) + sElement + sValue.substring(iCursorPos);
	}

	oInputElement.value = sValue;
	generateFaxHeaderPreview();
}

function generateFaxHeaderPreview()
{
	sHTML = '<table border="0" cellspacing="0" cellpadding="0" width="100%">\n<tr>';
	sTotalString = '';

	for(i = 1; i <= 5; i++)
	{
		oInput = document.getElementById("faxheader_column_"+i);
		if(oInput.value)
		{
			sHTML += '<td>' + replaceVarsWithBogus(oInput.value) + '</td>';
			sTotalString += (sTotalString?'|':'') + oInput.value;
		}
	}

	sHTML += '</tr></table>';

	oPreview = document.getElementById('faxheader_preview');
	oPreview.innerHTML = sHTML;

	oFaxHeader = document.getElementById('frmFaxHeader');
	oFaxHeader.value = sTotalString;
}

function replaceVarsWithBogus(sInput)
{
	aVars = new Array();
	aVars["%%P"] = "1";
	aVars["%%T"] = "2";
	aVars["%%d"] = "023 5731886";

	aVars["%H"] = "14";
	aVars["%M"] = "39";
	aVars["%S"] = "20";

	aVars["%Y"] = "2010";
	aVars["%y"] = "10";
	aVars["%m"] = "02";
	aVars["%d"] = "13";

	for(var sKey in aVars)
	{
		sInput = sInput.replace(sKey, aVars[sKey]);
	}

	return sInput;
}


function ReadURL(url)
{
	var req = false;

	if (window.XMLHttpRequest)
	{
		try
		{
			req = new XMLHttpRequest();
		}
		catch(e)
		{
			req = false;
		}
	}
	else if(window.ActiveXObject)
	{
		try
		{
			req = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
				req = false;
			}
		}
	}

	if(req)
	{
		// Synchronous request, wait till we have it all
		req.open('GET', url, false);
		req.send(null);
		return req.responseText;
	}
	else
	{
		return false;
	}
}

function DoHttpRequest(url, callback_function)
{
	var http_request = false;

	if(window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest();

		if (http_request.overrideMimeType)
		{
			http_request.overrideMimeType('text/xml');
		}
	}
	else if(window.ActiveXObject)
	{
		try
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) { }
		}
	}

	if(!http_request)
	{
		alert('Unfortunatelly you browser doesn\'t support this feature.');
		return false;
	}

	http_request.onreadystatechange = function()
	{
		if(http_request.readyState == 4)
		{
			if(http_request.status == 200)
			{
				eval(callback_function + "(http_request.responseXML)");
			}
			else
			{
				alert('There was a problem with the request.(Code: ' + http_request.status + ')');
			}
		}
	}

	http_request.open('GET', url, true);
	http_request.send(null);
}

