function show_calc(id)
{
    var req = new JsHttpRequest();
    req.onreadystatechange = function() 
    {
       if (req.readyState == 4) {
   	       document.getElementById('calc_div').innerHTML=req.responseText;
   	       eval("calc_"+id+"();");
       }
    }
    req.open(null, 'calc/calc_'+id+'.html', true);
    req.send();
}

function calc_maika(sel_id)
{
	document.getElementById("img_maika").src = cacl_img_maika_on.src;
	document.getElementById("img_flekso").src = cacl_img_flekso_off.src;
	document.getElementById("img_shelko").src = cacl_img_shelko_off.src;
	document.getElementById("img_fleksoform").src = cacl_img_fleksoform_off.src;

	arrErrors = new Array();
	
	var density = parseInt(document.getElementById('density').value);
	if (density <= 10)
	{
		var errorObj = new Object();
		errorObj.msg = "Плотность должны быть больше 10 мкм";
  	    arrErrors.push(errorObj);
	}
	
	var color_face = parseInt(document.getElementById('color_face').value);
	var color_back = parseInt(document.getElementById('color_back').value);
	var colors = color_face+color_back;
	if ( (colors > 4) || (colors == 0) )
	{
		var errorObj = new Object();
		errorObj.msg = "Сумма цветов не должна привышать 4 и быть больше 0";
  	    arrErrors.push(errorObj);
  	    
  	    if (sel_id)
  	    {
  	    	var cur_sel = document.getElementById(sel_id);
  	    	if (cur_sel.getAttribute("old"))
  	    	    cur_sel.value = cur_sel.getAttribute("old");
  	    	else
  	    		cur_sel.value = 0;
  	    }
	}
	else
	{
		if (sel_id)
		{
			var cur_sel = document.getElementById(sel_id);
			cur_sel.setAttribute("old",cur_sel.value);
		}
	}
	
	if (arrErrors.length == 0)
	{
	    var width = parseInt(document.getElementById('width').value);
	    var height = parseInt(document.getElementById('height').value);
	    var copies = parseInt(document.getElementById('copies').value);
	    if (document.getElementById('poly').checked) {var poly = 1;} else {var poly = 0;}
        
        var falci = width/4;
        var mass_1 = ((height*width*density*3*0.95)/10000).toFixed(2);
        var mass_all = (((height*width*density*3*0.95)/10000)*copies).toFixed(2);
        var price_1 = ((height*width*density*3*0.95*arrMaikaP[colors][copies]*(1+0.1*poly))/10000000).toFixed(2);
        var price_all = (price_1*copies*1000).toFixed(2);
        
        if ((mass_1<5) && (mass_1>0))
        {
        	   	price_1   = "Масса пакета менее 5 грамм";
        		price_all = "Необходим индивидуальный расчет. Свяжитесь с нами!";
				
        }
        
        if ((mass_all<50) && (mass_all>0))
        {
        	   	mass_1   = "Масса тиража менее 50 килограмм";
        		mass_all = "Необходим индивидуальный расчет. Свяжитесь с нами!";
        }
       
	   if ((colors>2) && (mass_all<100))
		{
        	   price_1   = "Масса тиража менее 100 кг";
        	   price_all = "1-2 цвета печати - тираж от 50 кг, 3-4 цвета печати - тираж от 100 кг";
			   
        }
        document.getElementById('falci').innerHTML = falci;
        document.getElementById('mass_1').innerHTML = mass_1;
        document.getElementById('mass_all').innerHTML = mass_all;
        document.getElementById('price_1').innerHTML = price_1;
        document.getElementById('price_all').innerHTML = price_all;
        
       }
    else
    {
		errMsg = "";
		for(var i=0; i < arrErrors.length; i++)
			errMsg += arrErrors[i].msg + "\n";
		alert(errMsg);
    }

}

