function show (obj_id)
 {
 	var div_obj = document.getElementById(obj_id);
	if (div_obj == null) return;
	div_obj.style.display = "";
	return;
 }
 
function hide (obj_id)
 {
 	var div_obj = document.getElementById(obj_id);
	if (div_obj == null) return;
	div_obj.style.display = "none";
	return;
 }
 
//Replace all . with , from DWWE corespond is NumberFormat in scripts/util.js
function nrValidate(field)
 {
	var nr_obj = field.value;
	if (!nr_obj) return;
	var iChars = "0123456789.,";
	var new_value = "";
	var tmp_chr = "";
	var onepnt = false;
	if (nr_obj.charAt(0) == "." || nr_obj.charAt(0) == ",")
		new_value = "0";
	for (var i=0; i<nr_obj.length; i++)
	{
		tmp_chr = nr_obj.charAt(i);
		if (iChars.indexOf(tmp_chr) != -1)
			if (tmp_chr != "." && tmp_chr != ",")
				new_value += tmp_chr
			else
				if (!onepnt)
				{
					new_value += ",";
					onepnt = true;
				};
	};
	field.value = new_value;
	return;
 };

function onBlurArticleFromBasket(iIndex)
{
	var oQty = document.forms["frmBasket"].elements["txtQuantity_"+iIndex];
	var oPrc = document.forms["frmBasket"].elements["txtPrice_"+iIndex];
	var oTtl = document.forms["frmBasket"].elements["txtTotal_"+iIndex];

	var dQty = parseFloat(replaceChar(oQty.value, ",", "."));
	var oRow = document.getElementById("basket_row_"+iIndex);
	var dTotal = 0;
	if(dQty <= 0)
	{
		document.forms["frmBasket"].elements["txtState_"+iIndex].value = -1;
		oRow.style.backgroundColor = "#ffcccc";
	}
	else
	{
		document.forms["frmBasket"].elements["txtState_"+iIndex].value = 1;
		if(iIndex%2)
		{
			oRow.style.backgroundColor = "#DDDDDD";
		}
		else
		{
			oRow.style.backgroundColor = "#FFFFFF";
		};
	}
	var dPrc;
	if(typeof(oPrc) != "undefined")
	{
		dPrc = parseFloat(parseEuroToFloat(oPrc.value));
	}
	else
	{
		dPrc = 0;
	}
	
	if(!isNaN(dPrc) && dPrc>0 && typeof(oTtl) != "undefined")
	{
		oTtl.value = parseFloatToEuro(dQty*dPrc);
	};
	if (typeof(document.forms["frmBasket"].elements["txtSuperTotal"])!="undefined")
	{
		dTotal = sumElementsById("txtTotal");
		document.forms["frmBasket"].elements["txtTotalImponibile"].value = parseFloatToEuro(dTotal);
		document.forms["frmBasket"].elements["txtTotalIVA"].value = parseFloatToEuro(dTotal*0.20);
		document.forms["frmBasket"].elements["txtSuperTotal"].value = parseFloatToEuro(dTotal*1.20);
	};
	
	BlockPage();
	getValFromASPFunction("ChangeProductFromBasket", "\""+document.forms["frmBasket"].elements["txtID_"+iIndex].value+"\","+dQty);
	unBlockPage();
}

function BlockPage()
{
/*
	 objMainTable = document.getElementById("id_mainTable");
	 objOverImage = document.getElementById("id_imgOverEdit");
	 objOverImage.style.width  = objMainTable.clientWidth - 2;
	 objOverImage.style.height = objMainTable.clientHeight - 62;*/

	document.body.style.cursor="wait";
	oPleaseWaitImage = document.getElementById("id_imgPW");
	oPleaseWaitImage.style.width = document.body.clientWidth;
	oPleaseWaitImage.style.height = document.body.clientHeight;
//	alert("please wait !");
}

function unBlockPage()
{
	document.body.style.cursor="auto";
	oPleaseWaitImage = document.getElementById("id_imgPW");
	oPleaseWaitImage.style.width = 1;
	oPleaseWaitImage.style.height = 1;
}

function onClickDelete(iIndex)
{
	document.forms["frmBasket"].elements["txtQuantity_"+iIndex].value = 0;
	onBlurArticleFromBasket(iIndex);
}

function sumElementsById(sElementId)
{
	var dTotal = 0;
	var dSubTotal = 0;
	var oInput = document.getElementsByTagName("input");
	for(var i in oInput)
	{
//		alert("name:"+oInput[i].name+"\ntype:"+oInput[i].type + "\nid:" + oInput[i].id + "\nvalue:"+oInput[i].value);
		if(oInput[i].type == "text" && oInput[i].id.substr(0, sElementId.length) == sElementId)
		{
			dSubTotal = parseFloat(parseEuroToFloat(oInput[i].value));
			if(!isNaN(dSubTotal))
			{
				dTotal += parseFloat(parseEuroToFloat(oInput[i].value));
			}
		}
	}
	return(dTotal);
}

