$(document).ready(function(){
	$('div.menuHeaders').click(function() {
	$(this).toggleClass("vMenuCloseImage").toggleClass("vMenuOpenImage").blur();
	var curLink = $(this).next('div');
	$(curLink).slideToggle(350);
	$('div.accmenu:visible').not(curLink).slideToggle('fast');
	$('div.menuHeaders').not(this).removeClass("vMenuOpenImage").addClass("vMenuCloseImage");
	return false;
	});
	// flag menu
	$('div.flagHead,div#anylinkmenux').mouseover(function() {
	$('div#anylinkmenux').show();
	});
	$('div#anylinkmenux').mouseout(function() {
	$('div.flagstyle').hide();
	});
	
	icMailingList();
	icStarRating();
	icFeedback();
	icCaptchaReload();
});

var icCaptchaReload = function() {
		$('span.icf_captcha_reload').click(function() {
			reloadCaptcha();
			$('span.icf_captcha_reload a').blur();
			return false;
		});
	}
	
var icMailingList = function() {
		$('form[name=icf_1]').submit( function() {
			var errors = false;
			var objFeedback = new Object();
			var submitButtonID = 'ic_ml_submit';
			var submitButtonVal = $('input#'+submitButtonID).val();
			blockSubmit(submitButtonID);
			icHideFeedback()
			if ( !isEmail($.trim($('input[name=icf_1_2]').val())) ) {objFeedback['icff_1_0_2'] = true;errors = true;}
			if ( !$('input[name=icf_1_5]').is(':checked') ) {
					if ( $.trim($('input[name=icf_1_1]').val()) == '' ) {objFeedback['icff_1_0_1'] = true;errors = true;}
					if ( $('select[name=icf_1_3]').attr( "selectedIndex" ) < 0 ) {objFeedback['icff_1_0_3'] = true;errors = true;}
					if ( $('select[name=icf_1_4]').val() == '' ) {objFeedback['icff_1_0_4'] = true;errors = true;}
					if ( !$('input[name=icf_1_6]').is(':checked') ) {objFeedback['icff_1_0_6'] = true;errors = true;}
				}
			if (errors) {
				$('div#icff_1_0').html(ic_ml_feedback['FORMFAIL']);
				objFeedback['icff_1_0'] = true;
				icDisplayFeedback(objFeedback);
				}
			else {
				$('input#icf_1_0b').val('ajax');
				var formData = $('form#icf_1').serialize();
				$.ajax({  
					type: "POST",  
					url: "/tools/ic/icp.cfm",  
					data: formData, 
					dataType: "json",
					success: function(returnedJson) { icMailingListJsonProcess(returnedJson,$.trim($('input[name=icf_1_2]').val())); },
					error: function() { alert(icErrorMessage); }
					}); 				
			}
			$('input#icf_1_0b').val('http');
			unblockSubmit(submitButtonID,submitButtonVal);
			return false;
		});
	}

var icFeedback = function() {
		$('form[name=icf_2]').submit( function() {
			var errors = false;
			var objFeedback = new Object();
			var submitButtonID = 'ic_fb_submit';
			var submitButtonVal = $('input#'+submitButtonID).val();
			blockSubmit(submitButtonID);
			icHideFeedback()
			if ( $.trim($('input[name=icf_2_1]').val()) == '' ) {objFeedback['icff_2_0_1'] = true;errors = true;}
			if ( !isEmail($.trim($('input[name=icf_2_2]').val())) ) {objFeedback['icff_2_0_2'] = true;errors = true;}
			if ( $.trim($('textarea[name=icf_2_3]').val()) == '' ) {objFeedback['icff_2_0_3'] = true;errors = true;}
			if ( $.trim($('input[name=icf_2_4]').val()).length != 4 ) {objFeedback['icff_2_0_4'] = true;errors = true;}
			if (errors) {
				objFeedback['icff_2_0'] = true;
				icDisplayFeedback(objFeedback);
				}
			else {
				$('input#icf_2_0b').val('ajax');
				var formData = $('form#icf_2').serialize();
				$.ajax({  
					type: "POST",  
					url: "/tools/ic/icp.cfm",  
					data: formData, 
					dataType: "json",
					success: function(returnedJson) { icFeedbackJsonProcess(returnedJson); },
					error: function() { alert(icErrorMessage); }
					}); 				
			}
			$('input#icf_2_0b').val('http');
			unblockSubmit(submitButtonID,submitButtonVal);
			return false;
		});
	}

