
function wg_render()
{
	//alert(data.items.length);
	/*
		wg_format - either '300x250', '468x60' or '160x600'
		wg_background_color - css valid color e.g. 'blue', 'rgb(255, 124, 124)', '#FF6666'
		wg_text_color
		wg_border_color
	*/

	if (!window.wg_data || !window.wg_data.items || wg_data.items.length == 0)
	{
		/* something has gone wrong and there are no items to display */
		wg_data = { "items" : [{"id":"lastresort1","label":"Webgains","price":"","image_url":"","href":"http://www.webgains.com","merchant_url":"www.webgains.com"}] };
	}

	/* randomize items array to change items that are displayed */
	wg_shuffle_array(wg_data.items);

	/* get and set parameters */
	var wg_parms = wg_get_parms();

	/* add parent element to page */
	var wg_parent_elem = wg_create_parent_element();


	wg_create_ad(wg_parent_elem, wg_data.items, wg_parms);
}

/* add parent element to page, and return as object */
function wg_create_parent_element()
{
	/* create a unique id for the parent html element */
	if (window.wg_ad_num)
	{
		wg_ad_num++;
		var wg_parent_elem_id = 'wg_ad_' + wg_ad_num;
	}
	else
	{
		wg_ad_num = 1;
		var wg_parent_elem_id = 'wg_ad_' + wg_ad_num;
	}

	/* create parent element */
	document.write("<div id='"+wg_parent_elem_id+"'></div>");

	return document.getElementById(wg_parent_elem_id);
}

function wg_get_parm(name, def)
{
	if (typeof window[name] == 'undefined')
	{
		return def;
	}
	else
	{
		return window[name];
	}
}

/* get parameters from global scope and return as object */
function wg_get_parms()
{
	var wg_parms = new Array();

	wg_parms.format           = wg_get_parm('wg_format', '300x250');
	wg_parms.background_color = wg_get_parm('wg_background_color', '#F5F5DD');
	wg_parms.text_color       = wg_get_parm('wg_text_color', '#000000');
	wg_parms.url_text_color   = wg_get_parm('wg_url_text_color', '#008000');
	wg_parms.border_color     = wg_get_parm('wg_border_color', '#B22222');
	wg_parms.new_window       = wg_get_parm('wg_new_window', true);
	wg_parms.click_reference  = wg_get_parm('wg_click_reference', '');
	wg_parms.border_width     = 1;

	switch (wg_parms.format) {
		case '468x60' :
			wg_parms.width        = 468;
			wg_parms.height       = 60;
			wg_parms.item_count   = 2;
			wg_parms.item_width   = Math.floor((wg_parms.width - (wg_parms.border_width * 2)) / wg_parms.item_count);
			wg_parms.item_height  = wg_parms.height - (wg_parms.border_width * 2);
			wg_parms.image_width  = wg_parms.item_height;
			wg_parms.image_height = wg_parms.item_height;
			wg_parms.font_size    = '12px';
			wg_parms.font_size_2  = '10px';
			wg_parms.line_height  = '1.2em';
			wg_parms.orientation  = 'H';
			wg_parms.label_length = 40;
			break;
		case '728x90' :
			wg_parms.width        = 728;
			wg_parms.height       = 90;
			wg_parms.item_count   = 3;
			wg_parms.item_width   = Math.floor((wg_parms.width - (wg_parms.border_width * 2)) / wg_parms.item_count);
			wg_parms.item_height  = wg_parms.height - (wg_parms.border_width * 2);
			wg_parms.image_width  = wg_parms.item_height;
			wg_parms.image_height = wg_parms.item_height;
			wg_parms.font_size    = '12px';
			wg_parms.font_size_2  = '10px';
			wg_parms.line_height  = '1.2em';
			wg_parms.orientation  = 'H';
			wg_parms.label_length = 60;
			break;
		case '120x600' :
			wg_parms.width        = 120;
			wg_parms.height       = 600;
			wg_parms.item_count   = 3;
			wg_parms.item_width   = wg_parms.width - (wg_parms.border_width * 2);
			wg_parms.item_height  = Math.floor((wg_parms.height - (wg_parms.border_width * 2)) / wg_parms.item_count);
			wg_parms.image_width  = wg_parms.item_width;
			wg_parms.image_height = wg_parms.item_height - 58;
			wg_parms.font_size    = '12px';
			wg_parms.font_size_2  = '10px';
			wg_parms.line_height  = '1.2em';
			wg_parms.orientation  = 'V';
			wg_parms.label_length = 27;
			break;
		case '160x600' :
			wg_parms.width        = 160;
			wg_parms.height       = 600;
			wg_parms.item_count   = 3;
			wg_parms.item_width   = wg_parms.width - (wg_parms.border_width * 2);
			wg_parms.item_height  = Math.floor((wg_parms.height - (wg_parms.border_width * 2)) / wg_parms.item_count);
			wg_parms.image_width  = wg_parms.item_width;
			wg_parms.image_height = wg_parms.item_height - 58;
			wg_parms.font_size    = '12px';
			wg_parms.font_size_2  = '10px';
			wg_parms.line_height  = '1.2em';
			wg_parms.orientation  = 'V';
			wg_parms.label_length = 32;
			break;
		case '300x250' :
		default :
			wg_parms.width        = 300;
			wg_parms.height       = 250;
			wg_parms.item_width   = wg_parms.width - (wg_parms.border_width * 2);
			wg_parms.item_height  = wg_parms.height - (wg_parms.border_width * 2);
			wg_parms.image_width  = wg_parms.item_width;
			wg_parms.image_height = wg_parms.item_height - 52;
			wg_parms.item_count   = 1;
			wg_parms.font_size    = '14px';
			wg_parms.font_size_2  = '12px';
			wg_parms.line_height  = '1.2em';
			wg_parms.orientation  = 'V';
			wg_parms.label_length = 35;
			break;
	}
	return wg_parms;
}

