/*Price calculator*/
/*
 * $Log: calculator.js,v $
 * Revision 1.26  2006/10/13 15:04:33  Vaclav Rak
 *  * added Lotus Domino and Net.Purum
 *
 * Revision 1.25  2006/09/12 15:04:53  Vaclav Rak
 *  - fixed calculation 19 Pro, 50 SBS
 *
 * Revision 1.22  2006/05/11 07:13:31  vena
 *  - renamed products keys
 *
 * Revision 1.21  2006/05/04 12:43:58  vena
 *  - redefined price list
 *  - changed product constants according to e-store
 *  - new PriceQuote generator
 *
 * Revision 1.20  2006/04/14 10:20:28  vena
 *  - special discount feature added
 *
 * Revision 1.19  2006/04/14 08:53:22  vena
 *  - fixed SharePoint auto change value
 *
 * Revision 1.18  2006/02/28 13:23:33  vena
 *  - added sharepoint server
 *
 * Revision 1.17  2006/02/21 13:58:14  vena
 *  - fixed configuration 18 PE + 10 Server
 *
 * Revision 1.16  2006/02/16 09:48:21  vena
 *  - fixed the PDF error
 *
 * Revision 1.15  2006/02/14 11:12:52  vena
 *  - error fixed
 *    - 18 PE + 3 Server
 *   - 4 Pro + 5 SBS
 *   - 24 SBS
 *
 * Revision 1.14  2006/01/24 10:17:47  vena
 *  - fixed renewall in server plugins
 *
 * Revision 1.13  2006/01/11 11:58:10  vena
 *  - definice textu
 *
 * Revision 1.12  2006/01/11 11:46:38  vena
 *  - pridana ULIMITED EDITION
 *  - oprava linuxu nad 1000 licenci
 *
 * Revision 1.11  2006/01/11 09:52:10  vena
 *  - opraveno SMTP, maximalni cena je za 1000 licenci, vse nad je zdarma
 *
 * Revision 1.10  2005/12/09 16:18:37  Vclav Rak
 *  - oprava pri stejnem poctu Pro a SBS se nespocital Suite
 *
 * Revision 1.9  2005/12/07 13:39:23  Vclav Rak
 *  - oprava konfigurace 32 Pro, 2 Server, 40 SBS Sta.
 *
 * Revision 1.8  2005/12/05 12:46:43  Vclav Rak
 *  - opravena calculace 1200 Pro 122 Serveru vracelo spatnou cenu serveru  pridaneho k suitu
 *
 * Revision 1.7  2005/11/16 14:42:10  Vclav Rak
 *  - opravena chyba s 25ti avast SBS Suitama
 *  - sladena generace PDF
 *
 * Revision 1.5  2005/11/09 14:21:09  Vclav Rak
 *  - opraven order list, nevesel se do memory limitu u Mia
 *  - opraven kalkulator, chyba v kalkulaci Premium Suite
 *  - dodelat hack na XSL compilaci XML dokumentu
 *  - opravena znakova sada anglictiny z 1025 na spravnych 1033
 *
 * Revision 1.4  2005/10/26 11:19:11  Vclav Rak
 *  - oprava nulove ceny v PDF reportu u suite
 *
 * Revision 1.3  2005/10/26 10:50:35  Vclav Rak
 *  - oprava nulove ceny v PDF reportu
 *
 * Revision 1.2  2005/10/24 09:13:14  Vclav Rak
 *  - aktualizace calculatoru
 *
 * Revision 1.6  2005/09/01 12:14:05  Vclav Rak
 *  - oprava pocitani renewalu, chyba se projevovala tak ze PDF se sedmi  licencema server edice melo uvedenu pouze jednu, prisla na to Z.
 *
 * Revision 1.5  2005/08/10 09:45:10  Vclav Rak
 * Oprava kalkulace SBS Suitu, v momente kdy byl pocet Procek vetsi nez pocet SBS serveru, bylo navrzeno reseni vetsi pocet SBSSuite misto mensiho poctu SBS + zbyla Procka
 *
 * Revision 1.4  2005/08/09 14:01:06  Vclav Rak
 * opravena chyba v cene reporu konfigurace 10 Pro + 4 Server byla vysledna cena serveru se suitem spatne
 *
 * Revision 1.3  2005/08/08 19:53:39  Vclav Rak
 * Renewal pridan do PDF reportu, vzhled je malinko jiny nez pri nahladu v JSku
 *
 * Revision 1.2  2005/08/08 19:10:35  Vclav Rak
 * pridani renewalu do vypoctu kalkulace
 *
 */
//prelimirary

var _d = document;

_d.write('<form name="calc" action="inviopreventivo.asp"  method=post id="calc_form"><div>');
_d.write('<table cellpadding="2" width=100% cellspacing=0>');
_d.write('<tr><td colspan="2" >');

if (ResellerScript){
	_d.write("<INPUT type='hidden' name='Currency' value="+ResellerCurrency+">");
}else{
	_d.write(LBL_SELECT_CURRENCY   + GenerateSelect('Currency', new Array( 'EUR', 'EUR'), 1,'onChange="Calculate();"') );
}

_d.write('</td></tr>');
_d.write('<TR><TD>' + LBL_SELECT_MAINTENANCE);
_d.write(GenerateRadio('Maintenance', new Array('1', YEAR1, '2', YEAR2, '3', YEAR3), 1, 'onClick="Calculate();" onChange="Calculate();"'));

_d.write('</TD><TD>'+DIV_MAINTENANCE+'</TD></TR>');

_d.write(WriteTableRow(LBL_AV_PROFESSIONAL + LBL_AV_PROFESSIONAL_LICENSE + LBL_AV_PROFESSIONAL_QUESTION + LBL_AV_PROFESSIONAL_LIMITS, GenerateInput('Professional', '0'), DIV_PROFESSIONAL));
_d.write("<tr><td colspan='2' ><HR></td></tr>");

_d.write('<tr><td colspan="2" >');
_d.write('<h3>'+LBL_FILESERVER+'</h3>');
_d.write('</td></tr>');
_d.write(WriteTableRow(LBL_AV_FILESERVER 	+ "<BR>"+GenerateCheckbox('chkUseServer', '', LBL_USING_FILESERVER)+LBL_AV_FILESERVER_LICENSE , GenerateInput('cMSServer', 0), DIV_FILESERVER));
_d.write('<tr><td colspan="2" >');
var tmp = '<BR><table cellpadding="5" width=100% style="border:1px solid gray;">';
tmp += WriteTableRow(LBL_AV_EXCHANGE_SMTP +  GenerateCheckbox('chkUseExchangeSmtp', '', LBL_USING_EXCHANGE_SMTP) + LBL_AV_EXCHANGE_SMTP_LICENSE + LBL_AV_EXCHANGE_SMTP_QUESTION +  LBL_AV_EXCHANGE_SMTP_LIMITS, GenerateInput('cExchange', 0), DIV_EXCHANGESERVER);
tmp += '<tr><td colspan="2" ><HR></td></tr>';
tmp += WriteTableRow(LBL_AV_ISA 	+  GenerateCheckbox('chkUseIsa', '', LBL_USING_ISA) 	+ LBL_AV_ISA_LICENSE + LBL_AV_ISA_QUESTION +  LBL_AV_ISA_LIMITS, 	GenerateInput('cIsa', 0), DIV_ISASERVER);
tmp += '<tr><td colspan="2" ><hr></td></tr>';
tmp += WriteTableRow(LBL_AV_SMTP 	+  GenerateCheckbox('chkUseSmtp', '', LBL_USING_SMTP) 	+ LBL_AV_SMTP_LICENSE + LBL_AV_SMTP_QUESTION +  LBL_AV_SMTP_LIMITS, GenerateInput('cSmtp', 0), DIV_SMTPSERVER);

tmp += '</table>';
_d.write('<div id="lFileServer" >'+tmp+'</div>');
_d.write('</td></tr>');
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write('<tr><td colspan="2" >');
_d.write('<h3>'+LBL_SBSSERVER+'</h3>');
_d.write('</td></tr>');
_d.write(WriteTableRow(LBL_AV_STANDARD +  GenerateCheckbox('chkUseSbsStandard', '', LBL_USING_SBS_STANDARD) + LBL_AV_STANDARD_LICENSE + LBL_AV_STANDARD_QUESTION +  LBL_AV_STANDARD_LIMITS, GenerateInput('cSbsStandard', 0), DIV_STANDARDSERVER));
_d.write('<HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_PREMIUM +  GenerateCheckbox('chkUseSbsPremium', '', LBL_USING_SBS_PREMIUM) + LBL_AV_PREMIUM_LICENSE + LBL_AV_PREMIUM_QUESTION +  LBL_AV_PREMIUM_LIMITS, GenerateInput('cSbsPremium', 0), DIV_PREMIUMSERVER));
_d.write('<HR></td></tr>');
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_LINUX +  GenerateCheckbox('chkUseLinux', '', LBL_USING_LINUX) + LBL_AV_LINUX_LICENSE + LBL_AV_LINUX_QUESTION + LBL_AV_LINUX_LIMITS, GenerateInput('cLinux', 0), DIV_LINUX));
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_PDA + LBL_AV_PDA_LICENSE + LBL_AV_PDA_QUESTION + LBL_AV_PDA_LIMITS, GenerateInput('cPDA', 0), DIV_PDA));
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_KERIO + LBL_AV_KERIO_LICENSE + LBL_AV_KERIO_QUESTION + LBL_AV_KERIO_LIMITS, GenerateInput('cKerio', 0), DIV_KERIO));
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write('<tr><td colspan="2" >');
_d.write(LBL_AV_BART + '<BR>');
_d.write(GenerateRadio('Bart', new Array('ADMINISTRATOR', 'Administrator License', 'SERVICEMAN', 'Serviceman License'), 1, 'onClick="UpdateBartInfo(); Calculate(); "')) ;
_d.write('<BR>  <DIV id="lBart">');
_d.write('<div id="lBartAdmin"><table cellpadding="5" cellspacing=0 width=100%>' + WriteTableRow(LBL_AV_BART_ADMIN_LICENSE + LBL_AV_BART_ADMIN_QUESTION, GenerateInput('cBartAdmin', 0), DIV_BARTADMIN) + '</table></div>');
_d.write('<div id="lBartService"><div id="lBartService"><table cellpadding="5" cellspacing=0 width=100%>' + WriteTableRow(LBL_AV_BART_SERVICE_LICENSE + LBL_AV_BART_SERVICE_QUESTION , GenerateInput('cBartService', 0), DIV_BARTSERVICE) + '</table></div>');
_d.write('</DIV><HR></tr>');



_d.write(WriteTableRow(LBL_AV_SPY + LBL_AV_SPY_LICENSE + LBL_AV_SPY_QUESTION + LBL_AV_SPY_LIMITS, GenerateInput('cSpy', 0), DIV_SPY));
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_Y + LBL_AV_Y_LICENSE + LBL_AV_Y_QUESTION + LBL_AV_Y_LIMITS, GenerateInput('cIpy', 0), DIV_YP));

