// VisualSciences.js version 2.1.6
// Added code to track the BuyNow button for Samba.   (Mike)
// Added use of vs_stripChars for basepage and action to strip out # etc. Put fix for breaking tabs (Aakshi)
// Take out hardcoded www.cisco.com location for tags, so tag is called relatively to the domain. To avoid tests calls production tag.. (Aakshi)
/*---------------------------------------------------------------------------------------------------*/
var vs_imgArr=new Array(),vs_hif=-1;
for(var i=0;i<10;i++){
	vs_imgArr[i]=new Image();
}
function vs_Q(a){
	vs_hif++;
	if(vs_hif>10){
		vs_hif=0;
	}
	vs_imgArr[vs_hif]="";
	vs_imgArr[vs_hif]=new Image();
	vs_imgArr[vs_hif].src=a;
}

function vs_stripChars(vs_string){
    var vs_b=new Array(">","<",";","'","`","^","[","]","{","}","#","\\","|","~","&");        
    if (vs_string != null){
          for(var c=0;c<vs_b.length;c++){
            vs_string=(vs_string.split(vs_b[c])).join("");
          }
    }
    return vs_string;
}

var vs_title = vs_stripChars(document.title);
var vs_basepage_temp = window.location.href;
var vs_basepage = vs_stripChars(vs_basepage_temp);
/*---------------------------------------------------------------------------------------------------*/

//REFERENCE PAGE TAG
// CONSTANTS
var ct = "<img width=1 height=1 src=";
var cd = "//www.cisco.com";
var cu = "/now/poweredby/flashtag.txt?Log=1";
var et = "&vs_event=pageview";
var bp = "&vs_basepage="+ vs_basepage;
if (typeof v != "undefined") {
  var vsc = "&vs_campaign=" + v["vs_campaign"];  // represents the Cisco Campaign Site
  var cs = "&vs_countrysite=" + v["vs_countrysite"];  // represents the Cisco Country Site
} else {
  var vsc = "";
  var cs = "";
}
var ce = ">";

//-----Grabs standard JavaScript vars----------
var c = {};
c["sw"] = screen.width;
c["sh"] = screen.height;
c["cd"] = screen.colorDepth;
c["dt"] = vs_title;
c["dr"] = document.referrer;
c["cb"] = new Date().getTime();
var vo = "";
for ( cKey in c ) {
	vo = vo+"&"+cKey+"="+escape(c[cKey]);
}

//-----Grabs assigned pagecode vars----------
if (typeof v != "undefined") {
  for ( vKey in v ) {
  	vo = vo+"&"+vKey+"="+escape(v[vKey]);
  }
}


//----Grabs querystring vars-----------------
function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  query = query.toLowerCase();
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
  return 0;
}

var qs = "";
if(getQueryVariable("position") != 0) qs=qs+"&position="+getQueryVariable("position");
if(getQueryVariable("country_site") != 0) qs=qs+"&country_site="+getQueryVariable("country_site");
if(getQueryVariable("campaign") != 0) qs=qs+"&campaign="+getQueryVariable("campaign");
if(getQueryVariable("referring_site") != 0) qs=qs+"&referring_site="+getQueryVariable("referring_site");
if(getQueryVariable("tis") != 0) qs=qs+"&tis="+getQueryVariable("tis");
if(getQueryVariable("banner_id") != 0) qs=qs+"&banner_id="+getQueryVariable("banner_id");
if(getQueryVariable("cookie") != 0) qs=qs+"&cookie="+getQueryVariable("cookie");

//persel tracking
var perselPrefix = "p_";
var contentPrefix = "pc_";
var contentPersel = new Object();
var contentView=new Array();
var a = document.getElementsByTagName("div");
for(var i=0; i<a.length; i++){
  if(a[i].id.indexOf(contentPrefix)==0)
    contentView[contentView.length]=a[i].id;
}

