/* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1 * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the the SEOPosition library. * * The Initial Developer of the Original Code is * Andy Edmonds <andyed@gmail.com> * * Portions created by the Initial Developer are Copyright (C) 2008 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Jim MacKay <jim@jagvent.com> ; Generalized and Added More SEs * ***** END LICENSE BLOCK ***** */var seoposition = {		ref:  document.referrer.toString(),		init: function () {				/* Google */				this.ssGetPageNum ("SEO Google Page",".google.","q=","start=",0,10);								/* Yahoo */				this.ssGetPageNum ("SEO Yahoo Page",".yahoo.","p=","b=",1,10);								/* MSN */				this.ssGetPageNum ("SEO MSN Page",".msn.","q=","first=",1,10);								/* Live */				this.ssGetPageNum ("SEO Live Page",".live.","q=","first=",1,10);								/* AOL */				this.ssGetPageNum ("SEO AOL Page",".aol.","query=","page=",1,1);						/* Google TLD */				this.ssGetTld ("SEO Google TLD",".google.","q=","start=",0,10);				/* Google 3LD */				this.ssGet3ld ("SEO Google Site",".google.");							/* Google Images */				this.ssGetGoogleImages ("SEO Google Images","images.google.");					}}// source = engine name for report// domain = 2nd Level of Domain; i.e. "images.google." including the "."seoposition.ssGetGoogleImages = function(source,domain) {    	if(seoposition.ref.indexOf(domain) > -1) {  		var ssImageNum = seoposition.ssGetParam("start",seoposition.ref);		var ssKeyword = unescape(seoposition.ssGetParam("prev",seoposition.ref));		ssKeyword = unescape(seoposition.ssGetParam("q",ssKeyword));		ssKeyword = ssKeyword.replace(/\+/g, " ");		if(pageTracker != 'undefined')  {			pageTracker._trackEvent(source, ssKeyword, document.location.pathname, parseInt(ssImageNum));		}	}}// source = engine name for report// domain = 2nd Level of Domain; i.e. ".google." including the "."seoposition.ssGet3ld = function(source,domain) {    	if(seoposition.ref.indexOf(domain) > -1) {  		var ss3ld = seoposition.ref.slice(seoposition.ref.indexOf("//") + 2, seoposition.ref.indexOf(domain) + domain.length - 1);		if(pageTracker != 'undefined')  pageTracker._trackEvent(source, ss3ld, document.location.pathname, 1);			}}		// source = engine name for report// domain = 2nd Level of Domain; i.e. ".google." including the "."// qParam = query parameter name for the engine// pParam = page parameter name for the engine// offset & divisor are used to calculate page properly//  so {page reported} = 1 + ( {pParam Value} - {offset} ) / {divisor}seoposition.ssGetTld = function(source,domain,qParam,pParam,offset,divisor) {    	if(seoposition.ref.indexOf(domain) > -1) {  		var ssTld = seoposition.ref.substring(seoposition.ref.indexOf(domain) + domain.length - 1);		ssTld = ssTld.substring(0,ssTld.indexOf("/"));		var ssPage = seoposition.ssCalcPageNum(pParam,offset,divisor);		if(pageTracker != 'undefined')  pageTracker._trackEvent(source, ssTld, document.location.pathname, ssPage);	}}// source = engine name for report// qParam = query parameter name for the engine// pParam = page parameter name for the engine// offset & divisor are used to calculate page properly//  so {page reported} = 1 + ( {pParam Value} - {offset} ) / {divisor}seoposition.ssGetPageNum = function (source,domain,qParam,pParam,offset,divisor) {    	if(seoposition.ref.indexOf(domain) > -1  && seoposition.ref.indexOf(qParam) > -1 ) {		var page = seoposition.ssCalcPageNum(pParam,offset,divisor);		if(pageTracker != 'undefined') pageTracker._trackEvent(source, "Page" + page, document.location.pathname, page);	}}// pParam = page parameter name for the engine// offset & divisor are used to calculate page properly//  so {page returned} = 1 + ( {pParam Value} - {offset} ) / {divisor}seoposition.ssCalcPageNum = function (pParam,offset,divisor) {	if(seoposition.ref.indexOf(pParam) > -1) {		if(seoposition.ref.split("?").length) {								return 1+(seoposition.ssGetParam(pParam,seoposition.ref)-offset)/divisor;		} 	} else {			return 1;	}}// ssGetParam retreives a parameter value from a stringseoposition.ssGetParam = function (sParam,sString) {	var arParams = sString.split("?")[1];								arParams = arParams.split("&");	for(var i=0;i<arParams.length;i++) {		if(arParams[i].indexOf(sParam) > -1 ) {			return arParams[i].split("=")[1];		}	}}seoposition.init();