
var		caLoadOverInterval=null;
var		caOverReq=null;
var		caCatalog=null;

var		caProductImages=new Array();

var		caStockIds=new Array();		// DIV IDs that should get a stock display.

var		caCBNumPages=null;

function caLoadOver()
{
	if (caCatalogId == '')
	{
		if (caLoadOverInterval)
			return;

		caLoadOverInterval = window.setInterval("caLoadOver();", 100);
		return;
	}

	if (caLoadOverInterval)
	{
		window.clearInterval(caLoadOverInterval);
		caLoadOverInterval = null;
	}

	caLoadOverJSON();
}

function caLoadOverOutlet()
{
	caCatalogId = 8999999;

	caLoadOverJSON();
}

function caOnError(event)
{
	var		strErr='';


	strErr += 'Beim Laden der Seite ist ein Fehler aufgetreten:<br><br>';
	strErr += event.value.name + ': ' + event.value.message;
	document.getElementById('product_table').innerHTML = strErr;
}

function caLoadOverJSON()
{
	var		funcObj=new Object();
	var		errorObj=new Object();


	funcObj.func = caOnLoadOverComplete;
	errorObj.func = caOnError;

	caOverReq = new AJAXRequest();
	caOverReq.addEvent(STATE_READY, funcObj);
	caOverReq.addEvent(EVENT_ERROR, errorObj);
	caOverReq.setURL('../JSCatalog/de/CatalogID_'+caCatalogId+'.xml'+caGetCacheParam());
	caOverReq.load();
}

