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

//  TODO: доработать
function check_all(on) {
    $('mainregform').getInputs('checkbox').each( function(el) {
        if(!el.disabled) 
            el.checked = on;
    } );
}

/* ** checkbox_action( classname, obj ) **
 * включает / выключает все чекбоксы в форме
 *
 * classname - ID формы в которой находятся чекбоксы
 * obj - главный чекбокс $(this) */
function checkbox_action(classname, obj) {
    $(classname).getInputs('checkbox').each( function(el) {
        if(!el.disabled) 
            el.checked = obj.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
    }

    //  правильное отображение прогресса
    show_loader();

    return true
}

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

    if ( val.length == 0 || val.match(/^\s*$/) ) {
        alert("Введите имя домена");
        return false;
    }
/*
    if( val.match('[, ]') ) {
        alert("Для оптовой регистрации воспользуйтесь соответствующей ссылкой");
        return false;
    }
    */
/*
    var res = val.match( /^\s*([^.]+)\.(([^.]+)?.+)\s*$/ );
    if(res) {
        // name 3 level
        if( res[2]!= 'name' && !$('tld_'+res[2]) && $('tld_name').checked ) {
            return true;
        }
        // ключевые слова
        if( (res[2] == 'клс' || !res[2] && $('mainregform').getInputs('checkbox').find( function(el) {
            return el.checked;
        }) ) ) {
            return true;
        }
        check_all(false);

        if( res[2].match(/\.name$/) && res[3] != 'nam' ) {
            $('tld_name').checked = true;
            return true;
        }


        if( res[2] && $('tld_'+res[2]) ) {
            $('tld_'+res[2]).checked = true;
        }
    }

    if( !$('mainregform').getInputs('checkbox').find( function(el) {
        return el.checked;
    })) {
        return false;
    }
    */
    //  правильное отображение прогресса
    show_loader();

    return true;
}

function openurl(url, name) {
    window.open(url,name,"toolbar=no,scrollbars=yes,width=640,height=480");
}

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

function openwin4( winname ) {
    window.open("/scripts/spec_py.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 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;
  }
}

//только на странице index
function switch_itabs(name) {
   var a = new Array('host', 'py', 'newgtld'); 
   a.each( function(id) {
       if(id == name ) {
        $(id + '_descr').show();
        $('itab_' + id).removeClassName('inactive');
       } 
       else {
        $(id + '_descr').hide();
        $('itab_' + id).addClassName('inactive');
       }

   });

}

// для других
function switch_index_tabs(name, name2, hk, dir) {
   var a = new Array(name, name2); 
   a.each( function(id) {
        $(id + '_descr').toggle();
        $('itab_' + id).toggleClassName('inactive');

        if ( hk ) { 
            $('itab_' + id).toggleClassName('auchk');

            if ( dir ) {
                $('list_price').setAttribute('disabled', 'disabled');
                $('back_list_price').removeAttribute('disabled');
            }
            else {
                $('list_price').removeAttribute('disabled');
                $('back_list_price').setAttribute('disabled', 'disabled');
            }
        }
   });
}

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

