var by=new Array();

by["cpu"]= new Array(
"Quad Core Xeon x3430",
"Quad Core Xeon x3440",
"Quad Core Xeon E5620",
"2*Quad Core Xeon E5620"
);

by["ram"] = new Array("2Gb","4Gb");
by["hdd"] = new Array("500Gb","1000Gb","2000Gb");

//by["platform"]= new Array(65,72.5,140);
by["platform"]= new Array(72.5,140);

by["limit_cpu"]=new Array("LimitServer Intel Single Core","LimitServer Intel Core Dual");
by["lim_tariff"]=new Array(85, 125);

by["lim_cost"]=new Array(85, 125);

by["cpu_cost"]=new Array(23,28,44,88);
by["ram_cost"]=new Array(6.8,13.8);
by["hdd_cost"]=new Array(10,19,29);

by["traf_cost"]= new Array(0.5294,0.4118,0.3529,0.2941,0.2706,0.2529,0.2353,0.2235,0.2176,0.2118,0.2059,0.2000);

//Eqp + Soft
by["cost_adds"]=new Array(2,77,97);

//Colocation
var by_atx_col= 26;
var by_atx_power= 15;
var by_atx_setup= 10;

var by_rack_col= 10;
var by_rack_unit= 2;
var by_rack_power= 15;
var by_rack_setup= 10;

var wbox = new Array();

wbox["cpu"]= new Array(
"Celeron е3400 (2 ядра, 1M, 2.6Ггц) HDD(1 x 500 GB SATA) ОЗУ(2048)",
"Celeron е3400 (2 ядра, 1M, 2.6Ггц) HDD(2 x 500 GB SATA) ОЗУ(2048)",
"Core2 Quad Q8300 (4 ядра, 4M, 2.5Ггц) HDD(1 x 500 GB SATA) ОЗУ(4096)",
"Core2 Quad Q8300 (4 ядра, 4M, 2.5Ггц) HDD(2 x 500 GB SATA) ОЗУ(4096)"
);

wbox["adm_cost"] = 0;
wbox["cpu_cost"] = new Array(75, 85, 105, 115);

by["traf_cost"]= new Array(0.5294,0.4118,0.3529,0.2941,0.2706,0.2529,0.2353,0.2235,0.2176,0.2118,0.2059,0.2000);
//Eqp + Soft
by["cost_adds"]=new Array(2,77,97);


//------------------------------------------------
 var msg='';
//-------------------------
// ЦЕНЫ
//-------------------------
function cent(amount)
{
    amount=(Math.round(amount*100))/100;
    return (amount==Math.floor(amount)) ? amount : ((amount*10 == Math.floor(amount*10)) ? amount + '0' : amount);
}

function show_options(param)
{
    // 0 - hide eu + us / show rb
    // 1 - show us/ hide eu rb
    // 2 - show eu/ hide us rb
    // 3 - hide us rb eu
    //   alert(param);
    //var objSrvEU=document.getElementById("srv_eu").style;
    //var objSrvUS=document.getElementById("srv_us").style;
    //var objSrvBY=document.getElementById("srv_by").style;
    var objSrv = $jq("#srv_d");
    var objAddsBY = $jq("#adds_by");
    var objAddsBYc = $jq("#adds_by_col");

    var objRamBy=$jq("#ram_by");
    var objHddBy=$jq("#hdd_by");
    var objRack=$jq("#srv_rack");
    
//    var objWbox_msg=$jq("#wbox_msg");

//    objWbox_msg.hide();
    objRamBy.hide();
    objHddBy.hide();

    objRack.hide();
    objAddsBY.hide();
    objAddsBYc.hide();

    //by
    switch (param)
    {
    case 0:
        objSrv.show();
        objAddsBY.show();
        break;
    //us
    case 1:
        objAddsUS.show();
        break;
    //eu
    case 2:
        objAddsEU.show();
        break;
    //by col
    case 3:
        objAddsBYc.show();
        objRack.show();
        break;
    //us col
    case 4:
        objAddsBYc.show();
        objRack.hide();
        break;
    case 6:
        objSrv.hide();
        objAddsBYc.show();
        break;
    case 7: // wbox
        objSrv.show();
        objAddsBY.show();
//        objWbox_msg.show();
        //objSrvBY.show();
       break;

    default:
        break;
    }
/*
    if (param>3)
    {
        objSrvBY.show();
    }
    else

    if(param<3)
    {
        objSrv.show();
    }
*/
    $jq("#total_usd").val(0);
}


