$('html').addClass('js');

  function word_count(field, count) {
      var number = 0;
      var matches = $(field).val().match(/\b/g);
      if(matches) {
          number = matches.length/2;
      }
      if ( $(field).hasClass("max-50"))number = 50-number;
      if ( $(field).hasClass("max-200"))number = 200-number;
      $(count).text( number + ' word' + (number != 1 ? 's' : '') + ' approx remaining');

  }
  
$(document).bind('ready', function(){

    /* --------------------
    Social Sharing
    -----------------------*/
    $('a.share').bind('click', function(){
      web2 = $(this).siblings('.web2');
      if ($(web2).hasClass('shown') ){
        $(web2).fadeOut('slow');
        $(web2).removeClass('shown');
      } else {
        $(web2).fadeIn('slow');
        $(web2).addClass('shown');
      }
      return false;
    });	

    $('.word_count').each(function() {
        var input = '#' + this.id;
        var count = input + '_count';
        $(count).show();
        word_count(input, count);
        $(this).keyup(function() { word_count(input, count) });
    });
	
  $('#f-location-all').bind('click', function(){
    $('input.supplier_locations').attr('checked', $(this).is(':checked') );
  });

  $('#f-function-all').bind('click', function(){
    $('input.supplier_functions').attr('checked', $(this).is(':checked') );
  });
  
  // back / save buttons
  $('#submission .next, #submission .back').bind('click', function(){
    if ($('#record_saved').length == 0){
      var r=confirm("Are you sure you wish to continue without saving this record?");
      if (r!=true){
        return false;
      }
    }
  });


  
	externalLinks();

	$('#tool-bar li.main').toolBar();
	$('#sub-nav li.main').mainSubNav();

	$('.nav li')
		.bind({
			mouseenter: function(){
				if(!$('a:first', $(this)).is('.selected')) $(this).closest('li').prev('li').toggleClass('previous');
			},
			mouseleave: function(){
				if(!$('a:first', $(this)).is('.selected')) $(this).closest('li').prev('li').toggleClass('previous');
			}
		})
		.find('a.selected').closest('li').prev().addClass('previous');
	$('ul.tabs').tabbedContent();
	$('ul.droplist').slideContent();

	$('form.calculator').each(function(){
		var o = $(this);
		
		var v = {
			unit_cost: $('input#f_unit_cost', o),
			annual_target_turnover: $('input#f_annual_target_turnover', o),
			arrangements_to_meetings: $('input#f_arrangements_to_meetings', o),
			meetings_to_business_won: $('input#f_meetings_to_business_won', o),
			total_sales_needed_per_year: $('input#f_total_sales_needed_per_year', o),
			total_sales_needed_per_month: $('input#f_total_sales_needed_per_month', o),
			total_meetings_needed_per_year: $('input#f_total_meetings_needed_per_year', o),
			total_meetings_needed_per_week: $('input#f_total_meetings_needed_per_week', o),
			total_sales_calls_needed_per_year: $('input#f_total_sales_calls_needed_per_year', o),
			total_sales_calls_needed_per_week: $('input#f_total_sales_calls_needed_per_week', o),
			total_sales_calls_needed_per_day: $('input#f_total_sales_calls_needed_per_day', o)
		};
		
		$('input', o).bind('change', function(){
			o.run_calculations();
		});
		
		o.run_calculations = function(){
			// Total Sales Needed per Year
			v.total_sales_needed_per_year.val( Math.round( v.annual_target_turnover.val() / v.unit_cost.val() ) );

			// Total Sales Needed per Month
			v.total_sales_needed_per_month.val( Math.round( v.total_sales_needed_per_year.val() / 12 ) );


			// Total Number of Face to Face Meetings per Year
			v.total_meetings_needed_per_year.val( Math.round( ( v.total_sales_needed_per_year.val() * 100 ) / v.meetings_to_business_won.val() ) );

			// Total Number of Face to Face Meetings per Week
			v.total_meetings_needed_per_week.val( Math.round( v.total_meetings_needed_per_year.val() / 52 ) );


			// Total Number of Telephone Calls per Year
			v.total_sales_calls_needed_per_year.val( Math.round( ( v.total_meetings_needed_per_year.val() * 100 ) / v.total_sales_needed_per_year.val() ) );

			// Total Number of Telephone Calls per Week
			v.total_sales_calls_needed_per_week.val( Math.round( v.total_sales_calls_needed_per_year.val() / 52 ) );

			// Total Number of Telephone Calls per Day
			v.total_sales_calls_needed_per_day.val( Math.round( v.total_sales_calls_needed_per_week.val() / 5 ) );
		};
		
		o.run_calculations();
		
	});

});

