var lastFeatured = 0;
var rcount = 'start';
var fsort = 'price'
var Total;
var Pages;
var t1;
var t2;
var t3;
var sortLists = false;
var sortedArray1 = new Array();
var sortedArray2 = new Array();
var sortedArray3 = new Array();
var featuredArray = new Array();

/*Object.prototype.clone = function() {
  var newObj = (this instanceof Array) ? [] : {};
  for (i in this) {
    if (i == 'clone') continue;
    if (this[i] && typeof this[i] == "object") {
      newObj[i] = this[i].clone();
    } else newObj[i] = this[i]
  } return newObj;
};*/

function deepCopy(obj)
{
    if (Object.prototype.toString.call(obj) === '[object Array]') {
        var out = [], i = 0, len = obj.length;
        for ( ; i < len; i++ ) {
            out[i] = arguments.callee(obj[i]);
        }
        return out;
    }
    if (typeof obj === 'object') {
        var out = {}, i;
        for ( i in obj ) {
            out[i] = arguments.callee(obj[i]);
        }
        return out;
    }
    return obj;
}

/*function arrayCopy(t)
{
	if (typeof t=='object' && t.length>=0 && t.constructor==Array ) {
		var r=[];
		r.push(arrayCopy(t));
		return r;
	}
	return t;
}*/

Array.prototype.multiSort = function(index){
	for(var i=0; i<this.length; i++){
		var temp = this[i].splice(index,1);
		this[i].unshift(temp);
	}
	return this.sort();
}