function wg_create_ad(wg_parent_elem, items, wg_parms)
{
	var wg_parent_elem_style = wg_parent_elem.style;

	wg_parent_elem_style['width']       = wg_parms.width + 'px';
	wg_parent_elem_style['height']      = wg_parms.height + 'px';
	wg_parent_elem_style['textAlign']   = 'center';
	wg_parent_elem_style['overflow']    = 'hidden';
	wg_parent_elem_style['borderStyle'] = 'none';
	wg_parent_elem_style['borderWidth'] = '0px';

	var wg_parent_elem_2 = document.createElement('div');

	var wg_parent_elem_2_style = wg_parent_elem_2.style;

	wg_parent_elem_2_style['borderWidth']     = wg_parms.border_width + 'px';
	wg_parent_elem_2_style['borderColor']     = wg_parms.border_color;
	wg_parent_elem_2_style['borderStyle']     = 'solid';
	wg_parent_elem_2_style['fontWeight']      = 'bold';
	//wg_parent_elem_style['fontFamily']      = '"Arial", sans-serif';
	wg_parent_elem_2_style['fontSize']        = wg_parms.font_size;
	wg_parent_elem_2_style['textAlign']       = 'center';
	wg_parent_elem_2_style['overflow']        = 'hidden';
	wg_parent_elem_2_style['cssFloat']        = 'left';
	wg_parent_elem_2_style['styleFloat']      = 'left';
	wg_parent_elem_2_style['backgroundColor'] = wg_parms.background_color;



	wg_parent_elem.appendChild(wg_parent_elem_2);
	//alert(wg_parent_elem_2.currentStyle.hasLayout);

	/* for each item required by this ad */
	for (var i = 0; i < wg_parms.item_count; i++)
	{
		/* get the next item */
		var item = wg_get_item(items);

		/* create unit for this item */
		var wg_item = wg_create_item(item, wg_parms);

		/* add item to ad */
		wg_parent_elem_2.appendChild(wg_item);
	}

}