_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_MAGA + LBL_AV_MAGA_LICENSE + LBL_AV_MAGA_QUESTION + LBL_AV_MAGA_LIMITS, GenerateInput('cMaga', 0), DIV_MAGA));
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_PVC + LBL_AV_PVC_LICENSE + LBL_AV_PVC_QUESTION + LBL_AV_PVC_LIMITS, GenerateInput('cPvc', 0), DIV_PVC));
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_SPAM + LBL_AV_SPAM_LICENSE + LBL_AV_SPAM_QUESTION + LBL_AV_SPAM_LIMITS, GenerateInput('cSpam', 0), DIV_SPAM));
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_SPYS + LBL_AV_SPYS_LICENSE + LBL_AV_SPYS_QUESTION + LBL_AV_SPYS_LIMITS, GenerateInput('cSpys', 0), DIV_SPYS));
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_SPYA + LBL_AV_SPYA_LICENSE + LBL_AV_SPYA_QUESTION + LBL_AV_SPYA_LIMITS, GenerateInput('cSpya', 0), DIV_SPYA));
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_SPYR + LBL_AV_SPYR_LICENSE + LBL_AV_SPYR_QUESTION + LBL_AV_SPYR_LIMITS, GenerateInput('cSpyr', 0), DIV_SPYR));

_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_SPYG + LBL_AV_SPYG_LICENSE + LBL_AV_SPYG_QUESTION + LBL_AV_SPYG_LIMITS, GenerateInput('cSpyg', 0), DIV_SPYG));
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_SPYGF + LBL_AV_SPYGF_LICENSE + LBL_AV_SPYGF_QUESTION + LBL_AV_SPYGF_LIMITS, GenerateInput('cSpygf', 0), DIV_SPYGF));
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_SPYH + LBL_AV_SPYH_LICENSE + LBL_AV_SPYH_QUESTION + LBL_AV_SPYH_LIMITS, GenerateInput('cSpyh', 0), DIV_SPYH));
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_SPYHF + LBL_AV_SPYHF_LICENSE + LBL_AV_SPYHF_QUESTION + LBL_AV_SPYHF_LIMITS, GenerateInput('cSpyhf', 0), DIV_SPYHF));
_d.write('<tr><td colspan="2" ><HR></td></tr>');
_d.write(WriteTableRow(LBL_AV_SPYSG + LBL_AV_SPYSG_LICENSE + LBL_AV_SPYSG_QUESTION + LBL_AV_SPYSG_LIMITS, GenerateInput('cSpysg', 0), DIV_SPYSG));
_d.write('<tr><td colspan="2" ><HR></td></tr>');


_d.write('<tr><td colspan="2" ><table cellspacing=0>');
_d.write(WriteTableRow(LBL_DISCOUNT ,GenerateSelect('Discount', new Array('0', LBL_DICOUNT_NORMAL, '30', LBL_DISCOUNT_GOV, '50', LBL_DISCOUNT_EDU), 1, 'onChange="UpdateDiscount(); Calculate();"'), DIV_DICOUNT));

_d.write('</table></tr></table></div>');

_d.write('<table width="100%"><tr><td colspan="2" >');
_d.write('<div id="SELECTED"></div>')
_d.write('<div id="SUITE"></div>')
_d.write('</td></tr><tr><td>');
_d.write("</div></td></tr></table></form>");

_d.write("<ul id='puch_option'>");
_d.write("<a name='why_this' id='why_this'  onClick='show_why(); return true' style='cursor:pointer; '></a>");


if (ShowPDF == true) {
	_d.write("<li style='/*display:block;*/'><a name='pdf_link' id='pdf_link' >"+LBL_EXPORT+"</a></li>");
}
_d.write("<li><a name='print_btn' id='print_btn'  onClick='window.print(); return true' style='cursor:pointer; '><font size='4' color=red>"+LBL_PRINT+"</font></a></li>");
_d.write("</ul>");
_d.write("<div id='debug' class='why_this'></div>");
_d.write('<div id="add_hidden"></div>');
_d.write('<div id="unprint" onClick="unprint();" style="text-align:right; display:none;cursor:pointer; "><a ><<</a></div>');


var _c = document.calc;
var Currency = 'USD';
var iAvs = GetRadioValue(_c.Maintenance);
/*
 * SpecialDiscount: for normal not discounted usert, what was the 15th Aniversary discount
 */
var SpecialDiscount = 0; 
var SpecialDiscountCoupon = '';


_c.cExchange.CanChange = 1;
_c.cIsa.CanChange = 1;
_c.cSmtp.CanChange = 1;
_c.cSbsStandard.CanChange = 1;
_c.cSbsPremium.CanChange = 1;
_c.cLinux.CanChange = 1;
_c.cMSServer.CanChange = 1;


_d.getElementById("debug").style.display = "none";
UpdateBartInfo();
Calculate();
_d.onReload = Calculate();

// setStyleByClass: given an element type and a class selector,
// style property and value, apply the style.
// args:
//  t - type of tag to check for (e.g., SPAN)
//  c - class name
//  p - CSS property
//  v - value
var ie = (document.all) ? true : false;

function setStyleByClass(t,c,p,v){
	var elements;
	if(t == '*') {
		// '*' not supported by IE/Win 5.5 and below
		elements = (ie) ? document.all : document.getElementsByTagName('*');
	} else {
		elements = document.getElementsByTagName(t);
	}
	for(var i = 0; i < elements.length; i++){
		var node = elements.item(i);
		for(var j = 0; j < node.attributes.length; j++) {
			if(node.attributes.item(j).nodeName == 'class') {
				if(node.attributes.item(j).nodeValue == c) {
					eval('node.style.' + p + " = '" +v + "'");
				}
			}
		}
	}
}
function ShowPurchaseLink(){
	var _shareit = document.getElementById('shareit');
	var _tested = document.getElementById('tested_product');
	if (_tested.checked )
		_shareit.style.display = "block";
	else
		_shareit.style.display = "none";
}

function show_purchase_now(){
	
}

function unprint(){
	document.getElementById('header_image').style.display = "inline";	
	document.getElementById('section_line').style.display = "inline";	
	document.getElementById('calc_form').style.display = "inline";	
	document.getElementById('puch_option').style.display = "inline";	
	document.getElementById('unprint').style.display = "none";	
	setStyleByClass("div", "header", "display", "block");
	setStyleByClass("div", "box_container", "display", "block");
	setStyleByClass("div", "footer", "display", "block");
	setStyleByClass("div", "main_bd_container", "top", "244px");
	setStyleByClass("div", "main_container", "width", "546px");
}

function print_preview(){
	document.getElementById('header_image').style.display = "none";	
	document.getElementById('section_line').style.display = "none";	
	document.getElementById('calc_form').style.display = "none";	
	document.getElementById('puch_option').style.display = "none";	
	document.getElementById('unprint').style.display = "block";	
	
	setStyleByClass("div", "box_container", "display", "none");
	setStyleByClass("div", "main_container", "width", "100%");
	setStyleByClass("div", "header", "display", "none");
	setStyleByClass("div", "footer", "display", "none");
	setStyleByClass("div", "main_bd_container", "top", "0");
	show_why();
	window.print();
}

function reseller_order_(){
    ordfnc = _d.getElementById("ordfnc");
    //alert(ordfnc);
    if ((typeof ordfnc == 'object')&& (ordfnc != null)) {
      ordfnc.value = 'set_new_order_from_quote';
    }else{
      hidden_form = _d.getElementById("add_hidden");
      hidden_form.innerHTML += "<input type='hidden' name='ordfnc' id='ordfnc' value='set_new_order_from_quote'>";
    }
    fnc = _d.getElementById("fnc_input");
    fnc.value = 'new_order';
    document.calc.submit();
}


function chkUpdate(who){
  //alert(who.name);
  if (who.checked == true && who.name == "chkUseSbsStandard") {
    _d.getElementById("chkUseSbsPremium").checked = false;
  }
  if (who.checked == true && who.name == "chkUseSbsPremium") {
    _d.getElementById("chkUseSbsStandard").checked = false;
  }
}

function show_why(){
	if (_d.getElementById("debug").style.display == 'inline') 
		_d.getElementById("debug").style.display = "none";
	else 
		_d.getElementById("debug").style.display = "inline";
}

function GenPurchase(selected,suite,show_suite, iAvs){
	var s = "";
	var s2 = "";
	var server = "https://secure.shareit.com/shareit/cart.html?";
	var CUPON= "COUPON1=";
	var CURRENCY = "currencies=";
	var _c = document.calc;
	var _purchase = _d.getElementById("purchase_now");
	var _shareit_link = _d.getElementById("shareit_link");
	var _discount_cupon = "";
	var _tested = _d.getElementById("tested_product");
	if (ResellerScript) _purchase.style.display = "none"; 
	var renewal = false;
	var query = CURRENCY + Currency;
	var query_suite = CURRENCY + Currency;
	var q_pdf_sel = CURRENCY + Currency;
	var q_pdf_suite = CURRENCY + Currency;
	iAvs = GetRadioValue(_c.Maintenance);
	
	for (iavs in suite) {
		for (Item in selected[iavs]) {
			if (iavs == iAvs){
				query += "&PRODUCT["  + selected[iavs][Item][4] + "]=" + selected[iavs][Item][1];
			}
			query += "&PRODUCT_ID["  + selected[iavs][Item][5] + "]=" + selected[iavs][Item][1];
			if (iavs == 1) q_pdf_sel += "&SELECTED["  + selected[iavs][Item][5] + "]=" + selected[iavs][Item][1];
			q_pdf_sel += "&PRISE["  + selected[iavs][Item][5] + "]["+iavs+"]=" + selected[iavs][Item][3];
			q_pdf_sel += "&PRODUCT_ID["  + selected[iavs][Item][5] + "]["+iavs+"]=" + selected[iavs][Item][4];
			q_pdf_sel += "&PNAME["+selected[iavs][Item][5]+"]="+selected[iavs][Item][0];
			q_pdf_sel += "&RENEWAL["+selected[iavs][Item][5]+"]="+selected[iavs][Item][6];
		}

		for (Item in suite[iavs]) {
			if (iavs == iAvs){
				query_suite += "&PRODUCT["  +  suite[iavs][Item][4] + "]=" + suite[iAvs][Item][1];
				q_pdf_suite+= "&PNAME["+suite[iavs][Item][5]+"]="+suite[iavs][Item][0];
				q_pdf_suite+= "&SUITE["  + suite[iavs][Item][5] + "]=" + suite[iavs][Item][1] ;
			}
			query_suite += "&PRODUCT_ID["  + suite[iavs][Item][5] + "]=" + suite[iavs][Item][1];
			q_pdf_suite += "&sPRISE["  + suite[iavs][Item][5] + "]["+iavs+"]=" + suite[iavs][Item][3];
			q_pdf_suite += "&PRODUCT_ID["  + suite[iavs][Item][5] + "]["+iavs+"]=" + suite[iavs][Item][4];
			q_pdf_suite += "&RENEWAL["  + suite[iavs][Item][5] + "]=" + suite[iavs][Item][6];
		}
	}
//	if (_c.Discount.value != 0)  _discount_cupon.style.display = 'inline'; else _discount_cupon.style.display = 'none';
	
	if (_c.Discount.value == 0 && renewal  == false)  {
		query+= "&" + CUPON + SpecialDiscountCoupon;  
		query_suite += "&" + CUPON + SpecialDiscountCoupon;  
	}

	if (_c.Discount.value != 0)  {
		query+= "&" + CUPON + _discount_cupon.value;  
		query_suite += "&" + CUPON + _discount_cupon.value;  
	}
//	alert("ds");

	var content = "";
	if (ResellerScript) s = CALCULATION_EXPORT_SCRIPT.substr(0, CALCULATION_EXPORT_SCRIPT.indexOf("?")+1);
	else s = CALCULATION_EXPORT_SCRIPT+ "?";
	s+= "fnc=new_order&ordfnc=set_new_order_from_quote&";
	s+= "discount="+_c.Discount.value+"&";
	s+= "Maintenance="+String(GetRadioValue(_c.Maintenance))+"&";
	if (ResellerScript) s2 = CALCULATION_EXPORT_SCRIPT.substr(0, CALCULATION_EXPORT_SCRIPT.indexOf("?")+1);
	else s2 = CALCULATION_EXPORT_SCRIPT + "?";
	s2+= "fnc=price_quote&quotefnc=export&";
	s2+= "discount="+_c.Discount.value+"&";
	s2+= "Maintenance="+GetRadioValue(_c.Maintenance)+"&";

	var _reseller_order = _d.getElementById("order_link") ;
//	alert(_reseller_order);
//	_reseller_order.href = "#";
	if (ShowPDF) 
		var _pdf_link = _d.getElementById('pdf_link');
	if (show_suite == true) {
		content = s+ query_suite;
		if (ResellerScript) _reseller_order.href = s+ query_suite;
		if (ShowPDF) 		_pdf_link.href = s2+ q_pdf_suite +"&"+ q_pdf_sel;
	} else {
		content = s+ query;
		if (ResellerScript) _reseller_order.href = s+ query;
		if (ShowPDF) 		_pdf_link.href = s2+ "&"+ q_pdf_sel;
	}
}

