// JavaScript Document
// register onclick events for search_tips div show hide
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

//console.log("before fix_IE_flicker");
addLoadEvent(fix_IE_flicker);
addLoadEvent(assign_toggle_login);
addLoadEvent(assign_ajax_vote_answer);
addLoadEvent(assign_toggle_favorites);
addLoadEvent(assign_textarea_character_limit);
addLoadEvent(assign_ajax_vote);
addLoadEvent(assign_form_hints);
addLoadEvent(assign_enter_contest);

function fix_IE_flicker() {
	try {
		document.execCommand('BackgroundImageCache', false, true);
	} catch(e) {}	
}
//console.log("before assign_toggle_login");

function assign_toggle_login() {
	// show link that toggles the visibiilty of the shipping address form
	var toggle_login_link = $('toggle_login_link');
	if(toggle_login_link) {
		toggle_login_link.onclick = function() {
			toggleLogin();
			return false;
		}
		toggle_login_link.innerHTML = "Login";
	}
}
function toggleLogin() {
	var toggle_login_link = $("toggle_login_link");
	// if currently set to add then show form
	if (toggle_login_link.innerHTML == "Login") {
		toggle_login_link.innerHTML = "Hide Login Form";
		Effect.SlideDown("login_form_inner");
		Effect.Fade("login_form_inner", { from: 0, to: 1 });
	// else hide form
	} else {
		toggle_login_link.innerHTML = "Login";
		Effect.SlideUp("login_form_inner");
		Effect.Fade("login_form_inner", { from: 1, to: 0 });
	}
}

//addLoadEvent(assign_message_send);
function assign_message_send() {
	// show link that toggles the visibiilty of the favorites list
	var message_send_link = $('message_send_link');
	var message_send_form = $('message_send_form');
	if(message_send_link && message_send_form) {
		Event.observe(message_send_link, 'click', messageSend, false);
 		message_send_link.onclick = function() {return false;};
		//message_send_link.innerHTML = "My Favorites";
		//console.log("assigning messageSend");
	}
}
function messageSend() {
	var message_send_link = $("message_send_link");
	//console.log("called messageSend");
	// if currently set to add then show form
	if (message_send_link.innerHTML == "Hide Message Form") {
		message_send_link.innerHTML = "Send a Message";
		Effect.SlideUp("message_send_form");
		Effect.Fade("message_send_form", { from: 1, to: 0 });
		//console.log("hiding favorites");
	// else hide form
	} else {
		message_send_link.innerHTML = "Hide Message Form";
		Effect.SlideDown("message_send_form");
		Effect.Fade("message_send_form", { from: 0, to: 1 });
		//console.log("showing favorites");
	}
}
//console.log("before assign_toggle_favorites");
function assign_toggle_favorites() {
	// show link that toggles the visibiilty of the favorites list
	var toggle_favorites_link = $('toggle_favorites_link');
	if(toggle_favorites_link) {
		Event.observe(toggle_favorites_link, 'click', toggleFavorites, false);
 		toggle_favorites_link.onclick = function() {return false;};
		//toggle_favorites_link.innerHTML = "My Favorites";
		//console.log("assigning toggleFavorites");
		$('my_favorites').style.top = "25";
		$('my_favorites').style.left = "250";
		$('my_favorites').style.background = "#FFF";
		//$('my_favorites').y = toggle_favorites_link.y + toggle_favorites_link.height;
	}
}
function toggleFavorites() {
	var toggle_favorites_link = $("toggle_favorites_link");
	//console.log("called toggleFavorites");
	// if currently set to add then show form
	if (toggle_favorites_link.innerHTML == "My Favorites") {
		toggle_favorites_link.innerHTML = "Hide My Favorites";
		Effect.SlideDown("my_favorites");
		Effect.Fade("my_favorites", { from: 0, to: 1 });
		//console.log("showing favorites");
	// else hide form
	} else {
		toggle_favorites_link.innerHTML = "My Favorites";
		Effect.SlideUp("my_favorites");
		Effect.Fade("my_favorites", { from: 1, to: 0 });
		//console.log("hiding favorites");
	}
}
//console.log("before assign_textarea_character_limit");
function assign_textarea_character_limit() {
	//console.log('called assign_textarea_character_limit');
	var description_characters_remaining = $('description_characters_remaining');
	if(description_characters_remaining) {
		//Event.observe('description', 'keydown', description_character_limit);
		Event.observe('description', 'keyup', description_character_limit);
		description_character_limit();
	}
	//console.log('assigned description_character_limit');
}
function description_character_limit() {
	//window.alert('called description_character_limit');
	var description = $F('description');
	//window.alert(description);
	var description_characters_remaining = $('description_characters_remaining');
	//window.alert(description.value);
	//window.alert(description.value.length);
	if(description) {
		if (description.length > 500) {
			description = description.substring(0, 500);
		} else {
			description_characters_remaining.value = 500 - description.length;
		}
	} else {
		//window.alert("no desc value");	
	}
}

