﻿// JavaScript Document
var $corpMenu = jQuery.noConflict();
var $cm_rounding = 'round 4px';
var $cm_roundingID = '#polaris-menu';
var $cm_searchAnimationSpeed = 200;
var $cm_menuAnimationSpeed = 300; // 300

var $cm_menuImageLoad = false;

$corpMenu(document).ready(corpMenu_READY);

function corpMenu_READY(){
	$corpMenu( $cm_roundingID ).corner( $cm_rounding );
	corpMenu_MAN_DOM();
	corpMenu_BIND_EVENTS();
	//$corpMenu( '#polaris-menu > ul > li:first-child' ).trigger( 'mouseout' );	
}

function corpMenu_MAN_DOM(){
	$corpMenu( '#polaris-menu > ul > li' ).each( function(){
		$submenu_width = $corpMenu( ' > ul', this ).width();
		$menu_width = $corpMenu( this ).width();
		
		if( $menu_width > $submenu_width )
			$submenu_width = $menu_width - 3;
			
		$corpMenu( ' > ul', this ).css( 'width', $submenu_width + 'px' ); 
		$corpMenu( this ).css( 'width', $menu_width + 'px' ); 
	});
	
	$submenu_width = $corpMenu( ' > div', this ).width();
	$menu_width = $corpMenu( this ).width();
	
	if( $menu_width > $submenu_width )
		$submenu_width = $menu_width - 3;
		
	$corpMenu( ' > div', this ).css( 'width', $submenu_width + 'px' ); 
	$corpMenu( this ).css( 'width', $menu_width + 'px' ); 
}

function corpMenu_BIND_EVENTS(){
	var config = {    
		 over: corpMenu_regular_menu_hover_in, // function = onMouseOver callback (REQUIRED)    
		 timeout: 200, // number = milliseconds delay before onMouseOut    
		 out: corpMenu_regular_menu_hover_out, // function = onMouseOut callback (REQUIRED)    
		 sensitivity: 10,
		 interval: 100 	
	};
	
	$corpMenu( '.main-menu > ul > li' ).hoverIntent( config );

	$corpMenu( '.vehicle-menu > ul > li' ).hover( corpMenu_regular_menu_hover_in, corpMenu_regular_menu_hover_out);
	
	if( corpMenu_is_mobile_device() ){
		$corpMenu( '.vehicle-menu > ul > li' ).click( corpMenu_regular_menu_hover_in );
		$corpMenu( '.vehicle-menu > ul > li' ).blur( corpMenu_regular_menu_hover_out );	
	}

	$corpMenu( '#polaris-search-click' ).click( corpMenu_search_button_click );	
}

function corpMenu_search_button_click(){
	if( $corpMenu( '#polaris-search' ).hasClass( 'open' ) )
		corpMenu_search_role_up();
	else{
		corpMenu_search_role_down();
	}
}

function corpMenu_search_button_mouse_out(){
	if( !$corpMenu('#polaris-search-input > input').is(":focus") && !$corpMenu('#polaris-search-button > span > a').is(":focus") && $corpMenu( '#polaris-search' ).hasClass( 'open' ) )
		corpMenu_search_role_up();
}

function corpMenu_search_role_up(){
	$corpMenu( '#polaris-menu' ).parent().unbind( 'mousemove' );

	$corpMenu( '#polaris-search-box' ).slideUp( $cm_searchAnimationSpeed, function(){
		$corpMenu( '#polaris-search' ).removeClass( 'open' );	
		$corpMenu( '#polaris-search-input > input' ).blur(); 
	});	
}

function corpMenu_search_role_down(){
	$corpMenu( '#polaris-search' ).addClass( 'open' );
	$corpMenu( '#polaris-search-box' ).slideDown( $cm_searchAnimationSpeed, function(){
		
		if( !corpMenu_check_if_Android() )
			$corpMenu( '#polaris-menu' ).parent().bind('mousemove', corpMenu_search_button_mouse_out );
			
		$corpMenu( '#polaris-search-input > input' ).focus();
	});
}

function corpMenu_regular_menu_hover_in(){
	$this = $corpMenu(this);
	
	if( $this.hasClass( 'product-menu' ) && $this.parent().parent().hasClass( 'main-menu' ) ){
		$animationSpeed = $cm_menuAnimationSpeed;
		
		if( !$cm_menuImageLoad ){
			$corpMenu( ' > div > ul > li > ul > li > a > img,  > div > ul > li > a > img', $this ).each( function(){ 
				$corpMenu(this).attr( 'src', $corpMenu(this).attr( 'title' ) );
			});
			
			$corpMenu( '#pure-polaris > img' ).attr( 'src', $corpMenu( '#pure-polaris > img' ).attr( 'title' ) );
			$cm_menuImageLoad = true;
		}
	}
	else
		$animationSpeed = $cm_searchAnimationSpeed;
	
	if( $corpMenu(this).parent().parent().hasClass( 'vehicle-menu' ) )
		$animationSpeed = 0;
	
	
	if( !$corpMenu( ' > *:first-child', $corpMenu(this) ).hasClass( 'hover' ) ){
		$corpMenu( ' > *:first-child', $corpMenu(this) ).addClass( 'hover' );	
		$corpMenu( ' > ul, > div', $corpMenu(this) ).addClass( 'slide-down' ).slideDown( $animationSpeed, function(){
			$corpMenu(this).removeClass( 'slide-down' ).addClass('open');
		});
	}	
}

function corpMenu_regular_menu_hover_out(){
	$this = $corpMenu(this);
	if( $this.hasClass( 'product-menu' ) )
		$animationSpeed = $cm_menuAnimationSpeed;
	else
		$animationSpeed = $cm_searchAnimationSpeed;

	if( $corpMenu(this).parent().parent().hasClass( 'vehicle-menu' ) )
		$animationSpeed = 0;
			
	if( $corpMenu( ' > *:first-child', $corpMenu(this) ).hasClass( 'hover' ) && !$corpMenu( ' > *:first-child', $corpMenu(this) ).hasClass( 'transition' ) ){
		$corpMenu( ' > *:first-child', $corpMenu(this) ).addClass( 'transition' );	
		$corpMenu( ' > ul, > div', $corpMenu(this) ).addClass( 'slide-up' ).removeClass( 'open' ).slideUp( $animationSpeed, function(){
			$corpMenu( ' > *:first-child', $corpMenu(this).parent() ).removeClass( 'transition' ).removeClass( 'hover' );	
			$corpMenu(this).removeClass( 'slide-up' ).removeClass( 'open' );
		});	
	}
}

function corpMenu_is_mobile_device(){
	
	var $is_Android = navigator.userAgent.match(/Android/i);
	var $is_WebOS = navigator.userAgent.match(/webOS/i);
	var $is_iPhone = navigator.userAgent.match(/iPhone/i);
	var $is_iPod = navigator.userAgent.match(/iPod/i);
	var $is_iPad = navigator.userAgent.match(/iPad/i);
	
	var $is_mobile = false;
	
	if( $is_Android || $is_WebOS || $is_iPhone || $is_iPod || $is_iPad )
		$is_mobile = true;

	return $is_mobile;
}

function corpMenu_check_if_Android(){
	var $return = false;
	var $ua = navigator.userAgent.toLowerCase();
	var $isAndroid = $ua.indexOf("android") > -1;
	if($isAndroid) 
		$return = true;
	
	return $return;
}	
