// --------------------------------------------------------------
// UNOBTRISUVE INITIALIZATION
// Author: Stefan Rausch
// Company: Skygate GmbH
// Created: 2009-07-24
// --------------------------------------------------------------

$(document).ready(function() {
	
  $.ajaxSetup ({
    // Disable caching of AJAX responses */
    cache: false
  });
  
  initTopicFilter();
  showjGrowlMessages();
  initjAlertConfirm();
  initJeditableFeatured();
  initJeditableTopic();
  initJeditableDOI();
  initSubmitFilter();
  initMultiSelect();
  
  
});

// --------------------------------------------------------------
// FUNCTIONS
// --------------------------------------------------------------

// jGrowlMessages -------------------------------------------

function showjGrowlMessages() {
	$.jGrowl.defaults.position = 'center';
	$('div#jGrowlMessage span').each(function(){
		msg = $(this).html(); 
		$.jGrowl(msg);
	});
}


// jAlert --------------------------------------------------- 
confirmed = false;
confirmed2 = false;
function initjAlertConfirm()
{

  
  // trigger a confirm whenever links of class confirm are pressed.
  $('a[rel=confirm]').click(function() { 
    link = $(this);
    jConfirm(link.attr('alt'), 'Attention', function(r) { if (r) { window.location.href = link.attr('href'); } });
    return false;
  });
  
  // trigger a confirm whenever input buttons of class confirm are pressed.
  $('input[rel=confirm]').click(function() { 
	button = $(this);
	if (!confirmed) {
      jConfirm($(this).attr('alt'), 'Attention', function(r) { if (r) { confirmed = r; button.trigger('click'); } });
      return false;
 	} else {
 	  return true;
 	}
    });
    
    // trigger a confirm whenever input buttons of class confirm are pressed.
  $('input[rel=confirm_action]').click(function() { 
	button = $(this);
	if (!confirmed) {
      jConfirm($(this).attr('alt'), 'Attention', function(r) { confirmed = true; if (!r) {confirmed2 = true}; button.trigger('click'); });
      return false;
    } else if (confirmed2) {
    	return true;
 	} else {
 	  var form = $(this).parents('form:first');
 	  form.append('<input type="hidden" name="confirmed" value="true" />');
 	  return true;
 	}
    });

}

// jEditable --------------------------------------------------- 
function initJeditableTopic() {
  if ($('#editableSelectTopic').length > 0)
  {
    relAttr = $('#editableSelectTopic').attr('rel').split('|');
    lurl = relAttr[0];
    surl = relAttr[1];
    article_id = relAttr[2];
    lurl = lurl + '?articleid=' + article_id;
    
    $('#editableSelectTopic').editable(function(value, settings) { 
        val = value.split('|');
        $.getJSON(surl, {id: val[0], articleid: article_id}, function(data){
          if (data.result == 'OK') {
            // do nothing
          } else {
            $.jGrowl(data.msg);
          }
        });
        return(val[1]);  
  	  }, { 
      loadurl : lurl,
      type    : 'select',
      submit  : 'OK',
      style   : 'display: inline',
      onblur  : 'cancel'
    });
     
  }
}

function initJeditableFeatured() {
  if ($('#editableSelectFeatured').length > 0)
  {
    relAttr2 = $('#editableSelectFeatured').attr('rel').split('|');
    lurl2 = relAttr2[0];
    surl2 = relAttr2[1];
    article_id2 = relAttr2[2];
    lurl2 = lurl2 + '?articleid=' + article_id2;
    
    $('#editableSelectFeatured').editable(function(value, settings) { 
        val = value.split('|');
        $.getJSON(surl2, {featured: val[0], articleid: article_id2}, function(data){
          if (data.result == 'OK') {
            // do nothing
          } else {
            $.jGrowl(data.msg);
          }
        });
        return(val[1]);  
  	  }, { 
      loadurl : lurl2,
      type    : 'select',
      submit  : 'OK',
      style   : 'display: inline',
      onblur  : 'cancel'
    });
     
  }
}


function initJeditableDOI() {
  if ($('#editableDOI').length > 0)
  {
    relAttr3 = $('#editableDOI').attr('rel').split('|');
    lurl3 = relAttr3[0];
    surl3 = relAttr3[1];
    article_id3 = relAttr3[2];
    lurl3 = lurl3 + '?articleid=' + article_id3;
    
    $('#editableDOI').editable(function(value, settings) { 
        val = value;
        console.log(val);
        $.getJSON(surl3, {doi: val, articleid: article_id3}, function(data){
          if (data.result == 'OK') {
            // do nothing
          } else {
            $.jGrowl(data.msg);
          }
        });
        return(val);  
  	  }, { 
      loadurl : lurl3,
      type    : 'text',
      submit  : 'OK',
      style   : 'display: inline',
      onblur  : 'cancel'
    });
     
  }
}

// initSubmitFilter  --------------------------------------------------- 
function initSubmitFilter()
{
  $('#articlelist_filter').change(function(){
    $(this).closest("form").submit();
  });
  
}

// TopicFilter  --------------------------------------------------------- 
function initTopicFilter()
{
  $('input.topicFilter').change(function(){
 	executeTopicFilter();
  });
}

function executeTopicFilter()
{
	var data = {}; // array
	
	data["typ"] = $('#topicFilter_typ').val();
	$('input[type="checkbox"]:checked').each(function(i){
			data[i+1]=$(this).val()
	    });
	
	var url = $('#ajaxUrl').val();
	
	$("div#articleList").mask("Reload...");
	$("div#articleList").load(url, data, function(){
		    $("div#articleList").unmask();
		  });
	
}

// MultiSelect ---------------------------------------------------------
function initMultiSelect() {
  
  //  multiselect for keywords
  if ($('.multiselect').length > 0)
  {
    $.localise('ui-multiselect', {/*language: 'en',*/ path: '/webapp/js/multiselect/js/locale/'});
    $(".multiselect").multiselect(
      {
        sortable: false,
        maxSelect: $(".multiselect").attr('rel')
      }
    );
  }
  
  // multiselect for assignment
  if ($('.multiselectAssign').length > 0)
  {
    $.localise('ui-multiselect', {/*language: 'en',*/ path: '/webapp/js/multiselect/js/locale/'});
    $(".multiselectAssign").multiselect(
      {
        sortable: false,
        maxSelect: $(".multiselectAssign").attr('rel')
      }
    );
    
    disabledSelected = $("#disableSelected").text();
    disabledSelected = disabledSelected.split("|");
    for(i=0;i<disabledSelected.length;i++) {
      $(".ui-multiselect li a.action[rel='"+disabledSelected[i]+"']").hide();
    }
    
  }
  
}




