
// Localizable strings for JavaScript generated content. 
// Please also see HTML to be localized at the bottom of this page.
var STR_emdash 			= "&#151;";
var STR_num_delim 		= ".";
var STR_ed			= "Educaci&ocate;n";
var STR_gov			= "Administraci&oacute;n";
var STR_comm			= "Comercial";
var STR_title1			= "Adobe Open Options 4.5";
var STR_title2			= "Calculadora de nivel de descuento";
var STR_points_header 	= "Puntos";
var STR_level_header	= "Nivel";
var STR_click_msg 		= 'Haz clic en "Determinar nivel" a continuaci&oacute;n para determinar el nivel de descuento en la adquisici&oacute;n de varias licencias.';
var STR_reset_confirm 	= "&iquest;Est&aacute; seguro de que desea restablecer el formulario?";
var STR_no_points		= "Debe especificar el n&uacute;mero de licencias para que se puedan calcular los puntos totales.";
var STR_total 			= "Puntos totales: ";
var STR_clp 			= "Nivel de descuento para CLP: ";
var STR_tlp 			= "Nivel de descuento para TLP: ";
var STR_min_order		= "*El pedido m&iacute;nimo es de 100 unidades.";

// Set region and organization types here.
var region = "other";	// Region: "usjp" - us & japan, "other" - rest of the world
var org = "comm";		// Organization: "comm" - commercial, "gov" - government, "ed" - education

// Parse URL for region/org information.
var url = document.location.href;
var urlVars = url.substr(url.lastIndexOf('?')+1);
if (urlVars.length != 0) {
	pairs = urlVars.split('&',2);
	for(i=0; i < pairs.length; i++) {
		tmp = pairs[i].split('=',2);
		if (tmp[0] == "org" || tmp[0] == "region")
			eval(tmp[0] + "='" + tmp[1] + "'");
	}
}

// Point level arrays for CLP & TLP
var levels = new Object();
levels.comm = new Object();
levels.comm.other = new Object();
levels.ed = new Object();
levels.gov = new Object();

// Commercial
levels.comm.CLP 	  = new Array(40000, 100000, 225000, 350000);
levels.comm.TLP 	  = new Array(1, 1500, 25000);
levels.comm.other.CLP = new Array(25000, 50000, 100000, 200000);
levels.comm.other.TLP = new Array(1, 1500, 15000);

// Education
levels.ed.CLP		 = new Array(6000, 20000, 50000);
levels.ed.TLP		 = new Array(1, 1000, 5000);

// Government
levels.gov.CLP		 = new Array(40000, 225000);
levels.gov.TLP	  	 = new Array();
levels.gov.TLP[0] = 1;

var tlp_codes = ["R", "S", "T"];

var points = null;
var org_title = "";

switch (org) {
	case "ed":
		points = levels.ed;
		org_title = STR_ed;
		break;
	case "gov":
		points = levels.gov;
		org_title = STR_gov;
		break;
	case "comm":
	default:
		points = levels.comm;
		org_title = STR_comm;
		if (region == "other") points = levels.comm.other;
}


var products = products_commgov;
if (org == "ed") products = products_ed;

// Generate product table
function displayProducts() {
	tabIndex = 1;
	osc = true;
	for(i=0; i<products.length; i++) {
		pID = i;
		pTitle = products[i][0];
		pURL = products[i][1];
		licensePoints = "&nbsp;";
		licenseInput = "&nbsp;";
		if (products[i][2] != 0) {
			licenseInput = '<input type="text" id="'+ pID +'_l" name="'+ pID +'_l" size="4" maxlength="4" tabindex="'+ tabIndex++ +'">';
			licensePoints = formatNumber(products[i][2]);
		}		
		upgradePoints = "&nbsp;";
		upgradeInput = "&nbsp;";
		if (products[i][3] != 0) {
			upgradeInput = '<input type="text" id="'+ pID +'_u" name="'+ pID +'_u" size="4" maxlength="4" tabindex="'+ tabIndex++ +'">';
			upgradePoints = formatNumber(products[i][3]);
		}
		planPoints = "&nbsp;";
		planInput = "&nbsp;";
		if (products[i][4] != 0) {
			planInput = '<input type="text" id="'+ pID +'_p" name="'+ pID +'_p" size="4" maxlength="4" tabindex="'+ tabIndex++ +'">';
			planPoints = formatNumber(products[i][4]);
		}
		bg = osc ? "#ffffff" : "#eeeeee";
		osc = !osc;
		document.writeln('<tr valign="middle" bgcolor="'+ bg +'">');
		document.writeln('<td class="smallbody" nowrap><a onclick="OpenWindow(\''+ pURL +'\');return false;" href="'+ pURL +'">'+ pTitle +'</a></td>');
		document.writeln('<td align="center" class="smallbody">'+ licenseInput +'</td>');
		document.writeln('<td align="center" class="smallbody">'+ licensePoints +'</td>');
		document.writeln('<td align="center" class="smallbody">'+ upgradeInput +'</td>');
		document.writeln('<td align="center" class="smallbody">'+ upgradePoints +'</td>');
		document.writeln('<td align="center" class="smallbody">'+ planInput +'</td>');
		document.writeln('<td align="center" class="smallbody">'+ planPoints +'</td>');
		document.writeln('</tr>');
	}
}


