/**
 *
 *
 *
 *
 * 
 */

function Items(items) {

	this.items = items; //Array of objects
	this.value = true;
	this.name = true;
	this.special = true;
	this.newitem = true;
	this.featured = true;
	this.hasrun = false;

	this.sortBySpecial = function() {
		if(!this.special){
			this.items.sort(function(a,b){
				if(a.special)
					return 1;
				else if(a.special == b.special)
					return 0;
				else
					return -1;
			});
			this.special = true;
		}
		else {
			this.items.sort(function(a,b){
				if(b.special)
					return 1;
				else if(a.special == b.special)
					return 0;
				else
					return -1;
			});
			this.special = false;
		}
	}

	this.sortByFeatured = function() {
		if(!this.featured){
			this.items.sort(function(a,b){
				if(a.featured)
					return 1;
				else if(a.featured== b.featured)
					return 0;
				else
					return -1;
			});
			this.featured = true;
		}
		else {
			this.items.sort(function(a,b){
				if(b.featured)
					return 1;
				else if(a.featured== b.featured)
					return 0;
				else
					return -1;
			});
			this.featured = false;
		}
	}

	this.sortByValue = function() {
		if(!this.value){
			this.items.sort(function(a,b){return a.value - b.value;});
			this.value = true;
		}
		else {
			this.items.sort(function(a,b){return b.value - a.value;});		
			this.value = false;
		}
	};
	
	this.sortByName = function() {
		if(!this.name){
			this.items.sort(function(a,b){return (a.name >= b.name) ? 1 : -1;}); 
			this.name = true;
		}
		else{
			this.items.sort(function(a,b){return (a.name <= b.name) ? 1 : -1;}); 
			this.name = false;
		}
	};
	
	this.printList = function(id) {
		for(i = 0; i < this.items.length; i++)
			$(id).append(this.items[i].name + " " + this.items[i].value + "<br/>");
	};
	
	this.display = function(id) {
		$(id).html("");
		$(id).append("<p><b>Sort by:</b> <a name=\"top\" href=\"#top\" onclick=\"catItem.sortByName(); catItem.display('#catlist'); return false;\">name</a> | <a href=\"#top\" onclick=\"catItem.sortByValue(); catItem.display('#catlist'); return false;\">value</a></p>");
		for(i = 0; i < this.items.length; i++)
			this.writeItemBox(id, this.items[i]);
		$(id).append("<p style=\"float:left; width:100%; clear:both;\"><a name=\"bottom\"></a><b>Sort by:</b> <a href=\"#bottom\" onclick=\"catItem.sortByName(); catItem.display('#catlist'); return false;\">name</a> | <a href=\"#bottom\" onclick=\"catItem.sortByValue(); catItem.display('#catlist'); return false;\">value</a></p>");
		$(".itemBox").fadeIn(1500);
	};
	
	this.writeItemBox = function(id, obj) {

		var icontext;
		var pricetext;

		if (obj.hotdeal) {
			icontext = "<div class=\"label\"><img src=\"images2/reward_hotdeal.png\" alt=\"hot deal\" width=\"85\" height=\"45\" /></div>";
		} else if (obj.special) {
			icontext = "<div class=\"label\"><img src=\"images2/reward_onspecial.png\" alt=\"on special\" width=\"85\" height=\"45\" /></div>";
		} else if (obj.newreward) {
			icontext = "<div class=\"label\"><img src=\"images2/reward_justadded.png\" alt=\"just added\" width=\"85\" height=\"45\" /></div>";
		} else if (obj.popular) {
			icontext = "<div class=\"label\"><img src=\"images2/reward_popular.png\" alt=\"popular\" width=\"85\" height=\"45\" /></div>";
		} else if (obj.featured) {
			icontext = "<div class=\"label\"><img src=\"images2/reward_featured.png\" alt=\"featured\" width=\"85\" height=\"45\" /></div>";
		} else {
			icontext = "";
		}

		if (obj.special) {
			if (typeof obj.override != 'undefined') {
				pricetext = "<b>"+obj.override+"</b>";
			} else if (obj.discount > 0) {
				pricetext = "<b>Save "+obj.saving+" "+obj.currency+",<br />now only "+obj.value+" "+obj.currency+"!</b>";
			} else {
				pricetext = "<b>Only "+obj.value+" "+obj.currency+"!</b>";
			}
		} else {
			if (typeof obj.override != 'undefined') {
				pricetext = "<b>"+obj.override+"</b>";
			} else if (obj.value_max == obj.value_min) {
				pricetext = "<b>"+obj.value+" "+obj.currency+"</b>";
			} else {
				pricetext = "<b>"+obj.value_min+" to "+obj.value_max+" "+obj.currency+"</b>";
			}
		}
		
		$(id).append("<div class=\"rewardBox\"><br/><div class=\"image\">"+icontext+"<table><tr><td><a href=\"?reward="+obj.reward_id+"\"><img src=\""+obj.pixsmall+"\" alt=\""+obj.name+"\" /></a></td></tr></table></div><div class=\"title\"><p><a href=\"?reward="+obj.reward_id+"\">"+obj.name+"</a><br/>"+pricetext+"</p></div></div>");
		
	};
	
}

