﻿// JScript File
function  GetHostName()
{ 
    return window.location.protocol + '//' + document.domain;
}
function  HighlightTab(e)
{
    try
    {
        
        var c = top.document.getElementById(e).parentElement; 
         
         Highlight(c);
    }
    catch(ee)
    {

    }


} 

function  Highlight(e)
{
    try
    {
        //CartContainer3
        
        e.style.background = "#ffffc8";
    }
    catch(ee)
    {

    }


} 

function  HighlightLabTitleTab()
{
    try
    {
        
       HighlightTab(LabTitleElement);
    }
    catch(ee)
    {
    }

  
}

function  HighlightCartTitleTab()
{
    try
    {
        
       HighlightTab(CartTitleElement);
    }
    catch(ee)
    {
    }

      try
    {
       var e =   document.getElementById('CartContainer3');  
        
          Highlight(e);
       
    }
    catch(err)
    {
    }
}

function SetLabCount(e)
{    
     LabCount = LabCount + e;
}

function SetCartCount(e)
{
    CartCount = CartCount + e;
}

function AddRemoveWarehouse(e,WareHouseProductID)
{
     var p = new Array();   
    p.WareHouseProductID = WareHouseProductID;
    p.OrderType = 2;
    
    AddRemoveCartGeneric(e,p);
}

// function LoadXMLDomByXMLHTTP2(url)  
// {
// var xhttp;
// if (window.XMLHttpRequest)
//  {
//  xhttp=new XMLHttpRequest()
//  }
//else
//  {
//  xhttp=new ActiveXObject("Microsoft.XMLHTTP")
//  }
//xhttp.open("GET",url,false);
//xhttp.send("");
//return xhttp.responseXML;
// }
 function LoadXMLDomByXMLHTTP(url)  
        {
         alert(url);
            var text = CallUrlSync(url);
           alert(text);
            try //Internet Explorer
            {
                var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                xmlDoc.async="false";
                xmlDoc.loadXML(text);
                return xmlDoc;
            }
            catch(e)
            {
                try //Firefox, Mozilla, Opera, etc.
                {
                    var parser=new DOMParser();
                    var xmlDoc=parser.parseFromString(text,"text/xml");
                    return xmlDoc;
                }
                catch(e)
                {         
                    return null;
                }
           }   
        } 
        
        
function AddRemoveWarehouseMakeOffer(el,WareHouseProductID)
{
    var  e =   document.getElementById('MakeOffer_' + WareHouseProductID);
    var  b =   document.getElementById('PreviousMakeOffer_' + WareHouseProductID);
     var  minoff =   document.getElementById('MinMakeOffer_' + WareHouseProductID);
    
     var p = new Array();   
                    p.WareHouseProductID = WareHouseProductID;
                    p.OrderType = 3; //Request Offer                     
                    p.BidPrice = e.value; 
                    p.ListPrice = b.value; 
                    
    
        if (el.IsAdded==true||el.IsAdded=='true')
        {  
           
            AddRemoveCartGeneric(el,p);

            return false;
        }
    
    if (e.value != parseFloat(e.value))
    {
            alert("Please enter a number to make an offer for the selected product.");
    }
    else
    {
    
            if (parseFloat(e.value) > parseFloat(b.value))
            {
                alert("Please enter a number that is less than or equal to the list price.");
            }
            else
            {
                   
                    
                    
                   //  var URL = GetHostName() + '/CommerceProcessor/Pages/Products/ProductShoppingList.aspx?'; 
                   var URL =  '/CommerceProcessor/Pages/Products/ProductShoppingList.aspx?';
                    URL = URL + 'OrderType=' + p.OrderType;
                    URL = URL + '&WareHouseProductID=' + p.WareHouseProductID;
                    URL = URL + '&BidPrice=' + p.BidPrice;
                    URL = URL + '&ListPrice=' + p.ListPrice;
                    URL = URL + '&EndResponse=1';
                    
                //    var t=CallUrlSync(URL);

              
                  
               
              //  var x=LoadXMLDomByXMLHTTP(URL);
             //   var x = GS_XML.LoadXMLDomByXMLHTTP(URL);
             //   var x = LoadXMLDomByXMLHTTP(URL);
                // var BidResponse=x.childNodes[1].firstChild.firstChild.firstChild.nodeValue;
               
           var BidResponse = (parseFloat(minoff.value) < parseFloat(e.value))
            if(BidResponse==true)
            {
                p.OrderType = 4; //Warehouse Order 
                 alert("Your offer was accepted!");                 
                 AddRemoveCartGeneric(el,p);
                }
                else
                {
                    alert("Your offer was not accepted. Please raise bid and try again.");
                }
            }
    }
    
   
}

