var GoToNextStep = false;

// вызов веб-сервиса
function OCTASC_WS_Query()
{
	//if(FormIsOK("step_1_form"))
	//{

	if(GoToNextStep)
	{
		OCTASC_GotoNextStep(2);
		canContinueToBuy = true;
	}
	else
	{
		//_("PB_ProgressBarTableHandlerID").style.display = "block";
		//PB_StartShow();
		_("ok").disabled = true;
		_("PB_TMP_Timeout").style.display = "none";
		_('OCTASC_WS_Error').style.display = "none";
		
		//_('regRn').disabled = true;
		//_('aplNr').disabled = true;
		
		_('regRnNotification').value = _('regRn').value;
		_('aplNrNotification').value = _('aplNr').value;
		CalculateOCTASCPremium_processes();
		ElementShow("step_2");
		ScrollDocumentToElement('step_2');
		/*AJAXLoad('OCTASCCalcByVehicle',

				Base64.encode(_('regRn').value),
				Base64.encode(_('aplNr').value),
			'OCTASC_WS_OK'
		);*/
	}
	//}
}

function ShowApprovement() {
  //_("main_first").style.display = "none";
  _("ConfirmationButton").style.display = "block";
  _("ConfirmationForm").style.display = "block";
  canContinueToBuy = true;
}

//@TODO: надо подумать о валидации нестандартных полей, вроде персонального кода, или зависимых, вроде адреса места жительства
function FormIsOK(FormID)
{
	FormLength = _(FormID).length;
	for(i = 0; i < FormLength; i++)
	{
		if(_(FormID)[i].getAttribute('expression') || _(FormID)[i].getAttribute('obligate'))
			_(_(FormID)[i].id + '_Error').style.display = 'none';
	}
		
	for(i = 0; i < FormLength; i++)
	{
		// используется для текстовых полей
		if(_(FormID)[i].getAttribute('expression'))
		{
			re = new RegExp(_(FormID)[i].getAttribute('expression'), 'i');
			if(re.test(_(FormID)[i].value) == false)
			{
				_(_(FormID)[i].id + '_Error').style.display = 'inline';
				_(FormID)[i].select();
				_(FormID)[i].focus(self);
				return false;
			}
		}
		
		// больше думано для селектов, в которых всегда есть поле со значением 0
		if(_(FormID)[i].getAttribute('obligate'))
		{
			if(_(FormID)[i].getAttribute('obligate') == 'true')
			{
				if(_(FormID)[i].value == '0')
				{
					_(_(FormID)[i].id + '_Error').style.display = 'inline';
					_(FormID)[i].focus(self);
					return false;
				}
			}
		}
	}
	return true;
}

// происходит при ответе веб-сервиса
function OCTASC_WS_OK()
{
	//PB_EndShow();
	//document.write("<pre>" + AJAXLastResponseText + "</pre>");
	//return true;
	//eval(AJAXLastResponseText);
	
	if(ErrorExists)
	{
		OCTASC_ShowWSErrorMessage(ErrorMessage);
		_('regRn').disabled = false;
		_('aplNr').disabled = false;
		_("ok").disabled = false;
	}
	else
	{
		_('OCTAOfferTableBody').innerHTML = OffersTableCode;
		
		_('OCTASCForm_VehicleBrandModel').value = OCTASCOfferCommon_VehicleBrandModel;
		_('OCTASCForm_VehicleYear').value = OCTASCOfferCommon_VehicleYear;
		_('OCTASCForm_BM').value = OCTASCOfferCommon_BM;
		
		_('OCTASCForm_PolicyDateBegin').value = OCTASCOfferCommon_NextDateAllowed;
		
		_("ok").disabled = false;
		_("ok").value = msg_2;
		
		OCTASC_SetFormActivity(OCTASCOfferCommon_AllowOrder, OCTASCOfferCommon_NextDateAllowed);
		
		//OCTASC_SetOwnerType(OCTASCOfferCommon_OwnerType);
		_('OCTASCForm_OwnerType').value = OCTASCOfferCommon_OwnerType;
		
		OCTASC_GotoNextStep(1);
		GoToNextStep = true;
	}
}

// переход на следующий шаг в форме оформления оцты
function OCTASC_GotoNextStep(CurrentStepNum)
{
	switch(CurrentStepNum)
	{
		case 1:
			//ElementHide("step_1_controls");
			ElementShow("step_2");
			
			ScrollDocumentToElement("step_2");
			
			if(OCTASC_InsuranceTableSelectedObjectID != -1)
				_(OCTASC_InsuranceTableSelectedObjectID).style.backgroundColor = "#ffffff";
			
			OCTASC_InsuranceTableSelectedObjectID = -1;
		break;
		
		case 2:
			if(OCTASC_InsuranceTableSelectedObjectID == -1)
			{
				if(OCTASCOfferCommon_AllowOrder == '0')
				{
					window.location.href = './';
				}
				else
				{
					alert(MSG_InsuranceCompanyNotSelected);
				}
			}
			else
			{
				ElementHide("step_2_controls");
				//ElementShow("step_3");
				//ScrollDocumentToElement("step_3");
				OCTASC_AllowSelectionInInsuranceTable = false;
				
				_('OCTASCForm_VehicleRegistrationNumber_s2').value = _('regRn').value;
				_('OCTASCForm_VehicleCertificateNumber_s2').value = _('aplNr').value;
				
				//if (canContinueToBuy) {
					_('form_for_step_3').submit();
				//} else {
					//ShowApprovement();
				//}
			}
		break;
		
		case 3:
			if(FormIsOK("step_3_form"))
			{
				for(i = 0; i < _("step_3_form").length; i++)
				{
					_("step_3_form")[i].disabled = true;
				}
				ElementHide("step_3_controls");
				ElementShow("step_4");
				ScrollDocumentToElement("step_4");
			}
		break;
		
		case 4:
			if(_('OCTASCForm_ClientResident').checked)
			{
				_('OCTASCForm_ClientCode').value = _('OCTASCForm_PersonCode_1').value + '-' + _('OCTASCForm_PersonCode_2').value;
			}
			else
			{
				_('OCTASCForm_ClientCode').value = _('OCTASCForm_BirthDay_d').value + '/' + _('OCTASCForm_BirthDay_m').value + '/' + _('OCTASCForm_BirthDay_y').value;
			}
			
			//_('OCTASCForm_VehicleRegistrationNumber_s3').value = _('regRn').value;
			//_('OCTASCForm_VehicleCertificateNumber_s3').value = _('aplNr').value;
			
			for(i = 0; i < _("step_3_form").length; i++)
			{
				_("step_3_form")[i].disabled = false;
			}
			_('step_4').style.display = 'none';
			_('step_3_form').submit();
		break;
	}
	return true;
}

// переход на предыдущий шаг в форме оформления оцты
function OCTASC_GotoPrevStep(CurrentStepNum)
{
	switch(CurrentStepNum)
	{
		case 2:
			//ElementHide("step_2");
			ElementShow("step_1");
			ElementShow("step_1_controls");
			ScrollDocumentToElement("step_1");
			_('regRn').disabled = false;
			_('aplNr').disabled = false;
		break;
		
		case 3:
			ElementHide("step_3");
			ElementShow("step_2");
			ElementShow("step_2_controls");
			ScrollDocumentToElement("step_2");
			OCTASC_AllowSelectionInInsuranceTable = true;
			if(OCTASC_InsuranceTableSelectedObjectID != -1)
				_(OCTASC_InsuranceTableSelectedObjectID).style.backgroundColor = "#ffffff";
			OCTASC_InsuranceTableSelectedObjectID = -1;
		break;
		
		case 4:
			for(i = 0; i < _("step_3_form").length; i++)
			{
				_("step_3_form")[i].disabled = false;
			}
			ElementHide("step_4");
			ElementShow("step_3");
			ElementShow("step_3_controls");
			ScrollDocumentToElement("step_3");
		break;
	}
	return true;
}

// похоже на переход на следующий шаг. отправка на платёжь, но с предварительным изменением способа оплаты уже существующего заказа
function OCTASC_ChangePaymentType()
{
	_('edit_form').submit();
}

var OCTASC_InsuranceTableSelectedObjectID = -1; // айдишник объекта, который сейчас выделен в таблице страховщиков
var OCTASC_AllowSelectionInInsuranceTable = true;

