function build_ajax_object(fetch_url,parameters,target_element, postProcess, tagType, preProcess)
{
	switch(preProcess)
	{
		case 1:
			break;
	}

        var xmlHttp;
        try
        {
                // Firefox, Opera 8.0+, Safari
                xmlHttp=new XMLHttpRequest();
        }
        catch (e)
        {
                // Internet Explorer
                try
                {
                        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch (e)
                {
                        try
                        {
                                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                        }
                        catch (e)
                        {
                                alert("Your browser does not support AJAX!");
                                return false;
                        }
                }
        }

	try
	{
        xmlHttp.onreadystatechange=function()
        {
                if(xmlHttp.readyState==4)
                {
					 /* Check to see the type of data coming back */
            		var cType = xmlHttp.getResponseHeader("Content-Type");
		
            		if (cType == 'text/xml')
            		{
                		var xmlDoc = xmlHttp.responseXML;
						var rootNode=xmlDoc.getElementsByTagName('xml_content')[0];
						var children=rootNode.childNodes;

						for (i=0;i<children.length;i++)
						{
  							if (children[i].nodeType!=3)
							{
								try
								{
									if(children[i].nodeName == undefined)
										continue;

									if(children[i].childNodes[0] == undefined)
										continue;

									/* set the element */
									var element = children[i].nodeName;
	
									/* set the childValue */
									//var childValue = children[i].childNodes[0].nodeValue;
									var thisNode = children[i];//.childNodes[0];
									if(typeof(thisNode.textContent) != "undefined") childValue=thisNode.textContent;
									else childValue=thisNode.childNodes[0].nodeValue;
	
									if(element == 'action')
									{
									 	if(theseActions)
										{
											theseActions = theseActions + ',' + childValue;
										}
										else
										{
									 		var theseActions = childValue;
										}
									}
										
									/* make sure element is not null */
									if(document.getElementById(element) == null)
										continue;

									switch(tagType)
									{
										case 'value':
                       		 					document.getElementById(element).value=childValue;
										break;
										default:
                       						document.getElementById(element).innerHTML=childValue;
									}
								}
								catch(error)
								{
									alert('this error: ' + error);
								}
  							}
						} 
            		}
					else
					{
						try
						{
							switch(tagType)
							{
								case 'value':
                       				document.getElementById(target_element).value=xmlHttp.responseText;
									break;
								default:
                       				document.getElementById(target_element).innerHTML=xmlHttp.responseText;
							}
						}
						catch(error)
						{
						}
					}

					// show ww_event if we have data in it
					/* show event id if we have content */
					try
					{
						if(trim(document.getElementById('ww_event').innerHTML).length > 0)
						{
							document.getElementById('ww_event').style.display='inline';
							document.getElementById('ww_event').style.zIndex='30';
						}
					}
					catch(err)
					{
					}

					// set thisAction to an array
					if(theseActions)
					{
						thisAction = theseActions.split(",");
					}

					/* loop through actions */
					for(i in thisAction)
					{
						switch(thisAction[i])
						{
							case '1':
								document.getElementById('whoIsHere').style.display='inline';
								//setTimeout("build_ajax_object('/scripts/php/ajax_call.php', '&id=6', '', '1');", 10000);
								break;
							case '2':
								document.getElementById('whoIsHere').style.display='inline';
								changeFace();
								break;
							case '3':
								document.getElementById('whoIsHere').style.display='inline';
								changeFace();
								break;
							case '4':
								document.getElementById('whoIsHere').style.display='inline';
							 	build_ajax_object('/scripts/php/ajax_call.php', '&id=8', '', '1');
								break;
							case '5':
								document.getElementById('msgHolder').style.display='none';
								top.msgWindow(Array(document.getElementById('msgHolder'), 150,200), document.getElementById('msgHolder').innerHTML, 'OK', '', '');
	
								parent.frames['wmShopFrame'].location.reload();
								break;
							case '6':
								document.getElementById('payPalForm').submit();
								break;
							case '7':
								document.getElementById('locDiv').style.top='0px';
								document.getElementById('locDiv').style.left='300px';
								break;
							case '8':
								document.getElementById('locDiv').style.top='125px';
								document.getElementById('locDiv').style.left='280px';
								break;
							case 9:
							case '9':
								try
								{
									document.getElementById('storeloadhold').style.width=document.getElementById('setting').innerHTML;
								}
								catch(err)
								{
								}
								break;
							case '10':
								var str = document.getElementById('setting').innerHTML;
								parsedData = str.split("|-|");
	
								document.getElementById('convoBubble').style.top=parsedData[0]; 
								document.getElementById('convoBubble').style.left=parsedData[1]; 
	
								document.getElementById('convoBubble').style.visibility='visible';
								break;
							 case '11':
								var str = document.getElementById('setting').innerHTML;
								parsedData = str.split("|-|");

								document.getElementById('jailbook').style.top=parsedData[0]; 
								document.getElementById('jailbook').style.left=parsedData[1]; 
								document.getElementById('jailbook').style.display='inline';
								document.getElementById('catchAll').style.visibility='visible';
								document.getElementById('jailbook').style.zIndex='20';
                            	break;
							case '12':
								showComputer2();
								break;
							case '13':
								document.getElementById('leaveLoc').innerHTML='';
								break;
							case '14':
								var str = document.getElementById('setting').innerHTML;
								parsedData = str.split("|-|");

								confirmBuy(parsedData[0], parsedData[1], parsedData[2], window.document);
								document.getElementById('bubbleNewspaper').style.left='300px';
								break;
							case '15':
								loadVioletsClipBoard();
								break;
							case '16':
								resetWt();
								break;
							case '17':
								if(trim(document.getElementById('setting').innerHTML).length > 0)
								{
									try
									{
										var str = document.getElementById('setting').innerHTML;
										parsedData = str.split("|-|");

										document.getElementById('catchAll').style.position=parsedData[0]; 
										document.getElementById('catchAll').style.top=parsedData[1]; 
										document.getElementById('catchAll').style.left=parsedData[2]; 

										if(trim(parsedData[3]).length > 0)
											document.getElementById('catchAll').style.zIndex=parsedData[3]; 
									}
									catch(err)
									{
									}
									
									document.getElementById('setting').innerHTML='';
								}
								document.getElementById('catchAll').style.visibility='visible';
								break;
							case '18':
								var str = document.getElementById('setting').innerHTML;
								switch(str)
								{
									case '1':
										atmDisplay();
										break;
								}
								break;	
							case '19':
								document.getElementById('displayKeypad').style.display='inline';
								document.getElementById('displayKeypad').style.visibility='visible';
								document.getElementById('keypadPinResult').innerHTML='';
								document.getElementById('PIN').value='';
								document.getElementById('PIN').focus();
								break;
							case '20':
								try
								{
									document.getElementById('displayKeypad').style.display='none';
									document.getElementById('displayKeypad').style.visibility='hidden';
									document.getElementById('keypadPinResult').innerHTML='';
									document.getElementById('PIN').value='';
								}
								catch(err)
								{
								}
								break;
							case '21':
								try
								{
									var str = document.getElementById('setting').innerHTML;
									parsedData = str.split("|-|");
	
									document.getElementById('nameTag').style.display='inline';
									document.getElementById('nameTag').style.visibility='visible';
									document.getElementById('nameTag').style.top=parsedData[0]; 
									document.getElementById('nameTag').style.left=parsedData[1]; 
									document.getElementById('nameTag').style.width=parsedData[2]; 
		
									document.getElementById('vaultLeftDiv').style.display='inline';
									document.getElementById('vaultRightDiv').style.display='inline';
									document.getElementById('vaultLeftDiv').style.visibility='visible';
									document.getElementById('vaultRightDiv').style.visibility='visible';
								}
								catch(err)
								{
								}
								break;
							case '22':
								document.getElementById('wmShopInterface').innerHTML='<img usemap="#mapShop" style="border: 0px none; display: block;" src="/images/banking/vault.gif">';
								break;
							case '23':
								document.getElementById('wmShopInterface').innerHTML='<img usemap="#mapShop" style="border: 0px none; display: block;" src="/images/banking/emptyvault.gif">';
								break;
							case '24':
								var str = document.getElementById('setting').innerHTML;
								parsedData = str.split("|-|");

								changeLeaveLoc(parsedData[0]);
								changeOnClick('leaveLoc', parsedData[1]);
								break;
							case '25':
								document.getElementById('catchAll').style.visibility='visible';
								break;
							case '26':
								var backgroundImg = document.getElementById('energyWarnImg').innerHTML;

								document.getElementById('energy_warn').style.display='inline';
								document.getElementById('energy_warn').style.zIndex='25';
								document.getElementById('energy_warn').style.backgroundImage="url(" + backgroundImg + ")";
								break;
							case '27':
								popcrane(2);
								break;
							case '28':
								document.getElementById('convoBubble').style.visibility='none';
								document.getElementById('convoBubble').innerHTML='';
								break;
							case '29':
								var str = document.getElementById('setting').innerHTML;
								parsedData = str.split("|-|");

								switch(parsedData[1])
								{
									case '1':
									case 1:
										window.open(parsedData[0]);
										break;
									default:
										location.href=parsedData[0];
										break;
								}
								break;
							case '30':
								document.getElementById('bbMail').style.backgroundImage="url(/images//worldmap/wrldguibtn-mailblink.gif)";
								break;
							case '31':
								document.getElementById('bbMail').style.backgroundImage="url(/images/worldmap/wrldguibtn-mailon.gif)";
								break;
							case '32':
								hideDiv('bazaarDiv');
								break;
							case '33':
								document.getElementById('bazaarDiv').style.visibility='visible';
								break;
							case '34':
								parent.frames['cmFrame'].location.reload();
								break;
							case '35':
								closePopup();
								break;
							case '36':
								document.getElementById('bbbMsg').style.className='bbbMsg fRed';
								document.getElementById('bbbMsg').style.display='inline';
								break;
							case '37':
								document.getElementById('bbbMsg').style.className='bbbMsg fGreen';
								document.getElementById('bbbMsg').style.display='inline';
								break;
							case '38':
								window.location.reload();
								break;
							case '39':
								document.getElementById('generalMsg').style.display='block';
								break;
							default:
							}
						}

						/* perform the post process */
						switch(postProcess)
						{
							case 1:
							case '1':
								/* show event id if we have content */
								try
								{
									if(trim(document.getElementById('ww_event').innerHTML).length > 0)
									{
											document.getElementById('ww_event').style.display='inline';
											document.getElementById('ww_event').style.zIndex='400';
									}
								}
								catch(err)
								{
								}
								break;
							case '2':
							case 2:
								//check the cart and continue or fail
								finalCheck();
								break;
							case '3':
							case 3:
								var nonsenseDiv=document.getElementById('nonsenseDiv')
								if (nonsenseDiv != null)
								{
									var nonsenseValue=nonsenseDiv.innerHTML;
									if (nonsenseValue)
										window.location='/dazzle/complete.php?custom=' + nonsenseValue;
								}
								break;
							case '4':
							case 4:
								parseChatReturn();
								startTimer();
								break;
							case '5':
							case 5:
								/* show hover event if we have content */
								if(trim(document.getElementById('hover_event').innerHTML).length > 0)
								{
										document.getElementById('hover_event').style.display='inline';
										document.getElementById('hover_event').style.zIndex='400';
								}
								break;
							case '6':
							case 6:
								bubble("You pick up a copy of the WWC and leave some change on the counter.",
            					new Array('stdClass', 'bubbleNewspaper', 'stdClassInner', '', 'stdClassButton'),
            					new Array('Ok', bubbleClose, '', 'stdButton1'),
            					null,
            					'');
								document.getElementById('bubbleNewspaper').style.left='300px';
								break;
							case '7':
							case 7:
								build_ajax_object('/scripts/php/ajax_call.php', '&id=16&ea_id=32&shop=' + escape(target_element), '', '1');
								break;
							default:
								break;
						}

					var thisAction = null;
                }
        }
	}
	catch(err)
	{
		alert('error: ' + err);
	}

        xmlHttp.open("POST",fetch_url,true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", parameters.length);
        xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.send(parameters);
}

function trim(str, chars)
{
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars)
{
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars)
{
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function hideDiv(elementId)
{
	try
	{
		if(document.getElementById(elementId))
		{
			document.getElementById(elementId).style.display='none';
		}
	}
	catch(err)
	{
	}

	return;
}

function clearDiv(elementId)
{
	try
	{
		if(document.getElementById(elementId))
		{
			document.getElementById(elementId).innerHTML='';
		}
	}
	catch(err)
	{
	}

	return;
}

function setInnerHtml(divId, html)
{
	try
	{
		document.getElementById(divId).innerHTML=html;
	}
	catch(err)
	{
	}
}

function changeFace()
{
	window.frames['wtreloadwin'].location.reload();
}

function darkenBg()
{
	document.getElementById('darkMainDiv').style.display='inline';
	return;
}

function lightenBg()
{
	document.getElementById('darkMainDiv').style.display='none';
	return;
}

function showPopup()
{
	darkenBg();
	document.getElementById('popupDiv').style.display='block';
	return;
}

function closePopup()
{
	document.getElementById('popupDiv').style.display='none';
	clearDiv('popupTitleBarTitle');
	clearDiv('popupContent');
	clearDiv('popupFooter');
	clearDiv('msgResult');

	lightenBg();
	return;
}