function caOnLoadOverComplete()
{
	var		einzelteile=(caGetNaviLevel3().indexOf('Sale')>=0)||(caGetNaviLevel3().indexOf('Reduzierte Einzelteile')>=0)||(caGetNaviLevel3().indexOf('Euro Special')>=0);
	var		filterFlags=caGetFilters();


	if (this.objXML.responseText.indexOf('{') != 0)
	{
		var		e=new Error();


		e.name = 'FileNotFound';
		e.message = 'Invalid file or file not found';
		throw e;
	}

	caCatalog = new CaObjProducts(eval("("+this.objXML.responseText.replace(/&#x([A-F0-9]{2})/gi, '\\u00$1')+")").pricedProductId);

	caCreatePPPSelection();

	if (einzelteile)
		caFilterSize = new CaFilter('size', 'filter_layer_red');
	else
		caFilterSize = new CaFilter('size', 'filter_layer');
	caFilterColor = new CaFilter('color', 'filter_layer');
	caFilterBrand = new CaFilter('brand', 'filter_layer');
	caFilterShape = new CaFilter('shape', 'filter_layer');
	caFilterStyle = new CaFilter('style', 'filter_layer');

	if (filterFlags.length >= 5)
	{
		if (filterFlags.charAt(0) != '0')
			caRestoreFilter(caFilterSize, sessvars['filter_'+caFilterSize.name]);
		if (filterFlags.charAt(1) != '0')
			caRestoreFilter(caFilterColor, sessvars['filter_'+caFilterColor.name]);
		if (filterFlags.charAt(2) != '0')
			caRestoreFilter(caFilterBrand, sessvars['filter_'+caFilterBrand.name]);
		if (filterFlags.charAt(3) != '0')
			caRestoreFilter(caFilterShape, sessvars['filter_'+caFilterShape.name]);
		if (filterFlags.charAt(4) != '0')
			caRestoreFilter(caFilterStyle, sessvars['filter_'+caFilterStyle.name]);
	}

	caCatalog.caFilterProducts(
		caFilterSize.selectionArr, 
		caFilterColor.selectionArr, 
		caFilterBrand.selectionArr, 
		caFilterShape.selectionArr, 
		caFilterStyle.selectionArr);

	if (filterFlags.length >= 5)
	{
		if (filterFlags.charAt(0) != '2')
			caUpdateFilter(caFilterSize, caCatalog.caGetSizeArr());
		if (filterFlags.charAt(1) != '2')
			caUpdateFilter(caFilterColor, caCatalog.caGetColorArr());
		if (filterFlags.charAt(2) != '2')
			caUpdateFilter(caFilterBrand, caCatalog.caGetBrandArr());
		if (filterFlags.charAt(3) != '2')
			caUpdateFilter(caFilterShape, caCatalog.caGetShapeArr());
		if (filterFlags.charAt(4) != '2')
			caUpdateFilter(caFilterStyle, caCatalog.caGetStyleArr());
	}
	else
	{
		caUpdateFilter(caFilterSize, caCatalog.caGetSizeArr());
		caUpdateFilter(caFilterColor, caCatalog.caGetColorArr());
		caUpdateFilter(caFilterBrand, caCatalog.caGetBrandArr());
		caUpdateFilter(caFilterShape, caCatalog.caGetShapeArr());
		caUpdateFilter(caFilterStyle, caCatalog.caGetStyleArr());
	}

	caWriteOver();

	caWritePageSelector();
	if (caCatalog.filteredProducts.length > caCBNumPages.options[0].value)
		document.getElementById('PageNavigation').style.display = 'block';
}

function caCreatePPPSelection()
{
	if (caCBNumPages)
		delete caCBNumPages;

	caCBNumPages = new CaComboBox('cbNumPages', 0, 0, 178, 20, '../Data/Img/Over/filter_background2.gif', true, 'cb_page_placeholder', false);

	caCBNumPages.addOption('40 Produkte pro Seite', 40);
	caCBNumPages.addOption('60 Produkte pro Seite', 60);
	caCBNumPages.addOption('80 Produkte pro Seite', 80);
	caCBNumPages.addOption('Alle Produkte anzeigen', 999999);

	if (typeof sessvars.ppp != 'undefined')
		caCBNumPages.selection = sessvars.ppp;
	else
		caCBNumPages.selection = 1;

	caCBNumPages.updateSelection();
	caCBNumPages.updateDropDown();
	caCBNumPages.onchange = 'caSetOverPage(0);sessvars["ppp"]=this.selection;location.reload();';
}

function caWriteOver()
{
	var			strOut='';
	var			i;
	var			left=0;
	var			ppp=caCBNumPages.options[caCBNumPages.selection].value;
	var			start=caGetOverPage()*ppp;
	var			end=(start + ppp > caCatalog.filteredProducts.length) ? caCatalog.filteredProducts.length : start + ppp;
	var			tmp=caLastProduct;
	var			showStock=(caGetNaviLevel3().indexOf('Sale') >= 0)||(caGetNaviLevel3().indexOf('Reduzierte Einzelteile') >= 0)||(caGetNaviLevel3().indexOf('Euro Special') >= 0);
	var			cls=showStock ? 'over_shadow_stock' : 'over_shadow';
	var			contentHeight=showStock?437:407;


	if (caCatalog.filteredProducts.length < 4)
	{
		if (caGetNaviLevel3() == '1 Euro Geburtstagsspecial')
		{
			var		strOut='';
			if (caGetNaviLevel1() == 'Women')
			{
				strOut += '<table cellspacing="0" cellpadding="0">';
				strOut += '<tr>';
				strOut += '<td style="padding-left:3px;"><img src="../Data/Img/Level3/de/women/specials/1_euro/090924_special_women_dessous_ausverkauft_A1.jpg"></td>';
				strOut += '<td><img src="../Data/Img/Level3/de/women/specials/1_euro/090924_special_women_dessous_ausverkauft_A2.jpg"></td>';
				strOut += '<td><img src="../Data/Img/Level3/de/women/specials/1_euro/090924_special_women_dessous_ausverkauft_A3.jpg"></td>';
				strOut += '</tr>';
				strOut += '<tr>';
				strOut += '<td style="padding-left:3px;"><img src="../Data/Img/Level3/de/women/specials/1_euro/090924_special_women_dessous_ausverkauft_A4.jpg"></td>';
				strOut += '<td><img src="../Data/Img/Level3/de/women/specials/1_euro/090924_special_women_dessous_ausverkauft_A5.jpg"></td>';
				strOut += '<td><img src="../Data/Img/Level3/de/women/specials/1_euro/090924_special_women_dessous_ausverkauft_A6.jpg"></td>';
				strOut += '</tr>';
				strOut += '<tr>';
				strOut += '<td style="padding-left:3px;"><img src="../Data/Img/Level3/de/women/specials/1_euro/090924_special_women_dessous_ausverkauft_A7.jpg"></td>';
				strOut += '<td><img src="../Data/Img/Level3/de/women/specials/1_euro/090924_special_women_dessous_ausverkauft_A8.jpg"></td>';
				strOut += '<td><img src="../Data/Img/Level3/de/women/specials/1_euro/090924_special_women_dessous_ausverkauft_A9.jpg"></td>';
				strOut += '</tr>';
				strOut += '</table>';
			}
			else
			{
				strOut += '<table cellspacing="0" cellpadding="0">';
				strOut += '<tr>';
				strOut += '<td style="padding-left:3px;"><img src="../Data/Img/Level3/de/men/specials/1_euro/090924_special_men_hemden_ausverkauft_A1.jpg"></td>';
				strOut += '<td><img src="../Data/Img/Level3/de/men/specials/1_euro/090924_special_men_hemden_ausverkauft_A2.jpg"></td>';
				strOut += '<td><img src="../Data/Img/Level3/de/men/specials/1_euro/090924_special_men_hemden_ausverkauft_A3.jpg"></td>';
				strOut += '</tr>';
				strOut += '<tr>';
				strOut += '<td style="padding-left:3px;"><img src="../Data/Img/Level3/de/men/specials/1_euro/090924_special_men_hemden_ausverkauft_A4.jpg"></td>';
				strOut += '<td><img src="../Data/Img/Level3/de/men/specials/1_euro/090924_special_men_hemden_ausverkauft_A5.jpg"></td>';
				strOut += '<td><img src="../Data/Img/Level3/de/men/specials/1_euro/090924_special_men_hemden_ausverkauft_A6.jpg"></td>';
				strOut += '</tr>';
				strOut += '<tr>';
				strOut += '<td style="padding-left:3px;"><img src="../Data/Img/Level3/de/men/specials/1_euro/090924_special_men_hemden_ausverkauft_A7.jpg"></td>';
				strOut += '<td><img src="../Data/Img/Level3/de/men/specials/1_euro/090924_special_men_hemden_ausverkauft_A8.jpg"></td>';
				strOut += '<td><img src="../Data/Img/Level3/de/men/specials/1_euro/090924_special_men_hemden_ausverkauft_A9.jpg"></td>';
				strOut += '</tr>';
				strOut += '</table>';
			}
			document.getElementById('product_table').innerHTML = strOut;
			return;
		}
	}

	if (caCatalog.filteredProducts.length < 1)
	{
		document.getElementById('product_table').innerHTML = '';
		return;
	}

	strOut += '<table cellpadding="0" cellspacing="0">';

	for (i=start;i<end;++i)
	{
		if (i-start == 4)
			cls = showStock ? 'over_shadow2_stock' : 'over_shadow2';

		strOut += (i & 3) ? '<td class="'+cls+'">' : '<tr><td class="'+cls+'">';
		strOut += '<div style="position:relative;left:3px;top:3px;width:178px;height:'+contentHeight+'px;overflow:hidden;">';
		strOut += caWriteProduct(i, showStock);
		strOut += '</div>';
		strOut += ((i & 3) != 3) ? '</td>' : '</td></tr>';
	}

	if (i & 3)
		strOut += '</tr>';

	strOut += '</table>';

	document.getElementById('product_table').innerHTML = strOut;

	// Jump to the last product.
	if (caLastProduct != '')
	{
		caLastProduct = '';
		location.hash = tmp;
	}
	if (typeof sessvars['lastPPID'] != 'undefined' && 
			typeof sessvars['lastColorId'] != 'undefined')
	{
		if (sessvars['lastPPID'] != '' && sessvars['lastColorId'] != '')
		{
			var		hsh=sessvars['lastPPID']+'_'+sessvars['lastColorId'];


			sessvars['lastPPID'] = '';
			sessvars['lastColorId'] = '';
			location.hash = hsh;
		}
	}

	window.setTimeout('caLoadProductImages()', 50);
	window.setTimeout('caLoadStock()', 500);
}

function caGetStoererImage(productNum)
{
	var 	stoerer=caCatalog.caGetStoerer(productNum);


	if (parent.caGetNaviLevel3().indexOf('Reduzierte Einzelteile') >= 0)
		return '../Data/Img/Over/stoerer_einzelteile.gif';
	else if (parent.caGetNaviLevel3().indexOf('1 Euro Geburtstagsspecial') == 0)
		return '../Data/Img/trans.gif';
	else
	{
		switch (stoerer.toLowerCase())
		{
			case 'new':
				return '../Data/Img/Over/stoerer_new.gif';
				break;

			case 'sale':
				return '../Data/Img/Over/stoerer_sale.gif';
				break;

			case 'tv':
				return '../Data/Img/Over/stoerer_tv.gif';
				break;

			case 'bestseller':
				return '../Data/Img/Over/stoerer_bestseller.gif';
				break;

			default:
				return '../Data/Img/trans.gif';
		}
	}
}

function caGetBrandImage(productNum)
{
	var			brand='';


	if (caGetNaviLevel1() != 'Artikelsuche' && 
			caGetNaviLevel2() != '' && 
			caGetNaviLevel2().indexOf('Girls') < 0 && caGetNaviLevel2().indexOf('Boys') < 0 && 
			caGetNaviLevel3().indexOf('Sale') < 0 && caGetNaviLevel3().indexOf('Reduzierte Einzelteile') < 0 && 
			caGetNaviLevel2() != 'Neuheiten')
	{
		// Get brand from navigation.
		brand = caFormatFileName(caGetNaviLevel2());
	}
	else
	{
		var			brands=caCatalog.caGetBrands(productNum);


		// Erste Marke anzeigen.
		if (brands.length > 0 && typeof brands[0] != 'undefined')
			brand = caFormatFileName(brands[0]);
	}

	if (brand == '')
		brand = '0';

	return '../Data/Img/Over/logo_' + brand + '.gif';;
}

function caGetLogoImage(productNum)
{
	var		logos=caCatalog.caGetLogos(productNum);
	var		logo='';


	if (logos.length > 0)
		logo = '../Data/Img/Product/logo/' + logos[0] + '.gif';
	else
		logo = '../Data/Img/trans.gif';

	return logo;
}

function caGetMaterialStr(productNum)
{
	var		articles=caCatalog.caGetArticles(productNum);


	if (((caGetNaviLevel1() == 'Minis' || caGetNaviLevel1() == 'Kids') && caGetNaviLevel3() == 'Spielwaren') || 
			((caGetNaviLevel1() == 'Women' || caGetNaviLevel1() == 'Men') && caGetNaviLevel4() == 'Modeschmuck') || 
			(caGetNaviLevel1() == 'Babies' && caGetNaviLevel4() == 'Plüschtiere') || 
			caGetNaviLevel4() == 'Sonnenbrillen')
	{
		return '';
	}

	return (articles.length > 0) ? caCatalog.caGetMaterialString(articles[0], articles.length > 1) : '';
}

function caGetCatalogText(productNum)
{
	var		texts=caCatalog.caGetCatalogText(productNum);


	if (texts.length < 1)
		return '';

	return (texts[0] == '0') ? '' : texts[0];
}

function caGetProduktZusatz(productNum)
{
	var		text=caCatalog.caGetZusatzText(productNum);


	if (text == '0')
		return '';

	return text;
}

function caMoreColorsAvailable(productId)
{
	var		products=caCatalog.caGetProducts();
	var		i;
	var		cnt=0;


	for (i=0;i<products.length;i++)
	{
		if (caCatalog.caGetProductId(i) == productId)
			cnt++;

		if (cnt > 1)
			return true;
	}

	return false;
}

function caToggleProductImage(imageObj)
{
	var		productImage;
	var		file;


	if (!imageObj)
		return;

	if (imageObj.src.indexOf('trans.gif') >= 0)
		return;

	productImage = imageObj.id.replace('_pic', '') + '.jpg';
	if (imageObj.src.indexOf('FRONTDET1_product_overview') > 0)
		file = '../ProductImg/FRONT_product_overview/' + productImage;
	else
		file = '../ProductImg/FRONTDET1_product_overview/' + productImage;

	imageObj.src = file;
}

function caWriteProduct(productNum, showStock)
{
	var		strOut='';
	var		PPID_COLOR=caCatalog.caGetProductId(productNum)+'_'+caCatalog.caGetColorId(productNum);
	var		level1=caGetNaviLevel1();
	var		level2=caGetNaviLevel2();
	var		level3=caGetNaviLevel3();
	var		level4=caGetNaviLevel4();
	var		loadObj=new Object();
	var		deepLink=caGetDeepLink(false, level1, level2, level3, level4, caCatalog.caGetProductId(productNum), caCatalog.caGetColorId(productNum), caGetOverPage(), '', caGetFilters());
	var		stockObj;


	// Load the images later on.
	loadObj.id = PPID_COLOR + '_pic';
	loadObj.file = '../ProductImg/FRONT_product_overview/' + PPID_COLOR + '.jpg';
	loadObj.zoomFile = '../ProductImg/FRONTDET1_product_overview/' + PPID_COLOR + '.jpg';
	caProductImages[caProductImages.length] = loadObj;

	// Anchor.
	strOut += '<a name="'+PPID_COLOR+'"></a>';
	// Product image.
	strOut += '<div style="position:relative;width:178px;height:307px;"><a href="'+caGetDeepLink(false, level1, level2, level3, level4, caCatalog.caGetProductId(productNum), caCatalog.caGetColorId(productNum))+'"><img id="'+PPID_COLOR+'_pic" src="../Data/Img/trans.gif" width="178" height="307" onerror="this.src=\'../Data/Img/trans.gif\';"></a></div>';
	// Sale, new, tv flag.
	strOut += '<div style="position:absolute;top:0px;left:0px;"><img src="'+caGetStoererImage(productNum)+'"></div>';
	// Brand flag.
	strOut += '<div style="position:absolute;bottom:'+(showStock?130:100)+'px;left:0px;"><img src="'+caGetBrandImage(productNum)+'"></div>';
	strOut += '<div class="line"></div>';
	// Stock info.
	if (showStock)
	{
		strOut += '<div id="stock_'+PPID_COLOR+'" style="width:178px;height:29px;overflow:hidden;"></div>';
		strOut += '<div class="line"></div>';

		// Load the stock infos AFTER all other stuff has been loaded.
		stockObj = new Object();
		stockObj.ppid = caCatalog.caGetProductId(productNum);
		stockObj.colourId = caCatalog.caGetColorId(productNum);
		stockObj.id = 'stock_' + PPID_COLOR;
		caStockIds[caStockIds.length] = stockObj;
	}
	// More colors.
	strOut += '<div class="ColorPresent">';
	if (caMoreColorsAvailable(caCatalog.caGetProductId(productNum)))
		strOut += '<div style="padding-top:1px;padding-right:3px;">Weitere Farben vorhanden <img src="../Data/Img/Over/button_pfeil_rechts.jpg" width="14" height="14" style="margin-bottom:-2px;"></div>';
	strOut += '</div>';
	strOut += '<div class="line"></div>';
	//////////////////////////////////////////////////////////////////////////////
	// Product infos.
	strOut += '<div style="position:relative;width:178px;height:81px;">';
	// Catalog logo.
	strOut += '<div style="position:absolute;right:3px;bottom:3px;width:40px;height:40px;"><img src="'+caGetLogoImage(productNum)+'" width="40" height="40"></div>';
	strOut += '<div style="position:relative;left:6px;top:5px;width:166px;height:81px;">';
	strOut += '  <div class="ProductName">'+caCatalog.caGetProductName(productNum)+'</div>';
	strOut += '  <div class="ProductPrice">'+caCatalog.caGetPrice(productNum)+'</div>';
	strOut += '  <div class="ProductInfo">'+caCatalog.caGetColorName(productNum)+'</div>';
	strOut += '  <div class="ProductInfo" style="height:13px;">'+caGetMaterialStr(productNum)+'</div>';
	strOut += '  <div class="ProductInfo" style="height:13px;">'+caGetCatalogText(productNum)+'</div>';
	strOut += '  <div class="ProductName">'+caGetProduktZusatz(productNum)+'</div>';
	strOut += '</div>';
	strOut += '</div>';
	//////////////////////////////////////////////////////////////////////////////
	// Detail links.
	strOut += '<div style="position:absolute;top:0px;left:0px;width:178px;height:307px;"><a href="'+deepLink+'"><img src="../Data/Img/trans.gif" onMouseOver="caToggleProductImage(document.getElementById(\''+PPID_COLOR+'_pic\'));" onMouseOut="caToggleProductImage(document.getElementById(\''+PPID_COLOR+'_pic\'));" width="178" height="307"></a></div>';
	strOut += '<div style="position:absolute;top:307px;left:0px;width:178px;height:'+(showStock?133:103)+'px;"><a href="'+deepLink+'"><img src="../Data/Img/trans.gif" width="178" height="'+(showStock?133:103)+'"></a></div>';

	return strOut;
}

function caLoadProductImages()
{
	var			i;
	var			obj;


	for (i=0;i<caProductImages.length;i++)
	{
		obj = document.getElementById(caProductImages[i].id);
		if (!obj)
			continue;

		obj.src = caProductImages[i].file;
		caProductImages[i].img = new Image();
		caProductImages[i].img.src = caProductImages[i].zoomFile;
	}

	caProductImages.length = 0;
}

function caWritePageSelector()
{
	var			strOut='';
	var			i;
	var			color;
	var			isCurrPage;
	var			start=0;
	var			end=caCatalog.numPages;
	var			count=9;
	var			countLeft=4;
	var			countRight=4;


	strOut += '<table cellspacing="0" cellpadding="0" border="0" height="20px" align="center"><tr>';

	// Back button.
	if (caGetOverPage() > 0)
	{
		strOut += '<td><a href="'+caGetDeepLink(false, caGetNaviLevel1(), caGetNaviLevel2(), caGetNaviLevel3(), caGetNaviLevel4(), caGetProductId(), caGetProductColor(), caGetOverPage()-1, '', caGetFilters())+'">';
		strOut += '<div style="cursor:pointer;font-family:Arial;font-weight:bold;font-size:13px;color:#FFFFFF;"><div style="float:left;"><img src="../Data/Img/Over/button_page_left.gif" width="17" height="17" style="margin-bottom:-3px;">&nbsp;&nbsp;ZUR&Uuml;CK</div></div>';
		strOut += '</a></td>';	
		strOut += '<td width="30"></td>';
	}

	strOut += '<td style="font-family:Arial;font-weight:bold;font-size:13px;color:#FFFFFF;">Seite:&nbsp;</td>';

	// Show a maximum of 9 pages.
	if (caCatalog.numPages > count)
	{
		start = Math.max(caGetOverPage() - countLeft, 0);
		end = Math.min(caGetOverPage() + countRight, caCatalog.numPages);

		if (start == 0)
			end = Math.min(count, caCatalog.numPages);

		if (end == caCatalog.numPages)
			start = Math.max(caGetOverPage() - count, 0);
	}

	for (i=start;i<end;i++)
	{
		isCurrPage = (i == caGetOverPage()) ? true : false;

		if (i > 0)
		{
			strOut += '<td style="font-family:Arial;font-weight:bold;font-size:13px;color:#FFFFFF;">|</td>';
		}

		if (isCurrPage)
			color = '#C6313F';
		else
			color = '#FFFFFF';

		strOut += '<td style="text-align:center;width:15px;">';
		if (!isCurrPage)
			strOut += '<a href="'+caGetDeepLink(false, caGetNaviLevel1(), caGetNaviLevel2(), caGetNaviLevel3(), caGetNaviLevel4(), caGetProductId(), caGetProductColor(), i, '', caGetFilters())+'">';
		strOut += '<div style="cursor:pointer;font-family:Arial;font-weight:bold;font-size:13px;color:'+color+';width:15px;">' + (i + 1) + '</div>';
		if (!isCurrPage)
			strOut += '</a>';
		strOut += '</td>';
	}

	// Weiter Button.
	if (caGetOverPage() + 1 < caCatalog.numPages)
	{
		strOut += '<td width="30"></td>';
		strOut += '<td><a href="'+caGetDeepLink(false, caGetNaviLevel1(), caGetNaviLevel2(), caGetNaviLevel3(), caGetNaviLevel4(), caGetProductId(), caGetProductColor(), caGetOverPage()+1, '', caGetFilters())+'">';
		strOut += '<div style="cursor:pointer;font-family:Arial;font-weight:bold;font-size:13px;color:#FFFFFF;">WEITER&nbsp;&nbsp;<img src="../Data/Img/Over/button_page_right.gif" width="17" height="17" style="margin-bottom:-3px;"></div>';
		strOut += '</a></td>';
	}

	strOut += '</tr></table>';

	document.getElementById('PageSelector').innerHTML = strOut;
}

function caLoadStock()
{
	var			i;
	var			funcObj;


	for (i=0;i<caStockIds.length;++i)
	{
		funcObj = new Object();
		funcObj.func = caOnLoadStockComplete;

		caStockIds[i].req = new AJAXRequest();
		caStockIds[i].req.addEvent(STATE_READY, funcObj);
		caStockIds[i].req.setURL('../JSProductStock/de/PI_pricedProductId_'+caStockIds[i].ppid+'.xml'+caGetCacheParam());
		caStockIds[i].req.colourId = caStockIds[i].colourId;
		caStockIds[i].req.id = caStockIds[i].id;
		caStockIds[i].req.load();
	}
}

function caOnLoadStockComplete()
{
	var			stock=eval('('+this.objXML.responseText.replace(/&#x([A-F0-9]{2})/gi, '\\u00$1')+')').colour;
	var			strOut='';
	var			bigSizes=false;
	var			sizesWidth;
	var			sizesPerRow;
	var			fontColor;
	var			bgColor;
	var			i;
	var			j;


	if (typeof stock.length == 'undefined')
		stock = new Array(stock);

	for (i=0;i<stock.length;++i)
	{
		if (stock[i].colourId != this.colourId)
			continue;

		if (typeof stock[i].size.length == 'undefined')
			stock[i].size = new Array(stock[i].size);

		for (j=0;j<stock[i].size.length;++j)
		{
			stock[i].size[j].size = stock[i].size[j].size.replace(/XXXX/gi, '4X');
			stock[i].size[j].size = stock[i].size[j].size.replace(/XXX/gi, '3X');
			stock[i].size[j].size = stock[i].size[j].size.replace('  ', ' ');
			if (stock[i].size[j].size.indexOf(' ') >= 0)
				stock[i].size[j].size = stock[i].size[j].size.replace(/([A-Za-z]{1,3})\s{0,1}[A-Za-z0-9	\/]{2,}/gi, '$1');
			else if (stock[i].size[j].size.indexOf(' ') < 0 && stock[i].size[j].size.indexOf('/') >=0 && isNaN(stock[i].size[j].size.replace(/\//gi, '')))
				stock[i].size[j].size = stock[i].size[j].size.replace(/([A-Za-z]{1,3})\s{0,1}([A-Za-z0-9	\/]{2,})/gi, '$1');
			else
				stock[i].size[j].size = stock[i].size[j].size;
			stock[i].size[j].size = (stock[i].size[j].size == '000') ? '1 size' : stock[i].size[j].size;

			if (stock[i].size[j].size.length > 5)
				bigSizes = true;
		}

		if (bigSizes == true)
		{
			sizesWidth = 40;
			sizesPerRow = 4;
		}
		else
		{
			sizesWidth = 30;
			sizesPerRow = 5;
		}

		if (stock[i].size.length > sizesPerRow * 2)
		{
			strOut += '<div style="width:176px;height:14px;border-left:1px solid #CCCCCC;border-bottom:1px solid #CCCCCC;border-right:1px solid #CCCCCC;background-color:#C0DEB3;font-family:Arial;font-size:11px;text-align:center;">Verschiedene Gr&ouml;&szlig;en verf&uuml;gbar</div>';
			break;
		}

		for (j=0;j<stock[i].size.length;++j)
		{
			if (stock[i].size[j].BestellBestand <= 0)
			{
				bgColor = '#9E0923';
				fontColor = '#CCCCCC';
			}
			else if (stock[i].size[j].BestellBestand <= 3)
			{
				bgColor = '#FFFAC8';
				fontColor = '#000000';
			}
			else
			{
				bgColor = '#C0DEB3';
				fontColor = '#000000';
			}

			strOut += '<div style="float:left;width:'+sizesWidth+'px;height:14px;'+(((j % sizesPerRow) == 0)?'border-left:1px solid #CCCCCC;':'')+((j < sizesPerRow)?'border-bottom:1px solid #CCCCCC;':'')+'border-right:1px solid #CCCCCC;background-color:'+bgColor+';color:'+fontColor+';font-family:Arial;font-size:11px;text-align:center;">' + stock[i].size[j].size + '</div>';
		}

		break;
	}

	document.getElementById(this.id).innerHTML = strOut;
}