var trackPersel=new Array();
if(contentView.length>0){
  for(var i=0;i<contentView.length;i++){
    var x=document.getElementById(contentView[i]);
    var p = x.parentNode;
    while(p.nodeName!="BODY"){
      if(p.nodeName=="DIV"){
        if(p.id && p.id.indexOf(perselPrefix)==0){
          contentPersel[contentView[i]] = p.id;
          trackPersel[trackPersel.length] = p.id + "|" + contentView[i];
          break;
        }
      }
      p=p.parentNode;
    }
  }
}
//end persel tracking

//----Send Pageview Request-------------------
if ((typeof(vpv) == "undefined" || vpv != "0") && typeof(vs_libloadedflag)=="undefined") {
    //document.write(ct,cu,et,vsc,cs,vo,qs,ce);
    var url = cu+et+bp+vsc+cs+vo+qs;
		if(trackPersel.length>0){
			url += "&p_c="+escape(trackPersel.join(","));
		}
    vs_Q(url);
}

//END REFERENCE PAGE TAG



//==============================================
//REFERENCE LINK CLICK PAGE TAG
//INITIATE FUNCTIONS ONLOAD

function addEvent(obj, evType, fn){ 
 if (obj.addEventListener){ 
   obj.addEventListener(evType, fn, false); 
   return true; 
 } else if (obj.attachEvent){ 
   var r = obj.attachEvent("on"+evType, fn); 
   return r; 
 } else { 
   return false; 
 } 
}

if(typeof vs_libloadedflag=="undefined"){	
	addEvent(window, 'load', startCapture);
	setTimeout("startCapture()",3000);
}

//TO CAPTURE LINK CLICKS
var startCaptureFlag=0;
function startCapture(){
	if(startCaptureFlag==0){
		startCaptureFlag=1;
	  if (typeof(vlc) == "undefined" || vlc != "0") {
	      captureLink();
	  }
	}
}

//BEGIN LINK CAPTURE PAGE TAG
function captureLink(){
  if (document.links[0]){
    if (document.links){
      var links = document.links, link, k=0;
      while(link=links[k++]) {
        addEvent(link, "mousedown", captureLinkName);       
      }
    }
  }
  //track form button/submit clicks 
  for(var i=0;i<document.forms.length;i++){
    for(var j=0;j<document.forms[i].elements.length;j++){
      if(document.forms[i].elements[j].type=="button" || document.forms[i].elements[j].type=="submit"){
        addEvent(document.forms[i].elements[j],"mousedown",captureLinkName);
      }
    }
  }
  //end track form button/submit clicks   
}

 
function captureLinkName(e) {
	if((e.which&&e.which==1)||(e.button&&e.button==1)){
	  var a=document.all?window.event.srcElement:this;
		var p = a.parentNode;
		a.content = 0;  
	  while(p.nodeName != "BODY"){
	    if(p.nodeName == "DIV"){
	      if(p.id && p.id.indexOf(contentPrefix)==0){
	        a.content=p.id;
	        break;
	      }
	    }
	    p=p.parentNode;
	  }

	  a.parent = a.parentNode;
	  var mylink = a.innerHTML;
	  var myimglink = "";
	  var myimgtext = "";
	  var linkname = "";
	  mylink = mylink.toLowerCase();
	  if (mylink.indexOf("img")>0) {
	    myimglink = mylink.substr(mylink.indexOf("src=")+4,mylink.length);
	    myimglink = myimglink.substr(0,myimglink.indexOf(" "));
	    myimgtext = escape(a.text?a.text:a.innerText?a.innerText:"");
			myimgtext = (myimgtext.split("%0A")).join("%20");
			myimgtext = (myimgtext.split("%0D")).join("%20");
			myimgtext = (myimgtext.split("%09")).join("%20");
			var arr=myimgtext.split("%20");
			var rarr=new Array();
			myimgtext = "";
			for(var i=0;i<arr.length;i++){
				if(arr[i] != "%20"){
					rarr[rarr.length] = arr[i];
				}
			}
			myimgtext = unescape(rarr.join(" "));

			if(mylink.indexOf(' alt=')>0){
			  var i1=mylink.indexOf(' alt=')+6,i2=mylink.indexOf('"',i1);
			  if(i2<0)i2=mylink.indexOf("'",i1);
			  if(i2>i1)linkname=mylink.substring(i1,i2);
			}
		} else if(a.tagName=="INPUT") {
			myimgtext = "button - " + a.value;
			linkname = a.name;
			
		} else {
			myimgtext = a.text?a.text:a.innerText?a.innerText:"";
			linkname = a.name;
		}
		var is = "&vs_imgsrc="+ myimglink;
		var it = "&vs_linktext="+ myimgtext;
		var ln = "&vs_linkname="+ linkname;
		var evt = "&vs_event=click";
		var dref = "&vs_title="+vs_title;
		var dlink = "&vs_basepage="+ vs_basepage;
		var cb = "&cb="+new Date().getTime();
		var url = cu+vsc+cs+is+it+ln+evt+dref+dlink+cb;

	  if(a.content!=0){
	    url += "&p_c=" + escape(contentPersel[a.content] + "|" + a.content);
	  }
    vs_Q(url);
	}
}


