//http://api.jquery.com/jQuery.ajax/
//http://api.jquery.com/category/ajax/#.24.ajaxSetup.28_settings_.29
//multi threading ajax - f**k yea.
//this is a mix of my jaxPipe.js and the jQuery awesomeness.
//--------------AUTHOR: SL
//--------------DATE: 21/03/11
//added global container so we can feed the error into it, not needed now, but leave it!
var containerName;

var $GLOBALS = {};
$GLOBALS['containerName'] = "";

function cleanURLString(inString)
{
	inString = inString.replace(/#/gi,'');
	inString = inString.replace(/--/gi,'');

	return inString;
}


function fetch(fileName,containerName,URLString,loadText,sync)
{
	URLString = cleanURLString(URLString);

var isInput = 0;
var FData = '';

$GLOBALS['containerName'] = containerName;

if(sync == "on")sync = true;
if(sync == "off")sync = false;
if(sync == '')sync = false;

var isPop = URLString.indexOf('isPop=1');
//if(isPop !== 1)//cant reach debug func from pop, dont really want to either.
//showDebug("Ajax Async(" + sync + ") for " + "/x.cfm?f="+fileName+URLString);

//---------------------------Are we populating an input?
if(containerName !=='')
{
	if($("input#"+containerName).length == 1)
	{
		isInput = 1;
	}
}

$.ajax({
  url: fileName+URLString,
  global:false,
  timeout:15000,
  async: sync,
  cache: true,
  type: "GET",
  //dataType: 'json',
  //context: document.body, - not used so we can check if container or input further down.
  
beforeSend: function()
  {
  if(isInput == 0 && loadText !=="" && containerName !=='')
document.getElementById(containerName).innerHTML= "<div class='loading'>"+loadText+"</div>";
  },
  
success: function(FData)
  {
	  	if(isInput==1)
		{
			FData=FData.replace(/20/g," ");
			$("#"+containerName+" :input").val(FData);
			return FData;
		}
		else
		{
		   // $("#"+containerName).append(html);
		   if(containerName !=="")
		   		$("#"+containerName).html(FData);
		}
		//Return for var assignment calls
		
  },
  
  error:function(x,e){
  var errorMsg = '';
			if(x.status==0){
			errorMsg='You are offline! Please Check Your Network.';
			}else if(x.status==404){
			errorMsg='Error 404 - Requested URL not found.';
			}else if(x.status==500){
			errorMsg="Error 500 - Internal Server Error. Possible Query Problem.";
			$("#locationHeader").html(x.responseText);
			}else if(e=='parsererror'){
			errorMsg='Error. Parsing JSON Request failed.';
			}else if(e=='timeout'){
			errorMsg='Request Time out.';
			}else {
			errorMsg='Unknow Error. '+x.responseText;
			}
			if(errorMsg !=='')
			{
				if(containerName !== '')
					document.getElementById(containerName).innerHTML= "<div class='msg warning'>"+errorMsg+"</div>";
				else
					alert(errorMsg);
			}
		}
	});
}

 // if(isInput==1)
//$("#"+containerName).ajaxError(function(event, request, settings){
 // $(this).append("<li>Error requesting page " + settings.url + "</li>");
//});




