// JavaScript Document

jQuery(document).ready(function(){
	/*TEST START*/
	$(window).resize(function() {
		//flub = window.outerWidth;
		//flub = $(window).width();
		flub = window.innerWidth;
		flab = $(window).height();
		$('.width').html(flub);
		$('.height').html(flab);
	})
	/*TEST END*/
	
	/*MOBILE NAV prevent menu and other dom elements from disappearing on resize*/
	var red = 0;
		

	
	
	//for drop down menu
	$('.menu-drop').click(function(){
		$('.header-top-right').toggle('fast');
		$('.menu-drop').toggleClass('menu-drop-c');
		if($('.menu-drop-c').is(':visible'))
		{
			red = 1;
		}
		else 
		{
			red = 0;
		}
	})
	$(window).resize(function(){
		if(window.innerWidth > 914){
			$('.header-top-right').css('display', 'block');
			$('.menu-drop').removeClass('menu-drop-c');
		}
		else {
			$('.header-top-right').css('display', 'none');
			$('.menu-drop').removeClass('menu-drop-c');
		}
	})
	
	$(window).resize(function(){
		
		$('.red').html(red);
		
		if(red == 1 && $(window).innerWidth() < 915)
		{
			$('.header-top-right').show();
			$('.menu-drop').addClass('menu-drop-c');
		}
		

		
	});
	
	//for main footer and others like main footer
	
	
})
	var errorBoxInterval = setInterval(function(){
		$('.errorbox').toggleClass('errorbox-b');
	}, 1500)
	$('.errorbox img').click(function(){
		$('.errorbox').fadeOut(200);
        clearInterval(errorBoxInterval);
	});


	var messageBoxInterval = setInterval(function(){
		$('.messagebox').toggleClass('messagebox-b');
	}, 1500);
	$('.messagebox img').click(function(){
		$('.messagebox').fadeOut(200);
         clearInterval(messageBoxInterval);
	});// JavaScript Document

/*REVISION ^1.0.0.0^*/

var ajaxObject = {
	
	ajaxCall: 0,
	
	setTimer: false,
	
	baseUrl: 'https://advantageonlinetraining.com',
	
	setCall: function(val)
	{
		ajaxObject.ajaxCall = val;
		if(val == 0)
		{
			clearTimeout(ajaxObject.setTimer);
		}
	},

	loader: function(type, call, cssclass, gif)
	{
		ajaxObject.setTimer = true;
		ajaxObject.loaderTimeout(type, call, cssclass, gif);
	},
	loaderNt: function(type, call, cssclass, gif)
	{
		$(''+type+call+'').html('<img class="'+cssclass+'" src="'+ajaxObject.baseUrl+'/assets/images/'+gif+'.gif" alt="loading gif"/>')
	},
	
	loaderByObject: function(object, cssclass, gif)
	{
		$(object).html('<img class="'+cssclass+'" src="'+ajaxObject.baseUrl+'/assets/images/'+gif+'.gif" alt="loading gif"/>');
	},
	loaderByObjectInput: function(object, cssclass, timer = 0)
	{
		daTimeout = setTimeout(function(){$(object).addClass(cssclass)}, timer);
	},
	loaderTimeout: function (type, call, cssclass, gif)
	{
			ajaxObject.setTimer = setTimeout(function(){ajaxObject.loaderNt(type, call, cssclass, gif)}, 500);
	},
	
	callStat: function()
	{
		if(ajaxObject.ajaxCall == 0)
		{
			return false;
		}
		return true;
	}	
};

var mobileNav = {
	
	blue: false,
	
	setTrue: function ()
	{
		mobileNav.blue = true;
	},
	
	setFalse: function()
	{
		mobileNav.blue = false;
	},
	
	status: function()
	{
		return mobileNav.blue;
	}
	
};

var dashBoard = {
    
    dashRefresh: false,
    
    setDashToRefresh: function ()
    {
        dashBoard.dashRefresh = true;
    },
    
    setDashNoRefresh: function ()
    {
        dashBoard.dashRefresh = false;
    },
    
    refresh: function ()
    {
        return dashBoard.dashRefresh;
    }
    
};
var appendSetAndRemove = {
    
    append: function (string)
    {
        if(string.hasOwnProperty('css'))
            {
                appendSetAndRemove.css(string.css);
            }
        if(string.hasOwnProperty('js'))
            {
                appendSetAndRemove.js(string.js);
            }
    },
    
    css: function (value)
    {
        $('.addedStyleCSS').remove();
        $('head').append(value);
        
    },
    js: function (value)
    {
        $('.addedJS').remove();
        $('head').append(value);
    },
    
    clearAllAppend: function ()
    {
        $('.addedJS').remove();
        $('.addedStyleCSS').remove();
    }
    
};

