//-------------------------
//-------------------------
// UNIX
//-------------------------
var unix=new Array();
unix["plans"]=new Array("Почта","Почта+","Старт","Оптимал","Профи","Мастер","Бизнес");
unix["cost"]=new Array(7,17,7,9,13,19,23);
unix["terms"]=new Array(1,2,3,6,12);
unix["add_names"]=new Array();
unix["add_names"]["add_space"]="Дополнительное место (Mb)";
unix["add_names"]["add_list"]="Дополнительный почтовый список рассылки (шт.)";
unix["add_names"]["add_java"]="Поддержка дополнительного Java Web Application (шт.)";
unix["add_names"]["add_mail"]="Дополнительный почтовый ящик (шт.)";
unix["add"]=new Array();
unix["add"]["add_list"]=3;
unix["add"]["add_java"]=2;
unix["add_mail"]=new Array();
unix["add_mail"][1]=1;
unix["add_mail"][5]=4;
unix["add_mail"][15]=11;
unix["add_mail"][50]=33;
unix["add_space"]=new Array();
unix["add_space"][50]=1;
unix["add_space"][500]=7;
unix["add_space"][1024]=10;

//-------------------------
// UNIX belarus
//-------------------------

var unix_bel=new Array();
unix_bel["plans"]=new Array("Почта","Почта+","Старт","Оптимал","Профи","Мастер","Бизнес");
unix_bel["cost"]=new Array(7,17,7,9,13,19,23);
unix_bel["terms"]=new Array(1,2,3,6,12);
unix_bel["add_names"]=new Array();
unix_bel["add_names"]["add_space"]="Дополнительное место (Mb)";
unix_bel["add_names"]["add_list"]="Дополнительный почтовый список рассылки (шт.)";
unix_bel["add_names"]["add_java"]="Поддержка дополнительного Java Web Application (шт.)";
unix_bel["add_names"]["add_mail"]="Дополнительный почтовый ящик (шт.)";
unix_bel["add"]=new Array();
unix_bel["add"]["add_list"]=3;
unix_bel["add"]["add_java"]=2;
unix_bel["add_mail"]=new Array();
unix_bel["add_mail"][1]=1;
unix_bel["add_mail"][5]=4;
unix_bel["add_mail"][15]=11;
unix_bel["add_mail"][50]=33;
unix_bel["add_space"]=new Array();
unix_bel["add_space"][50]=1;
unix_bel["add_space"][500]=7;
unix_bel["add_space"][1024]=10;


//-------------------------
// WINDOWS
//-------------------------
var win=new Array();
win["plans"]=new Array("Почта","Почта+","Старт","Оптимал","Профи","Мастер","Бизнес");
win["cost"]=new Array(0,0,0,0,0,0,0);
win["terms"]=new Array(1,2,3,6,12);
win["add"]=new Array();
win["add"]["add_list"]=3;
win["add"]["add_java"]=3.2;
win["add_names"]=new Array();
win["add_names"]["add_space"]="Дополнительное место (Mb)";
win["add_names"]["add_list"]="Дополнительный почтовый список рассылки (шт.)";
win["add_names"]["add_java"]="Поддержка дополнительного Java Web Application (шт.)";
win["add_names"]["add_mail"]="Дополнительный почтовый ящик (шт.)";
win["add_mail"]=new Array();
win["add_mail"][1]=1;
win["add_mail"][5]=4;
win["add_mail"][15]=11;
win["add_mail"][50]=33;
win["add_space"]=new Array();
win["add_space"][50]=1.6;
win["add_space"][500]=11.2;
win["add_space"][1024]=16;

