function initSlimbox() {
  jQuery(function($) {
    $("a[rel^='lightbox']").slimbox({/* Put custom options here */}, null, function(el) {
      return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
    });
  });
}

function activatePaging(name, callBack, itemsPerPage, paginationResultClass) {
  var resultCount = $('#' + name + 'Results div.' + paginationResultClass).length;
  
  if (resultCount > itemsPerPage) {
    $('#' + name).pagination(resultCount, { num_edge_entries:1, num_display_entries:7, ellipse_text:"...", callback:callBack, items_per_page:itemsPerPage });
  } else {
    $('#' + name + 'Results').css('display', 'block');
    $('#' + name + 'Spacer').css('display', 'none');
  }
}

function pagingCallBack(pageIndex, jq, name, itemsPerPage, paginationResultClass) {
  var maxElements = Math.min((pageIndex + 1) * itemsPerPage, $('#' + name + 'Results div.' + paginationResultClass).length);
  $('#' + name + 'Page').empty();
  
  for (var i = pageIndex * itemsPerPage; i < maxElements; i++) {
    $('#' + name + 'Page').append($('#' + name + 'Results div.' + paginationResultClass + ':eq(' + i + ')').clone());
  }

  return false;
}

function initIFrameSimpleModal(buttonID, iFrameSrcID, width, height, overlayClose, scrolling) {
  $(buttonID).click(function (e) {
    e.preventDefault();
    
    $.modal("<div>\
      <a href='#' title='Close' class='modalCloseX simplemodal-close'>x</a>\
      <div class='contact-content'>\
        <h1 class='contact-title' style='padding: 15px 0 6px 19px;'></h1>\
        <div class='contact-loading' style='display:none;margin-left:"+((width / 2) - 18)+"px;'></div>\
        <div class='contact-message' style='display:none'></div>\
        <div class='contact-bodycontainer' style='display:none;height:"+(height - 15)+"px;'>\
        <div class='contact-body'>\
        \
        </div>\
        </div>\
      </div>\
    </div>", {
      close: true,
      position: ["10%",],
      overlayId: 'contact-overlay',
      overlayClose: overlayClose,
      opacity: 70,
      containerId: 'contact-container',
      containerCss: { width: width },
      onOpen: contact.open,
      onShow: contact.show,
      onClose: contact.close
    });
  });
  
  var contact = {
    message: null,
    open: function (dialog) {
      $('#contact-container .contact-loading').css('display', 'block');
      $('#EditItemIFrame').attr("src", $(iFrameSrcID).val());
      
      // add padding to the buttons in firefox/mozilla
      if ($.browser.mozilla) {
        $('#contact-container .contact-button').css({
	        'padding-bottom': '2px'
        });
      }
      // input field font size
      if ($.browser.safari) {
        $('#contact-container .contact-input').css({
	        'font-size': '.9em'
        });
      }

      var h = height;
      
      dialog.overlay.fadeIn(200, function () {
        dialog.container.fadeIn(200, function () {
	        dialog.data.fadeIn(200, function () {
		        $('#contact-container .contact-content').animate({
			        height: h
		        }, function () {
			        $('#contact-container .contact-bodycontainer').css('display', 'block');
			        $('#EditItemIFrame').css('display', 'block');
			        $('#contact-container .contact-loading').fadeOut(500);
		        });
	        });
        });
      });
    },
    show: function (dialog) {
    
    },
    close: function (dialog) {
      $('#contact-container .contact-bodycontainer').css('display', 'none');
	    
      dialog.data.fadeOut(100, function () {
        dialog.container.fadeOut(100, function () {
	        dialog.overlay.fadeOut(200, function () {
		        $.modal.close();
	        });
        });
      });		    
    }
  }
}

function viewModal(buttonID, iFrameSrcID, src) {
  $(iFrameSrcID).val(src);
  $(buttonID).click();
}

function viewNewsStory(newsStoryID) {
  viewModal("#OpenNewsButton", "#NewsSrc", "ViewNewsStory.aspx?NewsStoryID=" + newsStoryID);
}

function editProfile(userID) {
  if (userID > 0) {
    viewModal("#OpenDataElementButton", "#DataElementSrc", "EditProfile.aspx?UserID=" + userID);
  }
}

function addCertification(userID) {
  viewModal("#OpenSmallDataElementButton", "#SmallDataElementSrc", "Certification.aspx?UserID=" + userID);
}

function addProfilePicture(userID) {
  viewModal("#OpenSmallDataElementButton", "#SmallDataElementSrc", "ProfilePicture.aspx?UserID=" + userID);
}

function addGuestBookEntry(userID) {
  viewModal("#OpenSmallDataElementButton", "#SmallDataElementSrc", "GuestBookEntry.aspx?UserID=" + userID);
}

function addDive(diveTripID) {
  if (diveTripID > 0) {
    viewModal("#OpenDataElementButton", "#DataElementSrc", "Dive.aspx?DiveTripID=" + diveTripID);
  } else {
    viewModal("#OpenDataElementButton", "#DataElementSrc", "Dive.aspx");
  }
}

function editDive(diveID, tab) {
  if (tab != '') {
    viewModal("#OpenDataElementButton", "#DataElementSrc", "ViewDive.aspx?DiveID=" + diveID + "&Tab=" + tab);
  } else {
    viewModal("#OpenDataElementButton", "#DataElementSrc", "ViewDive.aspx?DiveID=" + diveID);
  }
}

function addDiveBuddy() {
  viewModal("#OpenDataElementButton", "#DataElementSrc", "AddDiveBuddy.aspx");
}

function addLocation() {
  viewModal("#OpenDataElementButton", "#DataElementSrc", "Location.aspx");
}

function viewLocation(diveLocationID) {
  viewModal("#OpenDataElementButton", "#DataElementSrc", "Dive-Locations/" + diveLocationID + "/index.html");
}

function editLocation(diveLocationID) {
  viewModal("#OpenDataElementButton", "#DataElementSrc", "ViewLocation.aspx?DiveLocationID=" + diveLocationID);
}

function addCompany() {
  viewModal("#OpenDataElementButton", "#DataElementSrc", "/DiveShops/53/index.html");
}

function viewShop(diveShopID) {
  viewModal("#OpenDataElementButton", "#DataElementSrc", "Dive-Shops/" + diveShopID + "/index.html");
}

function editCompany(diveCompanyID) {
  viewModal("#OpenDataElementButton", "#DataElementSrc", "ViewCompany.aspx?DiveCompanyID=" + diveCompanyID);
}

function addEquipment() {
  viewModal("#OpenDataElementButton", "#DataElementSrc", "Equipment.aspx");
}

function viewEquipment(equipmentID) {
  viewModal("#OpenDataElementButton", "#DataElementSrc", "Dive-Equipment/" + equipmentID + "/index.html");
}

function editEquipment(equipmentID) {
  viewModal("#OpenDataElementButton", "#DataElementSrc", "ViewEquipment.aspx?EquipmentID=" + equipmentID);
}

function addMarineLife() {
  viewModal("#OpenDataElementButton", "#DataElementSrc", "MarineLife.aspx");
}

function viewMarineLife(marineLifeID) {
  viewModal("#OpenDataElementButton", "#DataElementSrc", "Marine-Life/" + marineLifeID + "/index.html");
}

function editMarineLife(marineLifeID) {
  viewModal("#OpenDataElementButton", "#DataElementSrc", "ViewMarineLife.aspx?MarineLifeID=" + marineLifeID);
}