var playSlideshow = true;
var currentOffset = 0;

/*
function imageFlip(offset)
{
	document.getElementById('flip_btn_' + currentOffset).className = 'inactive';
	document.getElementById('flip_btn_' + offset).className = 'active';

	document.getElementById('main_page_image_flip_image').innerHTML = "<a href=\"" + images[offset][1] + "\"><img src=\"" + images[offset][0] + "\" alt='' /></a>";
	currentOffset = offset;
}
*/

function imageFlip2(direction)
{
	/*alert("Offset "+ offset + " Current Offset "+currentOffset);*/

	var totalCount = images.length;
	if ( (currentOffset+direction) >= totalCount ) 
	{
		offset = 0;
	} 
	else if ( (currentOffset+direction) < 0 ) 
	{
		offset = totalCount - 1;
	}
	else  
	{
		offset = currentOffset + direction;
	}

	if( images[offset][1].length > 0 )
		document.getElementById('main_page_image_flip_image').innerHTML = "<a href=\"" + images[offset][1] + "\"><img src=\"" + images[offset][0] + "\" alt='' /></a>";
	else
		document.getElementById('main_page_image_flip_image').innerHTML = "<img src=\"" + images[offset][0] + "\" alt='' />";
	currentOffset = offset;
}

function imageSlideshowFlip(offset)
{
	if( playSlideshow == true )
		imageFlip2(1);
}

function slideshowPreload()
{
	var preloadimages=[];
	for( var i = 0; i < images.length; i++ )
	{
		preloadimages[i] = new Image();
		preloadimages[i].src = images[i][0];
	}
}

function slideshow()
{
	var randIdx;
	var length = images.length;
	if( length <= 1 )
		return false;

	randIdx = Math.floor(Math.random()*length+1);

	//var newOffset = currentOffset + 1;
	var newOffset = currentOffset + randIdx;
	if( newOffset >= length )
		newOffset = 0;

	imageSlideshowFlip(newOffset);
}

function stopSlideshow()
{
	playSlideshow = false;
}

function startSlideshow()
{
	playSlideshow = true;
}

function emailSubscribe(email)
{
	if( email == 'Enter email address' )
		email = '';

	popup('/newsletter.php?email=' + encodeURIComponent(email), '410', '560');
}

function popup(url, width, height)
{
	if( width > screen.availWidth )
		width = screen.availWidth;
	if( height > screen.availHeight )
		height = screen.availHeight;

	var left = parseInt((screen.availWidth/2) - (width/2));
	var top = parseInt((screen.availHeight/2) - (height/2));

	var window_features = "height=" + height + ",width=" + width + ",left=" + left + ",top=" + top + ",resizable=1" + ",screenX=" + left + ",screenY=" + top;

	var wp = window.open(url, 'email', window_features);
	wp.focus();
}

function popin(url, width, height)
{
	var ifr = document.getElementById('popin');
	if ( !ifr && document.createElement ) {
		ifr = document.createElement('iframe');
		if ( ifr ) {
			ifr.src = url;
			ifr.id = "popin";
			ifr.frameBorder = "0";
			ifr.style.border = '0px none white';
			ifr.style.width = width + 'px';
			ifr.style.height = height + 'px';
			ifr.style.display = 'block';
			ifr.style.position = 'absolute';
			ifr.style.top = '400px';
			ifr.style.left = '300px';
			document.body.appendChild(ifr);
		}
		var ifr = document.getElementById('popin');
	}

	if ( navigator.appVersion.match('MSIE 6') || !document.createElement )
	{
		if ( ifr ) ifr.style.display = 'none';
		ifr = null;
	}

	if ( ifr ) {
		ifr.style.display = 'block';
		ifr.src = url;
	}

	if ( !ifr ) {
		if ( ! emailPopup(url, width, height) )
			alert ('Please disable your popup blocker to subscribe');
	}
}

function validateContactUsForm()
{
	var valid_form = false;

	if(document.getElementById("contact_email").value == "contact")
	{
		alert("Please select the department you would like to contact");
	}
	else if(document.getElementById("from_name").value == "")
	{
		alert("Please enter your name.");
	}
	else if(document.getElementById("from_email").value != "" && checkEmail(document.getElementById("from_email").value) == false)
	{
		alert("Please enter a valid email address.");
	}
	else if(document.getElementById("from_email").value == "" && document.getElementById("phone_number").value == "")
	{
		alert("Please enter a phone number or email address so that we may contact you.");
	}
	else if(document.getElementById("message").value == "")
	{
		alert("Please enter why you are contacting us.");
	}
	else
	{
		valid_form = true;
	}

	return valid_form;
}

function validatePartsForm()
{
	var valid_form = false;

	if(document.getElementById("parts_from_name").value == "")
	{
		alert("Please enter your name.");
	}
	else if(document.getElementById("parts_from_email").value != "" && checkEmail(document.getElementById("parts_from_email").value) == false)
	{
		alert("Please enter a valid email address.");
	}
	else if(document.getElementById("parts_from_email").value == "" && document.getElementById("parts_phone_number").value == "")
	{
		alert("Please enter a phone number or email address so that we may contact you.");
	}
	else if(document.getElementById("parts_message").value == "")
	{
		alert("Please enter a description of the part you need.");
	}
	else
	{
		valid_form = true;
	}

	return valid_form;
}

