
    //Shopping Cart Array (2D) (Data Source of YUI Data Table) is generating here

var SubTotal="0";
var ToTalRowCount = 0;
var NoOfItems = null;

 function getCartItems()
 {
    try
    {
 
    var cartItemsAndSubTotal=null;
    var cartitems =null;
    var mycartarray =null;
       
                   
    cartItemsAndSubTotal  = Ignify.eCommerce.Web.Store.MasterTemplates.Ignify.Modules.SharedModules.FloatingCart.GetCartItems();        

    var splitRawData = cartItemsAndSubTotal.value.split("~~SubTotal~~");
    
    if(splitRawData!=null && splitRawData.length>0)
    {
       cartitems =  splitRawData[0];
       SubTotal =   splitRawData[1];
    }
     
    var rowArray =  cartitems.split("~~Row~~");
     
     var objRowCount = eval(rowArray.length) -1;
     
     mycartarray = new Array(objRowCount);
     
     var objLblItemCount = document.getElementById("lblItemCount");
     if(objLblItemCount!=null)
        objLblItemCount.innerHTML = objRowCount + " Item(s)";
     
     var tempRowCount=0;
     ToTalRowCount =0;
        for(tempRowCount=0;tempRowCount< objRowCount ;tempRowCount++)
        {
            mycartarray[tempRowCount] = new Array(3);
            
            var colArray = rowArray[tempRowCount].split("~~Coloumn~~");
            
            if(colArray !=null && colArray.length>0)
            { 
                mycartarray[tempRowCount][0] = colArray[0];
                mycartarray[tempRowCount][1] = colArray[1];
                mycartarray[tempRowCount][2] = colArray[2];

                if(colArray[1].indexOf("Your cart is empty.")> 0)
                {
                   ToTalRowCount = 0;
                    NoOfItems = null;
                }
                else
                {
                    ToTalRowCount++;
                    NoOfItems = ToTalRowCount;
                }
                
            }
         
         }
        
        BindDataSource(mycartarray);
        GetSubTotal();        
            
       }
       catch(ex)
       {
        var exception = ex.description;
        //alert(exception);
       }
               
       return false;
       
 }
 
 
 function BindDataSource(mycartarray)
 { 
 
    var myDataTable=null;
    var myDataSource=null;  
    
//  YAHOO.util.Event.addListener(window, "load", function() {
//    YAHOO.example.MultipleFeatures = function() {
    
    var myColumnDefs = [
            {key:"Image", width:50, resizeable:true,sortable:true, hidden:false},
            {key:"ItemDescritpion", width:150, resizeable:true,sortable:true, hidden:false},
            {key:"DeleteRow", width:20, resizeable:true,sortable:true, hidden:false}
        ];

        myDataSource = new YAHOO.util.DataSource(mycartarray);
        myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
        myDataSource.responseSchema = {            
            fields: ["Image", "ItemDescritpion", "DeleteRow"]
        
        };

        var myConfigs = {
            sortedBy:{key:"ItemDescritpion",dir:"asc"},
            draggableColumns:false
        }

        
        myDataTable = new YAHOO.widget.DataTable("complex", myColumnDefs, myDataSource, myConfigs);
                       
        myDataTable.subscribe("rowClickEvent",myDataTable.onEventSelectRow);
        myDataTable.subscribe("cellDblclickEvent",myDataTable.onEventShowCellEditor);
        myDataTable.subscribe("editorBlurEvent", myDataTable.onEventSaveCellEditor);
      
        // When cell is edited, pulse the color of the row yellow
        var onCellEdit = function(oArgs) {
            var elCell = oArgs.editor.getTdEl();
            var oOldData = oArgs.oldData;
            var oNewData = oArgs.newData;
            
            // Grab the row el and the 2 colors
            var elRow = this.getTrEl(elCell);
            var origColor = YAHOO.util.Dom.getStyle(elRow.cells[0], "backgroundColor");
            var pulseColor = "#ff0";

            // Create a temp anim instance that nulls out when anim is complete
            var rowColorAnim = new YAHOO.util.ColorAnim(elRow.cells, {
                    backgroundColor:{to:origColor, from:pulseColor}, duration:2});
            var onComplete = function() {
                rowColorAnim = null;
                YAHOO.util.Dom.setStyle(elRow.cells, "backgroundColor", "");
            }
            rowColorAnim.onComplete.subscribe(onComplete);
            rowColorAnim.animate();
        }
        
        myDataTable.subscribe("editorSaveEvent", onCellEdit);

                 
        return {
            oDS: myDataSource,
            oDT: myDataTable
        };
       
   // }();
//});

 }
 
 

 
 //Shopping Cart Item Deletion thru Ajax call

