﻿var jsonObjAvail = null, jsonObjSubOrd = null;
var isComposed = false, isFeatured = false, cartSpan = null;

var prodsPartsList = new Array();
var prodsFeaturesList = new Array();
var nextFeatIdx = 0;
function ProdFeat(featId, featName, prodId) {

	this.Id = featId;
	this.Name = featName;
	this.ProdId = prodId;
	this.Values = new Array();

	this.addValue = function(valueId, valueName) {
		this.Values.push({id: valueId, val: valueName});
	};
}
function ProdPart(partId, partName) {
	this.Id = partId;
	this.Name = partName;
}

function popolaQuantita() {
	var tbl = $('tblFeats');
	var tblTH = $('tblFeatsTH');
	var tblTB = $('tblFeatsTB');
	var n = tblTH.rows.length;
	while(n>0) { n--; tblTH.deleteRow(n); tblTB.deleteRow(n); }
	var R, Th, Td, I;

	R = document.createElement('tr');
	Th = document.createElement('th');
	Td = document.createElement('td');
	I = document.createElement('input');

	Th.innerHTML = headerTexts.Quantity;
	R.appendChild(Th);

	tblTH.appendChild(R);

	R = document.createElement('tr');
	I.id = 'featQta_0'
	I.size = 10;
	I.className = 'number';
	I.onkeyup =		function() { checkValue(0); checkAvailability(0); };
	Td.appendChild(I);
	R.appendChild(Td);

	tblTB.appendChild(R);

	R = document.createElement('tr');
	Td = document.createElement('td');
	Td.id = 'featAvail_0';
	Td.className = 'avail';
	Td.style.borderBottom = '2px solid #434542';
	R.appendChild(Td);

	tblTB.appendChild(R);

	checkAvailability(0);
}
function popolaFeatures() {
	var tbl = $('tblFeats');
	var tblTH = $('tblFeatsTH');
	var tblTB = $('tblFeatsTB');
	var n = tblTH.rows.length;
	while(n>0) { n--; tblTH.deleteRow(n); tblTB.deleteRow(n); }
	var R, Th;

	R = document.createElement('tr');
	Th = document.createElement('th');

	R.appendChild(Th);
	for(var i=0; i<prodsFeaturesList.length; i++) {
		Th = document.createElement('th');
		Th.innerHTML = prodsFeaturesList[i].Name;
		R.appendChild(Th);
	}
	Th = document.createElement('th');
	Th.innerHTML = headerTexts.Quantity;
	R.appendChild(Th);

	tblTH.appendChild(R);

	addFeatureRow(0);
}
function addFeatureRow(idx) {
	var tblTB = $('tblFeatsTB');
	var R, Td, S, I;

	R = document.createElement('tr');
	Td = document.createElement('td');
	S = document.createElement('select');
	I = document.createElement('input');

	R = document.createElement('tr');
	R.idx = idx;
	Td.innerHTML = '<img src=\"/img/cancel.png\" id=\"imgDel_' + idx + '\" onclick=\"removeFeatureRow(' + idx + ');\" style=\"cursor:pointer;\" />';
	Td.rowSpan = 2;
	Td.style.borderBottom = '2px solid #434542';
	Td.style.borderLeft = '1px solid #ececec';
	Td.style.width = '20px';
	R.appendChild(Td);

	for(var i=0; i<prodsFeaturesList.length; i++) {
		Td = document.createElement('td');
		S = document.createElement('select');
		for(var ii=0; ii<prodsFeaturesList[i].Values.length; ii++) {
			S.options[S.options.length] = new Option(prodsFeaturesList[i].Values[ii].val, prodsFeaturesList[i].Values[ii].id);
		}
		S.id = 'featSel_' + prodsFeaturesList[i].Id + '_' + idx;
		S.idx = idx;
		S.onchange = function() { checkAvailability(this.idx); };
		Td.appendChild(S);
		R.appendChild(Td);
	}
	Td = document.createElement('td');
	I.id = 'featQta_' + idx;
	I.idx = idx;
	I.size = 10;
	I.className = 'number';
	I.onkeyup =		function() { checkValue(this.idx); checkAvailability(this.idx); };
	Td.appendChild(I);
	R.appendChild(Td);

	tblTB.appendChild(R);

	R = document.createElement('tr');
	Td = document.createElement('td');
	Td.id = 'featAvail_' + idx;
	Td.colSpan = (1 + prodsFeaturesList.length);
	Td.className = 'avail';
	Td.style.borderBottom = '2px solid #434542';
	R.appendChild(Td);

	tblTB.appendChild(R);

	nextFeatIdx++;
	checkAvailability(idx);
}
function checkAvailability(idx) {
	var feats = '|';
	if(prodsFeaturesList.length > 0) {
		for(var i=0; i<prodsFeaturesList.length; i++) {
			feats += prodsFeaturesList[i].Id + '=' + $F('featSel_' + prodsFeaturesList[i].Id + '_' + idx) + '|';
		}
	}
	var avails = jsonObjAvail.CheckProductAvailability(prodId, feats);
	var qta = $F('featQta_' + idx);

	var msg = "";
    if(isNaN(parseInt(qta))) {
        msg = availabilityMessages.NoQta;
    }
    else {
	    if(avails <= 0) {
	        if(prodOrderedOnlyIfAvail)
	            msg = availabilityMessages.OnlyIfAvail;
		    else if(prodDiscounted)
			    msg = availabilityDiscountedMessages.None;
		    else
		    {
		        if(suppId != null)
		        {
			        var eta = jsonObjSubOrd.GetProdEta(suppId, prodId, feats);
    		        if(eta && eta.length > 0)
			            msg = availabilityMessages.ETA.replace('{d}', eta);
    		        else
			            msg = availabilityMessages.None.replace('{d}', orderdays);
		        }
		        else
    			    msg = availabilityMessages.None.replace('{d}', orderdays);
		    }
	    }
	    else if(avails < qta) {
	        if(prodOrderedOnlyIfAvail)
	            msg = availabilityMessages.OnlyIfAvailMore.replace('{q}', avails);
		    else if(prodDiscounted)
			    msg = availabilityDiscountedMessages.None;
		    else
		    {
			    msg = availabilityMessages.More.replace('{q}', avails);
			    msg = msg.replace('{d}', orderdays);
		    }
	    }
	    else {
		    msg = availabilityMessages.Immediate;
	    }
	}
	$('featAvail_' + idx).innerHTML = msg;
}
function checkValue(idx) {
	if($F('featQta_' + idx).length > 0) {
		var q = parseInt($F('featQta_' + idx));
		if(isNaN(q))
			$('featQta_' + idx).value = "";
		else
			$('featQta_' + idx).value = q;
	}
}
function removeFeatureRow(idx) {
	var tbl = $('tblFeats');
	if(tbl.rows.length == 3) {
		$('featQta_' + idx).value = "";
		$('featSel_' + prodsFeaturesList[0].Id + '_' + idx).selectedIndex = 0;
	}
	else {
		var rowid = getRowId(idx);
		tbl.deleteRow(rowid);
		tbl.deleteRow(rowid);
		nextFeatIdx--;
	}
}
function getRowId(idx) {
	var tbl = $('tblFeats');
	for(var i=0; i<tbl.rows.length; i++) {
		if(tbl.rows[i].idx == idx) return i;
	}
	return null;
}

