// EZSales JavaScript File
// version 1.0 Beta Release 20060218
//
// This file is used to generate the sales items for the EZSales system used with
// EZUpdates. Please do not make any changes to this file. If you require an updated
// version of this file please see http://www.collisionsoftware.com/ for a 
// possible download or contact us on that page and request an updated version.
//
// John Cotter
// Collision Software

//Varibles
//////////////////////////////////////////////////
var EZSales = new Array();

var sortdata = true;
var url = document.URL;

//Primary Methods
//////////////////////////////////////////////////
function EZSale(name, price, info, image, id){
  this.name = name;
  this.info = info;
  this.price = price;
  this.image = image;
  this.id = id;
}

function StartEZSales(url){
  if(url == ""){
    url = document.URL;
  } else {
    this.url = url;
  }
  if(sortdata){
    EZSales.sort(sortEZSalesByName);
  }
}

//Methods
//////////////////////////////////////////////////
function displayEZSales(){
  document.writeln("<table border='0'>");
  for(var x=0;x<EZSales.length;x++){
    document.writeln("<tr>");
    document.writeln("<td><table>");
    document.writeln("<tr><td><strong>Name:</strong></td><td>"+EZSales[x].name+"<br></td></tr>");
    document.writeln("<tr><td><strong>Price:</strong></td><td>"+EZSales[x].price+"</td></tr>");
    document.writeln("<tr><td><strong>Information:</strong></td><td>"+EZSales[x].info+"</td></tr>");
    EZSales[x].image = EZSales[x].image.replace("\\", "/");
    document.writeln("<tr><td><strong>Image:</strong></td><td>");
    if(EZSales[x].image != ""){
    document.writeln("<img src='Core/"+EZSales[x].image+"' border='0'>");
    }
    document.writeln("</td></tr>");
    document.writeln("</table></td>");
    document.writeln("<tr><td>&nbsp;</td></tr>");
  }
  if(EZSales.length == 0){
    document.writeln("<tr><td>Currently nothing for sale.</td></tr>");
  }
  document.writeln("</table>");
}

function getEZSaleById(id){
  for(var x=0;x<EZSales.length;x++){
    if(EZSales[x].id == id){
      return EZSales[x];
    }
  }
}

function getEZSalesNames(){
  var names = new Array();
  var found = false;
  for(var x=0;x<EZSales.length;x++){
    for(var y=0;y<names.length;y++){
      if(names[y] == EZSales[x].name) found = true;
    }
    if(!found) names[names.length] = EZSales[x].name
    found = false;
  }
  return names.sort();
}

function getEZSalesPrices(){
  var prices = new Array();
  var found = false;
  for(var x=0;x<EZSales.length;x++){
    for(var y=0;y<prices.length;y++){
      if(prices[y] == EZSales[x].price) found = true;
    }
    if(!found) prices[prices.length] = EZSales[x].price
    found = false;
  }
  return prices;
}

function searchEZSalesByInformation(info){
  var myregex = eval("/"+info+"/i");
  var ansind = "";
  var searcharray = new Array();
  for(var x=0;x<EZSales.length;x++){
    ansind = EZSales[x].info.search(myregex);
    if(ansind != -1){ searcharray[searcharray.length] = EZSales[x]; }
  }
  return searcharray;
}

function searchEZSalesByName(itemname){
  var myregex = eval("/"+itemname+"/i");
  var ansind = "";
  var searcharray = new Array();

  for(var x=0;x<EZSales.length;x++){
    ansind = EZSales[x].name.search(myregex);
    if(ansind != -1){ searcharray[searcharray.length] = EZSales[x];}
  }
  return searcharray;
}

function searchEZSalesByPrice(minprice, maxprice){
  var results = new Array();
  for(var x=0;x<EZSales.length;x++){
    if((parseFloat(EZSales[x].price) >= parseFloat(minprice)) && (parseFloat(EZSales[x].price) <= parseFloat(maxprice))){
      results[results.length] = EZSales[x];
    }
  }
  return results;
}

//Internal Methods
//////////////////////////////////////////////////
function sortEZSalesByName(arg1, arg2){
  if(arg1.name < arg2.name)
    return -1;
  if(arg1.name > arg2.name)
    return 1;
  if(arg1.name == arg2.name)
    return 0;
}

function sortEZSalesByPrice(arg1, arg2){
  if(arg1.price < arg2.price)
    return -1;
  if(arg1.price > arg2.price)
    return 1;
  if(arg1.price == arg2.price)
    return 0;
}

function randNUM(topnum){
  topnum--;
  var randnum = (Math.random()*100);
  var numjump = 100/topnum;
  return (Math.round(randnum/numjump));
}

function randNUMs(topnum,numrands){
  var retrands = new Array();
  
  var count = 0;
	  
  while(count < numrands){
	  var currand = randNUM(topnum);
	  if(arrayFindValue(retrands, currand) == -1){//not in
	    retrands[count] = currand;
		count++;
	  }
  }
  return retrands;
}

function arrayFindValue(datarray, value){
	for(var x=0; x<datarray.length; x++){
		if(datarray[x] == value){
			return x;
		}
	}
	return -1;
}