function calc_flekso(sel_id)
{
	document.getElementById("img_maika").src = cacl_img_maika_off.src;
	document.getElementById("img_flekso").src = cacl_img_flekso_on.src;
	document.getElementById("img_shelko").src = cacl_img_shelko_off.src;
	document.getElementById("img_fleksoform").src = cacl_img_fleksoform_off.src;
	
	arrErrors = new Array();
	
	var density = parseInt(document.getElementById('density').value);
	if (density <= 10)
	{
		var errorObj = new Object();
		errorObj.msg = "Плотность должны быть больше 10 мкм";
  	    arrErrors.push(errorObj);
	}
	
	var color_face = parseInt(document.getElementById('color_face').value);
	var color_back = parseInt(document.getElementById('color_back').value);
	var colors = color_face+color_back;
	if ( (colors > 4) || (colors == 0) )
	{
		var errorObj = new Object();
		errorObj.msg = "Сумма цветов не должна привышать 4 и быть больше 0";
  	    arrErrors.push(errorObj);
  	    
  	    if (sel_id)
  	    {
  	    	var cur_sel = document.getElementById(sel_id);
  	    	if (cur_sel.getAttribute("old"))
  	    	    cur_sel.value = cur_sel.getAttribute("old");
  	    	else
  	    		cur_sel.value = 0;
  	    }
	}
	else
	{
		if (sel_id)
		{
			var cur_sel = document.getElementById(sel_id);
			cur_sel.setAttribute("old",cur_sel.value);
		}
	}
	
	if (arrErrors.length == 0)
	{
	    var width = parseInt(document.getElementById('width').value);
	    var height = parseInt(document.getElementById('height').value);
	    var d = parseInt(document.getElementById('d').value);
	    if (document.getElementById('hand').checked) {var hand = 1;} else {var hand = 0;}
	    if (document.getElementById('poly').checked) {var poly = 1;} else {var poly = 0;}
	    var copies = parseInt(document.getElementById('copies').value);
	    var material = document.getElementById('material').value;
	    var material_ = document.getElementById('material');
	    
//-------------------------------------------------------------------------------------
        var j_arr = new Array();
        j_arr[1] = 5; j_arr[2] = 10; j_arr[3] = 20; j_arr[4] = 30; j_arr[5] = 40; j_arr[6] = 50;
        j_arr[7] = 100; j_arr[8] = 250; j_arr[9] = 500; j_arr[10] = 1000;
        
        var arrFleksoP = new Array(arrFleksoP_high.length);
        for (var i=1; i<arrFleksoP.length; i++) {
          arrFleksoP[i] = new Array();
        }
        
//--- high density ---
	    if (material == "0.928") {
	      arrFleksoP = arrFleksoP_high;
	    } else
        if (material == "0.95") {
	    //--- low density ---
	      arrFleksoP = arrFleksoP_low;
	    } else
	    //--- middle density ---
	    if (material == "0.94") {
	      for (var i=1; i < arrFleksoP_high.length; i++) {
	      	for (var j=1; j < j_arr.length; j++) {
	      	  arrFleksoP[i][j_arr[j]] = (arrFleksoP_high[i][j_arr[j]] + arrFleksoP_low[i][j_arr[j]]) / 2;
	      	}
	      }
	    }
//--------------------------------------------------------------------------------------

        var mass_1 = ((width*material*density*2*(height+d))/10000 + 3*hand).toFixed(2);
        var mass_all = (((width*material*density*2*(height+d))/10000 + 3*hand)*copies).toFixed(2);
        var price_1 = ((((width*material*density*2*(height+d))/10000 + 3*hand)*arrFleksoP[colors][copies]*(1+0.1*poly))/1000).toFixed(2);
        var price_all = (price_1*copies*1000).toFixed(2);
        
        if ((mass_1<20) && (mass_1>15))
        {
        	   	price_1   = ((((width*material*density*2*(height+d))/10000 + 3*hand)*arrFleksoP[colors][copies]*1.1*(1+0.1*poly))/1000).toFixed(2);
        		price_all = (price_1*copies*1000).toFixed(2);
				
       	}
		
        if ((mass_1<15) && (mass_1>0))
        {
        	   	price_1   = "Масса пакета менее 15 грамм";
        		price_all = "Необходим индивидуальный расчет. Свяжитесь с нами!";
				
       	}
        if ((mass_all<100) && (mass_all>0))
        {
        	   	mass_1   = "Масса тиража менее 100 килограмм";
        		mass_all = "Необходим индивидуальный расчет. Свяжитесь с нами!";
        }
                
		if ((color_back>0) && (copies<10))
        {
        	   	price_1  = "Тираж менее 10 тыс.";
        		price_all = "Двусторонние пакеты - тираж от 10 тыс. экз.";
				
        }
        document.getElementById('mass_1').innerHTML = mass_1;
        document.getElementById('mass_all').innerHTML = mass_all;
        document.getElementById('price_1').innerHTML = price_1;
        document.getElementById('price_all').innerHTML = price_all;

        }
    else
    {
		errMsg = "";
		for(var i=0; i < arrErrors.length; i++)
			errMsg += arrErrors[i].msg + "\n";
		alert(errMsg);
    }

}
function calc_shelko()
{
	document.getElementById("img_maika").src = cacl_img_maika_off.src;
	document.getElementById("img_flekso").src = cacl_img_flekso_off.src;
	document.getElementById("img_shelko").src = cacl_img_shelko_on.src;
	document.getElementById("img_fleksoform").src = cacl_img_fleksoform_off.src;

	var copies = parseInt(document.getElementById('copies').value);
	var colors = parseInt(document.getElementById('colors').value);
	var size_paket = document.getElementById('size_paket').value;
	var density = document.getElementById('density').value;
	var color = parseFloat(document.getElementById('color').value);
		
	
	var rastr_obj = document.getElementById('rastr');
	if (rastr_obj.checked) {var rastr = parseFloat(rastr_obj.value);} else {var rastr = 0;}
	
   
    var price_1 = ((arrShelkoP[colors][copies]+parseFloat(size_paket)+parseFloat(density)+color)*(1+rastr)).toFixed(2);
    var price_all = (price_1*copies).toFixed(2);
    
   
    document.getElementById('price_1').innerHTML = price_1;
    document.getElementById('price_all').innerHTML = price_all;

   
}