function popolaPartsFeatures() {
	var tblTH = $('tblFeatsTH');
	var tblTB = $('tblFeatsTB');
	var n = tblTH.rows.length;
	while(n>0) { n--; tblTH.deleteRow(n); tblTB.deleteRow(n); }
	var R, Th;

	R = document.createElement('tr');
	Th = document.createElement('th');
	R.appendChild(Th);

	for(var i=0; i<prodsPartsList.length; i++) {
		Th = document.createElement('th');
		Th.innerHTML = prodsPartsList[i].Name;
		R.appendChild(Th);
	}
	Th = document.createElement('th');
	Th.innerHTML = headerTexts.Quantity;
	R.appendChild(Th);

	tblTH.appendChild(R);

	addPartFeatureRow(0);
}
function addPartFeatureRow(idx) {
	var tblTB = $('tblFeatsTB');
	var R, Td, S, I;

	R = document.createElement('tr');
	Td = document.createElement('td');
	S = document.createElement('select');
	I = document.createElement('input');

	R = document.createElement('tr');
	R.idx = idx;
	Td.innerHTML = '<img src=\"/img/cancel.png\" id=\"imgDel_' + idx + '\" onclick=\"removePartFeatureRow(' + idx + ');\" style=\"cursor:pointer;\" />';
	Td.rowSpan = 2;
	Td.style.borderBottom = '2px solid #434542';
	Td.style.borderLeft = '1px solid #ececec';
	R.appendChild(Td);

	for(var i=0; i<prodsPartsList.length; i++) {
		Td = document.createElement('td');
		Els = new Array();
		for(var ii=0; ii<prodsFeaturesList.length; ii++) {
			if(prodsFeaturesList[ii].ProdId != prodsPartsList[i].Id) continue;

			Els.push(document.createTextNode(prodsFeaturesList[ii].Name+':'));

			S = document.createElement('select');
			for(var iii=0; iii<prodsFeaturesList[ii].Values.length; iii++) {
				S.options[S.options.length] = new Option(prodsFeaturesList[ii].Values[iii].val, prodsFeaturesList[ii].Values[iii].id);
			}
			S.id = 'featSel_' + prodsPartsList[i].Id + '_' + prodsFeaturesList[ii].Id + '_' + idx;
			S.idx = idx;
			S.onchange = function() { checkPartAvailability(this.idx); };

			Els.push(S);
		}
		for(var p=0; p<Els.length; p++) {
			if(Object.isUndefined(Els[p].tagName) && p > 0)	Td.appendChild(document.createElement('br'));
			Td.appendChild(Els[p]);
			Td.appendChild(document.createElement('br'));
		}
		R.appendChild(Td);
	}
	Td = document.createElement('td');
	I.id = 'featQta_' + idx;
	I.idx = idx;
	I.size = 10;
	I.className = 'number';
	I.onkeyup =		function() { checkValue(this.idx); checkPartAvailability(this.idx); };
	Td.appendChild(I);
	R.appendChild(Td);

	tblTB.appendChild(R);

	R = document.createElement('tr');
	Td = document.createElement('td');
	Td.id = 'featAvail_' + idx;
	Td.colSpan = (prodsPartsList.length + 1);
	Td.className = 'avail';
	Td.style.borderBottom = '2px solid #434542';
	R.appendChild(Td);

	tblTB.appendChild(R);

	nextFeatIdx++;
	checkPartAvailability(idx)
}
function checkPartAvailability(idx) {
	var feats;
	var avail = new Number(), avails = new Array();
	if(prodsPartsList.length == 0) return false;
	if(prodsFeaturesList.length == 0) return false;

	for(var p=0; p<prodsPartsList.length; p++) {
		feats = '|';
		for(var i=0; i<prodsFeaturesList.length; i++) {
			if(prodsFeaturesList[i].ProdId != prodsPartsList[p].Id) continue;
			feats += prodsFeaturesList[i].Id + '=' + $F('featSel_' + prodsPartsList[p].Id + '_' + prodsFeaturesList[i].Id + '_' + idx) + '|';
		}
		avails.push(jsonObjAvail.CheckProductAvailability(prodsPartsList[p].Id, feats));
	}
	for(var a=0; a<avails.length; a++)
		if(avails[a] > avail)
			avail = avails[a];
	for(var a=0; a<avails.length; a++)
		if(avails[a] < avail)
			avail = avails[a];
	var qta = $F('featQta_' + idx);

	var msg = "";
    if(isNaN(parseInt(qta))) {
        msg = availabilityMessages.NoQta;
    }
    else {
	    if(avail <= 0) {
	        if(prodOrderedOnlyIfAvail)
	            msg = availabilityMessages.OnlyIfAvail;
		    else if(prodDiscounted)
			    msg = availabilityDiscountedMessages;
		    else
		    {
			    msg = availabilityMessages.None;
			    msg = availabilityMessages.None.replace('{d}', orderdays);
		    }
	    }
	    else if(avail < qta) {
	        if(prodOrderedOnlyIfAvail)
	            msg = availabilityMessages.OnlyIfAvailMore.replace('{q}', avails);
		    else if(prodDiscounted)
			    msg = availabilityDiscountedMessages;
		    else
		    {
			    msg = availabilityMessages.More.replace('{q}', avail);
			    msg = msg.replace('{d}', orderdays);
		    }
	    }
	    else {
		    msg = availabilityMessages.Immediate;
	    }
    }
	$('featAvail_' + idx).innerHTML = msg;
}
function removePartFeatureRow(idx) {
	var tbl = $('tblFeats');
	if(tbl.rows.length == 3) {
		$('featQta_' + idx).value = "";
		for(var p=0; p<prodsPartsList.length; p++) {
			for(var i=0; i<prodsFeaturesList.length; i++) {
				if(prodsFeaturesList[i].ProdId != prodsPartsList[p].Id) continue;
				$('featSel_' + prodsPartsList[p].Id + '_' + prodsFeaturesList[i].Id + '_' + idx).selectedIndex = 0;
			}
		}
	}
	else {
		var rowid = getRowId(idx);
		tbl.deleteRow(rowid);
		tbl.deleteRow(rowid);
	}
}

