/**
 *	AJAX FORM - JQEFFECT
 *
 *	required new files:
 *		/cs/templates/_form-validation.tpl
 *		/js/jquery/jquery-1.1.4.pack.js
 *		/js/jquery/jquery.form.js
 *
 *	modifed files
 *		/content/send_email.php
 *		/cs/templates/_write.tpl
 *		     	=> nastavit formulari id="write_form"
 *				=> nastavit tlacitku id="submit_button"
 */

var success = 0;
var infoDivExpanded=new Array();	
var groupExpandSpeed = "slow";
$.fn.clearForm = function() {
  return this.each(function() {
	var type = this.type, tag = this.tagName.toLowerCase();
	if (tag == 'form')
	  return $(':input',this).clearForm();
	if (type == 'text' || type == 'password' || tag == 'textarea')
	  this.value = '';
	else if (type == 'checkbox' || type == 'radio')
	  this.checked = false;
	else if (tag == 'select')
	  this.selectedIndex = -1;
  });
};



function initAjaxForm(url, formId) {
 var infoDivId = formId+'-validation'; 
 infoDivExpanded[formId] = 0;
 
 $(document).ready(function() {
 	var loader     = $('<img>').attr('src','/imgs/ajax-loader-big.gif').hide();
 	var infoDiv    = $('<div>').attr('id',infoDivId);
 	
 	$('#'+formId).before(infoDiv);
 	$(document).ready(function() {
		var submimtButtonValue;
		/*var submitButton = $('#'+formId+' input[type=submit][id=Dubmit]');
		var clearButton = $('#'+formId+' input[type=submit][value=Vymazat]');
		submitButtonValue=submitButton.val();
		clearButton.click(function(){
			$('#'+formId).clearForm();
			return false;
		});*/

 		$('#'+formId).ajaxForm({
			target:        	'#'+infoDivId,   // target element(s) to be updated with server response
			url:			url+'?javascript=enabled',
			beforeSubmit:	function(){
				var loader_left= $('#'+formId).position().left+($('#'+formId).width()-32)/2;
				var loader_top = $('#'+formId).position().top+$('#'+formId).height()/2;
				loader.css({position:'absolute',top:loader_top,left:loader_left});
			//	submitButton.attr("disabled",true);
				//submitButton.val("Kontrola...");
				loader.fadeIn();
				$('#'+formId).before(loader);
				$('#'+formId).fadeTo("fast",0.2);
			},
			success:       	function(){				
				
			//	submitButton.attr("disabled",false);
			//	submitButton.val(submitButtonValue);
				loader.fadeOut('fast');
				
				if (success==1) {
					$('#'+formId).slideUp();
					$('#'+formId).clearForm();
					success=0;
				} else {
					if (invalidFields) {						
						markInvalidFields(invalidFields, formId);
					}
					if (infoDivExpanded[formId]==0) {
						$('#'+infoDivId).hide();
						$('#'+infoDivId).slideDown();
						infoDivExpanded[formId] = 1;
					}					
				}	
				$('#'+formId).fadeTo("fast",1);					
			}
		});
	});
});
};

function markInvalidFields(filedNames, formId) {
	$('#'+formId+' select,#'+formId+' input,#'+formId+' textarea').removeClass('invalid'); 
	for ( var i in filedNames ){
    	$('#'+formId+' input[name='+filedNames[i]+'], #'+formId+' textarea[name='+filedNames[i]+'], #'+formId+' select[name='+filedNames[i]+']').each(function(){
    		$(this).addClass('invalid');
    		$(this).siblings('label:last').addClass('invalid');
    	});    	
	} 
}

function initFormGroupCollapsing(groupCollapsingMode, submitButtonId, formId) {
	$('#'+formId+' h3.form-group-header').next('div.form-group-container').each(function(){
		$(this).hide();		
		//$(this).css('height',$(this).innerHeight());
	});
	$('#'+formId+' h3.form-group-header:first').addClass('form-group-header-expanded').next('div.form-group-container').show();
	
	if (groupCollapsingMode=="simple") {
  
		$('#'+formId+' h3.form-group-header a').click(function(){
			$(this).parent().next('div.form-group-container').slideFadeToggle("slow");
			$(this).parent().toggleClass('form-group-header-expanded');
			return false;
		});
	} else {
		if (groupCollapsingMode=="all") {
			$('#'+formId+' h3.form-group-header a').click(function(){
				if (!$(this).parent().is('.form-group-header-expanded')) {
					$('#'+formId+' h3.form-group-header a').parent().next('div.form-group-container').slideFadeUp(groupExpandSpeed);
					$('#'+formId+' h3.form-group-header').removeClass('form-group-header-expanded');
					$(this).parent().addClass('form-group-header-expanded').next('div.form-group-container').slideFadeDown(groupExpandSpeed);			
					$(this).parent().add('form-group-header-expanded');
				}
				return false;
			});
		}
	}
	$('#'+formId+' input#'+submitButtonId).click(function(){
		$('#'+formId+' h3.form-group-header a').parent().next('div.form-group-container').slideFadeDown("slow");
		$('#'+formId+' h3.form-group-header').addClass('form-group-header-expanded');
	});
}
