/**************************************************************************************************
* author:	Critical Mass, www.criticalmass.com
* notes:	This file contains code for displaying lease offer information in pages in the		
*		site.  Make sure to include this file in a ny pages where lease offers are enabled.				
*	
**************************************************************************************************/

function leaseClass() {
	this.version = '1.20061026';
	
	// initialize properties so they aren't "undefined"
	
	this.boxType = '';
	this.monthly = '';
	this.header = '';
	this.bodyCopy = '';
    this.discText = '';
	this.term = '';
	this.offer = '';
	this.payment1 = '';
	this.payment1Text = '';
	this.payment2 = '';
	this.payment2Text = '';
	this.payment3 = '';
	this.payment3Text = '';
	this.paymentTotal = '';
	this.paymentTotalText = '';
	this.link = '#';
	this.classList = '';
	this.aprRate = '';
	this.aprTerm = '';
	this.aprText = '';
	this.urlTarget = '';
	this.eventLink = '';
	this.error = 'No data available';
	this.buttonText = '';
	this.callJS = false;
	this.jsMethod = '';
	
	this.apr = '';
	this.aprterm = '';
    
    this.finance = '';
	this.financeText = '';
    
	this.aprend = '';
	
	this.flashVars = '';
};
var lease = new leaseClass();

//alert(lease.domain);
/**************************************************************************************************
*	method: buildFlashVars 
*	notes:	Builds a string of all the lease proerpties to pass into flash lease objects
*
********/
leaseClass.prototype.urlEncode = function(strToEncode){
	return escape(strToEncode);
};

/**************************************************************************************************
*	method: buildFlashVars 
*	notes:	Builds a string of all the lease proerpties to pass into flash lease objects
*
********/

leaseClass.prototype.buildFlashVars = function() {
	var re = /(\&amp;|\&)/g;	
	return 'apr=' + lease.apr.replace(re, '|') + '&amp;aprterm=' + lease.aprterm.replace(re, '|') + '&amp;aprend=' + lease.aprend.replace(re, '|') + '&amp;boxType=' + lease.boxType.replace(re, '|') + '&amp;header=' + lease.header.replace(re, '|') + '&amp;bodyCopy=' + lease.bodyCopy.replace(re, '|') + '&amp;discText=' + lease.discText.replace(re, '|') + '&amp;monthlyPayment=' + lease.monthly.replace(re, '|') + '&amp;leaseTerm=' + lease.term.replace(re, '|') + '&amp;offerText=' + lease.offer.replace(re, '|') +'&amp;payment1=' + lease.payment1.replace(re, '|') + '&amp;payment1Text=' + lease.payment1Text.replace(re, '|') + '&amp;payment2=' + lease.payment2.replace(re, '|') + '&amp;payment2Text=' + lease.payment2Text.replace(re, '|') + '&amp;payment3=' + lease.payment3.replace(re, '|') + '&amp;payment3Text=' + lease.payment3Text.replace(re, '|') + '&amp;totalPayment=' + lease.paymentTotal.replace(re, '|') + '&amp;totalPaymentText=' + lease.paymentTotalText.replace(re, '|') + '&amp;buttonText=' + lease.buttonText.replace(re, '|') + '&amp;errorText=' + lease.error.replace(re, '|') + '&amp;linkUrl=' + lease.link.replace(re, '|') + '&amp;eventLink=' + lease.eventLink.replace(re, '|') + '&amp;aprTerm=' + this.urlEncode(lease.aprTerm.replace(re, '|')) + '&amp;aprRate=' + lease.aprRate.replace(re, '|') + '&amp;aprText=' + lease.aprText.replace(re, '|') + '&amp;classList=' + lease.classList + '&amp;urlTarget=' + lease.urlTarget.replace(re, '|') + '&amp;callJS=' + lease.callJS + '&amp;jsMethod=' + lease.jsMethod.replace(re, '|');
    //return 'finance=' + lease.finance.replace(re, '|') + '&amp;financeText=' + lease.financeText.replace(re, '|') + '&amp;aprend=' + lease.aprend.replace(re, '|') + '&amp;boxType=' + lease.boxType.replace(re, '|') + '&amp;header=' + lease.header.replace(re, '|') + '&amp;bodyCopy=' + lease.bodyCopy.replace(re, '|') + '&amp;discText=' + lease.discText.replace(re, '|') + '&amp;monthlyPayment=' + lease.monthly.replace(re, '|') + '&amp;leaseTerm=' + lease.term.replace(re, '|') + '&amp;offerText=' + lease.offer.replace(re, '|') +'&amp;payment1=' + lease.payment1.replace(re, '|') + '&amp;payment1Text=' + lease.payment1Text.replace(re, '|') + '&amp;payment2=' + lease.payment2.replace(re, '|') + '&amp;payment2Text=' + lease.payment2Text.replace(re, '|') + '&amp;payment3=' + lease.payment3.replace(re, '|') + '&amp;payment3Text=' + lease.payment3Text.replace(re, '|') + '&amp;totalPayment=' + lease.paymentTotal.replace(re, '|') + '&amp;totalPaymentText=' + lease.paymentTotalText.replace(re, '|') + '&amp;buttonText=' + lease.buttonText.replace(re, '|') + '&amp;errorText=' + lease.error.replace(re, '|') + '&amp;linkUrl=' + lease.link.replace(re, '|') + '&amp;eventLink=' + lease.eventLink.replace(re, '|') + '&amp;aprTerm=' + this.urlEncode(lease.aprTerm.replace(re, '|')) + '&amp;aprRate=' + lease.aprRate.replace(re, '|') + '&amp;aprText=' + lease.aprText.replace(re, '|') + '&amp;classList=' + lease.classList + '&amp;urlTarget=' + lease.urlTarget.replace(re, '|') + '&amp;callJS=' + lease.callJS + '&amp;jsMethod=' + lease.jsMethod.replace(re, '|');
}



