// Vantiv Custom JavaScript
//Search Box Event
//Start Doc Ready

function search() {
    var searchBox = $("#search");
    if (searchBox.val() != "" && searchBox.val() != "Search") {
        window.location = "/search?q=" + searchBox.val();
    }
}

$(document).ready(function () {

    /********************************************/
    //		Search Box
    /********************************************/
    var searchBox = $("#search");
    searchBox.keyup(function (event) {
        var keynum = event.keyCode || event.which;

        if (keynum == 13) {
            event.preventDefault();
            search();
            return false;
        }
        else {
            return true;
        }
    });

    searchBox.focusin(function (event) {
        if (searchBox.val() == "Search") {
            searchBox.val("");
        }
    });

    searchBox.focusout(function (event) {
        if (searchBox.val() == "") {
            searchBox.val("Search");
        }
    });

    $("#btnSearch").click(function (event) {
        search();
    });


    /********************************************/
    //		Mega Menu Dropdown
    /********************************************/
    if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
        jQuery(".megamenu").megamenu({ 'activate_action': 'click' })
    }
    else {
        jQuery(".megamenu").megamenu();
    }

    /********************************************/
    //		Accessible Tabs
    /********************************************/
    $(".tabs").accessibleTabs({
        tabhead: "h3",
        fx: "fadeIn",
        autoAnchor: true
    });


    /********************************************/
    //		jQuery First Selector
    /********************************************/
    /** Add design elements to the first/last div selector **/
    $("#column502 .moduleWrap:first").css("border-top", "none");
    $(".excerptWrap:first").addClass("first");
    $(".module:first-child").addClass("first");
    $("ul.excerptLinks li a:last").addClass("last");
    $("ul.clientList li:last").addClass("last");
    $(".columns3up:last").addClass("last");
    $("#history .tabs ul.tabs-list li:first").addClass("first");

    /*
    if ($('.colImage').length) {	
    $(".tblResourceList td:nth-child(1)").addClass("first");
    };
    */

    // Tablesorter
    if ($('.tablesorter').length) {
        $(".tablesorter").tablesorter();
    };


    // Equalize footer columns
    $.fn.equalizeHeights = function () {
        return this.height(
			Math.max.apply(this,
				$(this).map(function (i, e) {
				    return $(e).height()
				}).get()
			)
		)
    };

    if ($('#column502 .moduleWrap .module').length) {
        $("#column502 .moduleWrap .module").equalizeHeights();
    };

    if ($('.excerptBlock').length) {
        $(".excerptBlock").equalizeHeights();
    };

    // Entire element clickable
    $(".excerptBlock, .moduleWrap .module").click(function () {
        window.location = $(this).find("a").attr("href"); return false;
    });

    // FAQ
    $('.faq-list h3:first').addClass('active').next().show();
    $('.faq-list h3').click(function () {
        if ($(this).next().is(':hidden')) { //If immediate next container is closed...
            $('.faq-list h3').removeClass('active').next().slideUp(); //Remove all "active" state and slide up the immediate next container
            $(this).toggleClass('active').next().slideDown(); //Add "active" state to clicked trigger and slide down the immediate next container
        }
        else {
            $(this).removeClass('active').next().slideUp();
        }
        return false; //Prevent the browser jump to the link anchor
    });



});
//End Doc Ready



/////////////////////////////////////////////
//jQuery Cycle Plugin ( Home Page Banner )
/////////////////////////////////////////////
$(function() {
    $('#slideshow').cycle({
        fx:     'fade',
        speed:  800,
        timeout: 5000,
        pager:  '#nav',
		autostop: 0,
        pagerAnchorBuilder: function(idx, slide) {
            return '#nav li:eq(' + (idx) + ') a';
        }
    });
});