//-------------------------
// WINDOWS bel
//-------------------------
var win_bel=new Array();
win_bel["plans"]=new Array("Почта","Почта+","Старт","Оптимал","Профи","Мастер","Бизнес");
win_bel["cost"]=new Array(0,0,9,11,15,23,27);
win_bel["terms"]=new Array(1,2,3,6,12);
win_bel["add"]=new Array();
win_bel["add"]["add_list"]=3;
win_bel["add"]["add_java"]=3.2;
win_bel["add_names"]=new Array();
win_bel["add_names"]["add_space"]="Дополнительное место (Mb)";
win_bel["add_names"]["add_list"]="Дополнительный почтовый список рассылки (шт.)";
win_bel["add_names"]["add_java"]="Поддержка дополнительного Java Web Application (шт.)";
win_bel["add_names"]["add_mail"]="Дополнительный почтовый ящик (шт.)";
win_bel["add_mail"]=new Array();
win_bel["add_mail"][1]=1;
win_bel["add_mail"][5]=4;
win_bel["add_mail"][15]=11;
win_bel["add_mail"][50]=33;
win_bel["add_space"]=new Array();
win_bel["add_space"][50]=1.6;
win_bel["add_space"][500]=11.2;
win_bel["add_space"][1024]=16;




//-------------------------
// СКИДКИ (в процентах)
//-------------------------
var discounts=new Array();
discounts["unix"]=new Array();
discounts["unix"]["terms"]=[0,0,0,0,10];
discounts["unix"]["add_space"]=10;
//discounts["unix"]["add_mysql"]=10;
discounts["unix"]["add_list"]=10;
discounts["unix"]["add_java"]=10;

discounts["unix_bel"]=new Array();
discounts["unix_bel"]["terms"]=[0,0,0,0,10];
discounts["unix_bel"]["add_space"]=10;
//discounts["unix_bel"]["add_mysql"]=10;
discounts["unix_bel"]["add_list"]=10;
discounts["unix_bel"]["add_java"]=10;

discounts["win"]=new Array();
discounts["win"]["terms"]=[0,0,0,0,10];
discounts["win"]["add_space"]=10;
//discounts["win"]["add_mysql"]=10;
discounts["win"]["add_list"]=10;
discounts["win"]["add_java"]=10;

discounts["win_bel"]=new Array();
discounts["win_bel"]["terms"]=[0,0,0,0,10];
discounts["win_bel"]["add_space"]=10;
//discounts["win_bel"]["add_mysql"]=10;
discounts["win_bel"]["add_list"]=10;
discounts["win_bel"]["add_java"]=10;


//----------------------------
// СПИСОК дополнительных услуг
//----------------------------
var other=new Array();
other["unix"]=new Array("add_list","add_java");
other["win"]=new Array("add_list","add_java");
other["unix_bel"]=new Array("add_list","add_java");
other["win_bel"]=new Array("add_list","add_java");
//-------------------------

// проверка домена на занятость
function check_domain()
{
    var dname=new String();
    var domain_name=document.getElementById("doman");
    dname=trim(domain_name.value);
    dname=dname.replace(/\..*/gi,"");

    if (dname.length==0)
    {
        alert('Не введено имя домена.');
        return -1;
    }

    var izone=document.getElementById("zona");
    i=izone.selectedIndex;
    dzone=izone.options[i].text;

    dname+=dzone;
    domain_name.value=dname;


    mywin= open("http://extmedia.com/check/"+dname, "twin", "width=500,height=150");
    mywin.focus();
}


// округляет число вверх до ближайшего целого
function myround(amount) {
    amount=(Math.round(amount*10))/10;
    amount2=Math.floor(amount);
    rez=amount-amount2;
    if(rez>=0.1)
    {
        amount=amount2+1;
    }
    else
    {
        amount=amount2;
    }
    return (amount);
}

// округляет число с показом сотых
function cent(amount) {
    amount=(Math.round(amount*100))/100;
    return (amount==Math.floor(amount)) ? amount : ((amount*10 == Math.floor(amount*10)) ? amount + '0' : amount);
}
// округляет число до кратного 10
function roundfiz(amount)
{
    amount=(Math.round(amount/10))*10;
    return amount;
}
// округляет число value вверх до ближайшего целого, кратного заданному number.
function nearest(value,number) {
    var ceil=Math.ceil(value);
    var remainder=value%number;
    if (remainder>0) value=value-remainder+number;
    return value;
}

