function checkValidForm(obj) {
	
    var form_validator = new Array();
    cleanErrorMsg(obj);
    /*star checkboxlist*/
    var listNodes = $(obj).getElementsByTagName('tbody');
    var list_nodes = $A(listNodes);

    list_nodes.each(function(node) {
            if (node.style.display!='none') {
            var _checkboxlistNodes = $(node).select('input[validate="checkboxlist"]');
            form_validator[form_validator.length+1] = valid_checkboxlist(_checkboxlistNodes);
            var _selectlistNodes = $(node).select('select[validate="selectlist"]');
            form_validator[form_validator.length+1] = valid_select(_selectlistNodes);
            } else {
            var _checkboxlistNodes = $(node).select('input[validate="checkboxlist"]');
            var _selectlistNodes = $(node).select('select[validate="selectlist"]');
            clean_selectlist(_selectlistNodes);
            clean_checkboxlist(_checkboxlistNodes);
            }
        });
    /*end checkboxlist*/

    /*start empty*/
    var emptyNodes = $(obj).select('[validate="empty"]');
    form_validator[form_validator.length+1] = valid_empty(emptyNodes);
    /*end empty*/

    /*start emptyp*/
    var emptypNodes = $(obj).select('[validate="emptyp"]');
    form_validator[form_validator.length+1] = valid_emptyp(emptypNodes);
    /*end emptyp*/

    /*start e-mail verification*/
    var emailNodes = $(obj).select('[validate="email"]');
    form_validator[form_validator.length+1] = valid_email(emailNodes);
    /*end e-mail verification*/

    /*start folder verification*/
    var folderNodes = $(obj).select('[validate="folder"]');
    form_validator[form_validator.length+1] = valid_folder(folderNodes);
    /*end folder verification*/

    /*start alias verification*/
    var aliasNodes = $(obj).select('[validate="alias"]');
    form_validator[form_validator.length+1] = valid_alias(aliasNodes);
    /*end alias verification*/
    
    /*start words verification*/
    var wordsNodes = $(obj).select('[validate="words"]');
    form_validator[form_validator.length+1] = valid_words(wordsNodes);
    /*end words verification*/
    


    /*start select*/
    var selectNodes = $(obj).select('select[validate="select"]');
    form_validator[form_validator.length+1] = valid_select(selectNodes);
    /*end select*/

    /*start select*/
    var selectpNodes = $(obj).select('select[validate="selectp"]');
    form_validator[form_validator.length+1] = valid_selectp(selectpNodes);
    /*end select*/

    /*start number*/
    var numberNodes = $(obj).select('input[validate="number"]');
    form_validator[form_validator.length+1] = valid_number(numberNodes);
    /*end number*/
	
    /*start float*/
    var floatNodes = $(obj).select('input[validate="float"]');
    form_validator[form_validator.length+1] = valid_float(floatNodes);
    /*end float*/	

    /*start checkbox*/
    var emptyCheckbox = $(obj).select('input[validate="checkbox"]');
    form_validator[form_validator.length+1] = valid_checkbox(emptyCheckbox);
    /*end checkbox*/
    /*start SUBMITING FORM*/
    for ( i = 0; i < form_validator.length; i++ ) {
        if (form_validator[i] == false) return false;
    }
    return true;
    /*end SUBMITING FORM*/
}


function validateForm(obj,dosubmit) {
	//if ($('editformcontent'))
	//	$('editformcontent').hide();
	if ($('editformloader'))
		$('editformloader').show();	    
    //var params = Form.serialize(obj,true);
    //alert(params);    
    if (checkValidForm(obj)==false)
    {
					
		if ($('editformloader'))
			$('editformloader').hide();			
		
        return false;
    }
        
    /*start SUBMITING FORM*/
    if (typeof dosubmit == "undefined")
    {
        ajax_updater_form(obj);
    }
    else if (dosubmit==true)
    {
        return true;
    }
    /*end SUBMITING FORM*/
}

function validateEditorForm(obj) 
{
	if ($('editformloader'))
		$('editformloader').show();	
	tinyMCE.triggerSave(false,true); 
    if (checkValidForm(obj)==false)
    {

		if ($('editformloader'))
			$('editformloader').hide();			
		
        return false;
    }
    ajax_updater_form(obj);
	return false;
}


function submitform(objform)
{
 if(objform.onsubmit())
 {
 objform.submit();
 }
}



function validateFormButton(obj,btn,ldr,dosubmit) 
{
    $(btn).hide();
    if (ldr)
        if ($(ldr))
            $(ldr).show();
    if (checkValidForm(obj)==false)
    {
        $(btn).show();
        if (ldr)
            if ($(ldr))
                $(ldr).hide();        
        
        return false;
    }
    /*start SUBMITING FORM*/
    if (typeof dosubmit == "undefined")
    {
        ajax_updater_form(obj);
    }
    else if (dosubmit==true)
    {
        $(obj).dosubmit();
    }
    /*end SUBMITING FORM*/
}



function validateFormWithFCK(obj) {
    updateEditorFormValue();
    validateForm(obj);
    return false;
}

function cleanErrorMsg(obj) {
	$$("span.error_msg").invoke('hide');
	$$("span.error_msg_visible").invoke('hide');
}