function update_on_service()
{
    var objService=document.getElementById("service").value;
    var objSrvtype=document.getElementById("srv_type");
    var objPackets=document.getElementById("packets");

    var objSrvOS=document.getElementById("srv_os").style;
    var objSrvADM=document.getElementById("srv_adm").style;
    $jq("#srv_d").hide();

    objSrvtype.value='';
    objPackets.length=1;

    if(objService==1)
    {
        show_options(6);
        objSrvOS.display="none";
        objSrvADM.display="none";

    }
    else if(objService==0)
    {
        show_options(0);
        objSrvOS.display="";
        objSrvADM.display="";
    }
    else if(objService==2)
    {
        show_options(7);
        objSrvOS.display="";
        objSrvADM.display="";
	upd_srv_type();
    }
    else if(objService==3)
    {
        window.location="http://extmedia.com/f.server.msg.htm";
    }

     if(objSrvtype==1)
    {
        show_options(6);
        objSrvOS.display="none";
        objSrvADM.display="";
    }
    

    if(objService==0)
    {
            objSrvtype.length=2;
            objSrvtype.options[0].text="Профессиональные серверы";
            objSrvtype.options[0].value='0'
            objSrvtype.options[1].text="Бюджетные серверы";
            objSrvtype.options[1].value='1'
    }
   else if(objService==2)
    {
            objSrvtype.length=1;
            objSrvtype.options[0].text="Профессиональные серверы";
            objSrvtype.options[0].value='0'
    }
    else if(objService==1)
    {
        objSrvtype.length=3;
        objSrvtype.options[0].text="";
        objSrvtype.options[0].value='';
        objSrvtype.options[1].text="Rackmount";
        objSrvtype.options[1].value='0'
        objSrvtype.options[2].text="ATX/BTX";
        objSrvtype.options[2].value='1'
    }

    if(objSrvtype.length==2)
    {
       objSrvtype.selectedIndex=0;
       upd_srv_type();
    }
}

function update_os()
{
   var objOS=document.getElementById("os");
   var objADM=document.getElementById("adm");
   if(objOS.selectedIndex<=1)
   {
       objADM.selectedIndex=0;
       objADM.length=2;
       objADM.options[0].text="Экстмедиа";
       objADM.options[0].value='full';
       objADM.options[1].text="Собственное";
       objADM.options[1].value='none';
    }
    else
    {
       objADM.selectedIndex=0;
       objADM.length=1;
       objADM.options[0].text="Собственное";
       objADM.options[0].value='none';
    }
}


function  update_on_options()
{

    //var objOptionsUS=document.getElementById("options_us").value;
    //var objOptionsEU=document.getElementById("options_eu").value;
    var objSrvtype=document.getElementById("srv_type").value;
    var objService=document.getElementById("service").value;
    var objSrv=document.getElementById("servers");

    if(objSrvtype==0)
    {
        return;
    }
}

function  update_on_servers()
{
    var objSrvtype=$jq("#srv_type").val();
    var objSrv=$jq("#servers").val();
    var objService=$jq("#service").val();

    var objRamBy=$jq("#ram_by");
//    var objRam=$jq("#ram");
    //var objRam=$jq('select[name="ram[]"]');

    var objHddBy=$jq("#hdd_by");
    var objHdd=$jq('select[name="hdd[]"]');

    if ((objSrvtype==0) && (objService==0))
    {
        objRamBy.show();
        objHddBy.show();
        objHdd.empty();
        for(i=0;i<by["hdd"].length;i++)
        {
            $jq("<option></option>").attr("value", i).html(by["hdd"][i]).appendTo(objHdd);
        }

        //$jq("<option></option>").attr("value", '2').html("4Gb").appendTo(objRam);
    }

/*
    if ((objSrvtype==0) && (objService==2))
    {
        for (i=0;i<by["lim_tariff"][objSrv].length;i++)
        {
            addOption(objPackets, by["lim_tariff"][objSrv][i], i);
        }
    } 
*/
    document.getElementById("total_usd").value='';
}

