﻿// JScript File
    var btn1Status="Off";
    var btn2Status="Off";
    var btn3Status="Off";
    var btn4Status="Off";
    var btn5Status="Off";
    var btn6Status="Off";
    var btn7Status="Off";
    var btn8Status="Off";
    var btn9Status="Off";   
    var text="";
    function Calc(btn)
    {
        if(GetButtonStatus(btn.id)=="On"){
            closeSemi();
            return;
        }
        switch(btn.id){
            case "btn1":
                if(GetButtonStatus(btn.id)=="Disable") break;                
                ChangeButtonStatus("btn1", "On");
                //ChangeButtonStatus("btn2", "Disable");
                ChangeButtonStatus("btn5", "Disable");
                if(GetButtonStatus("btn2")=="On")//3G
                    ChangeButtonStatus("btn3", "Disable");
                if(GetButtonStatus("btn4")=="On"){//ATM
                    //on:7
                    ChangeButtonStatus("btn5", "Disable");
                    ChangeButtonStatus("btn6", "Disable");
                    ChangeButtonStatus("btn8", "Disable");
                }
                if(GetButtonStatus("btn6")=="On"){//IP/MPLS
                    ChangeButtonStatus("btn4", "Disable");
                    ChangeButtonStatus("btn5", "Disable");                                      
                }
               break;
            case "btn3":
                if(GetButtonStatus(btn.id)=="Disable") break;
                ChangeButtonStatus("btn3", "On");                
                ChangeButtonStatus("btn1", "On");
                ChangeButtonStatus("btn2", "Disable");
                ChangeButtonStatus("btn4", "Disable");
                if(GetButtonStatus("btn1")=="On")
                    ChangeButtonStatus("btn5", "Off");                                     
                if(GetButtonStatus("btn5")=="On"){//ATM
                    ChangeButtonStatus("btn8", "Disable");   
                    ChangeButtonStatus("btn6", "Disable");
                }
                break;
            case "btn4":
                if(GetButtonStatus(btn.id)=="Disable") break;
                ChangeButtonStatus("btn4", "On"); 
                //ChangeButtonStatus("btn1", "Off");
                ChangeButtonStatus("btn2", "Disable");
                ChangeButtonStatus("btn3", "Disable");
                ChangeButtonStatus("btn5", "Disable");
                ChangeButtonStatus("btn6", "Disable");
                ChangeButtonStatus("btn8", "Disable");               
                break;
            case "btn2":
                if(GetButtonStatus(btn.id)=="Disable") break;
                ChangeButtonStatus("btn2", "On");
                //6,7,8 on
                //ChangeButtonStatus("btn1", "Disable");
                ChangeButtonStatus("btn3", "Disable");
                ChangeButtonStatus("btn4", "Disable");                
                //ChangeButtonStatus("btn8", "Disable");
                if(GetButtonStatus("btn1")=="On")
                    ChangeButtonStatus("btn5", "Off");
                if(GetButtonStatus("btn6")=="On"){//IP                    
                    ChangeButtonStatus("btn5", "Disable");
                }
                break;
            case "btn5":
                if(GetButtonStatus(btn.id)=="Disable") break;
                ChangeButtonStatus("btn5", "On");
                //on: 2,7
                ChangeButtonStatus("btn4", "Disable");
                ChangeButtonStatus("btn6", "Disable");                
                if (GetButtonStatus("btn2")=="On"){                
                    //ChangeButtonStatus("btn1", "Disable");
                    ChangeButtonStatus("btn3", "Disable");                    
                }
                if (GetButtonStatus("btn5")=="On"){    
                    ChangeButtonStatus("btn8", "Disable");
                }
                if (GetButtonStatus("btn3")=="On"){   
                    //ChangeButtonStatus("btn1", "Disable");
                    ChangeButtonStatus("btn2", "Disable");
                    ChangeButtonStatus("btn4", "Disable");
                    ChangeButtonStatus("btn6", "Disable");
                    ChangeButtonStatus("btn8", "Disable");     
                }
                break;
            case "btn6":
                if(GetButtonStatus(btn.id)=="Disable") break;
                ChangeButtonStatus("btn6", "On");
                ChangeButtonStatus("btn4", "Disable");
                ChangeButtonStatus("btn5", "Disable");
                if (GetButtonStatus("btn1")=="On" && GetButtonStatus("btn2")=="Disable")
                    ChangeButtonStatus("btn7", "Disable");   
                if (GetButtonStatus("btn1")=="On" && GetButtonStatus("btn2")=="Off")
                    ChangeButtonStatus("btn7", "Disable");                
                if(GetButtonStatus("btn1")=="On" && GetButtonStatus("btn2")=="Off" 
                    && GetButtonStatus("btn3")=="Off")    {
                    ChangeButtonStatus("btn2", "Disable");
                    ChangeButtonStatus("btn3", "Disable");
                }
            break;
            case "btn7":
                if(GetButtonStatus(btn.id)=="Disable") break;          
                ChangeButtonStatus("btn7", "On");
                ChangeButtonStatus("btn8", "Disable");
                break;
            case "btn8":
                if(GetButtonStatus(btn.id)=="Disable") break;
                ChangeButtonStatus("btn8", "On");
                ChangeButtonStatus("btn7", "Disable");
            break;
        }
        
        var closeLink="<div style='text-align:right; padding-right:30px;'><a href='#' onclick='closeSemi();return false;' style='color:Red;'><img src='innerData/images/close.gif' border='0' width='18' height='18' /></a></div>";
        var text=GetText();
        if(text=="")
            ChangeButtonStatus("btnCalcText", "Disable");
        else{            
            ChangeButtonStatus("btnCalcText", "Off");
            document.getElementById("semiTransText").innerHTML=closeLink + text +"<br/><br/>";
        }
    }
    
    function GetText()
    {
        var text="";
        if(GetButtonStatus("btn1")=="On" && GetButtonStatus("btn4")=="On" && GetButtonStatus("btn7")=="On")
        {
            text="<span class='calc_red_title'>RADIO:</span> 2G "+"<br/>"+
            "<span class='calc_red_title'>BACKHAUL SWITCHING:</span> TDM "+"<br/>"+
            "<span class='calc_red_title'>BACK TRANSPORT:</span> PHD/SDH  "+"<br/><br/>"+
            "<span class='calc_red_title'>CELTRO SOLUTION:</span><br/> 2G traffic is optimized by suppression of idle and redundant elements. <br/>Actual 2G traffic after optimization is encapsulated into ‘IP like’ frames, statistically multiplexed and mapped onto E1 links to be carried over PDH/SDH backhaul network."
        }
        if(GetButtonStatus("btn1")=="On" && GetButtonStatus("btn6")=="On" && GetButtonStatus("btn8")=="On")
        {
            text="<span class='calc_red_title'>RADIO:</span> 2G"+"<br/>"+
            "<span class='calc_red_title'>BACKHAUL SWITCHING:</span> IP/MPLS"+"<br/>"+
            "<span class='calc_red_title'>BACK TRANSPORT:</span> Ethernet    "+"<br/><br/>"+
            " <span class='calc_red_title'>CELTRO SOLUTION:</span>"+"<br/>"+
            "<ul style='margin-left:5px;'>"+
            "<li>  2G traffic is optimized by suppression of idle and redundant elements. <br/>Actual 2G traffic after optimization is emulated with PWE into MPLS frames, generating a MPLS traffic flow. "+"</li>"+
            "<li>  The MPLS backhaul supports MPLS switching with robust traffic management mechanisms and LSP/PWE OAM.  "+"</li>"+
            "<li>	MPLS control plane uses LDP and/or RSVP for label distribution, and OSPF routing for peer discovery.  "+"</li>"+
            "<li>	Ethernet switching overlay with MPLS allows VLAN tagging or <br/>stacking (802.11q, 802.1ad Q-in Q) and priority marking (802.1p). </li>"+
            "</ul>";
        }
        if(GetButtonStatus("btn2")=="On" && GetButtonStatus("btn5")=="On" && GetButtonStatus("btn7")=="On" && GetButtonStatus("btn1")=="Off")
        {
            text="<span class='calc_red_title'>RADIO:</span> 3G "+"<br/>"+
            "<span class='calc_red_title'>BACKHAUL SWITCHING:</span> ATM "+"<br/>"+
            "<span class='calc_red_title'>BACK TRANSPORT:</span> PDH/SDH   "+"<br/><br/>"+
            " <span class='calc_red_title'>CELTRO SOLUTION:</span> "+"<br/>"
            "<ul style='margin-left:5px;'>"+
            "<li>	ATM VP/VC/AAL2 switching "+"</li>"+
            "<li>	ATM OAM and TM support "+"</li>"+
            "<li>	IMA support over E1 and VC12 in channelized STM1 "+"</li>"+
            "<li>	ATM support over E1 and STM1 (channelized and concatenated)"+"</li>"+
            "</ul>";
        }
        if(GetButtonStatus("btn2")=="On" && GetButtonStatus("btn6")=="On" && GetButtonStatus("btn8")=="On" && GetButtonStatus("btn1")=="Off")
        {
            text="<span class='calc_red_title'>RADIO:</span> 3G"+"<br/>"+
            "<span class='calc_red_title'>BACKHAUL SWITCHING:</span> IP/MPLS "+"<br/>"+
            "<span class='calc_red_title'>BACK TRANSPORT:</span> Ethernet    "+"<br/><br/>"+ 
            " <span class='calc_red_title'>CELTRO SOLUTION:</span>"+"<br/>"+
            "<ul style='margin-left:5px;'>"+
            "<li>	PWE for ATM (RFC4717), and/or PWE for Ehternet (RFC4448) "+"</li>"+
            "<li>	OAM is maintained via VCCV-BFD. "+"</li>"+
            "<li>	MPLS switching with robust traffic management mechanisms and LSP/PWE OAM   "+"</li>"+
            "<li>	MPLS control plane uses LDP and/or RSVP for label distribution and OSPF routing for peer discovery.  "+"</li>"+
            "<li>	Ethernet switching overlay with MPLS allows VLAN tagging or stacking (802.11q, 802.1ad Q-in Q) and priority marking (802.1p)."+"</li>"+
            "</ul>";
        }        
        if(GetButtonStatus("btn2")=="On" && GetButtonStatus("btn6")=="On" && GetButtonStatus("btn7")=="On")
        {
            text="<span class='calc_red_title'>Radio:</span> 3G"+"<br/>"+
            "<span class='calc_red_title'>BACKHAUL SWITCHING:</span> IP/MPLS "+"<br/>"+
            "<span class='calc_red_title'>BACK TRANSPORT:</span> PDH/SDH "+"<br/><br/>"+ 
            " <span class='calc_red_title'>CELTRO SOLUTION:</span>"+"<br/>"+
            "<ul style='margin-left:5px;'>"+
            "<li>	PWE for ATM (RFC4717), and/or PWE for Ehternet (RFC4448)  "+"</li>"+
            "<li>	PWE OAM using VCCV-BFD"+"</li>"+
            "<li>	MPLS switching with robust traffic management mechanisms and LSP/PWE OAM   "+"</li>"+
            "<li>	MPLS control plane uses LDP, RSVP (or both) for label switching and OSPF IGP. "+"</li>"+
            "<li>	ML-PPP is used for bonding E1 lines to support  MPLS traffic. "+"</li>"+
            "<li>	PoS is used when MPLS traffic is using STM-1 interfaces."+"</li>"+
            "</ul>";
        }
        if(GetButtonStatus("btn1")=="On" && GetButtonStatus("btn2")=="On" && GetButtonStatus("btn5")=="On" && GetButtonStatus("btn7")=="On")
        {
            text="<span class='calc_red_title'>RADIO:</span> 2G/ 3G"+"<br/>"+
            "<span class='calc_red_title'>BACKHAUL SWITCHING:</span> ATM   "+"<br/>"+
            "<span class='calc_red_title'>BACK TRANSPORT:</span> PDH/SDH "+"<br/><br/>"+ 
            "<span class='calc_red_title'>CELTRO SOLUTION:</span>"+"<br/>"+
            "<ul style='margin-left:5px;'>"+
            "<li>	2G and 3G traffic optimal convergence over unified ATM backhaul network"+"</li>"+ 
            "<li>	2G traffic is optimized by suppression of idle and redundant elements. The actual 2G traffic after optimization is adapted in a VBR ATM flow by AAL2. "+"</li>"+ 
            "<li>	2G ATM flow is statistically multiplexed with 3G ATM traffic onto a unified ATM that is dynamically shared between 2G and 3G services. "+"</li>"+ 
            "<li>	The unified ATM backhaul support VP/VC/AAL2 switching. "+"</li>"+ 
            "<li>	ATM OAM and TM support"+"</li>"+ 
            "<li>	IMA  over E1and VC12 in channelized STM1"+"</li>"+ 
            "<li>	ATM support over E1 and STM1 (channelized and concatenated)"+"</li>";
            "</ul>";
        }
        if(GetButtonStatus("btn1")=="On" && GetButtonStatus("btn2")=="On" && GetButtonStatus("btn6")=="On" && GetButtonStatus("btn7")=="On")
        {
            text="<span class='calc_red_title'>RADIO:</span> 2G/ 3G"+"<br/>"+
            "<span class='calc_red_title'>BACKHAUL SWITCHING:</span> IP/MPLS /PWE   "+"<br/>"+
            "<span class='calc_red_title'>BACK TRANSPORT:</span> PDH/SDH "+"<br/><br/>"+ 
            " <span class='calc_red_title'>CELTRO SOLUTION:</span>"+"<br/>"+
            "<ul style='margin-left:5px;'>"+
            "<li>	2G and 3G traffic optimal convergence over unified MPLS over PDH/SDH transport backhaul network"+"</li>"+ 
            "<li>	2G traffic is optimized by suppression of idle and redundant elements. The actual 2G traffic after optimization is emulated in PWE to MPLS traffic flow."+"</li>"+ 
            "<li>	2G MPLS flow is statistically multiplexed with 3G MPLS traffic onto a unified LSP tunnel (using E-LSP for differentiated prioritization) that is dynamically shared between 2G and 3G services. "+"</li>"+ 
            "<li>	MPLS switching with robust traffic management mechanisms and LSP/PWE OAM   "+"</li>"+ 
            "<li>	MPLS control plane uses LDP and/or RSVP for label distribution and OSPF routing for peer discovery."+"</li>"+ 
            "<li>	ML-PPP is used for MPLS over E1 or VC12; PoS is used for MPLS over STM-1 interfaces. "+"</li>"+
            "</ul>";
        }        
        if(GetButtonStatus("btn1")=="On" && GetButtonStatus("btn2")=="On" && GetButtonStatus("btn6")=="On" && GetButtonStatus("btn7")=="On")
        {
            text="<span class='calc_red_title'>RADIO:</span> 2G/ 3G"+"<br/>"+
            "<span class='calc_red_title'>BACKHAUL SWITCHING:</span> IP/MPLS /PWE   "+"<br/>"+
            "<span class='calc_red_title'>BACK TRANSPORT:</span> Ethernet "+"<br/><br/>"+ 
            " <span class='calc_red_title'>CELTRO SOLUTION:</span>"+"<br/>"+
            "<ul style='margin-left:5px;'>"+
            "<li>	2G and 3G traffic optimal convergence over unified MPLS/Ethernet backhaul network"+"</li>"+ 
            "<li>	2G traffic is optimized by suppression of idle and redundant elements. The actual 2G traffic after optimization is emulated with PWE into MPLS traffic flow. "+"</li>"+ 
            "<li>	2G MPLS traffic flow is statistically multiplexed with 3G traffic flows onto a unified MPLS backhaul tunnel (LSP) that is dynamically shared between 2G and 3G services. "+"</li>"+ 
            "<li>	MPLS switching with robust traffic management mechanisms and LSP/PWE OAM   "+"</li>"+ 
            "<li>	MPLS control plane uses LDP and/or RSVP for label distribution and OSPF routing for peers discovery. "+"</li>"+ 
            "<li>	Ethernet switching allows VLAN tagging or stacking (802.1q, 802.1ad Q-in-Q) and priority marking (802.1p)."+"</li>"+
            "</ul>";
        }        
        if(GetButtonStatus("btn1")=="On" && GetButtonStatus("btn3")=="On" && GetButtonStatus("btn5")=="On" && GetButtonStatus("btn7")=="On")
        {
            text="<span class='calc_red_title'>RADIO:</span> 2G/WiMAX"+"<br/>"+
            "<span class='calc_red_title'>BACKHAUL SWITCHING:</span>ATM   "+"<br/>"+
            "<span class='calc_red_title'>BACK TRANSPORT:</span> PDH/SDH "+"<br/><br/>"+ 
            "<span class='calc_red_title'>CELTRO SOLUTION:</span>"+"<br/>"+
            "<ul style='margin-left:5px;'>"+
            "<li>	2G and WIMAX traffic optimal convergence over unified ATM backhaul network"+"</li>"+
            "<li>	2G traffic is optimized by suppression of idle and redundant elements. The actual 2G traffic after optimization is adapted in a VBR ATM flow by AAL2. "+"</li>"+
            "<li>	WiMAX traffic is adapted to ATM by AAL5 adaptation (RFCxxx)"+"</li>"+
            "<li>	2G ATM flow is statistically multiplexed with the WiMax ATM traffic onto a unified ATM backhaul that is dynamically shared between 2G and WiMAX services. "+"</li>"+
            "<li>	The unified ATM backhaul supports VP/VC/AAL2 switching. "+"</li>"+
            "<li>	ATM OAM and TM support; "+"</li>"+
            "<li>	IMA  over E1and VC12 in channelized STM1 "+"</li>"+
            "<li>	ATM support over E1 and STM1 (channelized and concatenated)"+"</li>"+
            "</ul>";
        }
        if(GetButtonStatus("btn1")=="On" && GetButtonStatus("btn3")=="On" && GetButtonStatus("btn6")=="On" && GetButtonStatus("btn8")=="On")
        {
            text="<span class='calc_red_title'>RADIO:</span> 2G/WiMAX"+"<br/>"+
            "<span class='calc_red_title'>BACKHAUL SWITCHING:</span>IP/MPLS /PWE   "+"<br/>"+
            "<span class='calc_red_title'>BACK TRANSPORT:</span> Ethernet "+"<br/><br/>"+ 
            " <span class='calc_red_title'>CELTRO SOLUTION:</span>"+"<br/>"+
            "<ul style='margin-left:5px;'>"+
            "<li>	2G and WIMAX traffic optimal convergence over unified Ethernet backhaul network"+"</li>"+
            "<li>	2G traffic is optimized by suppression of idle and redundant elements. The actual 2G traffic after optimization is encapsulated into frames using PWE to generate MPLS flows running over Ethernet.  "+"</li>"+
            "<li>	2G MPLS flow is statistically multiplexed with WIMAX IP/Ethernet based flows onto a unified Ethernet backhaul that is dynamically shared between 2G and WIMax services. "+"</li>"+
            "<li>	The unified Ethernet flows can be tagged (single or dual) or untagged (802.1q/802.1ad) and priority marking (802.1p)."+"</li>"+
            "</ul>";
        }        
        return text;
    }
        
    //buttons text
    function ChangeButtonStatus(btnId, status)
    {    
        if(status=="Disable")
            document.getElementById(btnId).style.color="#c0c0c0";
        if(status=="On")
            document.getElementById(btnId).style.color="#fff";
        if(status=="Off")
            document.getElementById(btnId).style.color="#585d65";
        if(btnId!="btnCalcText")
            document.getElementById(btnId).className=status;
        else{
            if(status=="Off")
                document.getElementById(btnId).className="calcButtonText_on";
            else
                document.getElementById(btnId).className="calcButtonText_off";
        }
    }
    
    function GetButtonStatus(btnId)
    {
        return document.getElementById(btnId).className;
    }
    
    function calculate()
    {
        if(GetButtonStatus("btnCalcText")=="calcButtonText_off")
            return;
        btn1Status=document.getElementById("btn1").className;
        btn2Status=document.getElementById("btn2").className;
        btn3Status=document.getElementById("btn3").className;
        btn4Status=document.getElementById("btn4").className;
        btn5Status=document.getElementById("btn5").className;
        btn6Status=document.getElementById("btn6").className;
        btn7Status=document.getElementById("btn7").className;
        btn8Status=document.getElementById("btn8").className;        
        document.getElementById("semiTrans").style.display="block";
    }
    
    function closeSemi()
    {
        document.getElementById('semiTrans').style.display='none';   
        for(i=1; i<9; i++) {
            ChangeButtonStatus("btn"+i, "Off");     
        }
        ChangeButtonStatus("btnCalcText", "Disable");
    }