function AddRemoveCart(e,ProductModel )
{
    var p = new Array();  
    p.ProductModel = ProductModel;
    p.OrderType = 1;
    AddRemoveCartGeneric(e,p);
}
function AddRemoveCartGeneric(e,p)
{

    var URL = '/CommerceProcessor/Pages/Products/ProductShoppingList.aspx?';
 
  
    var WSRCart = GetWSRCartURL();

     

    var img = e.firstChild;
      
      if (p.ProductModel==null)
      {
            p.ProductModel='x';
      }
      
      
      
        if (e.IsAdded==true||e.IsAdded=='true')
        {   
            p.OrderAction = "Remove";
            URL = URL + 'CancelHTTPEnforce=1&Remove=' + p.ProductModel;
            //WSR
            WSRCart = WSRCart + 'cartData=' + p.ProductModel + ",1";
            e.IsAdded = true;    
             
                 
       
                        try {
                            top.SetCartCount(-1);
                        }
                        catch (eee) {
                        }


                    }
        else
        {      
            // alert('Item Added!');
            p.OrderAction = "Add";
            URL = URL + 'CancelHTTPEnforce=1&ProductModel=' + p.ProductModel;
            //WSR
            WSRCart = WSRCart + 'cartData=' + p.ProductModel + ",1";
            e.IsAdded = false;



                        try  {
                            top.SetCartCount(1);     
                            top.HighlightCartTitleTab();
                            var l = document.getElementById('Lab' + e.id);  
                            top.AddRemoveLab(l,l.PID);
                        }
                        catch(eee) {                    
                        }
           
//           var newProductModel = ProductModel.toUpperCase();  
//           
//           if (newProductModel.substr(0,1)=='T')           
//           {           
//               ///- jump to Tetramer page
//               alert(TetramerURL);
//               alert(window.location.hostname);
//               window.location.href='http://' + window.location.hostname + TetramerURL;
//               window.navigate(TetramerURL);
//           }
            
        }
        
 
                e.IsAdded = !e.IsAdded;
                ManageCartImage(img,!e.IsAdded);
        
              
                    if(p.OrderType!=null)
                    {
                        URL = URL + '&OrderType=' + p.OrderType;
                    }
                
                    if(p.WareHouseProductID!=null)
                    {
                        URL = URL + '&WareHouseProductID=' + p.WareHouseProductID;
                    }   
               
                    if(p.BidPrice!=null)
                    {
                        URL = URL + '&BidPrice=' +  p.BidPrice;
                    }
                
                    if(p.ListPrice!=null)
                    {
                        URL = URL + '&ListPrice=' +  p.ListPrice;
                    }
                

                    if(p.OrderAction!=null)
                    {
                        URL = URL + '&OrderAction=' + p.OrderAction;
                    WSRCart = WSRCart + '&OrderAction=' + p.OrderAction;
                    }






                    URL = URL + '&EndResponse=1';

                    CallUrl(URL);
                    var ISWSRCheck = IsWSRPage();
                 
                    if (ISWSRCheck == true) 
                    {                                    
                        UpdateWSRCart(WSRCart);
                        RefreshCFLowCart();

                    } else {
                        RefreshCFLowCart();   
                        Complete();   
                    }


                    if (window.OnAddRemoveCartItemEVENT != null)
                     {
                         OnAddRemoveCartItemEVENT();
                    }    



}

function GetWSRCartURL() {
    return 'https://www.beckmancoulter.com/wsrportal/action/externalAddToCart?cartSource=crawsr&';
}
function GetWSRCartURLOLD() {
    return 'http://wsruat.beckmancoulter.com/wsrportal/action/externalAddToCart?cartSource=FlowApp1&';
}


