
$(document).ready(function(){


  (function($){
    $('#search-bar').autocomplete(    {
      source: function(request, response) {
        var sf = $("input[@name='search-type']:checked").val();
        var q = request.term.replace(/ /gi, '+');
          //alert("/search/list/"+sf+"/"+q);
          $.ajax({
          url: "/search/list/"+sf+"/"+q,
          dataType: "json",
          success: function(data) {
            response($.map(data, function(item) {
              return {
                label: item.name,
                value: item.name
              }
            }))
          }
        })
      },
      select: function(event, ui) {
        // manually put selected value into search input
        $('#search-bar').val(ui.item.value);
        $('#search-form').submit();

      }
    }
    );

    $('input[id=merge-search-for]').autocomplete(    {
      source: function(request, response) {
        var sf = $("input[name=search_type]").val();
        var q = request.term.replace(' ', '+');
        $.ajax({
          url: "/search/"+sf+"/"+q,
          dataType: "json",
          success: function(data) {
            $(".search-results").empty().html("<h3>Select items to merge</h3>");
            response($.map(data, function(item) {
              $(".search-results").append('<p><input type="checkbox" id="merge_ids" name="merge_ids" value="'+item.id+'" />&nbsp;<a href="/'+sf+'/'+item.id+'" target="_blank">'+item.name+'</a></p>');
            }))
            $(".search-results").append('<input type="button" name="preview" value="Preview Merge" onclick="javascript:previewMerge(); return false;" >');
          }
        })
      }
    }
    );
  })(jQuery);



/*
  $(function (){
    $('.nag-button').click(function() {
    	//alert(this.href);
      var url = this.href;
      //var params = getQueryParams(url);
      // Not used in CI as url does not contain ?params
      // this was a bit of a double purposed call - if the url had no params (as when user is logged in)
      // the call to getQueryParams would crash and therefore the link would be followed otherwise it would launch the modal window
      // we will need to trap pn something else.....or just put a ?ajax=yes in the URL if the user is not logged in...
      if (url.substr(-4)!='ajax'){
      	return(true);
      }
      var modalSignUpForm = $('<div style="display:hidden"></div>').appendTo('body');
      // if this is a text link (J/T) then grab J/T name from the a tag.
      // If a button (for Horse) then grad the horse name from the H! element.
      var entityName = this.innerHTML || $('#horse-name').text();
      // load remote content
      modalSignUpForm.load(
        url,
        {},
        function (responseText, textStatus, XMLHttpRequest) {
          modalSignUpForm.dialog({
            height: 228,
            width: 377,
            modal: true,
            resizable: false,
            title: "Nag Me about " + entityName
          });
        }
        );
      //prevent the browser to follow the link
      return false;
    });
  });
*/
  // retuns array of query params on a given URL
  function getQueryParams( val ) {
    //Use the window.location.search if we don't have a val.
    var query = val || window.location.search;
    query = query.split('?')[1]
    var pairs = query.split('&');
    var retval = {};
    var check = [];
    for( var i = 0; i < pairs.length; i++ ) {
      check = pairs[i].split('=');
      retval[decodeURIComponent(check[0])] = decodeURIComponent(check[1]);
    }

    return retval;
  }

  if($("table[class~=display]").length > 0) {
    $("table[class~=display]").dataTable({"sPaginationType": "full_numbers","iDisplayLength": 15});
  }

});

// checks a radiobox by clicking on it's label. Or rather it's SPAN.'
function checkRadioButton(span){
  var searchType = span.innerHTML.toLowerCase();
  $('#search-type-'+searchType).attr('checked', 'checked');
}
// Nag requests submission
// Nag requests submission
function nagMeSubmission() {
	//alert('XXX');
  jQuery.validator.setDefaults({
    errorContainer: "#error-box",
    errorLabelContainer: "#error-box"
  });

  if ($("#nag_form_entry").validate().element( "#email" )) {
    $('#email').attr('readonly', 'readonly');
    return true;
  }
  else {
    return false;
  }
}

function previewMerge() {
  var sf = $("input[name=search_type]").val();
  var ids = "";
  var count = 0;
  $("#merge_ids:checked").each(function() {
    ids += $(this).val() +'|';
    count++;
  });
  if( count <= 1 )
  {
    alert( "Please select more than one item to merge" );
    return false;
  }
  window.location="/nagmin/fixduplicate/"+sf+"/"+ids;
}

/* -------------------------------------------------------------------------------- */

window.gbModalOn    = false;

function openModal()
{
    $('#signInBoxOuter').show();
    $('#modalOverlay').show();
	$('#strLoginEmail').focus();
    window.gbModalOn    = true;
}

function closeModal()
{
    $('#modalOverlay').hide();
    $('#signInBoxOuter').hide();
    window.gbModalOn    = false;
}

$(document).ready(function()
{
    $('#signIn, #btnSignUp').click(function(e)
    {
		e.preventDefault();

        if (window.gbModalOn)
        {
            closeModal();
        }
        else
        {
            openModal();
        }
    });

    $('#signOut').click(function()
    {
        window.location = "/logout";
    });

    $('#modalOverlay, #signInBoxInner #signInBoxHeader').click( function(){closeModal()} );
    $('#signIn').mouseenter(function(){$(this).addClass('hoverHighlight')}).mouseout(function(){$(this).removeClass('hoverHighlight')});

    $(document).keypress(function (event)
    {
//        alert("event.keyCode = " + event.keyCode);
        if (event.keyCode === 27 && window.gbModalOn)
        {
            closeModal();
        }
    });

    $('.modalCloseButton').click(function() { $.modal.close() });

    $('.nagSaveButton .nag-button').click(function()
    {
        $('#frmSaveNag').get(0).submit();
    });
    
    $('#strLoginPassword').keydown(function(_oEvent)
    {
    	if (_oEvent.which == 13)
    	{
    		doLogin();
    	}
    });

});