function  upd_srv_type()
{
    var objSrvtype=document.getElementById("srv_type").value;
    var objService=document.getElementById("service").value;
    var objSrv=document.getElementById("servers");
    var objTotal=document.getElementById("total_usd").value;
    var objPackets=$jq("#packets");
    //objPackets.hide();
//by
    if(objService==0)
    {
        objSrv=document.getElementById("servers");
        if(objSrvtype==0)
        {
            show_options(0);
            objSrv.length=1;
            for (i=0;i<by["cpu"].length;i++)
            {
                addOption(objSrv, by["cpu"][i], i);
            }
        }
        else if(objSrvtype==1)
        {
            show_options(7);
            objSrv.length=1;
            for (i=0;i<wbox["cpu"].length;i++)
            {
                addOption(objSrv, wbox["cpu"][i], i);
            }
        }
    }

        else  if(objService==1)
        {
            if(objSrvtype==0)
            {
                show_options(3);
            }
            else if(objSrvtype==1)
            {
                show_options(4);
            }

        }
        else  if(objService==2)
        {
            show_options(7);
            objSrv.length=1;
            for (i=0;i<by["limit_cpu"].length;i++)
            {
                addOption(objSrv, by["limit_cpu"][i], i);
            }
        }
        
        if(objSrv.length==2)
        {
            objSrv.selectedIndex=1;
            update_on_servers();
            objPackets.selectedIndex=1;
            //upd_srv_type();
        }

    document.getElementById("total_usd").value='';
}

function Update_on_proceed()
{
    var objTotal=document.getElementById("total_usd");
    var objType=document.getElementById("client_type");

    var objBuySrv=document.getElementById("order_srv");
    var objIndivi=document.getElementById("individual");
    var objCorp=document.getElementById("corporate");

    UpdatePrice();

    if ((objTotal.value>0) && (msg!=''))
    {

       if (confirm("Все ли правильно?\n\n"+msg+""))
       {

              //corp
              if(objType.value==0)
              {
                  objBuySrv.style.display="none";
                  objCorp.style.display="";
                  document.forms.order_corp.order_c.value=msg;
              }

              //indiv
              if(objType.value==1)
              {
                  objBuySrv.style.display="none";
                  objIndivi.style.display="";
                  document.forms.order_indiv.order_i.value=msg;
              }
            return true;

        }
        else {return false;}
     }

}