function AddWSRCartDirect(PN, QTY)    {
        var s =  GetWSRCartURL();
        s = s + 'cartData=' + PN + "," + QTY;
        UpdateWSRCart(s);   
 }


function UpdateWSRCart(u) {
   // alert('WSR');
  

    var fName = 'WSRCartFRAME';
    if (document.getElementById(fName) != null) {
   //   alert(' Destroy it  - 1000');
        // Destroy it
        document.body.removeChild(document.getElementById(fName));

    }
   //  alert('create Iframe - 1200');
    createIframe(fName, u);
 
     //alert('Item added to cart.');
//    alert('after create Iframe - 1500');
//    var ss = document.getElementById(fName);
    //    alert(ss);


 

    }


    function RefreshCFLowCart() {
               pause(2000);
             var FrameID = 'FRAME_WSR_Cart';      
            try 
            {
                if (document.getElementById(FrameID) != null) {
                    var f = document.getElementById(FrameID);
          
                    f.src = f.src;
                    }
            }
                catch (e) {
                    alert(e);
            }
    }


function pause(milliseconds) {
    var dt = new Date();
    while ((new Date()) - dt <= milliseconds) { /* Do nothing */ }
}

var WSRActive = false;
var WSRCheck = false;

function IsWSRPage() {
    try {
       
        if (WSRCheck== false) 
        {
            var h = top.location.href;
            WSRCheck = true;  
            return false;
        } else {
            return WSRActive;
        }

} catch (e) {
        WSRCheck = true;   
        WSRActive = true;

        return true;
    }
}


function createIframe(iframeName, iframeSrc) {

    var el = document.createElement('iframe');     
    el.style.display = "none"; 
    el.setAttribute('id', iframeName);    
    document.body.appendChild(el);    
    el.setAttribute('src', iframeSrc);

}


//function createIframe_old2(iframeName, iframeSrc) {
//    alert('fCode');
//    var fCode = "<iframe name='" + iframeName + "'  src='" + iframeSrc + "'>";
//    alert('createElement');
//     var f = document.createElement(fCode);

//     alert('createIframe');
//    if (f = !null) 
//    {
//        alert('Created');
//        f.style.display = "none";
//        alert('append');
//        document.body.appendChild(f);
//        alert('After append!');

//    }

//}

//function createIframe_old(iframeName, iframeSrc) {

//    var f;
//    var fCode = "<iframe name='" + iframeName + "'  src='" + iframeSrc + "'>";

//    if (document.createElement && (f = document.createElement(fCode))) {
//        // f.name = iframeName;
//        //f.src = iframeSrc;
//        f.style.display = "none";

//        document.body.appendChild(f);


//    }

//}

 function pause() 
 {
    pausecomp(500) ; 
 }
 
 
function pausecomp(millis) 
{
var date = new Date();
var curDate = null;

do { curDate = new Date(); } 
        while(curDate-date < millis);
} 

function CallUrlSync(URL)
{
       
        var GSAjax = new GS_Ajax_Object();     
        return GSAjax.GetSyncRequest(URL); 
}
function CallUrl(URL)
{
        pause();
        var GSAjax = new GS_Ajax_Object();     
        GSAjax.GetAsyncRequestNoCallback(URL); 
}

function Complete() {
    try
    {
   
        top.window.status=' ';
        top.UpdateCartTitles();
        top.UpdateCompareTitles();
        top.UpdateLabTitles();
    }
    catch (eer)
    {

    }

}

function AddRemoveLab(e,ProductModel)
{
      if (e==null)
      {
        return null;
      }
     
            var URL = '/CommerceProcessor/Pages/Products/Product_Lab.aspx?Action=Lab&';    
            var img = e.firstChild;

         

            if (e.IsAdded==true||e.IsAdded=='true')
            {   

                 URL = URL + 'Remove=' + ProductModel;    
                // LabCount = LabCount - 1;
                 e.IsAdded =true;
                 
            }else
            {      

                URL = URL + 'Add=' + ProductModel;
                //LabCount = LabCount + 1;
                top.SetLabCount(1);
                e.IsAdded =false;
                e.IsAdded = !e.IsAdded;
                ManageLabImage(img,e.IsAdded);
              
                top.HighlightLabTitleTab();

              // alert(URL);
                ///e.style.display='none'; 
                ///e.style.visibility='hidden';       

                CallUrl(URL); 

                Complete();   


            } 
    
    
    

}


