// Namespace function
function namespace(ns) {
    ns = ns.split('.');
    var cur = window, i;
    while ( i = ns.shift() ) {
        if ( !cur[i] ) cur[i] = {};
        cur = cur[i];
    }
}
// Put all tictoc functions into the tictoc object like:
// quartz.test = function() { alert("Test"); }
namespace("tictoc");


// Setup JS events when the DOM is ready
$(document).ready(function(){
	
	//Info-tracker
	$('#info-tracker_login').click(function(){
		username = $(this).attr('rel');
		link = $.getJSON("/intranet/infotracker_link/"+username, function(data){
			// alert(data.url);
			window.location = data.url;
		});
		
		return false;
	});
	
	$("body#intranet .signposts span.image").corner("20px tr tl");
	
	// Drop-down menu for IE
	if (document.all) $("#menu li").hoverClass ("sfHover");
	
	$(".search_box").focus(tictoc.website.clearbox);
	$(".search_box").blur(tictoc.website.clearbox);	
	
	// Content area images
	$(".pagebody img[align='left'], body#intranet #body img[align='left']").addClass("left");
	$(".pagebody img[align='right'], body#intranet #body img[align='right']").addClass("right");
	
	// Popup links
	$("a.popup").each(tictoc.website.popup);
	
	// Admin links
	$("a.adminedit").click(tictoc.admin.edit)
	
	$("a.document_link").click(function(e){
		var win = window.open(this.href,'document','height=650,width=675,resizable=yes,dependent,scrollbars=yes');
		win.focus();
		e.preventDefault();
	});
	
	// Print link on application form
	$("a#print_application").click(function(e){
		e.preventDefault();
		window.print();
	});
	
	// Intranet
	$("#bulletin_form").hide();
	$("a#add_bulletin").click(function(e){
		e.preventDefault();
		$("#bulletin_form").toggle();	
	});
	
	$('.booking #add_another').click(function(){
		// alert($(this).siblings('#attendees').children('fieldset.active').length);
		count = $(this).siblings('#attendees').children('fieldset.active').length;
		$('#attendees fieldset').eq(count).addClass('active');
		return false;
	});
	
	$('.booking #remove_last').click(function(){
		count = $(this).siblings('#attendees').children('fieldset.active').length;
		if(count > 1){
			$('#attendees fieldset').eq(count-1).children('ul').each(function(){
				$('li input',this).val("");
			});
			$('#attendees fieldset').eq(count-1).removeClass('active');
		}
		return false;
	});
	// 
	// var nav_items = $("#intranet #nav #menu li").length;
	// var nav_width = $("#intranet #nav #menu").width();
	// $("#intranet #nav #menu li").width(nav_width/nav_items);
	
	// Application Process
	$("a#add_qualification").click(tictoc.website.add_qualification);
	$("a#add_membership").click(tictoc.website.add_membership);
	$("a#add_course").click(tictoc.website.add_course);
	$("a#add_employer").click(tictoc.website.add_employer);
	$("a#add_conviction").click(tictoc.website.add_conviction);
	$("a#add_offence").click(tictoc.website.add_offence);
	$("a#add_warning").click(tictoc.website.add_warning);
	
});

$.fn.hoverClass = function(c) {
	return this.each(function(){
		$(this).hover( 
			function() { $(this).addClass(c);  },
			function() { $(this).removeClass(c); }
		);
	});
};


// General website functions
tictoc.website = {
    
    // Clear default text in an input box
    clearbox: function() {
        if (!this.default_value) this.default_value = this.value;
    
        if (this.value == '') {
            this.value = this.default_value;
        } else if (this.value == this.default_value) {
            this.value = '';
        }
    },
    
    // Jump to URL
    jump_to_url: function(url) {
        if (url == "") return false;
	    location.href = "/" + url;
    },
    
    // Popup link
    popup: function() {
        this.target = "_blank";
        this.title =  this.title ? this.title += ". " : "";
        this.title += "Link opens in a new window."
    },

		add_qualification: function() {
			$(this).addClass("indicator");
			var qualifications = $("table#qualifications tbody tr").length;

			$.post(
		    "/vacancies/add_partial/" + (qualifications++),
				{type: "qualification"},
				function(data) {
	        $("table#qualifications tbody").append(data);
	        $("#add_qualification").removeClass("indicator");
		    }
			);
			return false;	    
		},

		add_conviction: function() {
			$(this).addClass("indicator");
			var convictions = $("table#convictions tbody tr").length;

			$.post(
		    "/vacancies/add_partial/" + (convictions++),
				{type: "conviction"},
				function(data) {
	        $("table#convictions tbody").append(data);
	        $("#add_conviction").removeClass("indicator");
		    }
			);
			return false;	    
		},

		add_offence: function() {
			$(this).addClass("indicator");
			var offences = $("table#offences tbody tr").length;

			$.post(
		    "/vacancies/add_partial/" + (offences++),
				{type: "offence"},
				function(data) {
	        $("table#offences tbody").append(data);
	        $("#add_offence").removeClass("indicator");
		    }
			);
			return false;	    
		},

		add_warning: function() {
			$(this).addClass("indicator");
			var warnings = $("table#warnings tbody tr").length;

			$.post(
		    "/vacancies/add_partial/" + (warnings++),
				{type: "warning"},
				function(data) {
	        $("table#warnings tbody").append(data);
	        $("#add_warning").removeClass("indicator");
		    }
			);
			return false;	    
		},
		
		add_membership: function() {
			$(this).addClass("indicator");
			var memberships = $("table#memberships tbody tr").length;

			$.post(
		    "/vacancies/add_partial/" + (memberships++),
				{type: "membership"},
				function(data) {
	        $("table#memberships tbody").append(data);
	        $("#add_membership").removeClass("indicator");
		    }
			);
			return false;	    
		},
		
		add_course: function() {
			$(this).addClass("indicator");
			var courses = $("table#courses tbody tr").length;

			$.post(
		    "/vacancies/add_partial/" + (courses++),
				{type: "course"},
				function(data) {
	        $("table#courses tbody").append(data);
	        $("#add_course").removeClass("indicator");
		    }
			);
			return false;	    
		},
		
		add_employer: function() {
			$(this).addClass("indicator");
			var employers = $("div#previous_employment div.employer").length;
			
			$.post(
		    "/vacancies/add_partial/" + (employers+1),
				{type: "employer"},
				function(data) {
	        $("div#previous_employment").append(data);
	        $("#add_employer").removeClass("indicator");
		    }
			);
			return false;	    
		}
		
};


// Admin functions
tictoc.admin = {
    popup_width: 675,
    popup_height: 650,
    
    edit: function() {
        var win = window.open(this.href, "_adminedit","height=" + tictoc.admin.popup_height + ",width=" + tictoc.admin.popup_width + ",resizable=yes,dependent,scrollbars=yes");
	    win.focus();
	    return false;
    }
};
