var ajax_processor="/order/ajax_processor.php";
try{if(form)form.remove();}catch(err){}
var form=false;
var formID = null;
var formCases=null;

var email_pattern=/\w+@\w+\.\w+/;

function initOrderForm(_formID){
	formID = _formID;
	if($('#'+formID).length>0){
		form = $('#'+formID);
		formCases = $('.formDataCase', form);
		initOrderFormTabs();
		changeFormDataCase();
		
		$('input.formDataCaseSwitcher').each(function(){
			$(this).click(function(){changeFormDataCase();});
			$(this).change(function(){changeFormDataCase();});
		});
	}
}


function initOrderFormTabs(){
	$('ul.formTabs').each(function(){
		var tabset=$(this);
		$('ul.formTabs li label').each(function(){
			$('#'+$(this).attr('for')).change(function(){updateOrderTabs(tabset);});
			$(this).click(function(){
				$('#'+$(this).attr('for')).attr('checked',true);
				updateOrderTabs(tabset);
			});
		});
			
		updateOrderTabs(tabset);
	});
}

function updateOrderTabs(tabset){
	$('li', tabset).each(function(){
		var listItemObj = $(this);
		var checkObj = $('label',$(this));
		listItemObj.removeClass('checked');
		$('input.formDataCaseSwitcher:checked', form).each(function(){
			
			if($(this).attr('id') == checkObj.attr('for')){
				listItemObj.addClass('checked');
			}
		});
	});
}

function changeFormDataCase(){
	if(form){
		formCases.hide();
		$('input.formDataCaseSwitcher:checked', form).each(function(){
			$('.'+$(this).attr('id')).stop().show();
		});
		
		$('.formData:hidden input.formDataCaseSwitcher:checked', form).each(function(){
			$('.'+$(this).attr('id')).hide();
		});
		
		formPriceUpdate($('.formData:visible input.formDataCaseSwitcher:checked', form));
		formReadyDateUpdate();
		
		try{fancyboxCusomize();}
		catch(err){}
	}
}

function formPriceUpdate(){ 	// may be redefined in forms templates
	return false;
}
function formReadyDateUpdate(){   	// may be redefined in forms templates
	return false;
}


function submitForm(){
	if(form){
		$.post(ajax_processor,form.serialize(),function(data){
			eval(data);
		});
	}
}

function submitOrder(){
	if(form){
		param = 'action=addorder&table='+$('input[name=table]', form).val()+'&hash='+$('input[name=hash]', form).val();
		if($('.formDataUCaseSwitcher:checked',form).length>0){
			param +='&utype='+$('.formDataUCaseSwitcher:checked',form).val();
		}
		$.post(ajax_processor,param,function(data){
			eval(data);
		});
	}
}

function loadPaymentForm(hash){
	param = 'action=generate_pay_form&hash='+hash;
	$.post(ajax_processor,param,function(data){
		$('#'+formID+'Container').html(data);
		initOrderForm('formPayment');
	});
	return false;
}

function loadPreorderPage(hash){
	param = 'action=preorder&hash='+hash;
	$.post(ajax_processor,param,function(data){
		$('#'+formID+'Container').html(data);
	});
	return false;
}


function loadOrderList(hash){
	param = 'action=get_form_list&table='+$('input[name=table]', form).val()+'&hash='+hash;
	$.post(ajax_processor,param,function(data){
		$('.formList',form).html(data);
		try{fancyboxCusomize();}catch(err){}
	});
}

function removeFromList(order_id){
	$('#OrderList_item'+order_id).fadeOut('slow',function(){$(this).remove();});
	$('#OrderList_item'+order_id).css('background','#fcf5da');
	param = 'action=remove_form_list&order_id='+order_id+'&table='+$('input[name=table]', form).val()+'&hash='+$('input[name=hash]', form).val();
	if($('.formDataUCaseSwitcher:checked',form).length>0){
		param +='&utype='+$('.formDataUCaseSwitcher:checked',form).val();
	}
	$.post(ajax_processor,param,function(data){
		eval(data);
		try{fancyboxCusomize();}catch(err){}
	});
}


function resetForm(){
	if(form){
		$('input[type=text]', form).val('');
	}
}