function calc_fleksoform()
{
	document.getElementById("img_maika").src = cacl_img_maika_off.src;
	document.getElementById("img_flekso").src = cacl_img_flekso_off.src;
	document.getElementById("img_shelko").src = cacl_img_shelko_off.src;
	document.getElementById("img_fleksoform").src = cacl_img_fleksoform_on.src;
}
function add_color()
{
    var tableO = document.getElementById('colors_table');
    var oRow1 = tableO.insertRow(tableO.rows.length);
    var aRows = tableO.rows;
    var aCells = oRow1.cells;
    var num = tableO.rows.length-2;

    var oCell1_1=aRows[oRow1.rowIndex].insertCell(aCells.length);
    oCell1_1.innerHTML="<b>Цвет "+num+"</b>";
    
    var oCell1_2=aRows[oRow1.rowIndex].insertCell(aCells.length);
    oCell1_2.innerHTML="<input id=\"vert_"+num+"\" value=\"\" style=\"width:130px;text-align:right;\" onchange=\"set_area('"+num+"')\" onkeyup=\"set_area('"+num+"')\">";
    
    var oCell1_3=aRows[oRow1.rowIndex].insertCell(aCells.length);
    oCell1_3.innerHTML="<input id=\"gor_"+num+"\" value=\"\" style=\"width:130px;text-align:right;\" onchange=\"set_area('"+num+"')\" onkeyup=\"set_area('"+num+"')\">";
    
    var oCell1_4=aRows[oRow1.rowIndex].insertCell(aCells.length);
    oCell1_4.className = "area";
    oCell1_4.innerHTML="<div style=\"font-weight:bold;\" id=\"area_"+num+"\" old_area_sm=\"0\" old_area_rub=\"0\"></div>";
}
function set_area(id)
{
	var vert = parseInt(document.getElementById('vert_'+id).value);
	var gor = parseInt(document.getElementById('gor_'+id).value);
	
	if (vert && gor)
	{
		var area_sm_obj = document.getElementById('area_sm');
		var area_rub_obj = document.getElementById('area_rub');
		var area = document.getElementById('area_'+id);
		var area_old_sm = area.getAttribute('old_area_sm');
		var area_old_rub = area.getAttribute('old_area_rub');
		
		var area_sm = parseInt(area_sm_obj.innerHTML);
		if (!area_sm) area_sm = 0;
		var area_rub = parseInt(area_rub_obj.innerHTML);
		if (!area_rub) area_rub = 0;
		
		var area_sm_new = (vert+2)*(gor+2);
		area.innerHTML = area_sm_new;
		area.setAttribute("old_area_sm",area_sm_new);
		area.setAttribute("old_area_rub",area_sm_new*2);
		area_sm_obj.innerHTML = area_sm - area_old_sm + area_sm_new;
		area_rub_obj.innerHTML = area_rub - area_old_rub + area_sm_new*2;
	}
	else
	{
		var area_sm_obj = document.getElementById('area_sm');
		var area_rub_obj = document.getElementById('area_rub');
		var area = document.getElementById('area_'+id);
		var area_old_sm = area.getAttribute('old_area_sm');
		var area_old_rub = area.getAttribute('old_area_rub');
        
		var area_sm = parseInt(area_sm_obj.innerHTML);
		if (!area_sm) area_sm = "";
		var area_rub = parseInt(area_rub_obj.innerHTML);
		if (!area_rub) area_rub = "";
        
        area.innerHTML = "";
		area.setAttribute("old_area_sm","0");
		area.setAttribute("old_area_rub","0");
		area_sm_obj.innerHTML = (area_sm - area_old_sm) ? (area_sm - area_old_sm) : "";
		area_rub_obj.innerHTML = (area_rub - area_old_rub) ? (area_rub - area_old_rub) : "";

	}
}




