/*
LANGUAGE SWITCH
*/
$(document).ready(function() {
  $('#language_switch').click(languageSelectionInit);
});

function languageSelectionHide() {
  $('#language-selection-menu').hide();
}

function languageSwitchSelect(type) {
  ui_language = type;
  
  $('#language_switch')[0].src = '../common/images/flag/'+ui_language+'.png';
  $('#language_switch')[0].title = msg_language_label+' '+msg_lang[ui_language];
  $('#language_switch')[0].alt = msg_language_label+' '+msg_lang[ui_language];
  
  document.location.replace('../toolkit/switch_language.php?lang='+ui_language+'&target='+document.location.href);
}

function languageSelectionInit(e) {
  if ($('#language-selection-menu').is(':hidden')) {

    // current selection
    
    //console.log(ui_language);
    
    $('#language-selection-menu a#language-selection-menu-item-' + ui_language).addClass('active');

    // position menu
    var offset = $(e.currentTarget).offset();
    $('#language-selection-menu').css('top', Math.round(offset.top + 15) + 'px');
    $('#language-selection-menu').css('right', Math.round($(document).width() - offset.left - 20) + 'px');

    // show menu
    $('#language-selection-menu').show();

    // hide if clicking on body
    $('body').one('click', function () {
      window.setTimeout('languageSelectionHide()', 100);
    });
    e.stopPropagation();
  }
  else {
    languageSelectionHide();
  }
}


/*
TRANSLATOR FUNCTION
*/
function sprintf() {
 var args = Array.prototype.slice.call(sprintf.arguments);
 if(this.length > 0) {
  // this is a prototype call via t("blablu", 'arg1')
  var myself = '';
  for(var ii=0;ii<this.length;ii++) {
    myself += this[ii];
  }
  args.unshift(myself);
 }
 
 if( args.length < 2 ) {
  return;
 }
 
 
 
 var data = args[ 0 ];
 
 for( var k=1; k<args.length; ++k ) {
 
  switch( typeof( args[ k ] ) )
  {
   case 'string':
    data = data.replace( /%s/, args[ k ] );
    break;
   case 'number':
    data = data.replace( /%d/, args[ k ] );
    break;
   case 'boolean':
    data = data.replace( /%b/, args[ k ] ? 'true' : 'false' );
    break;
   default:
    /// function | object | undefined
    break;
  }
 }
 return( data );
}
 
if( !String.sprintf ) {
 String.prototype.sprintf = sprintf;
 String.prototype.t = sprintf;
}

var t = sprintf;

