// индикатор загрузки #shadow - временно отключен!
function show_loader(stale) {
    return;
    var s = document.createElement("div");
    s.id = "shadow";
    if(!stale) {
        s.onclick= function() {  s.fade({ from:0.7 })  } ;
    }
    $('all').appendChild(s);
}

// form management
function select_get_value(id) {
    if($(id).disabled) return 0;
    return $(id).options[$(id).selectedIndex].value;
}

function select_set_value(id, value) {
    for( i in $(id).options) {
          if(!i.match('^[0-9]+$')) continue;
          if($(id).options[i].value == value ){
            $(id).selectedIndex = i;
            return 1;
        }
    }
    return 0;
}

function select_del_option(id, value) {
    for( i in $(id).options) {
        if(!i.match('^[0-9]+$')) continue;
        if($(id).options[i].value == value ){
            $(id).removeChild($(id).options[i]);
            return;
        }
    }
}

function select_add_option(id, val, text) {
    var o = new Element('option', { value : val}).update(text);
    $(id).appendChild(o);
}

function reset_form(id) {
    $(id).getElements().each( function(el) {
        if(el.disabled) return;
        if(el.tagName == 'SELECT') el.selectedIndex = 0;
        else {
            if(el.type == 'text') el.value = "";
        }
        fd.updateview(el);
    });
}

//main page 
function switchreg(cb) {
    if(!cb.checked) {
        $('regmain').style.display = 'block';
        $('checkall').style.display = 'block';
        $('regopt').style.display = 'none';
    } else {
        $('regmain').style.display = 'none';
        $('checkall').style.display = 'none';
        $('regopt').style.display = 'block';
    }
}

function check_all(sel) {
    $(sel.form).getInputs('checkbox').each( function(el) {
        if(!el.disabled && el != sel) 
            el.checked = !el.checked;
    } );
}

function show_contacts() {
    var d = $('hidcontacts');
    if(d.style.display == 'none') {
        d.appear({duration: 1});
    } else {
        d.fade({duration: 1});
    }
}

//all pages
// проверка формы на непустое поле
function validate(fldid) {

    if ( $(fldid).value.length == 0 || $(fldid).value.match(/^\s*$/) ) {
        return false
    }

    return true;
}

// проверка формы регистрации
function validate_reg(fldid) {
    $(fldid).value = $(fldid).value.strip();
    var val = $(fldid).value.toLowerCase();

    if ( val.length == 0 || val.match(/^\s*$/) ) {
        return false;
    }

    /*    
     if( val.match('[,; ]') ) {
        alert("Для оптовой регистрации воспользуйтесь соответствующей ссылкой");
        return false;
    }
    */
    return true;
}

function openwin( winname ) {
  window.open("/tlds_help/"+winname+".pl","littlehelp","toolbar=no,scrollbars=yes,width=360,height=450");
}

function checkwhois( frm ) {
  dname = frm.domain_name.value;
  if (! dname)
    return false;

  return true;
}

function openwin4( winname ) {
  window.open("/scripts/spec_py.pl","littlehelp","toolbar=no,scrollbars=yes,width=360,height=450");
}


function openwin2( winname ) {
  window.alert('Регистрация в зоне "'+winname+'" ещё не начата на нашем сайте');
}

function openwin3( winname ) {
  window.alert('Регистрация в зоне "'+winname+'" приостановлена');
}

function changeall( frm ) {
  //var frm = document.forms[2];
  for (var i = 0; i < frm.elements.length; i++) {
    var elem = frm.elements[i];
    var s4 = elem.name.substring(0, 4);
    if ( s4 == 'tld_' && !elem.disabled )
      elem.checked = frm.all_tlds.checked;
  }
}

function switch_index_tabs(name) {
    if($('itab_' + name).hasClassName('inactive')) {
        $('host_descr').toggle();
        $('py_descr').toggle();
        $('itab_host').toggleClassName('inactive');
        $('itab_py').toggleClassName('inactive');
    }
}

function gotoifconf( question, url ) {
    if (confirm(question)) {
	location.href=url
    }
}

function addZero(vNumber){ 
    return ((vNumber < 10) ? "0" : "") + vNumber 
} 
        
function formatDate(vDate, vFormat){ 
    var vDay              = addZero(vDate.getDate()); 
    var vMonth            = addZero(vDate.getMonth()+1); 
    var vYearLong         = addZero(vDate.getFullYear()); 
    var vYearShort        = addZero(vDate.getFullYear().toString().substring(3,4)); 
    var vYear             = (vFormat.indexOf("yyyy")>-1?vYearLong:vYearShort) 
    var vHour             = addZero(vDate.getHours()); 
    var vMinute           = addZero(vDate.getMinutes()); 
    var vSecond           = addZero(vDate.getSeconds()); 
    var vDateString       = vFormat.replace(/dd/g, vDay).replace(/MM/g, vMonth).replace(/y{1,4}/g, vYear) 
    vDateString           = vDateString.replace(/hh/g, vHour).replace(/mm/g, vMinute).replace(/ss/g, vSecond) 
    return vDateString 
} 

function nowdate (pointer) {
    pointer.value = formatDate( new Date, 'yyyy-MM-dd' );
}

function nowdate_mstart (pointer) {
    pointer.value = formatDate( new Date, 'yyyy-MM-01' );
}

function nowdate_mend (pointer) {
    pointer.value = formatDate( new Date, 'yyyy-MM-31' );
}

       
function changeall2( frm, sender, other  ) {
    var check = $(sender).checked; 
    if( $(other)) $(other).checked = check; 
    var cnt = $(frm).elements.length;
    for (var i = 0; i < cnt; i++) {
       var elem = $(frm).elements[i];
       var s4 = elem.name.substring(0, 4);
       if ( s4 == 'tld_' && !elem.disabled ) elem.checked = check;                
    }                    
}

function redir ( url ) {
               window.location.replace(url); 
}

 // при клике на ряд таблицы выбирать чекбокс
 function click_tr(event){ 
     if(Event.element(event).type == 'checkbox') return;

     Event.findElement(event, 'tr').descendants().find(
          function(el) { 
             if(el.type != 'checkbox') return 0;
              el.checked = !el.checked; 
          }  
     )
 }



var TabMenu = Class.create();
TabMenu.prototype = {
    initialize: function(list) {
                    this.list = list;
                },
    select_tab   : function(num) {

                    this.list.each( function(a) {
                        if(a == num) {
                            $(a).show();
                            $('menu_'+a).addClassName('selected');
                        } else {
                            $(a).hide();
                            $('menu_'+a).removeClassName('selected');
                        }
                    });
                }
};


// базовые функции Ajax

    function doAjax( url, params, okHandler, failHandler ) {

        ajax_info.loading();
        var ajax = new Ajax.Request( url , {
                method : 'post',
                parameters : params,
                onFailure : failHandler,
                onSuccess : okHandler
            });
    }

    function show_error_text(id) {
        if(id == 'TIMEOUT') {
            return "Ошибка при соединении с сервером";
        } 
        if(id == 'PARAMS') {
            return "Неверные параметры";
        } 
        if(id == 'OK') {
            return "Успешно выполнено";
        } 
    }
