function Vote() {}

Vote.EN_ZERO_VOTE_MSG = "Please vote for at least one idea.";
Vote.EN_FIVE_VOTE_MSG = "You may vote for a maximum of 5 ideas.";
Vote.EN_EMAIL_MSG = "Please provide a valid email address.";

Vote.init = function() {
	// Called on page loads to render captcha after a failed submission
	Vote.checkEmailField(document.getElementById("EmailAddress").value);
}

Vote.recaptchaOptions = {
  theme : 'clean',
  tabindex : 3,
  lang : 'en'
};

Vote.recaptchaKey = null;
if (window.location.host == 'localhost:8080') {
	Vote.recaptchaKey = "6LfaAAMAAAAAAKKdDc-ZALuBkjZ-St5VYtvGZTfa";
}
else if (window.location.host == 'g10votes.appspot.com') {
	Vote.recaptchaKey = "6LcPdwMAAAAAAHYBZu9zaJOkOXF3eOSSLe2fUAp9";
}
else if (window.location.host == 'g10to100.appspot.com') {
	Vote.recaptchaKey = "6LeMCQMAAAAAAK9cksyHfBA4k2Ea3nbaRc4B_Pk0";
}
else if (window.location.host == 'www.project10tothe100.com') {
	Vote.recaptchaKey = "6LfifwgAAAAAALqxl9qW-hRNVr-3p3mAxOcInoTj";
}
Vote.validEmail = false;

Vote.toggleRecaptcha = function() {
  if (document.getElementById("recaptchaContainer").style.display == "none") {
    //Recaptcha.create(Vote.recaptchaKey, "recaptchaDiv", {theme : 'clean',tabindex : 28,lang : 'en'});
    document.getElementById("recaptchaContainer").style.display = "block"
    return;
  } else {
    document.getElementById("recaptchaContainer").style.display = "none"
    //Recaptcha.destroy();
    return;
  }
}

Vote.checkEmailField = function(email) {
	if (!Vote.validateEmail(email)) {
		Vote.validEmail = false;
		return;
	}
	else {
		//alert("Valid email!");
		Vote.validEmail = true;
		if (document.getElementById("recaptchaContainer").style.display == "none") {
			Recaptcha.create(Vote.recaptchaKey, "recaptchaDiv", Vote.recaptchaOptions);
			document.getElementById("recaptchaContainer").style.display = "block"
			return;
		}
	}
}

Vote.validateEmail = function(email) {
  
  if (email.indexOf("@") > 0) {
    var ss = email.substring(email.indexOf("@")+1, email.length);

    if (ss.indexOf(".") > 0) {
      var ss2 = ss.substring(ss.indexOf(".")+1, ss.length)
      if (ss2.length > 1) {
        //helps_utils.setLabelOk(field);
        //helps_utils.clearFieldFeedback("feedback_" + field.name);
        return true;
      }
    }
  }
  //helps_utils.setLabelError(field);
  //helps_utils.setFieldFeedback("feedback_" + field.name, helps_utils.EN_VALID_EMAIL_MSG);
  return false;
}

Vote.validateForm = function(f) {
	is_valid = true;
	/*
	if (f.EmailAddress.value == "" || f.Nickname.value == "") {
		alert ("You must enter Email and Nickname fields");
		is_valid = false;
	}
	return (Vote.setIdeaKeyname(f) && is_valid);
	*/
	try {
		/*
		var inputs = document.getElementsByTagName("input");
		var count = 0;
		//var alertString = "Input elements:\n";
		for (var i=0; i<inputs.length; i++) {
			if (inputs[i].type == "checkbox") {
				//alertString += "Found a checkbox...\n";
				//if (inputs[i].checked == "checked") {
				if (inputs[i].checked == true) {
					//alertString += "Checkbox " + inputs[i].name + " checked...\n";
					count++;
					inputs[i].name = "Vote" + count;
					//inputs[i].value = "Vote" + count;
				}
			}
		}
		*/
		if (count == 0) {
			alert(Vote.EN_ZERO_VOTE_MSG);
			return false;
		}
		if (count > 5) {
			alert(Vote.EN_FIVE_VOTE_MSG);
			return false;
		}
		
		if (f.EmailAddress.value == "") {
			alert(Vote.EN_EMAIL_MSG);
			return false;
		}
		//alert(alertString)
		f.VoteCount.value = count;
		f.Language.value = VoteCart.getParamFromUrl("hl").toUpperCase();
		// Can clear cookie here if we have template populated in case of captcha error
		return is_valid;
	}
	catch (e) {
		alert("Exception thrown during Vote.validateForm: \n" + e)
		return false;
	}
}

