$().ready(function()
{
	if ($('#s').val() == '1')
	{
		search();
	}

	$('#keywords').bind('keyup', search);

	$('#keywords').bind('focus', function()
	{
		if ($('#keywords').val() === $('#default_keywords').val())
		{
			$('#keywords').val('');
		}
	});

	$('#keywords').bind('blur', function()
	{
		if ($('#keywords').val() === '')
		{
			$('#keywords').val($('#default_keywords').val());
		}
	});

	$('a[@rel=external]').bind('click', function()
	{
		$(this).attr('target', '_blank');
	});

	$('a[@rel*=lightbox]').lightBox();

	jobsTable();

	$('#send_app').bind('click', function()
	{
		$('#app').submit();
	});

	$('#www').hide();

	/*
	*	Formu validavimas
	*/
	$("#jobForm").validate({
		errorLabelContainer: $("#content form div.error"),
		rules:
		{
			"data[position]" : "required",
			"data[company]" : "required",
			"data[description]" : "required",
			"data[email]" : "required"
		},
		messages: 
		{
			"data[position]" : "",
			"data[company]" : "",
			"data[description]" : "",
			"data[email]" : ""
		}
	});
	$("#app").validate({
		errorLabelContainer: $("#content form div.error"),
		rules:
		{
			"data[name]" : "required",
			"data[email]" : "required",
			"data[message]" : "required"
		},
		messages: 
		{
			"data[name]" : "",
			"data[email]" : "",
			"data[message]" : ""
		}
	});


	$('#want').bind('click', function()
	{
		if ($('#app').css('display') == 'block')
		{
			$('#application').css('display', 'none');
			$('#app').css('display', 'none');
		}
		else
		{
			$('#application').css('display', 'block');
			$('#app').css('display', 'block');
			$(this).css('display', 'none');
		}
	});

	textarea.init();
});

function search(page, show)
{
	if (isNaN(page))
	{
		page = 1;
	}
	$('#keywords').addClass('indicator');

	if (show != 'p/')
		show = '';

	var keywords = $('#keywords').val();
	if (keywords === $('#default_keywords').val())
	{
		keywords = '';
	}
	keywords = keywords.replace(new RegExp(/\s+/g), '%20');
	keywords = encodeURI(keywords);

	$('#results').load('/jobs/search/'+keywords+'/'+page+'/'+show, loaded);
}

function loaded()
{
	$('#keywords').removeClass('indicator');
	jobsTable();
}

function page(page)
{
	search(page, 'p/');
}

function cancel(pos, id)
{
	if (confirm('Ar tikrai norite ištrinti šį paveikslėlį'))
	{
		if (id == undefined)
		{
			id = '';
		}
		$('#link'+pos).remove();
		$('#img'+pos).remove();
		$('#inp'+pos).remove();

		var stats = swfu_images.getStats();
		stats.successful_uploads--;
		swfu_images.setStats(stats);

		$.get('/jobs/cancel/'+pos+'/'+id+'/');
	}
}

function jobsTable()
{
	$('#jobs tr, div.super tr').each(function()
	{
		var id = this.id;
		var tmp = id.split('_');
		if (tmp[0] == 'job')
		{
			$(this).click(function()
			{
				document.location.href='/'+tmp[2]+'_'+tmp[1]+'/';
			});

			$(this).mouseover(function()
			{
				$('#'+id+' td').each(function()
				{
					$(this).css('cursor', 'pointer');
				});
				$('#'+id+' td a').each(function()
				{
					$(this).css('color', '#ff0000');
				});
			});
			$(this).mouseout(function()
			{
				$('#'+id+' td a').each(function()
				{
					$(this).css('color', '#333333');
				});
			});
		}
	});
}

textarea = {    
    init: function()
	{
        var self = textarea;
   
		$('#bold').bind('click', function(e){
            self.insertTags('**', '**', 'paryškintai');
        });        

		$('#list').bind('click', function(e){
            self.insertTags('\n* ', '\n', 'sąrašo elementas');
        });
    },
    
    insertTags: function(openTag, closeTag, sampleText)
	{
        var area = document.getElementById('job_description');
        var ds = document.selection;

        if (ds)
		{
			if (closeTag && ds.createRange().text)
			{
				ds.createRange().text = ds.createRange().text.replace(/\n/g, '* ');
			}

            var theSelection = ds.createRange().text;
            if (!theSelection)
			{
                theSelection = sampleText;
            }
            area.focus();


			if (theSelection.charAt(theSelection.length - 1) == ' ')
			{
                theSelection = theSelection.substring(0, theSelection.length - 1);
                ds.createRange().text = openTag + theSelection + closeTag + ' ';
            } 
			else 
			{
                ds.createRange().text = openTag + theSelection + closeTag;
            }            
        } 
		else if (typeof(area.selectionStart) == 'number')
		{
			var replaced = false;
            var startPos = area.selectionStart;
            var endPos = area.selectionEnd;
            var scrollTop = area.scrollTop;
            var text = (area.value).substring(startPos, endPos);

            if (endPos - startPos)
                replaced = true;

			if (closeTag && text)
			{
				text = text.replace(/\n/g, '\n* ');
			}
            
            if (!text)
                text = sampleText;
            
            if (text.charAt(text.length - 1) == ' ')
                replaceWith = openTag + text.substring(0, (text.length - 1)) + closeTag + ' ';
			else
                replaceWith = openTag + text + closeTag;
			
			if (closeTag != '**')
				replaceWith = replaceWith.substr(1, replaceWith.length-1);
            
            area.value = area.value.substring(0, startPos) + replaceWith + area.value.substring(endPos, area.value.length);
            
            area.focus();

            if (replaced)
			{
                var cPos = startPos + (openTag.length + text.length + closeTag.length);
                area.selectionStart = cPos;
                area.selectionEnd = cPos;
            } 
			else 
			{
                area.selectionStart = startPos + openTag.length;
                area.selectionEnd = startPos + openTag.length + text.length;
            }

            area.scrollTop = scrollTop;
        }
        
        if (area.createTextRange)
            area.caretPos = ds.createRange().duplicate();
    }    
};
