(function($){

    $.fn.shuffle = function() {

        var allElems = this.get(),
            getRandom = function(max) {
                return Math.floor(Math.random() * max);
            },
            shuffled = $.map(allElems, function(){
                var random = getRandom(allElems.length),
                    randEl = $(allElems[random]).clone(true)[0];
                allElems.splice(random, 1);
                return randEl;
           });

        this.each(function(i){
            $(this).replaceWith($(shuffled[i]));
        });

        return $(shuffled);

    };

})(jQuery);

function keys(obj)
{
    var keys = [];

    for(var key in obj)
    {
        keys.push(key);
    }

    return keys;
}

function swap(obj){
	var vals = {};
	for (var key in obj){
		vals[obj[key]] = key;
	}
	return vals;
}

function vals(obj){
	var vals = [];
	for (var key in obj){
		vals.push(obj[key]);
	}
	return vals;
}

function jobdet(elt){
	var ol = $(".detext:visible");
	var ent = $(elt).parents('.wkzone-entry');
		var detext = ent.find('.detext');
		
	var derp = function(){
		
		detext.stop(false, true).slideToggle('fast');
		$("html, body").animate({scrollTop: ent.offset().top});
	};
	if (ol.size() && ol.get(0) != detext.get(0)){
		ol.stop().slideUp(0, derp);
	}else derp();
	return false;
}

function toggle_jfo(){
$("#wkzone-filters").stop(false, true).slideToggle('fast');
	return false;
}

function wkz_page(page){
	var jp = $(".wkzpage[num=" + page + "]");
	if (!jp.size()){
	
	$.get(wkz_root + 'page/' + page, function(txt){
		$('#wkzone-left').append(txt);
		wkz_page(page);
	});
	return false;
	
	}
	
	

	var cur = $(".wkzpage.cur");
	
	var poodone = function(){cur.removeClass("cur");
		var src = "";
		if (page > 1){
			src += '<a href="' + wkz_root + '?page=' + (page - 1) + '" onclick="return wkz_prev();">< PREV.</a> ';
		}else{
			src += '<a class="inactive">< PREV.</a> ';
		}
		var mp=jp.attr("pages");
		for (var i = page-4 ; i <= page + 4; ++i){
			if (i >= 1 && i<= mp){
				src += '<a href="' + wkz_root + '?page=' + (i) + '"" num="' + i + '" onclick="return wkz_page(' + i + ');"' + (i == page ? 'class="active"' : '') + '>' + i + '</a> ';
			}
		}
		
		if (page < mp){
			src += '<a href="' + wkz_root + '?page=' + (page + 1) + '" onclick="return wkz_next();">NEXT ></a> ';
		}else{
			src += '<a class="inactive">NEXT ></a> ';
		}
		
		$("#wkzone-jobopbar .pagination").html(src);
	
		jp.hide().addClass("cur").fadeIn('fast');
		};
	if (cur.size()){
	cur.fadeOut('fast', poodone);
	}else{
		poodone();
	}
	return false;
}

function wkz_prev(){
	return wkz_page($(".wkzpage.cur").attr("num")-1);
}

function wkz_next(){
	return wkz_page($(".wkzpage.cur").attr("num") * 1+1);
}

function wkview1(){
	$("#content").removeClass("view2");
	return false;
}

function wkview2(){
$("#content").addClass("view2");
return false;
}	


function flagjob(elt,id){
	if (elt.parents('.wkzone-entry').attr('notuser')){
		location.href = '/users/login?next=/workzone/' + id;
		return false;
	}
	if (elt.hasClass('flagged')) return unflagjob(elt,id);
	var csrf = elt.parent().find("input");
	var dat = {};
	dat[csrf.attr("name")] = csrf.val();
	$.post(wkz_root + 'flag/' + id + '/', dat, function(res){
		if (res == 1){
		elt.addClass('flagged').text('Flagged for Removal');
		}else{
		//elt.addClass('subm').text('Error!');
		}
	}, "text");
	return false;
}

