var $j=jQuery.noConflict();
var alertText = "Please be advised that you are leaving Pacific Rim Bank's website. This link is provided as a courtesy. Pacific Rim Bank does not endorse or control the content of third party websites.";
var customFolder = "_templateSECONDBranch";
var slideSpeed = 500;
var tabEffect = "fade";
var intervalID;

$j(document).ready( function() {
	
	// Initiates js banner on Japanese site. 
	if( $j('#bannersWrap').length ){
        $j('#bannersWrap').homeBanners({
    	    'preloads':['/custom/pacificrimbank/image/banner-slides/slide2.png','/custom/pacificrimbank/image/banner-slides/slide3.png','/custom/pacificrimbank/image/banner-slides/slide4.png']
    	});
	}

	productTabs();
	
	$j('#primaryNav a.firstChild').attr('title', 'eBanking Direct');
	$j('#primaryNav.jp a.firstChild').attr('title', 'サービスのご案内');
	$j('#quickLinks li a:eq(2)').attr('title', 'eBanking Direct Demo');
	$j('#leftNav a:contains("Banking Direct"), #catBreadcrumb a:contains("Banking Direct")').attr('title', 'eBanking Direct');
	$j('#contentLeft h3 a:contains("Non-Profit Interest")').css('font-size', '12px')

	$j(".confirm").click( function() {						   
		if (!confirmAlert($j(this).attr('href'))){
			return false;			
		}
	});
		
	// New page for INMO
	$j('a.newPage').each( function(){
		this.target = "_blank";
	});

	// FancyBox popup on applications
	$j("a#ssnWhy").fancybox({
		'frameWidth': 300,
		'frameHeight': 190
	});
	
	// Tell Me More, calculator, and online banking login popups provided by FancyBox 
	$j('#tellMeMoreButton a').addClass('iframe');
	
	$j("#tellMeMoreButton a").fancybox({
		'hideOnContentClick': false,
		'frameWidth': 540,
		'frameHeight': 380,
		'overlayOpacity': 0.8
	});
	
	$j('#shareButton a').addClass('iframe');
	
	$j("#shareButton a").fancybox({
		'hideOnContentClick': false,
		'frameWidth': 570,
		'frameHeight': 520,
		'overlayOpacity': 0.8
	});
	
	//	Standalone online banking link
	$j('#olbButton').addClass('iframe');
	
	$j("#olbButton").fancybox({
		'hideOnContentClick': false,
		'frameWidth': 214,
		'frameHeight': 234,
		'overlayOpacity': 0.8
	});
	
	$j('#financialCalculators li a').addClass('iframe');

	$j("#financialCalculators li a").fancybox({
		'hideOnContentClick': false,
		'frameWidth': 650,
		'frameHeight': 400,
		'padding': 10,
		'overlayOpacity': 0.8
	});

	//Home page stuff
	if( $j('#homeFeatured').length > 0 ){
		$j('#homeFeatured dt').click( function(){
			if( !$j(this).hasClass('selected') ){
				$j('#homeFeatured .selected').each( function(){
					$j(this).removeClass('selected');
				});
				$j('#homeFeatured dd').hide();
				$j(this).addClass('selected').next().addClass('selected').fadeIn();
			}
		});
		$j("#homeFeatured dd").click(function(){
			window.location=$j(this).find("a").attr("href");
		}).hover( function(){
			$j(this).addClass('over');
		}, function(){
			$j(this).removeClass('over');
		});
		$j("#openAnAccount").click(function(){
			window.location=$j(this).find("a").attr("href");
		}).hover( function(){
			$j(this).addClass('over');
		}, function(){
			$j(this).removeClass('over');
		});
		
		intervalID = setInterval( function(){rotate();}, 5000 );
		$j('#homeFeatured dt').click( function(){
			clearInterval(intervalID)
		});
	}
	$j('#olbButton img').hover( function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-online-banking-hover.png');
	}, function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-online-banking.png');
	});
	$j('#jpPortal #olbButton img').unbind('mouseenter mouseleave');
	$j('#jpPortal #olbButton img').hover( function(){
	 		$j(this).attr('src', '/custom/pacificrimbank/image/button-online-banking-hover-jp.png');
	 	}, function(){
			$j(this).attr('src', '/custom/pacificrimbank/image/button-online-banking-jp.png');
	 });
	$j('#homeButton img').hover( function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-home-hover.png');
	}, function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-home.png');
	});
	
	$j('#homeButton.jp img').hover( function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-home-jp-hover.png');
	}, function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-home-jp.png');
	});
	
	$j('#inJapanese img').hover( function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-japanese-hover.png');
	}, function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-japanese.png');
	});
	
	$j('#inEnglish img').hover( function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-english-hover.png');
	}, function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-english.png');
	});
	
	//LeftNav Stuff
	$j("#leftNav h2").hover( function(){
		$j(this).addClass('over');
	}, function(){
		$j(this).removeClass('over');
	});

	//Category Page Stuff
	$j("#productCategory li").click(function(){
		window.location=$j(this).find("a").attr("href");
	}).hover( function(){
		$j(this).addClass('over');
	}, function(){
		$j(this).removeClass('over');
	});
	
	$j('#productCategory.b li').append('<img src="http://pacificrimbank.fipreview.com/custom/pacificrimbank/image/waves-business-cat.png" alt="" class="catWaves" />');
	$j('#productCategory.n li').append('<img src="http://pacificrimbank.fipreview.com/custom/pacificrimbank/image/waves-nonprofit-cat.png" alt="" class="catWaves" />');
	$j('#productCategory.p li').append('<img src="http://pacificrimbank.fipreview.com/custom/pacificrimbank/image/waves-personal-cat.png" alt="" class="catWaves" />');
	
	//Product Page Stuff
	$j('#tellMeMoreButton img').hover( function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-questions-hover.png');
	}, function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-questions.png');
	});
	
	$j('#jpPortal #tellMeMoreButton img').hover( function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-jp-questions-hover.png');
	}, function(){
		$j(this).attr('src', '/custom/pacificrimbank/image/button-jp-questions.png');
	});
	
	//Rates Page
	$j('#rates .theRates').hide();
	$j('#rates .theRates:first').show();
	$j('#rates .showMe').show();
	$j('#rates h2:first').addClass('open');
	$j('#rates h2').click( function(){
		if( $j(this).hasClass('open') ){
			$j(this).removeClass('open').next().slideUp();
		}
		else{
			$j(this).addClass('open').next().slideDown();
		}
	});
	
	//eBanking & Japanese Portal
	if( $j('#productTabs').length > 0 ){
		//eBanking
		$j('#productTabs dt:contains("Internet")').addClass('onlineBanking');
		$j('#productTabs dt:contains("Bill")').addClass('billPay');
		$j('#productTabs dt:contains("Transfers")').addClass('bankToBank');
		$j('#productTabs dt:contains("Scanner")').addClass('scanner');
		$j('#productTabs dt:contains("Finance")').addClass('financeCenter');
		
		//JP Portal
		$j('#hawaiian dt:eq(0)').addClass('eBankingDirect');
		$j('#hawaiian dt:eq(1)').addClass('checking');
		$j('#hawaiian dt:eq(2)').addClass('savings');
		$j('#hawaiian dt:eq(3)').addClass('loans');
		$j('#foreign dt:eq(0)').addClass('save');
		$j('#foreign dt:eq(1)').addClass('use');
		$j('#foreign dt:eq(2)').addClass('other');
		$j('#foreign dt:eq(3)').addClass('faqs');
		
		
		var tab = param('ebankingtab');
		if(tab != ""){
			$j('#productTabs dt').removeClass('selected');
			$j('#productTabs dd').hide();
			$j('#productTabs dt:contains("' + tab + '")').addClass('selected').next().show();
			$j('#productTabs').css('height', $j('#productTabs dt:contains("' + tab + '")').next().height() + 100);
		}
	}
	
	// Adds anchors to H2's in tabs
	if($j('#hawaiian').length) {
		$j('dd h2:eq(5)').each(function(){
			$j(this).attr('id','freeBusinessChecking');
		});
		$j('dd h2:eq(10)').each(function(){
			$j(this).attr('id','seniorChecking');
		});
		$j('dd h2:eq(14)').each(function(){
			$j(this).attr('id','eDirect');
		});
		
		// Looks at the url on banner slides to determine what tab to open on target page.
		if( window.location.href.indexOf('tab') != -1 ){
            var theURL = window.location.href, 
            tabClass = theURL.substring(theURL.indexOf('tab')+4, theURL.indexOf('&'));
			if(theURL.indexOf('#') != -1){
				headingID = theURL.substring(theURL.indexOf('heading')+8, theURL.indexOf('#'));
			} else {
				headingID = theURL.substring(theURL.indexOf('heading')+8, theURL.length);
			};
            $j('dt').filter('.'+tabClass).click();
			
			// Adds anchor to end of url after correct tab is opened. 
			setTimeout(function(){
				window.location.href='#'+headingID;},1000);
			return false;
		}
	}
	
	//Nav
	navBG();
	
	//Home Nav
	navHomeBG();
	
	//Search Page
	$j('#froisearch-results li').live('click', function(){
        window.location=$j(this).find("a").attr("href");
	}).live('mouseover mouseout', function(event) {
		if (event.type == 'mouseover')
        	$j(this).addClass('over');
		else
			$j(this).removeClass('over');
	});
	
});

