$(document).ready(function()
{
    // assign only if login field is available
      if( $('#widget-user-login').length > 0 ) {
        // assign click
        $('#widget-user-login').click( function() {
          widgetUserLogin();
        });
      }

      if( $('#widget-user-logout').length > 0 ) {
        $('#widget-user-logout').click( function() {
          widgetUserLogout();
        });
      }

      if( $('#widget-user-forgot-password').length > 0 ) {
        $('#widget-user-forgot-password').click(function() {
          widgetForgotPassword();
        });
      }

      if( $('#widget-user-new-register').length > 0 ) {
        $('#widget-user-new-register').click(function() {
          widgetNewRegister();
        });
      }

      $("#dialog-widget-forgot-password").dialog({
         autoOpen:false,
         modal:true,
         width:600,
         resizable:false,
            open: function()
            {
                projectTheme(this);
            }
      });
      
      if($("#newsletterConfirmed").length > 0 && $("#newsletterConfirmed").val() == 1)
      {
          $("#dialog-widget-newsletter-confirm").dialog({
              autoOpen: false,
              modal:true,
              width:600,
              resizable:false
          });
          $("#dialog-widget-newsletter-confirm").dialog("open");
      }
      
})

/*
 * WIDGET IMPROVEMENT SUGGESTION
 * 
 */

function widgetImprovementSuggestion(navigationID)
{
    $("#dialog-widget-improvement-suggestion").dialog("open");
}

function widgetImprovementSuggestionSend()
{
    var email = $("#improvement-suggestion-email").val();
    var name = $("#improvement-suggestion-name").val();
    var text = $("#improvement-suggestion-text").val();
    var navigationID = $("#improvement-suggestion-navigationID").val();
    
    if(email != "" && name != "" && text != "")
    {
        var rt = AjaxAPI('CoreWidget', 'sendImprovementSuggestion', {email: email, name:name, text:text, navigationID:navigationID});
        
        $("#improvement-suggestion-email").val('');
        $("#improvement-suggestion-name").val('');
        $("#improvement-suggestion-text").val('');
        
        $("#improvement-suggestion-feedback").html("<div class=\"formular-valid\">"+TextConstantJavascriptWidgetImprovementSuggestionThankYou+"</div>");
    }
    else
    {
        $("#improvement-suggestion-feedback").html("<div class=\"formular-error\">"+TextConstantJavascriptWidgetImprovementSuggestionPleaseFillInAllTheBlanks+"</div>");
    }
}

/*
 * WIDGET USER LOGIN
 *
 */

function widgetUserLogin() {
  var form = $('#widget-user-login-form');

  formValid = false;

  form.find('.formCheckValue').each(function(i, input) {
    input = $(input);
    if( input.attr('name') == 'username' && ( input.val() != TextConstantJavascriptWidgetUserLoginUsername) )
      formValid = true;
    if( input.attr('name') == 'password' && ( input.val() != TextConstantJavascriptWidgetUserLoginPassword) )
      formValid = true;
  });

  if( formValid === true )
    form.submit();

//  serialized = form.serialize();
}

/*
 * WIDGET USER LOGOUT
 *
 */

function widgetUserLogout() {
  if( $('#widget-user-logout-form').length > 0 )
    $('#widget-user-logout-form').submit();
}

/*
 * WIDGET SEARCH
 *
 */

function widgetUserSearchChangePerSite(pagesPerSite) {
  var contentCenter = $('div#content ul#content-center');
  var searchValue = contentCenter.data('searchValue');
  widgetUserSearchShow(searchValue, true, 1, pagesPerSite);
}

function widgetUserSearchShow(searchValue, showSearchResults, searchPage, pagesPerSite) {
  searchValue = searchValue || 0;
  pagesPerSite = pagesPerSite || null;
  // will take all values from session
  var contentCenter = $('div#content ul#content-center');
  var result = AjaxAPI('CommonDPI', 'search', {'input':searchValue, 'showSearchResults':showSearchResults, 'searchPage':searchPage, 'pagesPerSite':pagesPerSite});

  // see if search results are already present, if so remove it
  if( $('#widget-search-results').length > 0 )
    $('#widget-search-results').remove();
  // find all outerBoxes
  if( showSearchResults === true )
    contentCenter.find('li.outerBox').hide();
  else
    contentCenter.find('li.outerBox').show();
  // prepend results
  contentCenter.prepend(result);
  contentCenter.data('searchValue', searchValue);
  // bind functions
  widgetUserSearchBinds(contentCenter);
}

