/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);



$().ready(function() {


	hideTooltips();
  improveInputs();
  createAjaxIndicator();
  autoresizeTextarea();
  createImageBuilder();

	$(window).unload(function() {
		 clearDefaultsOnExit()
	});

});

function hideTooltips() {

	$('.field-container .tooltip', 'form').hide();

}

function clearDefaultsOnExit() {

		inputs = $('input[title], textarea[title]');

		for (i = 0; i < inputs.length; i++) {

			if ( $(inputs[i]).attr('value') === $(inputs[i]).attr('title') )
				$(inputs[i]).attr('value','');
		}
}

function improveInputs() {

	$('input:not(input[type=checkbox]), textarea, select').focus( function() { showTooltip(this); } );
	$('input:not(input[type=checkbox]), textarea, select').blur( function() { hideTooltip(this); } );
	$('img.post-a-job-header').click(function() { scrollToForm(); } );
//	$('textarea#postajob_description').keyup(function() { checkDescription(this); } );
	$('input#register_username').focus(function() { $(this).select() });

}

function showTooltip(el) {


  elTagName = el.tagName.toLowerCase();
	el = $(el);

	 if ( $('.mform-builder').length )
	   $('.mform-builder').remove();

	$(el).parent().parent().addClass('highlighted');

	inputFormParent = $(el).parents().find('form');

	formWidth = inputFormParent.width();
	formPosX = inputFormParent.offset();

	tooltip = $(el).closest(".field-container").find('.tooltip');

	if ( $(tooltip).length )
	{
    $('.mform-builder').hide();

	 tooltipPosX = formPosX.left + formWidth + 22;
	 tooltipPosY = $(el).position().top;

	 if ( !$('img.tooltip-arrow','tooltip') )
		  $('<img class="tooltip-arrow" src="/images/tooltip-info-arrow.png" />').appendTo(tooltip);

	 $(tooltip).css({
		  'top': tooltipPosY,
	   	'left': tooltipPosX
	 }).show();


	}
}

function hideTooltip(el) {
	el = $(el);
	$(el).parent().parent().removeClass('highlighted');

	tooltip = $(el).closest(".field-container").find('.tooltip');
	$(tooltip).hide();
}

function checkDescription(el) {
	descriptionLength = $(el).val().length;
  $('p.warning').remove();
	if ( descriptionLength > 20 && descriptionLength < 50 ) {

		container = $(el).closest('.field-container');
		$(container).addClass('warning');
		if ( !$('p.warning').length ) {
			$('<p class="warning">The more details you provide the better feedback you receive</p>').appendTo($(el).parent());
		}
	}
	else //if (  descriptionLength > 50 )
		$(el).closest('.field-container').removeClass('warning');
}

function createAjaxIndicator() {
	$('<div id="ajaxIndicator>Loading...</div>"').appendTo('body');
	$('#ajaxIndicator').ajaxStart(function() {
    $(this).show();
  }).ajaxStop(function() {
    $(this).hide();
    $(".ajaxloading").hide();
  });
}

function autoresizeTextarea() {
  $('textarea#postajob_description').autoResize({

    animateDuration : 300,
    extraSpace : 30

  });
}

function createImageBuilder() {

  $('.mform-builder').hide().fadeIn('slow');

}

function scrollToForm() {

  el = $('.mform');
  //console.log('a');
  $.scrollTo(el,600);
  $('#postajob_title').focus();

}