function confirmAlert(url){
			jConfirm(alertText, "Confirm", function(r) {
				if( r ){
					window.open(url);
				} else {
					return false;
			}
		});
		return false;
}

function confirmAlert2(url){
	if (!confirmAlert(url)) 
		return false; 
}

function productTabs(){
	if( $j('#productTabs').length > 0 ){
		var offset = 100;
		$j('#productTabs').addClass('on');
		$j('#productTabs dt').addClass('label');
		$j('#productTabs dt:eq(0)').addClass('selected');
		$j('#productTabs dd').addClass('pane');
		$j('#productTabs dd').css('position','absolute');
		$j('#productTabs dd').not("dd:eq(0)").hide();
		$j('#productTabs').css('height', $j('#productTabs dd:eq(0)').height() + offset);
		
		$j('#productTabs dt').click( function(){
			var holdThis = $j(this);
			if( !holdThis.hasClass('selected') ){
				$j('#productTabs dt').removeClass('selected');
				holdThis.addClass('selected');
				if(tabEffect == "slide"){
					$j('#productTabs dd').slideUp(slideSpeed);
					$j('#productTabs').animate({ height : holdThis.next().height() + offset }, slideSpeed, function(){
						holdThis.next().slideDown(slideSpeed);									 
					});
				}
				else{
					$j('#productTabs dd').fadeOut(slideSpeed);
					$j('#productTabs').animate({ height : holdThis.next().height() + offset }, slideSpeed, function(){
						holdThis.next().fadeIn(slideSpeed);									 
					});
				}
			}
		});
	}
}

