var rivs = [];
var rivTracker;
var env = "www.rivworks.com";
var protocol = (("https:" == document.location.protocol) ? "https://" : "http://");
var curRivPos = 0;
var curRivData;
var rivMode = 'SINGLE';
if (getPathToSelf().toLowerCase().indexOf('kab.rivworks.com') != -1) {
    env = "kab.rivworks.com";
} else if (getPathToSelf().toLowerCase().indexOf('dev.rivworks.com') != -1) {
    env = "dev.rivworks.com";
} else if (getPathToSelf().toLowerCase().indexOf('qa.rivworks.com') != -1) {
    env = "qa.rivworks.com";
} else if (getPathToSelf().toLowerCase().indexOf('uat.rivworks.com') != -1) {
    env = "uat.rivworks.com";
} else if (getPathToSelf().toLowerCase().indexOf('staging.rivworks.com') != -1) {
    env = "staging.rivworks.com";
} else if (getPathToSelf().toLowerCase().indexOf('demo.rivworks.com') != -1) {
    env = "demo.rivworks.com";
} else if (getPathToSelf().toLowerCase().indexOf('demo2.rivworks.com') != -1) {
    env = "demo2.rivworks.com";
} else if (getPathToSelf().toLowerCase().indexOf('prod.rivworks.com') != -1) {
    env = "prod.rivworks.com";
}

//
if (typeof rivQuery == 'undefined')
{
    document.write("<script src='http://"+env+"/javascript/jquery.js' type='text/javascript'></script>");
}
if (typeof swfobject == 'undefined')
{
    document.write("<script src='http://"+env+"/javascript/swfobject.js' type='text/javascript'></script>");
}

//create our button's dom element and include css
document.write("<link rel='stylesheet' href='"+protocol+env+"/CSS/RIV.css' type='text/css' /><div id='riv'></div>");
//google analytics
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
//

window.onload = function(){
	$riv = rivQuery;
    if(typeof rivReady == "undefined"){
        rivSetup();
    }else{
        rivReady();
    }
	
};

function getRivBatch(){
	var batch = "[";
	for(i=0;i<rivs.length;i++){
		//batch += "{" + "\"" + rivs[i].TYPE + "|" + rivs[i].ID + "|" + "f" + "\"" + "}";
		//batch += "{'" + rivs[i].TYPE + "|" + rivs[i].ID + "|" + "f" + "'}";
        if(rivs[i].COMPANY != undefined){
            batch += "'" + rivs[i].TYPE + "|" + rivs[i].ID + "|" + rivs[i].COMPANY + "'";
        }else{
            batch += "'" + rivs[i].TYPE + "|" + rivs[i].ID + "'";
        }
		if(i!=rivs.length-1){
			batch += ",";
		}
	}
	batch += "]";
	var request = "\"ref\":\"" + escape(this.location.toString()) + "\", \"dt\":\"" + escape(new Date().toString()) + "\", \"batch\":" + batch + ", \"env\":\"" + protocol+env + "\"";
	if(typeof rivCompanyId != "undefined"){
		request += ", \"CompanyId\":\"" + rivCompanyId + "\"";
	}
	if(typeof rivPortalFlag != "undefined"){
		request += ", \"PortalFlag\":\"" + rivPortalFlag + "\"";
	}
	request = "{" + request + "}";
	rivQuery.getJSON(protocol+env+"/services/Negotiate.svc/GetSetupAll?jsonInput="+request+"&method=?", 
		function(data, textStatus) {
			for(i=0; i<data.length; i++){
				onRivResponse(data[i], i);	
			}
		}
	);
}

