function reempChars( v ) {
	var s = new String( v );
	s = s.replace( /&/, "-_-ampand-_-" );
	s = s.replace( /;/, "-_-puncom-_-" );
	return s;
}

function estaEsParaVos( response, mustWrite, tagToWrite, doMore ) {
	if ( mustWrite && tagToWrite) {
		tagToWrite.innerHTML = response;
	}

	if ( doMore ) {
		doMoreAfterAjax( doMore, response );
	} else {
		return response;
	}

}

function AjaxRequest( datta, fileUrl, reqType, tagIdImgLoading, tagIdToWriteResponse, mustWrite, doMore ) {
	var tagToRead = document.getElementById(tagIdImgLoading);
	var tagToWrite = document.getElementById(tagIdToWriteResponse);
	if ( tagIdImgLoading != '' ) {
		if (!tagToRead) {
			alert("No se encuentra el tag HTML con id = '" + tagIdImgLoading + "' para cargar la imagen");
			return false;
		}
		else {
			if ( tagIdToWriteResponse != '' ) {
				if ( ! tagToWrite ) {
					alert("No se encuentra el tag HTML con id = '" + tagIdToWriteResponse + "' para insertar la imagen");
					return false;
				}
				else {
					tagToWrite.innerHTML = tagToRead.innerHTML;
				}
			}
		}
	}

	var params = '';
	if ( datta instanceof Array ) {
		for ( key in datta ) {
			params += key + '=' + reempChars( datta[key] ) + '&';
		}
		params = params.substr( 0, params.length - 1 );
	} else {
		if ( datta != '' ) {
			params = 'value=';
		}
		params += datta;
	}

	if ( fileUrl == '' ) {
		alert("La URL del archivo a procesar esta vacia");
		return false;
	}

	if ( reqType.toUpperCase() == 'GET' ) {
		$.get( fileUrl, params, function(response){ estaEsParaVos(response, mustWrite, tagToWrite, doMore); } );
	} else {
		$.post( fileUrl, params, function(response){ estaEsParaVos(response, mustWrite, tagToWrite, doMore); } );
	}
}
