/*
	Nom: aca.js
	Actualitzat: 2010-05-03
	Per: Oscar Sanchez Casamitjana
*/

///////////////////////////////////////////////////////////////////////////
// Definició de rutes requerides per la biblioteca YUI
if (!baseYUI2) {
  var baseYUI2 = "../tercers/yui/2/";
} 
if (!baseYUI3) {
  var baseYUI3 = "../tercers/yui/3/";
} 
if (!baseYUI2SkinACAWeb) {
  var baseYUI2SkinACAWeb = "../temes/yui-skin-aca-web/2/";
} 
if (!baseYUI3SkinACAWeb) {
  var baseYUI3SkinACAWeb = "../temes/yui-skin-aca-web/3/";
} 
///////////////////////////////////////////////////////////////////////////

YUI({

  base: baseYUI3

}).use('node', 'selector-css3', function(Y) {

  Y.on("domready", function() {
  
  	///////////////////////////////////////////////////////////////////////////
  	// Indicador JS al document
    Y.get('html').addClass('js');    

  	var submenu = Y.get('ul.menu-aca li.desplegat ul li.desplegat');
  	if (submenu) {
  		submenu.removeClass('desplegat');
  		// TODO: pulir el selector
  		// submenu.parent().siblings('a.actual').removeClass('actual');
  		Y.get('ul.menu-aca > li.desplegat > a').removeClass('actual');
  	}

  	///////////////////////////////////////////////////////////////////////////
    // Inserció d'elements extra per grafisme		
  	// Mòduls
    Y.all('div.registre-usuaris,div.preguntes-frequents,div.destacat-descripcio,div.destacat-llista,div.index,div.proces,div.menu-aplicacio,div.marcadors-tipus,p.retorn-marcadors-tipus,div.destacats-botons-agrupats,div.directe-a-botons,div.corporatiu,div.calendari-activitats,div.visor-multimedia,div.multimedia,div.taula-retorn-marcadors,div.missatge').append('<div class="s-e"></div><div class="s-d"></div><div class="i-e"></div><div class="i-d"></div>'); 
  	// Capçaleres
  	Y.all('div.capsalera-especial').append('<div class="fons-columnes"><div class="col"><div class="esq"></div><div class="dre"></div></div><div class="col"><div class="esq"></div><div class="dre"></div></div><div class="col final"><div class="esq"></div><div class="dre"></div></div></div>');
  	// Titulars
  	Y.all('p.titular, p.titular-informatiu, table.titol-destacat caption em.destacat').append('<span class="s-e"></span><span class="s-d"></span><span class="i-e"></span><span class="i-d"></span>');
  	// Destacats
  	Y.all('ul.destacats-panoramics li > a:not(.arxiu)').prepend('<span class="s-e"></span><span class="s-d"></span><span class="i-e"></span><span class="i-d"></span>');			
    Y.all('ul.destacats-quadrats li a, ul.destacats-quadrats-alternatius li a, ul.destacats-quadrats-petits li a').append('<span class="s-e"></span><span class="s-d"></span><span class="i-e"></span><span class="i-d"></span>');
  	Y.all('ul.destacats-botons li,ul.destacats-botons-alt li').append('<div class="s-e"></div><div class="s-d"></div><div class="i-e"></div><div class="i-d"></div>');	
  	Y.all('dl.destacat-publicacio dd').append('<div class="s-e"></div><div class="s-d"></div><div class="i-e"></div><div class="i-d"></div>');
  	// Paginadors per taules
  	Y.all('div.paginador-superior').append('<div class="s-e"></div><div class="s-d"></div>');
  	Y.all('div.paginador-inferior').append('<div class="i-e"></div><div class="i-d"></div>');
  	// Pestanyes
    Y.all('.yui-nav li a, .pestanyes-menu .yui-nav li a').append('<span class="s-d"></span>');

    ///////////////////////////////////////////////////////////////////////////
    // Suplència de CSS per camps d'entrada IEs
    if ((Y.UA.ie != 0) && (Y.UA.ie < 8) ) {
      if (Y.all('form input, form textarea, form select').size()) {
        Y.on('focus', function() {
          this.addClass('focus');
        }, ['form input', 'form textarea', 'form select']);
        Y.on('blur', function() {
            this.removeClass('focus');
        }, ['form input', 'form textarea', 'form select']);
      }
    }

  });

});

///////////////////////////////////////////////////////////////////////////
// Gestió de vistes de pestanyes dinàmiques usant TabView
YUI({

  base: baseYUI3,
  modules: { 
    'yui2-yde': { 
      fullpath: baseYUI2 + 'yahoo-dom-event/yahoo-dom-event.js'
    }, 
    'yui2-element': { 
      fullpath: baseYUI2 + 'element/element-min.js'
    }, 
    'yui2-tabview': { 
      fullpath: baseYUI2 + 'tabview/tabview-min.js',
      requires: ['yui2-yde', 'yui2-element']
    } 
  }

}).use('node', 'yui2-tabview', function(Y, result) {

  Y.on("domready", function() {
    
    if (!result.success) { 

      // Y.log('Load failure: ' + result.msg, 'warn', 'Example'); 

    } else {
    
      if (Y.all('#pestanyes-menu').size()) {
        var menuPestanyes = new YAHOO.widget.TabView('pestanyes-menu');
      }

    }
  
  });
  
});