function gen_next_lic(snumber){
	var nextLic;
	if (snumber < 10)                        nextLic = 10;
	if (snumber > 9 && 		snumber < 20)    nextLic = 20;
	if (snumber > 19 && 	snumber < 50)    nextLic = 50;
	if (snumber > 49 && 	snumber < 100)   nextLic = 100;
	if (snumber > 99 && 	snumber < 200)   nextLic = 200;
	if (snumber > 199 && 	snumber < 500)   nextLic = 500;
	if (snumber > 500 && 	snumber < 999)   nextLic = 1000;
	if (snumber > 1000 && 	snumber < 1999)  nextLic = 2000;
	if (snumber > 2000 && 	snumber < 4999)  nextLic = 5000;
	if (snumber > 5000 && 	snumber < 9999)  nextLic = 10000;
	if (snumber > 10000 && 	snumber < 19999) nextLic = 20000;
	if (snumber > 20000 && 	snumber < 49999) nextLic = 50000;
	if (snumber > 50000 && 	snumber < 99999) nextLic = 100000;
	if (snumber > 100000 )                   nextLic = 100000;
	return nextLic;
}

function prepare_results(FinalPrice, _discount, suite, selected, iAvs){
	var result = "SELECTED";
	var sel_renewal;
//	var SpecialDiscount;
	sel_renewal = Array();
	sel_renewal[0] = 0;
	sel_renewal[30] = 0;
	sel_renewal[60] = 0;
	var content = '<h2>'+LBL_SELECTED_SOLUTION+'</h2>';
	content+= '<b>' + LBL_SELECT_RESULT_MAINTENANCE + '</b>: ';
	if (iAvs == 1) 
		content+=  YEAR1;
	if (iAvs == 2) 
		content+=  YEAR2;
	if (iAvs == 3) 
		content+=  YEAR3;
	content+= '<br><br>';
	content+= '<table  class="selected_result" width="100%">';
	content+= "<tr><th align='left' style='font-weight:normal;'>"+LBL_PRODUCT_NAME+"</th><th align='right' style='font-weight:normal;'>"+LBL_LICENSES+"</th><th align='right' style='font-weight:normal;'>"+LBL_PRICE_LINE+"</th></tr>" ;
	var selected_price = 0;
	var disc = 1;
	if (_c.Discount.value != 0) disc = _c.Discount.value/100;
	var renewal = false;
	for (Item in selected[iAvs]) {
		content = content + "<TR>";
		if (selected[iAvs][Item][2] > 0) {
			if ((selected[iAvs][Item][1] >= 1000) && ((selected[iAvs][Item][0].indexOf('Linux') > 0)||(selected[iAvs][Item][0].indexOf('SMTP') > 0)))
				content = content + "<td>" + selected[iAvs][Item][0] + "</td><td align='right'><b>"+LBL_UNLIMITED_LICENSE +"</b> </td><td align='right'>" + MakeDecimals(selected[iAvs][Item][2]) + " " + Currency  + "</td>" ;
			else{
				if (selected[iAvs][Item][0]=="SG-Privacy") {
					content = content + "<td>" + selected[iAvs][Item][0] + "</td><td align='right'><INPUT type='hidden' name=" + selected[iAvs][Item][0] +"l"+ " value=" + (selected[iAvs][Item][1]/selected[iAvs][Item][1]) +"x"+ MakeDecimals(String(selected[iAvs][Item][2]/selected[iAvs][Item][1])) + "><b>" + (selected[iAvs][Item][1]/selected[iAvs][Item][1]) + "</b> x " + MakeDecimals(String(selected[iAvs][Item][2]/selected[iAvs][Item][1])) + " " + Currency + "</td><td align='right'><INPUT type='hidden' name=" + selected[iAvs][Item][0] +"t"+ " value="+ MakeDecimals(String(selected[iAvs][Item][2]/selected[iAvs][Item][1])) + ">" + MakeDecimals(String(selected[iAvs][Item][2]/selected[iAvs][Item][1])) + " " + Currency  + "</td>" ;
				}
				else{
				
				content = content + "<td>" + selected[iAvs][Item][0] + "</td><td align='right'><INPUT type='hidden' name=" + selected[iAvs][Item][0] +"l"+ " value=" + selected[iAvs][Item][1] +"x"+ MakeDecimals(String(selected[iAvs][Item][2]/selected[iAvs][Item][1])) + "> <b>" + (selected[iAvs][Item][1]) + "</b> x " + MakeDecimals(String(selected[iAvs][Item][2]/selected[iAvs][Item][1])) + " " + Currency + "</td><td align='right'><INPUT type='hidden' name=" + selected[iAvs][Item][0] +"t"+ " value="+ MakeDecimals(selected[iAvs][Item][2]) + ">" + MakeDecimals(selected[iAvs][Item][2]) + " " + Currency  + "</td>" ;
				
			}
			}
		} else {
			content = content + "<td>" + selected[iAvs][Item][0] + "</td><td align='right'><b>" + selected[iAvs][Item][1] + "</b> x N/A " + Currency + "</td><td align='right'>N/A</td>" ;
			FinalPrice = "N/A";
		}
		if (selected[iAvs][Item][6]  > 0) {
				// Full product number price = (Full product number price - discount) * Renewal Discout
				// Full product number price = selected[iAvs][Item][2]			
				// discount = 
				sel_renewal[selected[iAvs][Item][6]] = sel_renewal[selected[iAvs][Item][6]] - ((selected[iAvs][Item][2]/selected[iAvs][Item][1])-(disc*(selected[iAvs][Item][2]/selected[iAvs][Item][1]))*(sel_renewal[selected[iAvs][Item][6]]/100)*selected[iAvs][Item][1])
				content = content + "<TR>";
				content = content + "<td>" + "Renewal " + "</td><td align='right' class='renewal'><b>-" + selected[iAvs][Item][6] + "</b> % </td><td align='right' class='renewal'>-" + MakeDecimals(selected[iAvs][Item][2] - ((1-selected[iAvs][Item][6]/100)*selected[iAvs][Item][2] )) + " " + Currency  + "</td>" ;
				content = content + "</TR>";
				FinalPrice-= selected[iAvs][Item][2] - ((1-selected[iAvs][Item][6]/100)*selected[iAvs][Item][2] );
		}
//		alert(selected[iAvs][Item]);
		content = content + "</TR>";
	}
	content = content + "<TR>";
	content = content + "<td colspan='2'><INPUT type='hidden' name='Totale'  value="+ MakeDecimals(FinalPrice)+ "><td align='right'><b>" + MakeDecimals(FinalPrice) ;
	
	if (FinalPrice != 'N/A') content += " " + Currency  + "</b></td>" ;
	content = content + "</TR>";
	if (_c.Discount.value == 0 && renewal == false && SpecialDiscount != 0){
		var _discount_price =  - (FinalPrice * SpecialDiscount/100)
		content+= '<tr><td colspan="2"><b>'+ LBL_DISCOUNT  + " -" + SpecialDiscount + '%: </b></td><td align="right" nowrap ><b style="color:red;">'+ MakeDecimals(_discount_price) ;
		if (FinalPrice != 'N/A') content += " " + Currency  + "</b></td>" ;
		/*for (ren in sel_renewal) {
			if (sel_renewal[ren] != 0) content = content + "<TR><td><b>" +LBL_RENEWAL + " -" + ren + "% </b></td><td></td><td align=\"right\" nowrap ><b style=\"color:red;\">"+MakeDecimals(sel_renewal[ren])+" " + Currency +"</b></td></tr>";		
		}*/
		content+= '<tr><td colspan="2"><b>' +LBL_PRICE_AFTER_DISCOUNT + " </b></td><td align='right' nowrap><b>" + MakeDecimals(FinalPrice+_discount_price);
		if (FinalPrice != 'N/A') content += " " + Currency  + "</b></td>" ;
	} 
	if (_c.Discount.value != 0){
		var _discount_price =  - (FinalPrice * _c.Discount.value/100)
		content+= '<tr><td colspan="2"><INPUT type="hidden" name="scontor"  value='+ MakeDecimals(_discount_price) + '> <b>'+ LBL_DISCOUNT  + " -" + _c.Discount.value + '%: </b></td><td align="right" nowrap ><b style="color:red;">'+ MakeDecimals(_discount_price)
		
		if (FinalPrice != 'N/A') content += " " + Currency  + "</b></td>" ;
		/*for (ren in sel_renewal) {
			if (sel_renewal[ren] != 0) content = content + "<TR><td><b>" +LBL_RENEWAL + " -" + ren + "% </b></td><td></td><td align=\"right\" nowrap ><b style=\"color:red;\">"+MakeDecimals(sel_renewal[ren])+" " + Currency +"</b></td></tr>";		
		}*/
		content+= '<tr><td colspan="2"><b>' +LBL_PRICE_AFTER_DISCOUNT + " </b></td><td align='right' nowrap><INPUT type='hidden' name='tscontato'  value="+ MakeDecimals(FinalPrice+_discount_price) + "><b>" + MakeDecimals(FinalPrice+_discount_price);
		if (FinalPrice != 'N/A') content += " " + Currency  + "</b></td>" ;
	}
	content = content + '</table><HR>';
	if (FinalPrice > 0) {
		_d.getElementById("SELECTED").innerHTML = content;
	} else {
		if (FinalPrice != 0)
			_d.getElementById("SELECTED").innerHTML = MSG_SORRY;
		else
			_d.getElementById("SELECTED").innerHTML = MSG_NOTHING;
	}
	if (suite != undefined) 	{
		content = '<h2>'+LBL_RECOMENDED_SOLUTION+ ' <span id="discout_percentage" style="color:red;"></span></h2><table  class="suite_result" width="100%">';
		content = content + "<th align='left' style='font-weight:normal;'>"+LBL_PRODUCT_NAME+"</th><th style='font-weight:normal;' align='right'>"+LBL_LICENSES+"</th><th style='font-weight:normal;' align='right'>"+LBL_PRICE_LINE+"</th>" ;
		var suite_price = 0;
		
		for (Item in suite[iAvs]) {
			content = content + "<TR>";
			if ((suite[iAvs][Item][1] >= 1000) && ((suite[iAvs][Item][0].indexOf('Linux') > 0)||(suite[iAvs][Item][0].indexOf('SMTP') > 0))){
				//suite q del form che devono essere richiamatiu devo mettere i valori nascosti
				content = content + "<td>" + suite[iAvs][Item][0] + "</td><td align='right'><b>"+LBL_UNLIMITED_LICENSE +"</b> </td><td align='right'>" + MakeDecimals(suite[iAvs][Item][2]) + " " + Currency  + "</td>" ;
			}else{
				//suite
				//alert(suite[iAvs][Item][0]+"sl");
				
				content = content + "<td><INPUT type='hidden' name="+suite[iAvs][Item][0]+"s"+"  value="+ suite[iAvs][Item][0] + ">" + suite[iAvs][Item][0] + "</td><td align='right'><INPUT type='hidden' name="+suite[iAvs][Item][0]+"sl"+"  value=" + (suite[iAvs][Item][1]) + "><INPUT type='hidden' name="+suite[iAvs][Item][0]+"sll"+"  value=" + MakeDecimals(String(suite[iAvs][Item][2]/suite[iAvs][Item][1])) +"> <b> " + suite[iAvs][Item][1] + "</b>	 x " + MakeDecimals(String(suite[iAvs][Item][2]/suite[iAvs][Item][1])) + " " + Currency + "</td><td align='right'><INPUT type='hidden' name="+suite[iAvs][Item][0]+"st"+"  value="+ MakeDecimals(suite[iAvs][Item][2]) + ">" + MakeDecimals(suite[iAvs][Item][2]) + " " + Currency  + "</td>" ;}
			content = content + "</TR>";
			//alert(selected);
			if (suite[iAvs][Item][6]  > 0) {
					// Full product number price = (Full product number price - discount) * Renewal Discout
					// Full product number price = selected[iAvs][Item][2]			
					// discount = 
					sel_renewal[suite[iAvs][Item][6]] = sel_renewal[suite[iAvs][Item][6]] - ((suite[iAvs][Item][2]/suite[iAvs][Item][1])-(disc*(suite[iAvs][Item][2]/suite[iAvs][Item][1]))*(sel_renewal[suite[iAvs][Item][6]]/100)*suite[iAvs][Item][1])
					content = content + "<TR>";
					content = content + "<td>" + "Renewal " + "</td><td align='right' class='renewal'><b>-" + suite[iAvs][Item][6] + "</b> % </td><td align='right' class='renewal'>-" + MakeDecimals(suite[iAvs][Item][2] - ((1-suite[iAvs][Item][6]/100)*suite[iAvs][Item][2] )) + " " + Currency  + "</td>" ;
					content = content + "</TR>";
					suite_price-= suite[iAvs][Item][2] - ((1-suite[iAvs][Item][6]/100)*suite[iAvs][Item][2] );
			}
			suite_price = suite_price + suite[iAvs][Item][2];
		}
		content = content + "<TR>";
		content = content + "<td colspan='2'><b>" + LBL_PRICE + "</b></td><td align='right'><b>" + MakeDecimals(suite_price) + " " + Currency  + "</b></td>" ;
		content = content + "</TR>";
		if (_c.Discount.value == 0  && renewal == false && SpecialDiscount != 0){
			_discount_price =  - (suite_price * (SpecialDiscount/100))
			content+= '<tr><td colspan="2"><b>'+ LBL_DISCOUNT  + " -" + SpecialDiscount + '%: </b></td><td align="right" nowrap ><b style="color:red;">'+ MakeDecimals(_discount_price) + " " + Currency + '</b></td></tr>';
			content+= '<tr><td colspan="2"><b>' + LBL_PRICE_AFTER_DISCOUNT + " </b></td><td align='right' nowrap><b>" + MakeDecimals(suite_price+_discount_price)+ " " + Currency + '</b></td></tr>';
		}
		if (_c.Discount.value != 0){
		
			_discount_price =  - (suite_price * _c.Discount.value/100)
			
			content+= '<tr><td colspan="2"><b><INPUT type="hidden" name="scontors"  value='+ MakeDecimals(_discount_price) + '>'+ LBL_DISCOUNT  + " " + _c.Discount.value + '%: </b></td><td align="right" nowrap ><b style="color:red;">'+ MakeDecimals(_discount_price) + " " + Currency + '</b></td></tr>';
			content+= '<tr><td colspan="2"><INPUT type="hidden" name="risparmio"  value='+ MakeDecimals((1-suite_price/FinalPrice)*100) + '><b>' + LBL_PRICE_AFTER_DISCOUNT + " </b></td><td align='right' nowrap><INPUT type='hidden' name='tscontatos'  value="+ MakeDecimals(suite_price+_discount_price) + "><INPUT type='hidden' name='Totales'  value="+ MakeDecimals(suite_price) + "><b>" + MakeDecimals(suite_price+_discount_price)+ " " + Currency + '</b></td></tr>';
		}
		content = content + '</table><HR>';
	
		var show_suite = false;
		if ((FinalPrice != 'N/A') && (suite_price < FinalPrice) && (suite_price > 0) ) {
			_d.getElementById("SUITE").innerHTML = content;
			_d.getElementById("discout_percentage").innerHTML = '<b>'+MakeDecimals((1-suite_price/FinalPrice)*100) + '%</b>';
			_d.getElementById("debug").style.display = "none";
			show_suite = true;
			result = "SUITE";
		} else {
			_d.getElementById("SUITE").innerHTML = "";
			show_suite = false;
		}
	} 	else {
			_d.getElementById("debug").style.display = "none";
	}
	var _purchase = "";
	if (FinalPrice >0){
		_d.getElementById("puch_option").style.display = "block";
		//_purchase.style.display = 'block';
		if (WhyThisButton) {
			_d.getElementById("why_this").style.display = "inline";
			_d.getElementById("print_btn").style.display = "inline";
		} else {
			_d.getElementById("why_this").style.display = "none";
			_d.getElementById("print_btn").style.display = "none";
		}

	
			
	}else{
		//_purchase.style.display = 'none';
		_d.getElementById("puch_option").style.display = "none";
		_d.getElementById("print_btn").style.display = "none";
		_d.getElementById("why_this").style.display = 'none';
		//_d.getElementById("order_link").style.display = "none";
		//if (ShowPDF) _d.getElementById("pdf_link").style.display = "none";
	}
	GenPurchase(selected,suite, show_suite, iAvs);
	return result;
}