var messageErrorTimeout = {
    
    createTimeout: function(type, elementName, time)
    {
        setTimeout(function(){
            $(''+type+''+elementName+'').html('');
        }, time);
    }
    
};

var sessionTracker = {
    
    timeToWarn: 3600000,
    
    timeSeen: 0,
    
    timeStart: function()
    {
        setInterval(function()
        { 
            sessionTracker.checkTimer();
        }, 900000); 
    },
    
    checkTimer: function()
    {
        if(ajaxObject.callStat()){return;}
         $.ajax({
			type: 'POST',
			url: ''+ajaxObject.baseUrl+'/requestAjax/requestSes.php',
            data: ({toke: '1', bead:'1', rqt: 'time'}),
			cache: false,
			dataType: 'json',
			success: sessionTracker.returnTime
		});
        
        
    },
    returnTime: function(data)
    {
        if(data.b === 'yes')
            {
                sessionTracker.timeToWarn = data.a;
                sessionTracker.timeOut();
            }
        if(data.b === 'none')
            {
                sessionTracker.getMessage('expired');
            }
    },
    
    timeOut: function()
    {
       var time = sessionTracker.timeToWarn;
        var timeout = setTimeout(sessionTracker.startCountMessage, time);
    },
    startCountMessage: function()
    {
      sessionTracker.getMessage('counter');  
        sessionTracker.timeSeen = 1;
    },
    getMessage: function(status, over)
    {
        if(sessionTracker.timeSeen > 0)
            {
                if(status === 'counter'){return;}
            }
         $.ajax({
			type: 'POST',
			url: ''+ajaxObject.baseUrl+'/requestAjax/requestSes.php',
            data: ({toke: '1', bead:'1', rqt: 'box', status: status}),
			cache: false,
			dataType: 'json',
			success: sessionTracker.showMessage
		});
        if(status === 'counter')
            {
                sessionTracker.startTimer();
            }
        
    },
    showMessage: function(data)
    {
        ajaxObject.setCall(1);
        appendSetAndRemove.append(data);
        $('.messageText').html(data.a);
    }, 
    startTimer: function()
    {
        var timeTo = 120;
        var sesTimer = setInterval(function(){
            timeTo--;
            var m = Math.floor(timeTo/60);
            var s = timeTo-(m*60);
            if(s<10){s="0"+s;}
            var str = m+":"+s;
            $('#expTime').html(str);
            if(timeTo === 0)
                {
                    clearInterval(sesTimer);
                    sessionTracker.getMessage('expired', true);
                }
        }, 1000);
    },
    clickContinue: function()
    {
        location.reload();
    },
    clickCancel: function()
    {
        appendSetAndRemove.clearAllAppend();
        $('.messageText').html('');
    },
    clickOk: function()
    {
        location.reload();
    }
};

var sessionExpirationRenew = {
    
    askSessionQuestion: function (infoVar = null)
    {
        if(infoVar === "session")
        {
            sessionTracker.getMessage('expired');
            return true;
        }
    }
    
};