function getRiv(){
	
	if(rivs.length > 0){
		rivObj = rivs[0];
		
		var request = "\"ref\":\"" + escape(this.location.toString()) + "\", \"dt\":\"" + escape(new Date().toString()) + "\", \"error\":\"NoProductOrCampaign\", \"env\":\"" + protocol+env + "\"";
		if(rivObj.TYPE == 'sku'){
			request = "\"ref\":\"" + escape(this.location.toString()) + "\", \"dt\":\"" + escape(new Date().toString()) + "\", \"sku\":\"" + rivObj.ID + "\", \"env\":\"" + protocol+env + "\"";
		}else if(rivObj.TYPE == 'productId'){
			request = "\"ref\":\"" + escape(this.location.toString()) + "\", \"dt\":\"" + escape(new Date().toString()) + "\", \"productId\":\"" + rivObj.ID + "\", \"env\":\"" + protocol+env +"\"";
		}else if(rivObj.TYPE == 'campaignId'){
			request = "\"ref\":\"" + escape(this.location.toString()) + "\", \"dt\":\"" + escape(new Date().toString()) + "\", \"campaignId\":\"" + rivObj.ID + "\", \"env\":\"" + protocol+env +"\"";
		}
		if(typeof rivCompanyId != "undefined"){
			request += ", \"CompanyId\":\"" + rivCompanyId + "\"";
		}
		if(typeof rivPortalFlag != "undefined"){
			request += ", \"PortalFlag\":\"" + rivPortalFlag + "\"";
		}
		request = "{" + request + "}";
		rivQuery.getJSON(protocol+env+"/services/Negotiate.svc/GetSetup?jsonInput="+request+"&method=?", 
		
			function(data, textStatus) {
				
				onRivResponse(data, 0);
				
			}
		);
	}
}

function onRivResponse(rivdata, index){
	
	rivs[index]['DATA'] = rivdata;
	
	var rivelem = rivQuery("#riv"+index);
	
	if(rivMode == 'SINGLE'){
		rivelem = rivQuery("#riv");
	}
	
	//if a campaign is returned, style the riv element, embed the swf, etc.
	switch(rivdata.uiType){
		case "modal":
			//
			if(rivdata.button != undefined && rivdata.button != ''){
				rivelem.css("display","inline");
				
				var gaTxt = "BUTTON DISPLAYED - DETAIL PAGE";
				
				var btnURL = rivdata.button;
				
				if(rivs[index]['BUTTON'] != undefined){
					btnURL = rivs[index]['BUTTON'];
				}
				if(rivMode != 'MULTI'){
                    rivelem.html("<a href='javascript:void(0);'><img src='"+btnURL+"' id='rivbtn"+index+"' border='0' style='"+ rivdata.buttonPositionCSS +"' /></a>");
                }else{
					gaTxt = "BUTTON DISPLAYED - LISTING PAGE";
                    rivelem.html("<a href='javascript:void(0);'><img src='"+btnURL+"' id='rivbtn"+index+"' border='0' /></a>");
                }
				rivQuery("#rivbtn"+index).click(rivButtonClick);
				
				try{
					rivTracker._trackPageview(gaTxt +" on: "+document.location);
					rivTracker._trackEvent(rivdata.companyName, gaTxt, gaTxt+" "+document.location+""+new Date());
				}catch(err){};
				
			}
		break;
		case "inline":
			rivelem.append("<div id='rivswf'></div>");
			swfobject.embedSWF(rivdata.swfSource, "rivswf", rivdata.width, rivdata.height, "9.0.0","expressInstall.swf", rivflashvars, rivparams, rivattributes);
		break;
		case "positioned":
			rivelem.append("<div id='rivswf'></div>");
			swfobject.embedSWF(rivdata.swfSource, "rivswf", rivdata.width, rivdata.height, "9.0.0","expressInstall.swf", rivflashvars, rivparams, rivattributes);
			rivelem.css('position',rivdata.position.type);
			if(rivdata.position.margin_left != undefined){
				rivelem.css('marginLeft',rivdata.position.margin_left);
			}
			if(rivdata.position.margin_top != undefined){
				rivelem.css('marginTop',rivdata.position.margin_top);
			}
			if(rivdata.position.margin_right != undefined){
				rivelem.css('marginRight',rivdata.position.margin_right);
			}
			if(rivdata.position.margin_bottom != undefined){
				rivelem.css('marginBottom',rivdata.position.margin_bottom);
			}
			if(rivdata.position.left != undefined){
				rivelem.css('left',rivdata.position.left);
			}
			if(rivdata.position.right != undefined){
				rivelem.css('right',rivdata.position.right);
			}
			if(rivdata.position.top != undefined){
				rivelem.css('top',rivdata.position.top);
			}
			if(rivdata.position.bottom != undefined){
				rivelem.css('bottom',rivdata.position.bottom);
			}
		break;
	}
}