function widgetUserSearch(searchInput) {
  searchInput = searchInput || null;
  var searchValue;
  // search input
  if( searchInput === null ) {
    searchInput = $('#widget-user-search-form :input');
    searchValue = $.trim(searchInput.val());
  }
  else
    searchValue = searchInput;

  // mehr als 2 buchstaben
  if( searchValue.length > 2 && searchValue != TextConstantJavascriptWidgetSearch ) {
    // 
    var result = AjaxAPI('CommonDPI', 'search', {'input':searchValue, 'showSearchResults':true}); 
    var contentCenter = $('div#content ul#content-center');

    // find all outerBoxes
    contentCenter.find('li.outerBox').hide();

    // see if search results are already present, if so remove it
    if( $('#widget-search-results').length > 0 )
      $('#widget-search-results').remove();

    // prepend results (top of #content)
    contentCenter.prepend(result);
    contentCenter.data('searchValue', searchValue);

    widgetUserSearchBinds(contentCenter);
  }
  else
  {
      alert(TextConstantJavascriptWidgetSearchPleaseEnterAtLeastTwoChars);
  }
}

function widgetUserSearchBinds(contentCenter) {
  // bind close click
  $('div#layer-search-button-cancel').unbind('click').click(function() {
    var result = AjaxAPI('CommonDPI', 'clearSearchResults', {});
    $('#widget-search-results').remove();
    contentCenter.find('li.outerBox').show();
  });

  // user actions for pages list [1] [2] etc
  var pages = $('ul.widget-pages-list-box li');
  pages.each(function() {
    var button = $(this);

    if( button.hasClass('widget-pages-nolist-item') === false ) {
      button
      .mouseover(function() {
        if( button.hasClass('pages-list-item-selected') === false )
          button.addClass('pages-list-item-hover');
        else
          button.removeClass('pointer');
      })
      .mouseout(function() {
        button.removeClass('pages-list-item-hover');
        button.addClass('pointer');
      })
      .click(function() {
        pages.removeClass('pages-list-item-selected');
        button.addClass('pages-list-item-selected');
        contentCenter.data('searchPage', searchPage);
        var searchValue = contentCenter.data('searchValue');
        var searchPage = $.trim(button.text());

        widgetUserSearchShow(searchValue, true, searchPage);
      });
    }
  });
}

function widgetUserScroll(scrollTo) {
  var scrollTo = scrollTo || null;

}

function widgetUserCancel() {
  

}

function widgetNewsletterDialog( type ) {
  // 
  var dialogType = type || 'anmelden';
  // 
  $('#dialog-widget-newsletter-'+dialogType).dialog({
    modal:true,
    width:600,
    resizable:false,
    draggable:true,
    position: ['center', 'center'],
    open: function() {
      projectTheme(this);
    }
  }).dialog('open');
  
  // name
  if($("#widget-newsletter-name").length > 0)
    if($("#widget-newsletter-name").val() != "" && $("#widget-newsletter-name").val() != $("#widget-newsletter-name-default").val())
        $("#newsletter_subscribe_lastname").val($("#widget-newsletter-name").val());

  // gender
  if($("#widget-radio-newsletter-gender").val() == 1)
  {
      $("#newsletter_subscribe_genderMale").attr('checked', true);
      $("#newsletter_subscribe_genderFemale").attr('checked', false);
  }
  else if($("#widget-radio-newsletter-gender").val() == 0)
  {
      $("#newsletter_subscribe_genderMale").attr('checked', false);
      $("#newsletter_subscribe_genderFemale").attr('checked', true);
  }
  
  // email
  if($("#widget-newsletter-email").length > 0)
  {
      if($("#widget-newsletter-email").val() != "" && $("#widget-newsletter-email").val() != $("#widget-newsletter-email-default").val())
      {
            $("#newsletter_subscribe_email").val($("#widget-newsletter-email").val());
            $("#newsletter_subscribe_email_confirm").val($("#widget-newsletter-email").val());
      }
  }
}