function AddRemoveFromCompare(e,ProductModel)
{
     
     
    var URL = '/CommerceProcessor/Pages/Products/ProductShoppingList.aspx?Action=Compare&';      
    

    if(e.checked==true)
    {
        URL = URL + 'Add=';
        CompareCount = CompareCount+1;
        HighlightTab(CompareTitleElement);
    }
    else
    {    
        URL = URL + 'Remove=';
        CompareCount = CompareCount-1;
    }
    
    URL = URL + ProductModel;   
    CallUrl(URL);    
    Complete();

}

function ManageLabImage(img,IsAdd)
{
        if (IsAdd==true)
        {
            img.src = '/CommerceProcessor/DataWarehouse/Site/Graphics/Misc/Flask_On.gif';
            img.title = '';

        }
        else
        {
            img.src = '/CommerceProcessor/DataWarehouse/Site/Graphics/Misc/Flask_Off.gif';
           // img.title = 'Remove from My Lab';
        }
 

}


function ManageCartImage(img,IsAdd)
{
        if (IsAdd==true)
        {
            img.src = '/CommerceProcessor/DataWarehouse/Site/Graphics/Misc/Cart.gif';
            img.title = 'Add to cart';

        }
        else
        {
            img.src = '/CommerceProcessor/DataWarehouse/Site/Graphics/Misc/Cart_Remove.gif';
            img.title = 'Remove from cart';
        }
 

}

function ShowWait(img )
{

 img.src = '/CommerceProcessor/DataWarehouse/Site/Graphics/Misc/Wait_Small.gif';
 
 top.window.status='Please wait...';
}


function GetCartCount()
{

    var URL = '/CommerceProcessor/Pages/Products/ProductShoppingList.aspx?Action=GetCartCount';
    var x = GS_XML.LoadXMLDomByXMLHTTP(URL);
    return  x.lastChild.firstChild.text;
}

function ResetColor()
{

}

function SetTitle(e,Title)
{ 

 
            if(document.all)
            {             
                e.innerText = Title;
            }
            else
            {
                e.textContent = Title;
            }

}

function UpdateCartTitles()
{
   try
    { 
   
    
    var e =  document.getElementById(CartTitleElement);
    var c = CartCount;//GetCartCount();
    var ref = '/CommerceProcessor/Pages/Products/ProductShoppingList.aspx';
    
    if (c<0)
    {
        c=0;
    }

 // No need to update the old Tab title , No longer there
    
//        e.innerText = 'Check Out ( ' + c + ' )';  
//        e.disabled = (c<1);
//        e.href = ref;
//          
//        if (c>0)
//        {
//            if (e.parentElement.tagName=='TD')
//            {
////                var TD =  e.parentElement;
////                var img  = new Image();
////                TD
////                alert(TD.id);
////                TD.HoldBC =  TD.bgColor;            
////                TD.bgColor =  '#ffff66';
////                alert(TD.bgColor);
////                // intValue=window.setTimeout('myMethod()', 1000);">              
//            } 
//        } 
          
      
        
    }
    
    catch(err)
    {    
    }
 
   var tt = c + ' items in your shopping cart'; 
    try
    {
      
        e =  top.document.getElementById('CartTitle2');  
        SetTitle(e,tt);
        e.disabled = (c<1);
        e.href = ref;
        
    }
    catch(err)
    {
    }
 
 
    try
    {

        e =  top.document.getElementById('CartTitle3');  
        SetTitle(e,tt);
        e.disabled = (c<1);
        e.href = ref;

    }
    catch(err)
    {
    }
    
    
  
    
  
}
 
    
 