function rivSetup(){
	
	//analytics setup
	rivTracker = _gat._getTracker("UA-9064785-3");
	rivTracker._setDomainName("none");
	rivTracker._setAllowLinker(true);
	
	//single campaign embed
	if(rivs.length == 0){
		if(typeof rivSKUId != "undefined"){
			rivs.push({'TYPE':'sku','ID':rivSKUId});
		}else if(typeof rivProductId != "undefined"){
			rivs.push({'TYPE':'productId','ID':rivProductId});
		}
		getRiv();
	}else{
		getRivBatch();
	}
	
}

//multiple campaign embed
function rivBySKU(sku){
	rivMode = 'MULTI';
	document.write("<div id='riv"+rivs.length+"'></div>");
	rivs.push({'TYPE':'sku', 'ID':sku});
}

function rivBySKUWithButton(sku,image){
	rivMode = 'MULTI';
	document.write("<div id='riv"+rivs.length+"'></div>");
	rivs.push({'TYPE':'sku', 'ID':sku, 'BUTTON':image});
}

function rivBySKUWithCompany(sku,company){
	rivMode = 'MULTI';
	document.write("<div id='riv"+rivs.length+"'></div>");
	rivs.push({'TYPE':'sku', 'ID':sku, 'COMPANY':company});
}

function rivByProductId(id){
	rivMode = 'MULTI';
	document.write("<div id='riv"+rivs.length+"'></div>");
	rivs.push({'TYPE':'productId', 'ID':id});
}

function rivByProductIdWithButton(id,image){
	rivMode = 'MULTI';
	document.write("<div id='riv"+rivs.length+"'></div>");
	rivs.push({'TYPE':'productId', 'ID':id, 'BUTTON':image});
}

function rivByProductIdWithCompany(id,company){
	rivMode = 'MULTI';
	document.write("<div id='riv"+rivs.length+"'></div>");
	rivs.push({'TYPE':'productId', 'ID':id, 'COMPANY':company});
}

function rivButtonClick(){
	curRivPos = parseInt(rivQuery(this).attr('id').replace('rivbtn', ''));
	var rivdata = rivs[curRivPos]['DATA'];
	try{
		rivTracker._trackPageview("/Make Offer Button on: "+document.location);
		rivTracker._trackEvent(rivdata.companyName,"MAKE OFFER BUTTON CLICKED", "Make Offer Button "+" "+document.location+""+new Date());
	}catch(err){};
	rivShowModal(rivdata);
}

function rivShowModal(rivdata){
	curRivData = rivdata;
	
	if(rivQuery("#rivmask").length == 0){
		rivQuery("body").append("<div id='rivmask'></div><div id='rivmodal'></div>");
	}
	
	if(rivdata != undefined && rivdata.uiType == "modal"){
		
	    //Get the screen height and width
		sizeMask();
		
		//transition effect		
		rivQuery('#rivmask').fadeIn(0);	
		rivQuery('#rivmask').fadeTo(0,0);	
		

		//
		rivQuery('#rivmodal').append("<div id='rivwin' style='padding:0;'><div id='rivswf'></div></div>");
		
		
		positionAndSizeSwf();
		
		
		//embed swf
		rivflashvars = {productID:rivdata.productID,gateway:rivdata.gateway};
		rivparams = {wmode:'transparent', allowScriptAccess:'always'};
		rivattributes = {id:'rivplayer',name:'rivplayer'};
		swfobject.embedSWF(rivdata.swfSource, "rivswf", "100%", "100%", "9.0.0","expressInstall.swf", rivflashvars, rivparams, rivattributes);

		rivQuery(window).resize(function(){
			//resize mask
			sizeMask();
			//reposition 
			positionAndSizeSwf();
		});

		
	}
}