function update_plan()
{
    var  platform=document.forms.hosting.platform.value;
    //var  dc_loc=document.forms.hosting.dc_loc.value;
    var  dc_loc='bel';
    var  platform=document.forms.hosting.platform.value;
    var  db=document.getElementById("db");

    p=document.getElementById("plan");

    if((p.value<=2) && (p.value>0)  && (platform=="win"))
    {
    //alert("Тарифные планы: Почта и Почта+ на базе ОС Windows  - не предоставляются.\n\n Измените операционную систему.");
    }
    if((p.value>3)&&  (platform=="win"))
    {
        db.style.display="";
    }
    else
    {
        db.style.display="none";
    }

}

function update_items()
{
	update_domain();
    var discount=new Array();
    var temp=new Array();

    var dname=new String();
    var domain_name=document.getElementById("doman");
    var websrv=document.getElementById("websrv");
    var Otraf_limit=document.getElementById("traf_limit").style;
    var s1=document.getElementById("s1");

    platform=document.forms.hosting.platform.value;
    //dc_loc=document.forms.hosting.dc_loc.value;
    dc_loc='bel';
    if (platform=="unix")
    {
        websrv.length=2;
        websrv.options[0].text="Apache (Linux)";
        websrv.options[0].value='apache';

        websrv.options[1].text="Tomcat (Linux)";
        websrv.options[1].value='tomcat';

    }
    else if(platform=="win")
    {
        websrv.length=1;

        websrv.options[0].text="IIS (Windows)";
        websrv.options[0].value='iss';
    }

    if (dc_loc=="eu")
    {

        Otraf_limit.display="none";

        document.forms.hosting.platform.length=2;
        document.forms.hosting.platform.options[0].text="";
        document.forms.hosting.platform.options[0].value='0';
        document.forms.hosting.platform.options[1].text="Debian GNU/Linux";
        document.forms.hosting.platform.options[1].value='unix';
        if (platform=="unix")
        {
            discount=discounts["unix"];
            temp=unix;
        }
    }

    if (dc_loc=="bel")
    {
        Otraf_limit.display="";

        document.forms.hosting.platform.length=3;
        document.forms.hosting.platform.options[0].text="";
        document.forms.hosting.platform.options[0].value='0';
        document.forms.hosting.platform.options[1].text="Debian GNU/Linux";
        document.forms.hosting.platform.options[1].value='unix';
        document.forms.hosting.platform.options[2].text="Windows";
        document.forms.hosting.platform.options[2].value='win';

        if (platform=="unix")
        {
            discount=discounts["unix_bel"];
            temp=unix_bel;
        }
        else if (platform=="win") {
            discount=discounts["win_bel"];
            temp=win_bel;
        }
        else platform="";
    }

    if (platform=="")
    {
        document.forms.hosting.plan.length=1;
        document.forms.hosting.plan.options[0].text="";
        document.forms.hosting.plan.options[0].value="";
    }
    else
    {
        document.forms.hosting.plan.length=temp["plans"].length+1;
        document.forms.hosting.plan.options[0].text="";
        document.forms.hosting.plan.options[0].value="";
        for (i=0;i<temp["plans"].length;i++){
            document.forms.hosting.plan.options[i+1].text=temp["plans"][i];
            document.forms.hosting.plan.options[i+1].value=i+1;
        }
    }
    update_plan();
    chan(0);
}


