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 getURL = function(){
		var url = window.location.href;
		var partURL = "";		
		var exp_reg = /_fr/gi;
		
		/* Pour le site en INT : 
		if(url.match(exp_reg)){
			partURL = url.split('aspnet');
			url = 'aspnet/sites'+partURL[1];
		}else{
			partURL = url.split('aspnet');
			url = 'aspnet/sites/_fr/_fr'+partURL[1];
		}*/
		
		/* Pour le site en Prod :*/
		if(url.match(exp_reg)){
			partURL = url.split('kerastase.fr');
			url = '/sites'+partURL[1];
		}else{
			partURL = url.split('kerastase.fr');
			url = '/sites/_fr/_fr'+partURL[1];
		}
		
		
		//alert(url);
		return url;
	};
	
	var sendGoogle = function(_view){
		try {
			var url = getURL();
			
			// First tracking object, for global rollup reporting
			var globalTracker = _gat._getTracker("UA-12602710-18"); 
			globalTracker._setDomainName('.kerastase.fr');
			globalTracker._trackPageview(url);
			 
			// Second tracking object, for each region reporting
			var regionTracker = _gat._getTracker("UA-12602710-20"); 
			regionTracker._setDomainName('.kerastase.fr');
			regionTracker._trackPageview(url);
			 			
			// Third tracking object, for each country reporting
			var countryTracker = _gat._getTracker("UA-12602710-34"); 
			countryTracker._setDomainName('.kerastase.fr');
			countryTracker._trackPageview(url);
			 
			// Fourth tracking object, for each language reporting
			//var languageTracker = _gat._getTracker("UA-12602710-8"); 
			//languageTracker._setDomainName('.kerastase.fr');
			//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');
    }
        
    var setPopinTag = function(prefixeTag) {
        statTagPopin = D.getElementById('statTagPopin');
        statCatPopin = D.getElementById('statCatPopin');      
        if (statTagPopin && statCatPopin){
            cmCreatePageviewTag(prefixeTag+ '_' +statTagPopin.value, statCatPopin.value, null);
        }
    };
    
    
    // bind stats calls to popin
    box.bind({
        'open.generic.popin.discoverKerastase': function() {cmCreatePageviewTag('Discover_Kerastase', 'Discover', null);},
        'open.generic.popin.ingredientsListing': function() {cmCreatePageviewTag('Popin_Ingredients_Listing', 'Footer', null);},
        'open.generic.popin.password': function() {cmCreatePageviewTag('Popin_Lost_Password', 'My_Kerastase', null);},
        'open.generic.popin.contact': function() {cmCreatePageviewTag('Popin_Contact', 'Footer', null);},
        'open.generic.popin.sendToFriend': function() {cmCreatePageviewTag('Popin_Send_To_Friend', 'Footer', null);},
        'open.generic.popin.productFinder': function() {cmCreatePageviewTag('Popin_Product_Finder', 'Footer', null);},
        'open.generic.popin.applicationCimentThermique': function() {cmCreatePageviewTag('Popin_Application_Ciment_Thermique', 'Products', null);},
        'open.generic.popin.applicationCimentThermique': function() {cmCreatePageviewTag('Popin_Interview_Ciment_Thermique', 'Products', null);},
        
        'open.generic.popin.offerOfTheMonth': function() {setPopinTag('Popin_Offer')},
        'open.generic.popin.salonMap': function() {setPopinTag('Popin_Map')},
        'open.generic.popin.interviewHairdresser': function() {setPopinTag('Popin_Interview')}
    });
    
});