//=========================================================================================
function npAjaxRequest(method, fullUrl, sPostdata, fnOnComplete, fnOnError){
	var objRequest = npAjaxGetObjRequest();
	if (objRequest == null) return false;
	objRequest.onreadystatechange = function(){ npAjaxReadyStateChange(objRequest, fnOnComplete, fnOnError); };
	objRequest.open(method, fullUrl, true);	// true is for asynchronous	
	objRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
	objRequest.setRequestHeader('Connection', 'close');
	objRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');		
	objRequest.send(sPostdata);
	return true;		
}	

//=========================================================================================
function npAjaxGetObjRequest(){			
	// Create remote request object
	var objRequest = null;
	try
	{		
		objRequest = new ActiveXObject('Msxml2.XMLHTTP');		
	}		
	catch(e)		
	{
		try		
		{		
			objRequest = new ActiveXObject('Microsoft.XMLHTTP');		
		}		
		catch(e)		
		{		
			objRequest = new XMLHttpRequest();		
		}		
	}
	return objRequest;			
}
	
//=========================================================================================
function npAjaxReadyStateChange(objRequest, fnOnComplete, fnOnError){
	// If request shows "loaded"
	if(objRequest.readyState == 4){
		if(objRequest.status == 200){
			fnOnComplete(objRequest.responseText);
		}
		else if (objRequest.status == 400 && fnOnError){	// Patch for safari. Remove it (caused by the s2f - no objRequest.status)
			fnOnError(objRequest.status, objRequest.responseText);
		}
		else if (navigator.userAgent.toLowerCase().indexOf('safari') != -1){		// Patch for safari. Remove it (caused by the s2f - no objRequest.status)
			fnOnComplete(objRequest.responseText);
		}
		else {
			// Error
			if(fnOnError)
				fnOnError(objRequest.status, objRequest.responseText);
		}
	}
}

//=========================================================================================
function isAppleWebKit() {
	var kitName = "mac";
	var tempStr = navigator.userAgent.toLowerCase();
	var pos = tempStr.indexOf(kitName);
	var isAppleWebkit = (pos != -1);
	if (isAppleWebkit) return true;
	return false;
}