function param( 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 results[1];
}

function rotate(){
	var next = $j('#homeFeatured dt.selected').next().next();
	$j('#homeFeatured dt.selected').removeClass('selected').next().hide();
	if( next.length == 0 ){
		$j('#homeFeatured dt:eq(0)').addClass('selected').next().fadeIn();
	}
	else{
		$j(next).addClass('selected').next().fadeIn();
	}
}

function navBG(){
	$j('#nav').css('position', 'relative').prepend('<div id="navBG">&nbsp;</div>');
	$j('#primary').css({'left':0,'top':0});
	var originalLeft = 0;
	var originalWidth = 0;
	
	if( $j('#primaryNav li.inPath').length > 0 ){
		originalWidth = $j('#nav li.inPath').width();
		var keepAdding = true;
		if( !$j('#primaryNav li:eq(0)').hasClass('inPath') ){
			$j('#primaryNav li').each( function(){
				if( $j(this).hasClass('inPath') ){
					keepAdding = false;
				}
				else if(keepAdding){
					originalLeft += $j(this).width();
				}
			});
		}
		$j('#navBG').animate({'left': originalLeft + 'px', 'width': originalWidth + 'px'});
	}
	else{
		$j('#navBG').css('display', 'none');
	}
	
	
	$j('#primaryNav li').hover( function(){
		var newWidth = $j(this).width();
		var newLeft = 0;
		
		var numLeft = $j(this).prevAll().length
		for( var i = 0; i < numLeft; i++ ){
			newLeft += $j('#primaryNav li:eq(' + i + ')').width();
		}

		$j('#navBG').stop().animate({'left': newLeft + 'px', 'width': newWidth + 'px'});
	}, function(){
		$j('#navBG').stop().animate({'left': originalLeft + 'px', 'width': originalWidth + 'px'});
	});
}

function navHomeBG(){
	$j('#nav.homeNav').css('position', 'relative').prepend('<div id="navBG" class="homeNavBG">&nbsp;</div>');
	$j('#primaryNav.home').css({'left':0,'top':0});
	var originalLeft = -900;
	var originalWidth = 0;
	
	if( $j('#primaryNav.home li.even').length > 0 ){
		originalWidth = $j('#nav.homeNav li.even').width();
		var keepAdding = true;
		if( !$j('#primaryNav.home li:eq(0)').hasClass('even') ){
			$j('#primaryNav.home li').each( function(){
				if( $j(this).hasClass('even') ){
					keepAdding = false;
				}
				else if(keepAdding){
					originalLeft += $j(this).width();
				}
			});
		}
		$j('#navBG.homeNavBG').animate({'left': originalLeft + 'px', 'width': originalWidth + 'px'});
	}
	else{
		$j('#navBG.homeNavBG').css('display', 'none');
	}
	
	
	$j('#primaryNav.home li').hover( function(){
		var newWidth = $j(this).width();
		var newLeft = 0;
		
		var numLeft = $j(this).prevAll().length
		for( var i = 0; i < numLeft; i++ ){
			newLeft += $j('#primaryNav.home li:eq(' + i + ')').width();
		}

		$j('#navBG.homeNavBG').stop().animate({'left': newLeft + 'px', 'width': newWidth + 'px'});
	}, function(){
		$j('#navBG.homeNavBG').stop().animate({'left': originalLeft + 'px', 'width': originalWidth + 'px'});
	});
}