//addLoadEvent(assign_rotate_photo);
/*function assign_rotate_photo() {
	// show link that rotates a photo
	var elements = document.getElementsByClassName("link_rotate");
	elements.each(  
		function(e) {
			Event.observe(e, 'click', rotate_photo, false);
		}
	};

}
function rotate_photo() {
	var message_send_link = $("message_send_link");
	//console.log("called messageSend");
	// if currently set to add then show form
	if (message_send_link.innerHTML == "Hide Message Form") {
		message_send_link.innerHTML = "Send a Message";
		Effect.SlideUp("message_send_form");
		Effect.Fade("message_send_form", { from: 1, to: 0 });
		//console.log("hiding favorites");
	// else hide form
	} else {
		message_send_link.innerHTML = "Hide Message Form";
		Effect.SlideDown("message_send_form");
		Effect.Fade("message_send_form", { from: 0, to: 1 });
		//console.log("showing favorites");
	}
}*/

//console.log("before assign_ajax_vote");
function assign_ajax_vote() {
	// Observe clicks on our list items     
	$$(".link_vote").each(
		function(link_vote){
			Event.observe(link_vote, "click", ajax_vote, false);
		}
	);
}
function ajax_vote(e) {
	//console.log("called ajax_vote");
	// the element that triggered the event
	var vote_link = Event.element(e);
	var vote_link_ancestors = vote_link.ancestors();
	var vote_for = "";
	if (typeof(vote_link.parentNode.href) != "undefined"){
		//console.log("vote_link.parentNode.href");
		vote_for = vote_link.parentNode.href.replace("http://boomvote.com/vote.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://www.boomvote.com/vote.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://boomvote.com/vote_new.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://www.boomvote.com/vote_new.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://64.118.72.211/boomvote/vote.cfm?vote_for=", "");
	} else if (typeof(vote_link.parentElement.href) != "undefined"){
		//console.log("vote_link.parentElement.href");
		vote_for = vote_link.parentElement.href.replace("http://boomvote.com/vote.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://www.boomvote.com/vote.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://boomvote.com/vote_new.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://www.boomvote.com/vote_new.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://64.118.72.211/boomvote/vote.cfm?vote_for=", "");
	} else if (typeof(vote_link.href) != "undefined"){
		//console.log("vote_link.href");
		vote_for = vote_link.href.replace("http://boomvote.com/vote.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://www.boomvote.com/vote.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://boomvote.com/vote_new.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://www.boomvote.com/vote_new.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://64.118.72.211/boomvote/vote.cfm?vote_for=", "");
	} else {
		//console.log("phooey, no href found");	
	}
	//console.log("vote_for: " + vote_for);
	
	var url = 'ajax_vote.cfm?vote_for=' + vote_for;
	//var ajax = new Ajax.Request( url, { method: 'get', onComplete:function(){ } });
	//console.log(vote_link_ancestors[1].innerHTML);
	var voting_vote_for = "voting_" + vote_for;
	//console.log(voting_vote_for);
	var loader = $(voting_vote_for);
	var td = vote_link_ancestors[1];
	//console.log(url);
	var ajax = new Ajax.Updater(vote_link_ancestors[1], url, {onCreate:function(){ Element.replace(vote_link, "<img src='images/icons/loading_circle.gif' alt='Voting' id='" + voting_vote_for + "' /> Voting"); }, onComplete:function(){ Element.update(td, "<img src='images/buttons/vote_disabled.jpg' alt='Voted' />");}, onFailure:function(){ Element.update(td, "<img src='images/buttons/vote_disabled.jpg' alt='Voted' />");},asynchronous:true});
	// stop default behaviour and event propagation
	Event.stop(e);
} 

