
String.prototype.trim = function()
{
	return this.replace(/^\s+|\s+$/g,"");
}

String.prototype.ltrim = function()
{
	return this.replace(/^\s+/,"");
}

String.prototype.rtrim = function()
{
	return this.replace(/\s+$/,"");
}

function getEmptyRequiredFieldIds(form, element_ids)
{
    var retValue = new Array();

    var cnt = element_ids.length;
    var elem_id = null;
    var elem = null;

    for(i=0;i<cnt;i++)
    {
        elem_id = element_ids[i];
        elem = document.getElementById(elem_id);

        if(elem)
        {
            if(elem.value.trim().length == 0)
            {
                retValue.push(elem_id);
            }
        }
    }

    return retValue;
}

function askToFillReqFields(form, emptyReqFieldIds)
{
    var field_cnt = emptyReqFieldIds.length;
    var labels = form.getElementsByTagName('label');
    var messageText = form.elements['SYS_reqFieldMessage'].value;
    var label_cnt = labels.length;
    var namesToAsk = '';

    if(field_cnt > 0)
    {
        for(i=0;i<field_cnt-1;i++)
        {
            for(j=0;j<label_cnt;j++)
            {
                if(labels[j].htmlFor == emptyReqFieldIds[i])
                {
                    namesToAsk += '\n' + labels[j].innerHTML + ', ';
                }
            }
        }

        for(j=0;j<label_cnt;j++)
        {
            if(labels[j].htmlFor == emptyReqFieldIds[i])
            {
                namesToAsk += '\n' + labels[j].innerHTML;
            }
        }
    }

    alert(messageText + ': ' + namesToAsk);
}

function submitForm(form_id, action_elem_id, action, reqFieldArray)
{
    var action_elem = document.getElementById(action_elem_id);
    var form = document.getElementById(form_id);

    if(form)
    {
        if(action_elem)
        {
            action_elem.value = action;

            var emptyReqFieldIds = getEmptyRequiredFieldIds(form, reqFieldArray);

            if(emptyReqFieldIds.length == 0)
            {
                form.submit();
            }
            else
            {
                askToFillReqFields(form, emptyReqFieldIds);
            }
        }
    }
}

function submitFormAfterConfirm(button, form_id, action_elem_id, action, reqFieldArray)
{
    var action_elem = document.getElementById(action_elem_id);
    var form = document.getElementById(form_id);

    if(form)
    {
        if(action_elem)
        {
            action_elem.value = action;

            var emptyReqFieldIds = getEmptyRequiredFieldIds(form, reqFieldArray);

            if(emptyReqFieldIds.length == 0)
            {

            }
            else
            {
                askToFillReqFields(form, emptyReqFieldIds);
            }
        }
    }
}

function toggleVisibility(elem_id, icon_id)
{
    var elem = document.getElementById(elem_id);
    
    var icon = document.getElementById(icon_id);

    if(elem)
    {
        if(elem.style.display == 'none')
        {
            elem.style.display = '';

            if(icon)
            {
                icon.className = 'expDivIcon opened';
            }
        }
        else
        {
            elem.style.display = 'none';

            if(icon)
            {
                icon.className = 'expDivIcon closed';
            }
        }
    }
}

function copyValueOnChange(src_elem_id, dst_elem_id)
{
    src_elem = document.getElementById(src_elem_id);
    dst_elem = document.getElementById(dst_elem_id);

    if(src_elem && dst_elem)
    {
        dst_elem.value = src_elem.value;
    }
}

function getParentForm(elem)
{
    var parentNode = elem.parentNode;

    if(parentNode != null)
    {
        if(parentNode.tagName != "FORM")
        {
            return getParentForm(parentNode);
        }
    }

    return parentNode;
}

function upDownClicked(elem, action, param_str)
{
    var actForm = getParentForm(elem);

    if(actForm)
    {
        var actFormName = actForm.getAttribute('name');


        var actionField = document.getElementById(actFormName + '_action_id');

        if(actionField)
        {
            actionField.value = action + '#' + param_str;
            actForm.submit();
        }
    }
}


$(function () {
    if(typeof(tinyMCE) !== 'undefined')
    {
        tinyMCE.init({cleanup : true, media_use_script : true, mode : 'specific_textareas', editor_selector: 'tinymce', theme : 'advanced', skin : 'o2k7', skin_variant: 'silver', height: '300px', width: '100%',
            plugins: 'table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,searchreplace,print,contextmenu,media,imagemanager,filemanager',
            theme_advanced_buttons1_add : 'fontselect,fontsizeselect',
            theme_advanced_buttons2_add : 'separator,insertdate,inserttime,preview,zoom,separator,forecolor,backcolor',
            theme_advanced_buttons2_add_before: 'cut,copy,paste,separator,search,replace,separator',
            theme_advanced_buttons3_add_before : 'tablecontrols,separator',
            theme_advanced_buttons3_add : 'emotions,iespell,media,advhr,separator,print',
            theme_advanced_toolbar_location : 'top',
            theme_advanced_toolbar_align : 'left',
            theme_advanced_path_location : 'bottom',
            plugin_insertdate_dateFormat : '%Y-%m-%d',
            plugin_insertdate_timeFormat : '%H:%M:%S',
            extended_valid_elements : 'a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name|style],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style],iframe[width|height|frameborder|scrolling|marginheight|marginwidth|src],object[id|width|height|type|data|style|class|align|border],param[name|value],embed',
            external_link_list_url : 'example_data/example_link_list.js',
            external_image_list_url : 'example_data/example_image_list.js'
        });
    }
});

