var G_pos = 0;
var G_id = '';
var G_resolutions = new Array('1024 x 768', '1280 x 800', '1280 x 1024', '1440 x 900', '1600 x 1200', '1680 x 1050', '1920 x 1200');
var G_wallpaperLink = '';
var G_wallpaperDir = '/img/wallpapers/';
var G_res = 0;
//(0, 18.5, 34, 49.5, 65, 80.5, 100);
var G_leafPositions = new Array(null);
var G_risk = new Array(0, 18.5, 34, 49.5, 65, 80.5, 100);
var stack = new Array([0, G_risk.length - 1]);
var G_graph = new Array(null);

var pos_i = 1;
while (stack.length > 0) {
	var range = stack.shift();
	if (range[1] - range[0] > 1) {
		var pos = Math.floor((range[1] - range[0])/2) + range[0];
		stack.push([range[0], pos]);
		stack.push([pos, range[1]]);
		G_leafPositions.push(G_risk[pos]);
		//=========
		G_graph.push(new Array(pos_i + 1, pos_i + 2, 'l', pos));
		pos_i += 2;
	} else {
		var pos_r = (G_risk[range[0]] + G_risk[range[1]])/2;
		G_leafPositions.push(pos_r);
		G_graph.push(new Array(range[0], range[1], 'last'));
	}
}

$(document).ready(function() {
	$('#slider').slider({ 
		minValue: 0, 
		maxValue: 5,
		step: 1,
		slide: function (event, ui) {
			var position = ui.value;				
			var positionX = $('#slider').width() * position / 100;
			var delta = positionX - G_pos;
			$('#resolution').css('left', $('#resolution').position().left + delta);
			G_pos = $('#resolution').position().left;
			//console.log(ui.value);
			setValue(ui.value);
		},
		
		change: function(event, ui) {
			if (event.originalEvent == null) {
				return false;
			}
			OnSlChange(ui.value);
		}
	});

	var scr = screen.width + ' x ' + screen.height;
	var k = 0;
	for (var i = 0; i < G_resolutions.length; i++) {
		if (G_resolutions[i] == scr) {
			k = i;
			break;
		}
	}
	var pos = G_risk[k];
	G_res = k;
	
	var positionX = $('#slider').width() * pos / 100;
	var delta = positionX - G_pos;
	$('#resolution').css('left', delta);
	G_pos = $('#resolution').position().left;
	$('#resolution').css('margin-left', - $('#resolution').width() / 2);
	$('#resolution').html(G_resolutions[k]);
	$('#slider > .ui-slider-handle').css('visibility', 'visible');	
	
	$('#slider').slider('value', pos);
	setWallpaperLink();
	//OnSlChange(pos);
	



	for (var i = 1; i <= 6; i++) {
		var id = '#bdiv' + i;
		$(id).bind("mouseenter mouseleave", function(e){
			$(this).toggleClass("bdiv_active");
		});
		$(id).bind('click', function (e) {			
			G_id = '#' + this.id;
			
			setWallpaperLink();
			location.href = G_wallpaperLink;
		});
	}
});

function wallDownload () {
	return G_id != '';
}

function setWallpaperLink() {
	var resolution = G_resolutions[G_res];
	resolution = resolution.replace(' ', '', 'g');
	resolution = resolution.replace(' ', '', 'g');/*For Chrome*/

	G_id.match(/(\d+)$/);
	G_wallpaperLink = G_wallpaperDir + RegExp.$1 + '_' + resolution + '.jpg';
}



function setValue (value) {
	var position = value;
	var begin = G_risk[0];
	var end;
	var out = true;
	var k = 0;
	for (var i = 1; i < G_risk.length; i++) {
		if (G_risk[i] == position) {
			k = i;
			out = false;
			break;
		} else if (position > G_risk[i]) {
			begin = G_risk[i];
			k = i;
		} else {
			end = G_risk[i];
			break;
		}
	}
	if (out) {
		if (position >= ((begin + end) / 2)) {
			k++;
			position = end;
		} else {
			position = begin;
		}
	}
	$('#resolution').html(G_resolutions[k]);
	return [position, k];
}

function getPosition (p) {
	var i = 1;
	var n;
	while (1) {
		if (G_graph[i][2] != null && G_graph[i][2] == 'l' && p == G_leafPositions[i]) {
			return G_graph[i][3];
		}
		
		if (p < G_leafPositions[i]) {
			n =  G_graph[i][0];
		} else {
			n =  G_graph[i][1];
		}

		if (G_graph[i][2] != null && G_graph[i][2] == 'last') {
			return n;
		} else {
			i = n;
		}
	}
}

function OnSlChange(value) {
	var a = setValue(value);
	var position = a[0];
	var k = a[1];
	$('#slider').slider('value', position);

	var positionX = $('#slider').width() * position / 100;
	var delta = positionX - G_pos;
	$('#resolution').css('left', $('#resolution').position().left + delta);
	G_pos = $('#resolution').position().left;
	
	$('#resolution').css('margin-left', - $('#resolution').width() / 2);
	$('#resolution').html(G_resolutions[k]);
	G_res = k;
		
	setWallpaperLink();
}

