function expandable(elem, handle){
	var inputs = $('input, select, textarea',elem);
	var expander = $('<div class="willExpand">').append($('> *',elem).not(handle));
	var checkbox = $(':checkbox',handle);
	if ($(checkbox).attr('checked'))
		$(elem).addClass('expanded');
	$(handle).css('paddingLeft','0');
	if ($(elem).hasClass('expanded')){
		$(checkbox).attr('checked','checked');
	}
	else{
		//$(handle).addClass('expanded')
		$(expander).hide();
	}
	$(elem).append(expander);
	$(handle).addClass('expandable_handle');
	$(handle).wrapInner("<span />");
	$(handle).bind('click',function(e){
		expander.slideToggle("fast");
		$(elem).toggleClass('expanded');
		if ($(elem).hasClass('expanded')){
			$('.expandable').each(function(){
				if ($(this).attr('id') != $(elem).attr('id') && $(this).hasClass('expanded')) {
					$('> legend',this).click();
					}
				});
			$(checkbox).attr('checked',true);
		}
		else{
			$(inputs).val('').trigger('focusout');
			$(checkbox).attr('checked','');
		}
		if ((e.target.nodeName.toLowerCase())!='input')
			e.preventDefault();
	});
}

var haver = {
	start : function(){
		$('body').addClass('js');//to mark that JS is available
	},
	nav_decorations : function(){
		var element = $('<div>',{"class":"gradient sprites"});
		var border = $('<span>',{"class":"border sprites"});
//		$('#nav').append(element);
		$("#nav > ul >li:not(:last-child) > a").append(border);
	},
	contact_titles : function(){
		var for_titles = $('.for_title');
		$(for_titles).each(function(){
			var T = this;
			var input = $(T).next();
			var node = $('<p />',{'class':'title'}).text($(T).text());
			$(this).parent().css('position','relative').append(node);

			//focus input when title clicked
			$(node).click(function(){$(input).focus();});

			//hide when input not empty on load
			if ($(input).val()!=''){
				$(node).hide();
				}

			$(input).focusin(function(){
				if ($(input).val()=='')
					$(node).fadeTo(100,0.5);
			});

			$(input).focusout(function(){
				if ($(this).val()=='')
					$(node).fadeTo(100,1);
			});

			$(input).keyup(function(){
				if ($(this).val()!='')
					$(node).fadeOut(100);
				else
					$(node).fadeTo(100, 0.5);
			});
		});
	},
	contact_expandables : function(){
		$('.expandable').each(function(){new expandable($(this), $('> legend',this));});
	},
	databooks_expandables : function(){
		var nodes = $('#dataprofiles .profiles');
		$(nodes).each(function(){
			var T = this;
			var parent = $(T).parent();
			var node = $('<div />',{'class':'willExpand'});
			var handle = $('<a />',{'href':'#', 'class':'handle','text':'view profiles'});
			$(handle).toggle(
				function(){
					$(T).slideDown('slow');
					$(node).addClass('expanded');
					$(handle).text('hide profiles');
					return false;
				},
				function(){
					$(T).slideUp('slow');
					$(node).removeClass('expanded');
					$(handle).text('view profiles');
					return false;
				}
			);
			$(node).append(handle);
			$(node).prepend(T);
			$(parent).append(node);
		});
	},
	archivedb_expandables : function(){
		var nodes = $('#dataprofiles .profiles');
		$(nodes).each(function(){
			var T = this;
			var parent = $(T).parent();
			var node = $('<div />',{'class':'willExpand'});
			var handle = $('<a />',{'href':'#', 'class':'handle','text':'view profiles'});
			$(handle).toggle(
				function(){
					$(T).slideDown('slow');
					$(node).addClass('expanded');
					$(handle).text('hide profiles');
					return false;
				},
				function(){
					$(T).slideUp('slow');
					$(node).removeClass('expanded');
					$(handle).text('view profiles');
					return false;
				}
			);
			$(node).append(handle);
			$(node).prepend(T);
			$(parent).append(node);
		});
	},
	popup_tooltips : function(){
		$("#articles li li a, #volumes li a").tooltip({
		track: false,
		delay: 250,
		showURL: false,
		opacity: 0,
		fixPNG: true,
		top: 1,
		left: -60,
		showBody: " - ",
		extraClass: "db"
		});
		$('#nav > ul > li > a').append($('<span class="border" />'));
		$('span.border',$('#nav > ul > li.active').prev()).remove();
	}
}
$(document).ready(function(){
	haver.start();
	haver.nav_decorations();
	haver.contact_titles();
	haver.contact_expandables();
	haver.databooks_expandables();
	haver.popup_tooltips();
});

