/** 
MK: some of this should move to /js/site/coremetrics/, especially the parts with hardcoded catprodskus  
**/

brand.coremetrics = {
 	abort: false,
 	init: function() {
 		if (this.abort) return; 
 		this.liveperson.track();
 		this.panelNav.track();
 		//this.livepopupTrack();
 		
 	},
 	livepopupTrack: function() {
 	   document.observe("livepopup:click", function(event) {
  		cmCreateConversionEventTag("Live Chat", "1", "ASK AN ARTIST", "10");
	   });	
 	}
 }
 /**
 MK: should be initialized from /js/site/init.js 
 document.observe("dom:loaded", brand.coremetrics.init );    
 **/
 /**
 brand.coremetrics.liveperson = {  
          tagConfig : {},
	track: function() { 
	 this.tagConfig = {
              'lpServer' : "service.liveperson.net",
              'lpNumber' : "24631554",
              'lpProtocol' : pageVar.reporting["scheme"]
            }, 
            this.addMonitorTag();
            
            if (typeof(this.tagConfig.sessionVar) == "undefined"){ 
                   this.tagConfig.sessionVar = [];
        	  }
            this.tagConfig.sessionVar.push('skill=MAC');
 	},
	addMonitorTag: function(src) {
            if (typeof(src)=='undefined'||typeof(src)=='object') {
                src = this.tagConfig.lpMTagSrc ? this.tagConfig.lpMTagSrc : '/hcp/html/mTag.js';
            }
            if (src.indexOf(pageVar.reporting["scheme"])!=0) {
                src = this.tagConfig.lpProtocol+"://"+this.tagConfig.lpServer+src+'?site='+this.tagConfig.lpNumber;
            }
            else {
                if(src.indexOf('site=')<0) {
                   src = (src.indexOf('?')<0) ? src+'?' : src+'&';src=src+'site='+this.tagConfig.lpNumber;
                }
             } 
             var s=document.createElement('script');
             s.setAttribute('type','text/javascript');
             s.setAttribute('charset','UTF-8');
             s.setAttribute('src',src);
             //document.getElementsByTagName('head').item(0).appendChild(s);  
	}   
 }
 **/
 
 brand.coremetrics.panelNav = {
    cm_map : {}, // combined map of all cmcats on all nav categories
    cm_corrected_cat : {}, // map of ids to cmcats
    
    track: function() {  
        //this.createMap();
 
        document.observe("panelnav:show", function(event) {
  		console.log("brand.coremetrics.panelNav.track: show / " + Object.toJSON(event.memo));
  		if (event.memo.type === "panel"){
                       //brand.coremetrics.panelNav.panelClickOpen(event.memo); 
                	} else if (event.memo.type === "accordion") {
                       //brand.coremetrics.panelNav.open(event.memo); 
                	} 
	});
 
        document.observe("panelnav:hide", function(event) {
  		console.log("brand.coremetrics.panelNav.track: hide / " + Object.toJSON(event.memo));
  	//	brand.coremetrics.panelNav.panelClickClose(event.memo); 
	});
         
		
         /*  
         // nav event listener 
        dojo.subscribe("/panelnav/event/show", this, function(args) {
            // time out to give panel animation chance to run
            var self = this;
            var t = function() {
                if (args.type === "panel"){
                       self.panelClickOpen(args);
                } else if (args.type === "accordion") {
                       self.open(args);
                }
            }               
            
             setTimeout(t, 600);                      
        });
       if needed for close events
        dojo.subscribe("/panelnav/event/hide", this, function(args) {
            //console.log("/panelnav/event/hide, is passing = "+dojo.toJson(args, true));
            this.panelClickClose(args);
        }); 
        */       
    }/**,  
    createMap: function() {
    	  
    var skipcount = 0;
    var sections = site.globalnav.config.items;
    try {
    for (x in sections) { 
      for (y in sections[x]){
        if (y === "items"){       
           var items = sections[x].items;
          for (var element in items){
            if (typeof(items[element].id)  != "undefined" && typeof(items[element].cmcat) != "undefined"){
              cm_map[items[element].id] = items[element].name;
            }
            if ( !(items[element].id.match("CAT[0-9]*")) ){
              cm_corrected_cat[items[element].id] = items[element].cmcat;   
            }
          }
        }else{
          if (typeof(sections[x].id)  != "undefined" && typeof(sections[x].cmcat) != "undefined"){
            if ( !(sections[x].id.match("CAT[0-9]*")) ){
                  cm_corrected_cat[sections[x].id] = sections[x].cmcat;
                }else{
                    cm_map[sections[x].id] = sections[x].name;
                }
           }
         } 
       } 
    }
     } catch(e) {}
    },  
    open: function(args){
        if (typeof args.parentId != "undefined") {
            var ParentCatID = args.parentId.match("CAT[0-9]*");
            var SubCat = args.id.match("CAT[0-9]*");
            if (cm_map[ParentCatID]){
                cmCreatePageviewTag('MPP : ' + cm_map[ParentCatID]+ ' : '+args.displayName,'',SubCat,'');
            }else{
                ParentCatID = args.id.match("CAT[0-9]*");
                if (typeof cm_map[ParentCatID] != "undefined"){ // this supresses top level Products and Artistry
                    cmCreatePageviewTag('MPP : ' +cm_map[ParentCatID],'',SubCat,'');
                }
            }
        }
        this.ElementTag(args,"open"); 
    },

    close: function(){
        //console.log("Accordian close on ",this.id,this.displayName," called in connected close");
        //site.globalnav.Coremetrics.ElementTag(this,"close");
    },
    
    //top level panel tags other than accordian calls
    panelClickOpen: function(args){

        var s = args.sectionId;
        var d = args.itemId;
        if (s ==="makeup_artistry"){ //inconsitent data don't know what else to do
             s="Makeup Artistry";
        }
        
        if (typeof s != "undefined" && typeof d != "undefined"){
            if (d.match("CAT[0-9]*")){
                cmCreatePageviewTag(s + ' : ' + args.displayName, '',d,'');
            }else{
                cmCreatePageviewTag(s + ' : '+args.displayName, '',cm_corrected_cat[d],'');
            }
        }
        this.ElementTag(args,"open");    
    },

    panelClickClose: function(args){
        //console.log("Panel.js CLICK close panel ",this.id);
        //this.ElementTag(this,"close");
    },

    SubNavChildClick: function(sectionId){
        var d = this.activeItemId.match("CAT[0-9]*");
        var s = sectionId.match("CAT[0-9]*");
        var ParentCatID = this.parentId.match("CAT[0-9]*");
        if (typeof cm_map[d] != "undefined"){
            cmCreatePageviewTag(cm_map[d] + ' : ' + this.id, '',s,'');
        }
    },
    ElementTag: function(args, action){ 
        if (!args.parentId || !args.id) {
            return;
        }
        var ParentCatID = args.parentId.match("CAT[0-9]*");
        var SubCatid = args.id.match("CAT[0-9]*");
        
        var EL_ARGS = 'NAV ';
        if (typeof args.sectionId != "undefined" && args.sectionId !=""){
            EL_ARGS = EL_ARGS +  args.sectionId + ' ';}
        if (typeof cm_map[ParentCatID] != "undefined" && cm_map[ParentCatID] !=""){
            EL_ARGS = EL_ARGS + cm_map[ParentCatID] + ' '; }
        if (typeof  args.displayName != "undefined" && args.displayName  !=""){
            EL_ARGS = EL_ARGS + args.displayName.replace(/\s/g,"_") + ' '; }
        if (typeof cm_map[args.id] != "undefined" && cm_map[args.id] !=""){
            EL_ARGS = EL_ARGS + cm_map[args.id].replace(/\s/g,"_") + ' '; }
        
        EL = EL_ARGS.match(/[\w-'\+]+/g);
        var cmargs="";     
        var inc=2;
        if (EL.length > 1){ 
        inc = 2;}else{
        inc = 1;}
        
        for (i=0;i<=EL.length - inc;i++){
            cmargs = cmargs + EL[i] + ' : ';
        }
        cmargs = cmargs.slice(0,-2);
        cmCreatePageElementTag(EL[EL.length-1],cmargs);
    }**/
}


	 
		
