﻿function displayError(errorMessage)
{  
    var error = new Element("div", { className: "errormessage" }).update(errorMessage).hide();
    var e = $("Error");
    e.insert(error);
    new Effect.Appear(error);
    window.setTimeout(function() { new Effect.Fade(error, {afterFinish: function(effect) { effect.element.remove(); } }); }, 2000);
    
}

 function field_focus(e)
 {
    this.up().addClassName('active');
    this.addClassName('active');
 }
 function field_blur(e)
 {
    this.up().removeClassName('active');
    this.removeClassName('active');
 }
 
 function getFields()
 {
     return Form.getElements($('pageContainer')).without($('pageContainer').getElementsBySelector('input[type="button"]'));
 }
 function getRequiredFields()
 {
    return $('pageContainer').getElementsBySelector('textarea.required,input.required,select.required');
 }
 function form_validate()
 {
    var Errors = false;                
    $('pageContainer').getElementsBySelector('textarea.required,input.required,select.required').each(
    function(requiredInput){
        var hasValue = true;
        var t = requiredInput.type;       
        if ((t == 'text' || t == 'textarea') && requiredInput.value == '') hasValue = false;
        if (t == 'select-one' && (requiredInput.selectedIndex == -1 || requiredInput.options[requiredInput.selectedIndex].text == 'Please Select...')) hasValue = false;
        if (!hasValue)
        {
            Errors = true;
            displayError(requiredInput.previous('label').innerText + ' is a required field.');
        }                    
    });
    return Errors;
 }
 
function ajax_request_failed(transport)
{
    alert(transport.responseText);
}

//Event.observe(window,'load',function (e) { 
    //init_form();
//});
    
function add_hiddenfield(name,val)
{
    $('pageContainer').insert(new Element('input',{type:'hidden', 'value': val, 'name':name, 'id':name }));
}
function add_button(text)
{
    if ($$('#pageContainer div.formbuttons').reduce() == undefined) $('pageContainer').insert(new Element('div',{ className:'formbuttons' }));
    $$('#pageContainer div.formbuttons').reduce().insert(create_button(text));
}
function create_button(text)
{
    return new Element('input',{type:'button', name:text, id:'Button_'+text, value:text})
}

 function init_form(e)
 {
    getRequiredFields('pageContainer').each(
        function(requiredInput){
        var n = requiredInput.next();
        if (n == null || (n!= null && !(n.hasClassName('required'))))
                requiredInput.insert({after:new Element('div',{className:'required'}).update('*')});
        });

    getFields('pageContainer').each(
        function(field) 
        {
            field
                .stopObserving('focus',field_focus)
                .stopObserving('blur',field_blur)
                .observe('focus',field_focus)
                .observe('blur',field_blur);                      
        }
    ); 
    
    if ($('Save'))
        Event.observe($('Save'),'click',save_click);
    
    if ($('Cancel'))
        Event.observe($('Cancel'),'click',cancel_click);
                
 }