/////////////////////////////////////////////
//jQuery Accessible Tabs - DO NOT DELETE
/////////////////////////////////////////////
document.documentElement.className += " js";

		/////////////////////////////////////////////
		//Mega Menu
		/////////////////////////////////////////////
		/*
		  jQuery MegaMenu Plugin
		  Author: GeekTantra
		  Author URI: http://www.geektantra.com
		*/
		var isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') != -1;
		
		jQuery.fn.megamenu = function(options) {
		  options = jQuery.extend({
			  activate_action: "mouseover",
			  deactivate_action: "mouseleave",
			  show_method: "slideDown",
			  hide_method: "slideUp",
			  justify: "left",
			  enable_js_shadow: true,
			  shadow_size: 3,
			  mm_timeout: 250
		  }, options);
		  var $megamenu_object = this;
		  if( options.activate_action == "click" ) options.mm_timeout = 0;
		  $megamenu_object.children("li").each(function(){
			jQuery(this).addClass("mm-item");
			jQuery(".mm-item").css({ 'float': options.justify });
			
			jQuery(this).find("div:first").addClass("mm-item-content");
			jQuery(this).find("a:first").addClass("mm-item-link");
			var $mm_item_content = jQuery(this).find(".mm-item-content");
			var $mm_item_link = jQuery(this).find(".mm-item-link");
			$mm_item_content.hide();
			
			jQuery(document).bind("click", function(){
			  jQuery(".mm-item-content").hide();
			  jQuery(".mm-item-link").removeClass("mm-item-link-hover");
			});
			jQuery(this).bind("click", function(e){
			  e.stopPropagation();
			});
			$mm_item_content.wrapInner('<div class="mm-content-base"></div>');
			if(options.enable_js_shadow == true) {
			  $mm_item_content.append('<div class="mm-js-shadow"></div>');
			}
			var $mm_timer = 0;
			// Activation Method Starts
			jQuery(this).bind(options.activate_action, function(e){
			  e.stopPropagation();
			  var mm_item_link_obj = jQuery(this).find("a.mm-item-link");
			  var mm_item_content_obj = jQuery(this).find("div.mm-item-content");
			  clearTimeout($mm_timer);
			  $mm_timer = setTimeout(function(){ //Emulate HoverIntent
				mm_item_link_obj.addClass("mm-item-link-hover");
				mm_item_content_obj.css({
				  'top': ($mm_item_link.offset().top + $mm_item_link.outerHeight()) - 1 +"px",
				  'left': ($mm_item_link.offset().left) - 0 + 'px'
				})
				
				if(options.justify == "left"){
				  var mm_object_right_end = $megamenu_object.offset().left + $megamenu_object.outerWidth();
											// Coordinates of the right end of the megamenu object
				  var mm_content_right_end = $mm_item_link.offset().left + $mm_item_content.outerWidth() - 5 ;
											// Coordinates of the right end of the megamenu content
				  if( mm_content_right_end >= mm_object_right_end ) { // Menu content exceeding the outer box
					mm_item_content_obj.css({
					  'left': ($mm_item_link.offset().left - (mm_content_right_end - mm_object_right_end)) - 2 + 'px'
					}); // Limit megamenu inside the outer box
				  }
				} else if( options.justify == "right" ) {
				  var mm_object_left_end = $megamenu_object.offset().left;
											// Coordinates of the left end of the megamenu object
				  var mm_content_left_end = $mm_item_link.offset().left - mm_item_content_obj.outerWidth() + 
											$mm_item_link.outerWidth() + 5;
											// Coordinates of the left end of the megamenu content
				  if( mm_content_left_end <= mm_object_left_end ) { // Menu content exceeding the outer box
					mm_item_content_obj.css({
					  'left': mm_object_left_end + 2 + 'px'
					}); // Limit megamenu inside the outer box
				  } else {
					mm_item_content_obj.css({
					  'left': mm_content_left_end + 'px'
					}); // Limit megamenu inside the outer box
				  }
				}
				if(options.enable_js_shadow == true) {
				  mm_item_content_obj.find(".mm-js-shadow").height( mm_item_content_obj.height() );
				  mm_item_content_obj.find(".mm-js-shadow").width( mm_item_content_obj.width() );
				  mm_item_content_obj.find(".mm-js-shadow").css({
					'top': (options.shadow_size) + (isIE6 ? 2 : 0) + "px",
					'left': (options.shadow_size) + (isIE6 ? 2 : 0) + "px",
					'opacity': 0.5
				  });
				}
				switch(options.show_method) {
				  case "simple":
						mm_item_content_obj.show();
						break;
				  case "slideDown":
						mm_item_content_obj.height("auto");
						mm_item_content_obj.slideDown('fast');
						break;
				  case "fadeIn":
						mm_item_content_obj.fadeTo('fast', 1);
						break;
				  default:
						mm_item_content_obj.each( options.show_method );
						break;
				}
			  }, options.mm_timeout);
			});
			// Activation Method Ends
			// Deactivation Method Starts
			jQuery(this).bind(options.deactivate_action, function(e){
			  e.stopPropagation();
			  clearTimeout($mm_timer);
			  var mm_item_link_obj = jQuery(this).find("a.mm-item-link");
			  var mm_item_content_obj = jQuery(this).find("div.mm-item-content");
		//      mm_item_content_obj.stop();
			  switch(options.hide_method) {
				case "simple":
					  mm_item_content_obj.hide();
					  mm_item_link_obj.removeClass("mm-item-link-hover");
					  break;
				case "slideUp":
					  mm_item_content_obj.slideUp( 'fast',  function() {
						mm_item_link_obj.removeClass("mm-item-link-hover");
					  });
					  break;
				case "fadeOut":
					  mm_item_content_obj.fadeOut( 'fast', function() {
						mm_item_link_obj.removeClass("mm-item-link-hover");
					  });
					  break;
				default:
					  mm_item_content_obj.each( options.hide_method );
					  mm_item_link_obj.removeClass("mm-item-link-hover");
					  break;
			  }
			  if(mm_item_content_obj.length < 1) mm_item_link_obj.removeClass("mm-item-link-hover");
			});
		//    Deactivation Method Ends
		  });
		  this.find(">li:last").after('<li class="clear-fix"></li>');
		  this.show();
		};



