//Cufon
Cufon.replace('#middle_column h2', {
	color: '#1568aa'
});
Cufon.replace('#middle_column #header_text h2', {
	color: '#ffffff'
});
Cufon.replace('#map_header #header_text h2', {
	color: '#ffffff'
});
Cufon.replace('#middle_column h3', {
	color: '#1568aa'
});
Cufon.replace('#middle_column h3.date', {
	color: '#777777'
});
Cufon.replace('#middle_column h4', {
	color: '#6e7881'
});
Cufon.replace('#middle_column h4 span', {
	color: '#aaa'
});
Cufon.replace('#middle_column .news_item h4', {
	color: '#777777'
});
Cufon.replace('#middle_column .events_item h4', {
	color: '#777777'
});
Cufon.replace('.widget_white h3', {
	color: '#1568aa'
});
Cufon.replace('.widget_blue h3', {
	color: '#ffffff'
});
Cufon.replace('#widget_twitter h3', {
	color: '#1568aa'
});
Cufon.replace('#widget_socialmedia h3', {
	color: '#1568aa'
});
Cufon.replace('#middle_column #searchbox span', {
	color: '#1568aa'
});
Cufon.replace('#middle_column span.event_date', {
	color: '#777777'
});
Cufon.replace('#middle_column .membership_fees li .price', {
	color: '#999999'
});

function updateDropResults($dropper, items)
{
	$dropper.html("");
	for(i=0;i<items.length;i++)
	{
		var $span = $('<span>'+items[i].title+'</span>');
		$span.data("item", items[i]);
		$span.appendTo($dropper);
	}
}

function handleClickSpan()
{
	var $span = $(this);
	var dropper_id = $span.parent().attr("id");
	
	var item = $span.data("item");
	
	deleteInArray(item, dropper_id.replace("drop_",""));
	$span.remove();
}

function handleClickAdd(group_id)
{
	var $selector = $("#select_"+group_id);
	var $dropper = $("#drop_"+group_id);
	
	var storedArray = ($.isArray($selector.data("items")))? $selector.data("items") : [] ;
	
	if($selector.val() != "")
	{
		var id = $selector.val().replace("cat_","");
		var title = $selector.find("option[value='cat_"+id+"']").html();
		var item = {"id": id, "title": title};
		
		if(item.id > 0 && item.title != '' && itemExists(item, storedArray) == false)
		{
			storedArray.push(item);
			$selector.data("items",storedArray);
			updateDropResults($dropper, storedArray);
			$("#hiddenvalues").append('<input id="hidden_cat_'+item.id+'" name="cat_id[]" value="'+item.id+'" type="hidden" />');
		}
	}
}

function deleteInArray(item, group_id)
{
	var $selector = $("#select_"+group_id);
	var arr = ($.isArray($selector.data("items")))? $selector.data("items") : [];

	for(i=0;i<arr.length;i++)
	{
		if(arr[i].id == item.id)
		{
			$('#hidden_cat_'+item.id).remove();
			arr.splice(i,1);
			break;
		}
	}
	$selector.data("items", arr);
}

function itemExists(item, arr)
{
	for(i=0;i<arr.length;i++)
	{
		if(arr[i].id == item.id) return true
	}
	return false;
}

