var feedback_username;
var Feedback = function (name, email, comments, namespan, emailspan, commentsspan)
{
    function getElement(id)
    {
        if(document.getElementById)
            return document.getElementById(id);
        return null;
    }

    this.iName = getElement(name);
    this.iEmail = getElement(email);
    this.iComments = getElement(comments);
    this.sName = getElement(namespan);
    this.sEmail = getElement(emailspan);
    this.sComments = getElement(commentsspan);

    if(document.fForm.addEventListener) {
        document.fForm.addEventListener("submit", validateForm, false);
    } else if(document.fForm.attachEvent) {
        document.fForm.attachEvent("onsubmit", validateForm);
    } else {
        document.fForm.onsubmit = validateForm;
    }
    setTimeout('$("#fName").focus();',500);
}

function validateForm (evt)
{
    var evnt = evt ? evt : window.event;
    if(! feedback.isFormValid()) {
        if(evnt.preventDefault) {
            evnt.preventDefault();
        } else if (evnt.cancelBubble != null) {
            evnt.cancelBubble = true;
        }
        return false;
    }
    return true;
};


Feedback.prototype.clearAllInFeedback = function () {
    $(this.sName).hide();
    $(this.sEmail).hide();
    $(this.sComments).hide();
}

function resetFields(){
   feedback.clearAllInFeedback();
   return true;
}

Feedback.prototype.isFormValid = function ()
{
    feedback.clearAllInFeedback();
    function isBlank(text) {
		if(text.match(/^\s*$/)) {
			return true;
        }
		return false;
    }

    function isValidEmailID(id) {
		if(id.match(/^[0-9a-zA-Z_\.-]+@([0-9a-zA-Z_-]+\.)+[a-zA-Z0-9_-]+$/)) {
            return true;
        }
		return false; 
    }

    if(isBlank(this.iName.value)) {
        $(this.sName).fadeIn(200);
        return false;
    } else
        $(this.sName).hide()
    
    if(! isValidEmailID(this.iEmail.value)) {
        $(this.sEmail).fadeIn(200);
        return false;
    } else
        $(this.sEmail).hide()

    if(isBlank(this.iComments.value)) {
        $(this.sComments).fadeIn(200);
        return false;
    } else
        $(this.sComments).hide()
    
    return true;
};
function showForm(){
    $('#success_box').css({'display':'none'});
    $('#failure_box').css({'display':'none'});
    $('#form_data').css({'display':'block'});
}
$(document).ready(function() {
    $("#fForm").submit(function () {
        if(!feedback.isFormValid())
            return;
        feedback_username = $('#fName').val();
        $.post(
            "/hindi/backend2/getFeedback2",
            { uname: $('#fName').val(),email: $('#fEmail').val(), comments: $('#fComments').val()},
            function (response)
            {
                setTimeout("finishAjax('"+escape(response)+"')", 400);
            });

        return false;
    });

    $("#bClose").click( function () {
        // hack to be removed. related to selection bug in feedback form.
        $(parent.document).unbind("mouseup");
        parent.tb_remove();
    });

    $("#bReset").click( function () {
        resetFields();
    });
});

   
function finishAjax(response) {
    if (response === 'Done') {
        $('#form_data').css({'display':'none'});
        $('#success_box').css({'display':'block'});
        $('#feedbackUsername').text(feedback_username);
    } else {
        $('#form_data').css({'display':'none'});
        $('#failure_box').css({'display':'block'});
    }
    feedback_username = "";
}

window.onload = function () {
    feedback = new Feedback("fName", "fEmail", "fComments", 
            "fSpanName", "fSpanEmail", "fSpanComments");
};