function sizeMask(){
	var maskHeight = rivQuery(window).height();
	var maskWidth = rivQuery(window).width();
	rivQuery('#rivmask').css({'width':maskWidth,'height':maskHeight});
}

function positionAndSizeSwf(){
	var rivdata = curRivData;
	
	var dWidth = rivdata.width;
	var dHeight = rivdata.height;

	//temporary override
	dWidth = 765;
	dHeight = 510;

	var tWidth = dWidth;
	var tHeight = dHeight;

	//auto resize down
	if(rivQuery(window).width() < dWidth){
		var sc = rivQuery(window).width()/dWidth;
		tWidth = parseInt((dWidth-20)*sc);
		tHeight = parseInt((dHeight-20)*sc);
		rivQuery("#rivwin").css("width", tWidth);
		rivQuery("#rivwin").css("height", tHeight);
	}else if(rivQuery(window).height() < dHeight){
		var sc = rivQuery(window).height()/dHeight;
		tWidth = parseInt((dWidth-20)*sc);
		tHeight = parseInt((dHeight-20)*sc);
		rivQuery("#rivwin").css("width", tWidth);
		rivQuery("#rivwin").css("height", tHeight);
	}else{
		rivQuery("#rivwin").css("width", dWidth);
		rivQuery("#rivwin").css("height", dHeight);
	}
	
	
	//position left
	var left = ((rivQuery(window).width()-tWidth)/2) + rivQuery(window).scrollLeft();

	if(rivQuery('body').css('text-align') == 'center' && getAgent().msie && getAgent().version < 8){
		left = 0-(tWidth/2);
	}
	rivQuery("#rivwin").css("margin-left", left-10 + "px");
	
	//position top
	var top = ((rivQuery(window).height()-tHeight)/2) + rivQuery(window).scrollTop();
    
	//BarbeesFreewayford
	if(document.location.toString().toLowerCase().indexOf('barbeesfreewayford') != -1){
		
		if(document.location.toString().indexOf('details2.asp') != -1 && getAgent().msie){
			left = 0-(tWidth/2)-5;
            top = 50;
            scroll(0,0);
		}
        if(document.location.toString().toLowerCase().indexOf('browse2.asp') != -1 && getAgent().msie){
			
			left = (rivQuery(window).width()/2)-(tWidth/2);
            if(getAgent().version < 8){
                left = 0-(tWidth/2);
            }
		}
		rivQuery("#rivwin").css("margin-left", left + "px");
	}
	
	rivQuery("#rivwin").css("top", top + "px");

}

function rivDestroy(){
	rivQuery("#rivmodal").remove();
    	rivQuery("#rivmask").remove();
    	rivQuery("#riv").empty();
	rivQuery(window).resize(function(){
			
	});
}

function rivHideModal(){
    rivQuery('#rivmodal').empty();
    rivQuery('#rivmask').fadeOut();
}

function rivStartModalDrag(){
    //alert("start");
    rivQuery('#rivmodal').draggable('enable');
}

function rivStopModalDrag(){
    //alert("stop");
    rivQuery('#rivmodal').draggable('disable');
}

function thisMovie(movieName) {
 if (navigator.appName.indexOf("Microsoft") != -1) {
	 return window[movieName];
 } else {
	 return document[movieName];
 }
}

function getPathToSelf() {
	var myName = /(^|[\/\\])riv\.js(\?|$)/;
	var scripts = document.getElementsByTagName("script");
	for (var i = 0; i < scripts.length; i++) {
		var src;
		if (src = scripts[i].getAttribute("src")) {
			if (src.match(myName)) {
				return src;
			}
		}
	}
}

function getParameterFromURLByName( url, name ){
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( url );
  if( results == null )
    return "";
  else
    return results[1];
}

function getAgent()
{
	var userAgent = navigator.userAgent.toLowerCase();

    var browser = {
        version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
        safari: /webkit/.test( userAgent ),
        opera: /opera/.test( userAgent ),
        msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
        mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
    };
	
	return browser;
}