/**
 * Compact labels plugin
 */
(function(jQuery){jQuery.fn.compactize=function(){return this.each(function(){var label=jQuery(this),input=jQuery('#'+label.attr('for'));input.focus(function(){label.hide();}).blur(function(){if(input.val()===''){label.show();}});window.setTimeout(function(){if(input.val()!==''){label.hide();}},50);});};})(jQuery);

/*
 * hrefID jQuery extention - returns a valid #hash string from link href attribute in Internet Explorer
 */
(function(jQuery){jQuery.fn.extend({hrefId:function(){return jQuery(this).attr('href').substr(jQuery(this).attr('href').indexOf('#'));}});})(jQuery);

/*
 * Scripts
 *
 */
jQuery(function(jQuery) {
 
	var Engine = {
		utils : {
			links : function(){
				jQuery('a[rel*=external]').click(function(e){
					e.preventDefault();
					window.open(jQuery(this).attr('href'));
				});
			},
			mails : function(){
				jQuery('a[href^=mailto:]').each(function(){
					var mail = jQuery(this).attr('href').replace('mailto:','');
					var replaced = mail.replace('/at/','@');
					jQuery(this).attr('href','mailto:'+replaced);
					if(jQuery(this).text() == mail) {
						jQuery(this).text(replaced);
					}
				});
			},
			forms : function(){
				jQuery('form em.help').each(function(){
					var id = jQuery(this).attr('html_for');
                                        if(id == null || id == '') id = jQuery(this).prev().attr('id');
					jQuery(this).attr('for',id);
					jQuery(this).click(function(){
						jQuery('#'+id).trigger('focus');
					});
					jQuery(this).compactize();
				});
				
				jQuery('.form-b .ctrl label, .search-form p label').compactize();
			}
		},
		enhancements : {
			help : function(){
				jQuery('.questions-a').each(function(){
					var qs = jQuery(this).find('.question');
					
					var _toggle = function(e){
						e.preventDefault();
						
						var isActive = jQuery(this).hasClass('open');

						qs.find('.answer').hide();
						qs.find('.toggle a').removeClass('open');
						
						if (isActive === false) {
							jQuery(this).parents('.question').find('.answer').show();
							jQuery(this).addClass('open');
						}
					};

					qs.each(function(){
						var toggler = jQuery('<p class="toggle"><a href="#">toggle visibility</a></p>');
						toggler.find('a').click(_toggle);
						jQuery(this).find('h3').after(toggler);
					});
					
				});								
			}
		}
	};

	Engine.utils.links();
	Engine.utils.mails();
	Engine.utils.forms();
	
	Engine.enhancements.help();
});