Greasy Fork is available in English.

Extended Steamgifts

New features for Steamgifts.com

// ==UserScript==
// @name		Extended Steamgifts
// @description	New features for Steamgifts.com
// @author		Nandee
// @namespace	esg
// @include	    *steamgifts.com*
// @version		2.4.3
// @supportURL  http://steamcommunity.com/groups/extendedsg/discussions/0/
// @icon		https://raw.githubusercontent.com/nandee95/Extended_Steamgifts/master/img/logo.png
// @homepage	https://github.com/nandee95/Extended_Steamgifts
// @grant	   none
// @license	 MIT
// ==/UserScript==
/*
Changelog:
1.5.2[BETA] (2015. 03. 24.)
- First release
1.5.3[BETA] (2015. 03. 25.)
- Changed 'Miss' to 'Remove'
- Fixed enter button on profile page
- Blue line fixed behind the header
- Giveaway filter fix
- Dropdown menu fix
- Fixed Options (Scroll to top)
- Added description button
- Fixed problems with home page
- Changed some icons
1.5.4[BETA] (2015. 03. 28.)
- Fixed problems with description button
- Fixed wishlist hightlight
- Added support for SGv2 Dark Theme
- Added hide entered giveaway feaure (default disabled)
- Redesigned Recommended sales (sidebar)
- Redesigned Active discussions (sidebar)
- Small bugfixes
- Redesigned wishlist highlight
1.5.5 (2015. 07. 16.)
- Fixed font problem
- Fixed sidebar
- Fixed endless scrolling
- Fixed Wishlist - Featured giveaway problem
- Fixed chance problem with more than 1k copies giveaways
- Removed point refresh feature
- Removed recommended sales feature
- Changed icon
2.0 (2015. 11. 15.)
- Giveaway filter
- Optimized code(removed unneded parts)
- Community Voted sidebar
- Rewrited Infinite scrolling 
- Added infinite scrolling everywhere
- Added [NEW] giveaway mark
- Removed Giveaway Highlighting feature(becouse of bad performance & new filter feature)
- Giveaway filtering
- Re-enabled bug reporting button
- Added Steamgifts dicussion's url & GitHub url to the menu
- Re-added refreshing points (every 60 seconds, optional, turned off by default)
2.0.1 (2015. 11. 17.)
- Fixed point updater in options
- Colored menu icons
- Fixed auto scrolling in table based pages
- Added auto scrolling to comment based pages
2.0.2 (2015. 11. 19.)
- fixed multiple pages problem
- fixed comment reply
- [FREE] giveaway mark
2.0.3 (2016. 01. 11.)
- Hide giveaway fix (no page refreshing)
2.1 (2016. 04. 17.)
- Fixed JSHint errors & warnings
- Updated auto scrolling
- Fixed ga description
- Fixed auto scrolling on entered ga page
- Updated query protocol to https
- Added floating pagination
- Fixed auto scroll loading animation
- Added MIT license
- Added readme file
- Updated About page
2.1.1 (2016. 04. 17.)
- Updated Sgv2 Dark Support
- Fixed comment writing & replying
- Fixed broken enter giveaway button
- Fixed display chances in Options
- Fixed [FREE] tag on Invite Only giveaways
- Added giveaway train option to the discussions menu
2.1.2 (2016. 04. 17.)
- Small bugfixes
- Added option to hide Active Discussions from the sidebar
2.1.3 (2016. 04. 19.)
- Fixed giveaway hiding
- Fixed Filter button disappearing
- Fixed Fiter problems with autoscroll disabled
- Modified chance calculation (just a litte bit)
- Added chances to the entered giveaway page
- Auto scroll update: utomatically fill the window with pages no need to scroll
- Added 2 new menuitems to the Discussions menu: Quizzes
- Added 2 new menuitems to the Giveaways menu: Create Quiz
- Small ESG menu modification
2.1.4 (2016. 04. 20.)
- Fixed giveaway hiding
- Small ESG menu modification
- Added Search button (giveaway list)
- Added ESG logo to the begining of the title bar (+version info)
2.1.5 (2016. 04. 21.)
- Filter Local Storage Self-Fix
- Added Giveaway Signature Generator
- Added Search urls to the Community Wishlist Titles
- Fixed broken links in ESG menu
2.1.6 (2016. 04. 24.)
- Added lever bar (included Dark Theme support)
- Added giveaway signature generator to options
- Fixed giveaway signature generator
- Fixed chances on entered page
- Fixed giveaway search url
- Fixed hide entered giveaways (/giveaways/won page)
2.2 (2016. 05. 07.)
- Sightly brighter level bar
- Added auto display images option (disabled by default)
- Added Enter all button on Wishlist page
- Added animation to the Filter menu
- Added container for giveaway signature generator (SGv2 Dark support)
- Added giveaway marks to options
- Added non-linear slider for chance filter
- Fixed click event on Entered page (Remove button)
- Fixed broken titles in the discussions sidebar
- Removed Trains from Discussions menu
- Removed Quizzes from Discussions menu
- Removed Enter button from invite only giveaways on profile page
- Remade About page
- Code cleanup
2.2.1 (2016. 05. 07.)
- Fixed copies filter
2.2.2 (2016. 05. 13.)
- Fixed giveaway search button
2.2.3 (2016. 05. 18.)
- Auto scroll rules applied if the viewed page has no pagination
- Active discussions in sidebar appears in every giveaway page
- Advanced Search
- Removed border from filter menu
- Fixed wrong dates in the changelog
2.2.4 (2016. 05. 18.)
- Removed uncompleted features
2.2.5 (2016. 05. 19.)
- Fixed broken chances on entered page
- Fixed problem with header errors
2.2.6 (2016. 05. 20.)
- Syntax fixes
- Removed Enter all button (because it's against the ToS, still available here: )
2.3 (2016. 05. 28.)
- Added advanced comment editing
- Added featured giveaway hiding option(disabled by default)
- Added embedded youtube and vimeo videos
- Added embedded gleam.io giveaways
- Added re collapsable pinned giveaways
- Added odds to chances
- Added Bundle Games to Trades menu
- Removed entered giveaway hiding from featured giveaways and user profiles
- Redesigned chances
- Redesgined level bar
- Redesigned floating pagination
- Fixed comment cancel button
- Fixed auto scroll headers
- Fixed auto scroll on Bundle Games page
- Fixed auto scroll on messages page
- Code cleanup (multiple spaces replaced with tabs, multiline strings)
2.3.1 (2016. 05. 29.)
- Fixed vimeo embedded videos
- Fixed advanced comment editor
- Added headings and horizontal reference to the comment editor
- Added comment formatting for giveaway descriptions
- Added comment editor to the new discussion and new trade pages
- Modified About page
2.3.2 (2016. 05. 29.)
- Quick fix
2.3.3 (2016. 05. 29.)
- Added chances on giveaway's page to opitions
- Added an alert when you try to remove an entry and lose points
- The urls with embedded videos not hidden anymore.
2.3.4 (2016. 12. 03.)
- Re-collapsable pinned giveaway feature has been rewritten and now works under Firefox
- Added "Write a comment" button to the floating pagination
- Removed the search button from the giveaway explorer
- Added parsedown code to the giveaway signatures
- Fixed some issues with text highlighting in the comment formatter
- Added emoticons to comment formatter
2.3.6 (2016. 12. 03.)
- Quick fix
2.3.7 (2016. 12. 04.)
- Fixed level bar with SgV2 dark theme
- Added new design to the emoticons
2.3.8 (2017. 01. 19.)
- Fixed level bar
2.3.9 (2017. 06. 29.)
- Changed classes (sg update)
2.3.10 (2017. 07. 11.)
- Fixed re-collapsable pinned giveaways after class update
2.3.11 (2017. 07. 23.)
- Fixed broken elements in sidebar (sg update)
2.3.12 (2017. 07. 30.)
- Bundled games moved to the Help menu
- Fixed z-index for the floating pagination
2.3.13 (2017. 10. 17.)
- Updated some values after sg's point system update
2.4 (2017. 10. 28.)
- Popup box to set precise copies for the filter (just click on the numbers to reach it)
- Added steam store widgets
- Removed notification about loosing points by removing entry.
- Added hidded giveaway notification on giveaway page
2.4.1 (2017. 11. 01.)
- Comment features disabled inside of tables
- Comment features performance improved
2.4.2 (2017. 11. 06.)
- Added steam activator link to the won giveaways list
2.4.3 (2018. 02. 22.)
- Removed Pledgie links
 */

/* jshint multistr: true */

this.GM_getValue = function(key, def) {
	return localStorage[key] || def;
};
this.GM_setValue = function(key, value) {
	localStorage[key] = value;
};
var path = window.location.pathname;

//Styles
$("body").prepend("	\
<style>	\
.sidebar__entry-custom	\
{	\
	display: inline-block;	\
	margin: 0 -10px 0 -10px !important;	\
	padding: 0 8px 0 8px !important;	\
	min-width: 50px;	\
	font-family: 'Arial',sans-serif;	\
	font-size: 11px;	\
	line-height: 26px;	\
}	\
.sidebar__navigation__itemz:hover .sidebar__navigation__item__underline	\
{	\
	border-bottom:2px solid transparent !important;	\
}	\
.sidebar__navigation__item__title	\
{	\
	font-weight:bold;	\
	font-size: 15px;	\
}	\
.sidebar__navigation__itemz	\
{	\
	font-size: 13px;	\
}	\
.filter_table	\
{	\
	width:100%;	\
}	\
.filter_table td	\
{	\
	padding:0;	\
	vertical-align: middle;	\
}	\
.scroll-top 	\
{	\
	cursor: pointer;	\
	position: fixed;	\
	bottom: 10px;	\
	right: 40px;	\
	transform: rotate(-90deg);	\
	opacity: 0.75;	\
	z-index: 50;	\
	padding: 10px !important;	\
	display: block;	\
}	\
.page-loading 	\
{	\
	width: 160px;	\
	height:24px;	\
	margin: 5px auto 5px auto;	\
	display:block;	\
}	\
.floating-pagination 	\
{ 	\
	position:fixed;	\
	bottom:45px;	\
	width:" + $(".sidebar").width() + "px;	\
	text-align:center;	\
  z-index:99999; \
}	\
.filter-content	\
{	\
	margin-top:10px;	\
	padding:5px;	\
}	\
.filter_table td	\
{	\
	padding: 2px;	\
} 	\
.advsearch_number	\
{	\
	width:100px;	\
}	\
.e-embed-frame,.e-widget-preloader	\
{	\
	margin:5px 0 5px 0 !important;	\
	.global__image-outer-wrap;	\
}	\
.comment__tools	\
{	\
	margin-bottom:3px;	\
}	\
.comment__tools div	\
{	\
	display:inline;	\
	padding:5px 5px 7px 5px;	\
	margin:0;	\
}	\
.comment__tools *	\
{	\
	-webkit-user-select: none;	\
	-moz-user-select: none;	\
}	\
.no-user-select	\
{	\
	-webkit-user-select: none;	\
	-moz-user-select: none;	\
}	\
.serperator	\
{	\
	margin-left: 10px !important;	\
}	\
.advanced_search	\
{	\
	padding:5px 20px 5px 20px;	\
}	\
.filter__slider	\
{	\
    width:80%;	\
}	\
.search__slider	\
{	\
	margin:2px 0 2px 0;	\
	width:100%;	\
}	\
.sidebar__navigation__itemz,.sidebar__navigation__item__link,.sidebar__navigation__item__underline \
{ \
  max-width:9999px !important; \
} \
</style>");

