

function updateDisabledColors()
{
	if (!$('SolderMaska').disabled) {
		if ($('SolderMaska').selectedIndex == $('SolderMaska').readAttribute('disabledColorIndex')-1)
			$('SolderMaskaCvjat').disable();
		else
			$('SolderMaskaCvjat').enable();
	} //if

	if (!$('ServizenPechat').disabled) {
		if ($('ServizenPechat').selectedIndex == $('ServizenPechat').readAttribute('disabledColorIndex')-1)
			$('ServizenPechatCvjat').disable();
		else
			$('ServizenPechatCvjat').enable();
	} //if

}


function updateDisabledControls()
{
	var i = 0;
	var elements = null;
	if ($('Izrabotka-1').getValue()) {

		elements = $('ProductionCalc').getElements();
		for (i=0; i<elements.length; i++) {
			if (elements[i].readAttribute('IsNonStandard')=='true')
				elements[i].disable();
		} //for
		
	} else {

		elements = $('ProductionCalc').getElements();
		for (i=0; i<elements.length; i++) {
			if (elements[i].readAttribute('IsNonStandard')=='true')
				elements[i].enable();
		} //for

	} //else
	
	updateDisabledColors();
}

function checkAlwaysDisabledControls()
{
	var form = $('ProductionCalc');
	var pref = '';
	if ($('Izrabotka-1').getValue()) {
		pref = 'standard_';
	} else {
		pref = 'nonStandard_';
	} //else

	var elements = form.getElements();
	for (var i=0; i<elements.length; i++) {
		if (elements[i].type == 'checkbox') {
			var isDisabled = form.readAttribute('DisableAlways_'+elements[i].value);
			if (isDisabled == '1') {
				var val = form.readAttribute(pref+elements[i].value);
				if (val != null) {
					elements[i].checked = (val == '1');
				} //if
				elements[i].disable();
			} //if
		} //if
	} //for
}

function setDefaultSettings()
{
	// if form is not submited for calculate
	
	var form = $('ProductionCalc');
		
	var pref = '';
	if ($('Izrabotka-1').getValue()) {
		pref = 'standard_';
	} else {
		pref = 'nonStandard_';
	} //else
	
	var elements = form.getElements();
	for (var i=0; i<elements.length; i++) {
		if (elements[i].type == 'checkbox') {
			
			var val = form.readAttribute(pref+elements[i].value);
			if (val != null) {
				elements[i].checked = (val == '1');
			} //if

			val = form.readAttribute(pref+elements[i].name);
			if (val != null) {
				elements[i].checked = (val == '1');
			} //if
			
			var isDisabled = form.readAttribute('DisableAlways_'+elements[i].value);
			if (isDisabled == '1') {
				elements[i].disable();
			} //if

		} else if (elements[i].type == 'select-one') {
			var index = form.readAttribute(pref+elements[i].name);
			if (index != null) {
				elements[i].options[index-1].selected = true;
			} //if
		} else if (elements[i].type == 'hidden') {
			var val1 = form.readAttribute(pref+elements[i].name);
			if (val1 != null) {
				elements[i].value = val1;
			} //if
		} //if
	} //for


	updateNoviShabloniHiddenValue();
}



Event.observe($('SolderMaska'), 'change', function(event) 
{
	updateDisabledColors();
}); 
Event.observe($('ServizenPechat'), 'change', function(event) 
{
	updateDisabledColors();
}); 


function redrawSelectedMaterial()
{
	var elms = document.getElementsByClassName('materials_table_td_selected');

	var len = elms.length;
	var ar = [];

	for (i=0; i<len; ++i) {
		ar[i] = elms[i];
	} //for
	
	for (i=0; i<ar.length; ++i) {
		ar[i].removeClassName('materials_table_td_selected');
	} //for

	var index1 = $('DebelinaMedno').value;
	var index2 = $('DebelinaBazov').value;
	
	$('medno_cell_'+index1).addClassName('materials_table_td_selected'); 
	$('bazov_cell_'+index2).addClassName('materials_table_td_selected'); 
	$('sel_material_'+index1+'_'+index2).checked = true;
}