function confirm_box(question) {
    if ( confirm(question) ) {
        return true;
    }

    return false;
}

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 = document.getElementById(sender).checked; 
    document.getElementById(other).checked = check; 
    var cnt = document.getElementById(frm).elements.length;
    for (var i = 0; i < cnt; i++) {
       var elem = document.getElementById(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 set_domprice(dname) {
    var src_name = 'per_pr_' + dname;
    var targ_name = 'price_' + dname;

    var val = new String( select_get_value(src_name) );
    var price = val.replace(/\d+_|\.00/g, ''); 

    $(targ_name).innerHTML = price;
    set_totalprice();
}

// это надо чтоб все контролы на странице могли управлять способом оплат       
var pay_types_object_global_container;
function set_paytypes_obj(obj) {
    pay_types_object_global_container = obj; 
} 

function set_totalprice() {
    var totalprice = 0;

    if ( !$('total_price') ) return;


    $$('div').each( function(elem) {
        if ( !elem.id.match(/^price_/) ) return;

        totalprice += parseFloat(elem.innerHTML);  
    } );

    totalprice = Math.round( totalprice * 100 ) / 100;

    $('total_price').innerHTML = totalprice;

    var ref = new Object;
    ref.value = totalprice || 0;

/*
    if ( wmnames == 0 ) {
        option_assist_callback(ref);
    }
    */

    // обновляем форму выбор способа оплаты с новой суммой 
    if ( pay_types_object_global_container ) {
        pay_types_object_global_container.refresh({
            price: totalprice 
        });
    }


}


function option_assist_callback(ref) {

    if ( ref.value < 150 || ref.value > 6000 ) {

        if ( $('assist') ) {
            $('assist').remove();
            $('assist_dop').hide();
        }
    }
    else if ( ( ref.value > 150 || ref.value < 6000 ) && $('assist') == undefined ) {
        var text = "Оплата кредитными картами VISA и MasterCard";
        var entext = "VISA and MasterCard";

        $('mode').insert( { top: '<option id="assist" value="assist" style="background:url(/logos/assist_cards2.gif) no-repeat">' + text  + '</option>' } );

        $w("wms currency_dop forein_cur assist_dop sberbank_dop telebank_dop rur_bank_dop paycashweb").each( function(id) {
            $(id).hide();
        } );

        $('assist_dop').show();
    }
}

 // при клике на ряд таблицы выбирать чекбокс
 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; 
          }  
     )
 }

// проставление валюты в форме платежа
function validate_regdetails() {
    // проверить согласие с законом о персональных данных
//    if( $('cb_confpers') ) {
//        if ( !$('domform').getInputs('checkbox','confpers').pluck('checked').any() ) {
//            $('confpers').removeClassName('hide');
//            return false;
//        }
//        else {
//            $('confpers').addClassName('hide');
//        }
//    }
    // проверить согласие с условиями предоставления услуг
    if ( !$('domform').getInputs('checkbox','confirmed').pluck('checked').any() ) {
        $('conferr').removeClassName('hide');
        return false;
    }
    else {
        $('conferr').addClassName('hide');
    }
    // проверить согласие с условиями предоставления услуг
    if( $('cb_rfprereg') ) { 
        if ( !$('domform').getInputs('checkbox','rfprereg').pluck('checked').any() ) {
            $('confrf').removeClassName('hide');
            return false;
        }
        else {
            $('confrf').addClassName('hide');
        }
    }


    // выставим валюту в соответствии с типом оплаты
    // TODO: надо ли устанавливать валюту??
    /*
    if( select_get_value('mode') == 'bank:forein' ) {
        //$('currency_main').value = select_get_value('currency2');
    } 
    if( $('mode').selectedIndex < 3 || select_get_value('mode') == 'paymer' ) {
        //$('currency_main').value = $('currency1').value;
    }
    if( select_get_value('mode') == 'assist' ) {
        //$('currency_main').value = select_get_value('currency3');
    } 
    */

    return true;
    // Валидация формы платежа !!!!!!
    //dop_validate();
}


function showblock(name) {
    $(name).toggleClassName('hide');
}

function addEngine() {
    if ((typeof window.sidebar == "object") && (typeof window.sidebar.addSearchEngine == "function")) {
    alert('Add Webnames.Ru WHOIS');
        window.sidebar.addSearchEngine(
            "http://www.webnames.ru/ff/ffwhois.src",
            "http://www.webnames.ru/ff/ffwhois.png",
            "Webnames.Ru WHOIS",
            "Web");
    } else {
        alert("Sorry, you need Firefox or any other Mozilla-based browser to install this plugin.");
    }
}


function showhideoffer(id) {
    $j('#short'+id).toggle();
    $j('#full'+id).toggle();
    if($j('#more'+id).text() == 'more') {
        $j('#more'+id).text('less');
    } else {
        $j('#more'+id).text('more');
    }
}


