massive={};
//функция формирования массива из формы. принимает объект jquery с набором полей
function traversal_fields(jObject,title){
    var error=false;
    jObject.each(function(){
        jObject.removeClass('ui-state-error');
        massive['title']={'title':'тип заявки','value':title};
        if($(this).hasClass("check")){
            if(check($(this).attr('name'),$(this))){
                //massive[$(this).attr('name')]={'title':$(this).attr('title'),'value':$(this).val()};
            }else{
                error=true;
                return false;
            }
        }//else{
        if($(this).attr("type")=="checkbox"){
            if($(this).attr("checked")==true){
                value_value="да";
            }else{
                value_value="нет";
            }
        }else{
            value_value=$(this).val();
        }
        massive[$(this).attr('id')]={'title':$(this).attr('title'),'value':value_value};
        }
        //}
        
        
    );
    if(!error)
        return massive;
    else return false;    
}

//отправка массива значений серверу
function send_massive(address,massive){
    $.post(address, massive);
}


//проверка значений полей
function check(type,object){
    var bValid = true;
    if(type=='name')bValid = bValid && checkLength(object,"ваше имя:",2,50);
    if(type=='mail')bValid = bValid && checkLength(object,"email",6,80);
    if(type=='phone')bValid = bValid && checkLength(object,"телефон",5,150);

    if(type=='name')bValid = bValid && checkRegexp(object,/^([0-9a-zа-я_\. ])+$/i,"Поле \"Ваше имя\" может содержать только буквы, цифры , и символы: подчеркивания (_) и точки (.), начиная с букв.");
    // From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
    if(type=='mail')bValid = bValid && checkRegexp(object,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,"например contact@teplodoor.ru");
    if(type=='phone')bValid = bValid && checkRegexp(object,/^([0-9a-zа-я_\.\,\-\/ ])+$/i,"Поле \"Телефон\" может содержать только буквы, цифры , и символы: подчеркивания (_), тире (-), обратный слеш (/), запятой (,) и точки (.).");
    if(type=='message')bValid = bValid && checkRegexp(object,/^([0-9a-zа-я_\.\,\-?!\)\( \t\r\n\v\f])+$/i,"Поле \"Вопрос\" может содержать только буквы, цифры , и символы: подчеркивания (_) и точки (.).");

    if (bValid) {
          return true;
    }else{
        return false;
    }
}
//проверка длины поля
function checkLength(o,n,min,max) {

        if ( o.val().length > max || o.val().length < min ) {
                o.addClass('ui-state-error');
                alert("Длина " + n + " должна быть в границах от "+min+" и до "+max+".");
                return false;
        } else {
                return true;
        }

}
//проверка поля регулярным выражением
function checkRegexp(o,regexp,n) {

        if ( !( regexp.test( o.val() ) ) ) {
                o.addClass('ui-state-error');
                alert(n);
                return false;
        } else {
                return true;
        }

}