//Read some values
var xsrf = $('input[type=hidden][name=xsrf_token]').val();
var loggedin = ($('.nav__sits').length > 0) ? false : true;
var lastpage = ($(".pagination__navigation:contains('Next')").length === 0);
var currentpage = Number($('.pagination__navigation').find('.is-selected').attr('data-page-number')?$('.pagination__navigation').find('.is-selected').attr('data-page-number'):1);
var hash = $(location).attr('hash');
var ver = GM_info.script.version;
var username = $(".nav__avatar-outer-wrap").attr("href").replace("/user/", "");
var pagename = $('.page__heading__breadcrumbs:first').html();
var pagination_url = "https://" + window.location.hostname + $(".pagination__navigation").find("a:last").attr("href");
var regex_pagination_results = /Displaying <strong>([0-9]{1,10})<\/strong> to <strong>([0-9]{1,10})<\/strong>/;

var rx = (regex_pagination_results).exec($(".pagination__results").html());
var pagination_min = 0,
	pagination_max = 0;
if (rx) {
	pagination_min = rx[1];
	pagination_max = rx[2];
}

//Funcs
function getPos(str, m, i) {
	return str.split(m, i).join(m).length;
}

function updateURLParameter(url, param, paramVal) {
	var newAdditionalURL = "";
	var tempArray = url.split("?");
	var baseURL = tempArray[0];
	var additionalURL = tempArray[1];
	var temp = "";
	if (additionalURL) {
		tempArray = additionalURL.split("&");
		for (i = 0; i < tempArray.length; i++) {
			if (tempArray[i].split('=')[0] != param) {
				newAdditionalURL += temp + tempArray[i];
				temp = "&";
			}
		}
	}

	var rows_txt = temp + "" + param + "=" + paramVal;
	return baseURL + "?" + newAdditionalURL + rows_txt;
}

function getUrlParameter(sParam) {
	var sPageURL = decodeURIComponent(window.location.search.substring(1)),
		sURLVariables = sPageURL.split('&'),
		sParameterName,
		i;

	for (i = 0; i < sURLVariables.length; i++) {
		sParameterName = sURLVariables[i].split('=');

		if (sParameterName[0] === sParam) {
			return sParameterName[1] === undefined ? true : sParameterName[1];
		}
	}
}

//Custom menu elements
$(".nav__button:contains('Giveaways')").closest(".nav__button-container").find(".nav__absolute-dropdown").append('	\
<a class="nav__row" href="http://www.itstoohard.com/create" target="_blank"><i class="icon-green fa fa-fw fa-question"></i>	\
<div class="nav__row__summary"><p class="nav__row__summary__name">Create quiz</p><p class="nav__row__summary__description">It\'s too hard</p></div></a>	\
');
$(".nav__button:contains('Help')").closest(".nav__button-container").find(".nav__absolute-dropdown").append('	\
<a class="nav__row" href="/bundle-games"><i class="icon-red fa fa-fw fa-delicious"></i>	\
<div class="nav__row__summary"><p class="nav__row__summary__name">Bundle games</p><p class="nav__row__summary__description">Full list of bundle games.</p></div></a>	\
');

//Level bar
var account=$(".nav__button:contains('Account')");
var account_lv=Number($(account).find("span:nth-child(2)").attr("title"));
$(account).css("box-shadow","inset "+$(account).outerWidth()*(account_lv-Math.floor(account_lv))+"px 0 5px rgba(0,255,50,0.15)");

//ESG icon
$("header .nav__left-container").prepend('<img src="https://raw.githubusercontent.com/nandee95/Extended_Steamgifts/master/img/logo_trans.png" height="32px" width="32px" title="Extended Steamgifts '+ver+'&#013;By: Nandee">');

//Giveaway Signature Generator
if (path.match('^/giveaway/')&&Number(GM_getValue("esg_gsg", 1))) {
	var gacode=/\/(?:.*?)\/(.*?)\/(?:.*)/.exec(path)[1];
	$(".sidebar:first").append('<h3 class="sidebar__heading">Signature</h3><div class="sidebar__navigation"><div style="text-align:center"><img src="https://steamgifts.com/giveaway/'+gacode+'/signature.png" width="280px" height="53px"><br>HTML code (Websites & Blogs):<input width="280px" onclick="this.select();" value=\'<a href="https://steamgifts.com/giveaway/'+gacode+'/"><img src="https://steamgifts.com/giveaway/'+gacode+'/signature.png"></a>\'><br>BB code (Forums):<br><input width="280px" onclick="this.select();" value=\'[url=https://steamgifts.com/giveaway/'+gacode+'/][img]https://steamgifts.com/giveaway/'+gacode+'/signature.png[/img][/url]\'>Parsedown code (SteamGifts):<br><input width="280px" onclick="this.select();" value=\'![https://steamgifts.com/giveaway/'+gacode+'/](https://steamgifts.com/giveaway/'+gacode+'/signature.png)\'><br>Direct link:<br><input width="280px" onclick="this.select();" value=\'https://steamgifts.com/giveaway/'+gacode+'/signature.png\'></div></div>');
}

//Options
if (path.match('^/account/')) {
	var options_selected = false,
		about_selected = false;
	$(".sidebar__navigation:last").after("	\
		<h3 class=\"sidebar__heading\">Extended Steamgifts</h3>	\
		<ul class=\"sidebar__navigation\">	\
		<li class=\"sidebar__navigation__item esg__options\">	\
		<a class=\"sidebar__navigation__item__link\" href=\"/account/profile/sync#esg_options\">	\
		<div class=\"sidebar__navigation__item__name\">Options</div>	\
		<div class=\"sidebar__navigation__item__underline\"></div>	\
		</a>	\
		</li>	\
		<li class=\"sidebar__navigation__item esg__about\">	\
		<a class=\"sidebar__navigation__item__link\" href=\"/account/profile/sync#esg_about\">	\
		<div class=\"sidebar__navigation__item__name\">About</div>	\
		<div class=\"sidebar__navigation__item__underline\"></div>	\
		</a>	\
		</li>	\
		</ul>");
	$(".esg__options").click(display_options);
	$(".esg__about").click(display_about);
	if (hash == "#esg_options")
		display_options();
	if (hash == "#esg_about")
		display_about();
}

window.onhashchange = function() {
	hash = $(location).attr('hash');
	if (hash == "#esg_options")
		display_options();
	if (hash == "#esg_about")
		display_about();
};

function display_options() {
	document.title = "Account - Extended Steamgifts - Options";
	var page = $(".widget-container").children("div:last");
	page.empty();
	$(".sidebar__navigation__item").removeClass("is-selected");
	$(".fa-caret-right:first").remove();
	$(".esg__options").find(".sidebar__navigation__item__link").prepend("<i class=\"fa fa-caret-right\"></i>");
	$(".esg__options").addClass("is-selected");
	var content = "";
	var count = 0;

	function addToOptions(name, save, def) {
		count++;
		var val = Number(GM_getValue(save, def));
		content += "		\
		<div class=\"form__row\" value=\"" + val + "\" key=" + save + ">	\
		<div class=\"form__heading\"><div class=\"form__heading__number\">" + count + ".</div><div class=\"form__heading__text\">" + name + "</div></div><div class=\"form__row__indent\">	\
		<div class=\"form__checkbox cb__yes" + (val ? " is-selected" : "") + "\">	\
		<i class=\"form__checkbox__default fa fa-circle-o\"></i><i class=\"form__checkbox__hover fa fa-circle\"></i><i class=\"form__checkbox__selected fa fa-check-circle\"></i> Enabled	\
		</div>	\
		<div class=\"form__checkbox cb__no" + (val ? "" : " is-selected") + "\">	\
		<i class=\"form__checkbox__default fa fa-circle-o\"></i><i class=\"form__checkbox__hover fa fa-circle\"></i><i class=\"form__checkbox__selected fa fa-check-circle\"></i> Disabled	\
		</div>	\
		</div>	\
		</div>	\
		";
	}
	addToOptions("Enter/Remove button", "esg_enterremove", 1);
	addToOptions("Endless scrolling", "esg_autoscroll", 1);
	addToOptions("Display chances", "esg_chances", 1);
	addToOptions("Fixed header", "esg_fixedheader", 1);
	addToOptions("Refresh points (60sec)", "esg_refresh", 0);
	addToOptions("Scroll to top button", "esg_scrolltop", 1);
	addToOptions("Hide entered giveaways", "esg_hideentered", 0);
	addToOptions("Active discussions in sidebar", "esg_discussions", 1);
	addToOptions("Giveaway Signature Generator", "esg_gsg", 1);
	addToOptions("Giveaway marks", "esg_gamark", 1);
	addToOptions("Hide featured giveaway", "esg_hidefeatured", 0);
    addToOptions("Comment editor", "esg_commenteditor", 1);
    addToOptions("Comment features (embedded youtube & vimeo videos, gleam.io giveaways, auto load images)", "esg_comment", 1);
	page.html("				\
		<div class=\"page__heading\">	\
		<div class=\"page__heading__breadcrumbs\">	\
		<a>Extended Steamgifts</a>	\
		<i class=\"fa fa-angle-right\">	\
		</i><a href=\"/account/profile/sync#esg_options\">Options</a>	\
		</div></div>	\
		<form>						\																	\
		<div class=\"form__rows\">" + content + "																\
		<div value=\"\" class=\"form__submit-button\"><i class=\"fa fa-arrow-circle-right\"></i> Save Changes</div>	\
		</div>																								\
		</div>");
	$(".cb__yes").click(function() {
		$(this).addClass("is-selected").removeClass("is-disabled");
		$(this).parent().find(".cb__no").removeClass("is-selected").addClass("is-disabled");
		$(this).closest(".form__row").attr("value", "1");
	});
	$(".cb__no").click(function() {
		$(this).addClass("is-selected").removeClass("is-disabled");
		$(this).parent().find(".cb__yes").removeClass("is-selected").addClass("is-disabled");
		$(this).closest(".form__row").attr("value", "0");
	});
	$(".form__submit-button").click(function() {
		$(".form__row").each(function() {
			var val = $(this).attr("value");
			var key = $(this).attr("key");
			GM_setValue($(this).attr("key"), $(this).attr("value"));
		});
		alert("Settings are saved successfully!");
	});
}