function validateSaveNote()
{
    var sNote       = $('#txtNoteText').val();

    if(!sNote)
    {
        var sMsg    = "Your note cannot be empty.";
        alert(sMsg);
        return false;
    }

    return true;
}

function doLogin()
{
    var sEmail      = $('#strLoginEmail').val();
    var sPassword   = $('#strLoginPassword').val();
    var bRemember   = $('#chkRememberMe').get(0).checked;

//    $("#hidLoginEmail").val(sEmail);
//    $("#hidLoginPassword").val(sPassword);
//    $("#frmLogin").get(0).submit();

    var aParams     = { email: sEmail, password: sPassword, remember: bRemember, ajax: true };

//    alert(aParams);

    $.post("/login", aParams, function(xData) { processLogin(xData); }, "xml" );
}

function doNagLogin()
{
    var sEmail      = $('#strNagLoginEmail').val();
    var sPassword   = $('#strNagLoginPassword').val();
    var bRemember   = $('#chkNagRememberMe').get(0).checked;

    var aParams     = { email: sEmail, password: sPassword, remember: bRemember, ajax: true };

//    alert(aParams);

    $.post("/login", aParams, function(xData) { processLogin(xData, true); }, "xml" );
}

function processLogin(_xData, _bAddNag)
{
//    alert("_xData: " + $(_xData).text());
    var iReturnCode     = $(_xData).find('ReturnCode').text();
    if (iReturnCode > 0)
    {
        if (_bAddNag)
        {
            var iObjectType = $('#hidObjectType').val();
            var iObjectID   = $('#hidObjectID').val();

//    		alert("/addnag/" + iObjectType + "/" + iObjectID);

            window.location     = "/addnag/" + iObjectType + "/" + iObjectID;
        }
        else
        {
            window.location    = "/myalerts/horse";
        }
    }
    else
    {
        var sError      = "Login failed";
        // sError = $(_xData).find('ReturnMsg').text();

//      alert("_bAddNag = " + _bAddNag);

        if (_bAddNag)
        {
            $('#nagLoginError').text(sError);
        }
        else
        {
            $('#loginError').text(sError);
        }
    }
}

function editNote(_iNoteID)
{
    var sNoteText       = $('#noteText_' + _iNoteID).text();
    var sNoteDate       = $('#noteDate_' + _iNoteID).text();

    $('#hidNoteID').val(_iNoteID);

    $('#noteModalTimestamp').text(sNoteDate);
    $('#txtNoteText').val(sNoteText);
    $('#hidNotePostAction').val("ADDEDIT_NOTE");
    $('#centerModal DIV.modalContents').addClass("modalOff");
    $('#centerModal #noteModalContent').removeClass("modalOff");

    $('#centerModal').modal({overlayClose:true, close:true});
}

function getCurrentDateTime()
{
    var aMonths         = new Array("Jan", "Feb", "Mar", "Apr", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
    var dNow            = new Date();
    var sDay            = dNow.getDate();
    var sMonth          = aMonths[dNow.getMonth()];
    var sYear           = dNow.getFullYear();
    var sHour           = dNow.getHours();
    var sMinute         = dNow.getMinutes();

    if (sHour < 10)
    {
        sHour           = "0" + sHour;
    }

    if (sMinute < 10)
    {
        sMinute         = "0" + sMinute;
    }

    sDate               = sDay + " " + sMonth + " " + sYear + " | " + sHour + ":" + sMinute;
    return sDate;
}

function addNote(_iAlertID)
{
    $('#hidNoteID').val(0);

    $('#frmSaveNote').attr("action", "/editalert/" + _iAlertID);
    $('#hidAlertID').val(_iAlertID);

    sNoteDate           = getCurrentDateTime();
    $('#noteModalTimestamp').text(sNoteDate);

    $('#hidNotePostAction').val("ADDEDIT_NOTE");
    $('#centerModal DIV.modalContents').addClass("modalOff");
    $('#centerModal #noteModalContent').removeClass("modalOff");

    $('#centerModal').modal({overlayClose:true, close:true});
}

function deleteNote(_iNoteID)
{
    $('#hidNoteID').val(_iNoteID);

    var sMsg    = "Are you sure you want to remove this note?";
    if (confirm(sMsg))
    {
        $('#hidNotePostAction').val("REMOVE_NOTE");
        $('#frmSaveNote').get(0).submit();
    }
}

function addNag(_iObjectType, _iObjectID, _sShortDesc, _sLongDesc)
{
    $('#nagModalContent #hidObjectType').val(_iObjectType);
    $('#nagModalContent #hidObjectID').val(_iObjectID);
    $('#nagModalContent #modalNagTitle').text("Nag Me about " + _sShortDesc);
    $('#nagModalContent #nagModalHorse').text(_sLongDesc);

    $('#centerModal DIV.modalContents').addClass("modalOff");
    $('#centerModal #nagModalContent').removeClass("modalOff");

    $('#centerModal').modal({overlayClose:true, close:true});
}

function doNagRegister()
{
    var iObjectType = $('#hidObjectType').val();
    var iObjectID   = $('#hidObjectID').val();

    document.location = "/register/" + iObjectType + "/" + iObjectID;
}

function confirmDelete()
{
    var sMsg    = "Are you sure you want to delete this alert?";
    return confirm(sMsg);
}

function reloadHomepage()
{
    $("#homepageCards").load("/homereload");
}

/* -------------------------------------------------------------------------------- */

