// Cross-browser event listener 
function addEvent(elem, type, func) {
	if(elem.addEventListener) {
		elem.addEventListener(type, func, false);
	} else {
		elem.attachEvent("on" + type, func);
	}
}

function removeEvent(elem, type, func) {
	if(elem.removeEventListener) {
		elem.removeEventListener(type, func, false);
	} else {
		elem.detachEvent("on" + type, func);
	}
}

function initScorecard(evnt) {
	var x;
	var l = document.forms[0].length;
	for(x=0; x < l; x++) {
		var elem = document.forms[0][x];
		if(elem.type == "radio") {
			// elems is a global array on scorecard page
			elems.push(elem);
			addEvent(elem, "click", calculateScorecard);
			addEvent(elem, "change", calculateScorecard);
			addEvent(elem, "keyup", calculateScorecard);
		}
	}
	calculateScorecard();
}

function calculateScorecard(evnt) {
	var x;
	// elems is a global array on scorecard page
	var l = elems.length;
	var total = 0;
	for(x = 0; x < l; x++) {
		if(elems[x].type == "radio" && elems[x].checked == true) {
			total += parseInt(elems[x].value);
		}
	}
	document.getElementById("total").innerHTML = total;
}

function togglePets() {
	
	hidePetDetails();
	
	var dogCount = getRadioValue(rbDog);
	var catCount = getRadioValue(rbCat);
	var x, rowId;
	
	var hasDog = (dogCount != "" && dogCount != "0");
	var hasCat = (catCount != "" && catCount != "0");
	
	if( hasCat || hasDog ){
		document.getElementById("petDetails").style.display = "block";
	} 
	
	if(hasDog) {
		for( x = 1;x < parseInt(dogCount) + 1; x++ ) {
			if( x < 4) {
				rowId = "dog" + x;
				document.getElementById(rowId).style.display = "";
			}
		}
	}

	if(hasCat) {
		for( x = 1;x < parseInt(catCount) + 1; x++ ) {
			if( x < 4) {
				rowId = "cat" + x;
				document.getElementById(rowId).style.display = "";
			}
		}
	}
	
	if(hasCat && !hasDog ) {
		document.getElementById("breedHeader").style.visibility = "hidden";
		document.getElementById("breedDetails").style.visibility = "hidden";
	} else {
		document.getElementById("breedHeader").style.visibility = "visible";
		document.getElementById("breedDetails").style.visibility = "visible";
	}
	
	if( !hasDog ) {
		document.getElementById("breedDetails").style.display = "none";
	} else {
		document.getElementById("breedDetails").style.display = "block";
	}
}

function getRadioValue(rbGroup) {
	var ret = "";
	for(var x=0; x < rbGroup.length; x++) {
		if(rbGroup[x].checked) {
			ret = rbGroup[x].value;
		}
	}
	return ret;
}

function hidePetDetails() {
	document.getElementById("petDetails").style.display = "none";
	for(var x = 1; x < 4; x++ ) {
		document.getElementById("dog" + x).style.display = "none";
		document.getElementById("cat" + x).style.display = "none";
	}
}

function addPetListeners() {
	if(rbDog.length) {
		for(var x = 0; x < rbDog.length; x++) {
			addEvent( rbDog[x], "click", togglePets );
		}
	}
	for(x = 0; x < rbCat.length; x++ ) {
		addEvent( rbCat[x], "click", togglePets );
	}
}

var hasSubmitted = false;
function noDoubleSubmit() {
	if ( hasSubmitted ) {
		return false;
	} else {
		hasSubmitted = true;
		return true;
	}
}

function validateTaf() {
	if(!document.getElementById("tafConsent").checked) {
		alert("You must have your friend's consent to send them an email.");
		return false;
	} else {
		hideTaf();
		return true;
	}
}

function hideTaf() {
	document.getElementById("tafPopup").style.display = "none";
	if(document.getElementById("title")) {
		document.getElementById("title").style.visibility = "visible";
	}
}

function showTaf() {
	document.getElementById("tafPopup").style.display = "block";
	if(document.getElementById("title")) {
		document.getElementById("title").style.visibility = "hidden";
	}
}

function updateChallenge(hiddenElem) {
	document.getElementById(hiddenElem).checked = "true";
}

function getHabbitDetails(e) {
	var ret = {};
	var code;
	
	ret.process = false;
	
	if(!e) var e = window.event;
	if(e.type == "click") ret.process = true;
	if(e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;
	if(code == "32" || code == "1") ret.process = true;
	
	if(ret.process) {
		if(e.target) ret.target = e.target;
		else if (e.srcElement) ret.target = e.srcElement;
	}
	
	return ret;
}

function checkEmailPermission() {
	if( !document.getElementById("opt_in").checked ) {
		alert("Please note:\nIn order to participate in the PURINA ONE 30 Day Challenge you will receive email updates to assist you during your progress through the stages of the challenge.\nPlease check the box to opt-in.");
		return false;
	} else {
		return true;
	}
}

