//<![CDATA[
/*
 Copyright (c) 2007 Caridy Patiņo. All rights reserved.
 version 0.1.0
 Author: Caridy Patiņo (caridy at gmail.com)
*/
YAHOO.namespace("App");
(function() {

  var $B = YAHOO.Bubbling,
  	  $L = YAHOO.util.Lang,
	  $E = YAHOO.util.Event,
	  $D = YAHOO.util.Dom,
	  $ =  YAHOO.util.Dom.get;

	YAHOO.App.Core = function () {
	    var obj = {},
	        _mainContent = 'tms-story',
			_container = 'yui-cms-floating-wizard';
		try {
			obj.flags = DEFAULT_VARS;
		} catch(e) {
			obj.flags = {};
		}
        // Private Methods
		var actions = {
			actionFormFieldFocus: function (layer, args) {
				  var el = $B.getAncestorByTagName( args[1].target, 'A' );
				  if (el && el.id && (el.id.indexOf('setfocus') === 0)) {
				  	// calculating the form field ID
				  	var field = $(el.id.slice (8, el.id.length));
					if (field) {
					  field.focus();
					}
				  }
			},
			soundOnPlay: function(layer, args) {
				obj.playMusic();
				$D.removeClass('background-control', 'mute');
				return true;
			},
			soundOnMute: function(layer, args) {
				soundManager.stop('background-music');
				$D.addClass('background-control', 'mute');
				return true;
			}
		};
	    $B.on('navigate', function (layer, args) {
		  $B.processingAction (layer, args, actions);
	    });
	    $B.on('property', function (layer, args) {
		  args[1].stop = true;
		  args[1].decrepitate = true;
	    });
	    
    	// Public Vars
		obj.navHistory = [];
		obj.handleOverlay = null;

		// Turning on the monitors (by default, the bubbling core only monitors the browser window size)
		$B.initMonitors();

		// using the GOD layer to check common links
    	$B.on('god', function (layer, args) {
    		  var el = args[1].anchor,
			      m = $(_mainContent);
    		  if (el && !$B.getAncestorByClassName(el, 'external')) {
    			  var h = el.getAttribute("href",2)+'#',
    			  	  r = el.getAttribute("rel"),
    			  	  t = el.getAttribute("target"),
    				  l = document.location+'#';
				  h = h.substr (0, h.indexOf('#'));
				  l = l.substr (0, l.indexOf('#'));
    		  	  if ((h && ((h.indexOf('#') === 0) || (h.indexOf('javascript:') === 0) || ((h.indexOf('#') > 0) && (l.indexOf(h) === 0)))) ||
    			      (r == 'external') || (r == 'internal') || (t && t != '') || (h == '') || (h == l)) {
    				   return;
    		      }
				  // gettting the owner, by default the general container
				  var owner = $B.getAncestorByClassName( el, 'dynamic' ) || m;
				  if ($L.isObject(owner) &&  $D.hasClass(owner, 'yui-cms-wizard')) {
					  YAHOO.plugin.WizardManager.reload(owner, h);
					  args[1].stop = true;
    		      	  args[1].decrepitate = true;
				  }
    		  }
    	});
        // Public Methods
		obj.init = function () {
		  this.navHistory.push ( window.location.href );
		  this.initHints();
		  // redefining the effect for the mask
		  /*
		  YAHOO.widget.Loading.config({
		    fullscreen: true,
			effect: true
		  });
		  */
		  YAHOO.plugin.WizardManager.adopt( _mainContent, {
			uri: '/',
			dataMask: {'tpl':'tpls/none'},
			dynamic: true
		  });
		  obj.initSounds();	  
		};
		obj.initHints = function () {
            YAHOO.widget.TooltipManager.init();
            YAHOO.widget.TooltipManager.config ({
                width: '250px'
            });
			YAHOO.widget.TooltipManager.forbbiden = ['yui-skin-sam'];
            YAHOO.widget.TooltipManager.onCompile = function ( el, o ) {
            	this.body = this.backup.title || '';
              	return true;
            };
		};
		obj.playMusic = function () {
			soundManager.stop('background-music');
			soundManager.play('background-music');
			soundManager.setVolume('background-music',50);
			window.setTimeout (function() {
				if (!$D.hasClass('background-control', 'mute')) {
					obj.playMusic();
				}
			}, 270000);
		};
		obj.initSounds = function () {
			soundManager.url = TMS_THEMEPATH+'jscripts/';
			soundManager.debugMode = false;
			soundManager.useConsole = false;
			soundManager.consoleOnly = false;
			soundManager.flashVersion = 9;
			soundManager.onload = function() {
			  soundManager.createSound('background-music', '/sites/mateu.comarq.com/files/media/background.mp3');
			  soundManager.play('background-music');
			  obj.playMusic();
			}
		};
		obj.initHints();
		return obj;
	}();
	// Initialize and render dynamic elements using onContentReady event for each webpart
	$E.onDOMReady(YAHOO.App.Core.init, YAHOO.App.Core, true);
})();
//]]>