$.fn.slideContent = function(){
	$(this).each(function(){
		var o = $(this);
		
		$('a.expand', o).bind('click', function(){
			if(o.is('.more')){
				o.removeClass('more').addClass('less');
			}else{
				o.removeClass('less').addClass('more');
			}
			
			return false;
		});
		
	});
};

$.fn.homepageBusinessPages = function(){
	$(this).each(function(){
		
		var o = $(this).parent();

		var v = {
			header: $(this),
			header_next: $('li.next a', $(this)),
			header_prev: $('li.prev a', $(this)),
			main_links: $('a.main', o),
			sub_sections: $('.sub-sections-container', o)
		};

		v.header_prev.bind('click', function(){
			var selected_li = $('.selected', v.header).removeClass('selected').parent();
			var new_current = selected_li.prev();
			$('a', new_current).addClass('selected').trigger('click');
			return false;
		});
		
		v.header_next.bind('click', function(){
			var selected_li = $('.selected', v.header).removeClass('selected').parent();
			var new_current = selected_li.next();
			$('a', new_current).addClass('selected').trigger('click');
			return false;
		});
		
		v.header_check_links = function(){
			var selected_li = $('.selected', v.header).parent();

			if(!selected_li.next().is('li.business-page')){
				v.header_next.css('display', 'none');
			}else{
				v.header_next.css('display', 'block');
			}

			if(!selected_li.prev().is('li.business-page')){
				v.header_prev.css('display', 'none');
			}else{
				v.header_prev.css('display', 'block');
			}

			return false;
		};

		v.main_links.bind('click', function(){
			var target = $(this);
			v.main_links.removeClass('selected');
			v.sub_sections.css('display', 'none');
			$('.'+target.attr('id'), o).css('display', 'block');
			target.addClass('selected');
			v.header_check_links();
			return false;
		});
		
		v.header_check_links();

		$('div.sub-sections-container', o).each(function(){
			
			var container = $(this);
			var prev = $('a.prev', container);
			var next = $('a.next', container);
			
			prev.bind('click', function(){
				var current_first = $('.active:first', container);
				var current_last = $('.active:last', container);
				current_last.removeClass('active');
				current_first.prev().addClass('active');
				container.container_check_links();
				return false;
			});
			
			next.bind('click', function(){
				var current_first = $('.active:first', container);
				var current_last = $('.active:last', container);
				current_first.removeClass('active');
				current_last.next().addClass('active');
				container.container_check_links();
				return false;
			});
			
			container.container_check_links = function(){
				var current_first = $('.active:first', container);
				var current_last = $('.active:last', container);
	
				if(!current_last.next().is('li.business-subpage')){
					next.css('display', 'none');
				}else{
					next.css('display', 'block');
				}

				if(!current_first.prev().is('li.business-subpage')){
					prev.css('display', 'none');
				}else{
					prev.css('display', 'block');
				}

				return false;
			};
			
			container.container_check_links();

		});

	});
};