function display_about() {
	document.title = "Account - Extended Steamgifts - About";
	var page = $(".widget-container").children("div:last");
	page.empty();
	$(".sidebar__navigation__item").removeClass("is-selected");
	$(".fa-caret-right:first").remove();
	$(".esg__about").find(".sidebar__navigation__item__link").prepend("<i class=\"fa fa-caret-right\"></i>");
	$(".esg__about").addClass("is-selected");

	page.html("	\
		<div class=\"page__heading\">	\
		<div class=\"page__heading__breadcrumbs\">	\
		<a href=\"https://www.steamgifts.com/discussion/qbPEr/\">Extended Steamgifts</a>	\
		<i class=\"fa fa-angle-right\">	\
		</i><a href=\"/account/profile/sync#esg_about\">About</a>	\
		</div></div>	\
		<div class=\"form__rows\"><div class=\"form__row\">	\
		<div class=\"form__heading\"><div class=\"form__heading__number\">1.</div><div class=\"form__heading__text\">Extended Steamgifts " + ver + "</div></div>	\
		<div class=\"form__row__indent markdown\">Author: Nandee<br>Copyright: &copy; 2014-2016<br>Licensed under the <a href=\"https://github.com/nandee95/Extended_Steamgifts/blob/master/LICENSE.md\" target=\_blank\">MIT license</a><br><br>Steam group:<a href=\"http://steamcommunity.com/groups/extendedsg\">steamcommunity.com/groups/extendedsg</a>	\
		<br>GitHub: <a href=\"https://github.com/nandee95/Extended_Steamgifts\">github.com/nandee95/Extended_Steamgifts</a></div></div>\
		<div class=\"form__row\">	\
		<div class=\"form__heading\"><div class=\"form__heading__number\">2.</div><div class=\"form__heading__text\">About me:</div></div>	\
		<div class=\"form__row__indent\">I'm usually working on this addon in my freetime.<br>It take me a lot of time to keep it working.<br>If you like this addon please think about a donation!<br>Enjoy! :D</div></div>\
		<div class=\"form__row\">	\
		<div class=\"form__heading\"><div class=\"form__heading__number\">3.</div><div class=\"form__heading__text\">Donation:</div></div>	\
		<div class=\"form__row__indent\">	\
		Thank you all for your donations! I really appreciate them! <br>\
		Steam donate (tradeoffer):<br>	\
		<a href='https://steamcommunity.com/tradeoffer/new/?partner=95793561&amp;token=HxnczDWg'><img src='https://raw.githubusercontent.com/nandee95/Extended_Steamgifts/master/img/steam_donate.png' style='max-width:100%;'></a><br>	\
		Whitelist: \
		<a href=\"https://www.steamgifts.com/user/Nandee\" target=\"_blank\"><div class=\"giveaway__columns\"><div style=\"width:130px !important\" class=\"giveaway__column--whitelist\" title=\"Whitelist\"><i class=\"fa fa-fw fa-heart\"></i> Whitelist</div></div></div>	\
		<div class=\"form__row\">	\
		<div class=\"form__heading\"><div class=\"form__heading__number\">4.</div><div class=\"form__heading__text\">Contact:</div></div>	\
		<div class=\"form__row__indent markdown\"><a href=\"http://steamcommunity.com/id/nandee95\" target=\"_blank\">Steam profile</a><br><a href=\"https://www.steamgifts.com/user/Nandee\" target=\"_blank\">SteamGifts profile</a></div></div>\
		</div>	\
		");
}

//Steam activator link
$(".icon_to_clipboard").each(function () {
    if($(this).attr("data-clipboard-text").indexOf("http")!=-1) return; //Skip links
    $(this).before('<a href="https://store.steampowered.com/account/registerkey?key='+$(this).attr("data-clipboard-text")+'" title="Activate key on steam"><i class="fa fa-fw fa-steam-square"></i></a>');
});