function OCTASC_SelectInsurance(InsuranceTableObject)
{
	if(OCTASC_AllowSelectionInInsuranceTable)
	{
		if(OCTASC_InsuranceTableSelectedObjectID != -1)
			_(OCTASC_InsuranceTableSelectedObjectID).className = '';
		
		OCTASC_InsuranceTableSelectedObjectID = InsuranceTableObject.id;
		
		InsuranceTableObject.className = 'selected';
		_("InsuranceCode").value = InsuranceTableObject.id + ':' + _(InsuranceTableObject.id + '_c_label').innerHTML;
		_(InsuranceTableObject.id + '_c').checked = true;
	}
	return true;
}

function OCTASC_HoverInsurance(InsuranceTableObject)
{
	if(OCTASC_AllowSelectionInInsuranceTable)
	{
		if(OCTASC_InsuranceTableSelectedObjectID != InsuranceTableObject.id)
		{
			InsuranceTableObject.className = 'hovered';
		}
	}
	return true;
}

function OCTASC_NormalizeInsurance(InsuranceTableObject)
{
	if(OCTASC_AllowSelectionInInsuranceTable)
	{
		if(OCTASC_InsuranceTableSelectedObjectID != InsuranceTableObject.id)
		{
			InsuranceTableObject.className = '';
		}
	}
	return true;
}

function OCTASC_SelectBank(Element)
{
	_('OCTASCForm_ClientBankCode').value = BankSWIFTJS['b' + Element.value];
	if(Element.value == 1)
	{
		if(IS_IE)
			_('OCTASCForm_ClientBankOther_Handler').style.display = 'block';
		else
			_('OCTASCForm_ClientBankOther_Handler').style.display = 'table-row';
		
		_('OCTASCForm_ClientBankOther').disabled = false;
		_('OCTASCForm_ClientBankOther').name = 'ClientBankName';
		Element.name = 'ClientBankName_Unused';
	}
	else
	{
		_('OCTASCForm_ClientBankOther_Handler').style.display = 'none';
		_('OCTASCForm_ClientBankOther').disabled = true;
		_('OCTASCForm_ClientBankOther').name = 'ClientBankName_Unused';
		Element.name = 'ClientBankName';
	}
}

function OCTASC_SelectDeliveryType(Element)
{
	if(DeliveryTypeAdditionalFieldRequired['dt' + Element.value] == 1)
	{
		if(IS_IE)
			_('OCTASC_SelectDeliveryType_Handler').style.display = 'block';
		else
			_('OCTASC_SelectDeliveryType_Handler').style.display = 'table-row';
	}
	else
	{
		_('OCTASC_SelectDeliveryType_Handler').style.display = 'none';
	}
}

function OCTASC_ChangeResident(Element)
{
	if(Element.checked)
	{
		if(IS_IE)
		{
			_('OCTASCForm_ClientCode_IsResident_Handler').style.display = 'block';
			_('OCTASCForm_ClientCode_NotResident_Handler').style.display = 'none';
		}
		else
		{
			_('OCTASCForm_ClientCode_IsResident_Handler').style.display = 'table-row';
			_('OCTASCForm_ClientCode_NotResident_Handler').style.display = 'none';
		}
	}
	else
	{
		if(IS_IE)
		{
			_('OCTASCForm_ClientCode_IsResident_Handler').style.display = 'none';
			_('OCTASCForm_ClientCode_NotResident_Handler').style.display = 'block';
		}
		else
		{
			_('OCTASCForm_ClientCode_IsResident_Handler').style.display = 'none';
			_('OCTASCForm_ClientCode_NotResident_Handler').style.display = 'table-row';
		}
	}
}

function OCTASC_SetOwnerType(OwnerType)
{
	// количества полей
	FizAmount = 1;
	JurAmount = 4;
	
	if(OwnerType == 'Jur')
	{
		for(i = 0; i < FizAmount; i++)
		{
			_('OCTASCForm_OwnerType_Fiz_Handler_' + i).style.display = 'none';
		}
		
		for(i = 0; i < JurAmount; i++)
		{
			if(IS_IE)
				_('OCTASCForm_OwnerType_Jur_Handler_' + i).style.display = 'block';
			else
				_('OCTASCForm_OwnerType_Jur_Handler_' + i).style.display = 'table-row';
		}
	}
	else
	{
		for(i = 0; i < FizAmount; i++)
		{
			if(IS_IE)
				_('OCTASCForm_OwnerType_Fiz_Handler_' + i).style.display = 'block';
			else
				_('OCTASCForm_OwnerType_Fiz_Handler_' + i).style.display = 'table-row';
		}
		
		for(i = 0; i < JurAmount; i++)
		{
			_('OCTASCForm_OwnerType_Jur_Handler_' + i).style.display = 'none';
		}
	}
}

function OCTASC_SetFormActivity(AllowOrder, NextDateAllowed)
{
	if(AllowOrder == '0')
	{
		_('ok').value = msg_3;
		_('step_2_OrderNotAllowedNotice').style.display = 'block';
		//var modifDate = NextDateAllowed.substr(8,2)-1+"."+NextDateAllowed.substr(5,2)+"."+NextDateAllowed.substr(0,4);
		_('OrderAllowedDate').innerHTML = PreviousPolicyDateEnd;
		_('InsuranceSelectionTitle').style.display = 'none';
		_('under-calculator').style.display = 'none';
		_('OrderAllowedDateField').value = NextDateAllowed;
	}
	else
	{
		_('ok').disabled = false;
		_('step_2_OrderNotAllowedNotice').style.display = 'none';
		_('InsuranceSelectionTitle').style.display = 'inline';
		_('under-calculator').style.display = 'block';
	}
}

function OCTASC_ShowWSErrorMessage(ErrorMessage)
{
	_('OCTASC_WS_Error_ErrorMessage').innerHTML = ErrorMessage;
	_('OCTASC_WS_Error').style.display = 'block';
}

// эти текстики на первом шаге слева
function ShowOctaHelp(ElementID)
{
	if(_(ElementID).style.display == 'block')
	{
		_(ElementID).style.display = 'none';
	}
	else
	{
		_(ElementID).style.display = 'block';
	}
}

var FormNeedsCheck = true;
function SubmitStep2Form()
{
	if(FormNeedsCheck)
	{
		for(i = 0; i < _("solis1").length; i++)
		{
			_("solis1")[i].disabled = true;
		}
		_('back').style.display = 'inline';
		FormNeedsCheck = false;
		_('ok').disabled = false;
		_('back').disabled = false;
		canContinueToBuy = false;
	}
	else
	{
		for(i = 0; i < _("solis1").length; i++)
		{
			_("solis1")[i].disabled = false;
		}
		//if (canContinueToBuy) {
  		_('content').style.display = 'none';
  		//_('ConfirmationForm').style.display = 'none';
  		_('SendingData').style.display = 'block';
      _("solis1").submit();
    /*} else {
      _('main').style.display = 'none';
      ShowApprovement();
    }*/
		_('back').style.display = 'none';
	}
}

