discount = 1;
wlwl = 0;
admission_doctypes = {
		142: 1,
        143: 1,
        144: 1, 
        145: 1,
        154: 1
        };

function priceOfItem(doctype_id, urg, wr_level, pages, papers) {
    //if (!(papers>0)) papers = 1;
    
	if (doctypes[doctype_id].prices[urg][wr_level][0]) {
		t = doctypes[doctype_id].prices[urg][wr_level];
		maxm = t[0][1];
		price = t[0][2];
		for (g in t) {
			if (t[g][0]>=maxm) { maxm = t[g][0]; price = t[g][2]; }
			
			if ( (pages >= t[g][0] && pages <= t[g][1]) ||
					(pages >= t[g][0] && 0 == t[g][1])
			     ) {
				return (Math.round(t[g][2] * pages * 100) / 100).toFixed(2);
			}
		}
		return (Math.round(price * pages * 100) / 100).toFixed(2);
	} else {
		koef = 1;
        pp = 1;
        if(admission_doctypes[doctype_id] == 1) { 
            pp = papers;
            if (papers < 2) { koef = 1;} else 
		    if (papers < 4) { koef = 0.95; } else 
		    if (papers < 6) { koef = 0.9; } else 
					    { koef = 0.85; }
        } else {
		    if (pages < 15) { koef = 1;} else 
		    if (pages < 21) { koef = 0.95; } else 
		    if (pages < 36) { koef = 0.9; } else 
					    { koef = 0.85; }
        }
        
		discount = koef;

		return (Math.round(koef * pp * pages * doctypes[doctype_id].prices[urg][wr_level] * 100) / 100).toFixed(2);
	}
}

function genTable(doctype_id, pages_count, papers, lvl) {
	if (!(pages_count>0)) pages_count = 1;
    if (!(papers>0)) papers = 1;
    
    pages_num = '';
    if(pages_count > 1) pages_num = '&numpages='+pages_count; 
    papers_num = '';
    if(papers > 1) papers_num = '&numpapers='+papers;
    
	pricesTable = document.createElement('table');
	pricesTable.className = 'prices';
	pricesTable.id        = 'prices';
	pricesTable.cellSpacing = '1';
	hr = document.createElement('tr');
	pricesTable.appendChild(hr);
	
	th1 = document.createElement('th');

	levels_count = 0;
	if (doctypes && doctypes[doctype_id] && doctypes[doctype_id]['q_levels'])
		for (tt in doctypes[doctype_id]['q_levels']) { levels_count++; }
	col_width = Math.round(100/(levels_count+1))+'%';

	th1.width = col_width;
		hr.appendChild(th1);
	
    if (levels_count>1 && levels_count<=3) {
        img = document.createElement('img');
		th1.appendChild(img);
		img.src = '/images/urwrl.gif';
	} else {
		img = document.createElement('img');
		th1.appendChild(img);
		//img.src = '/images/urwrl_prices.gif';
        th1.innerHTML = '<span>Urgency</span>';
	}
	
    
    /*if(count_wr_level_td>0)
		td_count = count_wr_level_td;
	else td_count = 3;*/
    
    if(levels_count>6) {
            if(wlwl > 0) {
                th = document.createElement('th');
		        th.width = col_width;
		        hr.appendChild(th);
                str_wrlevel = doctypes[doctype_id]['q_levels'][wlwl];
		        th.innerHTML = '<span>'+str_wrlevel+'</span>';
            } else {
                th = document.createElement('th');
		        th.width = col_width;
		        hr.appendChild(th);
                
                sel = document.createElement('select');
                sel.name = 'level_choice';
                sel.id = 'level_choice';
                sel.setAttribute('onChange', 'ch_lvl()')
                //sel.name = 'level_choice';
                for (wr_level in doctypes[doctype_id]['q_levels']) {
                    op = document.createElement('option');
                    op.value =  wr_level;
                    op.innerHTML = doctypes[doctype_id]['q_levels'][wr_level]; 
                    if(wr_level == lvl) op.selected = true
                    sel.appendChild(op); 
                }
                th.appendChild(sel);
            }
    } else {
        if(wlwl > 0) {
            th = document.createElement('th');
		    th.width = col_width;
		    hr.appendChild(th);
            str_wrlevel = doctypes[doctype_id]['q_levels'][wlwl];
            if(str_wrlevel == '' || (levels_count==1 && admission_doctypes[document.getElementById('selDoctype').value] != 1)) str_wrlevel = 'Prices';
		    th.innerHTML = '<span>'+str_wrlevel+'</span>';
        } else {
			if (doctypes && doctypes[doctype_id] && doctypes[doctype_id]['q_levels'])
	        for (wr_level in doctypes[doctype_id]['q_levels']) {
		        th = document.createElement('th');
		        th.width = col_width;
		        hr.appendChild(th);
                
                str_wrlevel = doctypes[doctype_id]['q_levels'][wr_level];

                if(str_wrlevel == '' || (levels_count==1 && admission_doctypes[document.getElementById('selDoctype').value] != 1)) str_wrlevel = 'Prices';
		        th.innerHTML = '<span>'+str_wrlevel+'</span>';
	        }
        }
    }
	i = 0;
	if (doctypes && doctypes[doctype_id] && doctypes[doctype_id]['q_levels'])

	for (urg in doctypes[doctype_id]['ur_levels']) {
		i++;
		tr = document.createElement('tr');
		tr.className = i%2?'odd':'even';
		
		td = document.createElement('td');
		td.className = 'urgency';
		td.innerHTML = doctypes[doctype_id]['ur_levels'][urg];
		tr.appendChild(td);
		
        if(levels_count>6) {
            k = 0; 
            for (wr_level in doctypes[doctype_id]['q_levels']) {
                if(lvl != -1) k++;
                if(k == 0 || wr_level == lvl) {
			        td = document.createElement('td');
			        td.innerHTML = (doctypes.currency + priceOfItem(doctype_id, urg, wr_level, pages_count, papers));
			        
			        tr.appendChild(td);
                }
                k ++;
		    } 
        } else {
		    for (wr_level in doctypes[doctype_id]['q_levels']) {
			    td = document.createElement('td');
			    td.innerHTML = (doctypes.currency + priceOfItem(doctype_id, urg, wr_level, pages_count, papers));
			    
			    tr.appendChild(td);
		    }
        }
		
		pricesTable.appendChild(tr);
	}
	
	return pricesTable;
}