function assign_ajax_vote_answer() {
	// Observe clicks on our list items     
	$$(".link_vote_answer").each(
		function(link_vote){
			Event.observe(link_vote, "click", ajax_vote_answer, false);
		}
	);
}
function ajax_vote_answer(e) {
	// the element that triggered the event
	var vote_link = Event.element(e);
	var vote_link_ancestors = vote_link.ancestors();
	var vote_for = "";
	if (typeof(vote_link.parentNode.href) != "undefined"){
		//console.log("vote_link.parentNode.href");
		vote_for = vote_link.parentNode.href.replace("http://boomvote.com/question_of_the_week.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://www.boomvote.com/question_of_the_week.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://64.118.72.211/boomvote/question_of_the_week.cfm?vote_for=", "");
	} else if (typeof(vote_link.parentElement.href) != "undefined"){
		//console.log("vote_link.parentElement.href");
		vote_for = vote_link.parentElement.href.replace("http://boomvote.com/question_of_the_week.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://www.boomvote.com/question_of_the_week.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://64.118.72.211/boomvote/question_of_the_week.cfm?vote_for=", "");
	} else if (typeof(vote_link.href) != "undefined"){
		//console.log("vote_link.href");
		vote_for = vote_link.href.replace("http://boomvote.com/question_of_the_week.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://www.boomvote.com/question_of_the_week.cfm?vote_for=", "");
		vote_for = vote_for.replace("http://64.118.72.211/boomvote/question_of_the_week.cfm?vote_for=", "");
	} else {
		//console.log("phooey, no href found");	
	}
	//console.log("vote_for: " + vote_for);
	
	var url = 'ajax_vote_answer.cfm?vote_for=' + vote_for;
	//var ajax = new Ajax.Request( url, { method: 'get', onComplete:function(){ } });
	//console.log(vote_link_ancestors[1].innerHTML);
	var voting_vote_for = "voting_" + vote_for;
	//console.log(voting_vote_for);
	var loader = $(voting_vote_for);
	var td = vote_link_ancestors[1];
	//console.log(url);
	var ajax = new Ajax.Updater(vote_link_ancestors[1], url, {onCreate:function(){ Element.replace(vote_link, "<img src='images/icons/loading_circle.gif' alt='Voting' id='" + voting_vote_for + "' /> Voting"); }, onComplete:function(){ Element.update(td, "<img src='images/buttons/vote_disabled.jpg' alt='Voted' />");}, onFailure:function(){ Element.update(td, "<img src='images/buttons/vote_disabled.jpg' alt='Voted' />");},asynchronous:true});
	// stop default behaviour and event propagation
	Event.stop(e);
} 

//console.log("before assign_contest_form_tips");
//addLoadEvent(assign_contest_form_tips);
function assign_contest_form_tips() {
	//console.log("called assign_contest_form_tips");
	var form_keywords = $("sponsor_contest_keyword");
	var keyword_instructions = $("keyword_instructions");
	if (form_keywords && keyword_instructions) {
		//console.log("tip_keywords found");
		Event.observe(form_keywords, 'focus', show_keyword_instructions, false);
		Event.observe(form_keywords, 'blur', hide_keyword_instructions, false);
	} else {
		//console.log("tip_keywords not found");
	}
}
function show_keyword_instructions() {
	//console.log("focused");
	new Effect.Appear('keyword_instructions');
}
function hide_keyword_instructions() {
	//console.log("blurred");
	new Effect.Fade('keyword_instructions');
}

