	String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
	Number.prototype.roundTo = roundTo; 
	
	
	function EnableMaintenanceForEducational()
	{
		if(!document.frmProduct.educational[2].checked){
			document.frmProduct.educational_qta_maintenance.value = 0;
			document.getElementById('educational_maintenance').innerHTML = "----";
			document.frmProduct.educational[2].disabled = true;
		}
		
		if(document.frmProduct.educational[0].checked || document.frmProduct.educational[1].checked){
			document.frmProduct.educational[2].disabled = false;
		}else{
			document.frmProduct.educational_qta_maintenance.value = 0;
			document.getElementById('educational_maintenance').innerHTML = "----";
			
			document.frmProduct.educational[2].checked = false;
			document.frmProduct.educational[2].disabled = true;
		}
	}
	
	
	function BuildEducationalCart()
	{
		/*************************************************************
		 * Shipping costs are charged only on the first item.        *
		 * In this way shipping costs are charged only once to cart. *
		 *************************************************************/
		
		try{			
		
			var itemCnt = 1;
			var postVar = "";
			var iTotalAmount = 0;
			
			// locale
			postVar += "<input type=\"hidden\" name=\"lc\" value=\"" + document.frmProduct.locale.value + "\">";

			//# -- selectedItem[desc|val]
			var selectedItem;
	
			for (i=0; i<=document.frmProduct.educational.length -1; i++){
				if (document.frmProduct.educational[i].checked) {

					switch (i)
					{
						case 0:	// T-LAB Pro 5.5 first license
							selectedItem = document.frmProduct.educational[i].value.split("|");						
							postVar += "<input type=\"hidden\" name=\"item_name_" + itemCnt + "\" value=\"" + selectedItem[0] + "\">";
							postVar += "<input type=\"hidden\" name=\"amount_" + itemCnt + "\" value=\"" + selectedItem[1] + "\">";
							postVar += "<input type=\"hidden\" name=\"quantity_" + itemCnt + "\" value=\"1\">";
							iTotalAmount += parseFloat(selectedItem[1]);
							itemCnt += 1;
						  	break;
	
						case 1: // T-LAB Pro 5.5 additional license
							var qta = parseInt(document.frmProduct.educational_qta_add_license.value);
						  	selectedItem = document.frmProduct.educational[i].value.split("|");						
							postVar += "<input type=\"hidden\" name=\"item_name_" + itemCnt + "\" value=\"" + selectedItem[0] + "\">";
							postVar += "<input type=\"hidden\" name=\"amount_" + itemCnt + "\" value=\"" + selectedItem[1] + "\">";
							postVar += "<input type=\"hidden\" name=\"quantity_" + itemCnt + "\" value=\"" + qta + "\">";
							iTotalAmount += parseFloat(selectedItem[1]*qta);
							itemCnt += 1;
						  	break;
	
						case 2: // Maintenance
						  	selectedItem = document.frmProduct.educational[i].value.split("|");						
							var maintenance = GetEducationalMaintenance(selectedItem[1]);
							postVar += "<input type=\"hidden\" name=\"item_name_" + itemCnt + "\" value=\"" + selectedItem[0] + "\">";
							postVar += "<input type=\"hidden\" name=\"amount_" + itemCnt + "\" value=\"" + maintenance + "\">";
							postVar += "<input type=\"hidden\" name=\"quantity_" + itemCnt + "\" value=\"1\">";
							iTotalAmount += parseFloat(maintenance);
							itemCnt += 1;
						  	break; 
						
						/*
						case 3: // Backup CD shipping fee					
						  	selectedItem = document.frmProduct.educational[i].value.split("|");						
							postVar += "<input type=\"hidden\" name=\"item_name_" + itemCnt + "\" value=\"" + selectedItem[0] + "\">";
							postVar += "<input type=\"hidden\" name=\"amount_" + itemCnt + "\" value=\"" + selectedItem[1] + "\">";
							postVar += "<input type=\"hidden\" name=\"quantity_" + itemCnt + "\" value=\"1\">";
							iTotalAmount += parseFloat(selectedItem[1]);
							itemCnt += 1;
						  	break; 
						*/
						
						case 3: // Upgrade from T-LAB Pro 5.x to 5.5
							var qta = parseInt(document.frmProduct.educational_qta_upgrade.value);
						  	selectedItem = document.frmProduct.educational[i].value.split("|");						
							postVar += "<input type=\"hidden\" name=\"item_name_" + itemCnt + "\" value=\"" + selectedItem[0] + "\">";
							postVar += "<input type=\"hidden\" name=\"amount_" + itemCnt + "\" value=\"" + selectedItem[1] + "\">";
							postVar += "<input type=\"hidden\" name=\"quantity_" + itemCnt + "\" value=\"" + qta + "\">";
							iTotalAmount += parseFloat(selectedItem[1]*qta);
							itemCnt += 1;
						  	break;
						    
						default:
					} // close switch
				} // close if	
			} // close for


			// VAT
			var iva = CalcolaIVA(iTotalAmount, document.paypal.paypal_sales_tax.value);
			document.frmProduct.vat.value = iva;
			
			document.frmProduct.educational_totalamount.value = iTotalAmount.roundTo(2);
			
			iTotalAmount += iva;		
			document.frmProduct.totalamount.value = iTotalAmount.roundTo(2);
			
			document.getElementById("CustomFields").innerHTML = postVar; 
			
		}catch(e){}
	}
	
	
	function GetEducationalMaintenance(maintenance)
	{
		var current_item;
		var educational_price = 0;
		var license_price = 0;
		
		var float_maintenance = parseFloat(0);
		var float_price = parseFloat(0);
		var maintenace_price = parseFloat(0);
		var total_price = parseFloat(0);

		if(document.frmProduct.educational[2].checked){
			document.frmProduct.educational_qta_maintenance.value = (parseInt(document.frmProduct.educational_qta_add_license.value) + parseInt(document.frmProduct.educational_qta_license.value));
		}else{
			document.frmProduct.educational_qta_maintenance.value=0;
			document.getElementById('educational_maintenance').innerHTML = "----";
			return 0;
		}
		
		if(document.frmProduct.educational[0].checked)
		{
			current_item = document.frmProduct.educational[0].value.split("|");
			educational_price = parseFloat(current_item[1]);
		}

		if(document.frmProduct.educational[1].checked)
		{
			current_item = document.frmProduct.educational[1].value.split("|");
			license_price = parseFloat(current_item[1])* parseInt(document.frmProduct.educational_qta_add_license.value);
		}
		
	    float_maintenance = parseFloat(maintenance);
	    float_price = parseFloat(educational_price+license_price);
	    	    	    
	    if (/^\d+(\.\d{1,2})?$/.test(float_price)) {
	        total_price = (Math.round(float_price * (1 + float_maintenance) * 100)) / 100;
	        maintenace_price = total_price - float_price;
	    }

	    document.getElementById('educational_maintenance').innerHTML = "" + Math.round(maintenace_price);
	    
	    //return Math.round(maintenace_price); // arrotonda all'intero pi? vicino
	    return maintenace_price.roundTo(2); // ritorna con max 2 decimali
	}