﻿//ADDING OTHER SCRIPT FILES THIS PAGE USES SO AS TO NOT HAVE TO ADD MULTIPLE SCRIPTS TO THE PAGE
var docHead = document.getElementsByTagName('head')[0];

var js = document.createElement('script');
js.setAttribute('type','text/javascript');
js.setAttribute('src','includes/AjaxRequest.js');
docHead.appendChild(js);

js = document.createElement('script');
js.setAttribute('type','text/javascript');
js.setAttribute('src','includes/findPosition.js');
docHead.appendChild(js);
  
//**** HANDLE GROWER DROP DOWN SELECTION CHANGE ****

//SINCE REMOVED VIEW STATE CAN NO LONGER USE THE SELECTED INDEX CHANGE
//AND VALUES FOR THE DROP DOWNS SO USEING THE REQUEST.FORM VALUES
//SO NEED TO RESET THE DROP DOWNS NOT SELECTED
function ddlSelection(ddl){
    //IF ONE OF THESE DROP DOWNS CHANGES 
    //AND THERE ARE ITEMS IN THE CART THEY WILL BE LOST
    //SO CONFIRM THAT THE USER WANTS TO NAVIGATE A WAY 
    
    //CHECK IF THE TABLE EXISTS
    if(document.getElementById('tblCartItems')){//.rows.length > 1){
        //TABLE EXISTS 
            
            //THERE ARE ITEMS IN THE CART THAT WILL BE LOST IF THE FORM POSTS
            var msg = 'You can only place one order per grower.\n\n' +
                    'If you continue all the items currently in the cart will be lost.\n\n' +
                    'Click Ok to continue and loose any items in the cart.\n' +
                    'Click Cancel to stay on this page and continue with the current order.\n'
            var agree = confirm(msg)
            if(!agree){//RESET THE DROP DOWN LISTS AND 
                //RESELECT THE PREVIOUSE GROWER SO THE ITEMS ARE NOT LOST
                var prevGrowerID = document.getElementById('SelectedGrowerID').value;
				
                for(var i = ddl.options.length -1; i >= 0; i--){
                    if(ddl.options[i].value == prevGrowerID){
                        ddl.selectedIndex = i;
                        break;
                }   }
                
                //RETURN FALSE TO PREVENT THE PAGE FROM POSTING
                return false
            }
            else{//ELSE USER HAS AGREED TO ABANDON CURRENT CART ITEMS AND SWITCH GROWERS
                //REMOVE ALL THE CART ITEMS HIDDEN INPUTS
                var obj;
                var inputs = document.getElementsByTagName('input');
                for (var i = inputs.length -1; i >= 0; i--){
                    obj = inputs[i];
                    if(obj.id.indexOf('txtQuantity') > -1){
                        obj.parentElement.removeChild(obj);
                }   }
                //REMOVE THE CART TABLE FROM THE FLOATING DIV
                ClearCart()
            }//if(!agree){
    }//if(document.getElementById('tblCartItems')){

//ADD THE SELECTED GROWER ID TO THE FORM
    addToForm('SelectedGrowerID',ddl.value)

    //CHECK FOR A SELECTED VALUE
    if (ddl.selectedIndex == 0)
        return
    //CLEAR THE GROWERS FLOWERS DROP DOWN
    try{document.getElementById('FlowerID').selectedIndex = 0;}
    catch(err){}

	document.forms[0].action = 'order-discount-flowers-online.aspx';
    document.forms[0].submit();
}

function setColor(what,clr){
    what.style.color=clr;
}
//**** END OF HANDLE GROWER DROP DOWN SELECTION CHANGE ****

//THE CART GET TO LARGE AND COVERS UP THE PAGE
//THIS WILL ALLOW THE USER TO HIDE THE ITEMS IN THE CART
//MAKING THE FLOATING DIV SMALLER
//OR SHOW THE ITEMS SO THE MAY SEE WHAT THEY HAVE ADDED
function DisplayFloatingCartItems(btn){
    var CartItems = document.getElementById('tblCartItems');
    if(CartItems){
        if(btn.value == 'Hide Cart Items'){
            btn.value = 'Show Cart Items'
            CartItems.style.display='none';
        }
        else{btn.value = 'Hide Cart Items'
            CartItems.style.display='block';
}   }   }


