// depends on log4javascript.js

// last loaded site
var sc_cache_site;
// last page number
var sc_cache_paging = 0;
	
function sendOmniture (event) {
	if (window.Omniture_s) {
		Omniture_s.events=event;
		Omniture_s.t();
	}
}
	
function dl_checkCheckbox (checkboxId) {
	if (!mrm.$(checkboxId).prop('checked')) {
		mrm.$(checkboxId).prop('checked', true);
		//mrm.$(checkboxId + " ~ span:first" ).addClass('ui-checkbox-state-checked');
	}
}

function dl_uncheckCheckbox (checkboxId) {
	if (mrm.$(checkboxId).prop('checked')) {
		mrm.$(checkboxId).prop('checked', false);
		//mrm.$(checkboxId + " ~ span:first" ).removeClass('ui-checkbox-state-checked');
	}
}

//Controller Object
function ControllerObject(){
     this.listOfListeners = new Array();
}

ControllerObject.prototype.addListener = function(listenerId, listener) {
	if (listener.actionPerformed) {
     	this.listOfListeners[listenerId]=listener;
	} else {
		log.warn("Some object tryied to register as listener, but is not a legal Listener object. Name=" + listenerId); 
	}
}

ControllerObject.prototype.removeListener = function(listenerId) {
	if (this.listOfListeners[listenerId]) {
		this.listOfListeners[listenerId]=null;
	} 
}

ControllerObject.prototype.actionPerformed = function(type, parameter) {
    log.debug("ControllerObject - actionPerformed : type=" + type + " parameter=" + parameter);
    for (key in this.listOfListeners) {
        if ( this.listOfListeners[key] ) {
        	log.info("Action performed - iterating over listeners. Listener=" + key);
        	if(this.listOfListeners[key].actionPerformed) {
        		this.listOfListeners[key].actionPerformed(type, parameter);
        		log.debug("Listener=" + key + " finished performing the action.");    
        	} else {
        		log.warn("ControllerObject has an object that is not e legal listener.Its name is: " + key);   
        	}  
         }
    }
    if (window.mrm.ui.scrollbars) {
		if (window.mrm.ui.scrollbars.reinit) {
			log.debug("Re-initializing Scrollbar");
			//mrm.ui.scrollbars.remove();
			window.setTimeout(function(){window.mrm.ui.scrollbars.reinit();}, 50);
		}
	}
}

ControllerObject.prototype.goTo = function(site, parameter) {
	log.debug("Going to site: " + site + ". parameter=" + parameter);
	if (parameter == null) {
		parameter = sc_cache_paging;
	}
	this.actionPerformed(site, parameter);
	sc_cache_site = site;
	sc_cache_paging = parameter;
}

//Listener Object
function DefaultListener() {
}

DefaultListener.prototype.actionPerformed = function(type, parameter) {
     log.debug("DefaultListener.actionPerformed : type=" + type + " parameter=" + parameter);
}
