box.dom(function() {
    
    var W = window, D = this;
    
    var page = D.getElementById('tagPageView'),
        product = D.getElementById('tagProductView')
        register = D.getElementById('tagRegisterView')
        error = D.getElementById('tagErrorView');
    
    var extract = function(datas) {
        var results = {}, parts = datas.split(';'), i = parts.length, tmp;
        while(i--) {
            tmp = parts[i].split('=');
            results[tmp[0]] = tmp[1];
        }
        return results;
    };
    
	var sendGoogle = function(_view){
		try {			
			// First tracking object, for global rollup reporting
			var globalTracker = _gat._getTracker("UA-12602710-18"); 
			globalTracker._setDomainName('.kerastase.com');
			globalTracker._trackPageview();
			 
			// Second tracking object, for each region reporting
			//var regionTracker = _gat._getTracker("UA-12602710-20"); 
			//regionTracker._setDomainName('.kerastase.com');
			//regionTracker._trackPageview();
			 
			// Third tracking object, for each country reporting
			//var countryTracker = _gat._getTracker("UA-12602710-34"); 
			//countryTracker._setDomainName('.kerastase.com');
			//countryTracker._trackPageview();
			 
			// Fourth tracking object, for each language reporting
			//var languageTracker = _gat._getTracker("UA-12602710-8"); 
			//languageTracker._setDomainName('.kerastase.com');
			//languageTracker._trackPageview();
		} 
		catch(err) {}
	};
    if(!D.getElementById('tagOnDev')) {
        cmSetProduction();
    }
    
    var datas;
    
    if(page && page.value && W.cmCreatePageviewTag) {
        datas = extract(page.value);
        W.cmCreatePageviewTag(datas.tag, datas.category, null);
		sendGoogle(datas.category + "/" + datas.tag); 
    }
    
    if(product &&  product.value && W.cmCreateProductviewTag) {
        datas = extract(product.value);
        W.cmCreateProductviewTag(datas.code, datas.tag, datas.category);
		sendGoogle(datas.category + "/" + datas.tag + "/" + datas.code); 
    }
    
    if(register && register.value && W.cmCreateRegistrationTag) {
        datas = extract(register.value);
        W.cmCreateRegistrationTag(datas.email, datas.email, datas.city, null, datas.zip, null, null);
    }
    
    if(error && error.value && W.cmCreateErrorTag) {
        W.cmCreateErrorTag(error.value, 'ERROR');
    }
    
    // bind stats calls to popin
    box.bind({
        'open.generic.popin.discoverKerastaseFR': function() {cmCreatePageviewTag('Discover_Kerastase_FR', 'Discover', null);},
        'open.generic.popin.discoverKerastaseEN': function() {cmCreatePageviewTag('Discover_Kerastase_EN', 'Discover', null);}
    });
    
});