 $(document).ready(function(){
    var defaultTxt = {};
    var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
    var fieldValid = false;
    var textValid = false;
    
    
    $('#feedback a.feedback').click(function(){
        $('#feedback_form').slideToggle('slow', function() {
		    $(this).removeClass('hiiden');
		    $('#feedback a.feedback').toggleClass('expanded');
		});
        return false;
    });
    
    //Toggle between empty and default text
    function resetName(_self) {
	var theValue = _self[0].value;
        if (!defaultTxt[ _self[0].name ]) { 
            defaultTxt[ _self[0].name ] = theValue;
        }
        if (theValue != '' && defaultTxt[ _self[0].name ] == theValue) {
	        if (_self[0].nodeName == 'INPUT') {
		        _self[0].value = '';
	        }
	        else if (_self[0].nodeName == 'TEXTAREA') {
		        _self[0].innerHTML = '';
		        _self[0].value = '';
	        }
            _self[0].className = '';
        }
        else if (theValue == '') {
	        if (_self[0].nodeName == 'INPUT') {
		    _self[0].value = defaultTxt[ _self[0].name ];
	        }
	        else if (_self[0].nodeName == 'TEXTAREA') {
		    _self[0].innerHTML = defaultTxt[ _self[0].name ];
		    _self[0].value = defaultTxt[ _self[0].name ];
	        }
            _self[0].className = 'empty';
        }
        else {
            _self[0].className = '';
        }
    }
    
    //Validate form field
     var validateField = function(_self) {
	var theValue = _self[0].value;
        if ( (theValue != '' && defaultTxt[ _self[0].name ] == theValue) || theValue == '') { //default or empty value
            _self[0].parentNode.firstChild.className = 'status error';
            _self[0].parentNode.firstChild.title = 'Не заполнено поле';
	    return false;
        }
	else if (_self[0].nodeName == 'INPUT' && !pattern.test( theValue )) {
	    _self[0].parentNode.firstChild.className = 'status error';
            _self[0].parentNode.firstChild.title = 'Неправильный email';
	    return false;
	}
	else {
	    _self[0].parentNode.firstChild.className = 'status ok';
            _self[0].parentNode.firstChild.title = 'ok';
	    return true
	}
    }
     
    $('#formFeedback').submit(function() {
        if (textValid && fieldValid) {
            $.post("/ajax/feedback.html",
            {
                "ElementName" :"Feedback",
                "FromName"    :"Посетитель",
                "FromEmail"   :$('#form_mail')[0].value,
                "Subject"     :"Обратная связь",
                "Body"        :$('#form_text')[0].value
            },
            function(data) {
                if (data.Result == 'Sended') {
                    $('#feedback_form').html('<b>Ваше сообщение отправлено оператору.</b>');
                }
                else {
                    $('#feedback_form').html('<b>Результат отправки: ' + data.Result + '</b>. Причина: ' + data.Error);
                }
            },
            "json");
        }
        return false;
    });
    
    $('#form_mail').focus( function() {
	    resetName( $(this) );
    });
    
    $('#form_text').focus( function() {
	    resetName( $(this) );
    });
    
    $('#form_mail').blur( function() {
        resetName( $(this) );
        fieldValid = validateField( $(this) );
        if (textValid && fieldValid) {
		    $('#formFeedback div.submit input').removeClass('disabled');
		    $('#formFeedback div.submit input').removeAttr('disabled');
	    }
    });
     
    $('#form_text').blur( function(){
        resetName( $(this) );
	    textValid = validateField( $(this) );
	    if (textValid && fieldValid) {
		    $('#formFeedback div.submit input').removeClass('disabled');
		    $('#formFeedback div.submit input').removeAttr('disabled');
	    }
    });
});
