/*global DARTY */
// Depends on Init.js
DARTY = DARTY || {};
DARTY.util = DARTY.util || {};
// <dependencies checking>
(function(){// Depends on Init.js
    var from = "DARTY.util.Mixin";
    var libs = ["DARTY.util.Init"];    
	if (DARTY && DARTY.util && DARTY.util.required) {    
        DARTY.util.required(libs, from);
    }
    else {
       if(DARTY && DARTY.DEBUG) {	
        alert("Missing library : DARTY.util.Init in " + from);
       } 
    }
})();
// </dependencies checking>
DARTY.util.Mixin = function(){ // methods that we can share with multiple objetcs
    // to avoid code duplication	
    // ------- private variables ---------------
    var serialize = function(){ // custom toString
        var output = [];
        for (var prop in this) {
            if (this.hasOwnProperty(prop) && this[prop] !== serialize) {				
				output.push(prop + ':' + this[prop]);				
            }
        }
        return output.join(', \n');
    };
    
    // ------ public properties & methods
    return {
        serialize: serialize
    };
}();