function onSelMaterialClick(index1,index2)
{
	$('bazov_cell_'+$('DebelinaBazov').value).removeClassName('materials_table_td_selected');
	$('medno_cell_'+$('DebelinaMedno').value).removeClassName('materials_table_td_selected');
	if ($('sel_material_'+index1+'_'+index2).checked) {

		$('bazov_cell_'+index2).addClassName('materials_table_td_selected'); 
		$('DebelinaBazov').value = index2;

		$('medno_cell_'+index1).addClassName('materials_table_td_selected'); 
		$('DebelinaMedno').value = index1;
	} //if
	
	disableOrderButton();
}


function getCheckBoxByName(elementName)
{
	// ie7 has a difference with getElementById
	var elements = document.getElementsByName(elementName);
	for (var i=0; i<elements.length; i++) {
		if (elements[i].type == 'checkbox')
			return elements[i];
	} //for
	
	return null;
}


function getHiddenByName(elementName)
{
	// ie7 has a difference with getElementById
	var elements = document.getElementsByName(elementName);
	for (var i=0; i<elements.length; i++) {
		if (elements[i].type == 'hidden')
			return elements[i];
	} //for
	
	return null;
}


function updateNoviShabloniHiddenValue()
{
	var cb = getCheckBoxByName('NoviShabloni');
	var hidden = getHiddenByName('NoviShabloni');

	if (hidden != null && cb != null) {
		cb.value = (cb.checked == "checked" || cb.checked == true) ? 1 : 0;
		hidden.value = cb.value;
	} //if

//	console.log(cb);
//	console.log(cb.checked);
//	console.log(hidden);
}


Event.observe(window, 'load', function(event) 
{
	if ($('Izrabotka-1').getValue()) {
		setDefaultSettings();
	} //if
	
	fillDrillOptions();
	updateDisabledControls();
//	updateDisabledColors();

	//redrawSelectedMaterial();
	updateBoardsPerPanelEnabled();
	
	checkAlwaysDisabledControls();


	//Event.observe($('Options-NoviShabloni'), 'click', function(event) {disableOrderButton();});
	Event.observe(getCheckBoxByName('NoviShabloni'), 'click', function(event) {
		disableOrderButton();
		if ($('Options-ElTest').checked) {
			$('Options-ElTestPodgotovka').checked = true;
		} //if
		updateNoviShabloniHiddenValue();
	});
	
	//Event.observe($('Options-Frezovane'), 'click', function(event) {disableOrderButton();});
	//Event.observe($('Options-Rizvane'), 'click', function(event) {disableOrderButton();});
	Event.observe($('Options-Otvori'), 'click', function(event) {disableOrderButton();});
	Event.observe($('Options-Karbon'), 'click', function(event) {disableOrderButton();});
	Event.observe($('Options-ElTestPodgotovka'), 'click', function(event) {disableOrderButton();});
	Event.observe($('Options-ElTest'), 'click', function(event) {disableOrderButton();});
	Event.observe($('RazmerX'), 'change', function(event) {disableOrderButton(); fixInputRealValue('RazmerX'); });
	Event.observe($('RazmerY'), 'change', function(event) {disableOrderButton(); fixInputRealValue('RazmerY'); });
	Event.observe($('MinDebelinaPisti'), 'change', function(event) {disableOrderButton(); });
	Event.observe($('MinDistPisti'), 'change', function(event) {disableOrderButton(); });//EDIT
	Event.observe($('Rjazane'), 'change', function(event) {disableOrderButton(); });
	Event.observe($('MerniEdinici'), 'change', function(event) {disableOrderButton();});
	Event.observe($('Broi'), 'change', function(event) {disableOrderButton();});
	Event.observe($('BroiPlatkiNaPanel'), 'change', function(event) {disableOrderButton();});
	Event.observe($('SrokProizvodstvo'), 'change', function(event) {disableOrderButton();});
	Event.observe($('SolderMaska'), 'change', function(event) {disableOrderButton();});
	Event.observe($('SolderMaskaCvjat'), 'change', function(event) {disableOrderButton();});
	Event.observe($('ServizenPechat'), 'change', function(event) {disableOrderButton();});
	Event.observe($('ServizenPechatCvjat'), 'change', function(event) {disableOrderButton();});
	Event.observe($('KrainoPokritie'), 'change', function(event) {disableOrderButton();});
	Event.observe($('PozlatenKuplung'), 'change', function(event) {disableOrderButton();});
	//Event.observe($('GoldFingers'), 'change', function(event) {disableOrderButton();});//EDIT
	if ($('LayerCount') != null) {
		Event.observe($('LayerCount'), 'change', function(event) {disableOrderButton();});
		Event.observe($('DrillCount'), 'change', function(event) {disableOrderButton();});
	} //if

	refreshMaterialTable();
	
	updateNoviShabloniHiddenValue();
}); 


