joomla_test/components/com_k2/js/k2.js
2020-01-02 22:20:31 +07:00

259 lines
7.8 KiB
JavaScript

/**
* @version $Id: k2.js 1987 2013-06-27 11:51:59Z lefteris.kavadas $
* @package K2
* @author JoomlaWorks http://www.joomlaworks.net
* @copyright Copyright (c) 2006 - 2013 JoomlaWorks Ltd. All rights reserved.
* @license GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
*/
var $K2 = jQuery.noConflict();
$K2(document).ready(function(){
// Generic function to get URL params passed in .js script include
function getUrlParams(targetScript, varName) {
var scripts = document.getElementsByTagName('script');
var scriptCount = scripts.length;
for (var a = 0; a < scriptCount; a++) {
var scriptSrc = scripts[a].src;
if (scriptSrc.indexOf(targetScript) >= 0) {
varName = varName.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var re = new RegExp("[\\?&]" + varName + "=([^&#]*)");
var parsedVariables = re.exec(scriptSrc);
if (parsedVariables !== null) {
return parsedVariables[1];
}
}
}
}
// Set the site root path
var K2SitePath = getUrlParams('k2.js', 'sitepath');
// Comments
$K2('#comment-form').submit(function(event){
event.preventDefault();
$K2('#formLog').empty().addClass('formLogLoading');
$K2.ajax({
url: $K2('#comment-form').attr('action'),
type: 'post',
dataType: 'json',
data: $K2('#comment-form').serialize(),
success: function(response){
$K2('#formLog').removeClass('formLogLoading').html(response.message);
if(typeof(Recaptcha) != "undefined"){
Recaptcha.reload();
}
if (response.refresh) {
window.location.reload();
}
}
});
});
$K2('.commentRemoveLink').click(function(event){
event.preventDefault();
var element = $K2(this);
$K2(element).parent().addClass('commentToolbarLoading');
$K2.ajax({
url: $K2(element).attr('href'),
type: 'post',
data: $K2('#comment-form input:last').serialize(),
success: function(response){
$K2(element).parent().removeClass('commentToolbarLoading');
if(response=='true'){
$K2(element).parent().parent().remove();
}
}
});
});
$K2('.commentApproveLink').click(function(event){
event.preventDefault();
var element = $K2(this);
$K2(element).parent().addClass('commentToolbarLoading');
$K2.ajax({
url: $K2(element).attr('href'),
type: 'post',
data: $K2('#comment-form input:last').serialize(),
success: function(response){
$K2(element).parent().removeClass('commentToolbarLoading');
if(response=='true'){
$K2(element).parent().parent().removeClass('unpublishedComment');
}
}
});
});
$K2('.k2ReportUserButton').click(function(event){
event.preventDefault();
if (confirm(K2Language[0])) {
var element = $K2(this);
$K2(element).parent().addClass('commentToolbarLoading');
$K2.ajax({
url: $K2(element).attr('href'),
type: 'GET',
success: function(response){
$K2(element).parent().removeClass('commentToolbarLoading');
alert(response);
}
});
}
});
$K2('#k2ReportCommentForm').submit(function(event){
event.preventDefault();
$K2('#formLog').empty().addClass('formLogLoading');
$K2.ajax({
url: $K2('#k2ReportCommentForm').attr('action'),
type: 'post',
data: $K2('#k2ReportCommentForm').serialize(),
success: function(response){
$K2('#formLog').removeClass('formLogLoading').html(response);
if(typeof(Recaptcha) != "undefined"){
Recaptcha.reload();
}
}
});
});
// Text Resizer
$K2('#fontDecrease').click(function(event){
event.preventDefault();
$K2('.itemFullText').removeClass('largerFontSize');
$K2('.itemFullText').addClass('smallerFontSize');
});
$K2('#fontIncrease').click(function(event){
event.preventDefault();
$K2('.itemFullText').removeClass('smallerFontSize');
$K2('.itemFullText').addClass('largerFontSize');
});
// Smooth Scroll
$K2('.k2Anchor').click(function(event){
event.preventDefault();
var target = this.hash;
$K2('html, body').stop().animate({
scrollTop: $K2(target).offset().top
}, 500);
});
// Rating
$K2('.itemRatingForm a').click(function(event){
event.preventDefault();
var itemID = $K2(this).attr('rel');
var log = $K2('#itemRatingLog' + itemID).empty().addClass('formLogLoading');
var rating = $K2(this).html();
$K2.ajax({
url: K2SitePath+"index.php?option=com_k2&view=item&task=vote&format=raw&user_rating=" + rating + "&itemID=" + itemID,
type: 'get',
success: function(response){
log.removeClass('formLogLoading');
log.html(response);
$K2.ajax({
url: K2SitePath+"index.php?option=com_k2&view=item&task=getVotesPercentage&format=raw&itemID=" + itemID,
type: 'get',
success: function(percentage){
$K2('#itemCurrentRating' + itemID).css('width', percentage + "%");
setTimeout(function(){
$K2.ajax({
url: K2SitePath+"index.php?option=com_k2&view=item&task=getVotesNum&format=raw&itemID=" + itemID,
type: 'get',
success: function(response){
log.html(response);
}
});
}, 2000);
}
});
}
});
});
// Classic popup
$K2('.classicPopup').click(function(event){
event.preventDefault();
if($K2(this).attr('rel')){
var json = $K2(this).attr('rel');
json = json.replace(/'/g, '"');
var options = $K2.parseJSON(json);
} else {
var options = {x:900,y:600}; /* use some default values if not defined */
}
window.open($K2(this).attr('href'),'K2PopUpWindow','width='+options.x+',height='+options.y+',menubar=yes,resizable=yes');
});
// Live search
$K2('div.k2LiveSearchBlock form input[name=searchword]').keyup(function(event){
var parentElement = $K2(this).parent().parent();
if($K2(this).val().length>3 && event.key!='enter'){
$K2(this).addClass('k2SearchLoading');
parentElement.find('.k2LiveSearchResults').css('display','none').empty();
parentElement.find('input[name=t]').val($K2.now());
parentElement.find('input[name=format]').val('raw');
var url = 'index.php?option=com_k2&view=itemlist&task=search&' + parentElement.find('form').serialize();
parentElement.find('input[name=format]').val('html');
$K2.ajax({
url: url,
type: 'get',
success: function(response){
parentElement.find('.k2LiveSearchResults').html(response);
parentElement.find('input[name=searchword]').removeClass('k2SearchLoading');
parentElement.find('.k2LiveSearchResults').css('display', 'block');
}
});
} else {
parentElement.find('.k2LiveSearchResults').css('display','none').empty();
}
});
// Calendar
if (typeof($K2().live) == "undefined") {
$K2('.k2CalendarBlock').on('click', '.calendarNavLink', function(event){
event.preventDefault();
var parentElement = $K2(this).parent().parent().parent().parent();
var url = $K2(this).attr('href');
parentElement.empty().addClass('k2CalendarLoader');
$K2.ajax({
url: url,
type: 'post',
success: function(response){
parentElement.html(response);
parentElement.removeClass('k2CalendarLoader');
}
});
});
}
else {
$K2('a.calendarNavLink').live('click', function(event){
event.preventDefault();
var parentElement = $K2(this).parent().parent().parent().parent();
var url = $K2(this).attr('href');
parentElement.empty().addClass('k2CalendarLoader');
$K2.ajax({
url: url,
type: 'post',
success: function(response){
parentElement.html(response);
parentElement.removeClass('k2CalendarLoader');
}
});
});
}
// Generic Element Scroller (use .k2Scroller in the container and .k2ScrollerElement for each contained element)
$K2('.k2Scroller').css('width',($K2('.k2Scroller').find('.k2ScrollerElement:first').outerWidth(true))*$K2('.k2Scroller').children('.k2ScrollerElement').length);
});
// Equal block heights for the "default" view
$K2(window).load(function () {
var blocks = $K2('.subCategory, .k2EqualHeights');
var maxHeight = 0;
blocks.each(function(){
maxHeight = Math.max(maxHeight, parseInt($K2(this).css('height')));
});
blocks.css('height', maxHeight);
});