function validate_contact() {
	var bRequired = true;
	var inp_name=$('#name_input').val();
	if (jQuery.trim(inp_name) == "" || inp_name.indexOf(" ") == -1) {
		$('#name_input').css( {backgroundPosition: "-294px -271px"} );
		bRequired = false;
	}
	else {
		$('#name_input').css( {backgroundPosition: "-294px -240px"} );
	}
	var inp_email=$('#email_input').val();
	if (jQuery.trim(inp_email) == "") {
		$('#email_input').css( {backgroundPosition: "-294px -271px"} );
		bRequired = false;
	}
	else {
		$('#email_input').css( {backgroundPosition: "-294px -240px"} );
	}

	$('#question_input').css('background-color','white');
	$('#specific_input').css('background-color','white');
	$('#other_input').css('background-color','white');
	$('#region_input').css('background-color','white');
	$('#category_mail').css('background-color','white');

	var color_yellow = "#ffff80";
	if ($('#pricing_checkbox').is(':checked')) {
		if ($('#region_input').val() == null) {
			$('#region_input').css('background-color',color_yellow);
			bRequired = false;
		}
	}
	else if ($('#technical_checkbox').is(':checked')) {
		if (jQuery.trim($('#question_input').val()) == "") {
			$('#question_input').css('background-color',color_yellow);
			bRequired = false;
		}
	}
	else if ($('#specific_checkbox').is(':checked')) {
		if (jQuery.trim($('#specific_input').val()) == "") {
			$('#specific_input').css('background-color',color_yellow);
			bRequired = false;
		}
	}
	else if ($('#other_checkbox').is(':checked')) {
		if (jQuery.trim($('#other_input').val()) == "") {
			$('#other_input').css('background-color',color_yellow);
			bRequired = false;
		}
	}
	else {
		$('#category_mail').css('background-color',color_yellow);
		bRequired = false;
	}
	
	return bRequired;
}
function validate_registration() {
	var bRequired = true;
	var inp_name=$('#name_input').val();
	if (jQuery.trim(inp_name) == "" || inp_name.indexOf(" ") == -1) {
		$('#name_input').css( {backgroundPosition: "-294px -271px"} );
		bRequired = false;
	}
	else {
		$('#name_input').css( {backgroundPosition: "-294px -240px"} );
	}
	
	if (jQuery.trim($('#email_input').val()) == "") {
		$('#email_input').css( {backgroundPosition: "-294px -271px"} );
		bRequired = false;
	}
	else {
		$('#email_input').css( {backgroundPosition: "-294px -240px"} );
	}

	if (jQuery.trim($('#phone_input').val()) == "") {
		$('#phone_input').css( {backgroundPosition: "-294px -271px"} );
		bRequired = false;
	}
	else {
		$('#phone_input').css( {backgroundPosition: "-294px -240px"} );
	}

	if (jQuery.trim($('#company_input').val()) == "") {
		$('#company_input').css( {backgroundPosition: "-294px -271px"} );
		bRequired = false;
	}
	else {
		$('#company_input').css( {backgroundPosition: "-294px -240px"} );
	}

	return bRequired;
}
