/*
Prager Microsystems Voice Analytics v1.4
http://www.pragermicrosystems.com/

Copyright 2011 Prager Microsystems, Inc.

Date: Jun 14, 2011
Author: Matt Nye
*/

function GetReferringHost() {
	var refer = document.referrer;
	if (refer) {
		var parts = refer.split("/");
		var output = parts[2];
		// ***add clean host search (e.g., www.google.com > search.google.com)***
	} else {
		var output = "No Referrer";
	}
	return output;
}
function GetReferringSite() {
	var query = window.location.search;
	var parts = query.split("?");
	query = parts[1];
	// check for site referral
	if (query) {
		// get key/value pairs
		var pairs = query.split("&");
		
		// create key/value array
		var val = new Array();
		for(var i=0; i<pairs.length; i++) {
			parts = pairs[i].split("=");
			val[parts[0]] = parts[1];
		}
		if (val['ref']) {
			var output = val['ref'];
		} else {
			var output = "No Site Referrer";
		}
	} else {
		var output = "No Site Referrer";
	}
	return output;
}
function CheckReferringQueryString(term) {
	var refer = document.referrer;
	var parts = refer.split("?");
	var query = parts[1];
	
	// check for url and remove ***replace with clean query array***
	if (query) {
		query = query.replace("&url=http%3A%2F%2Fwww.paradigmtax.com%2F","");
	}
	
	var regex = new RegExp(term,"i");
	var isBrand = regex.test(query);
	if (isBrand == true) {
		return true;
	} else {
		return false;
	}
}
function CheckBrand() {
	function CheckBrandReferringQueryString(term) {
		var refer = document.referrer;
		var parts = refer.split("?");
		var query = parts[1];
		
		// check for url and remove ***replace with clean query array***
		if (query) {
			query = query.replace("&url=http%3A%2F%2Fwww.paradigmtax.com%2F","");
		}
		
		var regex = new RegExp(term,"i");
		var isBrand = regex.test(query);
		if (isBrand == true) {
			return true;
		} else {
			return false;
		}
	}
	var keyword = new Array();
	keyword[0] = "paradigm"; // anything including "paradigm"
	
	for(var i=0; i<keyword.length; i++) {
		var output = CheckBrandReferringQueryString(keyword[i]);
		if (output == true) break;
	}
	return output;
}
function CheckPaid() {
	function CheckCurrentQueryString(term) {
		var query = window.location.search;
		
		var regex = new RegExp(term);
		var isPaid = regex.test(query);
		if (isPaid == true) {
			return true;
		} else {
			return false;
		}
	}
	var paid_id = new Array();
	paid_id[0] = "gclid"; // google id
	paid_id[1] = "utm_source"; // yahoo id
	paid_id[2] = "GOO-SE"; // alternate google id
	paid_id[3] = "OVR-SE"; // alternate yahoo id
	paid_id[4] = "MSN-SE"; // alternate bing id
	
	for(var i=0; i<paid_id.length; i++) {
		var output = CheckCurrentQueryString(paid_id[i]);
		if (output == true) break;
	}
	return output;
}
function GetKeyword() {
	var refer = document.referrer;
	// get host
	var parts = refer.split("/");
	var host = parts[2];
	//// ***add clean host search (e.g., www.google.com > search.google.com)***
	
	// get query key/value pairs
	parts = refer.split("?");
	var query = parts[1];
	var pairs = query.split("&");
	
	// create key/value array
	var val = new Array();
	for(var i=0; i<pairs.length; i++) {
		parts = pairs[i].split("=");
		val[parts[0]] = parts[1];
	}
	
	// set keyword
	switch (host) {
		case "search.yahoo.com":
			var output = val['p'];
			break;
		default:
			var output = val['q'];
	}
	return unescape(output.replace(/\+/g," ")); // decode keyword
}
function CreateCookie(name,value,days,path,domain) {
	// set expire
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(1000*60*60*24*days));
		var expires = "; expires="+date.toGMTString();
	} else var expires = "";
	// set path
	if (path) {
		var pth = "; path="+path;
	} else var pth = "";
	// set domain
	if (domain) {
		var dmn = "; domain="+domain;
	} else var dmn = "";
	
	document.cookie = name+"="+value+expires+pth+dmn;
}
function ReadCookie(name) {
	var nameEQ = name+"=";
	var ca = document.cookie.split(';');
	for(var i=0; i<ca.length; i++) {
		var c = ca[i];
		while(c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function EraseCookie(name) {
	CreateCookie(name,"",-1);
}

// check host
// ***add clean host search (e.g., www.google.com > search.google.com)***
var refHost = GetReferringHost();
switch (refHost) {
	case "www.google.com":
	case "search.yahoo.com":
	case "www.bing.com":
	case "search.aol.com":
	case "www.ask.com":
		var isSearch = true;
		break;
	case "www.micrositedomain.com":
		var isMicro = true;
		break;
	default:
		var isSearch = false;
}
// check site
var refSite = GetReferringSite();
var isBrand = CheckBrand();
var isPaid = CheckPaid();

// set keyword
if (isSearch == true) {
	var va_keyword = GetKeyword();
} else {
	var va_keyword = "No Keyword Set";
}
// var kw1 = CheckReferringQueryString("keyword1"); // optional keyword check

// set medium
//// organic brandless
if (isSearch == true && isPaid == false && isBrand == false) {
	var va_atlanta = '(404) 496-5494';
	var va_dallas = '(972) 528-9040';
	var va_phoenix = '(623) 377-9675';
	var va_francisco = '(415) 766-0605';
//// direct + organic branded
} else {
	var va_atlanta = '(404) 475-0540';
	var va_dallas = '(972) 759-9600';
	var va_phoenix = '(602) 393-9689';
	var va_francisco = '(415) 593-9005';
}

// check for cookie or set cookie
var c1 = ReadCookie("va_atlanta");
var c2 = ReadCookie("va_dallas");
var c3 = ReadCookie("va_phoenix");
var c4 = ReadCookie("va_francisco");
if (c1 || c2 || c3 || c4) {
	va_atlanta = c1;
	va_dallas = c2;
	va_phoenix = c3;
	va_francisco = c4;
} else {
	var expire = 180; // 6 months
	CreateCookie("va_atlanta",va_atlanta,expire,"/",".paradigmtax.com");
	CreateCookie("va_dallas",va_dallas,expire,"/",".paradigmtax.com");
	CreateCookie("va_phoenix",va_phoenix,expire,"/",".paradigmtax.com");
	CreateCookie("va_francisco",va_francisco,expire,"/",".paradigmtax.com");
}