function widgetNewsletterSendSubscribeForm() {

   var firstname = $('#newsletter_subscribe_firstname');
   var lastname = $('#newsletter_subscribe_lastname');
   var email = $('#newsletter_subscribe_email');
   var email_confirm = $('#newsletter_subscribe_email_confirm');
   var country = $('#newsletter_subscribe_country');
   var radioGenderMale = $("#newsletter_subscribe_genderMale");
   var radioGenderFemale = $("#newsletter_subscribe_genderFemale");

   if(email.val() == "" || email_confirm.val() == "")
      $("#newsletter_subscribe_feedback").html("<div class=\"formular-error\">"+TextConstantJavascriptWidgetNewsletterSignInPleaseFillInAllTheBlanks+"</div>");
   else if(email.val() != email_confirm.val())
      $("#newsletter_subscribe_feedback").html("<div class=\"formular-error\">"+TextConstantJavascriptWidgetNewsletterSignInEmailConfirmationFailed+"</div>");
   else
   {
      var gender = ($(radioGenderMale).attr('checked') === false) ? 1 : 0;
      
      AjaxAPI('CoreNewsletter', 'newRecipient', {gender: gender, firstName: firstname.val(), lastName: lastname.val(), email:email.val()}, function(response)
      {
         switch(response)
         {
            // success
            case "0":
               $("#newsletter_subscribe_feedback").html("<div class=\"formular-valid\">"+TextConstantJavascriptWidgetNewsletterSignInSuccess+"</div>");
               firstname.val('');
               lastname.val('');
               email.val('');
               email_confirm.val('');
               $(radioGenderMale).attr('checked', false);
               $(radioGenderFemale).attr('checked', false);
               break;
            // email
            case "1":
               $("#newsletter_subscribe_feedback").html("<div class=\"formular-error\">"+TextConstantJavascriptWidgetNewsletterSignInEmailValidationFailed+"</div>");
               break;
            // already recipient
            case "2":
               $("#newsletter_subscribe_feedback").html("<div class=\"formular-error\">"+TextConstantJavascriptWidgetNewsletterSignInEmailAlreadyExists+"</div>");
               break;
         }
      });
   }
}

function widgetNewsletterSendUnsubscribeForm() {
   var email = $('#newsletter_unsubscribe_email');
   var email_confirm = $('#newsletter_unsubscribe_email_confirm');

   if(email.val() == "" || email_confirm.val() == "")
   {
      $("#newsletter_unsubscribe_feedback").html("<div class=\"formular-error\">"+TextConstantJavascriptWidgetNewsletterSignOutPleaseFillInAllTheBlanks+"</div>");
   }
   else if(email.val() != email_confirm.val())
   {
      $("#newsletter_unsubscribe_feedback").html("<div class=\"formular-error\">"+TextConstantJavascriptWidgetNewsletterSignOutEmailConfirmationFailed+"</div>");
   }
   else
   {
      AjaxAPI('CoreNewsletter', 'deleteRecipient', {email:email.val()}, function(response)
      {
         switch(response)
         {
            // success
            case "0":
               $("#newsletter_unsubscribe_feedback").html("<div class=\"formular-valid\">"+TextConstantJavascriptWidgetNewsletterSignOutSuccess+"</div>");
               email.val('');
               email_confirm.val('');
               break;
            // email
            case "1":
               $("#newsletter_unsubscribe_feedback").html("<div class=\"formular-error\">"+TextConstantJavascriptWidgetNewsletterSignOutEmailValidationFailed+"</div>");
               break;
            // email not found
            case "2":
               $("#newsletter_unsubscribe_feedback").html("<div class=\"formular-error\">"+TextConstantJavascriptWidgetNewsletterSignOutNoSuchEmail+"</div>");
               break;
         }
      });
   }
}

function widgetForgotPassword() {
   $("#dialog-widget-forgot-password").dialog("open");
}

function widgetForgotPasswordSend()
{
   var email = $("#forgotPasswordEmail");
   var email_confirm = $("#forgotPasswordEmailConfirm");

   if(email.val() == "" || email_confirm.val() == "")
      $("#forgotPasswordFeedback").html("<div class=\"formular-error\">"+TextConstantJavascriptWidgetForgotPasswordPleaseFillInAllTheBlanks+"</div>");
   else if(email.val() != email_confirm.val())
      $("#forgotPasswordFeedback").html("<div class=\"formular-error\">"+TextConstantJavascriptWidgetForgotPasswordEmailConfirmationFailed+"</div>");
   else
   {
      $("#forgotPasswordFeedback").html("<div class=\"formular-valid\">"+TextConstantJavascriptWidgetForgotPasswordSuccess+"</div>");
      email.val('');
      email_confirm.val('');
   }

}

function widgetNewRegister() {
//      alert('click');
}
