//==============================
// Автор: REZER
// http://rezer.net/ 
// Специально для WEB Form
//==============================

//---------------------------------------------
//	AJAX отправка формы
//---------------------------------------------

function WebFormSubmit( nameForm, file, IdResult, img, imgId, DataUrl ){
	
	if( !IdResult ) return;
	if( !img ) img = "/engine/ajax/webform/mini.status.gif";
	if( !file ) return;
	
	var ajax = new dle_ajax();
	
	if( DataUrl != null )
		{
			DataUrl = DataUrl.split( "&" );
			for( var i = 0; i < DataUrl.length; i++ )
				{
					DataUrl[ i ] = DataUrl[ i ].split( "=" );
					ajax.setVar( DataUrl[ i ][0], ajax.encodeVAR( DataUrl[ i ][1] ) );
				}
		}
	
	var formSend = document.forms[ nameForm ];
	document.getElementById( imgId ).innerHTML = "<img src=\"" + img + "\" border=\"0\" alt=\"Загрузка\" align=\"absmiddle\" />";
		
	for( var i = 0; i < formSend.elements.length; i++ )
		{
			var ElementForm = formSend.elements[ i ];
			switch( ElementForm.type )
				{
					case "checkbox": {
						if( ElementForm.checked == true )
							{
								ajax.setVar( ElementForm.name, ajax.encodeVAR( ElementForm.value ) );
							}
						break
					}
						
					case "select-multiple": {
						for( var imultiple = 0; imultiple < ElementForm.options.length; imultiple++ )
							{
								if( ElementForm.options[ imultiple ].selected)
									{
										ajax.setVar( ElementForm.name, ajax.encodeVAR( ElementForm.options[ imultiple ].value ) );
									}
							}
						break
					}
						
					case "radio": {
						var radioObj = formSend[ ElementForm.name ];
						for( var imultiple = 0; imultiple < radioObj.length; imultiple++ )
							{
								if ( radioObj[ imultiple ].checked == true )
									{
										ajax.setVar( ElementForm.name, ajax.encodeVAR( radioObj[ imultiple ].value ) );
										radio = true;
									}
							}
						break
					}
						
					case "hidden": {
						ajax.setVar( ElementForm.name, ajax.encodeVAR( ElementForm.value ) );
						break
					}
						
					case "text": {
						ajax.setVar( ElementForm.name, ajax.encodeVAR( ElementForm.value ) );
						break
					}
						
					default: {
						ajax.setVar( ElementForm.name, ajax.encodeVAR( ElementForm.value ) );
						break
					}
				}
		}
	
	ajax.requestFile = file;
	ajax.method = "POST";
	ajax.execute = true;
	ajax.onCompletion = function(){
		if( imgId != IdResult ) document.getElementById( imgId ).innerHTML = "";
	}
	ajax.element = IdResult;
	ajax.sendAJAX();
}

// Обновление капчи
function WebFormReCaptcha(){
	var rndval = new Date().getTime(); 
	if( document.getElementById( "dle-captcha") != null ) document.getElementById( "dle-captcha").innerHTML = "<img src=\"/engine/modules/antibot.php?rndval=" + rndval + "\" border=\"0\" width=\"120\" height=\"50\" onclick=\"iPhotoReCaptcha(); return false;\" style=\"cursor: pointer;\" />";
}


/**********************************************************************************************

	Функция подсчёта стоимости заказа
	Функция, которая считает: WebFormDefaultPrice( NameWebForm )
	На её основе можете создать свою функцию и указать имя функции в настройках формы

**********************************************************************************************/

	// Данные о форме
	var WebFormModPriceFormOption = [];
	
	// Конечный результат, то есть какова цена выбранного
	var WebFormModResultPrice = 0;
	
	// Массив с данными о цене каждой строки всех полей
	var WebFormFieldPrice = [];
	
	// Разрешённые поля для подсчёта
	var WebFormAllowField = [];
	
	// Массив с данными о выбранной строки и цены выбранного поля
	var WebFormField = [];
	
	// Индексы названия полей, то есть какое альтенативное имя поля в админке, и какое на выходе
	var WebFormFieldIndex = [];
	
	// Функция проверяет форму и обновляет данные массивов согласно проверямой формы
	function WebformModPriceUpdate( NameWebForm ){
		
		WebFormField = [];
		var form = document.forms[ WebFormModPriceFormOption[ NameWebForm ]['form'] ];
		for( var i = 0; i < form.elements.length; i++ )
			{
				var ElementForm = form.elements[ i ];
				if( WebFormAllowField[ NameWebForm ][ ElementForm.name ] )
					{
						WebFormField[ ElementForm.name ] = [];
						WebFormField[ ElementForm.name ][0] = ElementForm.value;
						WebFormField[ ElementForm.name ][1] = WebFormFieldPrice[ NameWebForm ][ ElementForm.name ][ ( ElementForm.value - 1 ) ];
						
					}
			}
		
		if( WebFormModPriceFormOption[ NameWebForm ]['function']( NameWebForm ) == true )
			{
				WebFormModPriceResult( NameWebForm );
			}
	}
	
	// Вывод результата пользователю
	function WebFormModPriceResult( NameWebForm ){
		document.getElementById( WebFormModPriceFormOption[ NameWebForm ]['result'] ).innerHTML = WebFormModResultPrice;
	}
	
	
	// Стандартная функция счётчик
	function WebFormDefaultPrice( NameWebForm ){
		
		//alert( document.forms[ WebFormModPriceFormOption[ NameWebForm ]['form'] ]['field[vy-hotite][]'].type );
		
		WebFormModResultPrice = 0;
		for( var i in WebFormField )
			{
				var type = "";
				var ThisPrice = 0;
				var Element = document.forms[ WebFormModPriceFormOption[ NameWebForm ]['form'] ][ i ];
				if( Element.type == "select-multiple" ) type = "select-multiple";
				else if( Element[0].type == "radio" ) type = "radio";
				else if( Element[0].type == "checkbox" ) type = "checkbox";
				
				switch( type ){
					
					case "radio": {
						for( var imultiple = 0; imultiple < Element.length; imultiple++ )
							{
								if( Element[ imultiple ].checked )
									{
										ThisPrice = WebFormFieldPrice[ NameWebForm ][ i ][ imultiple ];
										break;
									}
							}
						break
					}
					
					case "select-multiple": {
						for( var imultiple = 0; imultiple < Element.options.length; imultiple++ )
							{
								if( Element.options[ imultiple ].selected )
									{
										ThisPrice = ThisPrice + WebFormFieldPrice[ NameWebForm ][ i ][ imultiple ];
									}
							}
						break
					}
					
					case "checkbox": {
						for( var imultiple = 0; imultiple < Element.length; imultiple++ )
							{
								if( Element[ imultiple ].checked )
									{
										ThisPrice = ThisPrice + WebFormFieldPrice[ NameWebForm ][ i ][ imultiple ];
									}
							}
						break
					}
					
					default: {
						var ThisPrice = WebFormField[ i ][1];
					}
					
				}
				
				if( ThisPrice > 0 ) WebFormModResultPrice = WebFormModResultPrice + ThisPrice;
			}
			
		return true;		
	}