function fixInputRealValue(ctrlName)
{
	var val = $(ctrlName).value;
	// check whether the real number is in format .xx
	if (val[0] == '.') {
		val = '0' + val;
	} //if
	$(ctrlName).value = val;
}



Event.observe($('Izrabotka-1'), 'click', function(event) 
{
	updateDisabledControls();
	setDefaultSettings();
//	updateDisabledColors();
	redrawSelectedMaterial();
	disableOrderButton();

	refreshMaterialTable();
}); 

Event.observe($('Izrabotka-2'), 'click', function(event) 
{
	updateDisabledControls();
	setDefaultSettings();
//	updateDisabledColors();
	redrawSelectedMaterial();
	disableOrderButton();

	refreshMaterialTable();
}); 

Event.observe($('TipPlatki1'), 'click', function(event) 
{
	$('CalculateFlag').value = 'false';
	$('OrdersFlag').value = 'false';
	$('BoardTypeVal').value = '1';
	$('ProductionCalc').submit();
}); 

Event.observe($('TipPlatki2'), 'click', function(event) 
{
	$('CalculateFlag').value = 'false';
	$('OrdersFlag').value = 'false';
	$('BoardTypeVal').value = '2';
	$('ProductionCalc').submit();
}); 

Event.observe($('TipPlatki3'), 'click', function(event) 
{
	$('CalculateFlag').value = 'false';
	$('OrdersFlag').value = 'false';
	$('BoardTypeVal').value = '3';
	$('ProductionCalc').submit();
}); 


Event.observe($('TipRazmer'), 'change', function(event) 
{
	updateBoardsPerPanelEnabled();
	disableOrderButton();
}); 


function updateBoardsPerPanelEnabled()
{
	var label = null;
	
	if ($('TipRazmer').selectedIndex == 1) {
		$('BroiPlatkiNaPanelDiv').show();
		$('BroiPlatkiNaPanel').enable();
		label = $('NumberTypeLabel');
		label.update(label.readAttribute('val2'));
	} else {
		$('BroiPlatkiNaPanelDiv').hide();
		$('BroiPlatkiNaPanel').disable();
		label = $('NumberTypeLabel');
		label.update(label.readAttribute('val1'));
	} //else
}

//Event.observe($('Calculate'), 'click', function(event) 
//{
//	$('CalculateFlag').value = 'true';
//	$('OrdersFlag').value = 'false';
//}); 

//Event.observe($('SrokProizvodstvo'), 'change', function(event) 
//{
//	$('CalculateFlag').value = 'true';
//	$('OrdersFlag').value = 'false';
//	$('ProductionCalc').submit();
//}); 

Event.observe($('Options-ElTestPodgotovka'), 'click', function(event) 
{
	var noviShabloniCB = getCheckBoxByName('NoviShabloni');
	
	if (noviShabloniCB.checked) {
		$('Options-ElTest').checked = $('Options-ElTestPodgotovka').checked;
	} else {
		if ($('Options-ElTestPodgotovka').checked)
			$('Options-ElTest').checked = true;
	} //else
	
});

Event.observe($('Options-ElTest'), 'click', function(event) 
{
	var noviShabloniCB = getCheckBoxByName('NoviShabloni');
	
	if (noviShabloniCB.checked) {
		$('Options-ElTestPodgotovka').checked = $('Options-ElTest').checked;
	} else {
		if (! $('Options-ElTest').checked)
			$('Options-ElTestPodgotovka').checked = false;
	} //else
});