var icDisplayFeedback = function(objFeedback) {
		$.each( objFeedback, function(i,n) {
			icShowMessage(i)
			if (i.length == 10) {
				var formNumber = i.split("_")[1];
				var fieldNumber = i.split("_")[3];
				icShowField('icf_'+formNumber+'_'+fieldNumber);
			}
		} );
	}

var icShowField = function(field) {
		$('#'+field).addClass('fieldError');
	}

var icShowMessage = function(container) {
		$('div#'+container).slideDown('fast');
	}

var icMailingListJsonProcess = function(returnedJson,emailAddress) {
		// check for success and clear fields if found
		if ( !!returnedJson['icff_1_1'] ) { clearFields('icf_1') ;}
		// populate message text
		$.each( returnedJson, function(i,n) {
			var message = i.split("_")[3];
			if ( ic_ml_feedback[message] ) {
				if ( !!returnedJson['icff_1_1'] ) {
					$('div#icff_1_1').html(ic_ml_feedback[message].replace('+icf_1_2+',emailAddress));
				}
				else {
					$('div#icff_1_0').html(ic_ml_feedback[message].replace('+icf_1_2+',emailAddress));
				}
			}
		} );
		// display feedback
		icDisplayFeedback(returnedJson)
	}

var icFeedbackJsonProcess = function(returnedJson) {
		// check for success and clear fields if found
		if ( !!returnedJson['icff_2_1'] ) { clearFields('icf_2') ;}
		// reload captcha
		reloadCaptcha();
		// display feedback
		icDisplayFeedback(returnedJson)
	}

var icHideFeedback = function() {
		$("div[id^=icff_]").slideUp('fast');
		$("[id^=icf_]").removeClass('fieldError');
	}
	
var clearFields = function(form) {
		$("[id^="+form+"]").not('input[type="hidden"]').val('').attr('checked', false);
	}

var reloadCaptcha = function() {
		// clear captcha input
		$('input[name=icf_2_4]').val('');
		// get new captcha hash
		$.get("/tools/ic/getcaptchahash.cfm", function(captchaHash) { updateCaptcha(captchaHash) } );
	}

var updateCaptcha = function(captchaHash) {
		// update hidden field
		$('input[name=ic_caphash]').val(captchaHash);
		//update captcha image src
		$('img#icf_captcha_image').attr("src","/tools/ic/captcha.cfm?hash="+captchaHash)
	}

var isEmail = function(str) {
		return str.toString().toLowerCase().match(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/i) ? true:false;
	}

var blockSubmit = function(submitButtonID) {
		$('input#'+submitButtonID).val('Wait...');
		$.blockUI({
			showOverlay: true,
			fadeIn: 0,
			overlayCSS:  { 
				backgroundColor: '#000', 
				opacity: 0 
			}, 
    			css: { 
				border: 'none', 
				padding: '15px', 
				'-webkit-border-radius': '10px', 
				'-moz-border-radius': '10px',
				backgroundColor: '#000',
				opacity: .75, 
				color: '#000' 
			}
		}); 
	}

var unblockSubmit = function(submitButtonID,submitButtonVal) {
		$('input#'+submitButtonID).val(submitButtonVal);
		$.unblockUI();
	}

var icStarRating = function() {
		starRatingCursor();
		starRatingMouseOver();
		starRatingMouseOut();
		starRatingMouseClick();
	}
var starRatingCursor = function() {
		if ($('ul.star-rating li.sr_li').length) {
			$('ul.star-rating').css("cursor", "pointer");
		}
	};
var starRatingMouseOver = function() {
		$('ul.star-rating li.sr_li').mouseover(function(){
			var hoverItem = $('ul.star-rating li').index(this) + 1;
			$('ul.star-rating').find('li').slice(0,hoverItem).addClass('sr_sel').slice(hoverItem,5).removeClass('sr_sel');
		});
	};
var starRatingMouseOut = function() {
		$('ul.star-rating li.sr_li').mouseout(function(){
			$('ul.star-rating li').removeClass('sr_sel');
		});
	};
var starRatingMouseClick = function() {
		$('ul.star-rating li.sr_li').bind("click", function() {
			var currentVoteCount = parseInt($('span.starRatingCount').html());
			var clickItem = $('ul.star-rating li').index(this) + 1;
			var vote = $('ul.star-rating').attr('id') + clickItem;
			$('ul.star-rating li').removeClass('sr_vis').unbind();
			$('ul.star-rating').css("cursor", "auto").find('li').slice(0,clickItem).addClass('sr_sel');
			$('span.starRatingFeedback').fadeIn('fast');
			$('span.starRatingCount').html(currentVoteCount+1);
			setStarRating(vote);
		});
	}
var setStarRating = function(vote) {
		$.post("/tools/ic/ssr.cfm",{vote:vote});
	}