function insertTable(element, doctype_id, pages_count, papers, lvl) {
	if (navigator.appName.indexOf('Microsoft Internet Explorer')>=0) {
		element.innerHTML = '';
		ee = genTable(doctype_id, pages_count, papers, lvl);
		element.innerHTML = ee.outerHTML;
		return;
	}

	try {
		element.removeChild(document.getElementById('prices'));
		e = genTable(doctype_id, pages_count, papers, lvl);
		element.appendChild(e);
	}
	catch(e) {
		element.innerHTML = '';
		ee = genTable(doctype_id, pages_count, papers, lvl);
		element.innerHTML = ee.outerHTML;
	}            
}
function filterInt(item) {
	if (item.value != parseInt(item.value)) { 
		if (parseInt(item.value) > 0)  {
			item.value = parseInt(item.value);
		} else {
			item.value = 1;	
		}
	} else 
	if (!(parseInt(item.value)>0)){
		item.value = 1;
	}
}	
function doUpdatePagesText() {
	if (document.getElementById('tr_papers')) {
	    document.getElementById('tr_papers').style.display='none';
	}
    if(admission_doctypes[document.getElementById('selDoctype').value] == 1) {
        document.getElementById('tr_papers').style.display='';
    }
    texts = {
		0:   'Select number of pages:',
		124: 'Select number of problems:',
		139: 'Select number of problems:',
		51:  'Select number of slides:',
		125: 'Select number of questions:'
	}
	texts[13]=texts[14]=texts[37]=texts[38]=texts[85]=texts[39]=texts[1]=texts[15]=texts[40]=texts[3]=
		texts[80]=texts[81]=texts[82]=texts[83]=texts[84] = texts[0];
	texts[126]=texts[125];

	doctype_id = document.getElementById('selDoctype').value;

	if (!(t = texts[doctype_id])) { t = texts[0]; }

	if (document.getElementById('sel_pages_text')) {
		document.getElementById('sel_pages_text').innerHTML = t;
	}
}
function doUpdateQualities() {
    doctypeToQuality = {
		0:  0, 13: 0, 14: 0, 39:0, 84: 0,
        
		37: 1, 38: 1, 85: 1,
		
        40: 2,
		
        1:  3, 15: 3,
		
         
        80:4, 81: 4, 83: 4, 124: 4,
        139:4,
        142:4, 143:4, 144:4, 145:4, 
		152: 4, 156: 4, 157:4, 154:4, 158:4, 159:4, 

        82: 5,
		
        125:7, 126:7,
		
        70: 8,
        
        51: 9,
        
        3: 10,
        
        146:11, 147:11, 148:11, 149:11, 150:11, 151:11,
         
        172: 12
        
    };

    doctype_id = document.getElementById('selDoctype').value;
    i = 0; max = 20;
    for(l = 0; l <= max; l++)
    {
        if(t = document.getElementById('level-'+l))
        {
            t.style.display = 'none';
        }
    }
	/*while (t = document.getElementById('level-'+i)) {
		t.style.display = 'none';
		i++;
	}*/

	if (!(t = document.getElementById('level-'+doctypeToQuality[doctype_id]))) {
		t = document.getElementById('level-0');
	}
	if (t) { t.style.display = ''; }
}