function Form2Popup(params, actionUrl, name, popupConfig, get) { 

        // free in choice: post or get
        var method = (get == undefined || !get) ? 'POST' : 'GET'; 
 
        // it's important to assign non-null name!
        if (name == undefined || name == '') { 
                name = 'tmpPopup'; 
        } 
        //var form = document.createElement('<form action="' + actionUrl + '" method="' + method + '" target="' + name + '" style="display:none;"></form>'); 
        var form = document.createElement('form'); 
        form.setAttribute('action',actionUrl);
        form.setAttribute('method',"POST");
        form.setAttribute('target',name);
        form.setAttribute('style',"display:none");
        var element = null; 
        for (var propName in params) { 
                //element = document.createElement('<input type="text" name="' + propName + '" value="' + params[propName] + '">'); 
                element = document.createElement('input'); 
                element.setAttribute('name',propName);
                element.setAttribute('value',params[propName]);
                form.appendChild(element); 
        } 
        document.body.appendChild(form);
        // First, open empty window: why make redundant request to server?
        var win = window.open('about:blank', name, popupConfig); 
 
        // in order to restore this window
        // if it's already been opened before
        win.focus(); 
        form.submit();
        form.removeNode(true); 
        return win; 
}

function result_maika(type,name,org,phone,email,icq,comments)
{
    var params = {
        name:name,
        org:org,
        phone:phone,
        email:email,
        icq:icq,
        comments:comments,
        density:parseInt(document.getElementById('density').value),
        color_face:parseInt(document.getElementById('color_face').value),
        color_back:parseInt(document.getElementById('color_back').value),
	    width:parseInt(document.getElementById('width').value),
	    height:parseInt(document.getElementById('height').value),
	    copies:parseInt(document.getElementById('copies').value),
	    poly:(document.getElementById('poly').checked) ? "Есть" : "Нет",
        
        falci:document.getElementById('falci').innerHTML,
        mass_1:document.getElementById('mass_1').innerHTML,
        mass_all:document.getElementById('mass_all').innerHTML,
        price_1:document.getElementById('price_1').innerHTML,
        price_all:document.getElementById('price_all').innerHTML,
        
        };
    var previewPopup = Form2Popup(params, 'calc/result_maika.html?type='+type, 'result', 'top=100,left=100,scrollbars=1,status=yes,toolbar=yes,menubar=yes,location=yes,resizable=yes');
}
function result_flekso(type,name,org,phone,email,icq,comments)
{
	material_ = document.getElementById('material');
    var params = {
        name:name,
        org:org,
        phone:phone,
        email:email,
        icq:icq,
        comments:comments,
        density:parseInt(document.getElementById('density').value),
        color_face:parseInt(document.getElementById('color_face').value),
        color_back:parseInt(document.getElementById('color_back').value),
	    width:parseInt(document.getElementById('width').value),
	    height:parseInt(document.getElementById('height').value),
	    d:parseInt(document.getElementById('d').value),
	    hand:(document.getElementById('hand').checked) ? "Есть" : "Нет",
	    poly:(document.getElementById('poly').checked) ? "Есть" : "Нет",
	    copies:parseInt(document.getElementById('copies').value),
	    material:material_.options[material_.selectedIndex].text,
        mass_1:document.getElementById('mass_1').innerHTML,
        mass_all:document.getElementById('mass_all').innerHTML,
        price_1:document.getElementById('price_1').innerHTML,
        price_all:document.getElementById('price_all').innerHTML,

        
	    };
    var previewPopup = Form2Popup(params, 'calc/result_flekso.html?type='+type, 'result', 'top=100,left=100,scrollbars=1,status=yes,toolbar=yes,menubar=yes,location=yes,resizable=yes');
}
function result_shelko(type,name,org,phone,email,icq,comments)
{
	size_paket_ = document.getElementById('size_paket');
	color_ = document.getElementById('color');
	density_ = document.getElementById('density');
    var params = {
        name:name,
        org:org,
        phone:phone,
        email:email,
        icq:icq,
        comments:comments,
        copies:parseInt(document.getElementById('copies').value),
        colors:parseInt(document.getElementById('colors').value),
        size_paket:size_paket_.options[size_paket_.selectedIndex].text,
        density:density_.options[density_.selectedIndex].text,
        color:color_.options[color_.selectedIndex].text,
        rastr:(document.getElementById('rastr').checked) ? "Есть" : "Нет",

        price_1:document.getElementById('price_1').innerHTML,
        price_all:document.getElementById('price_all').innerHTML,

        
	    };
    var previewPopup = Form2Popup(params, 'calc/result_shelko.html?type='+type, 'result', 'top=100,left=100,scrollbars=1,status=yes,toolbar=yes,menubar=yes,location=yes,resizable=yes');
}