function jsRound(dNumber, iDecimals)
{
	dNumber = replaceChar(dNumber, ",", ".");
	var sNumber = Math.round(dNumber * Math.pow(10, iDecimals)).toString(10);
	if(sNumber.length == 1)
	{
		sNumber = "00"+sNumber;
	};
	if(sNumber.length == 2)
	{
		sNumber = "0"+sNumber;
	};
	sNumber = sNumber.substr(0, sNumber.length - iDecimals) + "." + sNumber.substr(sNumber.length - iDecimals, iDecimals);
	return(sNumber);
}

function parseFloatToEuro(dNumber)
{
	var sNumber = jsRound(dNumber, 2).toString(10);
//add decimal separator:
	sReturn = ","+sNumber.substr(sNumber.length-2, 2);
	sNumber = sNumber.substr(0, sNumber.length-3);
//add 1000 separator:
	if(sNumber.length > 3)
	{
		for(i=sNumber.length; i>0; i-=3)
		{
			if(sReturn.substr(0,1)==",")
			{
				sReturn = sNumber.substr(sNumber.length-3, 3)+sReturn;
			}
			else
			{
				sReturn = sNumber.substr(sNumber.length-3, 3)+"."+sReturn;
			};
			sNumber = sNumber.substr(0, sNumber.length-3);
		}
	}
	else
	{
		sReturn = sNumber + sReturn;
	}
//add euro sign:
	sReturn = String.fromCharCode(8364, 160) + sReturn;
	return(sReturn);
}

function parseEuroToFloat(sNumber)
{
	var sReturn = "";
	for(var i=0; i<sNumber.length; i++)
	{
		switch(sNumber.charCodeAt(i))
		{
		case 48:	//0
		case 49:	//1
		case 50:	//2
		case 51:	//3
		case 52:	//4
		case 53:	//5
		case 54:	//6
		case 55:	//7
		case 56:	//8
		case 57:	//9
			sReturn += String.fromCharCode(sNumber.charCodeAt(i));
			break;
		case 44:	//,
			sReturn += ".";
			break;
		case 46:	//.
			//ignore !
		};
	};
	if(sReturn.length > 0)
	{
		return(sReturn);
	}
	else
	{
		return(0);
	};
}

function replaceChar(sText, cCharToFind, cCharToReplace)
{
	for(var i=0; i<sText.length; i++)
	{
		if(sText.charCodeAt(i) == cCharToFind.charCodeAt(0))
		{
			sText = sText.substr(0, i)+cCharToReplace+sText.substr(i+1, sText.length-i);
		}
	}
	return(sText);
}

/*to use:
<a href="javascript:show('sh_text'); hide('sh_textr'); " id="sh_textr" style="text-decoration: none;">+ Show text</a>
<div id="sh_text"  style="display:none" >
<a href="javascript:hide('sh_text'); show('sh_textr');" style="text-decoration: none;">- Hidde text</a>
<br />This text was hidden
</div>

*/
function ChangeSRC(sId, sNewSRC)
{
	var oImage = document.getElementById(sId);
	oImage.src = sNewSRC;
}

////////////////////////////////////////////////////////////////////////////////
//////////AJAX PART
////////////////////////////////////////////////////////////////////////////////

function createRequestObject()
{
	var ro;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer")
	{
		ro = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		ro = new XMLHttpRequest();
	}
	return ro;
}

function getValFromASPFunction(sFunctionName, sParametersList)
{
	var uri = "/estore/includes/callBack.asp?Function=" + sFunctionName + "&Parameters=" + sParametersList;
//for debug:
//alert(uri);
//window.open(uri,'_blank','toolbar=yes, location=yes, resizable=yes')
///*
	var oXMLHTTP = createRequestObject();
	oXMLHTTP.open( "POST", uri, true );
//	oXMLHTTP.onreadystatechange = changeFunction;
	oXMLHTTP.send( "");
	if(oXMLHTTP.readyState == 4)
	{
		var response = oXMLHTTP.responseText;
		return response;
	};
	oXMLHTTP = null;
//*/
}

function OpenImageWindow(sImageTitle, sImageSRC)
{
	window.open("image.asp?iT="+sImageTitle+"&iS="+sImageSRC, "_blank", "toolbar=no, location=no, resizable=no, scrollbar=auto");
}