function submitPaymentForm(){

	var payment_method = $('input[name=payment_method]:checked', form).val();
	var param ='';
	var sub_form = $('form[name=payment_method_'+payment_method+']');
	
	switch(payment_method){
			default: 	alert('Выберите способ оплаты!'); return false;
			case '1': 	break;
			case '2':
						if($('input[name=ACaction]:checked', form).val()=='send'){
							if($('input[name=ACEmail]', form).val().length==0){
									alert('Пожалуйста, укажите e-mail, на который следует отправить файл.');
									$('input[name=ACEmail]', form).focus();
									return false;
							}else if(!email_pattern.test($('input[name=ACEmail]', form).val())){
									alert('E-mail не верен. Пожалуйста, укажите правильный e-mail!');
									$('input[name=ACEmail]', form).focus();
									return false;
							}
						}
						
						$('input[name=downloadaction]', sub_form).val($('input[name=ACaction]:checked', form).val());
						$('input[name=email]', sub_form).val($('input[name=ACEmail]', form).val());
						$('input[name=client]', sub_form).val($('input[name=ACclient]', form).val());
						$('input[name=payer]', sub_form).val($('input[name=ACpayer]', form).val());
						
						break;
			case '3':
						if($('input[name=SBaction]:checked', form).val()=='send'){
							if($('input[name=SBEmail]', form).val().length==0){
								alert('Пожалуйста, укажите e-mail, на который следует отправить файл.');
								$('input[name=SBEmail]', form).focus();
								return false;
							}
							if(!email_pattern.test($('input[name=SBEmail]', form).val())){
								alert('E-mail не верен. Пожалуйста, укажите правильный e-mail!');
								$('input[name=SBEmail]', form).focus();
								return false;
							}
						}
						
						$('input[name=downloadaction]', sub_form).val($('input[name=SBaction]:checked', form).val());
						$('input[name=email]', sub_form).val($('input[name=SBEmail]', form).val());
						$('input[name=payername]', sub_form).val($('input[name=SBpayername]', form).val());
						$('input[name=payeraddress]', sub_form).val($('input[name=SBpayeraddress]', form).val());
						
						break;
			case '4':
						if(!$('input[name=cardtype]:checked', form).val()){alert('Выбирите тип кредитной карточки из списка!'); return false;}
						if($('input[name=firstname]', form).val().length==0){
							$('input[name=firstname]', form).focus();
							alert('Укажите имя владельца кредитной карточки!');
							return false;
						}
						if($('input[name=lastname]', form).val().length==0){
							$('input[name=lastname]', form).focus();
							alert('Укажите фамилию владельца кредитной карточки!');
							return false;
						}
						
						$('input[name=cardtype]', sub_form).val($('input[name=cardtype]:checked', form).val());
						$('input[name=firstname]', sub_form).val($('input[name=firstname]', form).val());
						$('input[name=lastname]', sub_form).val($('input[name=lastname]', form).val());
						$('input[name=email]', sub_form).val($('input[name=contactemail]', form).val());
						//alert(sub_form.serialize());
						break;
			case '5': 
						if($('input[name=dtype]', form).attr('checked')===true){
							$('input[name=CustAddr]', sub_form).val($('input[name=deliveryaddress]', form).val());
						}
						$('input[name=CustName]', sub_form).val($('input[name=contactperson]', form).val());
						$('input[name=CustEMail]', sub_form).val($('input[name=contactemail]', form).val());
						break;
			case '6':
						if(!$('input[name=LMI_PAYEE_PURSE]:checked', form).val()){
							alert('Выбирите валюту для оплаты!'); return false;
						}
						$('input[name=LMI_PAYEE_PURSE]', sub_form).val($('input[name=LMI_PAYEE_PURSE]:checked', form).val());
						$('input[name=LMI_PAYMENT_AMOUNT]', sub_form).val(
							($('input[name=LMI_PAYEE_PURSE]', sub_form).val()=='Z241299765671')?
								(Math.round(($('input[name=cost]', form).val()/29)*100)/100)	:	$('input[name=cost]', form).val()
						);
						break;
	}
	
	$.post(ajax_processor,form.serialize(),function(data){
		eval(data); 									// should return sub_form.submit()   — if successed
	});
	
}

function showPymentFormMessage(){
	$('#payform_tab').fadeOut("fast",
		function(){
			$('#message').fadeIn('slow');
		}
	);
}


function log(event, data, formatted) {
	$('#f\\:deliveryaddressstation_id').val(!data ? "" : formatted.match(/\d+/mi));
}


function initMetroAutocpletion(fieldID) {
	$(fieldID).autocomplete(metro_list, {
		minChars: 0,
		max: 50,
		autoFill: false,
		mustMatch: true,
		matchContains: false,
		scrollHeight: 220,
		formatItem: function(row, i, max, term) {
			return '<span class="L' + row.line + '">' + row.name + '</span>';
		},
		formatResult: function(row) {
			return row.name;
		},
		formatMatch: function(row, i, max) {
			return row.name + ' ('  + row.id + ')';
		}
	});
	$(fieldID).result(log).next().click(function() {
		$(this).prev().search();
	});
}