function valid_empty(emptyNodes) {
	var nodes = $A(emptyNodes);
    var no_errors = true;
    nodes.each(function(node) {
    	if(!node.value.length) {
        	no_errors = false;
			$(node).previous('span.error_msg').style.display='block';
        }
    });
    return no_errors;
}

function valid_emptyp(emptyNodes) {
        var nodes = $A(emptyNodes);
        var no_errors = true;
        nodes.each(function(node) {
                    if (node.up('p', 0).style.display!='none') {
                    if(!node.value.length) {
                    no_errors = false;
                    $(node).up('td',0).down('span.error_msg').style.display='block';
                    }}
        });
    return no_errors;
}


function valid_email(emailNodes) {
        var nodes = $A(emailNodes);
        var no_errors = true;
          //var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid e-mail
          //var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; // valid e-mail
		  var reg2=/^([\w.-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
        nodes.each(function(node) {
                    if (reg2.test(node.value)) { // if syntax is valid
                        return no_errors;
                    }
                    else {
                        no_errors = false;
                        $(node).up('td',0).down('span.error_msg').style.display='block';
                    }
        });
    return no_errors;
}


function valid_folder(folderNodes) {
        var nodes = $A(folderNodes);
        var no_errors = true;
          var reg = /^[a-zA-Z0-9\-\_\/]+$/; //  valid

        nodes.each(function(node) {
                    if (!reg.test(node.value))
                    { // if syntax is not valid
                        no_errors = false;
                        $(node).up('td',0).down('span.error_msg').style.display='block';
                    }
        });
    return no_errors;
}


function valid_alias(aliasNodes) {
	var nodes = $A(aliasNodes);
    var no_errors = true;
    var reg = /^[a-zA-Z0-9\_]+$/;
   	nodes.each(function(node) {
		if (!reg.test(node.value)){
			no_errors = false;
			$(node).previous('span.error_msg').style.display='block';
		}
    });
    return no_errors;
}

function valid_words(wordsNodes) {
        var nodes = $A(wordsNodes);
        var no_errors = true;
          var reg = /^[a-zA-Z0-9\-\_\s]+$/; //  valid

        nodes.each(function(node) {
                    if(node.value.length) {
                    if (!reg.test(node.value))
                    { // if syntax is not valid
                        no_errors = false;
                        $(node).up('td',0).down('span.error_msg').style.display='block';
                    }
        }});
    return no_errors;
}










function valid_checkbox(emptyNodes) {
        var nodes = $A(emptyNodes);
        var no_errors = true;
        nodes.each(function(node) {
                    if(!node.checked) {
                    no_errors = false;
                    $(node).up('td', 0).down('span.error_msg').style.display='block';
                    }
        });
    return no_errors;
}

function valid_number(numberNodes) {
	var nodes = $A(numberNodes);
    var no_errors = true;
    nodes.each(function(node) {
    	var val= parseInt(node.value);
        if(isNaN(val)) {
        	no_errors = false;
            $(node).previous('span.error_msg').style.display='block';
        }
    });
    return no_errors;
}

function valid_float(numberNodes) {
        var nodes = $A(numberNodes);
        var no_errors = true;
        nodes.each(function(node) {
                    //var val= parseFloat(node.value);
					
                      if (!/^((\d+(\.\d*)?)|((\d*\.)?\d+))$/.test(node.value))  {
                    no_errors = false;
                    $(node).up('td', 0).down('span.error_msg').style.display='block';
                    }
        });
    return no_errors;
}

function valid_select(selectNodes) {
        var nodes = $A(selectNodes);
        var no_errors = true;
        nodes.each(function(node) {
                    if(node.value=='0') {
                    no_errors = false;
                    $(node).up('td', 0).down('span.error_msg').style.display='block';
                    }
        });
    return no_errors;
}

function valid_selectp(selectNodes) {
        var nodes = $A(selectNodes);
        var no_errors = true;
        nodes.each(function(node) {
                    if (node.up('p', 0).style.display!='none') {
                    if(node.value=='0') {
                    no_errors = false;
                    $(node).up('td', 0).down('span.error_msg').style.display='block';
                    }
                    }
        });
    return no_errors;
}

function valid_checkboxlist(checkboxlistNodes) {
     var nodes = $A(checkboxlistNodes);
        if (!nodes.length) return true;
        var no_errors = false;
        nodes.each(function(node) {
                if (no_errors==false) {
                    if(node.checked) {
                        $(node).up('td', 0).down('span.error_msg').style.display='none';
                        no_errors = true;
                    } else {
                        no_errors = false;
                        $(node).up('td', 0).down('span.error_msg').style.display='block';
                    }
                }
        });
    return no_errors;

}
function clean_checkboxlist(checkboxlistNodes) {
     var nodes = $A(checkboxlistNodes);
        nodes.each(function(node) {
        node.checked = false;
        });
}

function clean_selectlist(selectlistNodes) {
     var nodes = $A(selectlistNodes);
        nodes.each(function(node) {
        node.value = '0';
        });
}

function submitFilter (formname,editname,formaction)
{
        var filter=$F(editname);
        if (filter!=0)
            formaction = formaction + '/filter/' + filter;
         formname.action=formaction;
          formname.submit();
}