$.fn.toolBar = function(){
	$(this).each(function(){

		var o = $(this);

		o.bind({
			mouseenter: function(){
				o.addClass('selected');
			},
			mouseleave: function(){
				o.removeClass('selected');
			}
		});
		
	});
};
$.fn.mainSubNav = function(){
	$(this).each(function(){
		var o = $(this);
		var v = {
			main_link: $('a:first', o),
			subpages: $('ul', o)
		};
		
		$('.paging a.prev', v.subpages).css('display', 'none');

		if($('li:not(.paging)', v.subpages).length <= 3){
			$('.paging a.next', v.subpages).css('display', 'none');
		}

		$('.paging a', v.subpages).bind('click', function(){
			var target = $(this);
			if(target.is('.prev')){
				var start = $('li.active:first', v.subpages).removeClass('first').prev().addClass('first').addClass('active');
				if(!start.is('li.paging')){
					var end = $('li.active:last', v.subpages).removeClass('active').prev();
					start.addClass('active');
					if(!start.prev().is('li:not(.paging)')){
						$('.paging a.prev', v.subpages).css('display', 'none');
					}
					$('.paging a.next', v.subpages).css('display', 'block');
				}
			}else if(target.is('.next')){
				var end = $('li.active:last', v.subpages).next();
				if(!end.is('li.paging')){
					var start = $('li.active:first', v.subpages).removeClass('active').removeClass('first').next().addClass('first');
					end.addClass('active');
					if(!end.next().is('li')){
						$('.paging a.next', v.subpages).css('display', 'none');
					}
					$('.paging a.prev', v.subpages).css('display', 'block');
				}
			}
			return false;
		});

		o.bind({
			mouseenter: function(){
				v.main_link.addClass('selected');
				v.subpages.css('display', 'block');
			},
			mouseleave: function(){
				v.main_link.removeClass('selected');
				v.subpages.css('display', 'none');
			}
		});

	});
}
$.fn.tabbedContent = function(){
	$(this).each(function(){
		var o = $(this).parent();
		var v = {
			tabs: $(this)
		};

		$('a', v.tabs).bind('click', function(){
			var target = $(this);
			if(target.is('.selected') === false){
				$('a', v.tabs).removeClass('selected');
				target.addClass('selected');
				var li = target.parent();
				$('.container:visible', o).fadeOut(200, function(){
					$('.'+li.attr('class'), o).fadeIn(200);
				});
			}
			return false;
		});

	});
};
function externalLinks(){
	var _a = document.getElementsByTagName('a');
	var _c = window.location.href.split('/')[2];
	for(var i=0;i<_a.length;i++){
		// Links
		if(_a[i].href.indexOf(_c)==-1&&_a[i].href.indexOf('http')==0&&_a[i].href.length>0){
			_a[i].setAttribute('target','_blank');		// target
			_a[i].className +=' ext';					// class to add icon
			if(_a[i].title.length>0){
				//_a[i].title+=" ";
			}else{
				_a[i].title=_a[i].href;
			}
			_a[i].title+=' (Opens in a new window)';	// title
		}
		// PDF files
		if(_a[i].href.indexOf('.pdf')>0&& _a[i].href.length>0){
			_a[i].setAttribute('target','_blank');		// target
			_a[i].className +=' pdf';					// class to add icon
			//if(_a[i].title.length>0) _a[i].title+=' ';
			_a[i].title+=' (PDF Document)';				// title
		}
		if(_a[i].href=='#') _a[i].href='javascript:void(0);';
	}
}

/*----------------------
Javascript form elements
---------------------------------------*/

$(function(){
	//------ Dropdown replacements 
	var dList = $('form select.dropdown').next();
	var showList = $('#content .col-wrap ul.show-list');

	dList.each(function(){
		$(this).find('li:first').append('<ul class="off"></ul>');
	});
	

	dList.prev().each(function(i){
		var context = $(this).find('option');
		context.each(function(x){
			if($(this).is(':selected')){
				context.eq(x).parent().next().find('li.selected a:first').text(context.eq(x).text());
			}
			context.eq(x).parent().next().find('ul').append('<li><a href="#">' + context.eq(x).text() + '</a></li>');
		});
	});
	
	function revealList(){
		var context = $(this),
			sub=context.parent().find('ul:first');
		if(sub.hasClass('off')){
			context.parent().css('zIndex', '9999')
			sub.hide().toggleClass('off').slideDown();
		}else{
			sub.slideUp(function(){
				context.parent().css('zIndex', '500')
				$(this).toggleClass('off');
			});
		}
		return false;
	}
	
	dList.find('li:first a:first').bind('click', revealList);
	showList.find('li:first a:first').bind('click', revealList);
	
	dList.find('ul li a').bind('click', function(e){
		var context=$(this);
		var select = context.parent().parent().parent().parent().prev();
		select.find('option[title="' + context.text() + '"]').attr('selected', 'selected');
		select.next().find('li:first a:first').text(context.text());
		if(select.next().hasClass('auto-click')){
			select.next().next().click();
		}
		context.parent().parent().slideUp(function(){
			$(this).addClass('off')
		});
		e.stopPropagation();
		return false;
	});
		
	
});