function addToCart() {
	_prepareCaddie();
	var tblTB = $('tblFeatsTB');
	var isAdded = false;
	var checkSimpleQuantity = true;
	var err = "";
	if(isComposed) {
		var qtas = $$('input.number');
		for(var i=0; i<qtas.length; i++) {
			if(qtas[i].id.indexOf('featQta_') != 0) continue;
			if(isNaN(parseInt($F(qtas[i]))) || parseInt($F(qtas[i])) <= 0) continue;

			var idx = parseInt(qtas[i].id.substr((qtas[i].id.length - 1)))
			var pValues = new Array();
			var pIds = new Array();
			for(var p=0; p<prodsPartsList.length; p++) {
				var featvals = '|';
				for(var f=0; f<prodsFeaturesList.length; f++) {
					if(prodsFeaturesList[f].ProdId != prodsPartsList[p].Id) continue;
					featvals += prodsFeaturesList[f].Id + '=' + $F('featSel_' + prodsPartsList[p].Id + '_' + prodsFeaturesList[f].Id + '_' + idx) + '|';
				}
                if(prodOrderedOnlyIfAvail)
	            {
					var avails = jsonObjAvail.CheckProductAvailability(prodsPartsList[p].Id, featvals);
					avails = avails-$F(qtas[i]);
					if(avails<0)
					{
						err = availabilityMessages.OnlyIfAvail;
						break;
					}
					else
						err="";
				}
				pIds.push(parseInt(prodsPartsList[p].Id));
				pValues.push(featvals);
			}
            if(err=="")
            {
			    try { 
				    jsonObjCaddie.addToCartFeaturesComposed(prodId, parseInt($F(qtas[i])), pIds, pValues); 
				    isAdded = true;
			    }
			    catch(e) { err = e.message; isAdded = false; break; }
			}
		}
	}
	else {
		if(isFeatured) {
			var qtas = $$('input.number');
			for(var i=0; i<qtas.length; i++) {
				if(qtas[i].id.indexOf('featQta_') != 0) continue;
				if(isNaN(parseInt($F(qtas[i]))) || parseInt($F(qtas[i])) <= 0) continue;

				var idx = parseInt(qtas[i].id.substr((qtas[i].id.length - 1)))
				var featvals = '|';
				for(var f=0; f<prodsFeaturesList.length; f++) {
					featvals += prodsFeaturesList[f].Id + '=' + $F('featSel_' + prodsFeaturesList[f].Id + '_' + idx) + '|';
				}
	            if(prodOrderedOnlyIfAvail)
	            {
					var avails = jsonObjAvail.CheckProductAvailability(prodId, featvals);
					avails = avails-$F(qtas[i]);
					if(avails<0)
						err = availabilityMessages.OnlyIfAvail;
					else
						err="";
				}
				else if(prodDiscounted)
				{
					var avails = jsonObjAvail.CheckProductAvailability(prodId, featvals);
					avails = avails-$F(qtas[i]);
					if(avails<=0)
						err = availabilityDiscountedMessages.None.replace("<br />", "\r\n").replace("<br />", "\r\n");
					else
						err="";
				}
				if(err=="")
				{
					try { 
						jsonObjCaddie.addToCartFeaturesSimple(prodId, $F(qtas[i]), featvals);
						isAdded = true;
					}
					catch(e) { err = e.message; isAdded = false; break; }
				}
			}
		}
		else {
			if(!isNaN(parseInt($F('featQta_0'))) && parseInt($F('featQta_0')) > 0) {
				var avails = jsonObjAvail.CheckProductAvailability(prodId, '|');
				avails = avails-parseInt($F('featQta_0'));
				if(avails<0) {
    	            if(prodOrderedOnlyIfAvail)
						err = availabilityMessages.OnlyIfAvail;
					else if(prodDiscounted)
						err = availabilityDiscountedMessages.None.replace("<br />", "\r\n").replace("<br />", "\r\n");
					else
						err = "";
				}
				else
					err="";
				if(err=="")
				{
					try { 
						checkSimpleQuantity = jsonObjCaddie.checkQuantityNoFeatures(prodId, parseInt($F('featQta_0')));
					}
					catch(e) { err = e.message; isAdded = false; }
					if(err=="")
					{
						try { 
							jsonObjCaddie.addToCartNoFeatures(prodId, parseInt($F('featQta_0')));
							isAdded = true;
						}
						catch(e) { err = e.message; isAdded = false; }
					}
				}
			}
		}
	}
	if(err!="") alert(err);
	if(isAdded)	handleAddToCart(checkSimpleQuantity);
}
function handleAddToCart(checkSimpleQuantity) {
	if(!checkSimpleQuantity) {
		alert(caddieMessages.AlreadyPresent);
		return;
	}
	alert(caddieMessages.Success);
	if(Object.isUndefined(window.parent) || window.parent == null)
		refreshCP();
	else {
		if(!Object.isUndefined(cartSpan) && cartSpan != null && cartSpan.length > 0) window.parent.refreshCP(cartSpan);
		else	window.parent.refreshCP();
	}
	Element.show('GoToCart');
}
function _prepareCaddie() {
	var tblTB = $('tblFeatsTB');
	var rowsInvalid = new Array();
	if(isComposed) {
		var qtas = $$('input.number');
		var prodIdsToCart = new Array();
		var featValsToCart = new Array();
		for(var i=0; i<qtas.length; i++) {
			if(qtas[i].id.indexOf('featQta_') != 0) continue;
			var pts = qtas[i].id.split('_');
			if(isNaN(parseInt($F(qtas[i]))) || parseInt($F(qtas[i])) <= 0) {
				var pts = qtas[i].id.split('_');
				rowsInvalid.push(pts[1]);
			}
			else {
			}
		}
		if(rowsInvalid.length == qtas.length)
			alert(caddieMessages.NoQuantity);

		rowsInvalid.each(function(x) {
			removePartFeatureRow(x);
		});
	}
	else {
		if(isFeatured) {
			var featValsToCart = new Array();
			var qtas = $$('input.number');
			for(var i=0; i<qtas.length; i++) {
				if(qtas[i].id.indexOf('featQta_') != 0) continue;
				var pts = qtas[i].id.split('_');
				if(isNaN(parseInt($F(qtas[i]))) || parseInt($F(qtas[i])) <= 0) {
					rowsInvalid.push(pts[1]);
				}
				else {
				}
			}
			if(rowsInvalid.length == qtas.length)
				alert(caddieMessages.NoQuantity);

			rowsInvalid.each(function(x) {
				removeFeatureRow(x);
			});
		}
		else {
			if(isNaN(parseInt($F('featQta_0'))) || parseInt($F('featQta_0')) <= 0) {
				alert(caddieMessages.NoQuantity);
				$('featQta_0').focus();
			}
		}
	}
}