// Reset form (requires confirmation)
function resetForm() {
	if (!confirm(STR_reset_confirm)) return;
	document.forms[0].reset();

	document.getElementById("message").innerHTML = '<h2>'+ STR_click_msg +'</h2>';
}

// Calculate total & display CLP/TLP levels, along with tables.
function total() {
	tally = 0;
	CLPlevel = 0;
	TLPlevel = 0;

	//compute total point tally
	for(i=0; i<products.length; i++) {
		licenseInput = 0;
		if (products[i][2] != 0) licenseInput = parseInt(document.getElementById(i+"_l").value);
		if (isNaN(licenseInput)) licenseInput = 0;

		upgradeInput = 0;
		if (products[i][3] != 0) upgradeInput = parseInt(document.getElementById(i+"_u").value);
		if (isNaN(upgradeInput)) upgradeInput = 0;

		planInput = 0;
		if (products[i][4] != 0) planInput = parseInt(document.getElementById(i+"_p").value);
		if (isNaN(planInput)) planInput = 0;

		tally += licenseInput * products[i][2] + upgradeInput * products[i][3] + planInput * products[i][4];
	}
	
	if (tally == 0) {
		alert(STR_no_points);
		return false;
	}
	
	//determine which levels user qualifies for
	for(i=0; i<points.CLP.length; i++) {
		if (tally >= points.CLP[i]) CLPlevel = i+1;
		else break;
	}
	for(i=0; i<points.TLP.length; i++) {
		if (tally >= points.TLP[i]) TLPlevel = i+1;
		else break;
	}
	
	//display CLP/TLP levels
	msg = '<h2>'+ STR_total + formatNumber(tally) +'</h2>';
	msg += '<h3>'+ STR_clp + CLPlevel +'<br>';
	msg += '<h3>'+ STR_tlp + tlp_codes[TLPlevel-1] +'</h3>';
	
	//generate points tables
	table_start = '<table border="0" cellspacing="0" cellpadding="4">';
	table_header = '<tr bgcolor="#cccccc"><td align="center"><b><span class="bodytext">'+ STR_level_header +'</span></b></td><td align="center"><b><span class="bodytext">'+ STR_points_header +'</span></b></td></tr>';
	
	clp_table = table_start + table_header;
	for(i=0; i<points.CLP.length; i++) {
		clp_table += '<tr><td bgcolor="white" align="center"><span class="bodytext">'+ (i+1) +'</span></td><td bgcolor="white" align="center"><span class="bodytext">'+ formatNumber(points.CLP[i]) +'</span></td></tr>';
	}
	clp_table += "</table>";
  tlp_table = table_start + table_header;
  for(i=0; i<points.TLP.length; i++) {
		tlp_table += '<tr><td bgcolor="white" align="center"><span class="bodytext">'+ tlp_codes[i] +'</span></td><td bgcolor="white" align="center"><span class="bodytext">'+ formatNumber(points.TLP[i]) +'</span></td></tr>';
	}
	tlp_table += "</table>";

	pointsTables = '<table class="points" cellpadding="8" cellspacing="0" border="0"><tr valign="top" align="center"><td><span class="bodytext"><b>CLP</b></span>'+ clp_table +'</td><td><span class="bodytext"><b>TLP</b></span>'+ tlp_table +'</td></tr></table>';
	
	document.getElementById("message").innerHTML = msg + pointsTables;
	return false;
}

function writeTitle() {
	titleElement = document.getElementById("title");
	titleElement.innerHTML = STR_title1 + "<br>" + org_title + " " + STR_title2;
	document.title = STR_title1 + " " + org_title + " " + STR_title2;
}

function displayMinOrder() {
	if (org != "ed")
		document.write(STR_min_order + "<br>");
}


// Format a number: ##### -> ##,### (see STR_num_delim above)
function formatNumber(num) {
	if (!num) num=1;
	str = num.toString();
	out = "";
	while (str.length > 3) {
		out = STR_num_delim + str.substr(str.length-3) + out;
		str = str.substr(0,str.length-3);
	}
	out = str+out;
	return out;
}