//========================================================================

function vs_impression(linkID,linkPOS,linkCAT,link) {
  var lsrc = "";
  var ltext = "";
  var lname = "";
  if (typeof(link) != "undefined") {
    var lsrc = "&vs_imgsrc=" + link.src;
    var ltext = "&vs_linktext=" + link.alt;
    var lname = "&vs_linkname=" + link.name;
  }
  var lid = "&vs_lid=" + linkID;
  var lpos = "&vs_lpos=" + linkPOS;
  var lcat = "&vs_lcat=" + linkCAT;
  var evt = "&vs_event=impression";
  var dref = "&vs_title=" + vs_title;
  var dlink = "&vs_basepage=" + vs_basepage;
  var cb = "&cb=" + (new Date()).getTime();
  var url = cu + vsc + cs + lsrc + ltext + lname + lid + lpos + lcat + evt + dref + dlink + cb;
    
  vs_Q(url);
  return true;
}

function vs_click(linkID,linkPOS,linkCAT,linkObj,action) {
  var lsrc = "";
  var ltext = "";
  var lname = "";
  if (typeof(linkObj) != "undefined") {
    lsrc = "&vs_linkhref=" + linkObj.href;
    if(typeof linkObj.alt=="undefined"){
    	var lt=linkObj.text?linkObj.text:linkObj.innerText?linkObj.innerText:"";
    	if(lt.length>0&&lt.charAt(0)==" "){
    		lt=lt.substring(1,lt.length);
    	}
    	ltext = "&vs_linktext=" + lt;
    } else {
    	ltext = "&vs_linktext=" + linkObj.alt;
    }
    lname = "&vs_linkname=" + linkObj.name;
  }
  var lid = "&vs_lid=" + linkID;
  var lpos = "&vs_lpos=" + linkPOS;
  var lcat = "&vs_lcat=" + linkCAT;
  var evt = "&vs_event=click";
  var dref = "&vs_title=" + vs_title;
  var dlink = "&vs_basepage=" + vs_basepage;
  var action = "&vs_action=" + vs_stripChars(action);
  var cb = "&cb=" + (new Date()).getTime();
  var url = cu + vsc + cs  + lsrc + ltext + lname + lid + lpos + lcat + evt + dref + dlink + action + cb;
  
  vs_Q(url);
  return true;
}

function vs_pageview(pagename,contentgroup,pagetype,contenttype,action){
  var pn = "&vs_pagename="+pagename;
  var mlc = "&vs_contentgroup="+contentgroup;
  var pt = "&vs_pagetype="+pagetype;
  var ct = "&vs_sitearea="+contenttype;
  var evt = "&vs_event=pageview";
  var dref = "&vs_title=" + vs_title;
  var dlink = "&vs_basepage=" + vs_basepage;
  var action = "&vs_action=" + vs_stripChars(action);
  var cb = "&cb=" + (new Date()).getTime();
  var url = cu + vsc + cs + pn + mlc + pt + ct + evt + dref + dlink + action + cb;
  vs_Q(url);
  return true;
}