function disableOrderButton()
{
	var btn = $('OrderButton');
	if (btn != null) {
		btn.disable();
	} //if
	$('Calculate').removeClassName('calc_button_after');
	$('Calculate').addClassName('calc_button_before');
}


function showProductionNotes()
{
	var wnd = $('notesPopupBox_Production');
	var but = $('NotesButton');

	var vpOffset = but.positionedOffset(); 
	var dimensions = but.getDimensions();
	var wndDimensions = wnd.getDimensions();
	
	wnd.style.top = vpOffset[1] - wndDimensions.height + 'px';
	wnd.style.left = vpOffset[0] + dimensions.width + 'px';
	wnd.show();
} 


function hidePopup(name)
{
	$(name).hide();
}


function fillDrillOptions()
{
	var layerCombo = $('LayerCount');
	if (layerCombo != null) {
		var layerInd = layerCombo.selectedIndex;

		var drillCombo = $('DrillCount');
		var drillIndex = drillCombo.selectedIndex;

		var limmin = parseInt(drillCombo.readAttribute('Lim'+(layerInd)+'Min'));
		var limmax = parseInt(drillCombo.readAttribute('Lim'+(layerInd)+'Max'));
		drillCombo.options.length = 0;
		for (i=limmin; i<=limmax; i++) {
			var opt = document.createElement("OPTION");
			opt.text = i;
			opt.value = i;
			drillCombo.options.add(opt);
		} //for
		
		if (drillIndex >= limmax) 
			drillIndex = 0;
		drillCombo.options[drillIndex].selected = true;
	} //if
	
	// set the selection
}

function showPopupInfoPr(elementName)
{
	var el = $(elementName+'_Info');
	var elLink = $(elementName+'_Info_Label');
	
	var elLinkOffset = elLink.positionedOffset(); 
	var elLinkDims = elLink.getDimensions();
	var elDims = el.getDimensions();
	
	el.style.left = elLinkOffset[0] + 30 + 'px';
	el.style.top = elLinkOffset[1] - (elDims.height / 2.) + 'px';
	el.show();
}

Event.observe($('PozlatenKuplung_Info_Label'), 'mouseover', function(event) 
{
	showPopupInfoPr('PozlatenKuplung');
});
Event.observe($('PozlatenKuplung_Info_Label'), 'mouseout', function(event) 
{
	$('PozlatenKuplung_Info').hide();
});
//EDIT 
Event.observe($('GoldFingers_Info_Label'), 'mouseover', function(event) 
{
	showPopupInfoPr('GoldFingers');
});
Event.observe($('GoldFingers_Info_Label'), 'mouseout', function(event) 
{
	$('GoldFingers_Info').hide();
});
//EOEDIT
Event.observe($('NoviShabloni_Info_Label'), 'mouseover', function(event) 
{
	showPopupInfoPr('NoviShabloni');
});
Event.observe($('NoviShabloni_Info_Label'), 'mouseout', function(event) 
{
	$('NoviShabloni_Info').hide();
});

Event.observe($('MinDebelinaPisti_Info_Label'), 'mouseover', function(event) 
{
	showPopupInfoPr('MinDebelinaPisti');
});
Event.observe($('MinDebelinaPisti_Info_Label'), 'mouseout', function(event) 
{
	$('MinDebelinaPisti_Info').hide();
});
//EDIT
Event.observe($('MinDistPisti_Info_Label'), 'mouseover', function(event) 
		{
			showPopupInfoPr('MinDistPisti');
		});
		Event.observe($('MinDistPisti_Info_Label'), 'mouseout', function(event) 
		{
			$('MinDistPisti_Info').hide();
		});
//EOEDIT


function setCursor(waiting)
{
	var curs1,curs2;
	if (waiting) {
		curs1 = 'progress';
		curs2 = 'progress';
	} else {
		curs1 = 'default';
		curs2 = 'text';
	} //else
	
	document.body.style.cursor = curs1;
	$('Calculate').style.cursor = curs1;
	
	$('RazmerX').style.cursor = curs2;
	$('RazmerY').style.cursor = curs2;
	$('BroiPlatkiNaPanel').style.cursor = curs2;
	$('Broi').style.cursor = curs2;
}


