// as of 1.4.2 the mobile safari reports wrong values on offset()
// http://dev.jquery.com/ticket/6446
// remove once it's fixed
if ( /webkit.*mobile/i.test(navigator.userAgent)) {
  (function($) {
      $.fn.offsetOld = $.fn.offset;
      $.fn.offset = function() {
        var result = this.offsetOld();
        result.top -= window.scrollY;
        result.left -= window.scrollX;
        return result;
      };
  })(jQuery);
}

// addtothis
$(function() {
    var delay = 400;
    
    function hideMenu() {
        if (!$('.custom_button').data('in') && !$('.hover_menu').data('in') && !$('.hover_menu').data('hidden')) {
            $('.hover_menu').fadeOut('fast');
            $('.custom_button').removeClass('active');
            $('.hover_menu').data('hidden', true);
        }
    }
    
    $('.custom_button, .hover_menu').mouseenter(function() {
        $('.hover_menu').fadeIn('fast');
        $('.custom_button').addClass('active');
        $(this).data('in', true);
        $('.hover_menu').data('hidden', false);
    }).mouseleave(function() {
        $(this).data('in', false);
        setTimeout(hideMenu, delay);
    });    
    
});

// jquery function to reload images
(function($) {
	  var cache = [];
	  // Arguments are image paths relative to the current page.
	  $.preLoadImages = function() {
	    var args_len = arguments.length;
	    for (var i = args_len; i--;) {
	      var cacheImage = document.createElement('img');
	      cacheImage.src = arguments[i];
	      cache.push(cacheImage);
	    }
	  }
	})(jQuery);

var overLanguage = false;

function fixLeftHandNav()
{
	// left hand current selection
	if($('#lhcolumn .current').length > 0)
	{
		$('#subnavcurrentleft').show();
		document.getElementById('subnavcurrentleft').style.left = parseInt(getOffsetLeft($('#lhcolumn .current').get()[0]) - 11) + 'px';
		document.getElementById('subnavcurrentleft').style.top = parseInt(getOffsetTop($('#lhcolumn .current').get()[0]) + 1) + 'px';
	}		
}

$(window).resize(function()
{
	fixLeftHandNav();
});


$(document).ready(function()
{				fixLeftHandNav();			
			
	jQuery.preLoadImages("https://www.pcisecuritystandards.org/images/navover.jpg", "https://www.pcisecuritystandards.org/images/navoverleft.jpg", "https://www.pcisecuritystandards.org/images/navoverright.jpg", "https://www.pcisecuritystandards.org/images/subnavselected.jpg", "https://www.pcisecuritystandards.org/images/subnav-hover.jpg");
	
	// change languages
	$('.change_language').mouseover(function() {
		overLanguage = true;
	});		
	
	$('#change_language').mouseover(function() {
		overLanguage = true;
	});	
	
	$('#change_language').mouseout(function() {
		overLanguage = false;
	});			
			
	$('body').mouseover(function() {
		if(!overLanguage)
			$('#change_language').hide();
	});				
		
	// font resizer
	  // Reset Font Size
	  var originalFontSize = $('html').css('font-size');
	  // Increase Font Size
	  $("#increaseFont").click(function()
	  {
		resizeAll('increase');
	    return false;
	  });
	  // Decrease Font Size
	  $("#decreaseFont").click(function(){
		resizeAll('decrease');
	    return false;
	  });
	  // Reset Font Size
	  $("#resetFont").click(function(){
		  resizeToZero();
	    return false;
	  });
	  
	  resizeReset();
	    	  
	//initializeSuggestFramework();
});

function resizeAll(direction) {
	
	if (!$.cookie("textsize")) {
		$.cookie("textsize", "0",  {path: '/'});
	}

	if (direction == 'increase') {
		if(parseInt($.cookie("textsize")) > 5)
		{
			return;
		}
		$.cookie("textsize", parseInt($.cookie("textsize")) + 1,  {path: '/'});
	} else {
		if(parseInt($.cookie("textsize")) < -3)
		{
			return;
		}		
		$.cookie("textsize", parseInt($.cookie("textsize")) - 1,  {path: '/'});
	}
	
	resizeAllEl(direction);	
}

function resizeReset() {
	if ($.cookie("textsize") != null)
	{
		if (parseInt($.cookie("textsize")) > 0) {
			for ( var i = 0; i <= parseInt($.cookie("textsize")); i++) {
				resizeAllEl('increase');
			}
		} else {
			for ( var i = 0; i >= parseInt($.cookie("textsize")); i--) {
				resizeAllEl('decrease');
			}
		}
	}
}

function resizeToZero() {
	if ($.cookie("textsize") != null)
	{
		var cookieSize = parseInt($.cookie("textsize"));
		while(cookieSize > 0)
		{
			resizeAllEl('decrease');
			cookieSize--;
		}
		
		while(cookieSize < 0)
		{
			resizeAllEl('increase');
			cookieSize++;
		}		
	}
	
	$.cookie("textsize", "0",  {path: '/'});		
}

function resizeAllEl(direction)
{
	resizeEl('#page', direction);
	resizeEl('.searchby', direction);
	resizeEl('td', direction);
	resizeEl('h2', direction);
	resizeEl('h3', direction);
	resizeEl('h4', direction);
	resizeEl('#page a', direction);
	resizeEl('.boxcontent', direction);
	
	if(parseInt($.cookie("textsize")) == 0)
	{
		$('#resetFont').hide();
	}
	else
	{
		$('#resetFont').show();
	}
}

function resizeEl(obj, direction)
{
    var currentFontSize = $(obj).css('font-size');
    currentFontSize = parseInt(currentFontSize);
    
    if(direction == 'increase')
    {
    	$(obj).css('font-size',  currentFontSize + 1);
    }
    else
    {
    	$(obj).css('font-size',  currentFontSize - 1);
    }
    
    $(obj).css('line-height',  (currentFontSize + 4)+'px');
}

function removeKey(arrayName,key)
{
 var x;
 var tmpArray = new Array();
 for(x in arrayName)
 {
  if(x!=key) { tmpArray[x] = arrayName[x]; }
 }
 return tmpArray;
}

function changeLanguage(aLink)
{
	$('#change_language').slideToggle();
	document.getElementById('change_language').style.left = getOffsetLeft(aLink) + 'px';
	document.getElementById('change_language').style.top = (parseInt(getOffsetTop(aLink) + 15)) + 'px';
	
	return false;
}

function getOffsetLeft (el)
{
  var ol = el.offsetLeft;
  while ((el = el.offsetParent) != null)
 	ol += el.offsetLeft;
  return ol;
}
function getOffsetTop (el)
{
  var ot = el.offsetTop;
  while((el = el.offsetParent) != null)
   ot += el.offsetTop;
   return ot;
}

function printProps(obj)
{
  var output = "" ;
  for (var prop in obj) {
    alert(prop + " = " + obj[prop]);
  }
}

function getParameterByName( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}