function assign_form_hints() {
	$$("input").each(
		function(field){
			//console.log(field.id);
			Event.observe(field, "focus", function(field) {
				//console.log(field.target.id);	
				if(field.target.id) {
					var hint = $(field.target.id).adjacent('.hint');
					hint.each( function(e) {
						new Effect.Appear(e);
					});
				}
			});
			Event.observe(field, "blur", function(field) {
				//console.log(field.target.id);	
				if(field.target.id) {
					var hint = $(field.target.id).adjacent('.hint');
					hint.each( function(e) {
						new Effect.Fade(e);
					});
				}
			});
		}
	);
}

addLoadEvent(initCarousel);
function initCarousel() {    
	var carousel_div = $('small-carousel');
	if(carousel_div) {
		//console.log("init carousel");
		//var tag_ID = $F('tag_ID');
		//console.log("init carousel 2");
		var carousel = new Carousel("small-carousel",  {numVisible: 3, scrollInc: 3, buttonStateHandler: buttonStateHandler, ajaxHandler: ajaxHandler, animParameters: {duration: 0.5}, nextElementID:'next-arrow', prevElementID:'prev-arrow'});
		//console.log("init carousel 3");
	}
}

function assign_enter_contest() {
	// Observe clicks on our list items     
	$$(".link_contest_enter").each(
		function(link_vote){
			Event.observe(link_vote, "click", enter_contest, false);
		}
	);
}
function enter_contest(e) {
	// the element that triggered the event
	var vote_link = Event.element(e);
	var vote_link_ancestors = vote_link.ancestors();
	var contest_ID = "";
	if (typeof(vote_link.parentNode.href) != "undefined"){
		//console.log("vote_link.parentNode.href");
		contest_ID = vote_link.parentNode.href.replace("http://boomvote.com/contest.cfm?contest_ID=", "");
		contest_ID = contest_ID.replace("http://www.boomvote.com/contest.cfm?contest_ID=", "");
		contest_ID = contest_ID.replace("http://64.118.72.211/boomvote/contest.cfm?contest_ID=", "");
	} else if (typeof(vote_link.parentElement.href) != "undefined"){
		//console.log("vote_link.parentElement.href");
		votcontest_IDe_for = vote_link.parentElement.href.replace("http://boomvote.com/contest.cfm?contest_ID=", "");
		contest_ID = contest_ID.replace("http://www.boomvote.com/contest.cfm?contest_ID=", "");
		contest_ID = contest_ID.replace("http://64.118.72.211/boomvote/contest.cfm?contest_ID=", "");
	} else if (typeof(vote_link.href) != "undefined"){
		//console.log("vote_link.href");
		contest_ID = vote_link.href.replace("http://boomvote.com/contest.cfm?contest_ID=", "");
		contest_ID = contest_ID.replace("http://www.boomvote.com/contest.cfm?contest_ID=", "");
		contest_ID = contest_ID.replace("http://64.118.72.211/boomvote/contest.cfm?contest_ID=", "");
	} else {
		//console.log("phooey, no href found");	
	}
	//console.log("enter: " + contest_ID);
	
	var url = 'ajax_contest_enter.cfm?contest_ID=' + contest_ID;
	//var ajax = new Ajax.Request( url, { method: 'get', onComplete:function(){ } });
	//console.log(vote_link_ancestors[1].innerHTML);
	var voting_vote_for = "entering_" + contest_ID;
	//console.log(voting_vote_for);
	var loader = $(voting_vote_for);
	var td = vote_link_ancestors[1];
	//console.log(url);
	var ajax = new Ajax.Updater(vote_link_ancestors[1], url, {onCreate:function(){ Element.replace(vote_link, "<img src='images/icons/loading_circle.gif' alt='Entering Contest' id='" + voting_vote_for + "' /> Entering Contest"); }, onComplete:function(){ Element.update(td, "<img src='images/buttons/contest_entered.jpg' alt='Entered' />");}, onFailure:function(){ Element.update(td, "<img src='images/buttons/contest_entered.jpg' alt='Not Entered' />");},asynchronous:true});
	// stop default behaviour and event propagation
	Event.stop(e);
} 