function onFormSubmit()
{
	setCursor(true);
	
	$('CalculateFlag').value = 'true';
	$('OrdersFlag').value = 'false';
	
//	$('ProductionCalc').submit(); return false;
	


	
	$('ProductionCalc').action = productionCalcUrl;
	$('ProductionCalc').request({   
		onSuccess: onCalcSuccess, 
		onFailure: onCalcFailure 
	})
	
	return false;
}



function onCalcSuccess(transport)
{
	var i = 0;
	var elements = $$('.ErrorClass');
	for (i=0; i<elements.length; ++i) 
	{
		elements[i].removeClassName('ErrorClass');
	} 
	
	var json = transport.responseText.evalJSON();

	if (json.Result != null) 
	{
		$('ProductionResultTable').hide();
		$('ProductionResultTable').update(json.Result);
		new Effect.Appear('ProductionResultTable', { duration: 0.5 });

		$('Calculate').removeClassName('calc_button_before');
		$('Calculate').addClassName('calc_button_after');
		
		outputDebugInfo(json);
	} 
	else 
	if (json.Errors != null) 
	{
		$('ProductionResultTable').update(json.Errors.Messages);
		if (json.Errors.Elements != null) 
		{
			for (i=0; i<json.Errors.Elements.length; ++i) 
			{
				$(json.Errors.Elements[i]).addClassName('ErrorClass');
			} 
		} 
	} 

	setCursor(false);	
}

function onCalcFailure(transport)
{
	setCursor(false);
	
	window.alert('Calculator is temporarily unavailable. Sorry for the inconvenience.');
//	$('ProductionCalc').submit();
}



Event.observe($('SrokProizvodstvo'), 'change', function(event) 
{
	onFormSubmit();
}); 

function getSelMaterialIndex()
{
	if ($('Izrabotka-1').getValue()) {
		return 1;
	} else {
		return ($('selected_material_name') != null) ? $('selected_material_name').value : 1;
	} //else		
}

function refreshMaterialTable()
{
	new Ajax.Request(
		strGetMaterialTableUrl, 
		{   
			method: 'post',
			parameters: { 
				'board_type': $('BoardTypeVal').value, 
				'lang': strLanguage,
				'selected_material_name': getSelMaterialIndex()
			},   
			onSuccess: function(transport) { 
				var response = transport.responseText.evalJSON();
				if (response.Success == true) {
					$('id-material-table-div').update(response.MaterialTable);
					
					if ($('Izrabotka-1').getValue()) {
						$('DebelinaMedno').value = response.DefaultMednoStandard;
						$('DebelinaBazov').value = response.DefaultBazovStandard;
					} else {
						$('DebelinaMedno').value = response.DefaultMednoNonStandard;
						$('DebelinaBazov').value = response.DefaultBazovNonStandard;
					} //else
					
					updateDisabledControls();
					
					redrawSelectedMaterial();
					
					Event.observe($('selected_material_name'), 'change', function(event) 
					{
						refreshMaterialTable();
					}); 
				} else {
					$('id-material-table-div').update('Cannot update material table');
				} //else
			},
			onFailure: function(transport) { 
				$('id-material-table-div').update('Error updating material table');
			}
		}
	);       
}


function onOrderButton()
{
	new Ajax.Request(
		strIsOrderPossibleUrl, 
		{   
			method: 'post',
			parameters: { 
				'selected_period': $('SrokProizvodstvo').value,
				'order_type': 'Production'
			},   
			onSuccess: function(transport) { 
				var response = transport.responseText.evalJSON();
				//console.log(transport.responseText);
				if (response.success == true && response.isOrderPossible == true) {
					$('CalculateFlag').value = 'false';
					$('OrdersFlag').value = 'true';
					$('ProductionCalc').submit();
				} else {
					window.alert(response.errormsg);
				} //else
			},
			onFailure: function(transport) { 
				
			}
		}
	); 
}



