var featureCount = -1;

function make(s)
{
    document.write(s);
}

function makeln(s)
{
    make(s + "\n");
}

function isNumber(n) {
  var chars = "0123456789.";
  for (var i=0;i<n.length;i++)
  {
    if (chars.indexOf(n.substr(i,1)) == -1) return false;
  }
  return true;
//  return !isNaN(parseFloat(n)) && isFinite(n);
}

function item(o)
{
// treat the single parameter  o  as an associative array
// first, define defaults for values in a temp assoc array
	var default_args = {
				'prodnum': "",
				'prodname': "",
				'manufacturer': "",
				'category': "nothing",
				'saleprice': "",
	      		'msrp': "0.00",
	      		'utube': "n",
	      		'bnf': "n",
	      		'review': "n",
	      		'stockitem': "n",
	      		'beginner': "n",
	      		'advanced': "n",
	      		'expert': "n"
	      		}
   			//	'prodnum': "",          Can be any string
			//	'prodname': "",         Can be any string
			//	'manufacturer': "",     Can be any string
			//	'category': "nothing",  Treated as the name of a product folder
			//	'saleprice': "",        Either our selling price (no $) or string
	      	//	'msrp': "0.00",         MSRP value (no $) if more than our price
	      	//	'utube': "n",            n or url to video
	      	//	'bnf': "n",              n or y
	      	//	'review': "n",           n or url to review page
	      	//	'stockitem': "n",        n or y or 1,2 or 3
	      	//	'beginner': "n",         n or y
	      	//	'advanced': "n",         n or y
	      	//	'expert': "n"            n or y
// if default is not specified in parameter list, add it into the o list
	for(var index in default_args) {
		if(typeof o[index] == "undefined") o[index] = default_args[index];
	}
// if a previous item was not properly terminated with the end() function, treat as error
	if (featureCount != -1)
	{
		make('<div class="item-border">');
		makeln('Previous ITEM not terminated with END function.');
		return;
	}
// make sure some minimum values are passed	
	if ((o['prodnum'] == "") || (o['prodname'] == "") || (o['manufacturer'] == ""))
	{
		make('<div class="item-border">');
		makeln('Missing parameter prodnum, prodname or manufacturer.');
		return;
	}
// initialize the feature count for the feature() function
	featureCount = 0;
// start the item entry with its correct name in the comment	
	makeln('<!-- ' + o['manufacturer'] + ' - ' + o['prodname'] + ' -->');
// begin the containing div and table	
	makeln('<div class="prod-border"><div class="lft_box">');
// show picture of the item
	makeln('<div class="prod_image"><img src="/storage/products/' + o['category'] + '/' + o['manufacturer'] + ' - ' + o['prodname'] + '.jpg" /></div><div class="icon_container">');
	if (o['utube'] != 'n')
	{
		make('<a class="utb-y" href="' + o['utube'] + '" rel="prettyPhoto">');
		makeln('<img src="/storage/products/icon_video_2.jpg" /></a>');
	}
	else
	{
        make('<a class="utb-n" href="" rel="prettyPhoto">');
		makeln('<img src="/storage/products/icon_video_2.jpg" /></a>');
	}
	if (o['bnf'] != 'n')
	{
		make('<a class="bnf-y" href="' + o['bnf'] + '" rel="prettyPhoto">');
		makeln('<img src="/storage/products/Icon--BNF.jpg" /></a>');
	}
    else
	{
		make('<a id="bnf-n" href="#" rel="prettyPhoto">');
		makeln('<img src="/storage/products/Icon--BNF.jpg" /></a>');
	}
	if (o['review'] != 'n')
	{
		make('<a class="rvw-y" href="' + o['review'] + '" onclick="window.open(this.href,newwin);return false;">');
		makeln('<img src="/storage/products/icon_review_2.jpg" /></a>');
	}
    else
	{
		make('<a class="rvw-n" href="#">');
		makeln('<img src="/storage/products/icon_review_2.jpg" /></a>');
	}
	makeln('</div></div><div class="ctr_box">');
	makeln('<div><span class="prod_name">' + o['prodname'] + '</span><br />' + o['prodnum'] + ' by ' + o['manufacturer'] + '</div>');
    make('<div class="prod_price">');
	if (o['msrp'] != '0.00')
	{
		make('<span class="listprice">$' + o['msrp'] + '</span>');
	}
    else
	{
		make('<span class="listprice-n">$00.00</span>');
	}
	makeln('<br />');
    if (isNumber(o['saleprice']))
    {
	   make('<span class="mainprice">$' + o['saleprice'] + '</span>');
    }
    else
    {
	   make('<span class="mainprice">' + o['saleprice'] + '</span>');
       makeln('<a id="cl_call-y" href="#why-call-in" rel="prettyPhoto">');
       makeln('<img src="/storage/products/Icon--Why_Call_In.jpg" alt=""></a>');
    }
    makeln('</div></div>');
    switch (o['stockitem'])
    {
        case 'y':
            makeln('<div class="rt_box"><div class="prod_stk_y"></div></div>');
            break;
        case '1':
            makeln('<div class="rt_box"><div class="prod_stk1_y"></div></div>');
            break;
        case '2':
            makeln('<div class="rt_box"><div class="prod_stk2_y"></div></div>');
            break;
        case '3':
            makeln('<div class="rt_box"><div class="prod_stk3_y"></div></div>');
            break;
        default:
            break;
    }

}

function feature(desc)
{
	if (typeof desc == 'undefined') desc = "";
	if (featureCount == 0)
	{
    	makeln('<div class="feat_box"><div class="feat_hdr">');
		makeln('Key Features</div><div class="feat_list"><ul>');
	}
	if (featureCount > 5) return;
	makeln('<li>' + desc + '</li>');
	featureCount++;
}

function end()
{
	make('</ul>');
	if ((featureCount > 0) && (featureCount < 6))
	{
		for (var i=featureCount+1;i<=6;i++)
		{
			make('<br />');
		}
	}
	makeln('</div></div></div>');
	makeln('\n<!-- End of item -->\n\n');
	featureCount = -1;
}

