/*
	Author: Talhah Mahomedy (tmahomedy@barrowsonline.com)
	Project: Barrows | Retail Marketing Specialists
	Function: Javascript for handling all general events

	copyright 2011 Barrows Design And Manufacture
 */

//Binding click events for iPad
var mouse_touch
if(navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPhone/i)){ mouse_touch = 'touchstart' }else{ mouse_touch = 'click'};

var center_scroll;
var category_number;
var category;
var banner_scroller = new Array();
var trail_object = {};
var background_color;

$(document).ready(function(){
    category_number = 1;
    category = 'home';
    background_color = '#FFF';
    // Add functions to trail object
    trail_object.home = function(){
        goto_location('home', 1, '#FFF');

        return true;
    }

    goto_location(category, category_number, background_color, 0);

    //Handle logo home select
    $('.logo').live(mouse_touch,function(){
        center_scroll.scrollTo(0,0);
    });

    //Handle menu item select
    $('.menu > li').live(mouse_touch,function(){
        var id = parseInt($(this).attr('id'));

        // Clear trail_object careers
        trail_object.career_office = '';
        trail_object.career_summary = '';

        // Add function to trail object
        trail_object.menu = function(){
            goto_menu_item(id);

            return true;
        }

        goto_menu_item(id);
    });

    //Handle Services Select
    $('.services').live('click', function(){
        var service = $(this).attr('id');
        category_number = service.replace('services_', '');
        category = 'services';
        background_color = '#303133';
        goto_location(category, category_number, background_color, 324);
    });

    //Handle Work Select
    $('.work, .work_img').live('click', function(){

        var work = $(this).attr('id');
        if($(this).hasClass('work_img')){
            work = $(this).next().attr('id');
        }

        category_number = work.replace('work_', '');
        category = 'work';
        background_color = '#303133';
        goto_location(category, category_number, background_color, 0);
    });

    //Handle Locations Select
    $('.locations, .location').live('click', function(){
		var location = '';

		if($(this).hasClass('location')){
			location = $(this).next().attr('id');
		}else{
			location = $(this).attr('id');
		}

        category_number = location.replace('locations_', '');
        category = 'locations'
        background_color = '#303133';
        goto_location(category, category_number, background_color, 0);
    });

    // Handle sub sections navigation close
    $('.dark_close, .light_close, .light_section_home, .dark_section_home').live(mouse_touch, function(){
        if(trail_object.home()){

            if(typeof(trail_object.menu) == 'function'){
                setTimeout(function(){
                    trail_object.menu()
                }, 500);
            }

            if(typeof(trail_object.career_office) == 'function'){
                /* setTimeout(function(){ */
                    trail_object.career_office()
                /* }, 1000); */
                if(typeof(trail_object.career_office) == 'function'){
                   /* setTimeout(function(){ */
                        trail_object.career_summary()
					/*}, 1250); */
                }
            }
        }
    });

    // Handle dark forward
    $('.dark_forward').live(mouse_touch, function(){
        category_number = parseInt(category_number) + 1;
        goto_location(category, category_number, background_color, 324);
    });


    // Handle dark back
    $('.dark_back').live(mouse_touch, function(){
        category_number = parseInt(category_number) - 1;
        goto_location(category, category_number, background_color, 324);
    });

    // Handle Scroll Banner Nav Back
    $('.scb_dark_back').live(mouse_touch, function(){
		var item_width = $(this).parent().data('obj')[1];
        var the_scroller = $(this).parent().data('obj')[0];
        the_scroller.scrollTo(-item_width, 0, 200, true);
    });
    // Handle Scroll Banner Nav Forward
    $('.scb_dark_forward').live(mouse_touch, function(){
		var item_width = $(this).parent().data('obj')[1];
        var the_scroller = $(this).parent().data('obj')[0];
        the_scroller.scrollTo(item_width, 0, 200, true);
    });

    //Handle sub services menu items
    $('.sub_services').live('click', function(){

        var services = $(this).attr('open_service');

        category_number = services.replace('services_', '');
        category = 'services';
        background_color = '#303133';
        goto_location(category, category_number, background_color, 324);
    });

    $('.insights').live(mouse_touch, function(){
        category_number = 1;
        category = 'services';
        background_color = '#303133';
        goto_location(category, category_number, background_color, 324);
    });
    $('.plan').live(mouse_touch, function(){
        category_number = 2;
        category = 'services';
        background_color = '#303133';
        goto_location(category, category_number, background_color, 324);
    });
    $('.design').live(mouse_touch, function(){
        category_number = 3;
        category = 'services';
        background_color = '#303133';
        goto_location(category, category_number, background_color, 324);
    });
    $('.produce').live(mouse_touch, function(){
        category_number = 4;
        category = 'services';
        background_color = '#303133';
        goto_location(category, category_number, background_color, 324);
    });
    $('.execute').live(mouse_touch, function(){
        category_number = 5;
        category = 'services';
        background_color = '#303133';
        goto_location(category, category_number, background_color, 324);
    });

});

// Initialise center scroller
function init_center_scroller(){
	pane = $('.center_container');
	pane.jScrollPane({
		animateScroll: true
	});
	center_scroll = pane.data('jsp');
}

// Go to a selected menu item based on ID passed
function goto_menu_item(id){
	var element_position = $('#section_'+id).position();
	var yPos = element_position.top + 55;

	center_scroll.scrollTo(0,yPos);

}