///////////////////////////////////////////////////////////////////////////
// Gestió de noves finestres
// Les noves finestres només es poden obrir via JavaScript.
// Com hem d'avisar a l'usuari sobre la apertura de noves finestres,
// cal inserir aquesta informació addicional per aquesta mateixa via.
YUI({

  base: baseYUI3
  
}).use('node', function(Y) {

  Y.on("domready", function() {
    // Servirem el text del missatge segons l'idioma de la pàgina.
    switch (Y.get('html').getAttribute('lang')) {
      case "ca":
        Y.all('a.nova, p.iqua a').append(' <span class="text-aural">(obre una nova finestra)</span>').setAttribute('title', 'Obre una nova finestra');
        break;
      case "es":
        Y.all('a.nova, p.iqua a').append(' <span class="text-aural">(abre una nueva ventana)</span>').setAttribute('title', 'Abre una nueva ventana');
        break; 
      case "en":
        Y.all('a.nova, p.iqua a').append(' <span class="text-aural">(opens a new window)</span>').setAttribute('title', 'Opens a new window');
        break; 
    }
  
    // S'usen una sèrie de classNames per determinar les característiques de les noves finestres
    if (Y.all('a.nova').size()) {
      Y.on('click', function(e) {

        var tipus, nom, atributs, w, h;

        // TODO: reorganitzar processat de mides de finestra
        if (this.hasClass('arxiu')) {
          // Si és un arxiu obrim una finestra simplificada
          nom = "popupArxius";
          atributs = "toolbar=no,resizable=yes,scrollbars=yes,top=0,left=0";
          window.open(this.getAttribute('href'),nom,atributs);
        } else if (this.hasClass('zoom-imatge')) {
          // Els zooms d'imatge obren finestres amb mida definida
          nom = "popupImatges";
          w = this.getAttribute('class').match(/(^|\s)w-([\d]+)($|\s)/);
          h = this.getAttribute('class').match(/(^|\s)h-([\d]+)($|\s)/);
          w = (w && w[2]);
          h = (h && h[2]);
          atributs = "width=" + w + ",height=" + h + ",toolbar=no,resizable=yes,scrollbars=yes";
          window.open(this.getAttribute('href'),nom,atributs);
        } else if (this.hasClass('aplicatiu')) {
          // Les aplicacions s'obren en una nova finestra limitada (CWT)
          nom = "popupAplicatiu";
          if (this.hasClass('completa')) {
            w = screen.width;
            h = screen.height;
          } else {
            w = this.getAttribute('class').match(/(^|\s)w-([\d]+)($|\s)/);
            h = this.getAttribute('class').match(/(^|\s)h-([\d]+)($|\s)/);
            w = (w && w[2]);
            h = (h && h[2]);
          }
          atributs = "width=" + w + ",height=" + h + ",toolbar=no,resizable=yes,scrollbars=yes,top=0,left=0";
          window.open(this.getAttribute('href'),nom,atributs);
        } else if (this.hasClass('extern')) {
          // Els enllaços externs s'obren en un nova finestra estàndar (CWT).
          window.open(this.getAttribute('href'));
        } else {
          // Altres popups.
          nom = "generic";
          w = this.getAttribute('class').match(/(^|\s)w-([\d]+)($|\s)/);
          h = this.getAttribute('class').match(/(^|\s)h-([\d]+)($|\s)/);
          w = (w && w[2]);
          h = (h && h[2]);
          atributs = "width=" + w + ",height=" + h + ",toolbar=no,resizable=yes,scrollbars=yes";
          window.open(this.getAttribute('href'),nom,atributs);
        }

        e.preventDefault();
      }, 'a.nova');
    }

    // La finestra per l'iqua està hardcoded.
    if (Y.all('p.iqua a').size()) {
      Y.on('click', function(e) {
        window.open(this.getAttribute('href'),"iqua","toolbar=no,resizable=yes,width=600,height=450,scrollbars=yes");
        e.preventDefault();
      }, 'p.iqua a');
    }

  });
  
});


YUI({

  base: baseYUI3
  
}).use('node', function(Y) {

  Y.on('domready', function() {

    if (Y.all('p.iqua a').size()) {
      Y.on('click', function(e) {
        window.open(this.getAttribute('href'),"iqua","toolbar=no,resizable=yes,width=600,height=450,scrollbars=yes");
        e.preventDefault();
      }, 'p.iqua a');
    }
    
  });
  
});