function wg_create_item(item, wg_parms)
{
	/* create div element to hold item */
	var wg_item = document.createElement('div');
	var wg_item_style = wg_item.style;

	wg_item_style['width']           = wg_parms.item_width + 'px';
	wg_item_style['height']          = wg_parms.item_height + 'px';
	wg_item_style['overflow']        = 'hidden';
	wg_item_style['cssFloat']        = 'left';
	wg_item_style['styleFloat']      = 'left';
	wg_item_style['borderStyle']     = 'none';
	wg_item_style['borderWidth']     = '0px';
	wg_item_style['backgroundColor'] = wg_parms.background_color;
	wg_item_style['textAlign']       = 'center';

	/* add link */
	var wg_a = document.createElement('a');
	if (wg_parms.click_reference == '')
	{
		wg_a.href = item.href;
	}
	else
	{
		wg_a.href = item.href.replace(/wgtarget/, 'clickref='+encodeURIComponent(wg_parms.click_reference)+'&wgtarget');
	}
	wg_a.href = wg_a.href.replace(/wgtarget/, 'autocontent=1&wgtarget');
	wg_a.title = item.label;
	wg_a.style['textDecoration']  = 'none';
	wg_a.style['color']           = wg_parms.text_color;
	wg_a.style['fontSize']        = wg_parms.font_size;
	wg_a.style['lineHeight']      = wg_parms.line_height;
	wg_a.style['fontWeight']      = 'bold';
	wg_a.style['backgroundColor'] = wg_parms.background_color;
	wg_a.style['borderStyle']     = 'none';
	wg_a.style['borderWidth']     = '0px';

	wg_a.style['textAlign']       = 'center';
	wg_a.style['cssFloat']        = 'none';
	wg_a.style['styleFloat']      = 'none';
	wg_a.onmouseover = function(){ window.status = this.title; return true; };
	wg_a.onmouseout  = function(){ window.status = ''; return true; };
	if (wg_parms.new_window)
	{
		wg_a.target = '__blank';
	}
	wg_item.appendChild(wg_a);

	/* add image */
	var wg_img    = document.createElement('img');
	wg_img.src    = item.image_url+'&width='+wg_parms.image_width+'&height='+wg_parms.image_height;
	wg_img.height = wg_parms.image_height;
	wg_img.width  = wg_parms.image_width;
	wg_img.border = 0;
	wg_img.alt    = item.label;
	wg_img.title  = item.label;
	wg_img.style['backgroundColor'] = wg_parms.background_color;
	wg_img.style['borderStyle']     = 'none';
	wg_img.style['borderWidth']     = '0px';
	wg_img.style['margin']          = '0px';
	wg_img.style['padding']         = '0px';

	if (wg_parms.orientation == 'H')
	{
		wg_img.style['cssFloat']   = 'left';
		wg_img.style['styleFloat'] = 'left';
	}

	wg_a.appendChild(wg_img);

	/* add label */
	var wg_label = document.createElement('div');

	wg_label.style['fontWeight']      = 'bold';
	wg_label.style['fontSize']        = wg_parms.font_size;
	wg_label.style['lineHeight']      = wg_parms.line_height;
	wg_label.style['textAlign']       = 'center';
	wg_label.style['backgroundColor'] = wg_parms.background_color;
	wg_label.style['borderStyle']     = 'none';
	wg_label.style['borderWidth']     = '0px';
	wg_label.style['borderSpacing']   = '0px 0px';
	wg_label.style['color']           = wg_parms.text_color;
	wg_label.style['cssFloat']        = 'none';
	wg_label.style['styleFloat']      = 'none';
	wg_label.style['padding']         = '0px';
	wg_label.style['margin']          = '0px';
	wg_label.style['word-wrap']       = 'break-word';
	wg_a.appendChild(wg_label);

	/* add product name */
	var wg_label_line1 = document.createElement('div');
	wg_label_line1.innerHTML = wg_string_trim(item.label, wg_parms.label_length).split('-').join('- ');
	wg_label_line1.style['fontWeight']      = 'bold';
	wg_label_line1.style['fontSize']        = wg_parms.font_size;
	wg_label_line1.style['lineHeight']      = wg_parms.line_height;
	wg_label_line1.style['textAlign']       = 'center';
	wg_label_line1.style['backgroundColor'] = wg_parms.background_color;
	wg_label_line1.style['borderStyle']     = 'none';
	wg_label_line1.style['borderWidth']     = '0px';
	wg_label_line1.style['color']           = wg_parms.text_color;
	wg_label_line1.style['cssFloat']        = 'none';
	wg_label_line1.style['styleFloat']      = 'none';
	wg_label_line1.style['padding']         = '0px';
	wg_label_line1.style['margin']          = '0px';
	wg_label_line1.style['word-wrap']       = 'break-word';
	wg_label.appendChild(wg_label_line1);

	/* add price */
	var wg_label_line2 = document.createElement('div');
	wg_label_line2.innerHTML = item.price;
	wg_label_line2.style['fontWeight']      = 'bold';
	wg_label_line2.style['fontSize']        = wg_parms.font_size;
	wg_label_line2.style['lineHeight']      = wg_parms.line_height;
	wg_label_line2.style['textAlign']       = 'center';
	wg_label_line2.style['backgroundColor'] = wg_parms.background_color;
	wg_label_line2.style['borderStyle']     = 'none';
	wg_label_line2.style['borderWidth']     = '0px';
	wg_label_line2.style['color']           = wg_parms.text_color;
	wg_label_line2.style['cssFloat']        = 'none';
	wg_label_line2.style['styleFloat']      = 'none';
	wg_label_line2.style['padding']         = '0px';
	wg_label_line2.style['margin']          = '0px';
	wg_label.appendChild(wg_label_line2);

	/* add merchant url */
	var wg_label_line3 = document.createElement('div');
	wg_label_line3.innerHTML = item.merchant_url;
	wg_label_line3.style['fontWeight']      = 'normal';
	wg_label_line3.style['fontSize']        = wg_parms.font_size_2;
	wg_label_line3.style['lineHeight']      = wg_parms.line_height;
	wg_label_line3.style['textAlign']       = 'center';
	wg_label_line3.style['backgroundColor'] = wg_parms.background_color;
	wg_label_line3.style['borderStyle']     = 'none';
	wg_label_line3.style['borderWidth']     = '0px';
	wg_label_line3.style['color']           = wg_parms.url_text_color;
	wg_label_line3.style['cssFloat']        = 'none';
	wg_label_line3.style['styleFloat']      = 'none';
	wg_label_line3.style['padding']         = '0px';
	wg_label_line3.style['margin']          = '0px';
	wg_label.appendChild(wg_label_line3);
	return wg_item;

}

function wg_string_trim(s, length)
{
	if (s.length > length)
	{
		return s.substr(0, length - 3) + '...';
	}
	return s;
}

function wg_reset_defaults()
{
	wg_format           = undefined;
	wg_background_color = undefined;
	wg_text_color       = undefined;
	wg_border_color     = undefined;
	wg_new_window       = undefined;
	wg_click_reference  = undefined;
	wg_url_text_color   = undefined;
}

function wg_get_item(items)
{

	for (var j = 0; j < 5; j++)
	{
		for (var i = 0; i < items.length; i++)
		{
			if (typeof(items[i].used) == 'undefined')
			{
				items[i].used = j;
				return items[i];
			}
			else if(items[i].used < j)
			{
				items[i].used++;
				return items[i];
			}
		}
	}
	return items[0];
}

function wg_shuffle_array (myArray)
{
	var i = myArray.length;
	if (i == 0) { return false; }
	while ( --i )
	{
		var j = Math.floor(Math.random() * (i + 1));
		var tempi = myArray[i];
		var tempj = myArray[j];
		myArray[i] = tempj;
		myArray[j] = tempi;
	}
}
