//==============================
// Автор: REZER
// http://rezer.net/ 
// Специально для WEB Form
//==============================

//---------------------------------------------
//	AJAX отправка формы
//---------------------------------------------

function WebFormSubmit( nameForm, file, IdResult, img, imgId, DataUrl ){		
		
	var Url = "";
	if( DataUrl != null ) Url = DataUrl;
	if( !IdResult ) return;
	if( !img ) img = "/engine/ajax/webform/mini.status.gif";
	if( !file ) return;
	
	var formSend = document.forms[ nameForm ];
	$( "#" + imgId ).html( "<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 )
							{
								Url += "&" + ElementForm.name + "=" + ElementForm.value;
							}
						break
					}
						
					case "select-multiple": {
						for( var imultiple = 0; imultiple < ElementForm.options.length; imultiple++ )
							{
								if( ElementForm.options[ imultiple ].selected)
									{
										Url += "&" + ElementForm.name + "=" + 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 )
									{
										Url += "&" + ElementForm.name + "=" + radioObj[ imultiple ].value;
										radio = true;
									}
							}
						break
					}
						
					case "hidden": {
						Url += "&" + ElementForm.name + "=" + ElementForm.value;
						break
					}
						
					case "text": {
						Url += "&" + ElementForm.name + "=" + ElementForm.value;
						break
					}
						
					default: {
						Url += "&" + ElementForm.name + "=" + ElementForm.value;
						break
					}
				}
		}
		
	$.ajax({
		url: file,
		data: Url,
		success: function( data ){
			$( "#" + IdResult ).html( data );
			if( imgId != IdResult ) $( "#" + imgId ).html( "" );
		},
		dataType: "html",
		type: "POST"
	});
}

// Обновление капчи
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;		
	}