function addToForm(ID,Value){
//ADD THE HIDDEN INPUTS TO THE PAGE FOR THE ORDER PAGE TO PARCE
//FOR THE ITEM ID'S AND THE QUANTITIES
    try{document.getElementById(ID).value = Value;}
    catch(err){
        var newInput = document.createElement('input');
        newInput.id = ID;
        newInput.name = ID;
        newInput.value = Value;
        newInput.type = 'hidden';
        document.forms[0].appendChild(newInput);
}   }

function remFromForm(ID){
    var obj = document.getElementById(ID);
    obj.parentElement.removeChild(obj);
}

function tblFloatingCart(){
//RETURN OR CREATE THE FLOATING CART
    EmptyCartDisplay(false)
    var result = document.getElementById('tblCartItems');
    
    if (result)
        return result;
    
    result = document.createElement('table');
    result.id = 'tblCartItems';

    with(result.style){
        width = '500px';
        color = '#990000';
        backgroundColor = '#FFFFFF';
        fontWeight = '900';
        fontSize = '12px';
    }
    //ADD THE NEW TABLE TO THE FLOATING DIV
    document.getElementById('divTopLeft').appendChild(result);
    return result;
}

function tdCartTotal(){
//RETURN OR CREATE THE CART TOTAL TABLE CELL
    var result = document.getElementById('CartTotal');
    
    if (result)
        return result;
    
    var tbl = document.getElementById('tblCartItems');
    var row = tbl.insertRow(tbl.rows.length);
    var cel = row.insertCell(0);
    cel.className = 'LabelAR';
    cel.innerHTML = 'TOTAL:'
    cel.colSpan = '5';

    cel = row.insertCell(1);
    cel.className = 'LabelAR';
    cel.id = 'CartTotal';
    
    return cel;
}

function ClearCart(){
    EmptyCartDisplay(true);
    remFromForm('tblCartItems');
}