function vs_formfieldcapture(pagename,contentgroup,pagetype,sitearea,action,formfield1,formfield2,formfield3,formfield4) { 
  var pn = "&vs_pagename="+pagename; 
  var mlc = "&vs_contentgroup="+contentgroup;
  var pt = "&vs_pagetype="+pagetype; 
  var ct = "&vs_sitearea="+sitearea; 
  var evt = "&vs_event=pageview"; 
  var dref = "&vs_title=" + vs_title; 
  var dlink = "&vs_basepage=" + vs_basepage; 
  var ct = "&vs_sitearea="+sitearea; 
  var action = "&vs_action=" + vs_stripChars(action); 
  var ff1 = "&vs_formfield1="+formfield1; 
  var ff2 = "&vs_formfield2="+formfield2; 
  var ff3 = "&vs_formfield3="+formfield3; 
  var ff4 = "&vs_formfield4="+formfield4;
  var cb = "&cb=" + (new Date()).getTime();
  var url = cu + vsc + cs + pn + mlc + pt + ct + evt + dref + dlink + action + ff1 + ff2 + ff3 + ff4 + cb; 

  vs_Q(url); 
  return true; 
} 

/* Product Selector Code */
function vsSendMulti(a,b,c,d,e,f,g,h){if(typeof a=='object'){b="",c=['C','P','R','D'];for(d in a){if(typeof d!="function"){for(e=0;e<_VS.L(d);e++){
if(_VS.I(""+a[d],"_"+c[e]+"::")==0)a[d]=eval("_VS.R"+c[e]+"(_VS.S(a[d],4,_VS.L(a)))")}if(d!="history")b+="&"+d+"="+_VS.E(a[d])}}
if(_VS.D(a.history)){d=_PS.maxGet-_VS.L(b);if(_VS.L(a.history)<d)b+="&history="+_VS.E(a.history);else{e=_VS.P(a.history,"^");
g=0,h=_VS.L(e.toString());for(f=0;f<_VS.L(e);f++){g+=_VS.L(e[f]);if(d>h-g&&f+1<_VS.L(e)){e=e.splice(f+1,_VS.L(e));b+="&history="+_VS.E(e.join('^'));
break}}}}_VS.Q(_VS.base+b)}}

function vsIncActionCookie(){var a=_VS.RC(_PS.cookie+".actions");_VS.C(_PS.cookie+".actions",(a=="")?1:++a,_PS.cookieExp);}

function vsAddHistoryItem(a,b,c){b=_VS.RC(_PS.cookie+".history"),c=_VS.A();if(b=="")_VS.C(_PS.cookie+".history",a,_PS.cookieExp);
else{b+="^"+a;c=_VS.P(b,'^');if(_VS.L(c)>_PS.maxHistory)c=c.splice(_VS.L(c)-_PS.maxHistory,_PS.maxHistory);
_VS.C(_PS.cookie+".history",c.join('^'),_PS.cookieExp)}}

var _PS=new Object();
_PS.cookie="product_selector";
_PS.expTime=86400000*365;
_PS.expDate=new Date();
_PS.expDate.setTime(_PS.expDate.getTime()+_PS.expTime);
_PS.cookieExp=_PS.expDate.toGMTString();
_PS.maxHistory=10;
_PS.maxGet=2048;

