/* ---------------------------------------------------------- 
функции, используемые в различных клиентских скриптах проекта
---------------------------------------------------------- */

function _setDecimal( $control, value )
{
	if( value || value === 0 )
	{
		$control.val( value.toFixed(2) );
		return true;
	}
	return false;
}

function _parseDecimal( value )
{
	if( value === null || value === undefined )
		return NaN;
	return parseFloat(value.replace(' ', ''));
}

//сделать кнопку доступной
//Передается контейнер-span
function enableSubmit( $spanSubmit )
{
    $spanSubmit.addClass( 'imageSubmit' ).removeClass( 'imageSubmitDisabled' ).children().removeAttr('disabled');
}

//сделать кнопку недоступной
//Передается контейнер-span
function disableSubmit( $spanSubmit )
{
    $spanSubmit.addClass( 'imageSubmitDisabled' ).removeClass( 'imageSubmit' ).children().attr('disabled', '1');
}

// Переключить состояние доступности кнопки
// Передаются контейнер-span и логическое значение (true - включить кнопку, false - отключить)
function toggleSubmit( $spanSubmit, enable )
{
	enable ? enableSubmit( $spanSubmit ) : disableSubmit( $spanSubmit );
}

// Закрыть всплывающее окно и перезагрузить родительское.
// Вызывать из контекста всплывающего окна
function closePopupOrFrameAndReloadParent()
{
	var parentWindow = window.opener;
	if( ! parentWindow && window.parent !== window )
		parentWindow = window.parent;
	if( ! parentWindow )
	{
		// страница открыта в основном окне
		return;	
	}		
	
	// по возможности используем submitForm, чтобы не произошла повторная
	// отправка предыдущего запроса, который мог включать нажатие кнопки
	var formId = null;
	if( parentWindow.document.forms.length > 0 )
	{
		formId = $( parentWindow.document.forms[0] ).attr( 'id' );
		if( formId )
			parentWindow.submitForm( '', '', formId );
	}
	if( !formId )
		parentWindow.location.href = parentWindow.location.href;
		
	if( window.opener )
	{
		// функцию window.close() вызываем только для нативного попапа, так
		// как наш закроется автоматически при перезагрузке родителя
		window.close();
	}		
}

/* -----------------------------------------
функции, используемые на отдельных страницах
------------------------------------------ */
	// изменить доступность кнопки "сравнить" в зависимости от того, активированы ли radiobuttonы
function activateCompareButton()
{
	toggleSubmit( $('#compare').parent(),
		$('input[name=mainCheck]:checked').val() && $('input[name=duplicateCheck]:checked').val());
		
	if( $('input[name=mainCheck]:checked').val() && $('input[name=duplicateCheck]:checked').val() )
		$('.imageSubmit').attr('title', '')
}


// для страницы picture-editor.aspx
var PictureEditor = {
	// Стандартная синхронизация контролов не обеспечивает прогрузку в
    // родительском APE обновлённой картинки.  Делаем это самостоятельно
	syncPictureToApe: function()
	{
		// страница открыта не впервые; направление синхронизации - из попапа в APE
		if( $('#first-display').length === 0 )
		{
			// редактируется существующая запись (если новая, параметр был бы передан)
			if( ! $( '#array-prop-editor-name').val() )
			{
				var img = $( '#' + $('#editor-name').val() + 'Img', window.opener.document )[0];
				if (img)
				{
					// добавляем произвольный параметр, чтобы картинка перезагрузилась
					img.src = img.src.replace(/&v=.*/, '') + '&v=' + new Date().getTime();
				}				
			}
		}
	}
};