/** generic.flash.ApiMethods
	cmCreatePageviewTag: function(args) {
		//console.log("creating pageview tag: ", args);
		var resp = dojo.global.cmCreatePageviewTag(args[0],args[1],args[2],args[3]);
		//console.log("cm response:");
		return this.response.createResponse(1, "pageview tag created");
	},

	cmCreateManualLinkClickTag: function(args) {
		dojo.global.cmCreateManualLinkClickTag(args[0],args[1],args[2]);
		return this.response.createResponse(1, "link click tag created");
	},
	
	cmCreatePageElementTag: function(args) {
		//console.log("creating pageelement tag: ", args);
		var resp = dojo.global.cmCreatePageElementTag(args[0],args[1],args[2],args[3],args[4]);
		//console.log("cm response:");
		return this.response.createResponse(1, "Page Element tag created");
	},
	cmCreateProductElementTag: function(args) {
		dojo.global.cmCreatePageElementTag(args[0],args[1],args[2],args[3],args[4]);
		return this.response.createResponse(1, "Product Element tag created");
	},
	
	cmCreateProductviewTag: function(args) {
		dojo.global.cmCreateProductviewTag(args[0],args[1],args[2]);
		return this.response.createResponse(1, "productview tag created");
	},

	cmCreateConversionEventTag: function(args) {
		dojo.global.cmCreateConversionEventTag(args[0],args[1],args[2],args[3]);
		return this.response.createResponse(1, "conversion event tag created");
	}, **/

/**
brand.product.SwatchContainer.setSwatch
 // coremetrics page view tag only on add to bag showing 
            var cat = sku.path.match("CAT[0-9]*");
            var prod = sku.path.match("PROD([0-9]*)");               
            // only do product view on mpp page
            var pdcatalog = page_data.catalog;
            if (typeof(pdcatalog) !== "undefined") {
                if (typeof(pdcatalog.spp) === "undefined") {
                    cmCreateProductviewTag(prod[1],this.product.name,cat);
                }
            }
            if (typeof(page_data.featured_goodbyes) !== "undefined"){
                cmCreateProductviewTag(prod[1],this.product.name,cat);
            }
            if (typeof(page_data.reorder) !== "undefined"){
                cmCreateProductviewTag(prod[1],this.product.name,cat);
           }
 **/
 
 /** search 
 
        
        // important, CM search tag 
        var cmcount = data.count || "0";
        cmCreatePageviewTag('search : search results', data.query ,'2000', cmcount);
        **/
     
