// jquery once the doc is ready to be manipulated
$(document).ready(function() {

// listen for clicks on search and submit form
$("#gnSearch").click(function(event) {
    event.preventDefault();
    $("#gnSearchForm").submit();
});

// listen for clicks on polls
$("#polls dt").click(pollClick);

// listen for clicks on poll answers
$("#polls dd").click(pollAnswer);


// setup carousel nav buttons
carouselInit();

// listen for clicks on buttons
$("#carousel .button").click(carouselAnim);

});

// set default ad in carousel
var curActive = 0;

// creates a copy of the first and last carousel assets and places them on the opposite ends for continuous looking scrolling
function carouselInit() {
var navPtr = $("#carousel .nav ul");
var navChildPtr = navPtr.children("li");
navChildPtr.eq(navChildPtr.length - 1).clone().prependTo(navPtr);
navChildPtr.eq(0).clone().appendTo(navPtr);
navPtr.children("li").eq(3).addClass("active");
}

// switch out previous and last carousel assets for smooth scrolling
function carouselAnim() {
var navPtr = $("#carousel .nav ul");
var navChildPtr = navPtr.children("li");
var adsPtr = $("#carousel .ads");
var adsChildPtr = adsPtr.children("li");
if($(this).text() == "Scroll Right") {
    scrollRight(navPtr,navChildPtr);
    scrollRight(adsPtr,adsChildPtr);
} else {
    scrollLeft(navPtr,navChildPtr);
    scrollLeft(adsPtr,adsChildPtr);
}
navChildPtr.removeClass("active");
navPtr.children("li").eq(1).clone().appendTo(navPtr);
navPtr.children("li").eq(navPtr.children("li").length - 3).clone().prependTo(navPtr);
navPtr.children("li").eq(1).remove();
navPtr.children("li").eq(navPtr.children("li").length - 2).remove();
navPtr.children("li").eq(3).addClass("active");
}

// scrolls the items to the left
function scrollLeft(pointer, childPtr) {
var newChild = childPtr.eq(0).clone().appendTo(pointer);
childPtr.eq(0).remove();
}

// scrolls the items to the right
function scrollRight(pointer, childPtr) {
var newChild = childPtr.eq(childPtr.length - 1).clone().prependTo(pointer);
childPtr.eq(childPtr.length - 1).remove();
}

// listen for on load
window.onload = function() { updateOrientation(); orientChange(); cleanLinks(); setInterval('switchIris()', 6000);};



/* Fading iris */
var dPrevious 		= 0;
var dCurrent 		= 1;
var dNext 		= 2;

//orientation
var currentRightPos 	= '0px';
var divName 		= 'IrisDiv';
var currentDest 	= 'IrisDiv1_loc';
var currentDiv 		= 'IrisDiv1';

// Double tapping
var numTaps		= 0;
var doubleTapTimer 	= false;


// Apple iPhone Touch API events
document.addEventListener('touchstart', touchHandler, false);
document.addEventListener('touchend', touchHandler, false);
document.addEventListener('touchcancel', touchHandler, false);

function onPreventDefault(event) {
	
	//if (touching == true) {
	//	event.preventDefault();
	//}
	
}

// The handler for all Apple iPhone Touch API events
function touchHandler(e) {
	// If the user has started a touch event
	if (e.type == "touchstart") {
		touching = true;
		// If there's only one finger touching
		if (e.touches.length == 1) {
			
			var touch = e.touches[0];
			var currentY = touch.pageY;
			var currentX = touch.pageX;
						
			if ((150 < currentY) && (currentY < 283) && (currentX > 80) && (currentX < 400)) {
				touching = true;
			} else {
				touching = false;
			}
			
			// let's check double tapping		
			if(!doubleTapTimer){
				doubleTapTimer = setTimeout(
					function() { 
						numTaps = 0; 
						doubleTapTimer = false; 
					}, 
					800);
			}
			
			numTaps += 1;					
		}
	}
	// If the user has removed the finger from the screen
	else if (e.type == "touchend" || e.type == "touchcancel") {
				
		if (touching == true && numTaps == 2 ) {
			window.location = document.getElementById(currentDest).title;
			numTaps = 0;
		}
		
		// reset all counter and attributes
		touching = false;
	}
}


function switchIris() {

	if (document.getElementById(divName+dNext)){
		doFading(dCurrent,dNext);
		dPrevious = dCurrent;
		dCurrent = dNext;
		dNext = dNext+1;		
	} else {
		dNext = dNext - 3;
		doFading(dCurrent,dNext);
		dPrevious = dPrevious - 2;
		dCurrent = dCurrent - 2;
		dNext = dNext + 1;
	}		
	
}

/* Fading mechanism */
function doFading(divOut, divIn) {

	currentDiv = divName + divIn;	
	currentDest = divName + divIn + '_loc';	

	document.getElementById(divName+divOut).style.opacity = 0;
	document.getElementById(divName+divIn).style.opacity = 1;

	// For some reason the polls are showing even though they are supposed to be hidden so let's re-hide them
	//document.getElementById('polls').style.overflow = 'visible';
}

/* Orientation change */
function updateOrientation() {  

	// Scroll to the top when there is orientation change
	window.scrollTo(0, 0);
			
}

