var defaultCall="";
var defaultDelimiter = "&";
var GETs = new Array(null);

if(document.ePingI)defaultCall=document.ePingI.src;
else if(typeof(repImg)!='undefined')defaultCall=repImg.src;

function ReportingCall(call,delimiter){
	var dlmt = arguments.length==1?defaultDelimiter:delimiter;
	var bits = call.split(dlmt);
	for(i in bits){
		if(i==0){
			this.host=bits[i];
		}else{
			av = bits[i].split("=");
			var dbug=eval("this."+ av[0] + "='" + av[1] + "'");
		}
	}
}
new ReportingCall(defaultCall);

ReportingCall.prototype.getProps = function(){
	var avs = new Array();
	i=0;
	for (var av in this){
		if(typeof eval("this."+av) == "function") continue;
		avs[i++] = av;
	}
	return avs;
}

ReportingCall.prototype.setProps = function(a,v){
	eval("this." + a + "=v");
}

ReportingCall.prototype.getValue = function(prop){
	return (eval("this." + prop));
}

ReportingCall.prototype.makeFullCall = function(){
	var props = this.getProps();
	var call = new Array();
	for (i in props){
		if(props[i]=="host"){
			call[i] = eval("this."+props[i]);
			continue;
		}else{
			call[i] = props[i] + "=" + eval("this."+props[i]);
		}
	}
	call[call.length] = "if_ord=" + Math.random() * 1000000000000000000;
	if (document.location.search.indexOf("showReporting=true")>=0){
		alert(call.join("\n"));
	}else{
		GETs[GETs.length] = new Image(); 
		GETs[GETs.length-1].src = call.join(defaultDelimiter);
	}
}

ReportingCall.prototype.makeTaxCall = function(){
	var taxCall = new ReportingCall(this.host);
	taxCall.if_pv = "tax_only";
	taxCall.tax0_SiteID = this.tax0_SiteID;
	for(i=0; i<arguments.length; i++){
		avs = arguments[i].split("=");
		taxCall.setProps(avs[0],avs[1]);
	}
	taxCall.makeFullCall();
}

ReportingCall.prototype.joinProps = function(prim, second){
	var delim="|";
	var aggregate="";
	if(prim)aggregate=prim;else return aggregate;
	if(second)aggregate+=delim+second;
	return aggregate;
}

ReportingCall.prototype.setPropsFromString = function(str){
	if(str){
		var avs = str.split(",");
		var props = new Array();
		for(i=0; i<avs.length; i++){
			props[i] = avs[i].split("=");
		}
		for(i=0; i<props.length; i++){
			this.setProps(props[i][0], props[i][1]);
		}
	}
	
}
