jQuery(document).ready(function($) {

	$.ajaxSetup ({
		cache: false
	});

    var $menu = $('#projects_sub');
    var menuTimeout = {};
    var $id;
    $menu.hide();

    $('form').bind('submit',function() { processForm(); return false; });

    $('#filters li').each(function(index) {

        $(this).mouseenter(function() {
            $($id).removeClass('subon');
            $id = $(this);
            if (menuTimeout[$id]) {
                clearTimeout(menuTimeout[$id]);
                menuTimeout[$id] = undefined;
            }
            $menu.hide();
            $(this).addClass('subon');

            $menu.load('/projects/' + $(this).attr('id'), function(){ $menu.fadeIn(200) });

        }).mouseleave(function (event) {
            menuTimeout[$id] = setTimeout(function () {
                $menu.fadeOut('slow');
                $id.removeClass('subon');
                }, 150);
        });
    });
    $menu.mouseenter(function (event) {
        if (menuTimeout[$id]) {
            clearTimeout(menuTimeout[$id]);
            menuTimeout[$id] = undefined;
        }
    }).mouseleave(function (event) {
        //start another time when the mouse leaves the menu
        menuTimeout[$id] = setTimeout(function () {
            $menu.fadeOut('slow');
            $id.removeClass('subon');
            }, 150);
    });

    if($('#teamlinks')){
        var sel;
        $('#teamlinks li').each(function(index){
            var item = $(this);
            item.click(function(event){
                if(sel) sel.removeClass('selected');
                $("#teaminner").fadeOut(300, function(){
                $("#teaminner").load(item.attr('name'), function(){
                    $(this).fadeIn(400);
                    sel = item;
                    });
                });
                item.addClass('selected');
                $('#teamlinks').parent().removeClass('teambg');
				$('#navigation').css({display:'block'});
            });
        });

        $('#next').click(function(event){
            var next = sel.next();
            if(next.length == 0)
            {
                next = $('#teamlinks li').first();
            }
            sel.removeClass('selected');
            $("#teaminner").fadeOut(300, function(){
            $(this).load(next.attr('name'), function(){
                $(this).fadeIn(400);
                sel = next;
                });
            });
            next.addClass('selected');
        });
        $('#prev').click(function(event){
            var prev = sel.prev();
            if(prev.length == 0)
            {
                prev = $('#teamlinks li').last();
            }
            sel.removeClass('selected');
            $("#teaminner").fadeOut(300, function(){
            $(this).load(prev.attr('name'), function(){
                $(this).fadeIn(400);
                sel = prev;
                });
             });
            prev.addClass('selected');
        });
    }

	if($('.portintro'))
	{
		$('.portintro li').each(function(index){
            var item = $(this);
            item.click(function(event){
                window.location.href = item.attr('title');
            });
        });
	}

	if ($('.scrollable')) {
		if (location.hash) {
			var hash = location.hash.replace(/\+/g, '_').replace('#', '');
			//$('a[data-view='+hash+']').click();
			$('.scrollable').scrollTop($('.scrollable').scrollTop() + $('div[data-view='+hash+']').position().top - 70);
		}
	}

    if($('#servicelist')){
        var sel;
        $('#servicelist li').each(function(index){
            var item = $(this);
            item.mouseover(function(event){
                 $("#servicedesc").html($('#c'+item.attr('name')).html());
                 $('#arrows').css({'display':'block','top':item.position().top});
            });
            item.mouseout(function(event){
                 $("#servicedesc").html('');
                 $('#arrows').css({'display':'none'});
            });
        });
    }

    if($('.projectlisting li')){

		$parts = (window.location.pathname).split('/');

        var sel;
        $('.projectlisting li').each(function(index) {

            var item = $(this);
			if($parts.length > 2)
			{
				if(item.attr('title') == '/projects/detail/'+$parts[4])
				{
					sel = item;
				}

			}

            item.click(function(event){
                sel.removeClass('selected');
                $("#project_details").fadeOut(300, function(){
                    $(this).load(item.attr('title'), function(){
                    $(this).fadeIn(400);
                    sel = item;
                    });
                });
                item.addClass('selected');
            });
        });


		if(sel == undefined)
		{
			sel = $('.projectlisting li').first();
		}

        sel.addClass('selected');
        $("#project_details").load(sel.attr('title'));

        $('#next').click(function(event){
            var next = sel.next();
            if(next.length == 0)
            {
                next = $('.projectlisting li').first();
            }
            sel.removeClass('selected');
            $("#project_details").fadeOut(300, function(){
            $(this).load(next.attr('title'), function(){
                $(this).fadeIn(400);
                sel = next;
                });
            });
            next.addClass('selected');
        });
        $('#prev').click(function(event){
            var prev = sel.prev();
            if(prev.length == 0)
            {
                prev = $('.projectlisting li').last();
            }
            sel.removeClass('selected');
            $("#project_details").fadeOut(300, function(){
            $(this).load(prev.attr('title'), function(){
                $(this).fadeIn(400);
                sel = prev;
                });
             });
            prev.addClass('selected');
        });

    }
});

function processForm()
{
	var name = $('#name').val();
	if (name == "") {
		$('#name').focus().addClass('error');
		return false;
	} else { $('#name').removeClass('error'); }
	var email = $('#email').val();
	if (email == '' || !isValidEmailAddress(email)) {
		$('#email').focus().addClass('error');
		return false;
	} else { $('#email').removeClass('error'); }
    var email = $('#subject').val();
	if (email == '') {
		$('#subject').focus().addClass('error');
		return false;
	} else { $('#subject').removeClass('error'); }
	var message = $('#query').val();
	if (message == '') {
		$('#query').focus().addClass('error');
		return false;
	} else { $('#query').removeClass('error'); }

	$.ajax({
		type: 'POST',
		url: '/contactform',
		data: $('form').serialize(),
		dataType: "text",
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/j-son;charset=UTF-8");
			}
		},
		success: function(data) {
			$('#contactform').html('<div id="msg"></div>').fadeIn('slow');
			$('#msg').html('<h3>Thank You!</h3>').append('<p>'+ data + '</p>').fadeIn('slow');
			$('#name').val('');
			$('#email').val('');
            $('#subject').val('');
			$('#query').val('');
		},
		error: function(data, sts, e){
			$('#contactform').html('<div id="msg"></div>').fadeIn('slow');
			$('#msg').html('<h3>Thank You!</h3>').append('<p>'+ sts + '<br>' + e + '</p>').fadeIn('slow');
		}
	});
    return false;
}

function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
};