var _VS=new Object();
_VS.base="//www.cisco.com/cdc_content_elements/visualsciences/visualsciences.asc?Log=1&vs_event=pageview&vs_basepage="+document.URL;
_VS.A=function(){return new Array()};
_VS.E=function(a){return escape(a)};
_VS.D=function(v){return(typeof v!="undefined")?1:0};
_VS.I=function(a,b,c){return a.indexOf(b,c?c:0)};
_VS.L=function(a){return _VS.D(a)?a.length:0};
_VS.P=function(a,b){return a.split(b)};
_VS.S=function(a,b,c){return b>_VS.L(a)?"":a.substring(b,c!=null?c:_VS.L(a))};
_VS.Q=function(a){a+="&vid="+Math.random();vs_Q(a)/*external*/};
_VS.RD=function(a,b,c,d,e,f,g,h,i,j,k){e=_VS.RC(a,b,c,d);f=_VS.I(a,".");if(f>-1){g=_VS.S(a,0,f);h=_VS.S(a,f+1,_VS.L(a));i=_VS.RC(g);j=_VS.I(i,"^^"+h);
if(j>-1){k=i.indexOf("^^",j+1);k=(k==-1)?_VS.L(i):k;i=_VS.S(i,0,j)+_VS.S(i,k,_VS.L(i));if(_VS.L(i)>0)_VS.C(g,i,_PS.cookieExp);
else _VS.C(a,"","Wed, 1 Jan 1900 00:00:00 GMT")}}else{_VS.C(a,"","Wed, 1 Jan 1900 00:00:00 GMT")}return e}
_VS.RR=function(a){return(_VS.E(_VS.RV(eval("document.referre"+"r"),a)))};
_VS.RP=function(a){return(_VS.E(_VS.RV(document.URL,a)))}
_VS.RV=function(a,b,c,d,e){c=_VS.I(a,"&"+b+"=");c=c<0?_VS.I(a,"?"+b+"="):c;if(c>-1){d=_VS.I(a,'&',c+_VS.L(b)+2);
e=_VS.S(a,c+_VS.L(b)+2,d>-1?d:_VS.L(a));return e}return ""}
_VS.C=function(a,b,c,d,e,f,g,h,i,j){e=document.cookie,f=_VS.I(a,'.');if(f>0){g=_VS.S(a,0,f);h=_VS.S(a,f+1,_VS.L(a));i=_VS.RCB(g);
j=_VS.I(i,"^^"+h+"::");if(j>-1){k=_VS.I(i,"^^",j+1);k=(k==-1)?_VS.L(i):k;i=_VS.S(i,0,j)+_VS.S(i,k,_VS.L(i))}a=g;b=i+"^^"+h+"::"+b}
document.cookie=a+"="+b+"; path=/"+((_VS.D(c)==1)?"; expires="+c:"")+((_VS.D(d)==1)?"; domain="+d:"")}
_VS.RC=function(a,b,c,d,e){b=document.cookie,c="",d=_VS.I(a,'.'),e="";if(d>-1){e=_VS.RCB(_VS.S(a,0,d));
c=(_VS.L(e)>0)?_VS.RCA(_VS.S(a,d+1,_VS.L(a)),e):""}else c=_VS.RCB(a);return c}
_VS.RCB=function(a,b,c,d,e){b=document.cookie,c="",d=_VS.I(b,a+"=");if(d==-1)return "";d+=_VS.L(a)+1,e="";if(d>-1){e=_VS.I(b,';',d);e=(e==-1)?_VS.L(b):e;
if(e>d)c=_VS.S(b,d,e)}return c}
_VS.RCA=function(a,b,c,d,e){c="",d=_VS.I(b,"^^"+a);if(d>-1){e=_VS.I(b,"^^",d+1);e=(e==-1)?_VS.L(b):e;c=_VS.S(b,d+4+_VS.L(a),e)}return c}

//BazaarVoice Integration Functionality
function ratingsDisplayed(totalReviewCount, avgRating, totalRatingOnlyCount, buyAgainPercentage){
	if(totalReviewCount > 0 || totalRatingOnlyCount > 0){
		var a=cd+cu+'&event=bv_ratingdisplayed&bv_basepage='+escape(document.URL)+'&bv_reviewcount='+totalReviewCount+'&bv_avgrating='+avgRating+'&bv_ratingonly='+totalRatingOnlyCount+'&bv_buyagain='+buyAgainPercentage;
		vs_Q(a);
	}
}

function pageChanged(pageName, pageStatus){
	var a=cd+cu+'&event=bv_pagechanged&bv_basepage='+escape(document.URL)+'&bv_page='+escape(pageName)+'&bv_status='+escape(pageStatus)
	vs_Q(a);
}

var vs_libloadedflag = 1;
