//loadFirebugConsole();

// Intialize the DTM Loader
if(window.DTM_LOADER === undefined) {
	var DTM_LOADER = {};
	DTM_LOADER.widgets = {};
	DTM_LOADER.queue = [];
	// Define action to take once yui loader is present on the page
	DTM_LOADER.startup = function() {
		var startup = new YAHOO.util.YUILoader();
		startup.require(['event', 'dom']);
		startup.loadOptional = false;
		startup.insert({
			onSuccess:function() {
				DTM_LOADER.available = true;
//        YAHOO.util.Event.on(window, "load", DTM_LOADER.clearQueue);
        YAHOO.util.Event.onDOMReady(DTM_LOADER.clearQueue);
			}
		});
	}
	DTM_LOADER.addToQueue = function(widget) {
		DTM_LOADER.queue.push(widget);
	}
	DTM_LOADER.clearQueue = function() {
		if(DTM_LOADER.queue.length > 0) {
			var widget = DTM_LOADER.queue.shift();
			DTM_LOADER.load(widget);
			DTM_LOADER.clearQueue();
		}
	}
	DTM_LOADER.register = function(widget) {
		DTM_LOADER.addToQueue(widget);
		if(DTM_LOADER.available) {
			DTM_LOADER.clearQueue();
		}
	}
	DTM_LOADER.load = function(widget) {
		var module, requires = DTM_LOADER.widgets[widget].requires;
		DTM_LOADER.widgets[widget].loader = new YAHOO.util.YUILoader();
		for(var i=0; i<DTM_LOADER.widgets[widget].modules.length; i++) {
			module = DTM_LOADER.widgets[widget].modules[i];
			requires.push(module.name);
			DTM_LOADER.widgets[widget].loader.addModule(module);
		}
		DTM_LOADER.widgets[widget].loader.require(requires);
		DTM_LOADER.widgets[widget].loader.loadOptional = false;
		DTM_LOADER.widgets[widget].loader.data = DTM_LOADER.widgets[widget].launcher;
		DTM_LOADER.widgets[widget].loader.combine = true;
		DTM_LOADER.widgets[widget].loader.insert({
			onSuccess:function(launcher) {
				launcher.data();
			}
		});
	}
	DTM_LOADER.poll = function() {
		if(window.YAHOO !== undefined && YAHOO.util !== undefined && YAHOO.util.YUILoader !== undefined) {
			DTM_LOADER.startup();
		} else {
			window.setTimeout(DTM_LOADER.poll,10);
		}
	}
	// Add the Loader to the page if it is not defined
	if(window.YAHOO === undefined || YAHOO.util === undefined || YAHOO.util.YUILoader === undefined) {
		DTM_LOADER.yuiloader = function() {
			var s = document.createElement('script');
			s.setAttribute('type','text/javascript');
			//s.setAttribute('src','http://yui.yahooapis.com/2.5.2/build/yuiloader/yuiloader-beta-min.js');
			s.setAttribute('src','http://yui.yahooapis.com/2.8.1/build/yuiloader/yuiloader-min.js');
			document.getElementsByTagName('head')[0].appendChild(s);
		}();
	}
	DTM_LOADER.poll();
}

function generateFeedURL(options) {
	//console.log("returning sample feed..")
	if (options === null)
	   options = {};

	//return("/network_source/0.0.1/library/sad-badge/originals/core/j/sample_feed.js"); // For development

	//var base_url = "http://localhost.com:3000/"; // dev
	var base_url = "http://adopt.dogtime.com/"; // prod
  //var base_url = "http://adopt.staging.dogtime.com/"; // staging

	var species = options.species || 'dog';
	var url = base_url + "search/animals/"

  if (options.pap_shelter_id)
    url = url + "by_shelter/pap/" + options.pap_shelter_id + "/";

  url = url + species;

	if (options.breed)
		url += "/" + options.breed;

	url += "/widget.json?limit=20&callback=DTM.widget.sadBadge.callback"

	if (options.random)
	  url += '&random=' + options.random;

	return url;
}