function UpdateCompareTitles()
{

   var e =  document.getElementById(CompareTitleElement);
   var tt;
    try
    {
    
    var c = CompareCount;//GetCartCount();
   // var ref = '/CommerceProcessor/Pages/Products/ProductShoppingList.aspx';
    
    if (c<0)
    {
        c=0;
    }

       tt = 'Compare ( ' + c + ' )';   
        
        SetTitle(e,tt);
        e.disabled = (c<1);       
      
        
    }    
    catch(err)
    {    
    }
 
 
    try
    {
       
    
        e =   document.getElementById('CompareTitle1');
       
      if (e!=null)
      {
       SetTitle(e,tt);
        e.disabled = (c<1);   
      }
         
        
         
        
    }    
    catch(err)
    {   
  
    }
 
   try
    {
       
      //Handle for Column Compare Title
        e =   document.getElementById('CompareTitle2');
       
      if (e!=null)
      {
      // SetTitle(e,tt);
        e.disabled = (c<1);   
      }
         
        
         
        
    }    
    catch(err)
    {   
  
    }
    
}

function UpdateLabTitles()
{
   if(!IsTop)
   {
     top.UpdateLabTitles();
   }
  var e =  document.getElementById(LabTitleElement);
  var tt;
   var c = LabCount; 
 
    try
    {
       
   
  
    
    if (c<0)
    {
        c=0;
    }

 
      
         tt = 'My Lab ( ' + c + ' )';   
         if (e!=null)
      {
        SetTitle(e,tt);
        e.disabled = (c<1);     
        }
    }    
    catch(err)
    {  
        
    }
 
   try
    {
       
    
        e =   document.getElementById('LabTitle4');
        tt = c + ' items in your lab';   
      if (e!=null)
      {
        SetTitle(e,tt);
       // e.disabled = (c<1);  
      }
         
        
         
        
    }    
    catch(err)
    {   
  
    }
 
   
 
    
}


function UpdateProductCountTitles()
{
   if(!IsTop)
   {
     top.UpdateProductCountTitles();
   }
    var e =  document.getElementById('ProductListCount');
    var tt;
    var c = ProductListCount; 
 
    try
    {
       
   
  
    
    if (c<0)
    {
        c=0;
    }

 
      
      tt =  c + ' Products';   
       if (e!=null)
      {
        SetTitle(e,tt);
        e.disabled = (c<1);     
       }
    }    
    catch(err)
    {  
        
    }
 }
 
 
 
function IsTop()
{

    try 
    {
      return (top.document==document);
    }
  catch (e) 
    {
       return true;
    }


}


function UpdateAllTitles()
{
   
    UpdateLabTitles();
    UpdateCompareTitles();
    UpdateCartTitles();
    UpdateProductCountTitles();
  if(!IsTop())
   {
   top.UpdateAllTitles();
   }
}
var CartTitleElement ;
var CompareTitleElement ;
var LabTitleElement ;
var CartCount =0;
var CompareCount =0;
var LabCount =0;
var ProductListCount =0;
var TetramerURL;

function RegisterTetramerURL(URL)
{
     TetramerURL = URL;
     UpdateAllTitles();
}

function RegisterLabTitleElement(ID)
{
    
       LabTitleElement = ID;
     UpdateAllTitles();
   

     
     
}

function RegisterCartTitleElement(ID)
{
    CartTitleElement = ID;
    UpdateAllTitles();
}

function RegisterCompareElement(ID)
{
    CompareTitleElement = ID;
    
}

function RegisterCartCount(c)
{
   
   CartCount = c;
   
  if(!IsTop())
   {
    top.RegisterCartCount(c);
   } 
    
     UpdateAllTitles();
    
}
function RegisterCompareCount(c)
{
    CompareCount = c;
    
  if(!IsTop())
   {
    top.RegisterCompareCount(c);
   } 
     UpdateAllTitles();
}
function RegisterLabCount(c)
{
    LabCount = c;
    
     if(!IsTop())
   {
   
    top.RegisterLabCount(c);
   } 
   
     UpdateAllTitles();
}
function RegisterProductListCount(c)
{
     ProductListCount = c;
    
     if(!IsTop())
   {
   
    top.RegisterProductListCount(c);
   } 
   
     UpdateAllTitles();
}