$(window).load(function(){		
		
		$(".icon img").animate({opacity:1},500);	
		
		// clone image
		$('.icon img').each(function(){
			var el = $(this);
			el.css({"position":"absolute"}).wrap("<div class='img_wrapper' style='display: inline-block'>").clone().addClass('img_grayscale').css({"position":"absolute","z-index":"998","opacity":"0"}).insertBefore(el).queue(function(){
				var el = $(this);
				el.parent().css({"width":this.width,"height":this.height});
				el.dequeue();
			});
			if($.browser.msie){
				this.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(grayScale=1)';
				} else {
				this.src = grayscale(this.src);
				}
		});
		
		// Fade image 
		$('.excerptBlock').mouseover(function(){
			$(this).find('img:first').stop().animate({opacity:1}, 300);
		})
		$('.excerptBlock').mouseout(function(){
			$(this).find('.img_grayscale').stop().animate({opacity:0}, 600);
		});	

});
	
	// Grayscale w canvas method
	function grayscale(src){
		var canvas = document.createElement('canvas');
		var ctx = canvas.getContext('2d');
		var imgObj = new Image();
		imgObj.src = src;
		canvas.width = imgObj.width;
		canvas.height = imgObj.height; 
		ctx.drawImage(imgObj, 0, 0); 
		var imgPixels = ctx.getImageData(0, 0, canvas.width, canvas.height);
		for(var y = 0; y < imgPixels.height; y++){
			for(var x = 0; x < imgPixels.width; x++){
				var i = (y * 4) * imgPixels.width + x * 4;
				var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3;
				imgPixels.data[i] = avg; 
				imgPixels.data[i + 1] = avg; 
				imgPixels.data[i + 2] = avg;
			}
		}
		ctx.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height);
		return canvas.toDataURL();
    }


