 env = "pro";
 config = {};
 config.client = "mantecao";
 config.root_namespace = "api/private/"; 
 //habilita el uso de un script como proxy para realizar peticiones ajax cross-domain api
 config.use_proxy = true; 

 // Configuracion de la direcci�n del API por ambiente
 config.env = {};
 config.env.dev = { api: "http://api.sandbox.sitio-i.com/", proxy: "proxy.cgi", site: "http://localhost/customizing-core/mantecao/", email: "acabezas@mantecao.com" };
 config.env.sandbox = { api: "http://api.sandbox.sitio-i.com/", proxy: "proxy.cgi", site: "http://sandbox.mantecao.com/", email: "soporte@mantecao.com" };
 config.env.qa = { api: "http://api.sandbox.sitio-i.com/", proxy: "proxy.cgi", site: "http://qa.mantecao.com/", email: "soporte@mantecao.com" };
 config.env.pro = { api: "http://api.sandbox.sitio-i.com/", proxy: "proxy.cgi", site: "http://site.mantecao.com/", email: "ventas@mantecao.com.ve" };

// Descriptor de los servicios disponibles 
config.services = {  
	"mailsdeliver": config.env[env]['api'] + config.root_namespace + "mails/deliver"
};

// variantes de la aplicacion
config.variants = {
	mantecaotwitter: "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=mantecaonews",
	subject_emailContact:"Mantecao Web"
}

/* 
 * Devuelve una propiedad especifica de la configuraci�n por ambiente (dev, qa, pro).
 *
 * ej.: config.properties("site") => http://site.imperialtour.com.ve/public/
 *
 * 1) http://api.qa2.sitio-i.com/ ( sin proxy habilitado )
 *
 */
config.properties = function(property){
	return config.env[env][property];
};

/* 
 * Devuelve la url del api.
 *
 * ej. 1) http://api.qa2.sitio-i.com/ ( sin proxy habilitado )
 *     2) http://localhost/proxy.php ( con proxy habilitado )
 */
config.api = function(use_proxy){
	var use_proxy = use_proxy || config.use_proxy;
	if ( use_proxy ){
		return config.env[env]['proxy'];
	}else{
		return config.env[env]['api'];
	}
};

/* 
 * Devuelve la url del servicio solicitado.
 *
 * ej.: core.config.proxy_and_service('products')
 *
 * 1) http://api.qa2.sitio-i.com/api/private/products.json ( sin proxy habilitado )
 * 2) http://localhost/proxy.php?_url=http://localhost/api/private/products.json ( con proxy habilitado )
 *
 */
config.proxy_and_service = function(service, url, no_proxy){
	var u = "";
	if ( url ){
		u = "/"+url;
	}
	
	if (!no_proxy) {
		return config.env[env]['proxy'] + "?_url=" + config.services[service] + u + ".json?";
	} else {
		return config.services[service] + u + ".json";
	}
};

/*
 * Le agrega parametros adicionales a los parametros a ser enviados en una petici�n
 * Parametros:
 * params: parametros de la peticion
 * options['service']: nombre del servicio a quien se le va a realizar la peticion
 * options['url']: url adicional o nombre del m�todo que va invocar
 * options['verb']: tipo de petici�n a realizar PUT, DELETE, POST, GET
 *
 * ej.
 * 	var extra_params = {service:'account',url:"/create.json",verb:'PUT'};
 *	$.post( config.api(), config.default_params(params,extra_params) , core.account.SignUp.onComplete );
 *
 */
config.default_params = function(params,options){
	if ( config.use_proxy ){
		//ej. http://localhost:3001/api/private/account
		params._url = config.services[options['service']] + options['url'];
	}
	if ( options['verb'] ){
		params._method = options['verb'];
	}
	return params;
} 
// Hace la configuracion disponible en el core 'solucionando el acceso desde los componentes extjs' 
if (typeof( window[ 'core' ] ) != "undefined") core.config = config;