function UpdatePrice()
{
    $jq("#error_txt").html('');

    var Total=0;
    var Total_a=0;
    var ptrn=/^\d+[\.]{0,1}\d*$/;

    var objSrvtype=document.getElementById("srv_type");
    //var objOs=document.getElementById("os");
    var objService=document.getElementById("service");
    var objSrv=document.getElementById("servers");
    var objType=document.getElementById("client_type");
    var objTerm=document.getElementById("period");
    //var objOptionsUS=document.getElementById("options_us");
    //var objOptionsEU=document.getElementById("options_eu");
    var objPackets=document.getElementById("packets");
    var objTotal=document.getElementById("total_usd");
    var objUnits=document.getElementById("units");

    var objOS=document.getElementById("os");
    var objADM=document.getElementById("adm");


    var adds=0;
    var err=0;

    var discount=0;

    var i=0;

    msg='';
    if(objService.value==0)
    {
    
        if(objSrvtype.value=='' || objService.value=='' || objType.value=='' || objTerm.value=='') {
            $jq("#error_txt").html('Не заполнены обязательные поля !');
            return false;
        }
        if((objSrvtype.value>0) && objSrv.value=='' ) {
            $jq("#error_txt").html('Не заполнены обязательные поля !');
            return false;
        }
        //if((objSrvtype.value==1) &&  objSrv.value=='' ) return;
        //if((objSrvtype.value==2) &&  objSrv.value=='' ) return;
        
    }
    else if(objService.value==1)
    {
        $jq("#error_txt").html('Не заполнены обязательные поля !');
        if(objSrvtype.value=='' || objService.value=='' || objType.value=='' || objTerm.value==''){
            $jq("#error_txt").html('Не заполнены обязательные поля !');
            return false;
        }
    }
    $jq("#error_txt").html('');
    //LimitServer
    if(objService.value==2)
    {
        i=objService.selectedIndex;
        i2= objSrv.selectedIndex;
        msg+='Услуга: '+objService.options[i].text+ ' ' +objSrv.options[i2].text+"\n";

        i=objSrvtype.selectedIndex;
        msg+='Размещение: '+objSrvtype.options[i].text+"\n";

        //i=objPackets.selectedIndex;
        //msg+='Пакет: '+objPackets.options[i].text+"\n";

        i=objTerm.selectedIndex;
        msg+='Срок заказа (месяцев) - '+objTerm.options[i].text+"\n";

        i=objType.selectedIndex;
        msg+='Тип заказа: '+objType.options[i].text+"\n";
        Total=(by["lim_cost"][objSrv.value]*objTerm.value);
            if (isNaN(Total)) return;
        objTotal.value=Total;

        i=objOS.selectedIndex;
        msg+='Операционная система: '+objOS.options[i].text+"\n";

        i=objADM.selectedIndex;
        msg+='Администрирование: '+objADM.options[i].text+"\n";
    }

    //Dedicated
    if(objService.value==0)
    {
        i=objService.selectedIndex;
        msg+='Услуга: '+objService.options[i].text+"\n";

        //by
       var adds_traf = $jq("#adds_traf");
        if(objSrvtype.value==0)
        {

            i=objSrvtype.selectedIndex;
            msg+='Тип сервера: '+objSrvtype.options[i].text+"\n";
    
    
            i=objSrv.selectedIndex;
            msg+='Сервер: '+objSrv.options[i].text+"\n";
            
            i=objADM.selectedIndex;
            msg+='Администрирование: '+objADM.options[i].text+"\n";

            i=objOS.selectedIndex;
            msg+='Операционная система: '+objOS.options[i].text+"\n";

           
            var hdd = $jq('select[name="hdd[]"]');
            var ram = $jq("#ram :selected");
            //for (i=0;i<ram.length;i++)
            //{
             msg+='Память: '+ram.text()+"\n";
            //}

            for (i=0;i<hdd.length;i++)
            {
                msg+='Жесткий диск: '+by["hdd"][hdd[i].value]+"\n";
            }
			
			var tr_val = Number(adds_traf.val());

			if(tr_val >10)
			{

		        msg+='Дополнительный трафик: '+tr_val+"Гб\n";
			}
			else if (tr_val >0 && tr_val <10)
			{
				alert("Дополнительный трафик должен быть больше 10Гб");
                $jq("#error_txt").html('Дополнительный трафик должен быть больше 10Гб');
				return (-1);
			}
			
            i=objTerm.selectedIndex;
            msg+='Срок заказа (месяцев) - '+objTerm.options[i].text+"\n";

            i=objType.selectedIndex;
            msg+='Тип заказа: '+objType.options[i].text+"\n";
        }

        //=================WhiteBox ======================
       else if(objSrvtype.value==1)
        {
        
            cpu_cost = wbox["cpu_cost"][objSrv.value];
            if(objTerm.value==1){
                Total= Math.ceil(cpu_cost)*objTerm.value;
            }
            else{
                Total= Math.ceil(cpu_cost) + Math.ceil(cpu_cost)*(objTerm.value-1);
            }

            i=objSrvtype.selectedIndex;
            msg+='Тип сервера: '+objSrvtype.options[i].text+"\n";

            i=objSrv.selectedIndex;
            msg+='Сервер: '+objSrv.options[i].text+"\n";
            
            i=objTerm.selectedIndex;
            msg+='Срок заказа (месяцев) - '+objTerm.options[i].text+"\n";

            i=objType.selectedIndex;
            msg+='Тип заказа: '+objType.options[i].text+"\n";
            
            ext_adm = i=objADM.selectedIndex;
            msg+='Администрирование: '+objADM.options[i].text+"\n";

            i=objOS.selectedIndex;
            msg+='Операционная система: '+objOS.options[i].text+"\n";

            var tr_val = Number(adds_traf.val());
            if(tr_val >10)
            {

                msg+='Дополнительный трафик: '+tr_val+"Гб\n";
            }
            else if (tr_val >0 && tr_val <10)
            {
                alert("Дополнительный трафик должен быть больше 10Гб");
                return (-1);
            }
            
            if($jq("#adm").val() == 'full'){
                Total += wbox["adm_cost"];
            }
/*
            if (objTerm.value==12)
            {
               objTotal.value=cent(Total-Total*0.1);
               msg+='Скидка :'+Total*0.1+"\n";
            }
            else
            {
               objTotal.value=cent(Total);
            }
*/

    }

    
    //by
    if(objService.value==0)
    {
        //Dedicated
        if(objSrvtype.value==0)
        {
            c_cost = by["cpu_cost"][objSrv.value];
            r_cost = 0;
            h_cost = 0;
            t_cost = 0;			

           r_cost=by["ram_cost"][0]* ram.val();

            for (i=0;i<hdd.length;i++)
            {
                h_cost+=by["hdd_cost"][hdd[i].value];
            }

            if(objSrv.value==3)
            {
                p_cost = by["platform"][1]; //superMicro
            }
            else
            {
                p_cost = by["platform"][0];// 3-х дисковая, минимум
            }
/*            
            else
            {
                p_cost = by["platform"][0];
            }
*/            
			var tr_val = Number(adds_traf.val());
			d = Math.floor(tr_val/10);	
			
			if(d>=1)		
			{
				if(d<11)
				{
					t_cost = by["traf_cost"][d]	* tr_val;
				}
				else
				{
					l = by["traf_cost"].length-1;
					t_cost = by["traf_cost"][l]	* tr_val;
				}
			}
            else if(objSrvtype.value==1)
            {
                Total= Total + t_cost;
            }
				
			//Total= Math.ceil(c_cost+r_cost+h_cost+p_cost)+100*objTerm.value + t_cost;
            Total= Math.ceil(c_cost+r_cost+h_cost+p_cost)+75*objTerm.value + t_cost;
            }
            if (isNaN(Total)) return;
           

             for (i=0;i<by["cost_adds"].length;i++)
            {
                f=document.getElementById('adds_by'+i);

                if(f && (f.value!='' &&  !ptrn.test(f.value)))
                {
                    err=1;
                }
                else
                {
                    adds=document.getElementById('adds_by'+i);
                    Total_a+=adds.value*by["cost_adds"][i];

                    if(adds.value!='')
                    {

                        objT=document.getElementById('adds_by_t'+i);
                        objT=objT.firstChild;
                        msg+=objT.nodeValue+' :'+adds.value*by["cost_adds"][i]+"\n";
                    }
                }

            }
            if (objTerm.value==12)
            {
               discount=Math.round((Total+Total_a)*0.1);
               objTotal.value=cent((Total+Total_a)-discount);
               msg+='Скидка :'+discount+"\n";

            }
            else
            {
               objTotal.value=cent(Total+Total_a);
            }

        }

    }
   //Colocation
   if(objService.value==1)
   {
    //Colocation
    if(objService.value==1)
    {
        i=objService.selectedIndex;
        msg+='Услуга: '+objService.options[i].text+"\n";

        i=objSrvtype.selectedIndex;
        msg+='Корпус: '+objSrvtype.options[i].text+"\n";

        i=objTerm.selectedIndex;
        msg+='Срок заказа (месяцев) - '+objTerm.options[i].text+"\n";

        i=objType.selectedIndex;
        msg+='Тип заказа: '+objType.options[i].text+"\n";
    }

        if(objSrvtype.value==0)
        {
            i=objUnits.selectedIndex;
            msg+='Units: '+objUnits.options[i].text+"\n";

            Total = (by_rack_col+by_rack_unit*objUnits.value+by_rack_power)*objTerm.value+by_rack_setup;
        }
        else if(objSrvtype.value==1)
        {
            Total = by_atx_col*objTerm.value+by_atx_setup+by_atx_power;
        }

//********акция
        //Total = Total*0.9;
//**********

        if (objTerm.value==12)
        {
            discount=(Total)*0.1;
            objTotal.value=cent((Total)-discount);
            msg+='Скидка :'+discount+"\n";
        }
        else
        {
            objTotal.value=cent(Total);
        }
   }

    if(err==1)
    {
        alert('Столбец количество содержит не корректное число!');
        objTotal.value=0;
    }
    else
    {
        msg+='Итого: '+objTotal.value+" USD\n\n";
        msg+='Примечание:'+document.getElementById("message").value+"\n";
    }
//    alert(msg);
     document.forms.hosting.zakaz.value=msg;
}