$(function(){
	
	var sectors=$('#questions.exp ul.sectors'),
	secLink=sectors.find('li a'),
	container=sectors.parent(),
	infoSec=$('#info-sector'),
	infoFunc=$('#info-function');
	
	infoSec.show();
	
	//------ Matrix sector switching */
	secLink.bind('click', function(){
		var context = $(this),
		prevSel=sectors.find('li a.selected').removeClass('selected');
		
		// On first click
		if(prevSel.length === 0){
			context.addClass('selected');
			$('#info-sector').fadeOut(function(){
				container.find(context.attr('href')).hide().removeClass('off').fadeIn(300);
				infoFunc.fadeIn(300);
			});
		}else{
			context.addClass('selected');
			container.find(prevSel.attr('href')).fadeOut(300, function(){
				container.find(context.attr('href')).hide().removeClass('off').fadeIn(300);
			});
			infoFunc.is(':visible') ? infoFunc.fadeOut(300) : null;
		}
		return false;
	});
	
	
	//------ Matrix Radio replacements 
	$('#questions.exp input[type="radio"][checked="checked"]').each(function(){
		var anc = $(this).parent().parent().find('ul li.' + $(this).attr('title') + ' a'),
		li=anc.parent(),
		lis=li.parent().find('li'),
		ul=li.parent(),
		o={
			context:anc,
			li:li,
			lis:lis,
			ul:ul	
		};
		getSet(o, 'set')
	});
	
	$('#questions.exp div.experience div.exp li a').bind('mouseover', function(){
		var context = $(this),
		li=context.parent(),
		lis=li.parent().find('li'),
		ul=li.parent(),
		o={
			context:context,
			li:li,
			lis:lis,
			ul:ul
		};
		ul.find('li a.over').removeClass('over');
		
		getSet(o, 'over');
		
	}).bind('mouseout', function(){
		$(this).parent().parent().find('li a.over').removeClass('over');
	}).bind('click', function(){
		var context = $(this),
		li=context.parent(),
		lis=li.parent().find('li'),
		ul=li.parent(),		
		o={
			context:context,
			li:li,
			lis:lis,
			ul:ul
		};
		ul.find('li a.set').removeClass('set');
		
		getSet(o, 'set');
		
		context.addClass('set');
		ul.parent().find('label input[title="' + context.text() + '"]').click();
		return false;
	});
	
	//----- set state of replacements
	function getSet(o, state){
		if(o.li.hasClass('no')){
			o.context.addClass(state);
		}else if(o.li.hasClass('some')){
			o.lis.slice(0, 2).find('a').addClass(state);
		}else if(o.li.hasClass('very')){
			o.lis.slice(0, 3).find('a').addClass(state);
		}		
	}	
});



/*-------------
Tiny labels 
------------------------*/
$(function(){
	var label = $('form label.tiny, form p.tiny').css('display', 'none');
	label.each(function(){
		var lbl=$(this), def=lbl.next();
		lbl.next().bind('focus', function(){
			var txt=$(this);
			txt.val() === lbl.text() ? txt.val('') : null;
		});
		lbl.next().bind('blur', function(){
			var txt=$(this); 
			txt.val() === lbl.text() || txt.val() === '' ? txt.val(lbl.text()) : null;
		});
		def.val() === lbl.text() || def.val() === '' ? def.val(lbl.text()) : null;
	});
});

	