function pin2wall(elt,id){
	if (elt.parents('.wkzone-entry').attr('notuser')){
		location.href = '/users/login?next=/workzone/' + id;
		return false;
	}
	if (elt.hasClass('subm')) return unpin2wall(elt,id);
	var csrf = elt.parent().find("input");
	var dat = {};
	dat[csrf.attr("name")] = csrf.val();
	$.post(wkz_root + 'pintowall/' + id + '/', dat, function(res){
		if (res == 1){
		elt.addClass('subm').text('Unpin from Wall');
		}else{
		//elt.addClass('subm').text('Error!');
		}
	}, "text");
	return false;
}

function unpin2wall(elt,id){
	if (elt.parents('.wkzone-entry').attr('notuser')){
		location.href = '/users/login?next=/workzone/' + id;
		return false;
	}
	var csrf = elt.parent().find("input");
	var dat = {};
	dat[csrf.attr("name")] = csrf.val();
	$.post(wkz_root + "unpintowall/" + id + '/', dat, function(res){
		if (res == 1){
		elt.removeClass('subm').text('Pin to Wall');
		if (location.href.indexOf('/my-wall/') != -1){
			elt.parents(".wkzone-entry").slideUp(function(){
				$(this).remove();
			});
		}
		}else{
		//elt.addClass('subm').text('Error!');
		}
	}, "text");
	return false;
}

function unflagjob(elt,id){
	if (elt.parents('.wkzone-entry').attr('notuser')){
		location.href = '/users/login?next=/workzone/' + id;
		return false;
	}
	var csrf = elt.parent().find("input");
	var dat = {};
	dat[csrf.attr("name")] = csrf.val();
	$.post(wkz_root + "unflag/" + id + '/', dat, function(res){
		if (res == 1){
		elt.removeClass('flagged').text('Flag this job as Inappropriate');
		}else{
		//elt.addClass('subm').text('Error!');
		}
	}, "text");
	return false;
}


function subpad(elt,id){
	if (elt.hasClass('subm')) return unsubpad(elt,id);
		if (elt.parents('.wkzone-entry').attr('notuser')){
		location.href = '/users/login?next=/workzone/' + id;
		return false;
	}
	
	var csrf = elt.parent().find("input");
	var dat = {};
	dat[csrf.attr("name")] = csrf.val();
	$.post(wkz_root + 'submit_pad/' + id + '/', dat, function(res){
		if (res == 1){
		elt.addClass('subm').text('Submitted!');
		}else{
		//elt.addClass('subm').text('Error!');
		}
	}, "text");
	return false;
}

function unsubpad(elt,id){
	if (elt.parents('.wkzone-entry').attr('notuser')){
		location.href = '/users/login?next=/workzone/' + id;
		return false;
	}

	var csrf = elt.parent().find("input");
	var dat = {};
	dat[csrf.attr("name")] = csrf.val();
	$.post(wkz_root + "unsubmit_pad/" + id + '/', dat, function(res){
		if (res == 1){
		elt.removeClass('subm').text('Submit my PAD');
		}else{
		//elt.addClass('subm').text('Error!');
		}
	}, "text");
	return false;
}

function wkz_shufright(){
return $("#wkzone-right").fadeTo('slow', 0.01, function(){	$(this).fadeTo('slow', 1.0).find("a").shuffle(); });

}

$(function(){
try{
$(".wkzone-entry input[name=csrfmiddlewaretoken]").attr({
"disabled": "disabled",
"type": "text"
});}catch(e){}
/*if (location.href.indexOf('/users/settings') == -1){
	$("#DIV-prof a").attr("href", "/users/settings#myjobs");
}*/
if ($("#wkzone-right").size()){
wkz_shufright().stop(false, true);
setInterval(wkz_shufright, 20000);
}
$(".addthis_button_twitter").click(function(event){
	event.preventDefault();
});
});
