
// RTP GENERAL JAVASCRIPT
// Dimasoft / DC / Q2-4 2010

var latest=0,latestjob=-1;

$(document).ready(function() {

		if($('div#latestjobs').length>0) latest_jobs();
		if($('img#captcha').length>0) captcha_refresh_link();
		$('#jobinfo form').submit(function() { purchase_wait(); });
		$('#jobinfo input[name="showfree"]').click(function() { return confirm("Show Quote Details?\n\nThis will deduct one of your free sets."); });
		$('#jobinfo input[name="purchase"],#trader_topup-topup').click(function() { return confirm_purchase(this); });
		$('textarea').each(function() { textarea_add_limiter(this); });

		$('#trader_register input[type="checkbox"]').change(function() { jobprefs_highlight(this,'green',''); });
		$('#trader_jobprefs input[type="checkbox"]:checked').change(function() { jobprefs_highlight(this,'','red'); });
		$('#trader_jobprefs input[type="checkbox"]:not(:checked)').change(function() { jobprefs_highlight(this,'green','gray'); });
		$('#trader_jobprefs input[type="checkbox"]:not(:checked)').next().css('color','gray');

		$('#trader-search').change(function() { if($(this).val()==0) $('#trader-for').val(''); });
		$('#trader-for').focus(function() { if($('#trader-search').val()==0) $('#trader-search').val(1); });

		$('a[href="trader/status/listing"]').click(function() {
				return confirm($(this).attr('title').substring(9)+" your directory listing and page?"); });
		$('a[href="trader/status/email"]').click(function() { return confirm($(this).attr('title').substring(9)+" your job e-mail alerts?"); });
		$('a[href="trader/status/text"]').click(function() { return confirm($(this).attr('title').substring(9)+" your job text alerts?"); });

});

function load_css(file) {
		$("<link>").appendTo("head").attr({ rel:"stylesheet",type:"text/css",href:file+".css" });
}

function latest_jobs() {
		$.getJSON("latest",function(data) { latest=data; latest_rotate(); setInterval(latest_rotate,6000); });
}

function latest_rotate() {
		$('div#latestjobs p').fadeOut(500,function() { $(this).html(latest[latestjob]); $(this).fadeIn(500); });
		if(++latestjob>=latest.length) latestjob=0;
}

function captcha_refresh_link() {
		$('img#captcha').parent().prev().append("<p><a href=\"#\" id=\"captcha_refresh\">Generate New Code</a></p>");
		$('a#captcha_refresh').click(function() { $('img#captcha').attr('src','captcha?'+Number(new Date())); return false; });
}

function purchase_wait() {
		$('#jobinfo h3').css('text-decoration','none').html("Please Wait...");
		$('#jobinfo input,#jobinfo ul').hide();
}

function confirm_purchase(button) {
		var value=$(button).attr('value');
		var amount=value.substring(value.search(/\(/)+1,value.search(/\)/));
		return confirm("Confirm Purchase?\n\nThis will debit "+amount+" from your FuturePay agreement.");
}

function textarea_add_limiter(textarea) {
		var label=$(textarea).parent().prev().children('label');
		var labelc=label.html();
		label.html(labelc.replace("max. ","<span class=\"counter\"></span>/"));
		labelc=labelc.replace(/<br>/g," ");
		var limit=parseInt(labelc.substring(labelc.search(/max. /)+5,labelc.search(/chars/)-1));
		var limitfunc=function() { textarea_limiter(textarea,limit); }
		$(textarea).keyup(limitfunc).keydown(limitfunc).focus(limitfunc);
		limitfunc();
}

function textarea_limiter(textarea,limit) {
		var length=$(textarea).val().length;
		var counter=$(textarea).parent().prev().children('label').children('span.counter');
		if(length>limit)
		{
				$(textarea).val($(textarea).val().substr(0,limit));
				$(counter).addClass('error');
				length=limit;
		}
		else if(length<limit) $(counter).removeClass('error');
		$(counter).html(length);
}

function jobprefs_highlight(box,check,unchk) {
		if($(box).attr('checked')) color=check; else color=unchk;
		$(box).next().css('color',color);
}

