
function post() 
{
    return post.inst ? post.inst : post.inst = new class_Post();
}
function class_Post()
{
    var _formId = "_postForm";
    var _frm = $("#" + _formId);
    var _draftSaved = false;
    var _MAX_TITLE_LENGTH = 70;
    var _MAX_CONTENT_SHORT_LENGTH = 250;
    var _MAX_CONTENT_FULL_LENGTH = 50000;
    
    this.saveNew = function()
    {
        if(!_draftSaved)
            _setFormAction('savenew');
        else
            _setFormAction('saveedited');
        return formSubmit(_formId, '', true)
    }
    
    this.saveEdited = function()
    {
        _setFormAction('saveedited');
        return formSubmit(_formId, '', true)
    }
    
    this.saveDraft = function()
    {
        _draftSaved = true;
        _setFormAction('savedraft');
        return formSubmit(_formId);
    }
    
     this.validateTitle = function(el)
    {
        var fld = $(el).find('input');
       _validateLength(fld, _MAX_TITLE_LENGTH);
    }
    
    this.validateContentShort = function(el)
    {
        var fld = $(el).find('textarea');
       _validateLength(fld, _MAX_CONTENT_SHORT_LENGTH);
    }
    
    this.validateContentFull = function(el)
    {
        var fld = $(el).find('textarea');
       _validateLength(fld, _MAX_CONTENT_FULL_LENGTH);
    }
    
    function _setFormAction(action)
    {
        _frm.attr('action', '/blogs/post/' + action);
    }
    
    function _validateLength(fld, allowedLength)
    {
        var txt = fld.val();
        if(txt.length > allowedLength) {
            fld.val(txt.substring(0, allowedLength));
            fld.addClass('error_field').addClass('error');
        }
        else {
            fld.removeClass('error_field').removeClass('error');
        }
    }
}

function addPostSource()
{
	if(!addPostSource.count) {	// type "undefined" must be here
		$("._photoSource").find('select').each(function(i) {			
			addPostSource.count = i - 1;
		});
	}
	var postSourceObj = $('#postSource').clone().attr('id','');
	postSourceObj.removeClass('hidden');
	
	++addPostSource.count;
	postSourceObj.find('select').attr('name', 'photoSourceType_' + addPostSource.count);
	postSourceObj.find('input[name=photoSourceName_0]').attr('name', 'photoSourceName_' + addPostSource.count);
	postSourceObj.find('input[name=photoSourceUrl_0]').attr('name', 'photoSourceUrl_' + addPostSource.count);
	
	$('#before').before(postSourceObj);
	postSourceObj.find('input').val('');
	return false;
}