function UpdatFloatingCart(PricingID){

    var txtQuantity = document.getElementById('txtItem' + PricingID);
    var div = document.getElementById('divTopLeft');
    var quantity = txtQuantity.value;
    
    if(quantity.length == 0){
        quantity = 0
    }
	
    if(isNaN(quantity)){
        alert('Invalid Quantity');
        return;
    }

    //GET THE FLOATING CART
    var tblCart = tblFloatingCart();
    
	//REFERENCE TO THE GROWERS PRODUCT LIST FOR THIS ITEM
    var rowList = document.getElementById('tr' + PricingID);
	//REFERENCE TO THE ROW BEING UPDATED OR ADDED TO THE CART
	var rowCart
	
    if(quantity == 0){
        //REMOVE THE ROW
       try{rowCart = document.getElementById('CartRow' + PricingID);
            tblCart.deleteRow(row.rowIndex);
            //IF DOWN TO THE LAST (TOTAL) ROW THEN THERE ARE NO ITEMS IN THE CART
            if (tblCart.rows.length == 1){
                ClearCart()
            }else{CartTotal(tblCart)}
       }catch(err){}
        
        //REMOVE THE HIDDEN INPUT
        try{var obj = document.getElementById('txtQuantity' + PricingID);
            document.forms[0].removeChild(obj);
        }catch(err){}
        
        return;
    }//if(quantity == 0){
    
    //CREATE A HIDDEN FORM FIELDS TO HOLD THE VALUES
    //HIDDEN INPUT NAME SO IT CAN BE CAUGHT ON THE ORDER FORM PAGE/CONTROL
    addToForm('txtQuantity' + PricingID,quantity)
    //ADD OR UPDATE THE SELECTED GROWER ID TO THE PAGE
    addToForm('SelectedGrowerID',document.getElementById('GrowerID').value)
    
    //ELSE ADDING A ROW TO THE FLOATING CART
    div.style.display = 'block';

	var price = rowList.cells[6].innerHTML;
	    //REMOVE THE $ SIGN
		price = price.substring(1,price.length)
		//TO MAKE SURE IT IS NUMERIC
		price = price * 1
		
	//TOTAL FOR THIS ITEM (SUBTOTAL FOR EVERY ROW IN THE CART)
	var subTotal = formatCurrency(price * quantity)
	
	//UPDATE EXISTING DISPLAY IF THERE IS ALREADY ONE ADDED
    try{
		//UPDATE EXISTING QUANTITY
        document.getElementById('CartRow' + PricingID).cells[2].innerHTML = quantity;
		//UPDATE EXISTING SUB TOTAL
		document.getElementById('CartRow' + PricingID).cells[5].innerHTML = subTotal;
		//UPDATE THE CART TOTAL
		CartTotal(tblCart)

		//FINISHED UPDATEING EXISTING ITEM SO RETURNING
        return;
    }catch(err){}

	//CREATE A NEW ROW IN THE CART
    var rowCart = tblCart.insertRow(0);
    //CREATE AN ID SO WE CAN REMOVE IT OR UPDATE IT
    rowCart.id = 'CartRow' + PricingID;

    //NAME
	var cellCart;//WILL BE THE CURRENT TABLE CELL IN THE CART BEING UPDATED
    cellCart = rowCart.insertCell(0);
    cellCart.innerHTML = rowList.cells[0].innerHTML;
    cellCart.className='LabelAR';
    
    //DESCRIPTION
    cellCart = rowCart.insertCell(1);
    cellCart.innerHTML = rowList.cells[1].innerHTML;
    
    //ORDERD QUANTITY
    cellCart = rowCart.insertCell(2);
    cellCart.innerHTML = quantity;
    cellCart.className='LabelAR';
    
    cellCart = rowCart.insertCell(3);
    cellCart.innerHTML = '@';
    
    //ADD THE PRICE TO THE FLOATING CART
    cellCart = rowCart.insertCell(4);
    cellCart.innerHTML = formatCurrency(price) + ' ea.';
    cellCart.className='LabelAR';

    cellCart = rowCart.insertCell(5);
	
    cellCart.innerHTML = formatCurrency(subTotal);
    cellCart.className='LabelAR';

    CartTotal(tblCart)

    //ADDING SOME PADDING AS IN IE THE SCROLL BAR HIDES THE END OF THE TEXT
    cellCart = rowCart.insertCell(6);
    cellCart.innerHTML = '&nbsp;&nbsp;&nbsp;';
   
    //SCROLL THE DIV TO THE BOTTOM FOR DISPLAYING THE PLACE ORDER BUTTON    
    div.scrollTop = div.scrollHeight;
}

function CartTotal(tbl){
    //TOTAL UP THE SUB TOTALS OF THE FLOATING CART
    //ADD THE TOTAL TO THE LAST CELL IN THE LAST ROW OF THE FLOATING CART
    var price;
    var total = 0;
    var rowCount = tbl.rows.length -1;
    
    //CHECK IF THERE IS ALREADY A TOTAL CELL
    //CAN NOT USE THE CURRENT TOTAL SO SUB TRACT 1 FROM THE ROW COUNT    
    if(document.getElementById('CartTotal'))
        rowCount = rowCount -1
        
    //TOTAL UP ALL THE SUB TOTALS
    for(var i = rowCount; i >= 0; i--){
        price = tbl.rows[i].cells[5].innerHTML;
        price = price.toString().replace(/\$|\,/g,'');
        total = total + (price * 1)
    }
    //ADD THE TOTAL TO THE TOTAL CELL OF THE FLOATING CART
    var CartTotal = tdCartTotal();
    CartTotal.innerHTML = formatCurrency(total);
}


function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
        num = "0";
    
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    
    if(cents<10)
        cents = "0" + cents;
        
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+',' + num.substring(num.length-(4*i+3));
        
    return (((sign)?'':'-') + '$' + num + '.' + cents);
}

