jQuery.fn.extend({
getEscapedUrlParam: function(strParamName)
{
	strParamName = escape(unescape(strParamName));
	  var returnVal = new Array();
	  var qString = null;
	  if ($(this).attr("nodeName")=="#document") {
	  	//document-handler
		if (window.location.search.search(strParamName) > -1 ){
			qString = window.location.search.substr(1,window.location.search.length).split("&");
		}
	  } else if (typeof($(this).attr("src"))!="undefined") {
	  	var strHref = $(this).attr("src")
	  	if ( strHref.indexOf("?") > -1 ){
	    	var strQueryString = strHref.substr(strHref.indexOf("?")+1);
	  		qString = strQueryString.split("&");
	  	}
	  } else if (typeof($(this).attr("href"))!="undefined") {
	  	var strHref = $(this).attr("href")
	  	if ( strHref.indexOf("?") > -1 ){
	    	var strQueryString = strHref.substr(strHref.indexOf("?")+1);
	  		qString = strQueryString.split("&");
	  	}
	  } else {
	  	return null;
	  }
	  if (qString==null) return null;
	  for (var i=0;i<qString.length; i++){
			if (escape(unescape(qString[i].split("=")[0])) == strParamName){
				returnVal.push(qString[i].split("=")[1]);
			}
	  }
	  if (returnVal.length==0) return null;
	  else if (returnVal.length==1) return returnVal[0];
	  else return returnVal;
	}
});
function cmlog(url) {
	if (typeof console != "undefined" && typeof console.log != "undefined") console.log("cm tracked: " + url);
}
$(document).ready( function ()
{
	var url = document.domain;
	var domain = "";
	var sub_domain = "";
	if(url.indexOf("www.") >= 0)
	{
		domain = url.substring(4);
	}
	else
	{
		sub_domain = url.substring(0,url.indexOf("."));
		domain = url.substring(url.indexOf(".")+1);
	}
	if(domain == "o2online.ie")
	{
		if((sub_domain != "pre" || sub_domain != "uat" || sub_domain != "int"))
		{
			cmSetProduction();
		}
	}

	var url = document.location.href;
	url = url.toLowerCase();

	var partNumber;
	var xhttp = "";
	if(url.indexOf('?') != -1)
	{
		url = url.substring(0, url.indexOf('?'));
	}

	if(url == "http://www.o2online.ie/o2search/search/search.do")
	{
		var search_term = "";
		var number_results  = "";
		
		$('.searchResultsTopBar').children().each(function ()
		{	
			var class_search = $(this).attr('class');
			if(class_search == "floatRight standardText1R")
			{
				var temp = $(this).text();
				number_results = temp.substring(temp.indexOf(':')+2);
			}
		});
		if($(document).getUrlParam("query")!=null)
		{
			search_term = $(document).getUrlParam("query");
		}
		cmCreatePageviewTag("Search Successful","1000",search_term,number_results);
		
	} else if ((url.indexOf("/webapp/wcs/stores/servlet/o2productdisplayview")!= -1) || (url.indexOf("/webapp/wcs/stores/servlet/o2priceplanview")!= -1) || (url.indexOf("/webapp/wcs/stores/servlet/o2personaldetailsupdate")!= -1) || (url.indexOf("/webapp/wcs/stores/servlet/o2paymentdetailsupdate")!= -1)) { 
		
		
		if (partNumber = $(document).getUrlParam("partNumber")) {
			
			if (window.XMLHttpRequest) {
				xhttp = new XMLHttpRequest();
			} else {
				xhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			xhttp.open("GET","//www.o2online.ie/wps/wcm/resources/file/ebc28c000b62752/coremetric_products.xml",false);
			xhttp.send("");
			xmlDoc=xhttp.responseXML;
			
			// Look up the different elements for this partNumber
			var productNodes = xmlDoc.getElementsByTagName("product");
			
			for(var i=0; i < productNodes.length; i++) {
				var coremetrics_productid = xmlDoc.getElementsByTagName("product")[i].getAttribute("id");
				if ((coremetrics_productid) == (partNumber)) {
					var coremetrics_productName = xmlDoc.getElementsByTagName("productname")[i].childNodes[0].nodeValue; 
					var coremetrics_catId = xmlDoc.getElementsByTagName("cmcategoryid")[i].childNodes[0].nodeValue; 
					cmCreateProductviewTag(partNumber,coremetrics_productName,coremetrics_catId);
					i = productNodes.length;
				}
			}
		}
	} else if ((url.indexOf("/webapp/wcs/stores/servlet/o2shopcartview")!= -1) || (url.indexOf("/webapp/wcs/stores/servlet/o2priceplanview")!= -1) || (url.indexOf("http://www.o2online.ie/webapp/wcs/stores/servlet/o2addonview")!=-1) || (url.indexOf("/webapp/wcs/stores/servlet/o2personaldetailsupdate")!= -1) || (url.indexOf("/webapp/wcs/stores/servlet/o2paymentdetailsupdate")!= -1)) { 

        cmCreatePageviewTag("Shop","2600");
		var theNode = "";
		theNode = ($("#shopHeaderPanel #helpPanel a").length == 1) ? $("#shopHeaderPanel #helpPanel a") : "";
		theNode = (theNode == "" && $("#shopHeaderPanel .floatRight a").length == 1) ? $("#shopHeaderPanel .floatRight a") : theNode;
		if (theNode != "")
		{
			partNumberList = unescape(theNode.getEscapedUrlParam("partNumberList")).split(",");
			if (window.XMLHttpRequest) {
				xhttp = new XMLHttpRequest();
			} else {
				xhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			xhttp.open("GET","//www.o2online.ie/wps/wcm/resources/file/ebc28c000b62752/coremetric_products.xml",false);
			xhttp.send("");
			xmlDoc=xhttp.responseXML;
		
			// Look up the different elements for this partNumber
			var productNodes = xmlDoc.getElementsByTagName("product");
			//
			for (pl=0;pl<partNumberList.length;pl++)
			{
				partNumber = partNumberList[pl];
				for(var i=0; i < productNodes.length; i++) {
					var coremetrics_productid = xmlDoc.getElementsByTagName("product")[i].getAttribute("id");
					if (partNumber.indexOf(coremetrics_productid)>-1) {
						var coremetrics_productName = xmlDoc.getElementsByTagName("productname")[i].childNodes[0].nodeValue; 
						var coremetrics_catId = xmlDoc.getElementsByTagName("cmcategoryid")[i].childNodes[0].nodeValue;
						cmCreateShopAction5Tag(partNumber,coremetrics_productName,'1','0.00',coremetrics_catId)
						i = productNodes.length;
					}
				}
			}
			cmDisplayShop5s();
		}
	}
	else if (url.indexOf("http://www.o2online.ie")!= -1)
	{
		var categoryFound = false;
		if (window.XMLHttpRequest) {
			xhttp = new XMLHttpRequest();
		} else {
			xhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		xhttp.open("GET","//www.o2online.ie/wps/wcm/resources/file/ebc564001562523/coremetric_categories.xml",false);
		xhttp.send("");
		xmlDoc=xhttp.responseXML;
		
		
		categoryNodes = xmlDoc.getElementsByTagName("category");
		categorynameNodes = xmlDoc.getElementsByTagName("categoryname");
		categoryurlNodes = xmlDoc.getElementsByTagName("categoryurl");
		
		
		for(var i=0; i < categoryNodes.length; i++) {
			var coremetrics_catid = xmlDoc.getElementsByTagName("category")[i].getAttribute("id");
			var coremetrics_url = xmlDoc.getElementsByTagName("categoryurl")[i].childNodes[0].nodeValue.toLowerCase(); 
			var coremetrics_catname = xmlDoc.getElementsByTagName("categoryname")[i].childNodes[0].nodeValue; 
			
			// Check to see what the category is for this url
			if (url.indexOf(coremetrics_url) > -1) {
				cmCreatePageviewTag(coremetrics_catname,coremetrics_catid);
				i = categoryNodes.length;
				categoryFound = true;
			}
		}
		if (!categoryFound) {
			cmCreatePageviewTag(url,null);
		}	

	} else if (url.indexOf("//messaging.o2online.ie")!= -1) {
		cmCreatePageviewTag(url,"1700");
	} else if (url.indexOf("//community.o2online.ie")!= -1) {
		cmCreatePageviewTag(url,"1810");	
	} else if (url.indexOf("//topup.o2online.ie")!= -1) {

		cmCreatePageviewTag(url,"1600");
	} else if (url.indexOf("//help.o2online.ie")!= -1) {

		cmCreatePageviewTag(url,"1820");
	} else if (url.indexOf("//blueroom.o2online.ie")!= -1) {
		cmCreatePageviewTag(url,"2100");
	} else if (url.indexOf("//webkit.o2online.ie/ideasroom")!= -1) {
		cmCreatePageviewTag(url,"2400");
	} else if (url.indexOf("//recycle.o2online.ie")!= -1) {
		cmCreatePageviewTag(url,"2500");
	}  else if (url.indexOf("//refer.o2online.ie")!= -1) {
		cmCreatePageviewTag(url,"4000");
	}
	cmlog(url);
	
});