function goToCart()
{
	window.location.href = 'carrello.aspx';
}
function goToParentCart() {
	var wp = window.parent;
	if(Object.isUndefined(wp)) return goToCart();
	wp.location.href = 'carrello.aspx';
}

var caddieProdsList = new Array();
function prodCaddie(prodId, quantity, featVals, isComposed) {
	this.ProdId = prodId;
	this.Quantity = quantity;
	this.FeatVals = featVals;
	this.IsComposed = isComposed;
	this.SubProducts = new Array();

	this.addSubProduct = function(prodId, featVals) {
		this.SubProducts.push({id: prodId, feats: featVals});
	}
}

function popolaDaCaddie() {
	var curIdx = nextFeatIdx - 1;
	for(var i=0; i<caddieProdsList.length; i++) {
		if(caddieProdsList[i].ProdId != prodId) continue;
		if(caddieProdsList[i].IsComposed) {

			if(getRowId(curIdx) == null) addPartFeatureRow(curIdx);

			for(var sp=0; sp<caddieProdsList[i].SubProducts.length; sp++) {
				var feats = caddieProdsList[i].SubProducts[sp].feats.split('|');
				for(var pf=0; pf<feats.length; pf++) {
					if(feats[pf].length <= 0) continue;
					var fidsvals = feats[pf].split('=');
					$('featSel_' + caddieProdsList[i].SubProducts[sp].id + '_' + fidsvals[0] + '_' + curIdx).value = fidsvals[1];
				}
			}
			$('featQta_' + curIdx).value = caddieProdsList[i].Quantity;
			curIdx++;
		}
		else {
			if(prodsFeaturesList.length > 0) {

				if(getRowId(curIdx) == null) addFeatureRow(curIdx);

				var feats = caddieProdsList[i].FeatVals.split('|');
				for(var pf=0; pf<feats.length; pf++) {
					if(feats[pf].length <= 0) continue;
					var fidsvals = feats[pf].split('=');
					$('featSel_' + fidsvals[0] + '_' + curIdx).value = fidsvals[1];
				}
				$('featQta_' + curIdx).value = caddieProdsList[i].Quantity;
				curIdx++;
			}
			else {
				$('featQta_0').value = caddieProdsList[i].Quantity;
			}
		}
	}
	Element.show('GoToCart');
}
var allFeatsDispIsLoaded = false;
function toggleAllFeatsDisp() {
	if($('cntDispFeats').visible())
		hideAllFeatsDisp();
	else
		showAllFeatsDisp();
}
function showAllFeatsDisp() {
	if(prodsFeaturesList.length == 0) return false;
	if($('cntFriendAdvice').visible()) hideFriendAdvice();

	$('ctl00_plcMid_iAvail').src = $('ctl00_plcMid_iAvail').src.replace('_off','_on');
	if(!allFeatsDispIsLoaded) {
		var tblTH = $('thDispFeats');
		var tblTB = $('tbDispFeats');
		var n = tblTH.rows.length;
		while(n>0) { n--; tblTH.deleteRow(n); tblTB.deleteRow(n); }

		window.setTimeout('parseAllFeatsDisp()', 10);
	}
	else {
		Effect.SlideDown('cntDispFeats', { duration: 1.0 });
		$('tblFeatDisp').className += " fsetBG";
	}
}
function parseAllFeatsDisp() {
	var Tb = $('tbDispFeats');

	var R, Th, Td;
	R = document.createElement('tr');
	Th = document.createElement('th');
	Td = document.createElement('td');

	if(isComposed) {
		for(var p=0; p<prodsPartsList.length; p++) {
			var feats = new Array();
			for(var i=0; i<prodsFeaturesList.length; i++) {
				if(prodsFeaturesList[i].ProdId != prodsPartsList[p].Id) continue;
				feats.push(prodsFeaturesList[i]);
			}
			var colSpan = 0;
			for(var x=0; x<feats.length; x++) {
				if(x == 0) colSpan = 2;
				else colSpan += feats[x].Values.length;
			}
			R = document.createElement('tr');
			Th = document.createElement('th');
			Th.colSpan = colSpan;
			Th.innerHTML = prodsPartsList[p].Name;
			R.appendChild(Th);
			Tb.appendChild(R);
			_wrtiteAllFeatsDipsRows(prodsPartsList[p].Id, feats);
		}
	}
	else {
		_wrtiteAllFeatsDipsRows(prodId, prodsFeaturesList);
	}

	Effect.SlideDown('cntDispFeats', { duration: 1.0 });
	$('tblFeatDisp').className += " fsetBG";
	allFeatsDispIsLoaded = true;
}
function _wrtiteAllFeatsDipsRows(pId, feats) {
	var Tb = $('tbDispFeats');
	var R, Th, Td;
	R = document.createElement('tr');
	Th = document.createElement('th');
	Td = document.createElement('td');
	var showDaysNote = false;
	var featsToCheck = new Array();

	if(feats.length > 1) {
		var maxFeatValsIdx = 0, maxFeatValsLen = 0;
		for(var f=0; f<feats.length; f++) {
			if(feats[f].Values.length > maxFeatValsLen) {
				maxFeatValsLen = feats[f].Values.length;
				maxFeatValsIdx = f;
			}
		}
		var featsOrdered = new Array();
		featsOrdered.push(feats[maxFeatValsIdx]);
		for(var f=0; f<feats.length; f++) {
			if(f != maxFeatValsIdx)
				featsOrdered.push(feats[f]);
		}
		feats = featsOrdered;

		Th.innerHTML = feats[0].Name;
		R.appendChild(Th);
		for(var f=1; f<feats.length; f++) {
			for(var fv=0; fv<feats[f].Values.length; fv++) {
				Th = document.createElement('th');
				Th.innerHTML = feats[f].Name + ' ' + feats[f].Values[fv].val;
				R.appendChild(Th);
			}
		}
		Tb.appendChild(R);
		for(var x=0; x<feats[0].Values.length; x++) {
			var id0 = 0, val0 = '';
			id0 = feats[0].Id;
			val0 = feats[0].Values[x].id;
			for(var t=0; t<feats[1].Values.length; t++) {
				var sfeats = '';
				if(feats[1].Id > id0)
					sfeats = '|'+id0+'='+val0+'|'+feats[1].Id+'='+feats[1].Values[t].id+'|';
				else
					sfeats = '|'+feats[1].Id+'='+feats[1].Values[t].id+'|'+id0+'='+val0+'|';
				featsToCheck.push(sfeats);
			}
		}
		var avails = jsonObjAvail.CheckProductAvailabilities(pId, featsToCheck);

		var xt = 0;
		for(var x=0; x<feats[0].Values.length; x++) {
			R = document.createElement('tr');
			Th = document.createElement('td');
			Th.innerHTML = feats[0].Values[x].val;
			R.appendChild(Th);

			for(var t=0; t<feats[1].Values.length; t++) {
				var avail = avails[xt];
				Td = document.createElement('td');
				if(avail <= 0) showDaysNote = true;
				Td.innerHTML = availToMessage(avail);
				R.appendChild(Td);
				xt++;
			}
			Tb.appendChild(R);
		}
	}
	else {
		Th.innerHTML = feats[0].Name;
		R.appendChild(Th);
		Th = document.createElement('th');
		Th.innerHTML = headerTexts.Availability;
		R.appendChild(Th);
		Tb.appendChild(R);

		for(var f=0; f<feats[0].Values.length; f++) {
			featsToCheck.push('|'+feats[0].Id+'='+feats[0].Values[f].id+'|');
		}
		var avails = jsonObjAvail.CheckProductAvailabilities(pId, featsToCheck);
		for(var f=0; f<feats[0].Values.length; f++) {
			R = document.createElement('tr');
			Th = document.createElement('th');
			Th.innerHTML = feats[0].Values[f].val;
			R.appendChild(Th);
			Td	= document.createElement('td');
			if(avails[f] <= 0) showDaysNote = true;
			Td.innerHTML = availToMessage(avails[f]);
			R.appendChild(Td);
			Tb.appendChild(R);
		}
	}
	if(showDaysNote) Element.show('layDaysNote');
}
function hideAllFeatsDisp() {
	$('ctl00_plcMid_iAvail').src = $('ctl00_plcMid_iAvail').src.replace('_on','_off');
	Effect.SlideUp('cntDispFeats', { duration: 0.5 });
	$('tblFeatDisp').className = "tblFriendAdvice";
}
function availToMessage(avail) {
//	if(avail > 0)	return availabilityMessages.Products.replace('{n}', avail);
	if(avail > 0)	return availabilityMessages.Immediate1;
	else				return availabilityMessages.Days.replace('{d}', orderdays);
}