function DeleteCartItem(objCartItemID)
{     
   var removeCartItem = Ignify.eCommerce.Web.Store.MasterTemplates.Ignify.Modules.SharedModules.FloatingCart.RemoveCartItem(objCartItemID);
   
       if(removeCartItem.value!=null && removeCartItem.value == "True")
       {   
            try
            {
                getCartItems();
            }
            catch(ex)
            {var exception = ex.description;}
            GetSubTotal();
           
       }
   
 }
      

//Sub Total Calculation here
//Get the Shopping cart sub total
function GetSubTotal()
{
    var objTd = document.getElementById("lblSubTotal");
    var objSubTotal = "";
    
    if(objTd!=null)
    {    
        if(SubTotal == "0" && NoOfItems == null)
        {         
            var objLblItemCount = document.getElementById("lblItemCount");
             if(objLblItemCount!=null)
                objLblItemCount.innerHTML = "0 Item(s)";      
        }
        else if(SubTotal == "0" && NoOfItems > 0)
        {
           var objLblItemCount = document.getElementById("lblItemCount");
             if(objLblItemCount!=null)
                objLblItemCount.innerHTML = NoOfItems +  " Item(s)";
        }
      
      var formatcurrency=null;
      var tempformatcurrency = "0";
            try
            {
                
                if(parseFloat(SubTotal) < 0)
                    SubTotal = "0";
                
                formatcurrency = Ignify.eCommerce.Web.Store.MasterTemplates.Ignify.Modules.SharedModules.FloatingCart.GetFormatCurrency(SubTotal);
                
                if(formatcurrency!=null)
                    tempformatcurrency = formatcurrency.value;
            }
            catch(Ex)
            {
                  if(document.getElementById("hdnTempCurrencyCode")!=null)
                  {
                     var currencycode = document.getElementById("hdnTempCurrencyCode").value;
                        
                        if(currencycode =="USD" && SubTotal == "0")
                            tempformatcurrency = "$0.00";
                     
                  }
            }
            
      objTd.innerHTML  = "<strong>Sub Total: " + tempformatcurrency +"</strong>";
      
      var objItemSubTotal = document.getElementById("lblItemSubTotal");
      if(objItemSubTotal!=null)
        objItemSubTotal.innerHTML = tempformatcurrency;
        
        if(SubTotal == "0" && NoOfItems == null)
            ControlVisibility(false);
         else
            ControlVisibility(true);      
  
    } 
}

//Express Checkout Process
function CheckoutWithPayPal()
{   
 
var domainname =  document.domain;
var urlrefferer = window.location.href;
 
    var ActionURL = Ignify.eCommerce.Web.Store.MasterTemplates.Ignify.Modules.SharedModules.FloatingCart.PayPalPreAuthorize(urlrefferer, domainname);
        
    if(ActionURL.value!=null && ActionURL.value.length>0)
            window.parent.location.href = ActionURL.value;
    
    return false;
    
}

function RemoveAllCartItems()
{
    var response = Ignify.eCommerce.Web.Store.MasterTemplates.Ignify.Modules.SharedModules.FloatingCart.RemoveAllCartItems();
            try
            {
                getCartItems();
            }
            catch(ex)
            {var exception = ex.description;}
            GetSubTotal();
    
    return false;
}