function chan(need_check)
{
    if(need_check==undefined)
        need_check=0;

    //    update_items();

    var suma=0;
    var sum_by=0;
    var zakaz="";
    var zakaz_by="";
    document.forms.hosting.zakaz_by.value=zakaz_by;
    //var ObjSum_by=document.getElementById("sum_by");
    //var ObjSum_nds_by=document.getElementById("sum_nds_by");

    document.forms.hosting.sum.value=suma;
    var dname=document.getElementById("doman");
    dname.value=trim(dname.value);
    dname_str = dname.value;
    pos=dname_str.search(/\..*/gi);
    var izone=document.getElementById("zona");
    var tr=document.getElementById("s2");
    var s3=document.getElementById("s3");
    //var dc_loc=document.forms.hosting.dc_loc.value;
    var dc_loc='bel';
    var is_new=document.forms.hosting.is_new;
    var zona=document.forms.hosting.zona.value;
    var dom_sum = 0;
    var host_sum = 0;
    
    if(tr.checked==true)
    {
        is_new.value="0";
    }
    else if(s3.checked==true)
    {
        is_new.value="0";
    }
    else
    {
        is_new.value="1";
    }


    i=izone.selectedIndex;
    var dzone=izone.options[i].text;
    if (dname.value.length<=0 )
    {
    //alert("Вы не указали домен");
    //return false;
    }
    
    var is_by = 0;
    if(dname_str.indexOf('.by')>=0)
    {
        is_by = 1;
    }

    // проверка выбора доменного имени
    update_domain();

    zakaz+="Домен - "+dname.value+" \n";

    // проверка выбора платформы
    //if (document.forms.hosting.platform.selectedIndex<=0) { alert("Вы не выбрали операционную систему"); return false; }
    platform=document.forms.hosting.platform.value;
    zakaz+="Операционная система - "+document.forms.hosting.platform.options[document.forms.hosting.platform.selectedIndex].text+"\n";

    p=document.getElementById("plan");
    if((p.value<=2) && (p.value>0) && (platform=="win"))
    {
        alert("Тарифные планы: Почта и Почта+ на базе ОС Windows - не предоставляются.\n\n Измените тарифный план.");
	return false;
    }

    if (dc_loc=="bel") {
        if (platform=="unix") {
            discount=discounts["unix_bel"];
            temp=unix_bel;
        }
        else {
            discount=discounts["win_bel"];
            temp=win_bel;
        }
    }

    // проверка выбора тарифного плана
    //if (document.forms.hosting.plan.selectedIndex<=0) { alert("Вы не выбрали тарифный план"); return false; }
    nomerplan=document.forms.hosting.plan.selectedIndex-1;
    nameplan=temp["plans"][nomerplan];
    zakaz+="Тарифный план - "+nameplan+"\n";


    // база данных mysql / mssql
    if((p.value>3)&& ((dc_loc=="bel") && (platform=="win")))
    {
        var  db=document.getElementById("database");
        i=db.selectedIndex;
        zakaz+="База данных: "+db.options[i].text+"\n";;
    }

    // проверка выбора срока оплаты
    //if (document.forms.hosting.term.selectedIndex<=0) { alert("Вы не выбрали срок заказа"); return false; }
    var objBY=document.getElementById("dom_by").style;
    var Tr = document.forms.hosting.term;
    if(Tr.selectedIndex==5 && zona=='.by'){ //акция
        objBY.display="";
    }
    else{
        objBY.display="none";
    }
    
    term=temp["terms"][document.forms.hosting.term.selectedIndex-1];
    zakaz+="Срок заказа (месяцев) - "+term+"\n";

    if (document.forms.hosting.plan.selectedIndex>0)
    {
        suma=temp["cost"][nomerplan]*term*(100-discount["terms"][document.forms.hosting.term.selectedIndex-1])/100;
        suma=myround(suma);
    }
    else
    {
        suma=temp["cost"][nomerplan]*term;
    }
    // проверка на дополнительные почтовые ящики
    if(document.forms.hosting.add_mail.value.length>0) {
        if (document.forms.hosting.add_mail.value>0) {
            document.forms.hosting.add_mail.value=nearest(document.forms.hosting.add_mail.value,1);
            q50=Math.floor(document.forms.hosting.add_mail.value/50);
            q15=Math.floor((document.forms.hosting.add_mail.value-q50*50)/15);
            q5=Math.floor((document.forms.hosting.add_mail.value-q50*50 - q15*15)/5);
            q1=document.forms.hosting.add_mail.value-q50*50 - q15*15 - q5*5;
            suma+=term*(q50*temp["add_mail"][50]+q15*temp["add_mail"][15]+q5*temp["add_mail"][5]+q1*temp["add_mail"][1]);
        } else {
            alert("В дополнительных услугах вводите числа отличные от нуля.");
            return false;
        }
    }

    zakaz+="\n";
    
    zakaz+="Белорусский ДЦ\n";
    
/*    if (document.forms.hosting.dc_loc.value=='bel') {
        zakaz+="Белорусский ДЦ\n";
    }
    if (document.forms.hosting.dc_loc.value=='eu') {
        zakaz+="ДЦ в Нидерландах\n";
    }
*/

    //zakaz+=(document.forms.hosting.add_space.value>0) ? temp["add_names"]["add_space"]+" - "+document.forms.hosting.add_space.value+"\n" : "";
    //zakaz+=(document.forms.hosting.add_mysql.value>0) ? temp["add_names"]["add_mysql"]+" - "+document.forms.hosting.add_mysql.value+"\n" : "";
    zakaz+=(document.forms.hosting.add_list.value>0) ? temp["add_names"]["add_list"]+" - "+document.forms.hosting.add_list.value+"\n" : "";
    zakaz+=(document.forms.hosting.add_java.value>0) ? temp["add_names"]["add_java"]+" - "+document.forms.hosting.add_java.value+"\n" : "";
    zakaz+=(document.forms.hosting.add_mail.value>0) ? temp["add_names"]["add_mail"]+" - "+document.forms.hosting.add_mail.value+"\n" : "";

    //web-server
    i=document.forms.hosting.websrv.selectedIndex;
    zakaz+="\n"+"Тип Web-сервера:  "+document.forms.hosting.websrv.options[i].text+"\n\n";
    ///

    if (document.forms.hosting.service1[0].checked==true)
    {
        zakaz+="Регистрация домена в зоне ";
    }
    else if(document.forms.hosting.service1[1].checked==true)
    {
        zakaz+="Перенос и поддержка домена ";
    }
    else
    {
        zakaz+="Регистрации и поддержки домена не требуются ";
    }

    // новая регистрация или поддержка домена
    
    zakaz+=document.forms.hosting.zona.options[document.forms.hosting.zona.selectedIndex].text;

    var cl_type = document.forms.hosting.client_type.value;
    
    var sum_host=0;
    var sum_dom=0;
    if(s3.checked==true)
    {
        if(cl_type!='private')
        {
            host_sum = sum_by=myround(suma*usd)*1.20;
        }
        else
        {
            host_sum = sum_by=myround(suma*usd);
        }
    //suma+=domainpr_year[zona];
    }
    else if(s3.checked==false)
    {
	sum_dom = domainprice[zona];
	dom_sum = roundfiz(domainprice[zona]*usd);
    	suma+= (domainprice[zona]);
        	
        host_sum = suma*usd;
        if(cl_type!='private')
        {
            sum_by=myround((host_sum+dom_sum))*1.20;  
        }
        else
        {
            sum_by=myround((host_sum+dom_sum)); 
        }
        
    }
   
    if(cl_type!='private')
    {
        sum_by=suma*usd*1.20;
    }
    else
    {
        sum_by=suma*usd;
    }    
    
    zakaz+="\n";
    document.forms.hosting.sum.value=cent(suma);
    //zakaz+="\n----------------------------------\nОбщая стоимость - "+document.forms.hosting.sumusd.value+" у.е.";
    if(s3.checked==false || sum_by==0)
    {
        document.forms.hosting.dzona.value=dzone;
    }
    sum_by=roundfiz(sum_by);
    nds_by=myround(sum_by-(sum_by/1.20));

    if(cl_type!='private')
    {
        zakaz_by=zakaz+"\n----------------------------------\nИтого: "+sum_by+" бел.руб (в том числе НДС "+nds_by+" бел.руб)";
    }
    else
    {
        zakaz_by=zakaz+"\n----------------------------------\nИтого: "+sum_by+" бел.руб";
    }
    
    document.forms.hosting.sumby.value=sum_by;
    document.forms.hosting.zakaz_by.value=zakaz_by;
    //    }
    zakaz+="\n----------------------------------\n";
    document.forms.hosting.zakaz.value=zakaz;
    
    if(parseInt(sum_host)>0)
    {
            
        $jq("#order_txt").html("Стоимость домена: "+sum_dom+" USD, стоимость хостинга: "+sum_host+" USD");
    }
    //document.forms.hosting.order_txt.value="Стоимость домена: "+dom_sum/usd+", стоимость хостинга: "+host_sum/usd;
    return true;
}

