PageSourceSearch

https://gogamingpro.com/js/_reviews.js

js gogamingpro.com collected 2026-10-06 08:05:30 UTC 5,491 bytes, 167 lines download raw bytes

1/* global jQuery:false */
2var THEMEREX_user_marks = false;
3
4
5
6	
7
8function initReviews() {
9	"use strict";
10
11	var fromFront = arguments[0] ? true : false;
12	
13	// Show current marks
14	jQuery('.reviews_data '+(reviews_max_level < 100 ? '.criteria_stars' : '.criteria_bar')).each(function() {
15		"use strict";
16		setStarsOnMark(jQuery(this).find(reviews_max_level < 100 ? '.theme_stars' : '.criteria_level').eq(0), null);
17	});
18	
19	if (allowUserReviews) {
20		if (reviews_max_level < 100) {
21			// Stars selector: over, out and click
22			jQuery('.reviews_users .reviews_data').on('mouseover', '.theme_stars', function(e) {
23				"use strict";
24				if (!allowUserReviews) return;
25				jQuery(this).parent().find('.theme_stars').removeClass('theme_stars_on');
26				jQuery(this).addClass('theme_stars_on').prevAll().addClass('theme_stars_on');
27			});
28			jQuery('.reviews_users .reviews_data').on('mouseout', '.theme_stars', function(e) {
29				"use strict";
30				if (!allowUserReviews) return;
31				setStarsOnMark(jQuery(this), null);
32			});
33			jQuery('.reviews_users .reviews_data').on('click', '.theme_stars', function(e) {
34				"use strict";
35				if (!allowUserReviews) return;
36				if (!THEMEREX_user_marks && jQuery(this).parents('#reviews_users').length > 0) {
37					jQuery(this).parent().parent().parent().find('.theme_stars').removeClass('theme_stars_on');
38					jQuery(this).parent().parent().parent().find('input').val(0);
39					THEMEREX_user_marks = true;
40				}
41				var mark = Number(jQuery(this).data('mark'));
42				if (mark === 1 && mark === Number(jQuery(this).parent().siblings('input').val())) {
43					mark = 0;
44				}
45				setStarsOnMark(jQuery(this), mark);
46				setAverageMark(jQuery(this).parents('.reviews_tab').attr('id'));
47				// Change description to button
48				if (!jQuery('.reviews_users .criteria_summary_text').hasClass('show_button')) {
49					jQuery('.reviews_users .criteria_summary_text').addClass('show_button');
50				}
51			});
52		} else {
53			initDrag();
54		}
55	} else {
56		if (reviews_max_level == 100) {
57			jQuery(".reviews_users .reviews_data .criteria_dragger" ).hide();
58		}
59	}
60	
61	// Summary hover
62	if (fromFront) {
63		jQuery('.criteria_summary').hover(
64			function(e) {
65				"use strict";
66				jQuery(this).addClass('show_word');
67			},
68			function(e) {
69				"use strict";
70				jQuery(this).removeClass('show_word');
71			}
72		);
73	}
74}
75
76function initDrag() {
77	"use strict";
78	var step = 0;
79	jQuery(".reviews_users .reviews_data .criteria_dragger" ).each(function () {
80		"use strict";
81		var obj = jQuery(this);
82		var bar = jQuery(this).parent();
83		var barWidth = bar.width()-obj.width();
84		var mark = bar.siblings('input').val();
85		if (step == 0) {
86			step = barWidth/reviews_max_level;
87		}
88		obj.css('left', Math.round(mark*step));
89	});
90	jQuery(".reviews_users .reviews_data .criteria_dragger" ).draggable({
91		axis: 'x',
92		grid: [step, step],
93		containment: 'parent',
94		drag: function(e, ui) {
95			"use strict";
96			if (!allowUserReviews) return;
97			var pos = ui.position.left;
98			var mark = Math.max(0, Math.min(reviews_max_level, Math.round(ui.position.left / step)));
99			if (!THEMEREX_user_marks && ui.helper.parents('#reviews_users').length > 0) {
100				ui.helper.parents('#reviews_users').find('.criteria_level').width(0);
101				ui.helper.parents('#reviews_users').find('input').val(0);
102				ui.helper.parents('#reviews_users').find('.criteria_mark').html(0);
103				ui.helper.parents('#reviews_users').find('.criteria_dragger').css('left', 0);
104				THEMEREX_user_marks = true;
105			}
106			setStarsOnMark(ui.helper.siblings('.criteria_bar').find('.criteria_level'), mark);
107			setAverageMark(ui.helper.parents('.reviews_tab').attr('id'));
108			// Change description to button
109			if (!jQuery('.reviews_users .criteria_summary_text').hasClass('show_button')) {
110				jQuery('.reviews_users .criteria_summary_text').addClass('show_button');
111			}
112		}
113	});
114}
115
116// Show average mark
117function setAverageMark() {
118	"use strict";
119	var id = arguments[0] ? arguments[0] : '';
120	var avg = 0;
121	var cnt = 0;
122	jQuery((id ? '#'+id+' ' : '')+'.reviews_data .criteria_row input').each(function() {
123		avg += parseFloat(jQuery(this).val());
124		cnt++;
125	});
126	avg = cnt > 0 ? Math.round(avg/cnt*10)/10 : '0.0';
127	if (String(avg).indexOf('.') < 0) {
128		avg += '.0';
129	}
130	jQuery((id ? '#'+id+' ' : '')+'.reviews_summary .criteria_mark').html(avg);
131	jQuery((id ? '#'+id+' ' : '')+'.reviews_summary .criteria_word').html(getReviewsRatingWordValue(avg));
132	setAverageStars(id, avg);
133}
134
135// Set average stars width
136function setAverageStars(id, avg) {
137	"use strict";
138	jQuery((id ? '#'+id+' ' : '')+'.reviews_summary '+(reviews_max_level < 100 ? '.stars_on' : '.criteria_level')).css('width', Math.round(avg/reviews_max_level*100)+'%');
139}
140
141// Restore or set new stars value
142function setStarsOnMark(obj, mark) {
143	"use strict";
144	var prnt = reviews_max_level < 100 ? obj.parent() : obj.parent().parent();
145	if (mark!==null) {
146		prnt.siblings('input').val(mark);
147	} else {
148		mark = prnt.siblings('input').val();
149	}
150	prnt.siblings('.criteria_mark').html(mark);
151	if (reviews_max_level < 100) {
152		prnt.find('.theme_stars').removeClass('theme_stars_on').each(function(idx) {
153			if (idx+1 <= Math.round(mark)) jQuery(this).addClass('theme_stars_on');
154		});
155	} else {
156		obj.css('width', mark/reviews_max_level*100+'%');
157	}
158}
159
160// Get word-value review rating
161function getReviewsRatingWordValue(r) {
162	"use strict";
163	var words = reviews_levels.split(',');
164	var k = reviews_max_level / words.length;
165	r = Math.max(0, Math.min(words.length-1, Math.floor(r/k)));
166	return words[r];
167}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.