//Active Discussions
if($(".homepage_heading:contains('Discussions')").length>0 && Number(GM_getValue("esg_autoscroll", 1))) {
	if ($(".homepage_heading:contains('Discussions')").length && Number(GM_getValue("esg_discussions", 1))) {
		var c1 = "";
		$(".homepage_heading:contains('Discussions')").parent().find(".table").find(".table__rows").find(".table__row-outer-wrap").each(function() {
				var img = $(this).find(".table_image_avatar").css('background-image');

				img = img.replace('url(', '').replace(')', '').replace('"', '').replace('"', '');
				var otitle = $(this).find(".homepage_table_column_heading").text();
				var url = $(this).find(".homepage_table_column_heading").attr("href");
				var comments = $(this).find(".table__column__secondary-link").eq(0).text();
			  var owner = $(this).find(".table__column__secondary-link").eq(1).text();
				var elapsed = $(this).find(".table__column__secondary-link").eq(0).closest("p").find("span").text();
				var title = otitle;
			  

				c1 += '<li class="sidebar__navigation__itemz">	\
			<a class="sidebar__navigation__item__link" href="' + url + '" title="' + otitle.replace(/\"/g,"'") + '" >	\
			<i class="global__image-outer-wrap global__image-outer-wrap--avatar-small">	\
			<div class="global__image-inner-wrap" style="background-image:url(' + img + ');"></div></i>	\
			</div>	\
			<div class="sidebar__navigation__item__underline">	\
<div class="sidebar__navigation__item__title" style="max-width:270px;white-space: nowrap;overflow:hidden">' + title + '</div>	\
			<i class="fa fa-comment" style="color:white;text-shadow:0px 1px #AAB5C6, 0px -1px #AAB5C6, 1px 0px #AAB5C6, -1px 0px #AAB5C6"></i> ' + comments + '<br>\
			<span style="float:right" class="sidebar__navigation__item__name"></span>	\
      Last post: ' + elapsed + ' ago by <span class="sidebar__navigation__item__name">' + owner + '</span> 	\
			</div>	\
			</a>	\
			</li>';
			});
		$(".sidebar__navigation:last").after('					\
			<h3 class="sidebar__heading">Discussions</h3>	\
			<ul class="sidebar__navigation">	\
			' + c1 + '\
			<li class="sidebar__navigation__item">		\
			<a class="sidebar__navigation__item__link" href="/discussions">		\
			<div class="sidebar__navigation__item__name">More discussions</div>		\
			<div class="sidebar__navigation__item__underline"></div>		\
			</a>	\
			</li>		\
			</ul>	\
			');
	}
/*
if($(".page__heading__breadcrumbs:contains('Active Discussions')").length>0 && Number(GM_getValue("esg_autoscroll", 1))) {
	if ($(".page__heading__breadcrumbs:contains('Active Discussions')").length && Number(GM_getValue("esg_discussions", 1))) {
		var c1 = "";
		$(".page__heading__breadcrumbs:contains('Active Discussions')").parent().parent().find(".table")
			.find(".table__rows").find(".table__row-outer-wrap").each(function() {
				var img = $(this).find(".table_image_avatar").css('background-image');
				img = img.replace('url(', '').replace(')', '').replace('"', '').replace('"', '');
				var otitle = $(this).find(".table__column__heading").text();
				var url = $(this).find(".table__column__heading").attr("href");
				var comments = $(this).find(".text-center").text();
				var topic = $(this).find(".table__column__secondary-link").eq(0).text();
				var owner = $(this).find(".table__column__secondary-link").eq(1).text();
				var created = $(this).find(".table__column__secondary-link").eq(0).closest("p").find("span").text();
				var title = otitle;
			  
				c1 += '<li class="sidebar__navigation__itemz">	\
			<a class="sidebar__navigation__item__link" href="' + url + '" title="' + otitle.replace(/\"/g,"'") + '" >	\
			<i class="global__image-outer-wrap global__image-outer-wrap--avatar-small">	\
			<div class="global__image-inner-wrap" style="background-image:url(' + img + ');"></div></i>	\
			</div>	\
			<div class="sidebar__navigation__item__underline">	\
<div class="sidebar__navigation__item__title" style="max-width:270px;white-space: nowrap;overflow:hidden">' + title + '</div>	\
			<i class="fa fa-comment" style="color:white;text-shadow:0px 1px #AAB5C6, 0px -1px #AAB5C6, 1px 0px #AAB5C6, -1px 0px #AAB5C6"></i> ' + comments + ' Comment<br>	\
			<span style="float:right" class="sidebar__navigation__item__name">' + topic + '</span>	\
			' + created + ' by <span class="sidebar__navigation__item__name">' + owner + '</span>	\
			</div>	\
			</a>	\
			</li>';
			});
		$(".sidebar__navigation:last").after('					\
			<h3 class="sidebar__heading">Active Discussions</h3>	\
			<ul class="sidebar__navigation">	\
			' + c1 + '\
			<li class="sidebar__navigation__item">		\
			<a class="sidebar__navigation__item__link" href="/discussions">		\
			<div class="sidebar__navigation__item__name">More discussions</div>		\
			<div class="sidebar__navigation__item__underline"></div>		\
			</a>	\
			</li>		\
			</ul>	\
			');
	}
	if ($(".page__heading__breadcrumbs:contains('Community Voted')").length) {
		var c2 = "";
		var total_votes = 0;
		$(".page__heading__breadcrumbs:contains('Community Voted')").closest(".page__heading").next()
			.find(".table__rows").find(".table__row-outer-wrap").each(function() {
				total_votes += Number($(this).attr("data-votes"));
			});
		$(".page__heading__breadcrumbs:contains('Community Voted')").closest(".page__heading").next()
			.find(".table__rows").find(".table__row-outer-wrap").each(function() {
				var img = $(this).find(".global__image-inner-wrap").css('background-image');
				img = img.replace('url(', '').replace(')', '').replace('"', '').replace('"', '');
				var title = $(this).find(".table__column__heading").text();
				var votes = Number($(this).attr("data-votes"));
				var id = $(this).attr("data-id");
				var url = $(this).find('a').attr('href');
				var form = $(this).find("form");
				$(form).find('.poll__vote-button').css("padding", 0).addClass('poll__vote-button-sidebar');
				form = $(form).html().replace("Voted", "").replace("Vote", "");
				var percent = Math.round(votes / (total_votes > 0 ? total_votes : 1) * 10000) / 100;
				c2 += '<li class="sidebar__navigation__itemz table__row-outer-wrap' + ($(this).hasClass("is-selected") ? ' is-selected' : ' not-selected') + '" data-id=' + $(this).attr("data-id") + ' data-votes=' + votes + '>	\
			<div class="sidebar__navigation__item__link" title="' + title + '">	\
			<i class="global__image-outer-wrap global__image-outer-wrap--game-small">	\
			<div class="global__image-inner-wrap" style="background-image:url(' + img + ');"></div></i>	\
<div class="sidebar__navigation__item__underline">	\
			<div class="sidebar__navigation__item__title" style="width:150px;white-space: nowrap;overflow:hidden"><a target="_blank" href="' + url + '">' + title + '</a></div>	\
			' + votes + ' votes <br>' + percent + '%</div>	   <form>' + form + '</form>		\
			</div></li>';
			});
		$(".sidebar__navigation:last").after('					\
			<h3 class="sidebar__heading">Community Voted</h3>	\
			<ul class="sidebar__navigation">	\
			' + c2 + '\
			</ul>	\
			');
	}
*/
	if ($(".homepage_heading:contains('Community Poll')").length) {
		var c2 = "";
		var total_votes = 0;
		$(".homepage_heading:contains('Community Poll')").parent().find(".poll")
			.find(".table__rows").find(".table__row-outer-wrap").each(function() {
				total_votes += Number($(this).attr("data-votes"));
			});

		$(".homepage_heading:contains('Community Poll')").parent().find(".poll")
			.find(".table__rows").find(".table__row-outer-wrap").each(function() {
				var img = $(this).find(".global__image-inner-wrap").css('background-image');
			  if(img)
				img = img.replace('url(', '').replace(')', '').replace('"', '').replace('"', '');
				var title = $(this).find(".table__column__heading").text();
				var votes = Number($(this).attr("data-votes"));
				var id = $(this).attr("data-id");
				var url = $(this).find('a').attr('href');
				var form = $(this).find("form");
				$(form).find('.poll__vote-button').css("padding", 0).addClass('poll__vote-button-sidebar');
				form = $(form).html().replace("Voted", "").replace("Vote", "");
				var percent = Math.round(votes / (total_votes > 0 ? total_votes : 1) * 10000) / 100;
				c2 += '<li class="sidebar__navigation__itemz table__row-outer-wrap' + ($(this).hasClass("is-selected") ? ' is-selected' : ' not-selected') + '" data-id=' + $(this).attr("data-id") + ' data-votes=' + votes + '>	\
			<div class="sidebar__navigation__item__link" title="' + title + '">	\
			'+ (img ?'<i class="global__image-outer-wrap global__image-outer-wrap--game-small">	\
			<div class="global__image-inner-wrap" style="background-image:url(' + img + ');"></div></i>' : '')+'	\
<div class="sidebar__navigation__item__underline">	\
			<div class="sidebar__navigation__item__title" style="width:150px;white-space: nowrap;overflow:hidden"><a target="_blank" href="' + url + '">' + title + '</a></div>	\
			' + votes + ' votes <br>' + percent + '%</div>	   <form>' + form + '</form>		\
			</div></li>';
			});
		$(".sidebar__navigation:last").after('					\
			<h3 class="sidebar__heading">Community Poll</h3>	\
			<ul class="sidebar__navigation">	\
			' + c2 + '\
			</ul>	\
			');
	}

}

//Comment editor
if(Number(GM_getValue("esg_commenteditor",1)))
{
    $(".comment__submit-button").prepend("<i class='fa fa-paper-plane'></i> ");
    $(".comment__description,.form__row__indent").has("textarea").prepend('<div class="comment__tools">	\
<div class="comment__submit-button" title="Italic text" type="wrap" value="*"><i class="fa fa-italic fa-fw"></i></div>	\
<div class="comment__submit-button" title="Bold text" type="wrap" value="**"><i class="fa fa-bold fa-fw"></i></div>	\
<div class="comment__submit-button" title="Strikethrough" type="wrap" value="~~"><i class="fa fa-strikethrough fa-fw"></i></div>	\
<div class="comment__submit-button" title="Emoticons" type="emoticon">?</div>	\
<div class="comment__submit-button serperator" title="List" type="list" value="* "><i class="fa fa-list-ul fa-fw"></i></div>	\
<div class="comment__submit-button" title="Spoiler" type="wrap" value="~"><i class="fa fa-stop fa-fw"></i></div>	\
<div class="comment__submit-button" title="Code" type="wrap" value="```"><i class="fa fa-code fa-fw"></i></div>	\
<div class="comment__submit-button" title="Block quote" type="list" value="> "><i class="fa fa-quote-left fa-fw"></i></div>	\
<div class="comment__submit-button" title="Horizontal reference" type="insert" value="\n---\n"><i class="fa fa-minus fa-fw"></i></div>	\
<div class="comment__submit-button serperator" title="Heading 1" type="list" value="# "><i class="fa fa-header fa-fw"></i>1</div>	\
<div class="comment__submit-button" title="Heading 2" type="list" value="## "><i class="fa fa-header fa-fw"></i>2</div>	\
<div class="comment__submit-button" title="Heading 3" type="list" value="### "><i class="fa fa-header fa-fw"></i>3</div>	\
<div class="comment__submit-button serperator" title="Insert url" type="url"><i class="fa fa-globe fa-fw"></i></div>	\
<div class="comment__submit-button" title="Insert image" type="image"><i class="fa fa-image fa-fw"></i></div>	\
<a href="https://www.steamgifts.com/about/comment-formatting" target="_blank"><div class="comment__submit-button serperator" title="Comment Formatting"><i class="fa fa-info fa-fw"></i></div></a>	\
</div>');
    $(".comment__tools .comment__submit-button[type=emoticon]").after('<div class="emoticons giveaway__column--invite-only" style="width:330px;height:170px;position:absolute;padding:5px;display:none;z-index:9999"> \
<div class="comment__submit-button" title=":)" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title=":D" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="xD" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Halo" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Tongue" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="In love" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Cool" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Neutral" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Fear" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Crying" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Zipped mouth" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Rolling" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Devil" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Sleeping" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Dizzy" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Doc" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Nerd face" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Upside down" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Money mouth" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Angry" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Cowboy" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Clown" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Skull" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Ghost" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Alien" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Poop" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Bit-monster" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Robot" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Cat" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Happy Cat" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Cat in love" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Crying cat" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Weary cat" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Kitty face" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Kitty" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Eyes" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Kiss" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Mouth" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Bomb" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Unicorn" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Goat" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Pig" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Luck" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Controller" type="insert" value="?">?</div>	\
<div class="comment__submit-button" title="Santa" type="insert" value="?">?</div>	\
</div>');
    
    $(".emoticons").find(".comment__submit-button").each(function () { $(this).css("display","inline-block").css("width","32px").css("height","32px").css("padding","0") } );

    $(document).on('click', '.comment__tools .comment__submit-button', function() {
        var type=$(this).attr("type");
        var val=$(this).attr("value");
        var textarea=$(this).parent().parent().parent().find("textarea");
        var text=$(textarea).val();
        var before=text.substr(0,$(textarea)[0].selectionStart);
        var between=text.substr($(textarea)[0].selectionStart,$(textarea)[0].selectionEnd-$(textarea)[0].selectionStart);
        var after=text.substr($(textarea)[0].selectionEnd,text.length-$(textarea)[0].selectionEnd);
        if(type!="emoticon") $(textarea).focus();
        if(type=="emoticon")
        {
            $(".emoticons").toggle();
        }
        if(type=="url")
        {
            var url=prompt("Url:","http://");
            if(url===null) return;
            var txt=prompt("Text:","");
            if(txt===null) return;
            var out="["+txt+"]("+url+")";
            $(textarea).val(before+out+after);
            $(textarea)[0].selectionStart=before.length;
            $(textarea)[0].selectionEnd=before.length+out.length;
        }
        if(type=="image")
        {
            var url2=prompt("Image url:","http://");
            if(url2===null) return;
            var txt2=prompt("Text:","");
            if(txt2===null) return;
            var out2="!["+txt2+"]("+url2+")";
            $(textarea).val(before+out2+after);
            $(textarea)[0].selectionStart=before.length;
            $(textarea)[0].selectionEnd=before.length+out2.length;
        }
        if(type=="wrap")
        {
            $(textarea).val(before+val+between+val+after);
            $(textarea)[0].selectionStart=before.length+val.length;
            $(textarea)[0].selectionEnd=$(textarea)[0].selectionStart+between.length;
        }
        if(type=="insert")
        {
            $(textarea).val(before+val+after);
            $(textarea)[0].selectionStart=before.length+val.length;
            $(textarea)[0].selectionEnd=before.length+val.length;
        }
        if(type=="list")
        {
            var start=0;
            var begin=false;
            for(var i=$(textarea)[0].selectionStart;i>0;i--)
            {
                if(i==1) begin=true;
                if(text[i]=="\n")
                {
                    start=i;
                    break;
                }
            }
            before=text.substr(0,start);
            between=text.substr(start,$(textarea)[0].selectionEnd-start);
            if(begin) between=val+between;
            between=between.replace(/\n/g, "\n"+val);
            if(before[before.length-1]=="\n") between=val+between;
            $(textarea).val(before+between+after);
            $(textarea)[0].selectionStart=before.length+(between[0]=='\n'?1:0);
            $(textarea)[0].selectionEnd=$(textarea)[0].selectionStart+between.length;
        }
    });
}

//Advanced Search - Coming soon
/*
if (path.match('^/giveaways/')|| path == '/')
{
    $(".sidebar__search-container").css("margin-bottom","2px");
	$(".sidebar__search-container").before('<h3 class="sidebar__heading">Advanced Search</h3>');
	var s_lv_min=getUrlParameter("level_min")?Math.max(Math.min(getUrlParameter("level_min"),10),0):0;
	var s_lv_max=getUrlParameter("level_max")?Math.max(Math.min(getUrlParameter("level_max"),10),0):10;
	var s_e_min=getUrlParameter("entry_min")?Math.max(Math.min(getUrlParameter("entry_min"),5000),0):0;
	var s_e_max=getUrlParameter("entry_max")?Math.max(Math.min(getUrlParameter("entry_max"),5000),0):5000;
	$(".sidebar__search-container").after('<div class="advanced_search"><form method="GET">	\
		Level <span class="s_lv">' + (s_lv_min == s_lv_max ? s_lv_min : s_lv_min + " - " + s_lv_max) + '</span>			\
		<div class="search__slider form__slider_search--level ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all">	\
		<div style="width: 0%;" class="ui-slider-range ui-widget-header ui-corner-all ui-slider-range-min"></div>	\
		<span style="left: 0%;" class="ui-slider-handle ui-state-default ui-corner-all" tabindex="1" width="100%">	\
		</span></div>	\
		Entry <span class="s_entries">' + (s_e_min == s_e_max ? (s_e_max==5000?"&infin;":s_e_max) : s_e_min + " - " + (s_e_max==5000?"&infin;":s_e_max)) + '</span>			\
		<div class="search__slider form__slider_search--entry ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all">	\
		<div style="width: 0%;" class="ui-slider-range ui-widget-header ui-corner-all ui-slider-range-min"></div>	\
		<span style="left: 0%;" class="ui-slider-handle ui-state-default ui-corner-all" tabindex="1" width="100%">	\
		</span></div>	\
');
	$('.form__slider_search--level').slider({
		range: true,
		values: [s_lv_min, s_lv_max],
		min: 0,
		max: 10,
		slide: function(event, ui) {
			$(".s_lv").text(ui.values[0] == ui.values[1] ? ui.values[0] : ui.values[0] + " - " + ui.values[1]);
		}
	});
	
	 $('.form__slider_search--entry').slider({
		range: true,
		values: [s_e_min, s_e_max],
		min: 0,
		max: 5000,
		slide: function(event, ui) {
			var min=ui.values[0];
			var max=ui.values[1];
			if(max==5000) max="&infin;";
			if(min==5000) min="&infin;";
			$(".s_entries").html(min == max ? max : min + " - " + max);
		}
	});
}
*/

//Remove the paddings if adblock enabled
if($(".sidebar__mpu").height()<10)
	$(".sidebar__mpu").hide();
if($(".leaderboard").height()<10)
	$(".leaderboard").hide();

//Auto scroll
if ($(".pagination").length > 0 && Number(GM_getValue("esg_autoscroll", 1))) {
	var loading = false;
	$('.widget-container--margin-top').remove();
	$('.giveaway__row-outer-wrap:last').parent().after('<img src="https://raw.githubusercontent.com/nandee95/Extended_Steamgifts/master/img/loading.gif" class="page-loading"></div>');
	$('.table:last').after('<br><img src="https://raw.githubusercontent.com/nandee95/Extended_Steamgifts/master/img/loading.gif" class="page-loading"></div>');
    if($(".comments__entity").length === 0) $('.comments:last').after('<br><img src="https://raw.githubusercontent.com/nandee95/Extended_Steamgifts/master/img/loading.gif" class="page-loading"></div>');
    else $('.comments__entity:last').parent().after('<br><img src="https://raw.githubusercontent.com/nandee95/Extended_Steamgifts/master/img/loading.gif" class="page-loading"></div>');
	$('.page-loading').hide();
	var page = currentpage;
	$('.page__heading__breadcrumbs:first').append('<i class="fa fa-angle-right"></i><a href="' + window.location.href + '"> Page ' + page + '</a>');
	if ($('.comment--submit').length > 0) {
		$('.comment--submit').insertAfter(".page__heading:contains('Comment')");
	}
	
	$(document).on("click",".js__comment-reply-cancel",function () {
		$('.comment--submit').insertAfter(".page__heading:contains('Comment')");
	});

	$(".sidebar").append("<span class=\"fp-mark\" height=0></span><div class=\"floating-pagination global__image-outer-wrap\">"+($(".comment--submit").length >0? '<div class="sidebar__action-button jump_to_comment no-user-select">Write a comment</div>':'') + $('.pagination').html().replace("Previous", "").replace("...", "").replace("...", "").replace("Next", "").replace("First", "").replace("Last", "") + "</div>");
	$('.pagination').remove();
	if ($(".fp-mark").offset().top-$(window).height()+150<$(window).scrollTop()) $(".floating-pagination").show();
	else $(".floating-pagination").hide();

	$(window).scroll(function() {
		if ($(".fp-mark").offset().top-$(window).height()+150<$(window).scrollTop()) $(".floating-pagination").show();
		else $(".floating-pagination").hide();
		if (!loading && $(window).scrollTop() + $(window).height() > $(document).height() - 1000 && !lastpage) {
			loading = true;
			$('.page-loading').show();
			var pageurl = updateURLParameter(pagination_url, "page", page + 1);
			$.ajax({
				url: pageurl,
				success: function(source) {
					lastpage = (source.indexOf('<span>Next</span>') == -1);
					var mainurl;
					pageurl.substring(0, pageurl.indexOf('&'));
					if ($('.table').length > 0) {
						$('.table:last').after('<div class="page__heading"><div class="page__heading__breadcrumbs">' + pagename + ' <i class="fa fa-angle-right"></i> <a href="' + pageurl + '">Page ' + (page + 1) + '</a></div></div><div class="table">' + $(source).find('.table').html() + '</div>');
						check_entered_chances();
						if(path=="/giveaways/wishlist")
						{
							$(".table:last").find(".table__column__heading").each(function () {
								var title=$(this).html();
								$(this).html("<a href=\"/giveaways/search?q="+encodeURI(title)+"\">"+title+"</a>");
							});
						}

					} else if ($(".giveaway__row-outer-wrap").length > 0) {

						$('.giveaway__row-outer-wrap:last').parent().after('<div class="page__heading"><div class="page__heading__breadcrumbs"><a href="/">Giveaways</a> <i class="fa fa-angle-right"></i> <a href="' + pageurl + '">Page ' + (page + 1) + '</a></div></div>');
						$(source).find(".giveaway__row-outer-wrap:last").parent().insertAfter(".page__heading:last");
						$(".giveaway__row-outer-wrap:last").parent().find(".giveaway__row-outer-wrap").format_ga().filter_ga();
					} else if ($('.comments__entity').length > 0) { //messages page
                        $(".comments__entity:last").parent().after('<div class="page__heading"><div class="page__heading__breadcrumbs">'+pagename+' <i class="fa fa-angle-right"></i> <a href="' + pageurl + '">Page ' + (page + 1) + '</a></div></div><div>' + $(source).find('.comments__entity:first').parent().html() + '</div>');
						$(".comments__entity:last").parent().find(".comment").find("div[class='comment__description markdown markdown--resize-body']").format_comment();
					} else if ($('.comments').length > 0) {
						$('.comments:last').after('<div class="page__heading"><div class="page__heading__breadcrumbs"><a href="' + mainurl + '">Comments </a> <i class="fa fa-angle-right"></i> <a href="' + pageurl + '">Page ' + (page + 1) + '</a></div></div><div class="comments">' + $(source).find('.comments:last').html() + '</div>');
						$(".comments:last").find(".comment").find("div[class='comment__description markdown markdown--resize-body']").format_comment();
					}
					page++;
					rx = (regex_pagination_results).exec($(source).find(".pagination__results").html());
					if (rx)
						pagination_max = rx[2];

					$(".floating-pagination").html(($(".comment--submit").length >0? '<div class="sidebar__action-button jump_to_comment">Write a comment</div>':'') + $(source).find('.pagination').html().replace("Previous", "").replace("...", "").replace("...", "").replace("Next", "").replace("First", "").replace("Last", ""));
					$(".pagination__results strong:first").html(pagination_min);
					$(".pagination__results strong:nth-child(2)").html(pagination_max);
				},
				complete: function() {
					loading = false;
					$('.page-loading').hide();
					$(window).trigger('scroll');
				}
			});
		}
	});
}

$(document).on("click",".jump_to_comment",function () { 
    setTimeout(function() {
    $('html, body').animate({
			scrollTop: $(".comment--submit").offset().top-100
		}, 'fast', function() {
    $("textarea[name=description]").focus();
  });
    }, 1);
});

if(Number(GM_getValue("esg_hidefeatured"))&&(path.match('^/giveaways/')||path=="/"))
{
	$(".featured__container").remove();
}

if (Number(GM_getValue("esg_fixedheader", 1))) {
	$("header").css("position", "fixed");
	$("header").css("width", "100%");
	$("header").css("z-index", "100");
	$("header").css("top", "0");
	if($(".header__error").length > 0)				$(".header__error").css("margin-top", "38px");
	else if ($(".featured__container").length > 0)	$(".featured__container").css("margin-top", "38px");
	else											  $(".page__outer-wrap").css("margin-top", "38px").css("right", "0");
}

//Re collapse pinned giveaways
if($(".pinned-giveaways__button").length>0)
{
	$(".pinned-giveaways__button").find("i").removeClass("fa-angle-down").addClass("fa-chevron-down");
	$(document).on("click",".pinned-giveaways__button",function () {
		$(this).show();
		var collapsed = $(this).attr("collapsed");
		if(collapsed == 1)
		 $(".pinned-giveaways__inner-wrap").addClass("pinned-giveaways__inner-wrap--minimized");
		else
		 $(".pinned-giveaways__inner-wrap").removeClass("pinned-giveaways__inner-wrap--minimized");
    $(".pinned-giveaways__inner-wrap").css("border-bottom-left-radius","0");
		$(".pinned-giveaways__inner-wrap").css("border-bottom-right-radius","0");
		$(this).attr("collapsed",collapsed=="1"?"0":"1");
		$(this).find(".fa").toggleClass("fa-chevron-down").toggleClass("fa-chevron-up");
	});
}

/*
if($(".pinned-giveaways__button").length>0)
{
	$(".pinned-giveaways__button").addClass("pinned-giveaways__button2").removeClass("pinned-giveaways__button")
	$(".pinned-giveaways__button2").css("margin-top","-20px").find("i").removeClass("fa-angle-down").addClass("fa-chevron-down");
	setTimeout(function () {
		$(document).on("click",".pinned-giveaways__button2",function () {
			$(".pinned-giveaways__inner-wrap").toggleClass("pinned-giveaways__inner-wrap--minimized");
			$(this).find(".fa").toggleClass("fa-chevron-down").toggleClass("fa-chevron-up");
			return false;
		});
	},1);
}*/

//Display chances on giveaway's page
if(Number(GM_getValue("esg_chances", 1))&&path.match("^/giveaway/"))
{
    var entries=Number($(".live__entry-count").text().replace(/\,/,""));
    var copies=1;
    if($(".featured__heading").find(".featured__heading__small").length>1)
        copies=Number($(".featured__heading").find(".featured__heading__small:first").text().replace(/\,/,"").replace(" Copies)","").replace("(",""));
    var chance = 0;
		if (entries <= 0)
			chance = 100;
		else
			chance = Math.round(copies / (entries) * 10000) / 100;
		if (chance > 100)
			chance = 100;
    $(".featured__columns").find(".featured__column:first").after('<div class="featured__column"><i class="fa fa-fw fa-area-chart icon-yellow"></i> <span alt="Odds: '+(entries/copies).toFixed(0)+':1"'+(chance>=5?" style='font-weight:bold'":"")+'>'+chance+'% chance</span></div>');
}

//Hidden giveaway notfication
if(path.match("^/giveaway/") && $(".featured__giveaway__hide").length == 0)
{
    $(".featured__columns").find(".featured__column:first").after('<div class="featured__column"><i class="fa fa-fw fa-ban icon-red"></i> Hidden game</div>');
}

//Filter
$.fn.filter_ga = function() {
	if (path != "/")
		return $(this);
	return $(this).each(function() {
		var ga = $(this);
		if ($(ga).closest(".pinned-giveaways__outer-wrap").length !== 0)
			return;
		//Read some data
		var url = $(ga).find('.giveaway__heading__name').attr('href');
		var c = $(ga).find('.giveaway__heading__thin').text();
		var copies = 1,
			e = 0;
		if (c.indexOf('Copies') > -1) {
			copies = Number(c.substring(1, getPos(c, ' ', 1)).replace("(", "").replace("(", "").replace(",", ""));
		}

		var entered = $(ga).find('.giveaway__row-inner-wrap').hasClass('is-faded');
		e = $(ga).find('.giveaway__links').find('span:first').text().replace(/\,/g, '');
		e = e.substring(0, getPos(e, ' ', 1));
		var entries = Number(e);

		var chance = 0;
		if (entries <= 0)
			chance = 100;
		else
			chance = Math.round(copies / (entries + (entered?0:1)) * 10000) / 100;
		if (chance > 100)
			chance = 100;

		var req = Number($(ga).find(".giveaway__heading__thin:last").text().replace("(", "").replace(")", "").replace("P", ""));
		var has = Number($(".nav__points").text());
		var enough = req <= has ? true : false;

		//var wishlist=(($.inArray(url,wishlist)!=-1)?true:false);
		var group = $(ga).find('.giveaway__column--group').length > 0 ? 1 : 0;
		var whitelist = $(ga).find('.giveaway__column--whitelist').length > 0 ? 1 : 0;
		var regionrestricted = $(ga).find('.giveaway__column--region-restricted').length > 0 ? 1 : 0;
		var communityvoted = $(ga).find('.giveaway__column--community-voted').length > 0 ? 1 : 0;
		var level = 0;
		if ($(ga).find(".giveaway__column--contributor-level").length !== 0)
			level = Number($(ga).find(".giveaway__column--contributor-level").text().replace("Level", "").replace("+", "").trim());

		if (!(GM_getValue("esg_f_min_level", 0) <= level && level <= GM_getValue("esg_f_max_level", 10)))
			$(ga).hide();
		else if (!(GM_getValue("esg_f_min_chance", 0) <= chance && chance <= GM_getValue("esg_f_max_chance", 100)))
			$(ga).hide();
		else if (!(GM_getValue("esg_f_min_points", 0) <= req && req <= GM_getValue("esg_f_max_points", 100)))
			$(ga).hide();
		else if(!(GM_getValue("esg_f_min_copies", 1) <= copies && (copies <= GM_getValue("esg_f_max_copies", 100000)|| GM_getValue("esg_f_max_copies", 100000)==100000)))
			$(ga).hide();
		else if ((GM_getValue("esg_f_group", 1) === 0 && group) || (GM_getValue("esg_f_group", 1) == 2 && !group))
			$(ga).hide();
		else if ((GM_getValue("esg_f_whitelist", 1) === 0 && whitelist) || (GM_getValue("esg_f_whitelist", 1) == 2 && !whitelist))
			$(ga).hide();
		else if ((GM_getValue("esg_f_regionrestricted", 1) === 0 && regionrestricted) || (GM_getValue("esg_f_regionrestricted", 1) == 2 && !regionrestricted))
			$(ga).hide();
		else if ((GM_getValue("esg_f_community", 1) === 0 && communityvoted) || (GM_getValue("esg_f_community", 1) == 2 && !communityvoted))
			$(ga).hide();
		else
			$(ga).show();
        $(window).trigger('scroll');
	});
};

//Community wishlist
if(path=="/giveaways/wishlist")
{
	$(".table__column__heading").each(function () {
		var title=$(this).html();
		$(this).html("<a href=\"/giveaways/search?q="+encodeURI(title)+"\">"+title+"</a>");
	});
}

//Giveaway function
$.fn.format_ga = function() {
	return $(this).each(function() {
		var ga = $(this);
		//Read some data
		var url = $(ga).find('.giveaway__heading__name').attr('href');
		var code = 0;
		if (url) code = url.substring(getPos(url, '/', 2) + 1, getPos(url, '/', 3));
		var c = $(ga).find('.giveaway__heading__thin').text();
		var copies = 1,
			e = 0;
		if (c.indexOf('Copies') > -1) {
			copies = Number(c.substring(1, getPos(c, ' ', 1)).replace("(", "").replace("(", "").replace(",", ""));
		}

		var entered = $(ga).find('.giveaway__row-inner-wrap').hasClass('is-faded');
		e = $(ga).find('.giveaway__links').find('span:first').text().replace(/\,/g, '');
		e = e.substring(0, getPos(e, ' ', 1));
		var entries = Number(e);

		var chance = 0;
		if (entries <= 0)
			chance = 100;
		else
			chance = Math.round(copies / (entries + (entered?0:1)) * 10000) / 100;
		if (chance > 100)
			chance = 100;

		var time = $(ga).find(".giveaway__columns").find("div:first");
		var active = (time.text().indexOf('ago') > -1) ? 0 : 1;
		var time2 = $(ga).find(".giveaway__column--width-fill span");
		var newga = (time2.text().indexOf('minute') > -1 || time.text().indexOf('second') > -1) ? 1 : 0;

		var req = Number($(ga).find(".giveaway__heading__thin:last").text().replace("(", "").replace(")", "").replace("P", ""));
		var has = Number($(".nav__points").text());
		var enough = req <= has ? true : false;
		var user = $(ga).find(".giveaway__username").text();
		
		var title=$(ga).find(".giveaway__heading__name").text();
		
		var pinned=$(ga).closest(".pinned-giveaways__outer-wrap").length!==0?1:0;
		
		//Display chances
		if (Number(GM_getValue("esg_chances", 1)) && loggedin) {
			$(ga).find('.giveaway__columns').find("div:first").after('<div><i class="fa fa-fw fa-area-chart"></i> <span title="Odds: '+(entries/copies).toFixed(0)+':1"'+(chance>=5?" style='font-weight:bold'":"")+'>' + chance.toFixed(2) + '% chance</span></div>');
		}

		//Enter/Remove button
		if (Number(GM_getValue("esg_enterremove", 1)) && loggedin && active && user != username && title!="Invite Only" ) {
			$(ga).find('.giveaway__row-inner-wrap').removeClass('is-faded');
			$(ga).find(".giveaway__columns").append("<div><form>	\
				<input type=\"hidden\" name=\"xsrf_token\" value=\"" + xsrf + "\" />	\
				<input type=\"hidden\" name=\"do\" value=\"\" />	\
				<input type=\"hidden\" name=\"code\" value=\"" + code + "\" />	\
				<div data-do=\"entry_insert\" class=\"sidebar__entry-custom sidebar__entry-insert" + (!entered && enough ? "" : " is-hidden") + "\"><i class=\"fa fa-plus-circle\"></i> Enter</div>	\
				<div data-do=\"entry_delete\" class=\"sidebar__entry-custom sidebar__entry-delete" + (entered ? "" : " is-hidden") + "\"><i class=\"fa fa-minus-circle\"></i> Remove</div>	\
				<div class=\"sidebar__entry-custom sidebar__entry-loading is-hidden\"><i class=\"fa fa-refresh fa-spin\"></i> Wait</div>	\
				<div class=\"sidebar__entry-custom sidebar__error " + (!enough && !entered ? "" : " is-hidden") + "\">" + (!enough && !entered ? "<i class=\"fa fa-exclamation-circle\"></i> Not enough points" : "") + "</div>	\
				</form></div>");
		}

		//Description
		$(ga).find(".giveaway__hide").after("<i class=\"giveaway__icon fa fa-file-text-o open--desc\"></i>");
		//Search
		//$(ga).find(".giveaway__hide").after("<a href=\"/giveaways/search?q="+encodeURIComponent(title.replace('...', ''))+"\" target=\"_blank\"><i class=\"giveaway__icon fa fa-search\"></i></a>");

		//Marks
		if (Number(GM_getValue("esg_gamark", 1))) {
			if (newga) {
				$(ga).find(".giveaway__heading__name").prepend('<font color="#BFBF00" class="ga-mark">[NEW]</font> ');
			}
			if (req === 0 && $(ga).find('.giveaway__heading__name').html() != 'Invite Only') {
				$(ga).find(".giveaway__heading__name").prepend('<font color="#00BFBF" class="ga-mark">[FREE]</font> ');
			}
		}
		//Hide entered
		if (Number(GM_getValue("esg_hideentered", 0)) && entered && !pinned && path!=$(".nav__avatar-outer-wrap").attr('href')+"/giveaways/won" && !path.match("^/user")) {
			$(ga).addClass("is-hidden");
			$(window).trigger('scroll');
		}

		if(path==$(".nav__avatar-outer-wrap").attr('href')+"/giveaways/won" || path.match("^/user"))
		{
			$(ga).find('.giveaway__row-inner-wrap').removeClass('is-faded');
		}
	});
};

setTimeout(function () {  $(window).trigger('scroll'); },200);

//Format giveaways (on load)
$('.giveaway__row-outer-wrap').format_ga();

//Enter/Remove Button click
setTimeout(function() {
	if (path.match('^/giveaway/')) return;
	$(".sidebar__entry-insert, .sidebar__entry-delete").unbind("click");
	$(document).on('click', '.sidebar__entry-insert:not(.enterall), .sidebar__entry-delete', function() {
		var t = $(this);
        /*
        if(t.hasClass("sidebar__entry-delete"))
        {
            var ga=$(t).closest(".giveaway__row-outer-wrap");
            var points = Number($(ga).find(".giveaway__heading__thin:last").text().replace("(", "").replace(")", "").replace("P", ""));
            var has = Number($(".nav__points").text());
            if(has+points>400)
            {
                var diff=points+has-400;
                if(!confirm("Are you sure?\nYou will lose "+diff+" point"+(diff>1?"s":"")+" by doing this!")) return;
            }
        }*/
        t.addClass("is-hidden");
		t.closest("form").find(".sidebar__entry-loading").removeClass("is-hidden");
		t.closest("form").find("input[name=do]").val(t.attr("data-do"));
		$.ajax({
			url: "/ajax.php",
			type: "POST",
			dataType: "json",
			data: t.closest("form").serialize(),
			success: function(e) {
				t.closest("form").find(".sidebar__entry-loading").addClass("is-hidden");
				if("success" === e.type)
				{
					if(t.hasClass("sidebar__entry-insert"))t.closest("form").find(".sidebar__entry-delete").removeClass("is-hidden");
					else if(t.hasClass("sidebar__entry-delete")) t.closest("form").find(".sidebar__entry-insert").removeClass("is-hidden");
				} else if("error" === e.type) t.closest("form").find(".sidebar__error").removeClass("is-hidden").html("undefined" != typeof e.link && e.link !== 0 ? '<a href="' + e.link + '"><i class="fa fa-exclamation-circle"></i> ' + e.msg + "</a>" : '<i class="fa fa-exclamation-circle"></i> ' + e.msg);
				$(".live__entry-count").text(e.entry_count);
				$(".nav__points").text(e.points);
                var pinned=$(t).closest(".pinned-giveaways__outer-wrap").length!==0?1:0;
				if (Number(GM_getValue("esg_hideentered", 0)) && "success" === e.type &&!pinned) {
					$(t).closest(".giveaway__row-outer-wrap").slideToggle(500);
				}
				update_gas(e.points);
			}
		});
	});
	$(document).on('click', '.sidebar__error', function() {
		$(this).addClass("is-hidden").parent().find(".sidebar__entry-insert").removeClass("is-hidden");
	});
}, 10);

function update_gas(p) {
	if (p == -1)
		p = Number($(".nav__points").text());
	$('.giveaway__row-outer-wrap').each(function() {
		if(!$(this).find(".sidebar__error").hasClass("is-hidden")&&$(this).find(".sidebar__error").text()!=" Not enough points") return;
		var req = Number($(this).find(".giveaway__heading__thin:last").text().replace("(", "").replace(")", "").replace("P", ""));
		var entered = !$(this).find(".sidebar__entry-delete").hasClass('is-hidden');
		if (req > p && !entered) {
			$(this).find(".sidebar__entry-delete").addClass("is-hidden");
			$(this).find(".sidebar__entry-insert").addClass("is-hidden");
			$(this).find(".sidebar__entry-loading").addClass("is-hidden");
			$(this).find(".sidebar__error").removeClass("is-hidden").html('<i class="fa fa-exclamation-circle"></i> Not enough points');
		} else if (entered) {
			$(this).find(".sidebar__entry-delete").removeClass("is-hidden");
			$(this).find(".sidebar__entry-insert").addClass("is-hidden");
			$(this).find(".sidebar__entry-loading").addClass("is-hidden");
			$(this).find(".sidebar__error").addClass("is-hidden");
		} else {
			$(this).find(".sidebar__entry-delete").addClass("is-hidden");
			$(this).find(".sidebar__entry-insert").removeClass("is-hidden");
			$(this).find(".sidebar__entry-loading").addClass("is-hidden");
			$(this).find(".sidebar__error").addClass("is-hidden");
		}
	});
}

//Refresh points every min
if (Number(GM_getValue("esg_refresh", 0))) {
	setInterval(function() {
		$.ajax({
			url: "/ajax.php",
			type: "POST",
			dataType: "json",
			data: "xsrf_token=" + xsrf + "&do=entry_insert",
			success: function(e) {
				if ($(".nav__points").text() != e.points) {
					$(".nav__points").text(e.points);
					update_gas(e.points);
				}
			}
		});
	}, 60000);
}

//Chances on entered page
function check_entered_chances()
{
	if (path.match('^/giveaways/entered')&&Number(GM_getValue("esg_chances", 1))) {
		$(".table:last").find(".table__column--width-small:first").before('<div class="table__column--width-small text-center">Chance</div>');
		$(".table:last").find(".table__row-outer-wrap").each(function () {
			var title=$(this).find('.table__column__heading').html();
			var copies=1;
			if(title.indexOf("Copies")!=-1) copies=Number(title.match(/(?:.*)\(([0-9\,]{1,7}) Copies\)/)[1].replace(/,/g, ''));
			var entries=$(this).find(".table__column--width-small:first").html().replace(/,/g, '');
			var chance = 0;
			if (entries <= 0)
				chance = 100;
			else
				chance = Math.round(copies / (entries) * 10000) / 100;
			if (chance > 100)
				chance = 100;
			$(this).find(".table__column--width-small:first").before('<div class="table__column--width-small text-center">'+chance+'%</div>');
		});
	}
}
check_entered_chances();

//Comment formatting
$.fn.format_comment = function() {
    if(!Number(GM_getValue("esg_comment",1))) return $(this);
    
	return $(this).each(function() {
			$(this).find(".comment__toggle-attached").remove();
			$(this).find("img").removeClass("is-hidden");
			$(this).find("a").each(function () {
                
                if($(this).closest("table").length != 0 ) return
                var res = $(this).attr("href").match(/^(?:https?:\/\/(?:www.)?)(?:youtube.com\/watch\?v=|youtu.be\/)([a-zA-Z0-9\_\-]+).*?$/);
                if(res)
                {
                    $(this).after('<iframe class="global__image-outer-wrap" src="https://www.youtube.com/embed/'+res[1]+'" width="420" height="315"  frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>');
                }
                
                res = $(this).attr("href").match(/^(?:https?:\/\/(?:www.)?)vimeo.com\/([0-9]{5,12})\/?.+?$/);
                if(res)
                {
                    $(this).after('<iframe src="https://player.vimeo.com/video/'+res[1]+'" class="global__image-outer-wrap" width="420" height="315" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>');
                }
                
                 res = $(this).attr("href").match(/^(?:https?:\/\/)store.steampowered.com\/app\/(\d+)\/.*?$/);
                if(res)
                {
                    $(this).after('<iframe src="https://store.steampowered.com/widget/'+res[1]+'/?dynamiclink=1" class="global__image-outer-wrap" width="563" height="190" frameborder="0"></iframe>');
                }
                res = $(this).attr("href").match(/^((?:https?:\/\/(?:www.)?)gleam.io\/[A-Za-z0-9]{5}\/?.*?)$/);
                if(res)
                {
                    $(this).after('<div class="global__image-outer-wrap" style="width:545px !important;padding:5px 5px 5px 10px"><a class="e-gleam" href="'+res[1]+'" rel="nofollow">$2</a></div><script type="text/javascript" src="https://js.gleam.io/e.js" async="true"></script>');
                }
            });
	});
};
$(".comment").find("div[class='comment__description markdown markdown--resize-body']").format_comment();
$(".page__description").format_comment();

//Scroll to top
if (Number(GM_getValue("esg_scrolltop", 1))) {
	$("body").prepend("<div class=\"scroll-top form__submit-button\">&gt;</div>");
	$(".scroll-top").hide();
	$(".scroll-top").click(function() {
		$('html, body').animate({
			scrollTop: 0
		}, 'fast');
	});
	var state = 0;
	$(window).scroll(function() {
		var st = $(window).scrollTop();
		if (st > 500 && !state) {
			$(".scroll-top").fadeIn("fast");
			state = 1;
		} else if (st <= 500 && state) {
			$(".scroll-top").fadeOut("fast");
			state = 0;
		}
	});

}

//ESG menu
$("header .nav__left-container").append("	\
	<div class=\"nav__button-container\">		\
	<div class=\"nav__relative-dropdown is-hidden\">		\
	<div class=\"nav__absolute-dropdown\">		\
	<a class=\"nav__row\" target=\"_blank\" href=\"http://steamcommunity.com/groups/extendedsg\">		\
	<i class=\"icon-grey fa fa-fw fa-steam\"></i>		\
	<div class=\"nav__row__summary\">		\
	<p class=\"nav__row__summary__name\">Steam Group</p>		\
	<p class=\"nav__row__summary__description\">Open ESG steam group		\</p>		\
	</div>		\
	</a>		\
	<a class=\"nav__row\" href=\"/account/profile/sync#esg_options\">		\
	<i class=\"icon-grey fa fa-fw fa-cog\"></i>		\
	<div class=\"nav__row__summary\">		\
	<p class=\"nav__row__summary__name\">Options</p>		\
	<p class=\"nav__row__summary__description\">Open options		\</p>		\
	</div>		\
	</a>		\
	<a class=\"nav__row\" target=\"blank\" href=\"http://steamcommunity.com/groups/extendedsg/discussions/0/\">		\
	<i class=\"icon-red fa fa-fw fa-bug\"></i>		\
	<div class=\"nav__row__summary\">		\
	<p class=\"nav__row__summary__name\">Bug report</p>		\
	<p class=\"nav__row__summary__description\">Report bugs here!		\</p>		\
	</div>		\
	</a>	\
	<a class=\"nav__row\" target=\"blank\" href=\"https://github.com/nandee95/Extended_Steamgifts\">		\
	<i class=\"icon-green fa fa-fw fa-github\"></i>		\
	<div class=\"nav__row__summary\">		\
	<p class=\"nav__row__summary__name\">Source Code</p>		\
	<p class=\"nav__row__summary__description\">GitHub</p>		\
	</div>		\
	</a>		\
	<a class=\"nav__row\" href=\"/account/profile/sync#esg_about\">		\
	<i class=\"fa fa-fw fa-info-circle\" style=\"color:lightblue\"></i>		\
	<div class=\"nav__row__summary\">		\
	<p class=\"nav__row__summary__name\">About</p>		\
	<p class=\"nav__row__summary__description\">Author / Contact / Donate		\
	</p>		\
	</div>		\
	</a>		\
	</div>		\
	</div>		\
	<a class=\"nav__button nav__button--is-dropdown\" href=\"/discussion/qbPEr/\">ESG</a>		\
	<div class=\"nav__button nav__button--is-dropdown-arrow\"><i class=\"fa fa-angle-down\"></i></div>		\
	</div>");

//Click event fix (part of original js)
$(document).on('click',".table__remove-default",function() { 
	var e=$(this);
	e.addClass("is-hidden");
	e.siblings(".table__remove-loading").removeClass("is-hidden");
	$.ajax({
		url:ajax_url,
		type:"POST",
		dataType:"json",
		data:e.closest("form").serialize(),
		success:function(t){
			e.siblings(".table__remove-loading").addClass("is-hidden");
			e.siblings(".table__remove-complete").removeClass("is-hidden");
			e.closest(".table__row-inner-wrap").addClass("is-faded");
			if("undefined"!=typeof t.points&&t.points!==0)
				$(".nav__points").text(t.points);
		}
	});
});

$(document).on('click', '.trigger-popup', function() {
	$("." + $(this).attr("data-popup")).bPopup({
		opacity: 0.85,
		fadeSpeed: 200,
		followSpeed: 500,
		modalColor: "#3c424d"
	});
});

$(document).on('click', '.giveaway__hide', function () {
	$(".popup--hide-games input[name=game_id]").val($(this).closest(".giveaway__row-outer-wrap").attr("data-game-id"));
	$(".popup--hide-games .popup__heading__bold").text($(this).closest("h2").find(".giveaway__heading__name").text());
	//Use AJAX when hiding GAs
	var t = $(".popup--hide-games .form__submit-button.js__submit-form");
	t.removeClass("is-disabled").html('<i class="fa fa-check-circle"></i> Yes').unbind(); // Reset button state if we had previously hidden GAs
	t.on("click", function () {
		var game_id = t.closest("form").find("input[name=game_id]").val();
		$.ajax({
			url : "/", // Is unknown if there is an API param for hiding GAs so we post to main page instead
			type : "POST",
			dataType : "json",
			data : t.closest("form").serialize(),
			complete : function (data) {
				if(data.readyState === 4) {
					t.addClass("is-disabled").html("Done!").unbind(); // Don't allow form resubmission if user clicks the button again
					$(document).find("i[data-game-id=" + game_id + "]").closest(".giveaway__row-outer-wrap").remove(); // Remove all matching visible GAs instances
				}
			}
		});
	});
});

$(document).on('click', 'nav .nav__button--is-dropdown-arrow', function() {
	var e = $(this).hasClass("is-selected");
	$("nav .nav__button").removeClass("is-selected");
	$("nav .nav__relative-dropdown").addClass("is-hidden");
	if (e || $(this).addClass("is-selected").siblings(".nav__relative-dropdown").removeClass("is-hidden"))
		t.stopPropagation();
});

$(document).on('click', '.poll__vote-button-sidebar', function() {
	var t = $(this);
	t.closest("form").find("input[name=do]").val(t.hasClass("poll__vote-button--voted") ? "poll_vote_delete" : "poll_vote_insert");
	var i = $(this).closest(".sidebar__navigation__itemz");
	$.ajax({
		url: ajax_url,
		type: "POST",
		data: t.closest("form").serialize()
	});
	$(this).closest(".poll").find(".sidebar__navigation__itemz.is-selected").attr("data-votes", function(e, t) {
		return Number(t) - 1;
	});
	if (i.hasClass("is-selected")) {
		i.removeClass("not-selected");
		i.siblings(".sidebar__navigation__itemz").removeClass("is-selected");
		i.siblings(".sidebar__navigation__itemz").addClass("not-selected");
		i.attr("data-votes", function(e, t) {
			return Number(t) + 1;
		});
	} else {
		i.siblings(".sidebar__navigation__itemz").removeClass("not-selected");
	}
});


//View description button
var dsc_created = false;
$(".footer__outer-wrap").prepend('		\
	<div style="z-index: 9999" class="popup__desc-loading popup">		\
	<i class="popup__icon fa fa-spinner fa-spin"></i>		\
	<p class="popup__heading"><span class="popup__heading__bold">Loading ...</span></p>		\
	<p class="popup__actions">		\
	<span class="b-close">Close</span>		\
	</p>		\
	</div>		\
	<div style="z-index: 9999; max-width:1000px" class="popup__desc-display popup">		\
	<i class="popup__icon fa fa-file-text-o"></i>		\
	<p class="popup__heading"></p>		\
	<p class="popup__actions">		\
	<span class="b-close">Close</span>		\
	</p>		\
	</div>			\
	<div style="z-index: 9999; " class="popup__desc-error popup">		\
	<i class="popup__icon fa fa-exclamation-circle"></i>		\
	<p class="popup__heading"><span class="popup__heading__bold">No description found!</span></p>		\
	<p class="popup__actions">		\
	<span class="b-close">Close</span>		\
	</p>		\
	</div>');

//Giveaway description
$(document).on('click', '.open--desc', function() {
	var t = $(this);
	var link = $(t).closest(".giveaway__row-outer-wrap").find(".giveaway__heading__name").attr("href");
	$(".popup__desc-loading").bPopup({
		opacity: 0.85,
		fadeSpeed: 200,
		followSpeed: 500,
		modalColor: "#3c424d",
		onClose: function() {
			req.abort();
		}
	});
	var req = $.ajax({
		url: link,
		success: function(source) {
			$(".popup__desc-loading").hide();
			var desc = $(source).find(".page__description").html();
			if (desc) {
				$(".popup__desc-display").find(".popup__heading").html('<span class="popup__heading__bold">Description:</span><br><div class=\"popup--content page__description\" style=\"word-break: break-all;text-align:left;\">' + desc + "</div>");
				$(".popup__desc-loading").find(".b-close").trigger("click");
				$(".popup__desc-display").bPopup({
					opacity: 0.85,
					fadeSpeed: 200,
					followSpeed: 500,
					modalColor: "#3c424d",
					onClose: function() {
						req.abort();
					}
				});
			} else {
				$(".popup__desc-loading").find(".b-close").trigger("click");
				$(".popup__desc-error").find(".popup__heading__bold").text("No description found!");
				$(".popup__desc-error").bPopup({
					opacity: 0.85,
					fadeSpeed: 200,
					followSpeed: 500,
					modalColor: "#3c424d",
					onClose: function() {
						req.abort();
					}
				});
			}
		},
		error: function() {
			$(".popup__desc-loading").find(".b-close").trigger("click");
			$(".popup__desc-error").find(".popup__heading__bold").text("Connection failed!");
			$(".popup__desc-error").bPopup({
				opacity: 0.85,
				fadeSpeed: 200,
				followSpeed: 500,
				modalColor: "#3c424d",
				onClose: function() {
					req.abort();
				}
			});
		}
	});
});

//Giveaway filtering
$('.giveaway__row-outer-wrap').filter_ga();
if (path == '/') {
	$(".page__heading__breadcrumbs:first").after('<div class="filter" style="cursor:pointer"><i style="margin-left:5px;display:inline" class="fa fa-filter"><i style="margin-left:5px;width:10px;" class="fa fa-caret-left"></div>');
	var f_lv_min = GM_getValue("esg_f_min_level", 0);
	var f_lv_max = GM_getValue("esg_f_max_level", 10);
	var f_ch_min = GM_getValue("esg_f_min_chance", 0);
	var f_ch_max = GM_getValue("esg_f_max_chance", 100);
	var f_p_min = GM_getValue("esg_f_min_points", 0);
	var f_p_max = GM_getValue("esg_f_max_points", 100);
	var f_group = GM_getValue("esg_f_group", 1);
	var f_white = GM_getValue("esg_f_whitelist", 1);
	var f_region = GM_getValue("esg_f_regionrestricted", 1);
	var f_community = GM_getValue("esg_f_community", 1);
	var f_c_min = GM_getValue("esg_f_min_copies", 1);
	var f_c_max = Math.min(GM_getValue("esg_f_max_copies", 1000),1000);

	$(".page__heading:first").after('<div class="filter-content pinned-giveaways" style="display:none;">			\
		<table class="filter_table">	\
		<tr>	\
		<td width="50%">	\
		Level <span class="f_lv">' + (f_lv_min == f_lv_max ? f_lv_min : f_lv_min + " - " + f_lv_max) + '</span>			\
		<div class="filter__slider form__slider_filter--level ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all">	\
		<div style="width: 0%;" class="ui-slider-range ui-widget-header ui-corner-all ui-slider-range-min"></div>	\
		<span style="left: 0%;" class="ui-slider-handle ui-state-default ui-corner-all" tabindex="1">	\
		</span></div>	\
		</td>	\
		<td width="25%"><div class="form__checkbox cb__three" save="esg_f_group">	\
		<i class="fa fa-circle-o"' + (f_group <= 0 ? "" : ' style="display:none"') + '></i>	\
		<i class="fa fa-check-circle"' + (f_group == 1 ? "" : ' style="display:none"') + '></i>		\
		<i class="fa fa-circle"' + (f_group >= 2 ? "" : ' style="display:none"') + '></i> Group	\
		</div>\
		</td>		\
		<td width="25%"><div class="form__checkbox cb__three" save="esg_f_whitelist">	\
		<i class="fa fa-circle-o"' + (f_white <= 0 ? "" : ' style="display:none"') + '></i>	\
		<i class="fa fa-check-circle"' + (f_white == 1 ? "" : ' style="display:none"') + '></i>		\
		<i class="fa fa-circle"' + (f_white >= 2 ? "" : ' style="display:none"') + '></i> Whitelist	\
		</div>\
		</td>		\
		</tr>		\
		<tr>	\
		<td>	\
		Chance <span class="f_chance">' + (f_ch_min == f_ch_max ? f_ch_min : f_ch_min + " - " + f_ch_max) + '</span>%			\
		<div class="filter__slider form__slider_filter--chance ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all">	\
		<div style="width: 0%;" class="ui-slider-range ui-widget-header ui-corner-all ui-slider-range-min"></div>	\
		<span style="left: 0%;" class="ui-slider-handle ui-state-default ui-corner-all" tabindex="1">	\
		</span></div>	\
		</td>	\
		<td><div class="form__checkbox cb__three" save="esg_f_regionrestricted">	\
		<i class="fa fa-circle-o"' + (f_region <= 0 ? "" : ' style="display:none"') + '></i>	\
		<i class="fa fa-check-circle"' + (f_region == 1 ? "" : ' style="display:none"') + '></i>		\
		<i class="fa fa-circle"' + (f_region >= 2 ? "" : ' style="display:none"') + '></i> Region restricted	\
		</div>\
		</td>		\
		<td><div class="form__checkbox cb__three" save="esg_f_community">	\
		<i class="fa fa-circle-o"' + (f_community <= 0 ? "" : ' style="display:none"') + '></i>	\
		<i class="fa fa-check-circle"' + (f_community == 1 ? "" : ' style="display:none"') + '></i>		\
		<i class="fa fa-circle"' + (f_community >= 2 ? "" : ' style="display:none"') + '></i> Community Voted	\
		</div>\
		</td>		\
		</tr>		\
		<tr>	\
		<td>	\
		Entry cost <span class="f_points">' + (f_p_min == f_p_max ? f_p_min : f_p_min + " - " + f_p_max) + '</span>P			\
		<div class="filter__slider form__slider_filter--points ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all">	\
		<div style="width: 0%;" class="ui-slider-range ui-widget-header ui-corner-all ui-slider-range-min"></div>	\
		<span style="left: 0%;" class="ui-slider-handle ui-state-default ui-corner-all" tabindex="1">	\
		</span></div>	\
		</td>	\
		<td>	\
		</td>		\
		<td>	\
		</td>		\
		</tr>		\
		<tr>	\
		<td>	\
		Copies <span class="f_copies"><span class="f_min_copy">' + (f_c_min == f_c_max ? (f_c_max==1000? "&infin;": f_c_max) : f_c_min + "</span> - <span class=\"f_max_copy\">" + (f_c_max==1000? "&infin;":f_c_max)) + '</span></span>			\
		<div class="filter__slider form__slider_filter--copies ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all">	\
		<div style="width: 0%;" class="ui-slider-range ui-widget-header ui-corner-all ui-slider-range-min"></div>	\
		<span style="left: 0%;" class="ui-slider-handle ui-state-default ui-corner-all" tabindex="1">	\
		</span></div>	\
		</td>	\
		<td><span style=\"float:right;margin-right:30px\">Hints:</span>	\
		</td>	\
		<td style="color:#587cd7">\
		<i class="fa fa-circle-o"></i> - Hide	\
		<i class="fa fa-check-circle"></i> - Show		\
		<i class="fa fa-circle"></i> - Only	\
		</td>		\
		</tr>		\
		</table></div>		\
		');
    $(document).on("click",".f_min_copy",function () {
        var val = prompt("Minimum copy:");
        var int = Number(val);
        if(!$.isNumeric(val) || int <= 0)
        {
         alert("Invalid number")
         return
        }
        var max = GM_getValue("esg_f_max_copies", 1000)
        if(int > max)
        {
         alert("The minimum value can't be higher than the maximum value.")
         return
        }
        
        GM_setValue("esg_f_min_copies", int);
        var min = int;
              
        
        $(".f_copies").html("<span class=\"f_min_copy\">"+(min == max ? (max==1000? "&infin;":max) : min )+ "</span> - <span class=\"f_max_copy\">" + (max==1000? "&infin;":max)+"</span>");
        
        $('.form__slider_filter--copies').slider('values',0,min).slider('values',1,max);
        
        $('.giveaway__row-outer-wrap').filter_ga();
    });
    
    $(document).on("click",".f_max_copy",function () {
        var val = prompt("Maximum copy: (1000 means infinity)");
        var int = Number(val);
        if(!$.isNumeric(val) || int > 1000)
        {
         alert("Invalid number")
         return
        }
        var min = GM_getValue("esg_f_min_copies", 1)
        if(int < min)
        {
         alert("The maximum value can't be lower than the minimum value.")
         return
        }
        
        GM_setValue("esg_f_max_copies", int);
        var max = int;
              
        
        $(".f_copies").html("<span class=\"f_min_copy\">"+(min == max ? (max==1000? "&infin;":max) : min )+ "</span> - <span class=\"f_max_copy\">" + (max==1000? "&infin;":max)+"</span>");
        
        $('.form__slider_filter--copies').slider('values',0,min).slider('values',1,max);
        
        $('.giveaway__row-outer-wrap').filter_ga();
    });
    
	
	Math.easeIn = function (val, min, max, strength) {
		val /= max;
		return (max-1)*Math.pow(val, strength) + min;
	};
	$('.form__slider_filter--level').slider({
		range: true,
		values: [f_lv_min, f_lv_max],
		min: 0,
		max: 10,
		slide: function(event, ui) {
			GM_setValue("esg_f_min_level", ui.values[0]);
			GM_setValue("esg_f_max_level", ui.values[1]);

			$(".f_lv").text(ui.values[0] == ui.values[1] ? ui.values[0] : ui.values[0] + " - " + ui.values[1]);
			$('.giveaway__row-outer-wrap').filter_ga();
		}
	});
	$('.form__slider_filter--chance').slider({
		range: true,
		values: [f_ch_min, f_ch_max],
		min: 0.0,
		max: 100.0,
		step:0.01,
		slide: function(event, ui) {
			var min=Math.round((ui.values[0]<20.0?(ui.values[0]/20.0):((ui.values[0]-20)*1.25))*100.0)/100.0;
			var max=Math.round((ui.values[1]<20.0?(ui.values[1]/20.0):((ui.values[1]-20)*1.25))*100.0)/100.0;
			GM_setValue("esg_f_min_chance", min);
			GM_setValue("esg_f_max_chance", max);

			$(".f_chance").text(min == max ? min : min + " - " + max);
			$('.giveaway__row-outer-wrap').filter_ga();
		}
	});
	$('.form__slider_filter--points').slider({
		range: true,
		values: [f_p_min, f_p_max],
		min: 0,
		max: 100,
		slide: function(event, ui) {
			GM_setValue("esg_f_min_points", ui.values[0]);
			GM_setValue("esg_f_max_points", ui.values[1]);

			$(".f_points").text(ui.values[0] == ui.values[1] ? ui.values[0] : ui.values[0] + " - " + ui.values[1]);
			$('.giveaway__row-outer-wrap').filter_ga();
		}
	});
	$('.form__slider_filter--copies').slider({
		range: true,
		values: [f_c_min, f_c_max],
		min: 1,
		max: 1000,
		slide: function(event, ui) {
			var min=ui.values[0];
			var max=ui.values[1];
			GM_setValue("esg_f_min_copies", min);
			GM_setValue("esg_f_max_copies", max);
			$(".f_copies").html("<span class=\"f_min_copy\">"+(min == max ? (max==1000? "&infin;":max) : min) + "</span> - <span class=\"f_max_copy\">" + (max==1000? "&infin;":max)+"</span>");
			$('.giveaway__row-outer-wrap').filter_ga();
		}
	});
	$(".filter").click(function() {
		if ($(".filter-content").slideToggle(500).is(":hidden"))
			$(this).find(".fa:last").removeClass("fa-caret-down").addClass("fa-caret-left");
		else
			$(this).find(".fa:last").removeClass("fa-caret-left").addClass("fa-caret-down");
	});
	$(".cb__three").click(function() {
		var icon = $(this).find("i:visible");
		var s = 0;
		if ($(icon).hasClass("fa-circle-o")) {
			$(this).find(".fa-circle-o").hide();
			$(this).find(".fa-check-circle").show();
			$(this).find(".fa-circle").hide();
			s = 1;
		} else if ($(icon).hasClass("fa-check-circle")) {
			$(this).find(".fa-circle-o").hide();
			$(this).find(".fa-check-circle").hide();
			$(this).find(".fa-circle").show();
			s = 2;
		} else if ($(icon).hasClass("fa-circle")) {
			$(this).find(".fa-circle-o").show();
			$(this).find(".fa-check-circle").hide();
			$(this).find(".fa-circle").hide();
			s = 0;
		}
		GM_setValue($(this).attr("save"), s);
		$('.giveaway__row-outer-wrap').filter_ga();
	});
}