$(document).ready(function() {

	  $('.toggler').click(function(){
		 var divId = $(this).attr('name');
		 var iSrc = $('#img'+divId).attr("src");
		 $('#tDiv'+divId).toggle();
		 if(iSrc == "/images/arrowRight.jpg"){
			$('#img'+divId).attr("src","/images/down.jpg");
		 }else{
			$('#img'+divId).attr("src","/images/arrowRight.jpg");
		 }
		 if(divId == 8){
			loadMaps();
		 }
		 if(divId == 9){
			 resizeIFrameReview();
		 }
	  });
	  $('.opener').click(function(){
		 var divId = $(this).attr('name');
		 var imageId = 'img'+divId;
		 var iSrc = $('#img'+divId).attr("src");
		 $('#img'+divId).attr("src","/images/down.jpg");

		 
		 $('#tDiv'+divId).show();
	   
		 if(divId == 5){
		  $('#tDiv6').show();
		  $('#tDiv7').show();
		  $('#img6').attr("src","/images/down.jpg");
		  $('#img7').attr("src","/images/down.jpg");
		 }
		 if(divId == 8){
			loadMaps();
		 }
		 if(divId == 9){
			 resizeIFrameReview();
		 }

		$('#tFoc'+divId).focus();
		 
		 return false;
	  });
});

var scrollInt;
var scrTime, scrSt, scrDist, scrDur, scrInt;

//rate quote functions
function quoteFormSubmit() {
	document.getElementById("RetrieveInfo").style.display ="block";
	document.getElementById("RetrieveInfo").innerHTML = '<div class="bookingWait">Retrieving quote information. Please wait.<br /><br /><img src="/images/wait_spinning.gif" border="0" alt="searching" /></div>';
	document.getElementById("bookButton").disabled=true;
	ajax_quote('/ajax_quote.cfm');
	document.getElementById("bookButton").disabled=false;
	return false;
}
function openBookQuestion(url) {
	var sNewURL;
	sNewURL = '/bookQuestion.htm';
	wBook = window.open(sNewURL ,'wBook','resizable=yes,scrollbars=yes,status=no,toolbar=no,height=600,width=500');
	wBook.focus();
}
function ajax_quote(url) {
 	 $.ajaxSetup({ cache: false });
     $('#RetrieveInfo').load(url, $('#quoteForm').serialize(),	
        function(responseText, textStatus, XMLHttpRequest) {
            if(textStatus == 'error') {
                $('#RetrieveInfo').html('<p>We\'re sorry. There was an error retrieving this rate quote. Please try again or send an email inquiry.</p>');
            }
			document.getElementById("RetrieveInfo").style.background = ""; 
        }
    );
   
}

// Found this script at http://blog.firetree.net/2005/07/04/javascript-find-position/
// Just used here to provide offsetTop functionality for IE
function findPosY(obj) {
	var curtop = 0;

	if (obj.offsetParent) {
		while (1) {
			curtop += obj.offsetTop;
			if (!obj.offsetParent) {
				break;
			}
			obj = obj.offsetParent;
		}
	} else if (obj.y) {
		curtop += obj.y;
	}
	return curtop;
}

function scrollPage() {
	scrTime += scrInt;
	if (scrTime < scrDur) {
		window.scrollTo(0, easeInOut(scrTime,scrSt,scrDist,scrDur));
	} else {
		window.scrollTo(0, scrSt+scrDist);
		clearInterval(scrollInt);
	}
}

function scrollToAnchor(aname) {
	var divs, i, ele, elePosY, heightCorrection;

	if (!document.getElementById) {
		return;
	}
	
	// get divs
	divs = document.getElementsByTagName("div");
	for (i=0; i<divs.length; i++) {
		if (divs[i].getAttribute("id") == aname) {
			ele = divs[i];
			i = divs.length;
		}
	}
	
	// Find anchor's Y position
	elePosY = findPosY(ele);
	
	//	The following is just to give some vertical space above where the anchor lands, 
	//	in case you think it stops too close to the top of the window.  Set to 0 if unnecessary.
	heightCorrection = 10;
	
	// set scroll target
	if (typeof (window.pageYOffset) == 'number') {
		// Non-IE modern browsers
		scrSt = window.pageYOffset;
		scrDist = elePosY - heightCorrection - scrSt;
		scrDur = 500;
	} else if (document.documentElement) {
		// IE in Standards Compliance mode
		scrSt = document.documentElement.scrollTop;
		scrDist = elePosY - scrSt;
		if (window.XMLHttpRequest) {
			// IE7
			scrDur = 500;
		} else {
			// IE6
			scrDur = 1500;
		}
	} else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
		// DOM compliant method, IE Quirks Mode
		scrSt = document.body.scrollTop;
		scrDist = elePosY - scrSt;
		scrDur = 500;
	}

	scrTime = 0;
	scrInt = 10;
	
	// set interval
	clearInterval(scrollInt);
	scrollInt = setInterval( scrollPage, scrInt );
}


/*
EASING FUNCTIONS
*/

function easeInOut(t,b,c,d) {
	return c/2 * (1 - Math.cos(Math.PI*t/d)) + b;
}

/* Reviews */
function toggleReviewDetails(reviewSeq) {
	var linkEle = document.getElementById("reviewDetailsLink" + reviewSeq);
	var detailsEle = document.getElementById("reviewDetails" + reviewSeq);
	
	if (detailsEle.style.display == 'none') {
		detailsEle.style.display = '';
		linkEle.innerHTML = "hide detailed scores";
	}
	else {
		detailsEle.style.display = 'none';
		linkEle.innerHTML = "show detailed scores";
	}
}

function resizeIFrameReview() {
	if (iframeElement = document.getElementById('reviewContent')){
		var iframeElement = document.getElementById('reviewContent');
		iframeElement.style.height = document.getElementById('reviewContent').contentWindow.document.body.scrollHeight + 'px';
		// Safari workaround	
		if (iframeElement.style.height == '10000px') {
			iframeElement.style.height = document.getElementById('reviewContent').contentWindow.document.body.offsetHeight + 'px';
		}
	}
}