Vote.setIdeaKeyname = function(f) {
	if (!f.Idea || f.Idea.length == 0) {
		alert("There are no ideas to vote for.  Please run /utils/select_idea several times to add ideas");
		return false;
	}
	for (var i=0; i<f.Idea.length; i++){
		if (f.Idea[i].checked) {
			f.Keyname.value = f.Idea[i].value;
			return true;
		}
	}
	alert ("You must select an Idea to vote for");
	return false;
}

// This will run and add 100 ideas to the datastore, switching category every 12 ideas.
Vote.populateFields = function(f) {
	//f.Name.value = "Scott Ord";
	//f.MailingAddress.value = "34 Village Centre Place, Mississauga, ON";
	//f.EmailAddress.value = "scott.ord@pentura.ca";
	//f.Language.selectedIndex = Math.floor(Math.random()*25) + 1;
	f.Language.selectedIndex = 1;
	var cat = "";
	var count = parseInt(f.Keyname.value.substring(1, 4));
	var rand = Math.floor(Math.random()*15)
	if (rand < 2) {
		f.Community.checked = "checked";
		cat = "Community";
	}
	else if (rand < 4) {
		f.Opportunity.checked = "checked";
		cat = "Opportunity";
	}
	else if (rand < 6) {
		f.Energy.checked = "checked";
		cat = "Energy";
	}
	else if (rand < 8) {
		f.Environment.checked = "checked";
		cat = "Environment";
	}
	else if (rand < 10) {
		f.Health.checked = "checked";
		cat = "Health";
	}
	else if (rand < 12) {
		f.Education.checked = "checked";
		cat = "Education";
	}
	else if (rand < 14) {
		f.Shelter.checked = "checked";
		cat = "Shelter";
	}
	else if (rand < 16) {
		f.Else.checked = "checked";
		cat = "Else";
	}
	f.Title.value = (count + 1) + "_" + f.Language.options[f.Language.selectedIndex].value + "_" + cat + " - Best Theme Ever";
	var lipsum = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer nunc nunc, tincidunt nec, bibendum quis, porttitor sed, ante. Integer adipiscing nunc vitae libero. Nunc vitae tortor a dolor interdum faucibus. Ut feugiat magna vitae eros dictum congue. Praesent rutrum, diam ut adipiscing consequat, sem pede sagittis mauris, fringilla venenatis dui nisl et dolor. Vestibulum lorem. Aliquam erat volutpat. Donec blandit risus non dolor. Aliquam erat. Integer in mauris eu justo dignissim convallis. Nunc auctor justo quis libero. Nunc bibendum sem vel augue. Etiam a lacus. Nunc porta libero et nisl. Maecenas consequat rutrum felis. Duis sed neque ac elit fringilla mollis. Vivamus sapien. In neque libero, molestie ac, luctus et, ornare ac, nulla. Vestibulum id ipsum. Nam tortor felis, eleifend id, cursus tempus, dignissim eget, justo. Proin at est laoreet lorem feugiat consectetuer. Sed gravida, lectus eu eleifend semper, quam mi pretium elit, rhoncus porttitor purus libero et sem. Nunc dignissim enim. Ut id orci. Cras nunc ligula, scelerisque eget, dictum non, pellentesque sed, libero. Ut at erat. Vivamus non nunc. Vivamus faucibus. In a velit. Aliquam bibendum neque sit amet diam. Sed vehicula neque eget enim. Maecenas est elit, facilisis quis, pretium sit amet, porta varius, urna. Cras volutpat posuere diam. Maecenas vel nibh in turpis sagittis malesuada. Nulla sollicitudin. Nam in elit vitae sapien scelerisque molestie. Pellentesque tempus lectus. Duis justo enim, interdum sed, lacinia at, auctor vel, enim. Quisque condimentum auctor pede. Sed sed leo varius mauris vulputate luctus. Quisque tortor nisi, euismod quis, pulvinar vitae, consequat in, nibh. Vestibulum luctus sollicitudin nulla. Sed ipsum nunc, ultrices eu, euismod ac, consectetuer et, lorem. Pellentesque condimentum, justo vel ultrices accumsan, nunc neque consequat felis, sed sollicitudin mi justo.";
	f.Desc.innerHTML = (count + 1) + "_" + cat + " - " + lipsum;
	f.Idea1.value = "Time Machine";
	f.Author1.value = "Scotty O";
	f.Idea2.value = "Gravity Well";
	f.Author2.value = "Scotty O";
	f.Idea3.value = "Anti-matter Containment";
	f.Author3.value = "Scotty O";
	f.Idea4.value = "Lightspeed Travel";
	f.Author4.value = "Scotty O";
	f.Idea5.value = "Transmogrifier";
	f.Author5.value = "Scotty O";
}

Vote.submitTestIdea = function(f) {
	var count = parseInt(f.Keyname.value.substring(1, 4));
	if (count < 16) {
		f.submit();
	}
}