function order()
{
    if (document.forms.hosting.service1[0].checked)
    {
        check_domain2(1);
    }
    else
    {
    	var domain_name=document.getElementById("doman");
        var dname=domain_name.value;
        if (dname.length <=0) {
        	alert('Не введено имя домена.');
        	return false;
        }
        Check_RegForm();
    }
}


function Check_RegForm()
{
    if (!update_domain()) return false;     
    if (!chan()) return false;
    var s3=document.getElementById("s3");

    var dname=document.getElementById("doman");
    var izone=document.getElementById("zona");
    var tr=document.getElementsByName("service1");
    i=izone.selectedIndex;
    var dzone=izone.options[i].text;

    var sum = document.forms.hosting.sum;
    var sum_usd = document.forms.hosting.sumusd;    
    var sum_by = document.forms.hosting.sumby;
    
    if (document.forms.hosting.domain.value.length>0) {
        dom="Доменное имя: "+dname.value;
        if (document.forms.hosting.service1[0].checked) dom+=" (регистрация)";
        if (document.forms.hosting.service1[1].checked) dom+=" (перенос)";
        document.forms.hosting.zakaz.value=dom+"\n"+document.forms.hosting.zakaz.value;

    } 
    else { //alert("Вы не ввели адрес домена.");
        return false;
    }

    if (document.forms.hosting.client_type.selectedIndex<=0) { 
        //            alert("Вы не выбрали тип заказа.");
        return false; 
    }
        
    if (sum.value>0)
    {
        if (confirm("Все ли правильно?\n\n"+document.forms.hosting.zakaz.value+""))
        {
            if(parseInt(sum_by.value)>0 && dzone=='.by')
            {
                var cl_type = document.forms.hosting.client_type.value;
                if(cl_type!='private')
                {
                    sum_usd.value= cent(sum_by.value/usd_order);
                }
                else
                {
                    sum_usd.value= cent(sum_by.value/usd);
                }
            }
            else
            {
                sum_usd.value= sum.value;
            }
         
            //            objBY.display="none";
            document.hosting.submit();
        }
        else
        {
            return false;
        }
    }
    else
        return false;
}

function sel_tarif(opt_id)
{
    var plans=$jq("#plan");
    var Term=document.getElementById("term");
    //Term=document.forms.hosting.term;
    //dc_loc=document.getElementById("dc_loc");
    var os=document.getElementById("platform");

    switch (opt_id)
    {
        //unx+mail
        case 1:
        //unx+mail+
        case 2:
            //dc_loc.value='eu';
            //            update_items();
            os.value='unix';
            update_items();
            Term.selectedIndex=5;
            plans.val(opt_id);
            break;
        //unx+start
        case 3:
        //unx+opt
        case 4:
        //unx+prof
        case 5:
        //unx+master
        case 6:
        //unx+buss
        case 7:
            //dc_loc.value='bel';
            //update_items();
            os.value='unix';
            update_items();
            plans.val(opt_id);
            Term.selectedIndex=5;
            update_items();
            break;

        //win - mail mail+
        //win+start
        case 8:
        //win+opt
        case 9:
        //win+prof
        case 10:
        //win+master
        case 11:
        //win+buss
        case 12:
            //dc_loc.value='bel';
            update_items();
            os.value='win';
            update_items();
            Term.selectedIndex=5;
            plans.selectedIndex=opt_id-5;
            break;

        default:
            break;
    }
}