/**************************************************************************************************
*	method: createStaticPricing 
*	notes:	Injects flash or xhtml to create the "grey box" for lease offers
*
********/

leaseClass.prototype.createStaticPricing = function() {
	var strHTML = '<div id="lease_box" class="lease_box" style="height: 110px; background-image: url(/media/images/lease-offers/default/small_box.gif); background-repeat:no-repeat;" onclick="location.href = \'' + lease.link + '\';">';
	if(lease.monthly && lease.paymentTotal) {
		strHTML += '	<div class="left">';
		strHTML += '		<div class="price">';
		strHTML += '			<div class="sign">';
		strHTML += '				$';
		strHTML += '			</div>';
		strHTML += '			<div class="payment" style="line-height: 52px;">';
		strHTML += lease.monthly + '/';
		strHTML += '			</div>';
		strHTML += '			<div class="month">';
		strHTML += '				mo.';
		strHTML += '			</div>';
		strHTML += '		</div>';
		strHTML += '		<div class="term">';
		strHTML += lease.term;
		strHTML += '		</div>';
		strHTML += '		<div class="offer">';
		strHTML += lease.offer;
		strHTML += '		</div>';
		strHTML += '	</div>';
		strHTML += '	<div class="right">';
		strHTML += '		<div class="payment1">';
		strHTML += lease.payment1;
		strHTML += '		</div>';
		strHTML += '		<div class="payment1Text">';
		strHTML += lease.payment1Text;
		strHTML += '		</div>';
		strHTML += '		<div class="payment2">';
		strHTML += lease.payment2;
		strHTML += '		</div>';
		strHTML += '		<div class="payment2Text">';
		strHTML += lease.payment2Text;
		strHTML += '		</div>';
		strHTML += '		<div class="payment3">';
		strHTML += lease.payment3;
		strHTML += '		</div>';
		strHTML += '		<div class="payment3Text">';
		strHTML += lease.payment3Text;
		strHTML += '		</div>';
		strHTML += '		<div class="paymentTotal">';
		strHTML += lease.paymentTotal;
		strHTML += '		</div>';
		strHTML += '		<div class="paymentTotalText">';
		strHTML += lease.paymentTotalText;
		strHTML += '		</div>';
		strHTML += '	</div>';
	} else {
		strHTML += '<div class="error">';
		strHTML += lease.error;
		strHTML += '</div>';
	};
	strHTML += '</div>';

	return strHTML;
};


/**************************************************************************************************
*	method: createStaticClasses 
*	notes:	Injects flash or xhtml to create the "grey box" for lease offers
*
********/

leaseClass.prototype.createStaticClasses = function() {
	var strHTML = '<div id="lease_box" class="lease_box" style="height: 130px; background-image: url(/media/images/lease-offers/default/big_box.gif); background-repeat: no-repeat;">';
	if(lease.header  && lease.classListNoFlash) {
		strHTML += '	<div class="header">';
		strHTML += lease.header;
		strHTML += '	</div>';
		strHTML += '	<div style="margin-left: 110px; font-size: 1px; padding: 0px; display: block; width: 250px; height: 1px; border-top: 1px solid #333333;"></div>';
		strHTML += '	<div class="bodyCopy" style="padding-bottom: 10px;">';
		strHTML += lease.bodyCopy;
        strHTML += '	<div>';
		strHTML += lease.discText;
		strHTML += '	</div>';
        strHTML += '	</div>';
		
		var arrClasses = lease.classListNoFlash.split(';');
		for(var intCount = 0; intCount < arrClasses.length; intCount++) {
			strHTML += '<div class="classLink" style="float: left;">';
            strHTML += arrClasses[intCount];
            strHTML += '</div>';
		};
	};
	strHTML += '</div>';
	return strHTML;
    
};