function addOption (oListbox, text, value, isDefaultSelected, isSelected)
{
    var oOption = document.createElement("option");
    oOption.appendChild(document.createTextNode(text));
    oOption.setAttribute("value", value);

    if (isDefaultSelected) oOption.defaultSelected = true;
    else if (isSelected) oOption.selected = true;

    oListbox.appendChild(oOption);
}



function  select_limit_srv()
{
   var objService=document.getElementById("service");
   objService.selectedIndex=3;
   update_on_service();
}

var servers = {
    newHdd : function (id, html) {
        var x = document.createElement("div");
        var xx = document.createElement("select");
        xx.className="select";
        xx.name="hdd[]";
        xx.setAttribute('class', 'sel_size'); 

        for(i=0;i<by["hdd"].length;i++)
        {
           $jq("<option></option>").attr("value", i).html(by["hdd"][i]).appendTo(xx);
        }

        if($jq('select[name="hdd[]"]').length<4)
        {
            x.appendChild(xx);
            var xx = document.createElement("img");
            xx.src = "/images/icon_delete.png";
            xx.title = "удалить HDD";
            xx.alt = "удалить HDD";
            xx.onclick = new Function('servers.removeHdd(this)');
            x.appendChild(xx);
            document.getElementById("hdde").appendChild(x);
        }
    },
    removeHdd : function (obj) {
        $jq(obj.parentNode).remove();
    }
/*
    newRam : function (id, html) {
        var x = document.createElement("div");
        var xx = document.createElement("select");
        xx.className="select";
        xx.name="ram[]";

        for(i=0;i<by["ram"].length;i++)
        {
            $jq("<option></option>").attr("value", i).html(by["ram"][i]).appendTo(xx);
        }

        if($jq('select[name="ram[]"]').length<4)
        {
            x.appendChild(xx);
            var xx = document.createElement("img");
            xx.src = "/images/icon_delete.png";
            xx.title = "удалить RAM";
            xx.alt = "удалить RAM";
            xx.onclick = new Function('servers.removeRam(this)');
            x.appendChild(xx);
            document.getElementById("rame").appendChild(x);
        }
    },
    removeRam : function (obj) {
        $jq(obj.parentNode).remove();
    }
*/
}


function sel_tarif(opt_id)
{
    $jq("#srv_d").show();

//   servers.msg.html;0-0-0-1-0-1-2"
// 0 аренда
// 1 страна
// 2 сервер
// 3 ram
// 4... hdd

    var objService = $jq("#service");
    var objSrvtype = $jq("#srv_type");
    var objSrv = $jq("#servers");

    var objRam = $jq("#ram");

    var opt_arr = new String(opt_id);

    var v_arr = opt_arr.split("-");

    opt_id = v_arr[0];

    objService.val(opt_id);
    update_on_service();
    
    objSrvtype.val(v_arr[1]);
    upd_srv_type();
    
    objSrv.val(v_arr[2]);
    update_on_servers();

    if(opt_id ==0)
    {
        objRam.val(v_arr[3]);
        if(Number(v_arr[5]>=0))
        {
            servers.newHdd();
        }
        if(Number(v_arr[6]>=0))
        {
            servers.newHdd();
        }
        if(Number(v_arr[7]>=0))
        {
            servers.newHdd();
        }
       var hdd = $jq('select[name="hdd[]"]');
       for (i=0;i<hdd.length;i++)
       {
            hdd[i].value=v_arr[i+4];
       }
    }
}
