
/** 
 * Loads in a URL into a specified divName, and applies the function to 
 * all the links inside the pagination div of that page (to preserve the ajax-request) 
 * @param string href The URL of the page to load 
 * @param string divName The name of the DOM-element to load the data into 
 * @return boolean False To prevent the links from doing anything on their own. 
 */ 
function loadPiece(href,divName) {     
    $(divName).load(href, {}, function(){ 
        var divPaginationLinks = divName+" #pagination a"; 
        $(divPaginationLinks).click(function() {      
            var thisHref = $(this).attr("href"); 
            loadPiece(thisHref,divName); 
            return false; 
        }); 
    }); 
} 


function checkForm(form, chkaction, nosubmit, callback){
       //leszedem az eddigi hibákat
       $(':input', form).each(function() {
        if(this.id)
        {
            if(document.getElementById(this.id+'Error'))
            {
               $('#'+this.id+'Error').text('');
            }
        }
       });
        if($('#messageholder'))$('#messageholder').hide();   
        //_loadingDiv.show();
        if(chkaction)action=chkaction;else action=form.action;
        $.post(action,
            $(form).serializeArray(),
            function(data){
                if(!data)
                {     
                  return false;   
                }
                if (data.errors) {
                    checkOnError(data);
                    return false; 
                } else if (data.success) {
                    if(!nosubmit){
                        form.submit();
                    }
                    if(callback){
                        callback();
                    }
                    
                    return true;
                }    
            } ,
            "json"
        );
        return false;
}

function checkAfterValidate(data, status,cons)  {
        $(".message").remove();
        $(".error-message").remove();
        if (data.errors) {
            checkOnError(data);
        } else if (data.success) {
            checkOnSuccess(data.success);
        }
}

 function checkOnError(data) {
        if(data)
        {
            $.each(data.errors, function(model, errors) {
                 
                for (fieldName in this) {
                    var element = $("#" + camelize(model + '_' + fieldName));
                    //ide tegyünk hiba jelzést
                    //pl elváltoztatjuk a classát a field nek... 
                    fieldNameError=camelize(model + '_' + fieldName)+"Error";
                    errorDiv=document.createElement('div'); 
                    errorDiv.setAttribute("id", fieldNameError);  

                    if(!document.getElementById(fieldNameError))
                    {
                        var _insert = $(errorDiv).insertAfter(element);
                        _insert.addClass('error-message').text(this[fieldName]) 
                    }else{
                        var _insert = $('#'+fieldNameError);
                        _insert.text(this[fieldName]);
                    }
                    element.addClass('error') ;        
                }
            });
        }
        //_loadingDiv.hide(); 
        if($('#messageholder')) checkFlashMessage(data.message);  
};
 
function checkFlashMessage(message) {

        $('#errortext').html(message);
        //$('#messageholder').corner("5px")
        $('#messageholder').slideToggle('slow').corner("5px"); 
      
}

function camelize(string) {
    var a = string.split('_'), i;
    s = [];
    for (i=0; i<a.length; i++){
        s.push(a[i].charAt(0).toUpperCase() + a[i].substring(1));
    }
    s = s.join('');
    return s;
}

$(document).ready(function(){
    // fadeout flash messages on click
    $('.cancel').click(function(){
        $(this).parent().fadeOut();
    return false;
    });

    // fade out good flash messages after 3 seconds
    $('.flash_good').animate({opacity: 1.0}, 3000).fadeOut();
});