function addslashes( str ) {
    return (str+'').replace(/([\\"'])/g, "\\$1").replace(/\0/g, "\\0");
}

function stripslashes(str)
{
	str=str.replace(/\\'/g,'\'');
	str=str.replace(/\\"/g,'"');
	str=str.replace(/\\\\/g,'\\');
	str=str.replace(/\\0/g,'\0');
	return str;
}

var xmlhttp;
function loadXMLDoc(url)
{
xmlhttp=null;
if (window.XMLHttpRequest)
  {// code for all new browsers
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// code for IE5 and IE6
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=state_Change;
  xmlhttp.open("GET",url,true);
  xmlhttp.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}

function state_Change()
{
if (xmlhttp.readyState==4)
  {// 4 = "loaded"
  if (xmlhttp.status==200)
    {// 200 = OK
    loadFeatured('next');
    }
  else
    {
   // alert("Problem retrieving XML data");
    }
  }
}

// Create content from XML file
function loadFeatured(Set)
{
	if (sortLists == false) {
		/*try //Internet Explorer
		  {
		  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		  }
		catch(e)
		  {
		  try //Firefox, Mozilla, Opera, etc.
			{
			xmlDoc=document.implementation.createDocument("","",null);
			}
		  catch(e)
			{
			alert(e.message);
			return;
			}
		  }
		xmlDoc.async=false;
		xmlDoc.load("xml/featured_items.xml");*/
	 xmldoc = xmlhttp.responseXML;
  //xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  //xmlDoc.async="false";
  //xmlDoc.loadXML("xml/featured_items.xml");
   //Items = xmldoc.getElementsByTagName('item');
   Items = xmldoc.getElementsByTagName('item');
	//xmlDoc=loadXMLDoc("xml/featured_items.xml");
 	
 	//x=xmlDoc.getElementsByTagName('item');
//alert(xmlDoc.getElementsByTagName("url")[0].childNodes[0].nodeValue);
/*
for (i=0;i<Items.length;i++)
{
//alert(Items[i].getAttribute('category'));
alert(Items[i].getElementsByTagName("url")[0].childNodes[0].nodeValue);

} 
*/
	
		Total = Items.length;		
		Pages = Math.ceil(Total/3);
	
		for (i=0;i<Total;i++) {
			var tempArr = new Array();				
			//var label = getAttribute("label"); 
		//alert(Items[i].getElementsByTagName("image")[0].childNodes[0].nodeValue);
			tempArr.push(Items[i].getElementsByTagName("image")[0].childNodes[0].nodeValue);
			tempArr.push(Items[i].getElementsByTagName("url")[0].childNodes[0].nodeValue);
			tempArr.push(Items[i].getElementsByTagName("brand")[0].childNodes[0].nodeValue);
			tempArr.push(Items[i].getElementsByTagName("name")[0].childNodes[0].nodeValue);
			tempArr.push(Items[i].getElementsByTagName("oldprice")[0].childNodes[0].nodeValue);
			tempArr.push(Items[i].getElementsByTagName("price")[0].childNodes[0].nodeValue);
			
			/*
			tempArr.push(xmlDoc.childNodes[0].childNodes[i].childNodes[0].childNodes[0].nodeValue);
			tempArr.push(xmlDoc.childNodes[0].childNodes[i].childNodes[1].childNodes[0].nodeValue);
			tempArr.push(xmlDoc.childNodes[0].childNodes[i].childNodes[2].childNodes[0].nodeValue);
			tempArr.push(xmlDoc.childNodes[0].childNodes[i].childNodes[3].childNodes[0].nodeValue);
			tempArr.push(xmlDoc.childNodes[0].childNodes[i].childNodes[4].childNodes[0].nodeValue);
			tempArr.push(xmlDoc.childNodes[0].childNodes[i].childNodes[5].childNodes[0].nodeValue);
			*/
			/* tempArr.push(xmlDoc.childNodes[0].childNodes[i].childNodes[6].childNodes[0].nodeValue); */
			featuredArray.push(tempArr);
		}
		/*sortedArray1 = featuredArray.clone();
		sortedArray2 = featuredArray.clone();
		sortedArray3 = featuredArray.clone();*/
		
		sortedArray1 = deepCopy(featuredArray);
		sortedArray2 = deepCopy(featuredArray);
		sortedArray3 = deepCopy(featuredArray);

		sortedArray1 = sortedArray1.multiSort(2);
		sortedArray2 = sortedArray2.multiSort(5);
		sortedArray3 = sortedArray3.multiSort(6);
		
		var fcontent = '<div class="featured-row"><div class="featured-info-bar">'+
		'<h2>Great Savings Everyday</h2>'+
		'<div class="sorter">Sort by <select name="sort" onchange="sortFeatured(this.value)">'+
		'<!--option value="date" selected="selected">Newest</option--><option value="price">Price</option>'+
		'<option value="brand">Brand</option></select></div>'+
		'<div class="pagesof" id="fpage-number">&nbsp;</div></div>'+		
		'<div class="clearit">&nbsp;</div>'+
		'<span class="arrow-pink-left" onclick="loadFeatured(\'prev\')">&nbsp;</span>'+
		'<div class="feats"><div class="featured-column" id="slot0"><img src="/images/loading-thumb.gif" alt="Loading Item"/></div>'+
		'<div class="featured-column-middle" id="slot1"><img src="images/loading-thumb.gif" alt="Loading Item"/></div>'+
		'<div class="featured-column" id="slot2"><img src="images/loading-thumb.gif" alt="Loading Item"/></div>'+
		'<span class="arrow-pink-right" onclick="loadFeatured(\'next\')">&nbsp;</span>'+
		'</div></div>'+
		'<div class="clearit">&nbsp;</div>';
		// stopUpload();
		//document.getElementById('fcontainer').innerHTML = '';
		document.getElementById('fcontainer').innerHTML = fcontent;
		
		sortLists = true;
	}

	var x;
	var y = 0;
	var preimages = new Array();
	var precontent = new Array();
	switch (fsort) {
		case 'brand':
			var sortedArray = sortedArray1;
			var key0 = 1;
			var key1 = 2;
			var key2 = 0;
			var key3 = 3;
			var key4 = 4;
			var key5 = 5;
			var key6 = 6;
			break;
		case 'price':
			var sortedArray = sortedArray2;
			var key0 = 1;
			var key1 = 2;
			var key2 = 3;
			var key3 = 4;
			var key4 = 5;
			var key5 = 0;
			var key6 = 6;
			break;
	/*	case 'date':
			var sortedArray = sortedArray3;
			var key0 = 1;
			var key1 = 2;
			var key2 = 3;
			var key3 = 4;
			var key4 = 5;
			var key5 = 6;
			var key6 = 0;
			break; */
	}
	if (rcount == 'start') {
		if (Total < 3) rcount = Total;
		else rcount = 3;
	}
	if (Set == 'next') {
		if ((Total - lastFeatured) < 1) lastFeatured = Total - rcount;
	} else if (Set == 'prev') {
		lastFeatured -= (rcount + 3);
		if (lastFeatured < 0) lastFeatured = 0;
	}
	if ((Total - lastFeatured) < 3) rcount = Total - lastFeatured;
	else rcount = 3;
	
	for (x=lastFeatured;x<(lastFeatured+rcount);x++) {
		var item_image = sortedArray[x][key0];
		var item_url = sortedArray[x][key1];
		var item_brand = sortedArray[x][key2];
		var item_name = sortedArray[x][key3];
		var item_oldprice = sortedArray[x][key4];
		var item_price = sortedArray[x][key5];
/* 		var item_date = sortedArray[x][key6]; */
		var item_discount = 100 - Math.round(((item_price / item_oldprice) * 100));
		item_oldprice = (parseFloat(item_oldprice)).toFixed(2);
		item_price = (parseFloat(item_price)).toFixed(2);
		y++;
		preimages.push(item_image);
		precontent.push("<a class='feat-img' href='" + item_url + "'><img src='" + item_image + "' alt='"+ item_name +"'/></a><div class='clearit'></div><h4>" + item_brand + "</h4>" + item_name + "<br /><span class='strikethrough'>$" + item_oldprice + "</span> <span class='red'><strong>$" + item_price + "</strong> (" + item_discount + "% off)</span>");	
	}
	var remainder = 3 - rcount;
	if (remainder > 0) {
		for (i=0; i<remainder; i++) {
			preimages.push('/images/loading-thumb.gif');
			precontent.push('&nbsp;');
		}
	}
	
	lastFeatured += rcount;
	var Page = Math.ceil(lastFeatured/3);
	var pagenumber = 'Page ' + Page + ' of ' + Pages;
	document.getElementById('fpage-number').innerHTML = pagenumber;
	loadSlots(preimages,precontent);
	
}

function sortFeatured(by) {
	switch (by) {
		case 'brand':
			fsort = by;
			break;
		case 'price':
			fsort = by;
			break;
		/*case 'date':
			fsort = by;
			break; */
	}
	lastFeatured = 0;
	rcount = 'start';
	loadFeatured('next');
}

function loadItem(slot,content) {
	document.getElementById(slot).innerHTML = content;
}

function loadSlots(images,content)
{
	eval('t1 = setTimeout(\'preloader("slot0","' + images[0] + '","' + addslashes(content[0]) + '","0")\',0);t2 = setTimeout(\'preloader("slot1","' + images[1] + '","' + addslashes(content[1]) + '","1")\',150);t3 = setTimeout(\'preloader("slot2","' + images[2] + '","' + addslashes(content[2]) + '","2")\',300)');
}

function preloader(slot,image,content,num)
{
	loadItem(slot,"<img src='images/loading-thumb.gif' alt='Loading Item'/>");
	var imageObj = new Image();
	imageObj.onLoad = loadItem(slot,stripslashes(content));
	imageObj.src = stripslashes(image);
}

