$(document).ready(function(){
	// On mouse over show some help
	$('.validate').focus(function()
	{
		$('.help').fadeOut('slow');	
		$(this).parent().find('div.help').fadeIn('slow');
	})
	$('.validate').blur(function(){		
								 fname = $(this).parents('form').attr("name");
	if (performCheck_ind(fname,eval(fname+'_rules'),$(this).attr('name')))
		{
			$(this).parent().parent().removeClass('invalid');
			$(this).parent().parent().addClass('valid');
			$('.help').fadeOut('slow');	
		}else{
			$(this).parent().parent().removeClass('valid');
			$(this).parent().parent().addClass('invalid');
			$('.help').fadeOut('slow');	
		}	
	})
	
	/*$('.frmvalidate').click(function(){
		$(this).parents('form').find('.validate').each(function (){										  
			if (performCheck_ind(rules,$(this).attr('name')))
			{
				$(this).parent().parent().removeClass('invalid');
				$(this).parent().parent().addClass('valid');
			}else{
				$(this).parent().parent().removeClass('valid');
				$(this).parent().parent().addClass('invalid');
			}	
		})
    })*/
	$('form').submit(function(){
		var submitstatus = true;
		fname = $(this).attr("name");
		$(this).find('.validate').each(function (){
			if (performCheck_ind(fname,eval(fname+'_rules'),$(this).attr('name')))
			{
				$(this).parent().parent().removeClass('invalid');
				$(this).parent().parent().addClass('valid');
			}else{
				$(this).parent().parent().removeClass('valid');
				$(this).parent().parent().addClass('invalid');
				var frmmsgholder = '#'+fname+'_msgholder';
				$(frmmsgholder).html('<span style="color:#ff0000">Bitte &uuml;berpr&uuml;fen Sie, ob Sie alle Pflichtangaben gemacht haben</span>');
				submitstatus = false;
			}	
		})
		//return submitstatus;
		if(submitstatus)
		{
			var frmmsgholder = '#'+fname+'_msgholder';
			var callfunctionsuccess = fname+"_postafter($(frmmsgholder),rtext)";
			var atdcr = eval(fname+"_postbefore()");
			atdcr = atdcr.split("::");
			if(atdcr[2].substr(2) == "true")
				formclear = true;
			else
				formclear = false;
			$(this).ajaxSubmit(
			{ 
				//target:        frmmsgholder,   // target element(s) to be updated with server response 
				beforeSubmit:  function(){$(frmmsgholder).addClass('waitmsg');$(frmmsgholder).html('Please wait...');},
				success:       function(rtext){rtext = newline2bspac(rtext);$(frmmsgholder).removeClass($(frmmsgholder).attr("class"));if(rtext.substr(0,3) == 'ERR'){var msghoderclass = "errormsg";}else if(rtext.substr(0,3) == 'SUC'){var msghoderclass = "okmsg";}else{var msghoderclass = "warnmsg";}$(frmmsgholder).addClass(msghoderclass);eval(callfunctionsuccess);},  // post-submit callback 
				
				// other available options: 
				url:       atdcr[0].substr(2),         // override for form's 'action' attribute 
				type:      atdcr[1].substr(2),        // 'get' or 'post', override for form's 'method' attribute 
				dataType:  null,        // 'xml', 'script', or 'json' (expected server response type) 
				clearForm: formclear        // clear all form fields after successful submit 
				//resetForm: false        // reset the form after successful submit 
		 
				// $.ajax options can be used here too, for example: 
				//timeout:   3000 
			}); 
		}
		// !!! Important !!! 
		// always return false to prevent standard browser submit and page navigation 
		return false; 
    });
	
});

function newline2bspac(text){
      text = escape(text);
      if(text.indexOf('%0D%0A') > -1){
      	re_nlchar = /%0D%0A/g ;
      }else if(text.indexOf('%0A') > -1){
      	re_nlchar = /%0A/g ;
      }else if(text.indexOf('%0D') > -1){
      	re_nlchar = /%0D/g ;
      }
	  else
	  	re_nlchar = '' ;
      return unescape( text.replace(re_nlchar,''));
}