$(document).ready(function()
{
	var host = window.location.host;
	$("a[href^='http']").not("[href*='"+host+"']").attr('target','_blank');
	
	$("#home_tabs p span").click(function(){
        var $item = $(this);
		if(!$item.hasClass("active")){
			var id = $item.parent().find('span').removeClass("active").end().end().addClass("active").attr('id');
			$("#home_tabs_content div.tab").hide();
			$("#"+id.substring(4)).show();
            var type = id.substring(id.lastIndexOf("_")+1);
            $.cookie("home_tabs", type, { path: '/', expires: 1});
		}
		return false;
	});
    
	if($.cookie("home_tabs") == "news"){
        $("#btn_latest_news").trigger("click");
	}
    
    $("#vacantiesframe").load(function(){
        document.location.href="#header_container";
    });
	
	$("span.language").click(function(){
		$("#header_text span.language").removeClass("hide");
		$(this).addClass("hide");
		var id = this.id;
		var lang = id.substr(10,2);
		$("#header_text  p.intro").addClass("hide");
		$("#header_text  h2.title").addClass("hide");
		$("#intro_"+lang).removeClass("hide");
		$("#title_"+lang).removeClass("hide");
	});
    
    $("#custom-search-box").focus(function(){
        var $input = $(this);
        if($input.val() == this.defaultValue){
            $input.val("");
        }
    }).blur(function(){
        var $input = $(this);
        if($input.val() == ""){
            $input.val(this.defaultValue);
        }
    });
	
	$(".btn_hide").click(function () {
		$(this).hide();
		$("#map_container").slideToggle("slow", function(){
			$(".btn_show").show();
			$("#middle_column").css("padding-top","0");
			$("#right_column").css("margin-top","0");
		});
		return false;
	});
	$(".btn_show").click(function () {
		$(this).hide();
		$("#map_container").slideToggle("slow", function(){
			$(".btn_hide").show();
			$("#middle_column").css("padding-top","29px");
			$("#right_column").css("margin-top","35px");
		});
		return false;
	});
	
	$("#form_event_register").validate({
		errorElement: "span",
		success: "valid",
		rules: {
			eventreg_fname: {required: true, minlength: 2},
			eventreg_lname: {required: true, minlength: 2},
			eventreg_jobtitle: {required: true, minlength: 3},
			eventreg_organisation: {required: true, minlength: 3},
			eventreg_department: {required: true, minlength: 3},
			eventreg_street: {required: true, minlength: 3},
			eventreg_postcode: {required: true, minlength: 3},
			eventreg_city: {required: true, minlength: 3},
			eventreg_country: {required: true, minlength: 3},
			eventreg_email: {required: true, minlength: 3, email:true},
			eventreg_phone: {required: true, minlength: 3},
			eventreg_remarks: {minlength: 3, maxlength: 3000}
		},
		messages: {
			eventreg_fname: {required: "This field is required", minlength: "This field is too short"},
			eventreg_lname: {required: "This field is required", minlength: "This field is too short"},
			eventreg_jobtitle: {required: "This field is required", minlength: "This field is too short"},
			eventreg_organisation: {required: "This field is required", minlength: "This field is too short"},
			eventreg_department: {required: "This field is required", minlength: "This field is too short"},
			eventreg_street: {required: "This field is required", minlength: "This field is too short"},
			eventreg_postcode: {required: "This field is required", minlength: "This field is too short"},
			eventreg_city: {required: "This field is required", minlength: "This field is too short"},
			eventreg_country: {required: "This field is required", minlength: "This field is too short"},
			eventreg_email: {required: "This field is required", minlength: "This field is too short", email: "Not a valid email address"},
			eventreg_phone: {required: "This field is required", minlength: "This field is too short"},
			eventreg_remarks: {minlength: "This field is too short", maxlength: "This field is too long"}
		}
	});
    /*
    $("#entryform").validate({
        errorElement: "span",
		success: "valid",
		rules: {
            title: {required: true, minlength: 2}
        },
		messages: {
            title: {required: "This field is required", minlength: "This field is too short"}
        }
    });    
	*/
	$("input[name='eventreg_partner']").change(function(){
		var $partner_inputs = $('p.partner');
		if($(this).val() == 'yes'){$partner_inputs.show();}else{$partner_inputs.hide();}	
	});
	
	$("input[name='eventreg_presentation']").change(function(){
		var $presenation_inputs = $('p.presentation');
		if($(this).val() == 'yes'){$presenation_inputs.show();}else{$presenation_inputs.hide();}	
	});
	
	$("input[name='eventreg_invoiceaddress']").change(function(){
		var $invoice_inputs = $('p.invoice');
		if($(this).val() == 'other'){$invoice_inputs.show();}else{$invoice_inputs.hide();}	
	});
	
	$('#right_column .slideshow').innerfade({
		speed: 3000,
		timeout: 6000,
		type: 'random_start',
		containerheight: '70px'
	});
	
	$("#print").click(function(){
        window.print();
        return false;
	});
	$("#toTop").click(function(){
        $("html,body").animate({scrollTop: 0}, 1000);
        return false;
	});
	
	$("#flickr_container a.fancy").colorbox({opacity:0.70});
	/*
	//Search stuff
	var $adders = $("#form_search .adder");
	var $droppers = $("#form_search .dropper");
	
	$adders.click(function(){
		var $this = $(this);
		var id = $this.attr("id");
		handleClickAdd(id.replace('add_', ""));
	});
    */
    //Search stuff
	var $adders = $("#form_search select");
	var $droppers = $("#form_search .dropper");
	
	var $lifescience_selectors = $adders.not("#select_2,#select_0");
	var $research_selectors = $("#select_13,#select_15");
	var $capital_selectors = $("#select_17,#select_5");
	var $service_selectors = $("#select_0,#select_17,#select_5");
	
	$adders.not("#select_2").hide();
	
	$adders.change(function(){
		var $this = $(this);
		var id = $this.attr("id");
	
		if(id == 'select_2')
		{
			var cat_id = $this.val().replace("cat_","");
			$adders.not("#select_2").hide();
			$droppers.empty();
			$adders.data("items","").not("#select_2").val("");
			$("#hiddenvalues").empty();
			switch(cat_id)
			{
				// Lifesciences
				case '4':
				case '180':
				case '181':
					$lifescience_selectors.show();
					break;
				// Research Centres
				case '7':
					$research_selectors.show();
					break;
				// Capital Providers
				case '8':
					$capital_selectors.show();
					break;
				// Service & Supply companies
				case '37':
					$service_selectors.show();
					break;
			}
		}
		
		handleClickAdd(id.replace('select_', ""));
	});
	
	$("span", $droppers).live("click",handleClickSpan);
	
	$("#form_search").submit(function(evt){
		var $form = $(this);
		var $err = $("#err");
		var keywords = $("#keywords").val();
		var $cats = $("#hiddenvalues").children();
		if(keywords != "" && keywords.length > 2)
		{
			$err.html("");
			return true;
		}
		else if(keywords.length < 3 && $cats.length > 0)
		{
			str_cats = location.protocol+"//"+location.host+"/life-sciences-database/filter/";
			for(i=0;i<$cats.length;i++){
				str_cats += $($cats[i]).val()+"&";
			}
			window.location = str_cats.substr(0,str_cats.length-1);
			return false;
		}
		else
		{
			$err.html("<p>Please provide a keyword (at least 3 characters) or check a category</p>");
			return false;
		}
	}).find("select,#keywords").val("");
    
    
    if($("#size").val() != '188')
    {
        $("#nrofemployees").hide();
    }
    
    $("#size").change(function(event)
    {
        if($(this).val() == '188')
        {
            $("#nrofemployees").show();
        }
        else
        {
            $("#nrofemployees").hide();
        }
    });
    
    $(".registermember #entryform").validate({
		errorElement: "span",
		success: "valid",
		rules: {
			title: {required: true, minlength: 2},
			street: {required: true, minlength: 2},
            field_id_11: {required: true, minlength: 3},
			field_id_13: {required: true, minlength: 3},
			field_id_14: {required: true, minlength: 3},
			field_id_15: {required: true},
			field_id_17: {required: true, minlength: 3},
			field_id_19: {required: true, minlength: 3, email:true},
			field_id_22: {required: true, minlength: 3},
			field_id_23: {required: true},
			field_id_93: {required: true, minlength: 3, maxlength: 500},
			field_id_112: {required: true, minlength: 3},
			field_id_113: {required: true, minlength: 3},
            field_id_114: {required: true, minlength: 3},
            field_id_115: {required: true, minlength: 3},
            field_id_116: {required: true, minlength: 3, email:true},
            field_id_117: {required: true},
            type: {required: true}
		},
		messages: {
			title: {required: "This field is required", minlength: "This field is too short"},
			street: {required: "This field is required", minlength: "This field is too short"},
            field_id_11: {required: "This field is required", minlength: "This field is too short"},
			field_id_13: {required: "This field is required", minlength: "This field is too short"},
			field_id_14: {required: "This field is required", minlength: "This field is too short"},
			field_id_15: {required: "This field is required"},
			field_id_17: {required: "This field is required", minlength: "This field is too short"},
			field_id_19: {required: "This field is required", minlength: "This field is too short", email: "Not a valid email address"},
			field_id_22: {required: "This field is required", minlength: "This field is too short"},
			field_id_23: {required: "This field is required"},
			field_id_93: {required: "This field is required", minlength: "This field is too short", maxlength: "This field is too long, maximum 500 characters allowed"},
			field_id_112: {required: "This field is required", minlength: "This field is too short"},
			field_id_113: {minlength: "This field is too short", maxlength: "This field is too long"},
            field_id_114: {required: "This field is required", minlength: "This field is too short"},
            field_id_115: {required: "This field is required", minlength: "This field is too short"},
            field_id_116: {required: "This field is required", minlength: "This field is too short", email: "Not a valid email address"},
            field_id_117: {required: "This field is required"},
            type: {required: "This field is required"}
		},
        submitHandler: function(form){
            //return false;
            if($("#type").val() == "")
            {
                $("#type").after('<span htmlfor="type" generated="true" class="error">This field is required</span>');
            }
            
            if($("#legalstateselect").val() == "")
            {
                $("#legalstateselect").after('<span htmlfor="legalstateselect" generated="true" class="error">This field is required</span>');
            }
            
            if($("#size").val() == "")
            {
                $("#size").after('<span htmlfor="size" generated="true" class="error">This field is required</span>');
            }
            
            if($("#type").val() != "" && $("#legalstateselect").val() != "" && $("#size").val() != "")
            {   
                form.submit();
            }
        }
	});

    $("#member_form").validate({
        errorElement: "span",
        success: "valid",
        rules: {
            firstname: {required: true, minlength: 2},
            lastname: {required: true, minlength: 2},
            jobtitle: {required: true, minlength: 3},
            username: {required: true, minlength: 3, email:true},
            password: {required: true, minlength: 5},
            password_confirm: {equalTo: "#password"},
            directphone: {required: true, minlength: 3}
        },
        messages: {
            firstname: {required: "This field is required", minlength: "This field is too short"},
            lastname: {required: "This field is required", minlength: "This field is too short"},
            jobtitle: {required: "This field is required", minlength: "This field is too short"},
            username: {required: "This field is required", minlength: "This field is too short", email: "Not a valid email address"},
            password: {required: "This field is required", minlength: "This field is too short"},
            password_confirm: {equalTo: "This field must be the same as password"},
            directphone: {required: "This field is required", minlength: "This field is too short"}
        }
    });
    
    $("#legalstateselect").change(function(){
       if($(this).val() == 17)
       {
        $('#legalstateother').show();
       }else{
        $('#legalstateother').hide();
       }
   }); 
  
	Cufon.now();
});