$.fn.sheduler = function (options) {
if (options === undefined) {
options = {
header_background: '', // header background
table_background: '', // table background
day_top_color: '', // day gradient top color
day_bottom_color: '', // day gradient bottom color
website_url: 'http://www.gameonlivesports.com.au', // web site root url
service_url: 'http://bugnet.gameonlivesports.com.au/SheduleService.svc', // service root url
title: 'scheduler', //scheduler title
service_root: "http://bugnet.gameonlivesports.com.au", // service hots root Url
titleLarge: 'Title large', // scheduler secon title part
venueID: 141, // venue id
theme: 'GAMEON', // theme name
facebook_link: "", // faceboo link
twitter_link: "", // twitter link
venue_Phone: '', // venue phone line for book_now
show_state: 1 // What view to show: 0 - search, 1 - normal, any other number - first match details, undefined - normal
};
}
if (options.website_url === undefined) {
options.website_url = 'http://www.gameonlivesports.com.au';
}
if (options.service_root === undefined) {
options.service_root = "http://bugnet.gameonlivesports.com.au";
}
if (options.service_url === undefined) {
options.service_url = 'http://bugnet.gameonlivesports.com.au/SheduleService.svc';
}
if (options.title === undefined) {
options.title = 'Some custom scheduler';
}
if (options.theme === undefined) {
options.theme = 'Default';
}
if (options.venueID === undefined) {
return;
}
$(document).on('click', '.go-tab_links li', function (e) {
$.ajax({
type: "POST",
url: options.service_url + '/GetMatchDetails?venueId=' + options.venueID + '&matchId=' + $(e.currentTarget).children('input').val(),
error: function () {
alert('server connection error');
},
dataType: "json",
success: function (resp) {
resp = resp;
$('.go-content-box').toggle();
var content = '' + 'Back
' + resp.GameTitle + '
' + resp.LeagueTitle + '
';
content += '' + resp.DateString + '
' + resp.StarTime + ' - ' + resp.EndTime + '
' + resp.VenueTimeZoneCode + '
';
content += '';
//aler(resp.FirstTeamImage);
if ((resp.FirstTeamImage != 'team-noimage.png') && (resp.SecondTeamImage != 'team-noimage.png')) {
content += '
' + resp.FirstTeam + '
';
content += '';
content += '' + resp.SecondTeam + '
';
}
else {
if ((resp.TournamentImage != 'team-noimage.png')) {
// aler(resp.TournamentImage);
content += '
';
}
else {
//aler(resp.TournamentImage);
content += '
';
}
content += '' + resp.MatchTitle + '';
}
content += '';
content += 'What\'s on Game Day?
';
for (var i = 0; i < resp.DayEvents.length; i++) {
content += '';
//content += '
';
content += '
';
content += '
' + resp.DayEvents[i].Title + '
';
if (resp.DayEvents[i].Price !== undefined && resp.DayEvents[i].Price != '0' && resp.DayEvents[i].Price !== '') {
content += '
$' + resp.DayEvents[i].Price + '
';
}
content += '
' + resp.DayEvents[i].StartTime + ' - ' + resp.DayEvents[i].EndTime + '
';
content += '
' + resp.DayEvents[i].Description + '
';
content += '
';
content += '
';
}
$('.go-venue-block').html(content);
$('.go-venue-block').show();
$(".go-venue-block").perfectScrollbar('update');
}
})
});
$(document).on('click', '.go-table-live', function () {
$('.go-search_block').toggle();
$('.go-table-live').toggleClass('active');
if ($('.go-venue-block').is(':visible')) {
$('.go-venue-block').toggle();
} else {
$('.go-content-box').toggle();
}
});
$(document).on('click', '.go-info-link', function () {
element.RefreshItems();
$('.go-search_block').hide();
if ($('.go-table-live').hasClass('active')) {
$('.go-table-live').toggleClass('active');
}
$('.go-venue-block').hide();
$('.go-content-box').hide();
});
$(document).on('click', '.go-icon-ad_3', function () {
$('.go-venue-block').toggle();
$('.go-content-box').toggle();
});
$('body').css('cursor', 'wait');
// add theme styles
$("head").append("");
$("head").append("");
var element = this;
// load scheduler html code from server
$.ajax({
type: 'GET',
// TODO: add website url here
url: options.service_root + '/Scheduler/' + options.theme + '/index.html',
success: function (resp) {
// load all items
element.html(resp);
$('.go-loader').show();
$('.watermark').attr('src', options.service_root + '/Scheduler/' + options.theme + '/img/go.png');
element.ApplySettings();
$.ajax({
type: 'GET',
url: options.service_url + '/GetVenueUpcomingMatches',
data: {
startDate: (new Date()).toISOString(),
venueId: options.venueID
},
//contentType: "application/json; charset=utf-8",
//dataType: "json",
//crossDomain: true,
//beforeSend:function(jqXHR, settings){
// jqXHR.setRequestHeader('Access-Control-Request-Headers', '');
// jqXHR.setRequestHeader('Access-Control-Request-Method', '');
//},
success: function (resp) {
// fill in template with recieved items
$('.go-loader').hide();
var data = '';
resp = resp.GetVenueUpcomingMatchesResult;
for (var i = 0; i < resp.length; i++) {
data = data + '';
for (var j = 0; j < resp[i].Matches.length; j++) {
data = data + '' +
resp[i].Matches[j].Title + '
' + resp[i].Matches[j].Team + '' +
'';
}
}
element.find('.go-tab_links').html(data);
element.ApplySettings();
$('.go-tab_links').height(element.height() - $(".go-table_head").height() - 30);
$('.go-venue-block').height(element.height() - $(".go-table_head").height() - 30);
if ($('body').width() > 1200) {
$(".go-tab_links").perfectScrollbar({ suppressScrollX: true, wheelSpeed: 0.5 });
$(".go-venue-block").perfectScrollbar({ suppressScrollX: true, wheelSpeed: 0.5 });
} else {
$(".go-tab_links").css('overflow-y', 'scroll');
$(".go-venue-block").css('overflow-y', 'scroll');
}
if (options.show_state !== undefined && options.show_state !== 1) {
if (options.show_state == 0) {
$('.go-content-box').toggle();
$('.go-search_block').toggle();
$('.go-table-live').toggleClass('active');
} else {
$('.go-tab_links li').not('.go-header_tab').first().trigger('click');
}
}
element.ApplyStickyHeaders();
}
});
// set scheduler title
$("#title").text(options.title);
$('.go-close').click(function () {
$('.go-content-box').toggle();
$('.go-search_block').toggle();
$('.go-table-live').toggleClass('active');
});
// load comboboxes
// game combo box
$("#game-input").kendoComboBox({
placeholder: "Select game",
dataTextField: "Text",
dataValueField: "Id",
filter: "contains",
autoBind: true,
height: 400,
template: '' +
'#: data.Text #',
dataSource: {
type: "json",
serverFiltering: true,
transport: {
read: function (e) {
var filter = '';
if (e.data !== undefined && e.data.filter !== undefined) {
filter = e.data.filter.filters[0].value
}
$.ajax({
type: 'GET',
url: options.service_url + "/GetGames?term=" + filter,
success: function (resp) {
e.success(resp);
}
});
}
}
},
change: function (e) {
$("#league-input").data('kendoComboBox').dataSource.read();
$("#team-input").data('kendoComboBox').dataSource.read();
}
});
// league combo box
$("#league-input").kendoComboBox({
placeholder: "Select League",
dataTextField: "Text",
dataValueField: "Id",
filter: "contains",
height: 400,
autoBind: false,
dataSource: {
type: "json",
serverFiltering: true,
transport: {
read: function (e) {
var filter = '';
if (e.data !== undefined && e.data.filter !== undefined) {
filter = e.data.filter.filters[0].value
}
var gameId = $('#game-input').data('kendoComboBox').value();
if (gameId == undefined) {
gameId = '';
}
$.ajax({
type: 'GET',
url: options.service_url + "/GetLeague?gameId=" + gameId + "&term=" + filter,
success: function (resp) {
e.success(resp);
}
});
}
}
},
change: function (e) {
$("#team-input").data('kendoComboBox').dataSource.read();
}
});
// team combo box
$("#team-input").kendoComboBox({
placeholder: "Select Team",
dataTextField: "Text",
dataValueField: "Id",
filter: "contains",
autoBind: false,
height: 400,
dataSource: {
type: "json",
serverFiltering: true,
transport: {
read: function (e) {
var filter = '';
if (e.data.filter !== undefined) {
filter = e.data.filter.filters[0].value
}
var leagueId = $('#league-input').data('kendoComboBox').value();
var gameId = $('#game-input').data('kendoComboBox').value();
if (leagueId == undefined || isNaN(leagueId)) {
leagueId = '';
}
if (gameId == undefined || isNaN(leagueId)) {
gameId = '';
}
$.ajax({
type: 'GET',
url: options.service_url + "/GetTeam?leagueId=" + leagueId + "&gameId=" + gameId + "&term=" + filter,
success: function (resp) {
e.success(resp);
}
});
}
}
},
change: function (e) {
}
});
// filter button processing
$('.go-seach-button').click(function () {
var leagueId = $('#league-input').data('kendoComboBox').value();
if (leagueId == '') {
leagueId = 0;
}
var gameId = $('#game-input').data('kendoComboBox').value();
if (gameId == '') {
gameId = 0;
}
var teamId = $('#team-input').data('kendoComboBox').value();
if (teamId == '')
teamId = 0;
var startDate = $('#date_start').data('kendoDatePicker').value();
if (startDate == null) {
startDate = new Date();
}
var endDate = $('#date_end').data('kendoDatePicker').value();
if (endDate == null) {
endDate = ''
}
element.RefreshItems(leagueId, teamId, gameId, startDate, endDate);
});
// reset filters
$('.go-reset-button').click(function () {
element.RefreshItems(0, 0, 0, new Date(), '');
$('#team-input').data('kendoComboBox').value('');
$('#game-input').data('kendoComboBox').value('');
$('#league-input').data('kendoComboBox').value('');
});
// filter dates processing
$('#date_start').kendoDatePicker({
min: new Date(),
format: 'dd MMM yyyy',
parseFormat: 'dd-MMM-yyy',
change: function () {
var endDatePicker = $('#date_end').data('kendoDatePicker');
endDatePicker.min(this.value());
if (endDatePicker.value() !== null && this.value() >= endDatePicker.value()) {
endDatePicker.value(null);
}
}
});
$("#date_start").click(function () {
$(this).data('kendoDatePicker').open();
});
$('#date_end').kendoDatePicker({
format: 'dd MMM yyyy',
parseFormat: 'dd-MMM-yyy',
min: new Date()
});
$("#date_end").click(function () {
$(this).data('kendoDatePicker').open();
});
},
complete: function () {
$('body').css('cursor', 'auto');
}
});
this.ApplyStickyHeaders = function () {
var offsettop = element.offset().top;
offsettop = offsettop + element.find('.go-table_head').height();
$('.go-header_tab').each(function () {
var rowOffset = $(this).offset();
if (rowOffset < offsettop) {
console.log($(this).text());
}
});
$(document).on('ps-scroll-y', function () {
var copyElement = $(".go-header-copy");
if (copyElement.length == 0) {
copyElement = document.createElement("div");
$(copyElement).addClass('go-header-copy');
$(copyElement).addClass('go-header_tab');
$('.go-tab_links').prepend(copyElement)
}
$('.go-header_tab').not('.go-header-copy').each(function () {
var rowOffset = $(this).offset();
if (rowOffset < offsettop) {
console.log($(this).text());
copyElement.text($(this).text());
}
});
});
};
this.RefreshItems = function (leagueId, teamId, gameId, startDate, endDate, reset) {
$('body').css('cursor', 'wait');
if (startDate === undefined) {
startDate = new Date();
}
if (endDate === undefined) {
endDate = '';
}
$('.go-search_block').hide();
$('.go-loader').show();
$.ajax({
type: 'GET',
url: options.service_url + '/GetVenueUpcomingMatches',
data: {
venueId: options.venueID,
teamId: teamId,
leagueId: leagueId,
gameId: gameId,
startDate: startDate.toISOString(),
endDate: endDate == '' ? null : endDate.toISOString()
},
complete: function () {
$('body').css('cursor', 'auto');
},
success: function (resp) {
// fill in template with recieved items
var data = '';
resp = resp.GetVenueUpcomingMatchesResult;
for (var i = 0; i < resp.length; i++) {
data = data + '';
for (var j = 0; j < resp[i].Matches.length; j++) {
data = data + '' +
resp[i].Matches[j].Title + '
' + resp[i].Matches[j].Team + '' +
'';
}
}
element.find('.go-tab_links').html(data);
$('.go-content-box').show();
$('.go-loader').hide();
$('.go-search_block').hide();
if ($('.go-table-live').hasClass('active')) {
$('.go-table-live').removeClass('active');
}
$('.go-venue-block').hide();
$('.go-tab_links').height(element.height() - $(".go-table_head").height() - 30);
if ($('body').width() > 1200) {
$(".go-tab_links").perfectScrollbar('destroy');
$(".go-tab_links").perfectScrollbar({ suppressScrollX: true, wheelSpeed: 0.5 });
} else {
$(".go-tab_links").css('overflow-y', 'scroll');
}
}
});
}
this.ApplySettings = function () {
var schedulerTitle = '';
if (options.title !== undefined) {
schedulerTitle += options.title;
}
if (options.titleLarge !== undefined) {
schedulerTitle += '' + options.titleLarge + '';
}
$('.go-table_head .go-by-line').html(schedulerTitle);
if (options.day_top_color !== undefined && options.day_bottom_color !== undefined && options.day_bottom_color != '' && options.day_top_color != '') {
$('.go-tab_links .go-header_tab').each(function () {
this.style.background = '-moz-linear-gradient(center top, #' + options.day_top_color + ', #' + options.day_bottom_color + ')';
});
$('.go-tab_links .go-header_tab').each(function () {
this.style.background = '-webkit-linear-gradient(top, #' + options.day_top_color + ', #' + options.day_bottom_color + ')';
});
$('.go-tab_links .go-header_tab').each(function () {
this.style.background = '-o-linear-gradient(center top, #' + options.day_top_color + ', #' + options.day_bottom_color + ')';
});
$('.go-tab_links .go-header_tab').each(function () {
this.style.background = '-ms-linear-gradient(center top, #' + options.day_top_color + ', #' + options.day_bottom_color + ')';
});
}
if (options.header_background !== undefined && options.header_background != '') {
$('.go-table_head').css('background', 'url("' + options.header_background + '") repeat scroll 0 0 / cover rgba(0, 0, 0, 0);')
}
if (options.table_background !== undefined && options.table_background != '') {
$('.go-venue-block').css('background', 'url("' + options.table_background + '") repeat scroll 0 0 / cover rgba(0, 0, 0, 0);')
}
}
};