/*!
 * @author Gproxy Design Inc.
 * @copyright (c) 2009, Gproxy Design Inc. All rights reserved.
 * @version 1.0
 *
 * Gproxy doesn't allow to copy or change this code without Gproxy authorization.
 * See http://www.gproxy.com/licenses/license01.pdf for the full license governing this code.
 */

/**
 * GOOGLE ANALYTICS
 * Page Tracker
 */
function setGATracking(){
    // Shopping Cart 
    var rExpCart = new RegExp('(sc\.3|sc=3)', 'gi');
    var cart = "/shopping-cart";
    // Checkout Billing	
    var rExpBilling = new RegExp('(sc\.4/category\.billing|sc=4&category=billing)', 'gi');
    var billing = "/checkout-billing";
    // Checkout Shipping
    var rExpShipping = new RegExp('(sc\.4/category\.shipping|sc=4&category=shipping)', 'gi');
    var shipping = "/checkout-shipping";
    // Checkout Paymeth
    var rExpPaymeth = new RegExp('(sc\.4/category\.paymeth|sc=4&category=paymeth)', 'gi');
    var paymeth = "/checkout-paymeth";
    // Checkout Order Confirm
    var rExpConfirm = new RegExp('(sc\.4/category\.confirm|sc=4&category=confirm|sc\.4/\.f|sc=4&whence)', 'gi');
    var confirm = "/checkout-order-confirm";
    // Checkout Order Thanks
    var rExpThanks = new RegExp('(sc=4&category=thanks|sc\.4/category\.thanks)', 'gi');
    var thanks = "/checkout-order-thanks";
    
    if (rExpCart.exec(document.location.toString()) !== null) {
        pageTracker._trackPageview(cart);
    }
    else {
        if (rExpBilling.exec(document.location.toString()) !== null) {
            pageTracker._trackPageview(billing);
        }
        else {
            if (rExpShipping.exec(document.location.toString()) !== null) {
                pageTracker._trackPageview(shipping);
            }
            else {
                if (rExpPaymeth.exec(document.location.toString()) !== null) {
                    pageTracker._trackPageview(paymeth);
                }
                else {
                    if (rExpConfirm.exec(document.location.toString()) !== null) {
                        pageTracker._trackPageview(confirm);
                    }
                    else {
                        if (rExpThanks.exec(document.location.toString()) !== null) {
                            pageTracker._trackPageview(thanks);
                        }
                        else {
                            pageTracker._trackPageview();
                        }
                    }
                }
            }
        }
    }
}

/**
 * GOOGLE ANALYTICS
 * @param {Object} address
 * @param {Object} orderNumber
 * @param {Object} siteName
 * @param {Object} cofirmationTotal
 * @param {Object} tax
 * @param {Object} shipping
 */
function setGATrackingTransaction(address, orderNumber, siteName, cofirmationTotal, tax, shipping){
    // Checkout Order Thanks
    var rExpThanks = new RegExp('(sc=4&category=thanks|sc\.4/category\.thanks)', 'gi');        
    try {
        if (rExpThanks.exec(document.location.toString()) !== null) {
            var auxArray = address.split('<br>');
            var country = 'None';
            var city = 'None';
            var state = 'None';
            try {
                if (auxArray.length > 0) {
                    country = auxArray[auxArray.length - 1].toString();
                    var auxArray1 = auxArray[auxArray.length - 2].toString().split(' ');
                    if (auxArray1.length > 0) {
                        city = auxArray1[0].toString();
                        state = auxArray1[1].toString();
                    }
                }
            } 
            catch (e) {
                var country = 'Country-Script-Error';
                var city = 'City-Script-Error';
                var state = 'State-Script-Error';
            }
			/*Change the name of the cookie for a unique name for the customer*/
			try {
	            pageTracker._addTrans(orderNumber, siteName, cofirmationTotal, tax, shipping, city, state, country);            
				var strItems = readCookie('_ddr_ga_products');
				if (strItems != null){				
					var objItems = eval(unescape(strItems));
					for (var i=0; i < objItems.length; i++) {					
						pageTracker._addItem(orderNumber, unescape(objItems[i].name), unescape(objItems[i].sku), 'None', unescape(objItems[i].price), unescape(objItems[i].qty));
					}		
				}else{
					pageTracker._addItem(orderNumber, 'Cookie-Error', 'Cookie-Error', 'None', '0', '0');
				}          
	            pageTracker._trackTrans();
			} 
			catch (e) {
				pageTracker._addTrans(orderNumber, siteName, confirmationTotal, tax, shipping, 'Cookie-Error', 'Cookie-Error','Cookie-Error');
				pageTracker._addItem(orderNumber, 'Cookie-Error', 'Cookie-Error', 'None', '0', '0');
				pageTracker._trackTrans();
			}
        }
    } 
    catch (ex) {
		pageTracker._addTrans(orderNumber, siteName, confirmationTotal, tax, shipping, 'Cookie-Error', 'Cookie-Error','Cookie-Error');
		pageTracker._addItem(orderNumber, 'Cookie-Error', 'Cookie-Error', 'None', '0', '0');
		pageTracker._trackTrans();
    }
}

function saveGAProducts() {	
	// Checkout Order Thanks
    var rExpThanks = new RegExp('(sc=4&category=thanks|sc\.4/category\.thanks)', 'gi');
	    
    //Shopping Cart Columns Position beginning on 0	
    //Product Name Position
    var intProdNamePos = 0;
	//Product SKU Position
	var intProdSKUPos = 6;
	//Product Quantity Position
    var intQtyPos = 1;   
    //Product Price Position
    var intPricePos = 4;	
	
    try {
        if (rExpThanks.exec(document.location.toString()) == null) {			
			var arrCartRows = $j("tr[id^='carttablerow']");
			var strJSON = '';
			var strString = '';	
			for (var i = 0; i < arrCartRows.length; i++) {
				var arrCartRowCell = arrCartRows[i].cells[intProdNamePos].getElementsByTagName('a');
				var strItemName = arrCartRowCell[0].innerHTML;
				arrCartRowCell = arrCartRows[i].cells[intProdSKUPos].getElementsByTagName('a');
				var strItemSKU = arrCartRowCell[0].innerHTML;	
									
				var strItemQty = arrCartRows[i].cells[intQtyPos].innerHTML;
				var strItemPrice = arrCartRows[i].cells[intPricePos].innerHTML;				
				strString += "{name: '"+ escape(strItemName) + "', sku: '" + escape(strItemSKU) + "', qty: '" + escape(strItemQty) + "', price: '" + escape(strItemPrice.replace(/(\$|,)/g, '')) + "'},";
			}
			if(strString != ''){	
				strString = strString.substring(0, (strString.length - 1));
				strJSON = "{Items: [" + strString + "]}";			
				createCookie('_ddr_ga_products',strJSON);
			}	
		}
	} 
    catch (ex) {		
    }
}

function createCookie(name, value, days){
	var expires = '';
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    }
    else 
        expires = "";
    document.cookie = name + "=" + escape(value) + expires + "; path=/";
}

function readCookie(name){
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(name + "=");
        if (c_start != -1) {
            c_start = c_start + name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1)
                c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return null;
}
