function createCookie(name, value, days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

/**
 *  fraud email bots
 */
var supportEmail = function(){
	var se_p = 'sup' + 'port';
	var se_s = 'sonett' + 'ic.com';
	var se_cmd = 'mail' + 'to';
	$('span.support-email').each(function(){
		var text = $(this).html();
		var m = se_p + '@' + se_s;
		text = text.replace('(email)', m);
		$(this).html('<a href="' + se_cmd + ':' + m + '">' + text + '</a>');		
	});
	
}

var LINK_MAIN = LINK_MAIN || false;

/**
 *  generate random puzzle
 */
var randomPuzzle = function(){	
	var page = readCookie('page') || 0;
	// make request to listing
	$.ajax({
		type: "GET",
		url: 'http://' + location.host+ "/iphone/games/fifteens/listing.xml?itemsOverPage=1&page=" + page,
		dataType: "xml",
		success: function(xml){
			$(xml).find('games').each(function(){
				var games_count = $(this).attr('count');		
				var page = Math.floor(Math.random() * (games_count - 1));
				createCookie('page', page, 1);
				var item = $(this).find('item:first');
				var title = item.find('title:first');
				var desc = item.find('desc:first');
				var preview = item.find('preview:first');
				var gameplay = item.find('gameplay:first');
				var url = item.find('url:first');
				$('#random-puzzle-preview').attr('src', url.text() + '/' + preview.text());
				$('#random-puzzle-title').text(title.text() + ' (' + gameplay.attr('vslices') + 
													'x' + gameplay.attr('hslices') + ')');
				$('#random-puzzle-desc').text(desc.text());
				$('#random-puzzle-preview').load(function(){
					$('.random-puzzle').fadeIn(500);
				});
				
				
			}); //close each(
		}
	});
}

var template = function(t, v){
	for(var i in v){
		while(t.indexOf('{' + i + '}') >= 0){
			t = t.replace('{' + i + '}', v[i]);
		}
	}
	return t;
};

var puzzlesList = function(own){
	if(own.length == 0)return;
	$.ajax({
		type: "GET",
		url: "http://" + location.host + "/iphone/games/fifteens/listing.xml?itemsOverPage=199",
		dataType: "xml",
		success: function(xml){
			$('#loadbar').hide();
			$(xml).find('item').each(function(){				
				var item = $(this);
				var title = item.find('title:first').text();
				var desc = item.find('desc:first').text();
				var preview = item.find('preview:first').text();
				var gameplay = item.find('gameplay:first');
				var url = item.find('url:first').text();
				var category = item.find('category:first').text();
				own.append(
					template('<li><div class="game-preview"> \
					<img src="{url}" width="100" height="99" alt="{title}" /> \
					</div><div class="game-desc"> \
					<h4>{title}</h4><span class="game-details"><span class="game-size">{vslices}x{hslices}</span>\
					<span class="game-category">{category}</span></span> \
					<p>{desc}</p></div></li>',
					{
						'url' : url + '/' + preview,
						'title' : title,
						'desc' : desc,
						vslices : gameplay.attr('vslices'),
						hslices : gameplay.attr('hslices'),
						category : category					
					})
				);
				
				
				
			}); //close each(
			resizeLayout();
		}
	});
	
}

var resizeLayout = function(){ $('#layoutbg').css('height', $(document).height() + 'px'); }
/**
 *  Default
 */
$(document).ready(function(){
	resizeLayout();
	randomPuzzle();
	supportEmail();	
	
	if(LINK_MAIN){
		$('#logo').addClass('link');
		$('#logo').click(function(){
			location = './';	
		});		
	}
	
	puzzlesList($('#gameslist'));
});