function PP1_zp(a_product_ids,
    zone,
    symbolic,
    target_id,
    category,
    rec_attributes,
    target_attributes,
    target_header_txt)
    {
    var html = zone + "_zp: No recommendations returned";
    if (symbolic !== '_NR_')
    {
    // special case. Over ride of the header text passed from the configuration file
    
    //<td valign="top">
    //  <table border="0" cellspacing="10" cellpadding="0">
    //    <tr>
    //      <td>
    //      	<table border="0" cellspacing="0" cellpadding="0" width="100%">
    //      		<tr><td height="124" width="124" align="center" valign="middle" style="border:1px solid #999999; background-color:#ffffff;">
    //      			<div style="width:124px; text-align:center;">
		//            <a href="javascript:openShotPopup('{$site_name}','{$accessory_page/@book}','{$accessory_page/@number}','{$accessory_page/@occurance}','{$accessory_shot}','{$shot_lnk}','','','{$cleanbrandname}-_-upsell{$cm_re}');" title="{$accessory_title} - opens in a new window" onclick="trackerRequest('op=click', 'bn=upsell', 'ic={$accessory_code}');" class="accessory_img">
  	//        				<img alt="{$accessory_product/title}" src="{$img_serv}{$accessory_page/@book}/shot/{$accessory_page/@number}/{$accessory_name}?w=120&amp;h=120" style="vertical-align:middle;" />
  	//        			</a>
    //      			</div>
    //      		</td></tr>
    //      		<tr><td height="40" valign="top">
		//            <a style="padding:2px; display:block;  vertical-align:bottom;" class="newblacklink" href="javascript:openShotPopup('{$site_name}','{$accessory_page/@book}','{$accessory_page/@number}','{$accessory_page/@occurance}','{$accessory_shot}','{$shot_lnk}','','','{$cleanbrandname}-_-upsell{$cm_re}');" title="{$accessory_title} - opens in a new window" onclick="trackerRequest('op=click', 'bn=upsell', 'ic={$accessory_code}');">
		//            	<xsl:value-of select="$accessory_product/title" />
		//            	<xsl:text disable-output-escaping="yes">  </xsl:text>
		//           	<strong><xsl:value-of select="$accessory_product/price" /></strong>
		//            </a>
		//            <span class="hidetext">
		//              <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>(opens in a new window)
		//            </span>
    //      		</td></tr>
    //      	</table>
    //      </td>
    //    </tr>
    //  </table>
    //</td>
    
    target_header_txt = "Other customers also shopped";
    var div_recs = '<div class="v4_io_example_recs"\>';
    var n_recs = a_product_ids.length;
    var div_title = '<div class="io_recs_title">' + target_header_txt + '<\/div>';
    var div_table = '<div class="io_recs_table">';
    var image_table = '<TABLE CELLSPACING="2" CELLPADDING="0" Align="center" style="bordercolor:white;"><TR>';
    var lines = [];
    var width = 100 / n_recs;
    // 0 product description
    // 1 category
    // 2 price
    // 3 not defined
    // 4 not defined
    // Recommendations

		lines.push('<table border="0" cellpadding="1" cellspacing="0" align="center" style="margin:auto;">');
	  lines.push('<tr>');

    var brand;
    if(location.host.toLowerCase().indexOf('24ace') > 0) {
    	brand = 'A';
		} else {
    	brand = 'S';
		}

    for (var ii=0; ii < n_recs; ii++)
    {
        var rec_prod_id = a_product_ids[ii];
        var image_description = rec_attributes[ii][0];
        // - not passed to example
        var selected_href = rec_attributes[ii][2] + '?cm_vc=' + brand + ':PP1';
        // - not passed to example
        var price = rec_attributes[ii][1];
        // - not passed to example
        var n_stars = 2 + Math.floor(Math.random() * 3);
        // - not passed to example
        var category = rec_attributes[ii][1];
        // - not passed to example
        var image_url = rec_attributes[ii][3];
        // - not passed to example
        var alt_description = image_description || rec_prod_id;
        
        //lines.push('<TD valign="top" class="borderedRollover" width=' + width + '%><div class="bordered_Rollover"><TABLE ALIGN="center" WIDTH=' + width + '%>');
        //lines.push('<TR><TD ALIGN="center"><A HREF="' + selected_href + '"><IMG SRC="' + image_url + '?wid=128" + ALT="' + alt_description + '" + WIDTH=128 + height=128 + style="border: medium none; cursor: pointer; padding-bottom: 5px; padding-top: 5px;" /><\/TD><\/TR>');
        //lines.push('<TR><TD ALIGN="center"><A STYLE="text-decoration:none" HREF="' + selected_href + '">' + image_description + '<\/A><\/TD><\/TR>');
        //lines.push('<TR ><TD><TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH=100%><TR><TD ALIGN="center">' + price + '<\/TD><\/TR><\/TABLE><\/TD><\/TR>');
        //lines.push('<\/TABLE><\/div><\/TD>');
        lines.push('<td valign="top"> ')
        lines.push('<table border="0" cellspacing="10" cellpadding="0">')
          lines.push('<tr> ')
            lines.push('<td>')
            	lines.push('<table border="0" cellspacing="0" cellpadding="0" width="100%">')
            		lines.push('<tr><td height="124" width="124" align="center" valign="middle" style="border:1px solid #999999; background-color:#ffffff;">')
            			lines.push('<div style="width:124px; text-align:center;"> ')
  		            lines.push('<a href="' + selected_href + '" title="' + image_description + '" onclick=""> ')
    	        				lines.push('<img alt="' + alt_description + '" src="' + image_url + '" />')
    	        			lines.push('</a>  ')
            			lines.push('</div>')
            		lines.push('</td></tr> ')
            		lines.push('<tr><td height="40" valign="top">')
  		            lines.push('<a style="padding:2px; display:block;  vertical-align:bottom;" class="newblacklink" href="' + selected_href + '" title="' + image_description + '" onclick="">')
  		            	lines.push(image_description)
  		           		lines.push('<strong>' + price.replace(/\xC2\xBF/gi, '&pound;') + '</strong>  ')
  		            lines.push('</a>   ')
  		            lines.push('<span class="hidetext"> ')
  		              lines.push('<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>(opens in a new window)  ')
  		            lines.push('</span>  ')
            		lines.push('</td></tr> ')
            	lines.push('</table> ')
            lines.push('</td>   ')
          lines.push('</tr>   ')
        lines.push('</table>  ')
      lines.push('</td>   ')
    }
    
    lines.push('</tr>');
	  lines.push('</table>');

    // make a text string
    // html = div_title + div_table + image_table + lines.join("\n") + '<\/TR>' +
    //image_trailer + '<\/TABLE><\/div>';
    //html = div_recs + div_title + div_table + image_table + lines.join("\n") + '<\/TR\><\/TABLE\><\/div\><\/div\>';
    html =lines.join("\n")
    }

    if(html == zone + "_zp: No recommendations returned") {
    	document.getElementById('fallback').style.display = 'block';
    	document.getElementById('iocrosssells').style.display = 'none';
		  showTab(1);
		} else {
	    document.getElementById('io_zone').innerHTML= html;
		  showTab(1);
		}
}