function UnlockStep2Form()
{
	for(i = 0; i < _("solis1").length; i++)
	{
		_("solis1")[i].disabled = false;
	}
	_('back').style.display = 'none';
	FormNeedsCheck = true;
}
//nosūta pieprasījumu
function OCTASC_Change_Delivery(param)
{	
	AJAXLoad('OCTASCDeliveryKind',
		Serialize([
			Base64.encode(param)
		]),
		'OCTASC_Change_Delivery_Field(Request.responseText);'
	);
}
//apstrādā un atrāda select iekšas
function OCTASC_Change_Delivery_Field(AJAXResponse)
{
  var ErrorExists = false;
	if((AJAXResponse.indexOf('<') != -1) && (AJAXResponse.length > 10)) {
		ErrorExists = true;
	} else {  
		eval(Base64.decode(AJAXResponse));
  }
  
	if(ErrorExists) {
		_('OCTASCForm_DeliveryType').disabled = true;
	} else {
  	_('OCTASCForm_DeliveryType').innerHTML = "";
  	var data = Unserialize(SelectOptions);
  	for (var i=0; i<eval(OptionCount); i++) {
      var optn = document.createElement("OPTION");
      var locValue = data['data'][i]['name'];
      optn.text = locValue.replace(/";}}}/, '');
      optn.value = data['data'][i]['value'];
      document.solis_1.OCTASCForm_DeliveryType.options.add(optn);
    }
  }
}










var IsMozilla = (navigator.appName == 'Netscape');

function MakeDecimalsLooksLikeCurrency(s)
{
	s = Math.round(s * 100) / 100;
	s = new String(s);
	CommaPosition = s.indexOf('.');
	NumsAfterComma = 2;
	
	if(CommaPosition == -1)
	{
		return s + '.00';
	}
	else
	{
		while(s.substr(CommaPosition + 1, 2).length < NumsAfterComma)
		{
			s = s + '0';
		}
		return s;
	}
}

var Companies = {
	'BAN':{'Timeout':60, 'TimerPointer':false, 'DataReturned':false},
	'BALTA':{'Timeout':60, 'TimerPointer':false, 'DataReturned':false},
	'BLT':{'Timeout':60, 'TimerPointer':false, 'DataReturned':false},
	'SEESAM':{'Timeout':60, 'TimerPointer':false, 'DataReturned':false},
	'ERGO':{'Timeout':60, 'TimerPointer':false, 'DataReturned':false},
	'PAREX':{'Timeout':60, 'TimerPointer':false, 'DataReturned':false},
	'IF':{'Timeout':60, 'TimerPointer':false, 'DataReturned':false},
	'Nordicia':{'Timeout':60, 'TimerPointer':false, 'DataReturned':false},
	'BALVA':{'Timeout':60, 'TimerPointer':false, 'DataReturned':false}
};

var CalculationsByOne = { // список компаний, которые можно считать по одному периоду
	'ERGO':0,
	'PAREX':0,
	'Nordicia':0
};

var OwnerDataTimer = {'Timeout':60, 'TimerPointer':false, 'DataReturned':false};

var CalculationStarted = false;

function CompanyCanCalculateByOne(Comany)
{
	for(i in CalculationsByOne)
	{
		if(i == Comany)
		{
			return true;
		}
	}
	return false;
}

function CalculateOCTASCPremium_processes()
{
	if(CalculationStarted)
		return true;
	
	setTimeout('ContinueCheckingServer = false;', 40000);
	
	CalculationStarted = true; // похоже некоторые браузеры дают сделать даблклик, прежде чем кнопка заблокируется
	
	_("ok").value = msg_2;
	
	SessionID = Math.random();
	
	_('InsuranceTable').style.display = 'block';
	_('ButtonCalcGoBack').style.display = 'inline';
	_('BM').innerHTML = '<img src="/i/ajax-loader.gif" />';
	_('SimpleTextOrderAllowedDate').innerHTML = '<img src="/i/ajax-loader.gif" />';
	_('SimpleTextOrderAllowedDate_handler').style.display = 'block';
	
	_('regRn').disabled = true;
	_('aplNr').disabled = true;
	
	AJAXLoadByURL('/ajax_processes.php?ServerMethod=StartCalculation&RegNum=' + _('regRn').value + '&RegCertNum=' + _('aplNr').value, 'BeginFetchingResults(Request.responseText);')
	
	//GetOwnerData(_('regRn').value, _('aplNr').value, SessionID);
	//OwnerDataTimer['TimerPointer'] = setTimeout(function () { ReturnOwnerData(-1); }, (OwnerDataTimer['Timeout'] * 1000));
	
	for(c in Companies)
	{
		for(i = 3; i <= 12; i += 3)
		{
			_('ITC:' + c + ':' + i + 'm').innerHTML = '<img src="/i/ajax-loader.gif" />';
		}
		//if(c != 'BALVA')
			//GetInsurancePrice(c, SessionID);
		//if(IsMozilla)
			//break;
	}
	//GetInsurancePrice('BALVA', SessionID); // попытка вызвать балву самой последней, так как она 20 секунд работает. в большинстве случаев, почему-то, этот способ работает
}

function BeginFetchingResults(CalculationID)
{
	if(CalculationID > 0)
	{
		AJAXLoadByURL('/ajax_processes.php?ServerMethod=FetchCalculatedResults&OCTASCPremiumCalcID=' + CalculationID, 'FetchResults_processes(' + CalculationID + ', Request.responseText);');
	}
}
var WSResponse;
var CheckInterval = 1000;
var ContinueCheckingServer = true;

var TotalPricesCount = (9 * 4);

function FetchResults_processes(CalculationID, AJAXResponse)
{
	CalculatedPricesCount = 0;
	eval(AJAXResponse);
	if(WSResponse)
	{
		CalcCheapest();
		for(i in WSResponse)
		{
			ReturnInsurancePrices_processes(i, WSResponse[i]);
			for(k = 3; k <= 12; k++)
			{
				try
				{
					if(WSResponse[i][k] > 0)
					{
						CalculatedPricesCount++;
					}
				}
				catch(e) {}
			}
		}
	}
	
	try
	{
		if(OwnerData)
		{
			ReturnOwnerData(OwnerData);
			if(OwnerData['ErrorExists'] == 1)
			{
				ContinueCheckingServer = false;
			}
		}
	}
	catch(e) {}
	
	if(CalculatedPricesCount >= TotalPricesCount)
	{
		ContinueCheckingServer = false;
	}
	
	if(ContinueCheckingServer)
	{
		setTimeout('BeginFetchingResults(' + CalculationID + ');', (CheckInterval += 500));
	}
	else
	{
		SetTimedOut();
	}
}

function SetTimedOut()
{
	for(Company in Companies)
	{
		for(i = 3; i <= 12; i += 3)
		{
			if(!(_('ITC:' + Company + ':' + i + 'm').getAttribute('price') && (_('ITC:' + Company + ':' + i + 'm').getAttribute('price') > 0)))
			{
				_('ITC:' + Company + ':' + i + 'm').innerHTML = 'Nav pieejams!';
				_('ITC:' + Company + ':' + i + 'm').className = 'disabled';
			}
		}
	}
}

function CalculateOCTASCPremium()
{
	if(CalculationStarted)
		return true;
	
	CalculationStarted = true; // похоже некоторые браузеры дают сделать даблклик, прежде чем кнопка заблокируется
	
	_("ok").value = msg_2;
	
	SessionID = Math.random();
	
	_('InsuranceTable').style.display = 'block';
	_('ButtonCalcGoBack').style.display = 'inline';
	_('BM').innerHTML = '<img src="/i/ajax-loader.gif" />';
	_('SimpleTextOrderAllowedDate').innerHTML = '<img src="/i/ajax-loader.gif" />';
	_('SimpleTextOrderAllowedDate_handler').style.display = 'block';
	
	_('regRn').disabled = true;
	_('aplNr').disabled = true;
	
	
	GetOwnerData(_('regRn').value, _('aplNr').value, SessionID);
	OwnerDataTimer['TimerPointer'] = setTimeout(function () { ReturnOwnerData(-1); }, (OwnerDataTimer['Timeout'] * 1000));
	
	for(c in Companies)
	{
		for(i = 3; i <= 12; i += 3)
		{
			_('ITC:' + c + ':' + i + 'm').innerHTML = '<img src="/i/ajax-loader.gif" />';
		}
		if(c != 'BALVA')
			GetInsurancePrice(c, SessionID);
		//if(IsMozilla)
			//break;
	}
	GetInsurancePrice('BALVA', SessionID); // попытка вызвать балву самой последней, так как она 20 секунд работает. в большинстве случаев, почему-то, этот способ работает
	
}

function LoadExternalScript(ElementID, ServerMethod, Arguments, SessionID)
{
	//_(ElementID).setAttribute('src', '/ajax.php?LanguageID=' + LanguageID + '&ServerMethod=' + ServerMethod + '&Arguments=' + escape(Arguments));
	JSInclude(ElementID, '/ajax.php?LanguageID=' + LanguageID + '&SessionID=' + SessionID + '&ServerMethod=' + ServerMethod + '&Arguments=' + escape(Arguments));
	//if(ElementID == 'Balta_ScriptHolder')
		//alert('/ajax.php?LanguageID=' + LanguageID + '&SessionID=' + SessionID + '&ServerMethod=' + ServerMethod + '&Arguments=' + escape(Arguments));
}

function ResetExternalScript(ElementID)
{
	if(_(ElementID))
		_(ElementID).setAttribute('src', '/js/empty.js?' + ElementID);
}

function GetOwnerData(RegNum, CardNum, SessionID)
{
	LoadExternalScript('GetOwnerData_ScriptHolder', 'GetOwnerData', Serialize([Base64.encode(RegNum), Base64.encode(CardNum)]), SessionID);
	/*AJAXLoadKillable('GetOwnerData',
		Serialize([
			Base64.encode(RegNum),
			Base64.encode(CardNum)
		]),
		'ReturnOwnerData(AJAXResponseText);',
		'CommonInfo'
	);*/
}
var AllowOrderPolicy = true;
function ReturnOwnerData(WSData)
{
	//WSData = Unserialize(Base64.decode(AJAXResponse));
	//alert(Base64.decode(AJAXResponse));
	
	if(OwnerDataTimer['TimerPointer'])
	{
		clearTimeout(OwnerDataTimer['TimerPointer']);
		OwnerDataTimer['TimerPointer'] = false;
		ResetExternalScript('GetOwnerData_ScriptHolder');
	}
	
	//WSData = -1;
	WSReturnedError = false;
	
	/*if((AJAXResponse.indexOf('<') != -1) || (AJAXResponse.length < 10))
	{
		WSReturnedError = true;
	}
	else
	{
		eval(Base64.decode(AJAXResponse));
	}*/
	
	if(!OwnerDataTimer['DataReturned'])
	{
		if((WSData == -1) || WSReturnedError)
		{
			_('BM').innerHTML = 'Nav pieejams!';
			_('SimpleTextOrderAllowedDate').innerHTML = 'Nav pieejams!';
			_('SimpleTextOrderAllowedDate_handler').style.display = 'block';
		}
		else
		{
			if(WSData['ErrorExists'] == 1)
			{
				_('InsuranceTable').style.display = 'none';
				_('ButtonCalcGoBack').style.display = 'none';
				ElementHide("step_2");
				_('OCTASC_WS_Error').style.display = 'block';
				try
				{
					if(WSData['InternalErrorCode'])
						_('OCTASC_WS_Error_ErrorMessage').innerHTML = WSErrorMessages['WSERROR_' + WSData['InternalErrorCode']];
					else
						_('OCTASC_WS_Error_ErrorMessage').innerHTML = WSData['InformationText'];
				}
				catch(e)
				{
					_('OCTASC_WS_Error_ErrorMessage').innerHTML = WSData['InformationText'];
				}
				_('ok').disabled = false;
				_('ok').onclick = function() { window.location.reload(); };
				_('regRn').disabled = true;
				_('aplNr').disabled = true;
				_('ok').value = msg_3;
				//KillRequests();
				StopPremiumCalc();
			}
			else
			{
				OwnerDataReturned = true;
				EnableOKButton();
				_('BM').innerHTML = WSData['BonusMalusClassRet'];
				_('SimpleTextOrderAllowedDate').innerHTML = WSData['PreviousPolicyDateEnd'];
				_('SimpleTextOrderAllowedDate_handler').style.display = 'block';
				
				_('OCTASCForm_PolicyDateBegin').value = WSData['NewPolicyDateBegin'];
				_('OCTASCForm_VehicleRegistrationNumber_s2').value = WSData['VehicleRegistrationNumberRet'];
				_('OCTASCForm_VehicleCertificateNumber_s2').value = WSData['VehicleCertificateNumberRet'];
				_('OCTASCForm_OwnerType').value = WSData['OwnerTypeRet'];
				_('OCTASCForm_VehicleBrandModel').value = WSData['VehicleBrandModel'];
				_('OCTASCForm_VehicleYear').value = WSData['VehicleReleaseYear'];
				_('OCTASCForm_BM').value = WSData['BonusMalusClassRet'];
				
				_('OCTASCForm_OwnerFirstName').value = WSData['OwnerFirstName'];
				_('OCTASCForm_OwnerName').value = WSData['OwnerName'];
				
				_('OCTASCForm_OwnerCode').value = WSData['OwnerCodeRet'];
				_('OCTASCForm_OwnerFullTextAddress').value = WSData['OwnerFullTextAddress'];
				
				if(WSData['AllowOrder'] == 0)
				{
					AllowOrderPolicy = false;
					RemoveRadioButtonsIfNotAllowed();
					
					_('step_2_OrderNotAllowedNotice').style.display = 'block';
					OwnerDataReturned = false;
					_('ok').style.display = 'none';
					_('SimpleTextOrderAllowedDate_handler').style.display = 'none';
					
					_('OrderAllowedDateField').value = WSData['NewPolicyDateBegin'];
					_('OrderAllowedDate').innerHTML = WSData['PreviousPolicyDateEnd'];
					_('regRnNotification').value = WSData['VehicleRegistrationNumberRet'];
					_('aplNrNotification').value = WSData['VehicleCertificateNumberRet'];
				}
				
				/*_('OwnerName').value = WSData['OwnerName'];
				_('OwnerFirstName').value = WSData['OwnerFirstName'];
				*/
			}
		}
	}
	
	OwnerDataTimer['DataReturned'] = true;
}

function GetInsurancePrice(InsuranceCompany, SessionID)
{
	if(CompanyCanCalculateByOne(InsuranceCompany))
	{
		for(i = 3; i <= 12; i += 3)
		{
			if(!Companies[InsuranceCompany]['TimerPointer'])
				Companies[InsuranceCompany]['TimerPointer'] = setTimeout('ReturnInsurancePrices("' + InsuranceCompany + '", -1);', (Companies[InsuranceCompany]['Timeout'] * 1000));
			
			LoadExternalScript(InsuranceCompany + '_ScriptHolder_' + i, 'OCTASCCalcByCompany', Serialize([Base64.encode(InsuranceCompany), Base64.encode(_('regRn').value), Base64.encode(_('aplNr').value), Base64.encode(i + '')]), SessionID);
		}
	}
	else
	{
		Companies[InsuranceCompany]['TimerPointer'] = setTimeout('ReturnInsurancePrices("' + InsuranceCompany + '", -1);', (Companies[InsuranceCompany]['Timeout'] * 1000));
		LoadExternalScript(InsuranceCompany + '_ScriptHolder', 'OCTASCCalcByCompany', Serialize([Base64.encode(InsuranceCompany), Base64.encode(_('regRn').value), Base64.encode(_('aplNr').value)]), SessionID);
		
		//if(InsuranceCompany == 'BLT')
			//alert('/ajax.php?LanguageID=' + LanguageID + '&SessionID=' + SessionID + '&ServerMethod=' + 'OCTASCCalcByCompany' + '&Arguments=' + escape(Serialize([Base64.encode(InsuranceCompany), Base64.encode(_('regRn').value), Base64.encode(_('aplNr').value)])));
	}
	/*AJAXLoadKillable('OCTASCCalcByCompany',
		Serialize([
			Base64.encode(InsuranceCompany),
			Base64.encode(_('regRn').value),
			Base64.encode(_('aplNr').value)
		]),
		'ReturnInsurancePrices("' + InsuranceCompany + '", AJAXResponseText);',
		InsuranceCompany
	);*/
}

var OwnerDataReturned = false;
var AtleastOneServiceReturnedSomething = false;
var CurrentCheapestStarted = false; //  чтобы не писать очень больших цен, а для первого веб-сервиса сказать что он самый дешёвый
var CurrentCheapest = {
	3 : {
		'Company' : '',
		'Price' : 0
	},
	6 : {
		'Company' : '',
		'Price' : 0
	},
	9 : {
		'Company' : '',
		'Price' : 0
	},
	12 : {
		'Company' : '',
		'Price' : 0
	}
};

function CalcCheapest()
{
	for(Company in WSResponse)
	{
		for(Months in WSResponse[Company])
		{
			if(CurrentCheapest[Months]['Price'] > 0)
			{
				if((CurrentCheapest[Months]['Price'] > WSResponse[Company][Months]) && (WSResponse[Company][Months] > 0))
				{
					CurrentCheapest[Months]['Price'] = WSResponse[Company][Months];
					CurrentCheapest[Months]['Company'] = Company;
				}
			}
			else
			{
				//CurrentCheapestStarted = true;
				CurrentCheapest[Months]['Price'] = WSResponse[Company][Months];
				CurrentCheapest[Months]['Company'] = Company;
			}
		}
	}
}

function ReturnInsurancePrices_processes(InsuranceCompany, WSData)
{
	MarkCheapest(false);
	// чтобы пересчитывать минимальное значение по мере подгрузки
	
	for(i = 3; i <= 12; i += 3)
	{
		if(WSData[i] > 0)
		{
			_('ITC:' + InsuranceCompany + ':' + i + 'm').innerHTML = '<div class="OCTAOfferTableBodyPriceHandler"><input type="radio" name="insurance" id="L:' + InsuranceCompany + ':' + i + 'm" value="ITC:' + InsuranceCompany + ':' + i + 'm" /> ' + MakeDecimalsLooksLikeCurrency(WSData[i]) + '</div>';
			_('ITC:' + InsuranceCompany + ':' + i + 'm').setAttribute('price', WSData[i]);
			_('ITC:' + InsuranceCompany + ':' + i + 'm').onclick = function() { SelectInsurance(this); };
			_('ITC:' + InsuranceCompany + ':' + i + 'm').className = '';
		}
	}
	
	AtleastOneServiceReturnedSomething = true;
	EnableOKButton();
	RemoveRadioButtonsIfNotAllowed();
	WSData = -1;
	delete(WSData);
	
	MarkCheapest(true);
}

function ReturnInsurancePrices(InsuranceCompany, WSData)
{
	WSReturnedError = false;
	
	if(CompanyCanCalculateByOne(InsuranceCompany))
	{
		for(i = 3; i <= 12; i += 3) // если пришла хотябы одна цена - будем считать что вс ответил
		{
			if(WSData[i] > 0)
			{
				CalculationsByOne[InsuranceCompany]++;
				break;
			}
		}
		
		if(CalculationsByOne[InsuranceCompany] == 4) // если посчиталась последняя цена
		{
			if(Companies[InsuranceCompany]['TimerPointer'])
			{
				clearTimeout(Companies[InsuranceCompany]['TimerPointer']);
				Companies[InsuranceCompany]['TimerPointer'] = false;
				for(i = 3; i <= 12; i += 3)
					ResetExternalScript(InsuranceCompany + '_ScriptHolder_' + i);
			}
		}
	}
	else
	{
		if(Companies[InsuranceCompany]['TimerPointer'])
		{
			clearTimeout(Companies[InsuranceCompany]['TimerPointer']);
			Companies[InsuranceCompany]['TimerPointer'] = false;
			ResetExternalScript(InsuranceCompany + '_ScriptHolder');
		}
	}
	
	if(!Companies[InsuranceCompany]['DataReturned'])
	{
		if(CompanyCanCalculateByOne(InsuranceCompany))
		{
			if(CalculationsByOne[InsuranceCompany] == 4) // если посчиталась последняя цена
			{
				WSReturnedError = true;
				for(i = 3; i <= 12; i += 3)
				{
					if(WSData[i] > 0)
					{
						WSReturnedError = false;
						break;
					}
				}
			}
		}
		else
		{
			for(i = 3; i <= 12; i += 3)
			{
				if(!(WSData[i] > 0))
				{
					WSReturnedError = true;
					break;
				}
			}
		}
		
		if((WSData == -1) || WSReturnedError)
		{
			if(CompanyCanCalculateByOne(InsuranceCompany))
			{
				for(i = 3; i <= 12; i += 3)
				{
					if(!(_('ITC:' + InsuranceCompany + ':' + i + 'm').getAttribute('price') && (_('ITC:' + InsuranceCompany + ':' + i + 'm').getAttribute('price') > 0)))
					{
						_('ITC:' + InsuranceCompany + ':' + i + 'm').innerHTML = 'Nav pieejams!';
						_('ITC:' + InsuranceCompany + ':' + i + 'm').className = 'disabled';
					}
				}
			}
			else
			{
				for(i = 3; i <= 12; i += 3)
				{
					_('ITC:' + InsuranceCompany + ':' + i + 'm').innerHTML = 'Nav pieejams!';
					_('ITC:' + InsuranceCompany + ':' + i + 'm').className = 'disabled';
				}
			}
		}
		else
		{
			MarkCheapest(false);
			// чтобы пересчитывать минимальное значение по мере подгрузки
			
			if(CurrentCheapestStarted)
			{
				for(i = 3; i <= 12; i += 3)
				{
					if((CurrentCheapest[i]['Price'] > WSData[i]) && (WSData[i] > 0))
					{
						CurrentCheapest[i]['Price'] = WSData[i];
						CurrentCheapest[i]['Company'] = InsuranceCompany;
					}
				}
			}
			else
			{
				CurrentCheapestStarted = true;
				for(i = 3; i <= 12; i += 3)
				{
					CurrentCheapest[i]['Price'] = WSData[i];
					CurrentCheapest[i]['Company'] = InsuranceCompany;
				}
			}
			
			for(i = 3; i <= 12; i += 3)
			{
				if(WSData[i] > 0)
				{
					_('ITC:' + InsuranceCompany + ':' + i + 'm').innerHTML = '<div class="OCTAOfferTableBodyPriceHandler"><input type="radio" name="insurance" id="L:' + InsuranceCompany + ':' + i + 'm" value="ITC:' + InsuranceCompany + ':' + i + 'm" /> ' + MakeDecimalsLooksLikeCurrency(WSData[i]) + '</div>';
					_('ITC:' + InsuranceCompany + ':' + i + 'm').setAttribute('price', WSData[i]);
					_('ITC:' + InsuranceCompany + ':' + i + 'm').onclick = function() { SelectInsurance(this); };
					_('ITC:' + InsuranceCompany + ':' + i + 'm').className = '';
				}
			}
			
			AtleastOneServiceReturnedSomething = true;
			EnableOKButton();
			RemoveRadioButtonsIfNotAllowed();
			WSData = -1;
			delete(WSData);
			
			MarkCheapest(true);
		}
	}
	
	if(CompanyCanCalculateByOne(InsuranceCompany))
	{
		if(CalculationsByOne[InsuranceCompany] == 4) // если посчиталась последняя цена
		{
			Companies[InsuranceCompany]['DataReturned'] = true;
		}
	}
	else
	{
		Companies[InsuranceCompany]['DataReturned'] = true;
	}
	
}

function EnableOKButton()
{
	if(OwnerDataReturned && AtleastOneServiceReturnedSomething)
	{
		_('ok').disabled = false;
		_('ok').onclick = function() { ContinueToStep2(); };
	}
}

function RemoveRadioButtonsIfNotAllowed()
{
	if(!AllowOrderPolicy)
	{
		for(c in Companies)
		{
			for(i = 3; i <= 12; i += 3)
			{
				if(_('L:' + c + ':' + i + 'm'))
				{
					_('L:' + c + ':' + i + 'm').style.display = 'none';
				}
			}
		}
	}
}

function ContinueToStep2()
{
	if(CurrentlySelectedInsurance == -1)
	{
		alert(MSG_InsuranceCompanyNotSelected);
	}
	else
	{
		//if (canContinueToBuy) {
			KillRequests();
			_('form_for_step_3').submit();
		//} else {
			//ShowApprovement();
		//}
	}
}
function MarkCheapest(Draw)
{
	for(Month in CurrentCheapest)
	{
		if((CurrentCheapest[Month]['Company'] != '') && _('ITC:' + CurrentCheapest[Month]['Company'] + ':' + Month + 'm'))
		{
			if(Draw)
			{
				_('ITC:' + CurrentCheapest[Month]['Company'] + ':' + Month + 'm').className = 'cheapest';
			}
			else
			{
				_('ITC:' + CurrentCheapest[Month]['Company'] + ':' + Month + 'm').className = 'normal';
			}
		}
	}
}

var CurrentlySelectedInsurance = -1;
function SelectInsurance(Element)
{
	if(CurrentlySelectedInsurance != -1)
		CurrentlySelectedInsurance.className = '';
	
	CurrentlySelectedInsurance = Element.id;
	
	_('InsuranceCode').value = Element.id.substr(4) + ':' + Element.getAttribute('price');
	//alert(Element.id + '\r\n' + Element.getAttribute('price'));
	_('L:' + Element.id.substr(4)).checked = true;
	//alert(Element.id.substr(4));
}

function StopPremiumCalc()
{
	CurrentCheapest = {
		3 : {
			'Company' : '',
			'Price' : ''
		},
		6 : {
			'Company' : '',
			'Price' : ''
		},
		9 : {
			'Company' : '',
			'Price' : ''
		},
		12 : {
			'Company' : '',
			'Price' : ''
		}
	};
	canContinueToBuy = false;
	_('ok').style.display = 'none';
	_('ButtonCalcGoBack').style.display = 'inline';
	_('ok').disabled = false;
	_('ok').value = MSG_Calc;
	_('ok').onclick = function() { OCTASC_WS_Query(); };
	_('step_2_OrderNotAllowedNotice').style.display = 'none';
	//KillRequests();
	
	for(c in Companies)
	{
		ResetExternalScript(c + '_ScriptHolder');
	}
	ResetExternalScript('GetOwnerData_ScriptHolder');
	
	ElementHide("step_2");
}

function setStartPosition(){
  _('OCTASC_Input_RegNum').disabled = false;
	_('OCTASC_Input_RegCertNum').disabled = false;
	_("OCTASC_Button_ProcessCalculation").disabled = true;
}

function pageWidth() {
  return window.innerWidth != null? window.innerWidth: document.body != null? document.body.clientWidth:null;
}

function load(){
  var width = pageWidth();
  if (width > 1640) {
    document.getElementById('around_right0').style.width="7.0%";
    document.getElementById('around_right1').style.width="7.0%";
    document.getElementById('around_right2').style.width="7.0%";
    document.getElementById('around_right3').style.width="7.0%";
    document.getElementById('around_left0').style.width="6%";
    document.getElementById('around_left1').style.width="6%";
    document.getElementById('around_left2').style.width="6%";
    document.getElementById('around_left3').style.width="6%";
  } else if (width < 1640 && width > 1600) {
    document.getElementById('around_right0').style.width="7.8%";
    document.getElementById('around_right1').style.width="7.8%";
    document.getElementById('around_right2').style.width="7.8%";
    document.getElementById('around_right3').style.width="7.8%";
    document.getElementById('around_left0').style.width="6.5%";
    document.getElementById('around_left1').style.width="6.5%";
    document.getElementById('around_left2').style.width="6.5%";
    document.getElementById('around_left3').style.width="6.5%";
  } else if (width <= 1600 && width > 1440) {
    document.getElementById('around_right0').style.width="8.5%";
    document.getElementById('around_right1').style.width="8.5%";
    document.getElementById('around_right2').style.width="8.5%";
    document.getElementById('around_right3').style.width="8.5%";
    document.getElementById('around_left0').style.width="6.5%";
    document.getElementById('around_left1').style.width="6.5%";
    document.getElementById('around_left2').style.width="6.5%";
    document.getElementById('around_left3').style.width="6.5%";
  } else if (width < 1440 && width > 1360) {
    document.getElementById('around_right0').style.width="9.1%";
    document.getElementById('around_right1').style.width="9.1%";
    document.getElementById('around_right2').style.width="9.1%";
    document.getElementById('around_right3').style.width="9.1%";
    document.getElementById('around_left0').style.width="7%";
    document.getElementById('around_left1').style.width="7%";
    document.getElementById('around_left2').style.width="7%";
    document.getElementById('around_left3').style.width="7%";
  } else if (width < 1360 && width > 1280) {
    document.getElementById('around_right0').style.width="10%";
    document.getElementById('around_right1').style.width="10%";
    document.getElementById('around_right2').style.width="10%";
    document.getElementById('around_right3').style.width="10%";
    document.getElementById('around_left0').style.width="7.5%";
    document.getElementById('around_left1').style.width="7.5%";
    document.getElementById('around_left2').style.width="7.5%";
    document.getElementById('around_left3').style.width="7.5%";
  } else if (width < 1280 && width > 1152) {
    document.getElementById('around_right0').style.width="11%";
    document.getElementById('around_right1').style.width="11%";
    document.getElementById('around_right2').style.width="11%";
    document.getElementById('around_right3').style.width="11%";
    document.getElementById('around_left0').style.width="8%";
    document.getElementById('around_left1').style.width="8%";
    document.getElementById('around_left2').style.width="8%";
    document.getElementById('around_left3').style.width="8%";
  } else if (width < 1152 && width > 1024) {
    document.getElementById('around_right0').style.width="12.5%";
    document.getElementById('around_right1').style.width="12.5%";
    document.getElementById('around_right2').style.width="12.5%";
    document.getElementById('around_right3').style.width="12.5%";
    document.getElementById('around_left0').style.width="8.5%";
    document.getElementById('around_left1').style.width="8.5%";
    document.getElementById('around_left2').style.width="8.5%";
    document.getElementById('around_left3').style.width="8.5%";
  } else if (width < 1024) {
    document.getElementById('around_right0').style.width="13%";
    document.getElementById('around_right1').style.width="13%";
    document.getElementById('around_right2').style.width="13%";
    document.getElementById('around_right3').style.width="13%";
    document.getElementById('around_left0').style.width="9%";
    document.getElementById('around_left1').style.width="9%";
    document.getElementById('around_left2').style.width="9%";
    document.getElementById('around_left3').style.width="9%";
  }
}


/*

  ****************************   No step1 faila  ****************************
	
*/
function go(event) {
	var regRn = _('regRn').value;
	var aplNr = _('aplNr').value;
	var keyCodeEntered = event.keyCode;
	if ( keyCodeEntered == 13 && regRn.length > 2 && aplNr.length >= 8){
			OCTASC_WS_Query();
	}
}

	var msg_1 = '{TEXT_OCTA_1_Poga_Aprekinat}';
	var msg_2 = '{TEXT_OCTA_1_Poga_PirktPolisi}';
	var msg_3 = '{TEXT_OCTA_1_Poga_UzSakumu}';
	var OCTASC_Button_ProcessCalculation_Msg_Default = '{TEXT_OCTA_1_Poga_Aprekinat}';
	var OCTASC_Button_ProcessCalculation_Msg_Continue = '{TEXT_OCTA_1_Poga_PirktPolisi}';
	var OCTASC_Button_ProcessCalculation_Msg_Reset = '{TEXT_OCTA_1_Poga_UzSakumu}';
	var soap_error;

function todo()
{
	var got_from_ajax;
	got_from_ajax = true;
	
	if(flag_1)
	{
		document.getElementById('ok').disabled = true;
		document.forma.submit();
		exit;
	}
	
	if(got_from_ajax = true)
	{
		document.getElementById('ok').disabled = true;
		//run = show_commission();
	}
	else
	{
		//run = show_error_report();
	}
}

function change_fields()
{
	if(flag_1)
	{
		document.forma.gotohome.value= 'no';
		run = show_default();
	}
}

function change_term() {}

function show_commission()
{
	get_prem();
	
	document.getElementById('error_report').style.display = 'none';
	document.getElementById('nopolicy_report').style.display = 'none';
	document.getElementById('under-calculator').style.display = 'block';
	document.getElementById('ok').value = msg_2;
	flag_1 = true;
}

function show_error_report()
{
	document.getElementById('ok').value = msg_1;
	flag_1 = false;
}

function show_polise_notvalid()
{
	document.getElementById('ok').value= msg_3;
	flag_1 = true;
}

function show_default()
{
	document.getElementById('ok').value = msg_1;
	flag_1 = false;
}

function activateNotifButton(elem)
{
	if(elem.id=='inputNotifEmail'){
		if(checkNotifEmailAdd(elem.value)){
			document.getElementById('addNotif').disabled = false;
			document.getElementById('notifTxt').style.color = "#000000";
			document.getElementById('notifTxtMob').style.color = "#000000";
		}else{
			document.getElementById('addNotif').disabled = true;
			document.getElementById('notifTxt').style.color = "#ff0000";
			if(checkNotifMobNum(document.getElementById('inputNotifMobNr').value)){
				document.getElementById('notifTxtMob').style.color = "#000000";
				if(elem.value.length==0){
					document.getElementById('notifTxt').style.color = "#000000";
					document.getElementById('addNotif').disabled = false;
				}
			}else{
        document.getElementById('notifTxtMob').style.color = "#ff0000";
			}
		}
	}else if(elem.id=='inputNotifMobNr'){
		if(checkNotifMobNum(elem.value)){
			document.getElementById('addNotif').disabled = false;
			document.getElementById('notifTxtMob').style.color = "#000000";
			document.getElementById('notifTxt').style.color = "#000000";
		}else{
			document.getElementById('addNotif').disabled = true;
			document.getElementById('notifTxtMob').style.color = "#ff0000";
			if(checkNotifEmailAdd(document.getElementById('inputNotifEmail').value)){
				document.getElementById('notifTxt').style.color = "#000000";
				if(elem.value.length==0){
					document.getElementById('notifTxtMob').style.color = "#000000";
					document.getElementById('addNotif').disabled = false;
				}
			}else{
        document.getElementById('notifTxt').style.color = "#ff0000";
			}
		}
	}
}
function checkNotifEmailAdd(value){
  if((value.indexOf('@')!=-1) &&  (value.indexOf('.')!=-1) &&  (value.length>5)){
		return true;
	}else{
		return false;
	}
}
function checkNotifMobNum(value){
  value = value.toString();
  if(value.length < 8){
		return false;
	}else{
		return true;
	}
}
function Check_DataFields(element,date_type){
	if(date_type == "1") {
    var field = element;
    var valo = new String();
    var numere = "0123456789";
    var chars = field.value.split("");
    for (i = 0; i < chars.length; i++) {
      if (numere.indexOf(chars[i]) != -1)
          valo += chars[i];
    }
      if (field.value != valo)
          field.value = valo;
  }
}

/*

  ****************************   No step2 faila  ****************************
	
*/
//kalendaara pogas paarziimeeshana - taa tiek izsaukta ar toDate2 funkciju
function kalendars()
{
	DatePickerControl.relocateButtons();
}
function StrToDate (dateString)
{
	var day=parseFloat(dateString.substring(0,2));
	var month=parseFloat(dateString.substring(3,5));
	var year=parseFloat(dateString.substring(6,10));

	var dateDate = new Date(year, --month, day, 0, 0, 0, 0); //new Date(year, --month, day, 0, 0, 0, 0);
	//Dodam Saakuma Datumu
	/*dateDate.setFullYear(year);
	dateDate.setMonth(month-1);
	dateDate.setDate(day);*/
	return dateDate;
}

/*--------------------------------------------------------------

Funkcija kas tiek darbinaata ik peec 0.5 sek - apreekina beigu 
datumu un izvada to edit 2 laukaa

--------------------------------------------------------------*/
function toDate2(objID)
{
	//tiek paarziimeeta kalendaara podzinja (pati funkcija ir pashaa augshaa)
	kalendars();
	//nolasa saakuma datumu no saakuma datuma lauka (izmantojot "edit1", kaa identifikaatoru)
	var fromdate=document.getElementById(objID).value;

  //sadala saakuma datumu gabalos - day[diena], month[meenesis], year[gads]
	var day=parseFloat(fromdate.substring(0,2));
	var month=parseFloat(fromdate.substring(3,5));
	var year=parseFloat(fromdate.substring(6,10));
	
	//mmm ir terminsh (piem 12 - meensehi vai 3 - meenshi)
	var mmm=document.getElementById("term").value;
	//tiek nolasiits SERVERA laiks un datums (laiku values tiek izvadiitas izmantojot php - date)
	var slaiks=document.getElementById("slaiks").value;
	var sdatums=document.getElementById("sdatums").value;


	if (sdatums==fromdate)
	{
		document.solis_1.stajas_sp.value="true";
	}
	else {
		document.solis_1.stajas_sp.value="false";
	}
	
	
	//terminsh, kas tiek nolasiits no pirmaas lapas kaa strings formaataa piem "9M"
	//tiek paarveidots par integer
	mmm=parseInt(mmm);

	//tiek iedoti dati funkcijai monthsahead, kas aprakstiita zemaaak
	//respektiivi tiek doti :terminjsh, userdiena, usermenesis, usergads, servera laiks
	//var todate=monthsahead(mmm,day,month,year,slaiks);
	
	var startDate;
	var endDate;
	var scenario=1;
	var startYear=year;
	var startMonth=month;
	var startDay=day;
	var durationValue=mmm;
	var durationUnit="MONTH";
	var todate=calcBeiguDatums(scenario,startDate,endDate,startYear,startMonth,startDay,durationValue,durationUnit)
	

	//ja ir saakuma datums ir tukshs, tad beigu datumaa arii ir ievietots tukshums
	if ((fromdate=='')||(fromdate==' ')||(fromdate=='  '))
	{
		document.getElementById("edit2").value = '';
	}
	//paareejos gadiijumos - tiek iekopeets apreekinaatais beigu datums
	//un tas tiek iekopeec edit2 laukaa
	else 
	{
		document.getElementById("edit2").value = todate;
	}
	
	//shii funkcija tiek atkaartota ik peec briizha lai vienmeer
	//paareekinaatu beifu datumu
	//setTimeout('toDate2("edit1")', 200);
}

/*--------------------------------------------------------------

JAUNA DATUMA REEKINAAASHANA)

--------------------------------------------------------------*/
function makeArray() {
  for (i = 0; i<makeArray.arguments.length; i++)
    this[i + 1] = makeArray.arguments[i];
}

var months = new makeArray('01','02','03','04',
                           '05','06','07','08','09',
                           '10','11','12');
                           
var lvdays = new makeArray('01','02','03','04',
                           '05','06','07','08','09',
                           '10','11','12','13','14','15','16','17','18','19','20','21',
									'22','23','24','25','26','27','28','29','30','31');
									
function convertDienas(diena)
{
	if (diena=='1') {diena='01'}
	if (diena=='2') {diena='02'}
	if (diena=='3') {diena='03'}
	if (diena=='4') {diena='04'}
	if (diena=='5') {diena='05'}
	if (diena=='6') {diena='06'}
	if (diena=='7') {diena='07'}
	if (diena=='8') {diena='08'}
	if (diena=='9') {diena='09'}
	return diena;
}                           

function nths(day) {
    if (day == 1 || day == 21 || day == 31) return 'st';
    if (day == 2 || day == 22) return 'nd';
    if (day == 3 || day == 23) return 'rd';
    return 'th';
}

function y2k2(number) { return (number < 1000) ? number + 1900 : number; }

function y2k (number)
{
	var number2=y2k2(number);
	if (number2<1000)
	{
		number2=number2+1900;
	}
	return number2;
}


function daysInMonth(theYear, theMonth) {
    var numDays = 27;
    var refMonth = --theMonth;
    while (refMonth == theMonth) {
      var refDate = new Date(theYear, theMonth, ++numDays, 0, 0, 0, 0);
      refMonth = refDate.getMonth();
    }
    return --numDays;
}

function addDaysToDate(myDate,days) {
    return new Date(myDate.getTime() + days*24*60*60*1000);
}



function addMonthsToDate(startDate, numMonths) {
    var addYears = Math.floor(numMonths/12);
    var addMonths = numMonths - (addYears * 12);
    var newMonth = startDate.getMonth() + addMonths;
    if (startDate.getMonth() + addMonths > 11) {
      ++addYears;
      newMonth = startDate.getMonth() + addMonths - 12;
    }
    var newDate = new Date(startDate.getYear()+addYears,newMonth,startDate.getDate(),startDate.getHours(),startDate.getMinutes(),startDate.getSeconds());

    // adjust to correct month
    while (newDate.getMonth() != newMonth) {
      newDate = addDaysToDate(newDate, -1);
    }
	
	
	//sheit notiek dienas atnjemshana ja laiks ir zem 1200
	var stajas_sp=document.getElementById("stajas_sp").value;
	var slaiks=document.getElementById("slaiks").value;
	
	//Ja ir izveeleets staajas nekaveejoties peec plkst 12:00 tad nedaraam neko
	if ((stajas_sp=="true")&&(slaiks>1200))
	{
		//do nothing
	}
	else if ((stajas_sp=="true")&&(slaiks<1200))
	{
		//jaaatnjem viena diena
		newDate = addDaysToDate(newDate, -1);
	}
	else if (stajas_sp=="false")
	{
		//atnjemam viena diena
		newDate = addDaysToDate(newDate, -1);
	}
    return newDate;
}

function addDuration(startDate, durationUnit, durationValue) {
  var numMonths;
  if (durationUnit == "YEAR")
    numMonths = durationValue * 12;
  else
    if (durationUnit == "MONTH")
      numMonths = durationValue;
    else
      if (durationUnit == "DAY") {
        return addDaysToDate(startDate, durationValue);
      }
      else
       return startDate();   // invalid durationUnit
  return addMonthsToDate(startDate, numMonths);
}

function isValidDate(year, month, day) {
  checkDate = new Date(year, --month, day, 0, 0, 0, 0);
  return checkDate.getMonth() == month;
}

function formatDate(aDate) {
  return convertDienas(aDate.getDate()) + '/' + months[aDate.getMonth() + 1] + '/' + y2k(aDate.getFullYear());
}

function testScenario(scenario,startDate,endDate,startYear,startMonth,startDay,durationValue,durationUnit) {
  document.writeln("Scenario " + scenario);
  document.writeln("DurationValue " + durationValue.toString());
  document.writeln("DurationUnit " + durationUnit.toString());
  if (!isValidDate(startYear, startMonth, startDay)) {
    document.writeln("Invalid start date " + startYear + "/" + (startMonth) + "/" + startDay);
  }
  else {
    document.writeln("valid date");
    startDate = new Date(startYear, startMonth-1, startDay, 0, 0, 0, 0);
    document.writeln(formatDate(startDate));
    endDate = addDuration(startDate, durationUnit, durationValue);
    document.writeln(formatDate(endDate));
  }
  document.writeln();
}

function calcBeiguDatums(scenario,startDate,endDate,startYear,startMonth,startDay,durationValue,durationUnit)
{
	startDate = new Date(startYear, startMonth-1, startDay, 0, 0, 0, 0);
	endDate = addDuration(startDate, durationUnit, durationValue);
	return formatDate(endDate);
}


/*--------------------------------------------------------------

FUNKCIJAS KAS IZNJEMTAS NO PAGE2.php (client-VALIDAACIJA)

--------------------------------------------------------------*/

//funkcija, kas pie klikoshanas uz Adreses (ne piegaades adreses) lauka
//paarbauda "vienotais registracijas numurs" lauku un izbliezh attieciigo
//pazinjumu. Ja reg. numurs sakriit ar webservisa numuru, tad tiek
//iekopeeta adreses rinda
function validate_OwnerCode(OwnerCode)
{
	//validateOC=document.solis_1.validateOC.value;
	//alert(OwnerCode);
	if (OwnerCode == '' )
	{
		// REMOVED document.getElementById("e_OwnerCode").innerHTML = 'Lauks obligāts!';	
	}
	else if ((OwnerCode == document.solis_1.OwnerCode_hiden.value))
	{ 
		document.getElementById("e_OwnerCode").innerHTML = '';
		//Iekopeju adresi ja tur nekas nav jau ierakstiits
		if (document.solis_1.nemeja_adrese.value == '')
		{
			document.solis_1.nemeja_adrese.value =document.solis_1.OwnerFullTextAddress_hiden.value ; 
		}
	}
	else
	{
		document.getElementById("e_OwnerCode").innerHTML = '';
	}
}

//funkcija buutiibaa ir tas pats kas ieprieksheejaa, tachu tiek izmantota
//pie sumbiteeshanas. tai papildus naak "err" mainiigaa pieshkirshana
//kas var blokeet formas submitreeshanu
function validate_OwnerCode_submit()
{
	if (document.solis_1.OwnerType_hiden.value == 'true')
	{	  
		if (document.solis_1.OwnerCode.value == '' )
		{
			// REMOVED document.getElementById("e_OwnerCode").innerHTML = 'Lauks obligāts!';
			err=1;	
		}
		else if (document.solis_1.OwnerCode.value == document.solis_1.OwnerCode_hiden.value)
		{ 
			document.getElementById("e_OwnerCode").innerHTML = '';
			//Iekopeju adresi ja tur nekas nav jau ierakstiits ta bij prasit specifikaacijaa
			if (document.solis_1.nemeja_adrese.value == '')
			{
				document.solis_1.nemeja_adrese.value =document.solis_1.OwnerFullTextAddress_hiden.value ;
			}
        }
		else
		{
			document.getElementById("e_OwnerCode").innerHTML = '';
		}
	}
}

//Funkcija, kas pie submiteeshanas saliek kopaa divus pers. koda rindas vienaa
//un pieliek hidden laukos attieciigaas values no checkbox'iem (nolasa no checkboxa
//un ievieto attieciigi "true" vai "false" uz "uzlime" un "MailOnEmail")
function pie_submit()
{
	//saliimee kopaa divas rindas
	var kods1=document.solis_1.nemeja_kods_1.value;
	var kods2=document.solis_1.nemeja_kods_2.value;
	var nemeja_kods=kods1+kods2;
	document.solis_1.nemeja_kods.value=nemeja_kods;

	//nolasaam un saliekam checkbox values
	if (document.solis_1.uzlimeBOX.checked==true)
	{
		document.solis_1.uzlime.value="true";
	}
	else if (document.solis_1.uzlimeBOX.checked==false)
	{
		document.solis_1.uzlime.value="false";
	}
	//checkojam jaunumus uz eepastu
	if (document.solis_1.MailOnEmailBOX.checked==true)
	{
		document.solis_1.MailOnEmail.value="true";
	}
	else if (document.solis_1.MailOnEmailBOX.checked==false)
	{
		document.solis_1.MailOnEmail.value="false";
	}
}


//funkvija function baudam_solis_1() ir domaata pie formas submiteeshanas
//shii funkcija ir mega salikums no visaam ieprieksheejaam funkcijaam

function baudam_solis_1(serveraDatums)
{
	//tiek salikti: pers. kods un checkbox'i
	pie_submit();
	//paarbauda vai visi datumi ir intervalaaa
	err=DateSelectValidator (serveraDatums);

	//ja ir kaut viens error, tad atgriezh false
	if (err==1)
	{
		return false;
	}

	//taalaak tiek valideets ownercods, ja ir juridiska persona
	validate_OwnerCode_submit();

	//ja ir kaut viens error, tad atgriezh false
	if (err==1)
	{
		return false;
	}

	if (err==0) 
	{ 
		return true; 
	}
	//kalendars();
}

//Gunta funkcija kas domaata lai dizaineru validaacija negljukotu
//pie lapas paarlaades, vai back pogas piespieshanas
function check_fields() 
{
	toDate2("edit1");
	DateSelectValidator (serveraDatums);
	var OwnerTypeRet = document.getElementById("OwnerTypeRet").value;
	//alert(OwneraTips);
	fchecker(document.solis_1.nemejs, 'id1_', '', '', '1');
	fchecker(document.solis_1.apd_uzvards, 'id1_1_', '', '', '1');

	/*personas koda kopeeja paarbaude*/
  var pirmais_kods = document.getElementById('field2').value;
  var otrais_kods = document.getElementById('field2_2').value;
  if (pirmais_kods.length == "6" && otrais_kods.length == "5") {
    var IsCorrectPersonCode = CheckUserPK(pirmais_kods+otrais_kods);
    if (IsCorrectPersonCode)
    {
      var klases_nosaukums = document.getElementById('id2_');
      klases_nosaukums.style.color = 'black';
      klases_nosaukums.style.zindex = '10';
    }
    else
    {
      var klases_nosaukums = document.getElementById('id2_');
      klases_nosaukums.style.color = 'red';
      klases_nosaukums.style.zindex = '255';
    }
  } else {
  	var klases_nosaukums = document.getElementById('id2_');
    klases_nosaukums.style.color = 'red';
    klases_nosaukums.style.zindex = '255';
  }
  
	fchecker(document.solis_1.telefons, 'id3_', '', '', '6');
	fchecker(document.solis_1.epasts, 'id4_', 'email', '', '');
	//alert(OwnerTypeRet);
	if (OwnerTypeRet=='true')
	{
		fchecker(document.solis_1.OwnerCode, 'id5_', '', '', '');
		fchecker(document.solis_1.nemeja_adrese, 'id6_', '', '', '');
	} 
	else 
	{
	 //alert(document.solis_1.nemeja_adrese.value);
		fchecker(document.solis_1.nemeja_adrese, 'id5_f', '', '', '6');
	}
	//fchecker(document.solis_1.pieg_adrese, 'id9_', '', '', '');
}

function display_octa_pk(str){
  var pods = str;
  if(pods==1){
      var klases_nosaukums = document.getElementById('id2_'); 
      klases_nosaukums.style.color = '#000000';
      klases_nosaukums.style.zindex = '10';
      flags = true;
  	} else {   
      flags = false;
  		var klases_nosaukums = document.getElementById('id2_');
      klases_nosaukums.style.color = 'red';
      klases_nosaukums.style.zindex = '255';   
  }
}

//Piespriezham datepickercontroll kalendaram iipashhibu :
//pie datumam mainjas izsaukt funkciju DateSelectValidator ()
//kas paarbauda apmaksas veidus un atljautos datuma intervaalus
function datuma_maina(inputid)
{
	toDate2("edit1");
	DateSelectValidator (serveraDatums);
}

function CheckUserPK(pk)
{
  var num = '01060307091005080402';
		var checksum = 1;
		for (var i=0; i<10; i++)
		{
			checksum -= (pk.substr(i, 1)) * (num.substr(i * 2, 2));
		}
		
		if ((checksum - Math.floor(checksum / 11) * 11) != pk.substr(10, 1))
		{
				return false;
		}
		else
		{
				return true;
		}
}

function ShowTerms() {
  var l = "lv";
  if (LanguageID == 2) {
    l = "ru";
  }
  window.open ("http://www.attollo.lv/" + l +"/Message/OCTASCConfirmationText/","Noteikumi","menubar=1,resizable=0,scrollbars=1,width=600,height=600");
  
  if (document.getElementById('OCTA_Terms').checked == true) {
    document.getElementById('OCTA_Terms').checked = false;
  }
  else {
    document.getElementById('OCTA_Terms').checked = true;
  }
  check_fields();formactivation();
}