/* 	Go to a selected location based on category and number ie.
	to get to "services_1" you would pass ('services', 1)
*/
function goto_location(category, category_number, background_color, item_width){
    var location = category+'/'+category+'_'+category_number+'.html';
    var on_complete = '';

    // Show loading
    show_loading('.main_container');

    if(category == 'home'){
        on_complete = function(){
            // Initialize Slideshow for home page
            initialize_slide_show();

			// Initialise the jScrollPane
			init_center_scroller();

			//Initialise the careers area
            $.ajaxQueue({
				url: 'include/content/careers/careers_ajax.php?action=get_career_type',
                async: true,
                dataType: "html",
                success: function(data){
                    $('.career_type_holder').html(data);
                },
				complete: function(){
					$('.careers_link').trigger(mouse_touch);
					get_all_careers();
				}
            });

            // Change backgroundColor of page depending on chosen section
            $('body').css('backgroundColor', background_color);
        }
    }else if(category == 'quotes'){
        on_complete = function(){
            //get qoutes images
            $.ajaxQueue({
                url: 'include/content/quotes/quotes_ajax.php',
                async: true,
                type : 'GET',
                data: {
                    action : 'get_quotes_images'
                },
                dataType: "html",
                success: function(data){
                    $('.dark_banner_scroller').html(data);
                },
                complete: function(){
                    init_banner_scroller(item_width, true);
                }
            });

            // Change backgroundColor of page depending on chosen section
            $('body').css('backgroundColor', background_color);
        }
    }else if(category == 'books'){
		on_complete = function(){
            // Get the books thumbs
            $.ajaxQueue({
				url: 'include/content/books/books_ajax.php?action=get_books_thumb',
                async: true,
                dataType: "html",
                success: function(data){
                    $('.light_holder').html(data);
                }
            });

            // Change backgroundColor of page depending on chosen section
            $('body').css('backgroundColor', background_color);
        }
	}else if(category == 'people'){
		on_complete = function(){
            // Get the people thumbs
            $.ajaxQueue({
				url: 'include/content/people/people_ajax.php?action=get_people_thumb',
                async: true,
                dataType: "html",
                success: function(data){
                    $('.light_holder').html(data);
                }
            });

            // Change backgroundColor of page depending on chosen section
            $('body').css('backgroundColor', background_color);
        }
	}else{
        //Initialise banner scroller for all matched elements
        on_complete = function(){
            init_banner_scroller(item_width, false);

            // Change backgroundColor of page depending on chosen section
            $('body').css('backgroundColor', background_color);
        }
    }

    //Get Ajax and handle
    $.ajaxQueue({
		url: 'include/content/'+location+'?cache='+new Date().getTime(),
		async: true,
		dataType: "html",
		success: function(data){
			$('.main_container').html(data);
		},
		complete: on_complete
    });

}

// Initialise iSCroll on all matched elements on screen
function init_banner_scroller(item_width, snap){
    $('.dark_banner .dark_banner_scroller').each(function(i){
        var scroll_banner = $(this);
        var scroll_banner_width = 0;
        var scroll_banner_nav;
        var scroll_banner_spacer = (snap)? 0 : 10;

        scroll_banner.children().each(function(){
            scroll_banner_width = scroll_banner_width + $(this).width() + scroll_banner_spacer;
        });

        scroll_banner.width(scroll_banner_width+'px');

        banner_scroller[i] = new iScroll('dark_banner_'+i, {
            snap: snap,
            momentum: true,
            hScrollbar: false,
            vScrollbar: false
        });

        scroll_banner_nav = '<div class="dark_banner_scroller_nav" id="nav_'+i+'"><div class="scb_dark_back"></div><div class="scb_dark_forward"></div></div>';
        $('#dark_banner_'+i).append(scroll_banner_nav);
        $('#nav_'+i+'.dark_banner_scroller_nav').data('obj', [banner_scroller[i], item_width]);

    });
}

/*
function close_sub_container(){
	$('.sub_container').fadeOut('fast');
}
*/

// Initialise the homepage slideshow
function initialize_slide_show(){
    var scroller = $('.center_scroll');
    scroller.css('height',scroller.height()+600+'px');
    var slide_count = $('.slide_show').children().size();
    var slides = new Array();
    var center_div = $('.slide_show');
    var x = 0;

    // Build the indicator display
    //build_indicator(slide_count);

    center_div.children().each(function(){
        slides.push(this);
    });

    //Run slide show on page load
    run_slideshow();

    function run_slideshow() {
        $(slides[x]).animate({ //Animate Slide
            'right' : 0
        },'slow', 'easeInOutExpo',function(){
            setTimeout(function(){
                // Send slide to left
                $(slides[x]).animate({
                    'right' : 1004
                }, 'normal', 'easeInExpo', function(){

                    // Reset to original position
                    $(slides[x]).css('right', '-1024px');

                    // Increment x
                    x ++;
                    x = (x >= slide_count)? 0 : x;

                    run_slideshow();
                /*
					$('.indicator li').removeClass("active");
					$('.indicator li:nth-child(' + (x+1) + ')').addClass("active");
         */
                });
            }, 5000);

        });
    }
}

//Calculate the product tour scroll child count
function build_indicator(i){
    var indicator = '';
    indicator += '<ul class="indicator">';

    // build indicators based on slide_count
    for(x=1; x<=i; x++){
        if(x == 1){
            indicator += '	<li class="active"></li>';
        }else{
            indicator += '	<li></li>';
        }
    }

    indicator += '</ul>';

    $('.indicator_holder').html(indicator);

}

// Show the loading animation when moving between pages
function show_loading(e){
    var msg = 'Loading';

    // Attach loading div
    //$(e).append('<div class="loading_container"><div class="loading_indicator"></div><br><div class="loading_text">' + msg + '</div></div>');
	$(e).append('<div class="loading_container"><div class="loading_indicator"></div><br><div class="loading_text">' + msg + '</div></div>');

}