if(DTM_LOADER.widgets.sadBadge === undefined) {
	DTM_LOADER.widgets.sadBadge = {};
	DTM_LOADER.widgets.sadBadge.domClass 	= "dtm-petchat-100";

  /* STAMPER OVERRIDES */
  var DEFAULT_SPECIES = "";
  var DEFAULT_BREED = "";
  var DEFAULT_PAP_SHELTER_ID = "";
  var DEFAULT_RANDOM = "";
  var OVERRIDE_SPECIES = "";
  var OVERRIDE_BREED = "";
  var OVERRIDE_PAP_SHELTER_ID = "";
  var OVERRIDE_RANDOM = "";

  var _dtm_species = "dog";
  var _dtm_breed = null;
  var _dtm_pap_shelter_id = null;
  var _dtm_random = null;

  if (DEFAULT_SPECIES != "")
    _dtm_species = DEFAULT_SPECIES;
  if (DEFAULT_BREED != "")
    _dtm_breed = DEFAULT_BREED;
  if (DEFAULT_PAP_SHELTER_ID != "")
    _dtm_pap_shelter_id = DEFAULT_PAP_SHELTER_ID;
  if (DEFAULT_RANDOM != "")
    _dtm_random = DEFAULT_RANDOM;

	if (window.dtm_species !== undefined)
		_dtm_species = window.dtm_species;
	if (window.dtm_breed !== undefined)
		_dtm_breed = window.dtm_breed;
  if (window.dtm_pap_shelter_id !== undefined)
    _dtm_pap_shelter_id = window.dtm_pap_shelter_id;
  if (window.dtm_random !== undefined)
    _dtm_random = window.dtm_random;

  if (OVERRIDE_SPECIES != "")
    _dtm_species = OVERRIDE_SPECIES;
  if (OVERRIDE_BREED != "")
    _dtm_breed = OVERRIDE_BREED;
  if (OVERRIDE_PAP_SHELTER_ID != "")
    _dtm_pap_shelter_id = OVERRIDE_PAP_SHELTER_ID;
  if (OVERRIDE_RANDOM != "")
    _dtm_random = OVERRIDE_RANDOM;

	DTM_LOADER.widgets.sadBadge.feedURL 	= generateFeedURL({'species':_dtm_species, 'breed':_dtm_breed, 'random':_dtm_random, 'pap_shelter_id':_dtm_pap_shelter_id});
	DTM_LOADER.widgets.sadBadge.assetURL 	= "http://partners.dogtime.com/network/0.0.1/assets/000/100/petchat/current/";
	DTM_LOADER.widgets.sadBadge.coreURL 	= "http://partners.dogtime.com/network/0.0.1/core/petchat/";
	DTM_LOADER.widgets.sadBadge.title 		= null;
	DTM_LOADER.widgets.sadBadge.appURL 		= "http://apps.facebook.com/save-a-dog";
	DTM_LOADER.widgets.sadBadge.modules 	= [	{ name : 'DTM.widget.sadBadge', type : 'js', fullpath : (DTM_LOADER.widgets.sadBadge.coreURL + 'j/dtm-sad-badge.js') },
																							  { name : 'DTM.widget.sadBadgeCSS', type : 'css', fullpath : (DTM_LOADER.widgets.sadBadge.assetURL + 'c/dtm-sad-badge.css') } ];
	DTM_LOADER.widgets.sadBadge.requires 	= ['dom', 'element', 'utilities', 'event', 'json', 'animation', 'element', 'carousel'];
	DTM_LOADER.widgets.sadBadge.launcher = function() {
		DTM.widget.sadBadge.init({ domClass : DTM_LOADER.widgets.sadBadge.domClass, url : DTM_LOADER.widgets.sadBadge.feedURL, coreURL : DTM_LOADER.widgets.sadBadge.coreURL, assetURL : DTM_LOADER.widgets.sadBadge.assetURL, title : DTM_LOADER.widgets.sadBadge.title, appURL : DTM_LOADER.widgets.sadBadge.appURL });
	};
	DTM_LOADER.register('sadBadge');
}