function CreateItemEx(Option, Product, LicCount, PriceListItem, Renewal){
  var oldIAvs = iAvs;
//	alert(Renewal);
  iAvs = 1;
  CreateItem(Option[1], Product, LicCount, PriceListItem, Renewal);
  iAvs = 2;
  CreateItem(Option[2], Product, LicCount, PriceListItem, Renewal);
  iAvs = 3;
  CreateItem(Option[3], Product, LicCount, PriceListItem, Renewal);
  iAvs = oldIAvs;
}

function CreateItem(Option, Product, LicCount, PriceListItem, Renewal){
	var OptionItem = Array();
	OptionItem[0] =  Product;
	OptionItem[1] =  LicCount;
	var lic_price = GetPrice(Currency + "_" + iAvs + "_" + PriceListItem, LicCount);
	if (lic_price > 0) {
		OptionItem[2] =  lic_price * LicCount;
		OptionItem[3] =  lic_price ;
	} else {
		OptionItem[2] = "N/A";
		OptionItem[3] =  "N/A";
	}
	OptionItem[4] = s_id[Currency + "_" + iAvs + "_" + PriceListItem];
	OptionItem[5] = PriceListItem;
	OptionItem[6] = Renewal;
	var ii = Option.length;
	Option[ii] = OptionItem;
	
	return Option;
}