function toggleFriendAdvice() {
	if($('cntFriendAdvice').visible())
		hideFriendAdvice();
	else
		showFriendAdvice();
}
function showFriendAdvice() {
	if($('cntDispFeats') && $('cntDispFeats').visible()) hideAllFeatsDisp();

	$('ctl00_plcMid_iFriendAdvise').src = $('ctl00_plcMid_iFriendAdvise').src.replace('_off','_on');
	Effect.SlideDown('cntFriendAdvice', { duration: 1.0 });
	$('tbFAName').value = "";
	$('tbFAEmail').value = "";
	$('tbFAFEmail').value = "";
	$('tblFriendAdvice').className += " fsetBG";
}
function hideFriendAdvice() {
	$('ctl00_plcMid_iFriendAdvise').src = $('ctl00_plcMid_iFriendAdvise').src.replace('_on','_off');
	Effect.SlideUp('cntFriendAdvice', { duration: 0.5 });
	$('tblFriendAdvice').className = "tblFriendAdvice";
}

function showSizeChart() {
	popupWindow("/taglie_pop.aspx", "tagliePop", 850, 560, 1, 0);
}

function sendFriendAdvice(c0, c2) {
	var err = null;
	var name = $F('tbFAName');
	var email = $F('tbFAEmail');
	var femail = $F('tbFAFEmail');
	var msg = $F('tbFAMsg');

	if(name.length == 0)
		err = friendAdviceMessages.NoName;
	if(err == null && email.length == 0)
		err = friendAdviceMessages.NoEmail;
	if(err == null && !isEmail(email))
		err = friendAdviceMessages.InvalidEmail;
	if(err == null && femail.length == 0)
		err = friendAdviceMessages.NoFriendEmail;
	if(err == null && !isEmail(femail))
		err = friendAdviceMessages.InvalidEmail;

	if(err != null) {
		alert(err);
		return false;
	}
	if(jsonObjAvail.SendFriendAdvice(name, email, msg, femail, prodId, c0, c2)) {
		alert(friendAdviceMessages.Ok);
		$('tbFAName').value = "";
		$('tbFAEmail').value = "";
		$('tbFAFEmail').value = "";
		hideFriendAdvice();
	}
	else
		alert(friendAdviceMessages.Ko);
}

function shareFacebook() {
//	var u=location.href;
	var u=location.href.substr(0, (location.href.indexOf('t=') - 1));
	var t=document.title;
	window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer',null);
	return false;
}

addEvent(window,"load",function(){addEvent(document.body,"click",function(e){
	var o,g,k;
	try
	{
		if(!(e=e||event))return;
		if(!(o=e.target||e.srcElement))return;
		for(;;)
		{
			if(!(o=o.parentElement||o.parentNode))return;
			if(o.id&&o.id=="lightview")break;
		}
		if(!(o=$("lightviewContent")))return;
		if(Lightview.view.rel.indexOf("gallery["))return;
		g=parseInt(Lightview.view.rel.substr("gallery[".length),10);
		if(!g)return;
		//[WIP]
	}
	catch(E){}
})});
