function Menu(){
    this.is_login_in_progress = false;
    this.is_regist_in_progress = false;
    this.menupopup_is_visible = false;
};

Menu.prototype = {

    init: function(){
        try {
            if (main_menu_num != null) {
                var item = $('#main_menu_list li')[main_menu_num];
                $(item).addClass('active');
                $(item).prepend('<div class="main_menu_corner_left"></div>');
                $(item).append('<div class="main_menu_corner_right"></div>');
            }
            
            if (sub_menu_num != null) {
            
                var item = $('#sub_menu_list li')[sub_menu_num];
                $(item).addClass('active');
                $(item).prepend('<div class="sub_menu_corner_left"></div>');
                $(item).append('<div class="sub_menu_corner_right"></div>');
            }
            if (third_level_menu_num != null) {
                var item = $('#third_level_menu_list li')[third_level_menu_num];
                $(item).addClass('active');
                $(item).prepend('<div class="third_level_menu_corner_left"></div>');
                $(item).append('<div class="third_level_menu_corner_right"></div>');
            }
        } catch (ex) {
            //alert(ex);
        }
        
        var popup_array = $('#menu .popup_container .title');
        popup_array.each(function(i){
            $(this).prepend('<div class="popup_container_title_corner_left"></div>');
            $(this).append('<div class="popup_container_title_corner_right"></div>');
        });
        
        
        classMenu.firstShow = true;
        var menu_array = $('#main_menu li.has_content');
        
        menu_array.hover(function(){ //Hover over event on list item
            var menu = $(this);
            
            if (classMenu.menupopup_is_visible == true) {
                clearTimeout(classMenu.menupopup_show_timer); //késleltetett megjelenés időzítő
                clearTimeout(classMenu.menupopup_hide_timer); //késleltetett eltünés időzítő
                menu_array.each(function(i){
                    $('#popup_' + $(this).find('a').attr('id')).css('visibility', 'hidden');
                });
                
                var offset = menu.find('a').offset();
                var popup = $('#popup_' + menu.find('a').attr('id'));
                
                popup.css({
                    'left': parseInt(offset.left) - 19,
                    'top': parseInt(offset.top) - 22,
                    'visibility': 'visible'
                }); //Show the subnav
                classMenu.menupopup_is_visible = true;
            }
            
            classMenu.menupopup_show_timer = setTimeout(function(){
                //minden esetleg nyitva maradt popup-ot eltüntetünk...
                menu_array.each(function(i){
                    $('#popup_' + $(this).find('a').attr('id')).css('visibility', 'hidden');
                });
                
                var offset = menu.find('a').offset();
                var popup = $('#popup_' + menu.find('a').attr('id'));
                
                popup.css({
                    'left': parseInt(offset.left) - 19,
                    'top': parseInt(offset.top) - 22,
                    'visibility': 'visible'
                }); //Show the popup
                classMenu.menupopup_is_visible = true;
            }, 500);
            menu.mouseleave(function(){
                clearTimeout(classMenu.menupopup_show_timer);
            });
            
            
            
            //alert($('#popup_' + $(this).attr('id')).css('left'));
        
        }, function(){ //on hover out...
            var menu = $(this);
            var popup = $('#popup_' + menu.find('a').attr('id'));
            popup.mouseleave(function(){
                classMenu.menupopup_hide_timer = setTimeout(function(){
                    popup.css('visibility', 'hidden'); //Hide the popup
                    classMenu.menupopup_is_visible = false;
                }, 800);
                popup.mouseenter(function(){
                    clearTimeout(classMenu.menupopup_hide_timer);
                });
                
            })
            
            
            
        });
        
        /*
         $('#main_menu li.has_content').hover(function(){ //Hover over event on list item
         $('#popup_kultura').css('visibility', 'visible'); //Show the subnav
         }, function(){ //on hover out...
         $('#popup_kultura').css('visibility', 'hidden'); //Hide the subnav
         });
         */
        //MY PROFILE POPUP:
		
        $('#login_box .my_profile').hover(function(){ //Hover over event on list item
            var menu = $(this);
            clearTimeout(classMenu.menupopup2_hide_timer);
            var offset = menu.position();
			
			$('#popup_my_profile').css({
                'left': parseInt(offset.left) - 150,
                'top': parseInt(offset.top) - 22,
                'visibility': 'visible'
            });
            classMenu.menupopup2_is_visible = true;
        }, function(){ //on hover out...
            $('#popup_my_profile').mouseleave(function(){
                classMenu.menupopup2_hide_timer = setTimeout(function(){
                    $('#popup_my_profile').css('visibility', 'hidden'); //Hide the popup
                    classMenu.menupopup2_is_visible = false;
                }, 800);
                $('#popup_my_profile').mouseenter(function(){
                    clearTimeout(classMenu.menupopup2_hide_timer);
                });
                
            })
        });
        
        //ORG PROFILE POPUP:
        
        $('#login_box .org_profile').hover(function(){ //Hover over event on list item
            var menu = $(this);
            clearTimeout(classMenu.menupopup2_hide_timer);
            var offset = menu.position();
            $('#popup_my_profile_special').css({
                'visibility': 'hidden'
            });
            $('#popup_org_profile').css({
                'left': parseInt(offset.left) - ($('#popup_org_profile').width() - $(menu).parent().width()) + 19,
                'top': parseInt(offset.top) - 22,
                'visibility': 'visible'
            }); //Show the popup
            classMenu.menupopup2_is_visible = true;
        }, function(){ //on hover out...
            $('#popup_org_profile').mouseleave(function(){
            
                classMenu.menupopup2_hide_timer = setTimeout(function(){
                    $('#popup_org_profile').css('visibility', 'hidden'); //Hide the popup
                    classMenu.menupopup2_is_visible = false;
                }, 800);
                $('#popup_org_profile').mouseenter(function(){
                    clearTimeout(classMenu.menupopup2_hide_timer);
                });
                
            })
        });
		
        //MY PROFILE SPCIAL POPUP:
		
        $('#login_box .my_profile_special').hover(function(){ //Hover over event on list item
            var menu = $(this);
            clearTimeout(classMenu.menupopup2_hide_timer);
            var offset = menu.position();
			$('#popup_org_profile').css('visibility', 'hidden');
			$('#popup_my_profile_special').css({
                'left': parseInt(offset.left) - ($('#popup_my_profile_special').width() - $(menu).parent().width()) + 19,
                'top': parseInt(offset.top) - 22,
                'visibility': 'visible'
            });
            classMenu.menupopup2_is_visible = true;
        }, function(){ //on hover out...
            $('#popup_my_profile_special').mouseleave(function(){
                classMenu.menupopup2_hide_timer = setTimeout(function(){
                    $('#popup_my_profile_special').css('visibility', 'hidden'); //Hide the popup
                    classMenu.menupopup2_is_visible = false;
                }, 800);
                $('#popup_my_profile_special').mouseenter(function(){
                    clearTimeout(classMenu.menupopup2_hide_timer);
                });
                
            })
        });
        
        
    },
    
    cmdShowPopup: function(element){
        if (typeof element == 'object') { // object
            var popup = $('#popup_' + $(element).attr('class'));
            var popup_content = $('#popup_' + $(element).attr('class') + ' .content');
        } else { // string
            var popup = $('#popup_' + element);
            var popup_content = $('#popup_' + element + ' .content');
        }
        var visibility = popup.css('visibility');
        
        if (visibility == 'hidden') { //Show the popup
            popup.css({
                'visibility': 'visible'
            });
            $('#loginform_username').focus();
            setTimeout(function(){
                $('body').bind('mousedown', function(event){
                
                    if (!classCore.ui.checkPositions(event, popup_content)) { //ha mellé kattint: hide...
                        //alert('hide...')
                        popup.css({
                            'visibility': 'hidden'
                        }); // hide
                        $('body').unbind('mousedown');
                    }
                });
            }, 100);
            
        } else {
            popup.css({
                'visibility': 'hidden'
            });
        }
        
    },
    
    cmdLogin: function(){
        if (classMenu.is_login_in_progress) {
            return false;
        }
        $.ajax({
            type: classCore.method,
            url: classCore.modulePath,
            data: {
                'action': 'login',
                'username': $('#loginform_username').val(),
                'password': $('#loginform_password').val()
            }, //{'key[]':['valuea','valueb']}
            timeout: 5000,
            success: function(data, textStatus, XMLHttpRequest){
                var response = $(data).find('login').text();
                $('#popup_login_submit').removeClass('disabled');
                $('#popup_login_submit').css('cursor', 'default');
                $('#popup_login_ajax_loader').addClass('hidden');
                $('body').css('cursor', 'default');
                classMenu.is_login_in_progress = false;
                
                switch (response) {
                    case 'success':
                        /*
                     if (window.localStorage) {
                     localStorage.setItem('tudositok_hu_loginform_username', $('#loginform_username').val());
                     }
                     */
                        //location.href = '/private/adatlap';
                        location.href = location.href;
                        break;
                        
                    case 'fail':
                        var errors = ($(data).find('form_error'))[0].childNodes;
                        
                        for (var e = 0; e < errors.length; e++) {
                            $('#loginform_' + errors[e].nodeName).parents('li').prepend('<div class="error_msg"><div>' + $(errors[e]).text() + '</div></div>');
                        }
                        break;
                }
                
                
            },
            error: function(req, error){
                $('#popup_login_submit').removeClass('disabled');
                $('#popup_login_submit').css('cursor', 'default');
                $('#popup_login_ajax_loader').addClass('hidden');
                $('body').css('cursor', 'default');
                classMenu.is_login_in_progress = false;
                if (error === 'error') {
                    error = req.statusText;
                }
                var errormsg = 'There was a communication error: ' + error;
                $('#ehhh').html(errormsg).effect('highlight', {
                    color: '#c00'
                }, 1000);
                
            },
            beforeSend: function(data){
                $('#popup_login_submit').addClass('disabled');
                $('#popup_login_submit').css('cursor', 'progress');
                $('#popup_login_ajax_loader').removeClass('hidden');
                $('body').css('cursor', 'progress');
                classMenu.is_login_in_progress = true;
            }
        });
        
    },
    
    cmdLogout: function(){
    
        $.ajax({
            type: classCore.method,
            url: classCore.modulePath,
            data: {
                'action': 'logout'
            }, //{'key[]':['valuea','valueb']}
            timeout: 5000,
            success: function(data, textStatus, XMLHttpRequest){
            
                location.href = 'http://tudositok.hu';
                
                
            },
            error: function(req, error){
                location.href = 'http://tudositok.hu';
                
            },
            beforeSend: function(data){
            
            }
        });
        
    },
    
    cmdRefreshCaptcha: function(){
        $('#captcha_pic').removeAttr('src');
        $('#captcha_pic').attr('src', 'http://tudositok.hu/reg_chaptcha/' + Math.random());
//        $('#captcha_pic').attr('src', classCore.modulePath + '?action=reg_chaptcha');
//&nbsp;<span style=" cursor:pointer; color:#999999;" onclick="classMenu.cmdRefreshCaptcha();"><img src="images/refresh_icon.png" alt="Frissítés"/> Új</span>
    },
    
    cmdAddUser: function(){
    
        $('.error_msg').remove();
        
        var password = $('#registform_password').val();
        var repassword = $('#registform_repassword').val();
        
        var rules_accept = $('#registform_rules').hasClass('checked');
        
        
        $.ajax({
            type: classCore.method,
            url: classCore.modulePath,
            data: {
                'action': 'add_user',
                'lastname': $('#registform_lastname').val(),
                'firstname': $('#registform_firstname').val(),
                'username': $('#registform_username').val(),
                'email': $('#registform_email').val(),
                'password': $('#registform_password').val(),
                'password2': $('#registform_password2').val(),
                'chaptcha': $('#registform_chaptcha').val(),
                'rules': (rules_accept) ? '1' : '0'
            }, //{'key[]':['valuea','valueb']}
            timeout: 5000,
            success: function(data, textStatus, XMLHttpRequest){
                var response = $(data).find('add_user').text();
                //alert(XMLHttpRequest.responseText);
                $('#popup_regist_submit').removeClass('disabled');
                $('#popup_regist_ajax_loader').addClass('hidden');
                classMenu.is_regist_in_progress = false;
                switch (response) {
                    case 'success':
                        //alert('success')
                        location.href = 'http://tudositok.hu/newuser.php';
                        break;
                        
                    case 'fail':
                        var errors = ($(data).find('form_error'))[0].childNodes;
                        
                        for (var e = 0; e < errors.length; e++) {
                            $('#registform_' + errors[e].nodeName).parents('li').prepend('<div class="error_msg"><div>' + $(errors[e]).text() + '</div></div>');
                        }
                        classMenu.cmdRefreshCaptcha();
                        $('#registform_chaptcha').val('');
                        break;
                }
                
                
            },
            error: function(req, error){
                $('#popup_regist_submit').removeClass('disabled');
                $('#popup_regist_ajax_loader').addClass('hidden');
                classMenu.is_regist_in_progress = false;
                if (error === 'error') {
                    error = req.statusText;
                }
            },
            beforeSend: function(data){
                $('#popup_regist_submit').addClass('disabled');
                $('#popup_regist_ajax_loader').removeClass('hidden');
                classMenu.is_regist_in_progress = true;
            }
        });
    },
    
    cmdShowRegio: function(type, button){
        $('#popup_regio_primary').hide();
        $('#popup_regio_secondary').hide();
        
        var button_pos = $(button).offset();
        $('#popup_regio_' + type).css({
            'top': button_pos.top - 5,
            'left': button_pos.left - 135
        })
        $('#popup_regio_' + type).toggle();
        setTimeout(function(){
            $('body').bind('click', function(event){
            
                if (!classCore.ui.checkPositions(event, $('#popup_regio_' + type + '_content'))) { //ha mellé kattint: hide...
                    //alert('hide...')                
                    $('#popup_regio_' + type).hide(); // hide
                    $('body').unbind('click');
                }
            });
            
        }, 100);
        
    },
    
    cmdSearch: function(){
        var url = 'http://tudositok.hu/keres/' + $('#search_string').val();
        location.href = url;
    }
};

var classMenu = new Menu();

