function NewXML()
{
	var request = false;
	try
	{
		request = new XMLHttpRequest();
	}
	catch (trymicrosoft)
	{
		try
		{
			request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (othermicrosoft)
		{
			try
			{
				request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (failed)
			{
				request = false;
			}
		}
	}
	if (!request)
		alert("Error initializing XMLHttpRequest!");
	return request;
}

function loadContent(url,destination,method,reqvars,procfunc,xmlkey)
{
	request = NewXML();
	var postvars = null;
	loadHTML = destination;
	ajaxFunc = procfunc;
	XML = xmlkey;
	if(method == "GET")
	{
		url = url+"?"+reqvars.join("&");
	}
	if(method == "POST")
	{
		contentType = "application/x-www-form-urlencoded; charset=utf-8";
		postvars = reqvars.join("&");
	}
	request.onreadystatechange = processStateChange;
	request.open(method, url, true);
	if(method=="POST")
		request.setRequestHeader("Content-Type", contentType);
	request.send(postvars);
}

function processStateChange()
{
	var contentDiv = document.getElementById(loadHTML);
	if (request.readyState == 4)
	{
		if (request.status == 200)
		{
			if(XML == true)
			{
				var respDoc = request.responseXML;
				ajaxFunc = ajaxFunc+"(respDoc)";
				eval(ajaxFunc);
			}
			if(XML == false)
			{
				var respDoc = request.responseText;
				ajaxFunc = ajaxFunc+"(respDoc)";
				eval(ajaxFunc);
			}
		}
		else
		{
			contentDiv.innerHTML = "Error: Status "+request.status;
		}
	}
	return true;
}

function getElementContent(element,tagName) 
{
	var childElement = element.getElementsByTagName(tagName)[0];
	if(childElement!=undefined)
		return childElement.text != undefined ? childElement.text : childElement.textContent;
	else
		return undefined;
}

function loadText(respDoc)
{
	document.getElementById(loadHTML).innerHTML = '';	
	document.getElementById(loadHTML).innerHTML = respDoc;
}

function sendFormValues(formName,nextDest,scriptPath,extraVars,extraFunc,extraKey)
{
	var url = scriptPath;
	var reqvars = new Array();
	for (i=0; i<document.forms[formName].length; i++) 
	{
		if(document.forms[formName].elements[i].type == "radio")
		{
			if(document.forms[formName].elements[i].checked)
			{
				var elName = document.forms[formName].elements[i].name;
				var elVal = document.forms[formName].elements[i].value;
				reqvars.push(elName+"="+elVal);
			}
		}
		else
		{
			var elName = document.forms[formName].elements[i].name;
			var elVal = document.forms[formName].elements[i].value;
			reqvars.push(elName+"="+elVal);
		}
	}
	if((typeof extraVars != "undefined")&&(extraVars != ''))
		reqvars.push("extra="+extraVars);
	var destination = nextDest;
	var method = "POST";
	if((typeof extraFunc != "undefined")&&(extraFunc != ''))
		var procfunc = extraFunc;
	else
		var procfunc = "loadText";
	if((typeof extraKey != "undefined")&&(extraKey != ''))
		var xmlkey = extraKey;
	else
		var xmlkey = false;
	loadContent(url,destination,method,reqvars,procfunc,xmlkey);
}

function getWidgetCode(respDoc)
{
	var reggc = /<widget_code>(.*?)<\/widget_code>/;
	var gcArr = reggc.exec(respDoc);
	var reggcr = /<\/?widget_code>/g;
	var widget_code = gcArr[0].replace(reggcr,'');
	
	var widget_view = respDoc.replace(reggc,'');

	eval(widget_view);
	
	var taEl = document.getElementById("get_code");
	taEl.value = '';
	wdcode_arr = widget_code.split("<br>");
	for(var i=0; i<wdcode_arr.length; i++)
	{
		taEl.value += wdcode_arr[i]+"\n";
	}
}

function viewWidget(pos_check)
{
	var taEl = document.getElementById("get_code");
	taEl.value = "Loading...";
	
	sendFormValues('widget','view_widget','get_widget.php','viewWidget','getWidgetCode');
	return;
}

function viewWidgetIexplore(pos_check)
{
	var taEl = document.getElementById("get_code");
	taEl.value = "Loading...";
	
	sendFormValues('widget','view_widget','iexplore_widget.php','viewWidget','getWidgetCode');
	return;
}

function checkView(form_name)
{
	document.forms[form_name].submit();
}

function loadPassportApplicant(respDoc)
{
	document.getElementById(loadHTML).innerHTML = '';	
	document.getElementById(loadHTML).innerHTML = respDoc;
	getPassportName();
}

function getPassportApplicant(appl_id,dest)
{
	var url = "passport_order.php";
	var reqvars = new Array("extra=addPAppl","applicant_id="+appl_id);
	var destination = dest;
	var method = "GET";
	var procfunc = "loadPassportApplicant";
	var xmlkey = false;
	loadContent(url,destination,method,reqvars,procfunc,xmlkey);			
}