/**************************************************************************************************
*	method: createStaticFinance
*	notes:	Injects flash or xhtml to create the "grey box" for lease offers
*
********/

leaseClass.prototype.createStaticFinance = function() {
	var strHTML = '<div id="lease_box" class="lease_box" style="height: 110px; background-image: url(/media/images/lease-offers/default/small_box.gif); background-repeat: no-repeat;" onclick="location.href = \'' + lease.link + '\';">';
	if(lease.header && lease.bodyCopy && lease.discText) {
		strHTML += '	<div class="header">';
		strHTML += lease.header;
		strHTML += '	</div>';
		strHTML += '	<div style="margin-left: 100px; width: 270px; height: 1px; background-color: #333;"></div>';
		strHTML += '	<div class="bodyCopy">';
		strHTML += lease.bodyCopy;
        strHTML += '	<div>';
		strHTML += lease.discText;
		strHTML += '	</div>';
        strHTML += '	</div>';
	};
	strHTML += '</div>';
	
	return strHTML;
};


/**************************************************************************************************
*	method: createBox 
*	notes:	Injects flash or xhtml to create the "grey box" for lease offers
*
********/

leaseClass.prototype.createBox = function(intWidth, intHeight) {
	
	if(hasFlash(7) && !booNoFlash) {
		var strHTML = '<div id="lease_box">'; 
		strHTML += '	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="' + intWidth + '" height="' + intHeight + '" name="lease_flash" align="">';
		strHTML += '		<param name="movie" value="/media/richmedia/lease-offers/default/lease-box.swf">';
		strHTML += '		<param name="quality" value="high">';
		strHTML += '		<param name="bgcolor" value="#ffffff">';
		strHTML += '		<param name="menu" value="false">';
		strHTML += '		<param name="flashvars" value="boxType=' + lease.boxType + '&amp;header=' + lease.header + '&amp;bodyCopy=' + lease.bodyCopy + '&amp;discText=' + lease.discText + '&amp;monthlyPayment=' + lease.monthly + '&amp;leaseTerm=' + lease.term + '&amp;offerText=' + lease.offer +'&amp;payment1=' + lease.payment1 + '&amp;payment1Text=' + lease.payment1Text + '&amp;payment2=' + lease.payment2 + '&amp;payment2Text=' + lease.payment2Text + '&amp;payment3=' + lease.payment3 + '&amp;payment3Text=' + lease.payment3Text + '&amp;totalPayment=' + lease.paymentTotal + '&amp;totalPaymentText=' + lease.paymentTotalText + '&amp;buttonText=' + lease.buttonText + '&amp;errorText=' + lease.error + '&amp;linkUrl=' + lease.link + '&amp;eventLink=' + lease.eventLink + '&amp;classList=' + lease.classList + '" />';
		strHTML += '		<embed src="/media/richmedia/lease-offers/default/lease-box.swf" flashvars="boxType=' + lease.boxType + '&amp;header=' + lease.header + '&amp;bodyCopy=' + lease.bodyCopy + '&amp;discText=' + lease.discText + '&amp;monthlyPayment=' + lease.monthly + '&amp;leaseTerm=' + lease.term + '&amp;offerText=' + lease.offer +'&amp;payment1=' + lease.payment1 + '&amp;payment1Text=' + lease.payment1Text + '&amp;payment2=' + lease.payment2 + '&amp;payment2Text=' + lease.payment2Text + '&amp;payment3=' + lease.payment3 + '&amp;payment3Text=' + lease.payment3Text + '&amp;totalPayment=' + lease.paymentTotal + '&amp;totalPaymentText=' + lease.paymentTotalText + '&amp;buttonText=' + lease.buttonText + '&amp;errorText=' + lease.error + '&amp;linkUrl=' + lease.link + '&amp;eventLink=' + lease.eventLink + '&amp;classList=' + lease.classList + '" menu="false" quality="high" bgcolor="#ffffff" width="' + intWidth + '" height="' + intHeight + '" name="lease_flash" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>';
		strHTML += '	</object>';
		strHTML += '</div>';		
	} else {
		switch(lease.boxType.toLowerCase()) {
			case 'pricing':
				strHTML = lease.createStaticPricing();
			break;
			case 'classes':
				strHTML = lease.createStaticClasses();
			break;
			case 'finance':
				strHTML = lease.createStaticFinance();
			break;
			default:
				strHTML = lease.createError();
			break;
		};
	};
	
	document.open('text/html');
	document.write(strHTML);
	document.close();	
};