function validateServiceForm()
{
	var valid_form = false;

	if(document.getElementById("service_from_name").value == "")
	{
		alert("Please enter your name.");
	}
	else if(document.getElementById("service_from_email").value != "" && checkEmail(document.getElementById("service_from_email").value) == false)
	{
		alert("Please enter a valid email address.");
	}
	else if(document.getElementById("service_from_email").value == "" && document.getElementById("service_phone_number").value == "")
	{
		alert("Please enter a phone number or email address so that we may contact you.");
	}
	else
	{
		valid_form = true;
	}

	return valid_form;
}

function validateShippingForm()
{
	var valid_form = false;

	if(document.getElementById("shipping_from_name").value == "")
	{
		alert("Please enter your name.");
	}
	else if(document.getElementById("shipping_from_email").value != "" && checkEmail(document.getElementById("shipping_from_email").value) == false)
	{
		alert("Please enter a valid email address.");
	}
	else if(document.getElementById("shipping_from_email").value == "" && document.getElementById("shipping_phone_number").value == "")
	{
		alert("Please enter a phone number or email address so that we may contact you.");
	}
	else
	{
		valid_form = true;
	}

	return valid_form;
}
function validateOnlineStore() 
{
	var a=false;
	var b=document.getElementById("onlinestoresearch").value; 
	if(b!="" && b != "Enter keyword")
	{
		var c=/[^a-zA-Z0-9-\s."']+/;

		if(c.test(b))
		{
			alert("Invalid characters in search.")
		}
		else
		{
			a=true
		}
	}
	else
	{
		alert("Please enter a search term.")
	}

	return a;
}
// Handy email validation function
function checkEmail(checkString)
{
	var newstr = "";
	var at = false;
	var dot = false;

	if (checkString.indexOf("@") != -1)
	{
		at = true;
	}
	else if (checkString.indexOf(".") != -1)
	{
		dot = true;
	}
	for (var i = 0; i < checkString.length; i++)
	{
		ch = checkString.substring(i, i + 1)
		if ((ch >= "A" && ch <= "Z") || (ch >= "a" && ch <= "z") || (ch == "@") || (ch == ".") || (ch == "_") || (ch == "-") || (ch >= "0" && ch <= "9"))
		{
			newstr += ch;
			if (ch == "@")
			{
				at=true;
			}
			if (ch == ".")
			{
				dot=true;
			}
		}
	}
	if ((at == true) && (dot == true))
	{
		return true;
	}
	else
	{
		//alert ("Sorry, the email address you\nentered is not in the correct\nformat.");
		return false;
	}
}

//To help hide email addresses from scavengers
function writeEmailAddress(user_id, domain_name)
{
	document.write("<a href=\"mailto:"+user_id+"@"+domain_name+"\">"+user_id+"@"+domain_name+"</a>")
}

function ajaxRequest(url, params, method)
{
	var ajaxHttpRequest = null;
	var str = "";
	try {
		ajaxHttpRequest = new XMLHttpRequest();
		} catch (trymicrosoft)  {
			try  {
				ajaxHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (othermicrosoft)  {
			try {
				ajaxHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				ajaxHttpRequest = null;
			}
		}
	}

	if( method == "GET" ) {
		ajaxHttpRequest.open("GET", url + '?' + params, false)
		ajaxHttpRequest.send(null);
	} else {
		ajaxHttpRequest.open("POST", url, false);
		ajaxHttpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajaxHttpRequest.setRequestHeader("Content-length", params.length);
		ajaxHttpRequest.setRequestHeader("Connection", "close");
		ajaxHttpRequest.send(params);
	}

	if (ajaxHttpRequest.status == 200) {
		str = ajaxHttpRequest.responseText;
	}

	return str;
}

function ccSubscribe(email)
{
	var returnStr = ajaxRequest('/classes/constant_contact.php', 'email=' + email, 'POST');
	if( returnStr == 'duplicate' )
		document.getElementById('subscribe_return').innerHTML = 'Thank you! You are already subscribed to the Go AZ mailing list.';
	else if( returnStr == 'invalid' )
		document.getElementById('subscribe_return').innerHTML = 'Please enter a valid email address.';
	else if( returnStr == 'success' )
		document.getElementById('subscribe_return').innerHTML = 'Thank you! You are now subscribed to the Go AZ mailing list. You will receive an email confirmation shortly.';
}

/* New Site JS */
function getBrandInformation(brand) 
{
	var returnStr = ajaxRequest('/classes/newbikes.class.php', 'brand=' + brand, 'POST');
	if (returnStr == 'error') {
		document.getElementById('search_return').innerHTML = 'There has been an error retrieving the bike information. Please try again later.';
	} else {
		document.getElementById('year_list').innerHTML = returnStr;
		$('#ssYear').sSelect('Year');
		$('#ssType').sSelect('Type');
	}
}
var myDates = '';
function getDates(date) 
{
	var retStr;
	if (myDates == '') {
		retStr = ajaxRequest('/classes/news_events.class.php', 'getCalDates=1', 'POST');
		myDates = retStr;
		//alert("my dates "+myDates);
	}

	var retStr1 = new String(myDates);

	var dateAry = new Array();
	dateAry = retStr1.split("|");

	for (i = 0; i < dateAry.length; i++) {
	
		var newStr = new String(dateAry[i]);
		var ary = newStr.split(":");
		//if (date.getMonth() == ary[0] && date.getDate() == ary[1]) 
		if (date.getMonth() == ary[0] && date.getDate() == ary[1] && date.getFullYear() == ary[2]) 
		{
			return [true, 'goaz_events'];
		}
	
	}
	return [true, ''];
}
function getEvent(date) 
{
	//alert("Date "+date);
	// Check to see if this date has a valid event.
	var tempDate = new Date(date);
	var tempDateStr = tempDate.getMonth() + ":";
	tempDateStr += tempDate.getDate() + ":";
	tempDateStr += tempDate.getFullYear();

	/* this code is used to disable any day that is not an event without
		having it grayed out on the calendar*/
	var dates = new Array();
	var retVal = false;
	dates = myDates.split("|");
	for (i = 0; i < dates.length; i++) {
		if (dates[i] == tempDateStr) {
			retVal = true;
		}
	}
	if (retVal == false) 
		return retVal;
		
	var newDate = new String(date);
	var datePcs = newDate.split("/");
	document.dp_form.action="news_events.php?link=news_events&date="+datePcs[2]+ "+" + datePcs[0] + "+" + datePcs[1];
	document.dp_form.submit();

}

/* jQuery calls */
$(document).ready(function(){
	/* Smart Search drop downs */
	$('#ssBrand').sSelect('Brand');
	$('#ssYear').sSelect('Year');
	$('#ssType').sSelect('Type');
	$('#ssPrice').sSelect('Price');

	$('div.brandslidetoggle').click(function() {
		$('ul#brandstogglelist').slideToggle('fast');
		$('ul#categorytogglelist').css('display','none');
		$('ul#ridertogglelist').css('display','none');
	});
	$('div.categoryslidetoggle').click(function() {
		$('ul#categorytogglelist').slideToggle('fast');
		$('ul#brandstogglelist').css('display','none');
		$('ul#ridertogglelist').css('display','none');
	});
	$('div.riderslidetoggle').click(function() {
		$('ul#ridertogglelist').slideToggle('fast');
		$('ul#brandstogglelist').css('display','none');
		$('ul#categorytogglelist').css('display','none');
	});

	$("#datepicker").datepicker({
		inline: true,
		beforeShowDay: getDates,
		onSelect: getEvent,
		showOtherMonths: true
	});

	var newsTabContainers = $('div.news_promos_reviews > div');

	$('div.news_promos_reviews ul.news_link_bar a').click(function() {
		newsTabContainers.hide();
		newsTabContainers.filter(this.hash).show();

		$('div.news_promos_reviews ul.news_link_bar a').removeClass('selected');
		$(this).addClass('selected');
		return false;
	}).filter(':first').click();

	
/*
	$("li#Dealerships").hover(
		function() {
			$(this).parent().find("ul.subnav").slideDown('fast').show();
		}, function() {
			$(this).parent().find("ul.subnav").slideUp('slow');	
	});
*/

	$("li#Dealerships").mouseenter(function() {
			$(this).find("ul.subnav").slideDown('fast').show();
	});

/*
	$("li#Dealerships").mouseleave(function() {
			$(this).find("ul.subnav").hide('fast');
	});
*/
	$("li#News").mouseenter(function() {
			$("ul.subnav").hide('fast');
	});
	$("ul.subnav").mouseleave(function() {
			$(this).hide('fast');
	});
	$("#toolbar ul").mouseleave(function() {
			$("ul.subnav").hide('fast');
	});

	
	/* Product Reviews archive list nav */

	$("div.news_archive_months").click(function() {
		$(this).next(".news_archive_year").slideToggle('fast');
	});
	$("div.promos_archive_titles").click(function() {
		$(this).next(".promos_archive_year").slideToggle('fast');
	});
	$("div.reviews_archive_months").click(function() {
		$(this).next(".reviews_archive_year").slideToggle('fast');
	});
	$("div.videos_archive_months").click(function() {
		$(this).next(".videos_archive_year").slideToggle('fast');
	});


	$("div.trigger").toggle(function() {
		$(this).addClass("closed");
		}, function() {
		$(this).removeClass("closed");
	});

	$(".disclaimer").hide();
	$("div.promotrigger").click(function() {
		$(this).next(".disclaimer").slideToggle("fast");
	});

	$("div.promotrigger").toggle(function() {
		$(this).addClass("promoclosed");
		}, function() {
		$(this).removeClass("promoclosed");
	});


});

