/**
 * Mynewsdesk JSAPI Loader
 */
var mynewsdesk = {};
mynewsdesk = (function(){
	var createScriptElement = function(settings){
		//id, src, callback
		var head = document.getElementsByTagName('head')[0];
		var sElm = document.createElement("script");
		sElm.id = settings.feature + "_" + settings.version;
		sElm.src = settings.src;
		sElm.charset = settings.charset ? settings.charset : "utf-8";
		sElm.type = "text/javascript";
		head.appendChild(sElm);
		if (settings.callback) {
			sElm.onload = function(){
				loadedApiDefaults(settings);
				callbackCustomer(settings.callback);
			};
			sElm.onreadystatechange = function () {
				if (sElm.readyState == 'loaded' || sElm.readyState == 'complete') {
					loadedApiDefaults(settings);
					callbackCustomer(settings.callback);
				}
			};
		}
	};
	var loadedApiDefaults = function(settings){
		switch(settings.feature){
			case "channels":
				mynewsdesk.channels.setDefaults({
					api_key: settings.api_key,
					channel_id: settings.channel_id,
					charset: settings.charset
				});
				break;
			case "dummy":
				mynewsdesk.dummy.setDefaults(settings);
				break;
		}
	};
	var callbackCustomer = function(callback){
		callback();
	};
	return{
		init: function(){
			return this;
		},
		load: function(settings){
			//TODO
			var scriptSrc = "http://www.mynewsdesk.com/javascripts/jsapi/"+ settings.feature +"/v"+ settings.version +"/"+ settings.feature +".js";
			createScriptElement({
				feature: settings.feature,
				version: settings.version,
				api_key: settings.api_key,
				charset: settings.charset,
				channel_id: settings.channel_id,
				src: scriptSrc,
				callback: settings.callback
			});
		}
	};
})().init();