// JS Banner code on Japanese Site\
(function($){
	// TODO: move variables into jQuery data object
    var currentBanner, banners, bannersNav, opts, cycleCounter;
	 
	 // TODO: Put functions into a functions object
    function preloadImgs(images){
        $(images).each(function(){
        	$('<img/>')[0].src = this;
        });
    }
    
	$.fn.homeBanners = function(options){
		opts = $.extend({}, $.fn.homeBanners.defaults, options);

		return this.each(function(i){
            var thisObj = $j(this);
            banners = thisObj.children('.banner');
            
            if( banners.length > 0 ){
                // create navigation for each banner
                var navUl = $j('<ul id="bannersNav"></ul>');
                for( var i = 1; i < banners.length+1; i++ ){
                    var navLi = $j('<li>' + i + '</li>') 
                    navLi.addClass('nth-child-' + i);
                    navLi.bind('click', function(){
                        if( ! $(this).hasClass('selected') ){
                           $(this).addClass('selected');
                           $j('#bannersNav li:eq('+(currentBanner-1)+')').removeClass('selected');
                           
                           $.fn.homeBanners.hideBanner(currentBanner-1);
                           $.fn.homeBanners.showBanner(this.innerHTML-1);
                           currentBanner = this.innerHTML;
							
                            // reset next banner timeOut()...
    						clearTimeout(cycleCounter);
    						if( opts.cycle ){
    							cycleCounter = setTimeout(function(){$.fn.homeBanners.cycleBanner();}, opts.cycleSpeed);
    						}	
                        }
                    });
                    navUl.append(navLi);
                }
                
                // pre-loading stufff
                $j(window).load(function(){ preloadImgs(opts.preloads) });
                // set the backgrounds
				// TODO: needs to filter by the selected banner, not the first
                banners.filter(':not(:first)').each(function(i){
                    this.style.backgroundImage = 'url(' + opts.preloads[i] + ')';
                });
                
                thisObj.prepend(navUl);
                bannersNav = navUl.children('li');
                currentBanner = (opts.selected % banners.length);
                banners.eq( (opts.selected-1) % banners.length ).addClass('selected');
                bannersNav.eq( (opts.selected-1) % banners.length ).addClass('selected');
                
                // will it cycle? If so, start the counter
                if( opts.cycle ){
                    cycleCounter = setTimeout(function(){$.fn.homeBanners.cycleBanner();}, opts.cycleSpeed);
                }
            } else {
                // there are no banners or something was set up wrong
            }
            
            // 
		});	// this.each()
	};	// fn.productTabs
	
	$.fn.homeBanners.defaults = {
		'transitionSpeed':700,
		'cycle':true,
		'cycleSpeed':7000,			
		'transition':'fade',	        
		'selected':1
	};
	
	// moves to the next banner
	$.fn.homeBanners.nextBanner = function(){
	    banners.eq(currentBanner-1).fadeOut(opts.transitionSpeed).removeClass('selected');
	    bannersNav.eq(currentBanner-1).removeClass('selected');
	    
	    // show next
	    banners.eq(currentBanner % banners.length).fadeIn(opts.transitionSpeed).addClass('selected');
	    bannersNav.eq(currentBanner % banners.length).addClass('selected');
	    currentBanner = (currentBanner % banners.length) + 1;
	}	//  nextBanner()
	
	// moves to the previous banner
	$.fn.homeBanners.previousBanner = function(){
		// not implemented
	}	// previousBanner()
	
	// display a specific banner
	$.fn.homeBanners.showBanner = function(which){
		banners.eq(which).fadeIn(opts.transitionSpeed).addClass('selected');
	}	// showBanner()
	
	// hide a specific banner
	$.fn.homeBanners.hideBanner = function(which){
		banners.eq(which).fadeOut(opts.transitionSpeed).removeClass('selected');
	}	// myFunction
	
	// Stop the cyclin
	$.fn.homeBanners.stopCycle = function(arg1, arg2){
		// not implemented
	}   // stopCycle()
	
	// Start the cyclin
	$.fn.homeBanners.startCycle = function(arg1){
		// not implemented
	}	// startCycle()
	
	// Go to the next banner in the cycle and reset the counter
	$.fn.homeBanners.cycleBanner = function(arg1){
	   $.fn.homeBanners.nextBanner();
	   cycleCounter = setTimeout( function(){$.fn.homeBanners.cycleBanner()}, opts.cycleSpeed );    // reset the counter
	}	// cycleBanner
})(jQuery); // homeBanners