var ns = (navigator.appName.indexOf("Netscape") != -1);
var d = document;
function JSFX_FloatDiv(id, sx, sy)
{
    try{
	    var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
	    var px = document.layers ? "" : "px";
	    window[id + "_obj"] = el;
	    if(d.layers)el.style=el;
	    el.cx = el.sx = sx;el.cy = el.sy = sy;
	    el.sP=function(x,y){this.style.left=x+px;this.style.top=y+px;};

	    el.floatIt=function()
	    {
		    var pX, pY;
		    pX = (this.sx >= 0) ? 0 : ns ? innerWidth : 
		        document.documentElement + document.documentElement.clientWidth ? 
		        document.documentElement.clientWidth : document.body.clientWidth;
		    pY = ns ? pageYOffset : document.documentElement && document.documentElement.scrollTop ? 
		    document.documentElement.scrollTop : document.body.scrollTop;
		    if(this.sy<0) 
		    pY += ns ? innerHeight : document.documentElement + document.documentElement.clientHeight ? 
		    document.documentElement.clientHeight : document.body.clientHeight;
		    this.cx += (pX + this.sx - this.cx)/8;this.cy += (pY + this.sy - this.cy)/8;
		    this.sP(this.cx, this.cy);
		    setTimeout(this.id + "_obj.floatIt()", 40);
	    }
	    return el;
    }catch(err){}
}

function FloatLeft() {
  var myWidth = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
  }
  //SCREEN WIDTH - N... PIXELS TO FLOAT AROUND THE MIDDLE
  return myWidth - 600;
}

function ClearFlower(){
    document.getElementById(ddlGrowersFlowerListID).selectedIndex = 0;
}


function EmptyCartDisplay(disp){
    if(disp)
        document.getElementById('divEmptyCart').style.display = 'block';
    else
        document.getElementById('divEmptyCart').style.display = 'none';
}


//WHEN THE PAGE LOADS
//CHECK WHETHER THERE ARE ANY VALUES IN THE QUANTITY BOXES
//IF THE USER HIT THE BACK BUTTON THE FLOATING DIV CART DISPLAY WILL BE HIDDEN
//function jsPageLoad(){//THIS FUNCTION CALL IS IN THE COMMON.JS FILE
window.onload = function(){
    //CHECK IF ANY ITEMS ARE IN THE CART
    if (!document.getElementById('tblCartItems'))
        EmptyCartDisplay(true);

    //PASS IN THE DISTANCE FROM THE TOP 
    JSFX_FloatDiv("divTopLeft", FloatLeft(),25).floatIt();

    var frmInput = null;
    var PricingID = 0;
    var txtBoxID = '';
    
    //SHOW THE FLOATING CART IF THERE ARE OTHER PRODUCT ITEMS IN THE CART
    var FloatingCartTable = document.getElementById('tblCartItems');
    //if(FloatingCartTable.rows.length > 1)
        //document.getElementById('divTopLeft').style.display='block';

    //GO THREW ALL THE VALUES IN THE TEXT BOXES AND ADD THEM TO THE FLOATING CART
    //IF THE QUANTITIES ARE GREATER THAN ZERO
    var arrInputs = document.getElementsByTagName('input');
	try{//MAY NOT BE ANYTHING IN THE CART
	    for(var i = arrInputs.length; i >= 0 ; i--){
	        frmInput = arrInputs[i];
	        if(frmInput.type == 'text'){
	            if(frmInput.value > 0){
	                txtBoxID = frmInput.id;
	                //NEED TO GET THE PRICING ID FROM THE TEXT BOX ID
	                PricingID = txtBoxID.substring(7)
	                UpdatFloatingCart(PricingID,txtBoxID)
	            }   
	        }   
	        else if(frmInput.type == 'hidden'){
	            //IF THIS IS A QUANTITY HIDDEN FIELD WITH A VALUE
	            //THE TEXT BOX VALUES NEED TO BE PUT IN THE TEXT BOXES
	            //IF THE USER HAS PREVIOUSLY ADDED ITEMS FROM THIS PAGE
	            if(frmInput.id.substring(0,11) == 'txtQuantity'){
	                //THIS IS AN ITEM THAT WAS PREVIOUSLY ADDED TO THE CART FROM THIS OR ANOTHER PAGE
	                var PricingID = frmInput.id.substring(11);
	                //IF THIS TEXT BOX IS ON THIS PAGE FILL IN THE ITEM
	                try{document.getElementById('txtItem' + PricingID).value = frmInput.value;}
	                catch(err){}
				}	   
			}   
		}
	}catch(err){}
}