function result_fleksoform(type,name,org,phone,email,icq,comments)
{
    var tableO = document.getElementById('colors_table');
    var rows = tableO.rows.length;
    
    var arr = "";
    for (i=1;i<rows;i++)
    {
    	if (i != 1) arr += ";";
    	arr += document.getElementById("vert_"+i).value + ":" + document.getElementById("gor_"+i).value + ":" + document.getElementById("area_"+i).innerHTML;
    }
    var params = {
        name:name,
        org:org,
        phone:phone,
        email:email,
        icq:icq,
        comments:comments,
        area_sm:document.getElementById('area_sm').innerHTML,
        area_rub:document.getElementById('area_rub').innerHTML,
        arr:arr
    };
    var previewPopup = Form2Popup(params, 'calc/result_fleksoform.html?type='+type, 'result', 'top=100,left=100,scrollbars=1,status=yes,toolbar=yes,menubar=yes,location=yes,resizable=yes');

}
function show_form(id)
{
	document.getElementById("show_form").style.display="block";
	document.getElementById("order_type").value = id;
}
function close_form()
{
	document.getElementById("show_form").style.display="none";
}

function key_enter(e)
{
   e = e || window.event;
   key = e.which || e.keyCode;
   if (13==key)
       return true;
   else
   	   return false;
}