function Calculate(){
	var _c = document.calc;
	//document.getElementById('purchase_now').style.display = 'none';
	if (ResellerScript == true) {
		Currency = ResellerCurrency ;
	}else{
		Currency = _c.Currency.value;
	}
// first just check if values in professional is set in other server products
	iAvs = GetRadioValue(_c.Maintenance);
	if (_c.cExchange.CanChange == 1)
		_c.cExchange.value = _c.Professional.value;
	if (_c.cIsa.CanChange == 1)
		_c.cIsa.value = _c.Professional.value;
	if (_c.cSmtp.CanChange == 1)
		_c.cSmtp.value = _c.Professional.value;
	
	if (_c.cSbsStandard.CanChange == 1)
		_c.cSbsStandard.value = _c.Professional.value;
	if (_c.cSbsPremium.CanChange == 1)
		_c.cSbsPremium.value = _c.Professional.value;
	if (_c.cLinux.CanChange == 1)
		_c.cLinux.value = _c.Professional.value;
	if (_c.cMSServer.CanChange == 1)
		_c.cMSServer.value = parseInt((_c.Professional.value/10)+1);

// start counting price
	
	var FinalPrice = 0;
	_c.cSbsPremium.disabled = !_c.chkUseSbsPremium.checked ;
	_c.cSbsStandard.disabled = !_c.chkUseSbsStandard.checked;
	_c.cMSServer.disabled = !_c.chkUseServer.checked ;
	_c.cExchange.disabled = !_c.chkUseExchangeSmtp.checked ;
	_c.cIsa.disabled = !_c.chkUseIsa.checked;				
	_c.cSmtp.disabled = !_c.chkUseSmtp.checked;
	
	_c.cLinux.disabled = !_c.chkUseLinux.checked;

	var useServer = (_c.chkUseServer.checked == true)
	var useExchange = (_c.chkUseExchangeSmtp.checked == true) && (_c.cExchange.value > 9) && (useServer == true);
	var useIsa = (_c.chkUseIsa.checked == true) && (_c.cIsa.value > 9)&& (useServer == true);
	var useSmtp = (_c.chkUseSmtp.checked == true) && (_c.cSmtp.value > 9)&& (useServer == true);
	
	var useSbsStandard = (_c.chkUseSbsStandard.checked == true) && (_c.cSbsStandard.value > 4);
	var useSbsPremium = (_c.chkUseSbsPremium.checked == true) && (_c.cSbsPremium.value > 4);
	var useSbs = useSbsStandard || useSbsPremium;
	var useLinux = (_c.chkUseLinux.checked == true) && (_c.cLinux.value > 9)
	var usePda =  (_c.cPDA.value > 0)
	var useKerio =  (_c.cKerio.value > 9)
	var usePro =  (_c.Professional.value > 0)
	var useSpy =  (_c.cSpy.value > 0)
	var useSpys =  (_c.cSpys.value > 0)
	var useSpyg =  (_c.cSpyg.value > 0)
	var useSpygf =  (_c.cSpygf.value > 0)
	var useSpyh =  (_c.cSpyh.value > 0)
	var useSpyhf =  (_c.cSpyhf.value > 0)
	var useSpysg =  (_c.cSpysg.value > 0)
	var useSpyr =  (_c.cSpyr.value > 0)
	var useSpya =  (_c.cSpya.value > 0)
	var useSpam =  (_c.cSpam.value > 0)
	var useIpy =  (_c.cIpy.value > 0)
	var usePvc =  (_c.cPvc.value > 0)
	var useMaga =  (_c.cMaga.value > 0)
	var useBartAmin = (_c.Bart[0].value == 'ADMINISTRATOR') && (_c.Bart[0].checked == true) && (_c.cBartAdmin.value > 0);
	var useBartService = (_c.Bart[1].value == 'SERVICEMAN') && (_c.Bart[1].checked == true) && (_c.cBartService.value > 0);

	var selected = Array();
	var professional = parseInt(_c.Professional.value, 10);
	var server = parseInt(_c.cMSServer.value, 10);
	var exchange = parseInt(_c.cExchange.value, 10);	
	var linux = parseInt(_c.cLinux.value, 10);
	var isa = parseInt(_c.cIsa.value, 10);
	var smtp = parseInt(_c.cSmtp.value, 10);
	
	var pda = parseInt(_c.cPDA.value, 10);
	var kerio = parseInt(_c.cKerio.value, 10);
	var sbs_standard = parseInt(_c.cSbsStandard.value);
	var sbs_premium = parseInt(_c.cSbsPremium.value);
	var bart_admin = parseInt(_c.cBartAdmin.value);
	var bart_service = parseInt(_c.cBartService.value);
	
	var spy = parseInt(_c.cSpy.value);
	var spys = parseInt(_c.cSpys.value);
	var spyg = parseInt(_c.cSpyg.value);
	var spygf = parseInt(_c.cSpygf.value);
	var spyh = parseInt(_c.cSpyh.value);
	var spyhf = parseInt(_c.cSpyhf.value);
	var spysg = parseInt(_c.cSpysg.value);
	var spyr = parseInt(_c.cSpyr.value);
	var spya = parseInt(_c.cSpya.value);
	var spam = parseInt(_c.cSpam.value);
	var pvc = parseInt(_c.cPvc.value);
	var ipy = parseInt(_c.cIpy.value);
	var maga = parseInt(_c.cMaga.value);
	var pda = parseInt(_c.cPDA.value, 10);
	var kerio = parseInt(_c.cKerio.value, 10);

	var RecomendedSuite = -1;
	var RecomendedSuitePrice = 999999999;
	var sbs = 0;
	var sbs_number = 0;
	if (_c.cSbsStandard.disabled == false) sbs = parseInt(_c.cSbsStandard.value);
	if (_c.cSbsPremium.disabled == false) sbs = parseInt(_c.cSbsPremium.value);
	var original_sbs = sbs;
	var nextLic = 0;
	var nextSbsLic = 0;
	var addSbsPro = 0; //add professional to SBS suite
	var addMSServer = 0;
	var addLinux = 0;
	var addExchange = 0;
	var addIsa = 0;
	var addSmtp = 0;
	var addSp = 0;
	var addDom = 0;
	var addSbsLic = 0;
	var addPda = 0;
	var addKerio = 0;
	var addSbsProNext = 0; //add professional to SBS suite
	var addMSServerNext = 0;
	var addLinuxNext = 0;
	var addExchangeNext = 0;
	var addIsaNext = 0;
	var addSmtpNext = 0;
	
	var addPdaNext = 0;
	var addKerioNext = 0;
	
	var inx = "";
	UpdateDiscount();
	
	var renewal = 0;
	if (false == true) renewal = 30;
	switch (true){
		case iAvs == 1 : _d.getElementById("rMaintenance").innerHTML = YEAR1; break;
		case iAvs == 2 : _d.getElementById("rMaintenance").innerHTML = YEAR2; break;
		case iAvs == 3 : _d.getElementById("rMaintenance").innerHTML = YEAR3; break;
	}
	inx = Currency + "_" +  iAvs + "_PE";
	var PO = Array();
	PO[1] = Array();
	PO[2] = Array();
	PO[3] = Array();
	
	var PriceOptions = Array();
	var retVal  = '';
	var SS = PriceOptions.length; //standart suite
	PriceOptions[SS] = Array();
	var OptionSS = PriceOptions[SS];
	OptionSS[1] = Array();OptionSS[2] = Array();OptionSS[3] = Array();
	
	var SA = PriceOptions.length; //advanced suite
	PriceOptions[SA] = Array();
	var OptionSA = PriceOptions[SA];
	OptionSA[1] = Array();OptionSA[2] = Array();OptionSA[3] = Array();
	
	var SE = PriceOptions.length; //enterprise suite
	PriceOptions[SE] = Array();
	var OptionSE = PriceOptions[SE];
	OptionSE[1] = Array();OptionSE[2] = Array();OptionSE[3] = Array();
	
	var SSBS = PriceOptions.length; //SBS standard suite
	PriceOptions[SSBS] = Array();
	var OptionSSBS = PriceOptions[SSBS];
	OptionSSBS[1] = Array();OptionSSBS[2] = Array();OptionSSBS[3] = Array();
	
	var SSE = PriceOptions.length; //standard  suite next
	PriceOptions[SSE] = Array();
	var OptionSSE = PriceOptions[SSE];
	OptionSSE[1] = Array();OptionSSE[2] = Array();OptionSSE[3] = Array();
	
	var SAE = PriceOptions.length;  // advanced suite next
	PriceOptions[SAE] = Array();
	var OptionSAE = PriceOptions[SAE];
	OptionSAE[1] = Array();OptionSAE[2] = Array();OptionSAE[3] = Array();
	
	var SEE = PriceOptions.length; //enterprice suite next
	PriceOptions[SEE] = Array();
	var OptionSEE = PriceOptions[SEE];
	OptionSEE[1] = Array();OptionSEE[2] = Array();OptionSEE[3] = Array();
	
	var SSBSE = PriceOptions.length; // SBS suite next
	PriceOptions[SSBSE] = Array();
	var OptionSSBSE = PriceOptions[SSBSE];
	OptionSSBSE[1] = Array();OptionSSBSE[2] = Array();OptionSSBSE[3] = Array();
	
	if (usePro) {
  		CreateItemEx(PO, nPROFESSIONAL, professional, "PE", renewal);
  		WriteResults(inx, _c.Professional, "rProfessional", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	} else {
  		WriteResults(inx, _c.Professional, "rProfessional", Currency);	
	}

	var _file_server = _d.getElementById("lFileServer");

	inx = Currency + "_" +  iAvs + "_SE";
	if (useServer){
  		_file_server.style.display = 'inline';
  		CreateItemEx(PO, nSERVER, server, "SE", renewal);
		  WriteResults(inx, _c.cMSServer, "rMSServer", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	} else {
      _file_server.style.display = 'none';
      WriteResults(inx, _c.cMSServer, "rMSServer", Currency);	
	}

	inx = Currency + "_" +  iAvs + "_EE";
	if (useExchange){
  		CreateItemEx(PO, nEXCHANGE, exchange, "EE", renewal);
		  WriteResults(inx, _c.cExchange, "rExchangeServer", Currency, renewal);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	} else {
		WriteResults(inx, _c.cExchange, "rExchangeServer", Currency);	
	}
		
	inx = Currency + "_" +  iAvs + "_IE";
	if (useIsa){
  		CreateItemEx(PO, nISA, isa, "IE", renewal);
		  WriteResults(inx, _c.cIsa, "rIsaServer", Currency, renewal);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	} else {
		  WriteResults(inx, _c.cIsa, "rIsaServer", Currency);	
	}
	
	inx = Currency + "_" +  iAvs + "_SMTP";
	if (useSmtp){
  		if (smtp > 1000) smtp = 1000;
		CreateItemEx(PO, nSMTP, smtp, "SMTP", renewal);
		WriteResults(inx, _c.cSmtp, "rSmtpServer", Currency, renewal);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')
			FinalPrice = 'N/A';
  		else	
			FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	} else {
		WriteResults(inx,  _c.cSmtp, "rSmtpServer", Currency);	
	}

	
	

//alert(PO);
	inx = Currency + "_" +  iAvs + "_SBSS";
	if (useSbsStandard){
  		CreateItemEx(PO, nSBS_STANDARD, sbs_standard, "SBSS", renewal);
		  WriteResults(inx, _c.cSbsStandard, "rSbsStandard", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
 	} else {
		  WriteResults(inx, _c.cSbsStandard, "rSbsStandard", Currency);	
	}
	inx = Currency + "_" +  iAvs + "_SBSP";
	if (useSbsPremium){
  		CreateItemEx(PO, nSBS_PREMIUM, sbs_premium, "SBSP", renewal);
		  WriteResults(inx, _c.cSbsPremium, "rSbsPremium", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	} else {
	   WriteResults(inx, _c.cSbsPremium, "rSbsPremium", Currency);	
	}

	inx = Currency + "_" +  iAvs + "_LIN";
	if (useLinux){
  		if (linux > 1000) linux = 1000;
  		CreateItemEx(PO, nLINUX, linux, "LIN", renewal	);
		WriteResults(inx, _c.cLinux, "rLinux", Currency, renewal);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	} else {
		  WriteResults(inx, _c.cLinux, "rLinux", Currency);	
	}
	
	inx = Currency + "_" +  iAvs + "_PDA";
	if (usePda){
  		CreateItemEx(PO, nPDA, pda, "PDA", renewal);
//		alert(PO);
		WriteResults(inx, _c.cPDA, "rPda", Currency, renewal);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}else {
		  WriteResults(inx, _c.cPDA, "rPda", Currency);	
	}
	
	inx = Currency + "_" +  iAvs + "_AFK";
	if (useKerio){
  		CreateItemEx(PO, nKERIO, kerio, "AFK", renewal);
		  WriteResults(inx, _c.cKerio, "rKerio", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}else {
		  WriteResults(inx, _c.cKerio, "rKerio", Currency);	
	}
	
	if (useBartAmin) {
			inx = Currency + "_" +  iAvs + "_BARTA";
			if (renewal > 0)
		  		CreateItemEx(PO, nBART_ADMIN, bart_admin, "BARTA", 80);
			else
		  		CreateItemEx(PO, nBART_ADMIN, bart_admin, "BARTA", 0);
		  WriteResults(inx, _c.cBartAdmin, "rBartAdmin", Currency);	
		  //alert(PO[iAvs][PO[iAvs].length-1]);
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
	if (useBartService) {
		inx = Currency + "_" +  iAvs + "_BARTS";
		if (renewal > 0)
	  		CreateItemEx(PO, nBART_SERVICE, bart_service, "BARTS", 80);
		else
	  		CreateItemEx(PO, nBART_SERVICE, bart_service, "BARTS", 0);
		WriteResults(inx, _c.cBartService, "rBartService", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
	if (useSpy) {
		inx = Currency + "_" +  iAvs + "_SPY";
		if (renewal > 0)
	  		CreateItemEx(PO, nSpy, spy, "SPY", 80);
		else
	  		CreateItemEx(PO, nSpy, spy, "SPY", 0);
		WriteResults(inx, _c.cSpy, "rSpy", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
	if (useSpys) {
		inx = Currency + "_" +  iAvs + "_SPYS";
		if (renewal > 0)
	  		CreateItemEx(PO, nSpys, spys, "SPYS", 80);
		else
	  		CreateItemEx(PO, nSpys, spys, "SPYS", 0);
		WriteResults(inx, _c.cSpys, "rSpys", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
	if (useSpyg) {
		inx = Currency + "_" +  iAvs + "_SPYG";
		if (renewal > 0)
	  		CreateItemEx(PO, nSpyg, spyg, "SPYG", 80);
		else
	  		CreateItemEx(PO, nSpyg, spyg, "SPYG", 0);
		WriteResults(inx, _c.cSpyg, "rSpyg", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
	if (useSpygf) {
		inx = Currency + "_" +  iAvs + "_SPYGF";
		if (renewal > 0)
	  		CreateItemEx(PO, nSpygf, spygf, "SPYGF", 80);
		else
	  		CreateItemEx(PO, nSpygf, spygf, "SPYGF", 0);
		WriteResults(inx, _c.cSpygf, "rSpygf", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
	if (useSpyh) {
		inx = Currency + "_" +  iAvs + "_SPYH";
		if (renewal > 0)
	  		CreateItemEx(PO, nSpyh, spyh, "SPYH", 80);
		else
	  		CreateItemEx(PO, nSpyh, spyh, "SPYH", 0);
		WriteResults(inx, _c.cSpyh, "rSpyh", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
	if (useSpyhf) {
		inx = Currency + "_" +  iAvs + "_SPYHF";
		if (renewal > 0)
	  		CreateItemEx(PO, nSpyhf, spyhf, "SPYHF", 80);
		else
	  		CreateItemEx(PO, nSpyhf, spyhf, "SPYHF", 0);
		WriteResults(inx, _c.cSpyhf, "rSpyhf", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
	if (useSpysg) {
		inx = Currency + "_" +  iAvs + "_SPYSG";
		if (renewal > 0)
	  		CreateItemEx(PO, nSpysg, spysg, "SPYSG", 80);
		else
	  		CreateItemEx(PO, nSpysg, spysg, "SPYSG", 0);
		WriteResults(inx, _c.cSpysg, "rSpysg", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
if (useSpyr) {
		inx = Currency + "_" +  iAvs + "_SPYR";
		if (renewal > 0)
	  		CreateItemEx(PO, nSpyr, spyr, "SPYR", 80);
		else
	  		CreateItemEx(PO, nSpyr, spyr, "SPYR", 0);
		WriteResults(inx, _c.cSpyr, "rSpyr", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
	if (useSpya) {
		inx = Currency + "_" +  iAvs + "_SPYA";
		if (renewal > 0)
	  		CreateItemEx(PO, nSpya, spya, "SPYA", 80);
		else
	  		CreateItemEx(PO, nSpya, spya, "SPYA", 0);
		WriteResults(inx, _c.cSpya, "rSpya", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
	if (useSpam) {
		inx = Currency + "_" +  iAvs + "_SPAM";
		if (renewal > 0)
	  		CreateItemEx(PO, nSpam, spam, "SPAM", 80);
		else
	  		CreateItemEx(PO, nSpam, spam, "SPAM", 0);
		WriteResults(inx, _c.cSpam, "rSpam", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
	if (useIpy) {
		inx = Currency + "_" +  iAvs + "_Y";
		if (renewal > 0)
	  		CreateItemEx(PO, nIpy, ipy, "Y", 80);
		else
	  		CreateItemEx(PO, nIpy, ipy, "Y", 0);
		WriteResults(inx, _c.cIpy, "rIpy", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
	if (useMaga) {
		inx = Currency + "_" +  iAvs + "_MAGA";
		if (renewal > 0)
	  		CreateItemEx(PO, nMaga, maga, "MAGA", 80);
		else
	  		CreateItemEx(PO, nMaga, maga, "MAGA", 0);
		WriteResults(inx, _c.cMaga, "rMaga", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}
if (usePvc) {
		inx = Currency + "_" +  iAvs + "_PVC";
		if (renewal > 0)
	  		CreateItemEx(PO, nPvc, pvc, "PVC", 80);
		else
	  		CreateItemEx(PO, nPvc, pvc, "PVC", 0);
		WriteResults(inx, _c.cPvc, "rPvc", Currency);	
  		if (PO[iAvs][PO[iAvs].length-1][2] == 'N/A')	FinalPrice = 'N/A';
  		else	FinalPrice += PO[iAvs][PO[iAvs].length-1][2];
	}


	

//###################################SUITES###################################
	var snumber = 0;
	if (useServer){
		proNumber = (professional < 10 ? 10 : professional);
		if ((parseInt((proNumber/10)+1) > server)) {
			snumber = professional + server;
			addMSServer = 0;
			addMSPro = 0;
		} else if (parseInt((proNumber/10)+1) == server) {
			snumber = professional + server;
			addMSServer = 0;
			addMSPro = 0;
		} else if (parseInt((proNumber/10)+1) < server) {
			snumber = professional + parseInt((professional/10)+1);//- parseInt((professional/10)+1);
			addMSServer = server - parseInt((snumber/10)+1);
			addMSPro = 0;
			
			if ((snumber + addMSServer) < (professional + server)) {
				snumber+= (professional + server) - (snumber + addMSServer);
			}
			
		}
	}else {
		snumber = professional;
		addMSServer = 0;
		addMSPro = 0;
	}
	
	
	
	sbs_number = sbs;
	if (sbs > 0 && professional > 0 && professional > sbs) {
		sbs_number = sbs; //professional;
		addSbsPro = professional - sbs;
		sbs = 0;
	} 
	if (sbs > 0 && professional > 0 && professional < sbs) { 
		//pokud je pocet PE mensi nez SBS pak se cenove vyplati vzit max do poctu PE, protoze SBS jsou drazsi
		// neplati pokud je SBS serveru <= 5
		sbs_number = professional;
		sbs = original_sbs -sbs_number;
		addSbsPro = 0;
		if (sbs_number <= 5){
			sbs_number = 5;
		}
	}
	if (sbs > 0 && professional == sbs ) { 
		//pokud je pocet PE mensi nez serveru pak se cenove vyplati vzit max do poctu serveru, protoze procka jsou levnejsi
		sbs_number = sbs;
		addSbsPro = 0;
		sbs = 0;
		//snumber = 0; //pocet Suite shazuji, protoze to nahrazuje SBS Suite
	}

	if (sbs > 0 && professional == 0){
		// chci jen SBS servery
		//snumber = sbs;
		sbs_number = sbs;	
		sbs = 0;
		addSbsPro = 0;
	}
	if (original_sbs > sbs && sbs < 5) {
			sbs_number = original_sbs;
			sbs = 0;
	}

	if (sbs < 5 && sbs > 0) sbs = 5;
	//alert(sbs_number);
  	if (sbs_number < 5) sbs_number = 5;
	if (snumber < 10) snumber = 10;

	if (snumber < linux) {
		addLinux = linux - snumber;
		if (addLinux < 10) addLinux = 10;
	}
	if (snumber < exchange) {
		addExchange = exchange - snumber;
		if (addExchange < 10) addExchange = 10;
	}
	if (snumber < isa) {
		addIsa = isa - snumber;
		if (addIsa < 10) addIsa = 10;
	}
	if (snumber < smtp) {
		addSmtp = smtp - snumber;
		if (addSmtp < 10) addSmtp = 10;
	}
	
	
	
	if (snumber < pda) {
		addPda = pda - snumber;
	}
	if (snumber < kerio) {
		addKerio = kerio - snumber;
		if (addKerio < 10) addKerio = 10;
	}
	if (original_sbs  > sbs_number) {
		sbs = original_sbs  - sbs_number ;
	}

	nextLic = gen_next_lic(snumber);

	nextSbsLic = gen_next_lic(sbs_number);
	
	sbsNext = 0;
	if (original_sbs  > nextSbsLic ) sbsNext = original_sbs  - nextSbsLic ;
	if (nextSbsLic < professional) { 
		addSbsProNext = professional -nextSbsLic;
		if (addSbsProNext < 10) addSbsProNext = 10;
	} else {
		addSbsProNext = 0;
	}

//	alert("addSbsProNext: " + addSbsProNext + "; sbs: " + sbs  + "; original_sbs: " + original_sbs  + "; nextSbsLic: " + nextSbsLic + "; professional: " + professional);
	if (parseInt((nextLic/10)+1) < server) { 
		addMSServerNext = server -parseInt((nextLic/10)+1);
	}
	if (nextLic < linux) { 
		addLinuxNext = linux -nextLic;
		if (addLinuxNext < 10) addLinuxNext = 10;
	}
	if (nextLic < exchange) {
		addExchangeNext = exchange - nextLic;
		if (addExchangeNext < 10) addExchangeNext = 10;
	}
	if (nextLic < isa) {
		addIsaNext = isa - nextLic;
		if (addIsaNext < 10) addIsaNext = 10;
	}
	if (nextLic < smtp) {
		addSmtpNext = smtp - nextLic;
		if (addSmtpNext < 10) addSmtpNext = 10;
	}
	
	if (nextLic < pda) {
		addPdaNext = pda - nextLic;
	}
	if (nextLic < kerio) {
		addKerioNext = kerio - nextLic;
		if (addKerioNext < 10) addKerioNext = 10;
	}
	
//	alert(addSbsProNext);
	if (useSbs == true && addSbsProNext > 0){
    	CreateItemEx(OptionSSBSE, nPROFESSIONAL, addSbsProNext, "PE", renewal);
  	}
	
	if (sbs_number > 4){ 
	  if (_c.cSbsStandard.disabled == false)  CreateItemEx(OptionSSBS, nSBS_SUITE_STANDARD, sbs_number, "SBSSS", renewal);
	  if (_c.cSbsPremium.disabled == false) CreateItemEx(OptionSSBS, nSBS_SUITE_PREMIUM, sbs_number, "SBSPS", renewal);
	}

	if (nextSbsLic > 4){ 
	  if (_c.cSbsStandard.disabled == false)  CreateItemEx(OptionSSBSE, nSBS_SUITE_STANDARD, gen_next_lic(sbs_number), "SBSSS", renewal);
	  if (_c.cSbsPremium.disabled == false) CreateItemEx(OptionSSBSE, nSBS_SUITE_PREMIUM, gen_next_lic(sbs_number), "SBSPS", renewal);
	}
	if (snumber > 9){ 
		CreateItemEx(OptionSS, nSTANDARD_SUITE, snumber, "STDS", renewal);
		CreateItemEx(OptionSA, nADVANCED_SUITE, snumber, "ADVS", renewal);
	}
	if (snumber > 19){ 
		CreateItemEx(OptionSE, nENTERPRISE_SUITE, snumber, "ENTS", renewal);
	}
	CreateItemEx(OptionSSE, nSTANDARD_SUITE, nextLic, "STDS", renewal);
	CreateItemEx(OptionSAE, nADVANCED_SUITE, nextLic, "ADVS", renewal);
	if (nextLic < 19) {
		CreateItemEx(OptionSEE, nENTERPRISE_SUITE, 20, "ENTS", renewal);
	}else{
		CreateItemEx(OptionSEE, nENTERPRISE_SUITE, nextLic, "ENTS", renewal);
	}
	
	if (addSbsPro > 0 && useSbs == true){
    	CreateItemEx(OptionSSBS, nPROFESSIONAL, addSbsPro, "PE", renewal);
  	}
	

//				addMSPro = snumber - professional;
	if (addMSPro > 0) { 
	//	alert(addMSPro );
		CreateItemEx(OptionSS, nPROFESSIONAL, addMSPro, "PE", renewal);
		CreateItemEx(OptionSA, nPROFESSIONAL, addMSPro, "PE", renewal);
		CreateItemEx(OptionSE, nPROFESSIONAL, addMSPro, "PE", renewal);
	}
	if (addMSServer > 0) { 
		if (snumber > 9){
			CreateItemEx(OptionSS, nSERVER, addMSServer, "SE", renewal);
			CreateItemEx(OptionSA, nSERVER, addMSServer, "SE", renewal);
		}
		if (snumber > 19){
			CreateItemEx(OptionSE, nSERVER, addMSServer, "SE", renewal);
		}
	}
	
	if (addMSServerNext > 0) { 
		CreateItemEx(OptionSSE, nSERVER, addMSServerNext, "SE", renewal);
		CreateItemEx(OptionSAE, nSERVER, addMSServerNext, "SE", renewal);
		CreateItemEx(OptionSEE, nSERVER, addMSServerNext, "SE", renewal);
	}

	if (useServer && useSbs == true){  
		CreateItemEx(OptionSSBS, nSERVER, server, "SE", renewal);
		CreateItemEx(OptionSSBSE, nSERVER, server, "SE", renewal);
	}
	
	if (useExchange) { 
		if (snumber > 9){
			CreateItemEx(OptionSS, nEXCHANGE, exchange, "EE", renewal);
		}
		CreateItemEx(OptionSSE, nEXCHANGE, exchange, "EE", renewal);
		if (useSbs){
		  CreateItemEx(OptionSSBS, nEXCHANGE, exchange, "EE", renewal);
		  CreateItemEx(OptionSSBSE, nEXCHANGE, exchange, "EE", renewal);
		}
	}
	if ((useExchange == true)&& (addExchange > 0)) {
		if (snumber > 9){
			CreateItemEx(OptionSA, nEXCHANGE, addExchange, "EE", renewal);
		}
		if (snumber > 19){
			CreateItemEx(OptionSE, nEXCHANGE, addExchange, "EE", renewal);
		}
	}

	if ((useExchange == true)&& (addExchangeNext > 0)) {
		CreateItemEx(OptionSAE, nEXCHANGE, addExchangeNext, "EE", renewal);
		CreateItemEx(OptionSEE, nEXCHANGE, addExchangeNext, "EE", renewal);
	}
	
	if (useIsa) { 
		if (snumber > 9){
			CreateItemEx(OptionSS, nISA, isa, "IE", renewal);
			CreateItemEx(OptionSA, nISA, isa, "IE", renewal);
		}
		CreateItemEx(OptionSSE, nISA, isa, "IE", renewal);
		CreateItemEx(OptionSAE, nISA, isa, "IE", renewal);
		if (useSbs){
		  CreateItemEx(OptionSSBS, nISA, isa, "IE", renewal);
		  CreateItemEx(OptionSSBSE, nISA, isa, "IE", renewal);
		}
	}

	if ((useIsa == true) && (addIsa > 0)) {
		if (snumber > 19){
			CreateItemEx(OptionSE, nISA, addIsa, "IE", renewal);
		}
	}
	if ((useIsa == true) && (addIsaNext > 0)) {
		CreateItemEx(OptionSEE, nISA, addIsaNext, "IE", renewal);
	}


	if (useSmtp) { 
		if (snumber > 9){
			CreateItemEx(OptionSS, nSMTP, smtp, "SMTP", renewal);
			CreateItemEx(OptionSA, nSMTP, smtp, "SMTP", renewal);
		}
		CreateItemEx(OptionSSE, nSMTP, smtp, "SMTP", renewal);
		CreateItemEx(OptionSAE, nSMTP, smtp, "SMTP", renewal);
		if (useSbs){
		  CreateItemEx(OptionSSBS, nSMTP, smtp, "SMTP", renewal);
		  CreateItemEx(OptionSSBSE, nSMTP, smtp, "SMTP", renewal);
		}
	}

	if ((useSmtp == true)&& (addSmtp > 0)) {
		if (snumber > 19){
			CreateItemEx(OptionSE, nSMTP, addSmtp, "SMTP", renewal);
		}
	}
	if ((useSmtp == true)&& (addSmtpNext > 0)) {
		CreateItemEx(OptionSEE, nSMTP, addSmtpNext , "SMTP", renewal);
	}

	


	


	if (useSbsStandard){
		if (sbs > 0) {
			CreateItemEx(OptionSSBS, nSBS_STANDARD, sbs, "SBSS", renewal);
		}
		if (snumber > 9){
			CreateItemEx(OptionSS, nSBS_STANDARD, sbs_standard, "SBSSS", renewal);
			CreateItemEx(OptionSA, nSBS_STANDARD, sbs_standard, "SBSSS", renewal);
		}
		if (snumber > 19){
			CreateItemEx(OptionSE, nSBS_STANDARD, sbs_standard, "SBSSS", renewal);
		}
		CreateItemEx(OptionSSE, nSBS_STANDARD, sbs_standard, "SBSSS", renewal);
		CreateItemEx(OptionSAE, nSBS_STANDARD, sbs_standard, "SBSSS", renewal);
		CreateItemEx(OptionSEE, nSBS_STANDARD, sbs_standard, "SBSSS", renewal);
		CreateItemEx(OptionSSBSE, nSBS_STANDARD, sbsNext, "SBSS", renewal);
	}
	
	
	if (useSbsPremium){
		if (sbs > 0) {
			CreateItemEx(OptionSSBS, nSBS_PREMIUM, sbs, "SBSP", renewal);
		}
		if (snumber > 9){
			CreateItemEx(OptionSS, nSBS_PREMIUM, sbs_premium, "SBSPS", renewal);
			CreateItemEx(OptionSA, nSBS_PREMIUM, sbs_premium, "SBSPS", renewal);
		}
		if (snumber > 19){
			CreateItemEx(OptionSE, nSBS_PREMIUM, sbs_premium, "SBSPS", renewal);
		}
		CreateItemEx(OptionSSE, nSBS_PREMIUM, sbs_premium, "SBSPS", renewal);
		CreateItemEx(OptionSAE, nSBS_PREMIUM, sbs_premium, "SBSPS", renewal);
		CreateItemEx(OptionSEE, nSBS_PREMIUM, sbs_premium, "SBSPS", renewal);
		CreateItemEx(OptionSSBSE, nSBS_PREMIUM, sbsNext, "SBSP", renewal);
	}
	
	if (useLinux) { 
		if (snumber > 9){
			CreateItemEx(OptionSS, nLINUX, linux, "LIN", renewal);
		}
		CreateItemEx(OptionSSE, nLINUX, linux, "LIN", renewal);
		if (useSbs){
			CreateItemEx(OptionSSBS, nLINUX, linux, "LIN", renewal);
			CreateItemEx(OptionSSBSE, nLINUX, linux, "LIN", renewal);
		}
	}

	if ((useLinux == true)&& (addLinux > 0)) {
		if (snumber > 9){
			CreateItemEx(OptionSA, nLINUX, addLinux, "LIN", renewal);
		}
		if (snumber > 19){
			CreateItemEx(OptionSE, nLINUX, addLinux, "LIN", renewal);
		}
	}
	
	if ((useLinux == true)&& (addLinuxNext > 0)) {
		CreateItemEx(OptionSAE, nLINUX, addLinuxNext, "LIN", renewal);
		CreateItemEx(OptionSEE, nLINUX, addLinuxNext, "LIN", renewal);
	}
	
	if (usePda) { 
		if (snumber > 9){
			CreateItemEx(OptionSS, nPDA, pda, "PDA", renewal);
			CreateItemEx(OptionSA, nPDA, pda, "PDA", renewal);
		}
		CreateItemEx(OptionSSE, nPDA, pda, "PDA", renewal);
		CreateItemEx(OptionSAE, nPDA, pda, "PDA", renewal);
	    if (useSbs){
			CreateItemEx(OptionSSBS, nPDA, pda, "PDA", renewal);
			CreateItemEx(OptionSSBSE, nPDA, pda, "PDA", renewal);
		}
	}

	if ((usePda == true)&& (addPda > 0)) {
		if (snumber > 19){
			CreateItemEx(OptionSE, nPDA, addPda, "PDA", renewal);
		}
	}
	if ((usePda == true)&& (addPdaNext > 0)) {
		CreateItemEx(OptionSEE, nPDA, addPdaNext, "PDA", renewal);
	}

	if (useKerio) { 
		if (snumber > 9){
			CreateItemEx(OptionSS, nKERIO, kerio, "AFK", renewal);
			CreateItemEx(OptionSA, nKERIO, kerio, "AFK", renewal);
		}
		CreateItemEx(OptionSSE, nKERIO, kerio, "AFK", renewal);
		CreateItemEx(OptionSAE, nKERIO, kerio, "AFK", renewal);
		if (useSbs){
			CreateItemEx(OptionSSBS, nKERIO, kerio, "AFK", renewal);
			CreateItemEx(OptionSSBSE, nKERIO, kerio, "AFK", renewal);
		}
	}
	if ((useKerio == true)&& (addKerio > 0)) {
		if (snumber > 19){
			CreateItemEx(OptionSE, nKERIO, addKerio, "AFK", renewal);
		}
	}
	if ((useKerio == true)&& (addKerioNext > 0)) {
		CreateItemEx(OptionSEE, nKERIO, addKerioNext, "AFK", renewal);
	}

	var BartRenewal = 0;
	if (renewal > 0) 	BartRenewal = 80; 
	
	if (useBartAmin) { 
		if (snumber > 9){
			CreateItemEx(OptionSS, nBART_ADMIN, bart_admin, "BARTA", BartRenewal);
			CreateItemEx(OptionSA, nBART_ADMIN, bart_admin, "BARTA", BartRenewal);
		}
		if (snumber > 19){
			CreateItemEx(OptionSE, nBART_ADMIN, bart_admin, "BARTA", BartRenewal);
		}
		CreateItemEx(OptionSSE, nBART_ADMIN, bart_admin, "BARTA", BartRenewal);
		CreateItemEx(OptionSAE, nBART_ADMIN, bart_admin, "BARTA", BartRenewal);
		CreateItemEx(OptionSEE, nBART_ADMIN, bart_admin, "BARTA", BartRenewal);
		if (useSbs){
			CreateItemEx(OptionSSBS, nBART_ADMIN, bart_admin, "BARTA", BartRenewal);
			CreateItemEx(OptionSSBSE, nBART_ADMIN, bart_admin, "BARTA", BartRenewal);
		}
	}
	if (useBartService) { 
		if (snumber > 9){
			CreateItemEx(OptionSS, nBART_SERVICE, bart_service, "BARTS", BartRenewal);
			CreateItemEx(OptionSA, nBART_SERVICE, bart_service, "BARTS", BartRenewal);
		}
		if (snumber > 19){
			CreateItemEx(OptionSE, nBART_SERVICE, bart_service, "BARTS", BartRenewal);
		}
		CreateItemEx(OptionSSE, nBART_SERVICE, bart_service, "BARTS", BartRenewal);
		CreateItemEx(OptionSAE, nBART_SERVICE, bart_service, "BARTS", BartRenewal);
		CreateItemEx(OptionSEE, nBART_SERVICE, bart_service, "BARTS", BartRenewal);
		if (useSbs){
			CreateItemEx(OptionSSBS, nBART_SERVICE, bart_service, "BARTS", BartRenewal);
			CreateItemEx(OptionSSBSE, nBART_SERVICE, bart_service, "BARTS", BartRenewal);
		}
	}

	

	

	var tmpVal = "<h2>"+LBL_SHOW_WHY+"</h2><table width='100%'><tr>";
	tmpVal += "<th align='left' style='font-weight:normal;'>"+LBL_PRODUCT_NAME+"</th><th align='right' style='font-weight:normal;'>"+LBL_LICENSES+"</th><th align='right' style='font-weight:normal;'>"+LBL_PRICE_LINE+"</th>" ;
	tmpVal+= "</tr>";
	tmpVal+=  "<tr><td colspan='3'><HR></td></tr>";
	var tmpPrice = 0;
	var solution_number = 0;
	var tmpValPos = "";
	for (Options in PriceOptions) {
		tmpPrice = 0;
		tmpValPos = "";
		for(OptionItems in PriceOptions[Options][iAvs]) {
			if (typeof tmpPrice == "number") {
				tmpValPos+= "<TR><TD align='left'>" + PriceOptions[Options][iAvs][OptionItems][0] + "</td><td align='right'>" + PriceOptions[Options][iAvs][OptionItems][1] + " x " + MakeDecimals(PriceOptions[Options][iAvs][OptionItems][3]) +' ' + Currency + " </td><td align='right'> " + MakeDecimals(PriceOptions[Options][iAvs][OptionItems][2]) + ' ' + Currency + "</td></tr>"; 
				if (PriceOptions[Options][iAvs][OptionItems][6] > 0){
					tmpValPos+=  "<tr><td align='left'>"+LBL_RENEWAL+" </td><td align='right' class='renewal'>-"+PriceOptions[Options][iAvs][OptionItems][6]+" %</td><td align='right' class='renewal'>-"+ MakeDecimals(PriceOptions[Options][iAvs][OptionItems][2] - ( 1-(PriceOptions[Options][iAvs][OptionItems][6]/100))*PriceOptions[Options][iAvs][OptionItems][2] ) + ' ' + Currency +"</td></tr>";
					tmpPrice = tmpPrice + PriceOptions[Options][iAvs][OptionItems][2] - ( (PriceOptions[Options][iAvs][OptionItems][6]/100))*PriceOptions[Options][iAvs][OptionItems][2] ;
				} else {
					tmpPrice = tmpPrice + PriceOptions[Options][iAvs][OptionItems][2];
				}
			} else { 
				tmpPrice = "N/A";
			}
		}
		if (tmpPrice > 0){
			tmpValPos+=  "<tr><td colspan='2' align='left'><b>"+LBL_PRICE+"</b></td><td align='right'><b>"+ MakeDecimals(tmpPrice) + ' ' + Currency +"</b></td></tr>";
			tmpValPos+=  "<tr><td colspan='3'><HR></td></tr>";
		}
 		if ((tmpPrice > 0) && (RecomendedSuitePrice > tmpPrice)) {
			RecomendedSuite = Options;
			RecomendedSuitePrice = tmpPrice;
		}
		if (typeof tmpPrice == "number" && tmpPrice > 0) {
			tmpVal+=tmpValPos;
			solution_number++;
		}
	}
	tmpVal+= "</table>";
	if (solution_number > 0)
		_d.getElementById("debug").innerHTML = tmpVal;
	else 
		_d.getElementById("debug").innerHTML = MSG_SORRY;

//###################################

	var _discount = _c.Discount.value / 100;
	if (_c.Discount.value == 0)  _discount  = (SpecialDiscount/100)
	var	sol = "";
	if (!isNaN(PriceOptions)) ;
	sol = prepare_results(FinalPrice, _discount, PriceOptions[RecomendedSuite], PO, iAvs);


}


function UpdateDiscount(){
	var _discount_cupon = "";
	var _dc = "";
//	var SpecialDiscount;
//	var SpecialDiscountCoupon;
	var renewal = false;

	
	
}


function UpdateBartInfo(){
	var _bart_admin = _d.getElementById("lBartAdmin");
	var _bart_service = _d.getElementById("lBartService");
//	tmp = '';
	for (var i = 0; i<_d.calc.Bart.length; i++){
		if (_d.calc.Bart[i].checked && _d.calc.Bart[i].value == 'ADMINISTRATOR'){
			_bart_admin.style.display = 'inline';
			_bart_service.style.display = 'none';
		}
		if (_d.calc.Bart[i].checked && _d.calc.Bart[i].value == 'SERVICEMAN'){
			_bart_service.style.display = 'inline';
			_bart_admin.style.display = 'none';
		}
	}
}



function WriteResults(inx, Count, ResultNamePart, Currency){
	var Ret = 0;
	var count  = 0;
	if (Count.disabled == false)
		count = parseInt(Count.value, 10);
	else
		count = 0;
	var PricePerLicence = GetPrice(inx, count) ;
	var price = PricePerLicence * count ;
	
	var i_first =  inx.indexOf("_");
	var i_str = inx.substring(i_first+1, inx.length);
	i_first =  i_str.indexOf("_");
	var s = i_str.substring(i_first, inx.length);
//	if (inx.indexOf('_LIN') > 0) alert(Count.value + ' - ' + price);
	if ((Number (price)) && (price > 0)){
		if (count > 1000 && ((inx.indexOf('_LIN') > 0) || (inx.indexOf('_SMTP') > 0))){
			price = PricePerLicence * 1000 ;
//			document.getElementById(ResultNamePart).innerHTML =  1000 + " * " + PricePerLicence + " = " + MakeDecimals(price) + " " + Currency;
			document.getElementById(ResultNamePart).innerHTML =  LBL_UNLIMITED_LICENSE + MakeDecimals(price) + " " + Currency;
		}else{
			document.getElementById(ResultNamePart).innerHTML = count + " * " + MakeDecimals(PricePerLicence) + " = " + MakeDecimals(price) + " " + Currency;
		}
	}else{
		if (Count.value == 0 || Count.disabled) {
			price = 0;
			document.getElementById(ResultNamePart).innerHTML =  MakeDecimals(0) + " " + Currency ;
		}else{
			price = -1;
			document.getElementById(ResultNamePart).innerHTML = 'N/A';
		}
	}
	return price;
}



function GetRadioValue(_r){
	var ret = '0';
	for(var i = 0; i< _r.length; i++){
	//alert(_r[i].checked );
		if (_r[i].checked == true) ret = _r[i].value;
	}	
	return ret;
}

// inx = tag kterej identifikuje cenik [napr CZK_1_SBS_PRE]
// iLic = pocet potrebnych licenci
function GetPrice(inx, iLic){
	var Ret = -1;
	if (iLic > 0){
		
		
		var pr = p[inx];
		if (typeof(pr) == typeof(undefined))	return "N/A";
		var alicenses_min = new Array();
		var alicenses_max = new Array();
		var aprice = new Array();
		var ix = 0;
		var pricelic = "";
		var licenses_min = "";
		var licenses_max = "";
		var price = "";
		var i = 0;
//		alert(pr);
		while(pr.indexOf("|") > 0){
			i = pr.indexOf("|");
			pricelic = pr.substr(0, i );
			pr = pr.substr(i+1, pr.length - i - 1);
			i = pricelic.indexOf("_");
			licenses_min = pricelic.substr(0, i);
			price = pricelic.substr(i+1, pricelic.lastIndexOf('_') - i - 1);
			licenses_max = pricelic.substr(pricelic.lastIndexOf('_')+1, pricelic.length - pricelic.lastIndexOf('_') - 1);
			//alert("price: " + pricelic + "; Licenses: " + licenses + "; Price: " + price);
			price = price.replace(",",".");
			alicenses_min[ix] = parseInt(licenses_min);
			if (licenses_min <= licenses_max) 
				alicenses_max[ix] = parseInt(licenses_max);
			else
				alicenses_max[ix] = -1;//parseInt(99999999999);
			aprice[ix] = parseFloat(price);
			ix++;
		}
		var needLic = parseInt(iLic);
		var iRet = -1;
		for (i = 0	; i<alicenses_min.length; i++){
			if ((alicenses_min[i] <= needLic) && (alicenses_max[i] >= needLic)) iRet = i;
		}
		if (aprice[iRet] == undefined) {
			Ret = -1;
		//	alert(aprice[iRet]);
		} else {
			Ret = aprice[iRet];
		}
	}
	return 	Ret;
}

// doplni desetina mista na konec
function MakeDecimals(number){
	var  s = new String;
	if (isNaN(number)) return 'N/A';
	s = String(Math.round(number  * 100) / 100);
	var i = s.indexOf('.');
	if (i == -1) s += '.00';
	if (i == s.length - 2) s += '0';
	return s;
} 


function GenerateInput(Name, Value){
	var ret = '';	
	if (Name == 'cMSServer' || Name == 'cExchange' || Name == 'cIsa'|| Name == 'cSmtp'|| Name == 'cSp' || Name == 'cSbsStandard' || Name ==  'cSbsPremium' || Name ==  'cLinux' || Name ==  'cDom'){
		ret = '<input type="text" name="' + Name + '" value="' + Value + '" size=4 onKeyUp="this.CanChange = 0; Calculate();" onChange="Calculate();">';
	}else{
		ret = "<input type='text' name='" + Name + "' value='" + Value + "' size=4  onKeyUp='Calculate();' onChange='Calculate();'>";
	}
//	alert(ret);
	return ret;
}

function GenerateCheckbox(Name, Value, Label)
{
	var ret = '<label><input type="checkbox" id="' + Name + '" name="' + Name + '" ' + Value + ' onKeyUp="chkUpdate(this);Calculate();" onClick="chkUpdate(this); Calculate();">'+ Label +'</label>';
	return ret;
}


function GenerateRadio(Name, Options, Default, OnChange)
/*Option is Array of {Key, Value, key, Value, ...}*/
{
	
	if (isNaN(OnChange) == 'NaN') 
		OnChange = '';
	var ret = '';
	for (var i = 0; i < Options.length; i+=2)
	{
		if (((Default-1) * 2) == i)
			ret+= '<label><input type="radio" name="' + Name + '" value="' + Options[i] + '" CHECKED ' + OnChange + '>' + Options[i+1] + '</label><BR> \n ';
		else 
			ret+= '<label><input type="radio" name="' + Name + '" value="' + Options[i] + '" ' + OnChange + '>' + Options[i+1] + '</label><BR> \n ';
	}
//	alert(ret);
	return ret;
}

function GenerateSelect(Name, Options, Default, OnChange)
/*Option is Array of {Key, Value, key, Value, ...}*/
{
	if (isNaN(OnChange) == 'NaN')
		OnChange = ' onChange="Calculate();';
	var ret = '<select name="' + Name + '" '+ OnChange +'> \n ';
	for (var i = 0; i < Options.length; i+=2)
	{
		if (((Default-1) * 2) == i)
			ret+= '<option value="' + Options[i] + '" selected>' + Options[i+1] + '</option> \n ';
		else 
			ret+= '<option value="' + Options[i] + '">' + Options[i+1] + '</option> \n ';
	}
	ret+= '</select> \n';
//	alert(ret);	
	return ret;
}

function WriteTableRow(p1, p2, p3){
	var ret = "<TR>";
	ret+= "<TD width=80%>"+ p1 +"</TD>\n";
	ret+= "<TD style='vertical-align:bottom;text-align:right;'>"+ p2 +"</TD>\n";
	ret+= "</TR>\n";
	ret+= "<TR>\n";
	ret+= '<TD colspan=2 style="vertical-align:top; text-align:right;">'+ p3 +'</TD>';
	ret+= "</TR>\n";
	return ret;
}
