/**
 * Usage:
 * ajaxRequest(URL, PARAMS);
 *
 * Example:
 * ajaxRequest('http//url.com/', {'method'    : 'POST/GET', // default is GET
 *                                'data'      : 'var1=value1&var2=value2',
 *                                'container' : $('#container_element'),
 *                                'loading'   : $('#loading_element'),
 *                                'effect'    : 'fade/slide/none'}); // default is none
 */
var ajaxRequest = function(url, params) {
    $.ajaxSetup({url : url});

    if (params['loading']) {
        params['loading'].show();
        // document.params['loading'].style.display = '';
        //document.getElementById('loading').style.display = '';
        
        //params['loading'].css('display', '');
        params['loading'].ajaxComplete(function(request, settings) { params['loading'].hide(); });
    }   

    if (params['method'] == "POST") {
        $.ajaxSetup({type : "POST"});
    } else {
        $.ajaxSetup({type : "GET"});
    }    

    if (params['data']) {
        $.ajaxSetup({data : params['data']});
    }
    
    if (params['container']) {
        if (params['effect'] == 'slide') {
            $.ajaxSetup({success : function(response) { params['container'].html(response).slideDown('slow'); }});
        } else if (params['effect'] == 'fade') {
            $.ajaxSetup({success : function(response) { params['container'].html(response).fadeIn('slow'); }});
        } else {
            $.ajaxSetup({success : function(response) { params['container'].html(response).show(); }});
        }
     }

    $.ajax({});
}

/**
 * Usage:
 * ajaxFormSubmit(URL, FORM, PARAMS);
 *
 * Example:
 * ajaxRequest($('#form_element'), 'http//url.com/', {'method'    : 'POST/GET', // default is POST
 *                                                    'container' : $('#container_element'),
 *                                                    'loading'   : $('#loading_element'),
 *                                                    'effect'    : 'fade/slide/none'}); // default is none
 */
var ajaxFormSubmit = function(form, url, params) {
    params['data'] = form.formSerialize();
    if (!params['method']) {
        params['method'] = 'POST';
    }
    ajaxRequest(url, params);
}

/**
 * Paginator
 */
var Paginator = {
    jumpToPage: function(pages) {
        var page = prompt("Írjon be egy számot 1 és " + pages + " között az oldalugráshoz", "");
        if (page != undefined) {
            page = parseInt(page, 10)
            if (!isNaN(page) && page > 0 && page <= pages) {
                window.location.href = "?page=" + page;
            }
        }
    }
};

/**
 * Correctly handle PNG transparency in Win IE 5.5 & 6.
 */
var correctPNG = function() {
    var arVersion = navigator.appVersion.split("MSIE");
    var version = parseFloat(arVersion[1]);
    if ((version >= 5.5) && (version < 7) && (document.body.filters)) {
        for(var i=0; i<document.images.length; i++) {
            var img = document.images[i];
            var imgName = img.src.toUpperCase();
            if (imgName.substring(imgName.length-3, imgName.length) == "PNG") {
                var imgID = (img.id) ? "id='" + img.id + "' " : "";
                var imgClass = (img.className) ? "class='" + img.className + "' " : "";
                var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
                var imgStyle = "display:inline-block;" + img.style.cssText ;
                if (img.align == "left") imgStyle = "float:left;" + imgStyle;
                if (img.align == "right") imgStyle = "float:right;" + imgStyle;
                if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle;
                var strNewHTML = "<span " + imgID + imgClass + imgTitle
                    + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
                    + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                    + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>";
                img.outerHTML = strNewHTML;
                i = i-1;
            }
        }
    }
}

/**
 * Input focus highlight init
 */
$(function(){
    cleanFormStyles();
    initializeFocus();    
});

function cleanFormStyles() {
    fields = $('input');
    for (i=0; i<fields.length; i++) {
        if (fields[i].type == 'radio' || fields[i].type == 'checkbox' || fields[i].type == 'file') {
            $(fields[i]).addClass('clean-input');
        }
    }
}

function initializeFocus() {
    fields = $('.highlight :input');
    for (i=0; i<fields.length; i++) {
        if (fields[i].type != 'submit' && fields[i].type != 'button') {
            if (fields[i].type == 'radio' || fields[i].type == 'checkbox' || fields[i].type == 'file') {
                fields[i].onclick = function(){ $(this.parentNode.parentNode).addClass("focused"); };
                fields[i].onfocus = function(){ $(this.parentNode.parentNode).addClass("focused"); };
                fields[i].onblur = function(){ $(this.parentNode.parentNode).removeClass("focused"); };
            } else {
                fields[i].onfocus = function(){ $(this.parentNode.parentNode).addClass("focused"); };
                fields[i].onblur = function(){ $(this.parentNode.parentNode).removeClass("focused"); };
            }
        }
    }
}

/**
 * Abre nova janela
 */
function windowPopup(mypage,myname,w,h,scroll){
   var win= null;

   var winl = (screen.width-w)/2;
   var wint = (screen.height-h)/2;
   var settings  = 'height='+h+',';
   settings += 'width='+w+',';
   settings += 'top='+wint+',';
   settings += 'left='+winl+',';
   settings += 'scrollbars='+scroll+',';
   settings += 'resizable=yes';
   window.open(mypage,myname,settings);
}