function doUpdateFeatures() {
    doctypeToFeatures = {
    51: 0, 124: 0, 125: 0, 126:0, 139:0,
    142: 2, 143: 2, 144: 2,
    3: 3, 81: 3, 152: 3, 156: 3, 157: 3, 158: 3, 159: 3,
    145: 4, 154: 4
    };

    doctype_id = document.getElementById('selDoctype').value;

    i = 0; max = 20;
    for(l = 0; l <= max; l++)
    {
        if(t = document.getElementById('features_level-'+l))
        {
            t.style.display = 'none';
        }
    }
    
	if (!(t = document.getElementById('features_level-'+doctypeToFeatures[doctype_id]))) {
		t = document.getElementById('features_level-1');
	}
	if (t) { t.style.display = ''; }
}

function doUpdateDiscountText() {
    if(admission_doctypes[document.getElementById('selDoctype').value] == 1) { 
        document.getElementById('discount_text').innerHTML = ''; 
        span = document.getElementById('discount_text_papers');
    } else {
	    span = document.getElementById('discount_text');
    }
    
	if (discount==1) {
		if (span) { span.innerHTML = ''; }
        if(admission_doctypes[document.getElementById('selDoctype').value] == 1) {  
		    if (span) span.innerHTML = 'Get discount!';
        } 
	} else {
		if (span) span.innerHTML = 'Discount: '+Math.round((1-discount)*100)+'%';
	}
    
}

function ch_lvl() {
    lvl = parseInt(document.getElementById('level_choice').selectedIndex);
    doUpdatePrices(parseInt(lvl + 1));
}

function doUpdatePrices(lvl) {
	pages = parseInt(document.getElementById('pages_count').value);
    doUpdateQualities();
	doUpdatePagesText();
    doUpdateFeatures();
    
    papers = 1;
    if(parseInt(lvl)<=0) lvl = -1;
    if (!lvl) lvl = -1;
    if(admission_doctypes[document.getElementById('selDoctype').value] == 1) {
        papers = parseInt(document.getElementById('papers_count').value);
    }

	insertTable(
		document.getElementById('for_prices'), 
		document.getElementById('selDoctype').value,
		pages,
        papers,
        lvl
		);

	doUpdateDiscountText();

	if (document.getElementById('selDoctype').options.length < 2) {
		document.getElementById('sel_dt_row').style.display = 'none';
	}
}

function OnClickChapters(numb) {
    document.getElementById('selDoctype').selectedIndex = numb;
    doUpdatePrices(-1);
}