var buttonActive = {
    
    profileArray: {},
    classArray:  {},
    
    addToArray: function (arrayType, value)
    {
        if(arrayType === 'profile')
            {
                buttonActive.profileArray = value;
            }
        else if(arrayType === 'class')
            {
                buttonActive.classArray = value;
            }
    },
    
    use: function(typeFun, bttn, stat)
    {
        if(typeFun === 'profile')
            {
                buttonActive.profile(bttn, stat);
            }
        else if (typeFun === 'class')
            {
                buttonActive.class(bttn, stat);
            }
        
    },
    profile: function (currentButton, stat = 'click')
    {
        var buttonArray = buttonActive.profileArray
        var useKey = currentButton;
        var useVal = buttonArray[currentButton];
	   
        if(currentButton === 'dashboard1')
        {
           if(typeof dashBoardRefresh === 'function')
            {
                if(typeof produceDashRefresh === 'function')
                {
                    if(dashBoard.refresh())
                    {
                        dashBoardRefresh();
                    }
                    
                }
            }
        }
        
		if(stat == 'click')
		{
		  if($('.' + buttonArray[currentButton] + '').is(":visible"))
		  {
			if($(window).innerWidth() > 651){
				window.location.href=""+ajaxObject.baseUrl+"/profile.php?request=MatView&MatView="+currentButton+"";
			}
		  }
		}
	
	
		$('#'+currentButton+'').css('background', 'hsla(204,100%,35%,1.10)').css('color', '#FFF');
		$('.' + buttonArray[currentButton] + '').fadeIn(300);
	   
		delete buttonArray[currentButton];
		$.each(buttonArray, function(index, value){
			$('#'+index+'').css('background', '#F8F8F8').css('color', '#333');
			$('.'+value+'').css('display', 'none');
		});
	   buttonArray[useKey] = useVal;
        
    },
    class: function(currentButton, stat)
    {
        var buttonArray = buttonActive.classArray
        var useKey = currentButton;
        var useVal = buttonArray[currentButton];
        
		$('#'+currentButton+'').css('background', 'hsla(204,100%,35%,1.10)').css('color', '#FFF');
		$('.' + buttonArray[currentButton] + '').fadeIn(300);
	
		delete buttonArray[currentButton];
		$.each(buttonArray, function(index, value){
			$('#' + index + '').css('background', '#F8F8F8').css('color', '#333');
			$('.'+value+'').css('display', 'none');
		});
	   buttonArray[useKey] = useVal;
    }
    
};

var updatesReset = {
    
    reset: function ()
	{
		$('#name_display').css('display', 'block');
		$('#phone_display').css('display', 'block');
		$('#email_display').css('display', 'block');
		$('#address_display').css('display', 'block');
		$('#pass_display').css('display', 'block');
		$('#group-address-display').css('display', 'block');
		$('#group-company-display').css('display', 'block');
		$('#name_update').css('display', 'none');
		$('#phone_update').css('display', 'none');
		$('#email_update').css('display', 'none');
		$('#address_update').css('display', 'none');
		$('#pass_update').css('display', 'none');
		$('#group-address-update').css('display', 'none');
		$('#group-company-update').css('display', 'none');
		
	
		$('.enm').each(function(i, obj)
		{
			$(this).html('');
			$(this).prev().css('border-color', '#CCCCCC');
		});
	}
};
// JavaScript Document

$(document).on('click', '.logo', function(){
	window.location.href = ''+ajaxObject.baseUrl+'';
})

$(document).on('click', '.mainTitleText', function(){
	window.location.href = ''+ajaxObject.baseUrl+'';
})
// JavaScript Document

jQuery(document).ready(function($){
	
	
		/*TEST START*/
	
	var url = window.location.href;
	var href = '.nav-ul a[href="'+url+'"]';
	$(href).addClass('activeColor');
	
	/*TEST END*/
	
	
	
	var red = 0;

	
	//for drop down menu
	$('.miniNav').click(function(){
		$('.navBttns').slideToggle('fast', function(){
			if($('.navBttns').is(':visible'))
			{
				red = 1;
			}
			else 
			{
				red = 0;
			}
		});
		$('.miniNav').toggleClass('miniNav-high');
	})
	$(window).resize(function(){
		if(window.innerWidth > 769){
			$('.navBttns').css('display', 'block');
			$('.miniNav').removeClass('miniNav-high');
			//$(href).addClass('activeColor');
		}
		else {
			$('.navBttns').css('display', 'none');
			$('.miniNav').removeClass('miniNav-high');
			//$(href).removeClass('activeColor');
		}
		/*classroom controls*/
        /*this is designed to hanlde situations where an Ipad or phone is going from horizontal to verticle. Problem is that any scroll on ios resizes window, so other controls are overriden and material and cnav are swapped when unintended during scroll.*/
		if(window.innerWidth > 650){
			$('.c-nav, .c-material').fadeIn(100);
			$('.classcontent').css('height', 'auto');
		}
		else {
			/*$('.c-nav').css('display', 'inherit');
			$('.c-material').css('display', 'none');*/
			//$('.classcontent').css('height', '650px');
			
		}
		/*classroom controls*/
	})
	
	$(window).resize(function(){
		
		$('.red').html(red);
		
		if(red == 1 && $(window).innerWidth() < 769)
		{
			$('.navBttns').show();
			$('.miniNav').addClass('miniNav-high');
		}
		

		
	});
	
});// JavaScript Document
// JavaScript Document


// JavaScript Document


