 env = "pro";
 config = {};
 config.client = "metamax";
 config.root_namespace = "api/private/"; 
 //habilita el uso de un script como proxy para realizar peticiones ajax cross-domain api
 config.use_proxy = true;
 config.lang = "es";
 // Configuracion de la direcci�n del API por ambiente
 config.env = {};
 config.env.dev = { "api": "http://api.sandbox.metamaxzone.railsplayground.net/", "proxy": "/proxy.cgi", "site": "http://metamax:8080/","site_without_protocol": "metamax:8080/","admin": "http://localhost:8080/admin/","email":"nrching@gmail.com", "admin_support":"nrching@gmail.com" };
 config.env.sandbox = { "api": "http://api.sandbox.metamaxzone.railsplayground.net/", "proxy": "/proxy.cgi", "site": "http://sandbox.metamaxzone.com/","site_without_protocol": "sandbox.metamaxzone.com/", "admin": "http://vdd.sandbox.metamaxzone.railsplayground.net/", "email":"soporte@mantecao.com.ve", "admin_support":"soporte@mantecao.com.ve" };
 config.env.qa = { "api": "http://api.qa.metamaxzone.railsplayground.net/", "proxy": "/proxy.cgi", "site": "http://qa.metamaxzone.com/","site_without_protocol": "qa.metamaxzone.com/", "admin": "http://vdd.qa.metamaxzone.railsplayground.net/", "email":"soporte@mantecao.com.ve", "admin_support":"soporte@mantecao.com.ve" };
 config.env.pro = { "api": "http://api.metamaxzone.railsplayground.net/", "proxy": "/proxy.cgi", "site": "http://site.metamaxzone.com/", "site_without_protocol": "site.metamaxzone.com/","admin": "http://vdd.metamaxzone.railsplayground.net/", "email":"info@metamaxzone.com.ve", "admin_support":"soporte@mantecao.com.ve" };

// Descriptor de los servicios disponibles 
config.services = {  
        "account": config.env[env]['api'] + config.root_namespace + "account",
        "countries": config.env[env]['api'] + config.root_namespace + "countries",
        "classifications": config.env[env]['api'] + config.root_namespace + "classifications",
        "products": config.env[env]['api'] + config.root_namespace + "products",
        "bookings": config.env[env]['api'] + config.root_namespace + "bookings",
        "states": config.env[env]['api'] + config.root_namespace + "states",
        "tracking_states": config.env[env]['api'] + config.root_namespace + "tracking_states",
        "template_parser": config.env[env]['api'] + config.root_namespace + "template_parser",
        "mails": config.env[env]['api'] + config.root_namespace + "mails",
        "promotions": config.env[env]['api'] + config.root_namespace + "promotions",
        "account_create":config.env[env]['api'] + config.root_namespace + "account/create",
        "account_authenticate":config.env[env]['api'] + config.root_namespace + "account/authenticate",
        "search_twitter":"http://api.twitter.com/1/statuses/user_timeline.json?screen_name=",
        "mailsdeliver": config.env[env]['api'] + config.root_namespace + "mails/deliver",
        "create_comment": config.env[env]['api'] + config.root_namespace + "comments/create",
        "get_twitteruser":"http://twitter.com/status/user_timeline/",
        "getsatisfaction":"http://api.getsatisfaction.com/companies/" + config.client + "/topics.json"
};

// variantes de la aplicacion
config.variants = {"subject_emailContact":"Metamax Web", "api_content":"contents/interpret.html"};

if (typeof( window[ 'core' ] ) != "undefined") core.notifiers.new_comment = "notifications-new_comment@metamaxzone.com"; 
if (typeof( window[ 'core' ] ) != "undefined") core.notifiers.new_registration = "notifications-new_registration@metamaxzone.com";
if (typeof( window[ 'core' ] ) != "undefined") core.account.SignUp.send_notification = true;

/* 
 * 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;