function Basket(items, total) {
 
	this.items = items;
	this.total = total;
	this.quantity = true;
	this.item = true;
	this.value = true;
	
	this.sortByValue = function() {
		if(!this.value){
			this.items.sort(function(a,b){return a.value - b.value;});
			this.value = true;
		}
		else{
			this.items.sort(function(a,b){return b.value - a.value;});
			this.value = false;
		}
	};
	
	this.sortByItem = function () {
		if(!this.item) {
			this.items.sort(function(a,b){return (a.item >= b.item) ? 1 : -1;}); //does this not work right in ie?
			this.item = true;
		}
		else {
			this.items.sort(function(a,b){return (a.item <= b.item)? 1 : -1;}); //does this not work right in ie?
			this.item = false;
		}
	};
	
	this.sortByQuantity = function () {
		if(!this.quantity){
			this.items.sort(function(a,b){return a.quantity - b.quantity;});
			this.quantity = true;
		}
		else
		{
			this.items.sort(function(a,b){return b.quantity - a.quantity;});
			this.quantity = false;
		}
	};

	this.sortByTotal = function () {
		if(!this.total){
			this.items.sort(function(a,b){return a.total - b.total;});
			this.quantity = true;
		}
		else
		{
			this.items.sort(function(a,b){return b.total - a.total;});
			this.quantity = false;
		}
	};
	
	this.display = function (id, currency) {
		$(id).append("");
		if(this.items.length > 0){
			$(id).html("<tr><td style=\"width:340px; border-bottom: 1px solid #666666;\"><b><a href=\"#\" onclick=\"basket.sortByItem(); basket.display('#basketlist','"+currency+"'); return false;\">Reward</a></b></td><td class=\"right\" style=\"width:50px; border-bottom: 1px solid #666666;\"> <b><a href=\"#\" onclick=\"basket.sortByValue(); basket.display('#basketlist','"+currency+"'); return false;\">"+currency+"</a></b></td><td class=\"right\" style=\"width:25px; border-bottom: 1px solid #666666;\"> <b><a href=\"#\" onclick=\"basket.sortByQuantity(); basket.display('#basketlist','"+currency+"'); return false;\">Quantity</a></b></td><td class=\"right\" style=\"width:25px; border-bottom: 1px solid #666666;\"> <b><a href=\"#\" onclick=\"basket.sortByTotal(); basket.display('#basketlist','"+currency+"'); return false;\">Subtotal</a></b></td><td style=\"width:170px; border-bottom: 1px solid #666666;\">&nbsp;</td></tr>");
			for(i = 0; i < this.items.length; i++)
				this.writeLine(id, this.items[i], i);
			$(id).append("<tr><td style=\"border-top: 1px solid #666666;\">&nbsp;</td><td style=\"border-top: 1px solid #666666;\">&nbsp;</td><td class=\"total\" style=\"border-top: 1px solid #666666; line-height: 1.5em\"><b>Total</b></td><td class=\"total\" style=\"border-top: 1px solid #666666; line-height: 1.5em\"><b>"+this.total+"</b></td><td class=\"left\" style=\"border-top: 1px solid #666666; line-height: 1.5em\"><a class=\"button\" href=\"\?checkout\">Checkout</a><br/><a class=\"button\" href=\"\?home\">Keep Shopping</a></td></tr>")
		}
		$(id).fadeIn(1500);
	};
	
	this.writeLine = function(id, obj, i) {
		colorA = "listcolora";
		colorB = "listcolorb";
		color = " ";
		if(i%2) color = colorA; else color = colorB;
		if(obj.details.model.length > 0){
            $(id).append("<tr class=\""+color+"\"><td><a href=\"?reward="+obj.details.reward_id+"\">"+obj.details.summary+"</a> ("+obj.details.model+")</td><td class=\"right\">"+obj.details.value+"</td><td class=\"right\">"+obj.quantity+"</td><td class=\"right\">"+obj.total+"</td><td class=\"left\"><a class=\"button\" href=\"?basketadd="+obj.details.id+"\"><img src=\"images2/up.gif\" alt=\"\"/></a> <a class=\"button\" href=\"?basketremove="+obj.details.id+"\"><img src=\"images2/down.gif\" alt=\"\"/></a> <a class=\"button\" href=\"?basketremoveall="+obj.details.id+"\" >Remove</a></td></tr>");
        } else {
            $(id).append("<tr class=\""+color+"\"><td><a href=\"?reward="+obj.details.reward_id+"\">"+obj.details.summary+"</a></td><td class=\"right\">"+obj.details.value+"</td><td class=\"right\">"+obj.quantity+"</td><td class=\"right\">"+obj.total+"</td><td class=\"left\"><a class=\"button\" href=\"?basketadd="+obj.details.id+"\"><img src=\"images2/up.gif\" alt=\"\"/></a> <a class=\"button\" href=\"?basketremove="+obj.details.id+"\"><img src=\"images2/down.gif\" alt=\"\"/></a> <a class=\"button\" href=\"?basketremoveall="+obj.details.id+"\" >Remove</a></td></tr>");
        }	
    };
	
}


$(document).ready(function(){
	//sidenavmenu
	var duration = 750;
	$("#sidenavmenu li").css("cursor", "pointer");
	$("#sidenavmenu").children("li").children("ul").hide();
	$("#sidenavmenu").children("li").click(function(){$("#sidenavmenu li").children("ul").slideUp(duration);$(this).children("ul").slideDown(duration);});
	$("#sidenavmenu").children("li").children("ul").children("li").click(function(){$("#sidenavmenu li").unbind("click");});
});


