//Common JavaScript for site

// dom-ready functions
$(document).ready(function () {
	
	
	/*
	if ($('a#fancy').length) {
		if (!getCookie('petitionViewed'))
		{
			$('a#fancy').fancybox({
				frameWidth:600,
				frameHeight:420,
				hideOnContentClick:false,
				overlayOpacity:0.7,
				callbackOnClose:function() {
					var today = new Date();
					var expire = new Date();
					expire.setTime(today.getTime() + 360000*24*30);
					document.cookie = "petitionViewed=1"
									+ ";expires="+expire.toGMTString();
					}
			}).click();
		}
	}
	*/
	
	
	//navigation ative item
	$('ul#mainnav_items li a').each(function() {
			//alert(location.pathname + '\n' + $(this).attr("href"));
			if($(this).attr("href").indexOf(location.pathname) > -1) {
				if(location.pathname.length > 10 || $(this).attr("href").search(/\/index.php$/) > 0) {
					$(this).addClass('active');
				}
			} else {
				$(this).removeClass('active');
			}
		});
							
	//homepage media bar cycle
	$('div#features ul').each(function() {
			$(this).cycle({
					timeout: 12000,
					pager: '#featurecontrols',
					cleartype: true
				});
			$('div#features ul').after($('<div id="pause-resume-feature"><a href="#"><img src="/dk/images/feat-pause.gif" alt="" /></a></div>'));
			$('#pause-resume-feature a').click(function() {
				if ($(this).is('.paused')) {
					$('div#features ul').cycle('resume');
					$(this).removeClass('paused');
					$(this).html('<img src="/dk/images/feat-pause.gif" alt="" />');
					return false;
				} else {
					$('div#features ul').cycle('pause');
					$(this).addClass('paused');
					$(this).html('<img src="/dk/images/feat-play.gif" alt="" />');
					return false;
				}
			})
	   });
	
	//social media image map
	$('#map_socialmedia area').each(function() {
			$(this).mouseenter(function() {
					var oa = $(this).attr('alt');
					var img = $('img#smo');
						img.attr('src',img.attr('src').replace('.gif','_'+oa+'.gif'));
				});
			$(this).mouseleave(function() {
					var img = $('img#smo');
						img.attr('src',img.attr('src').replace(/_[a-zA-Z]+\.gif$/,'.gif'));
				});
		});
	
	//set behavior for homepage Join Us form
	$(".joinus_mini .inputtext").each(function() {
			$(this).focus(function() {
					var v = $(this).val();
					if(v.indexOf('@')==-1) {
						$(this).val('');
					}
				});
			
			$(this).blur(function() {
					var v = $(this).val();
					if(v.indexOf('@')==-1) {
						$(this).val("Enter your email address");
					}
				});
	   });
	
	//set behavior for main Join Us form
	/*
	$('form#emsub li.submit button').click(function() {
		// console.log('should be disabled.');
		// $(this).attr('disabled','disabled');
		// return true;
	});
	*/
	if ($('form#emsub').length) {
	// $('form#emsub').each(function() {
								  //custom validator for form fields
			jQuery.validator.addMethod("labeldefault", function(value, element) {
					return value != $(element).siblings('label').html();
				});
			
			//validation for Join Us form
			var validateOpts = {
				highlight: function(e) {
						$(e).addClass('invalid');
						$('form#emsub input.button').removeAttr('disabled');
					},
				unhighlight: function(e) {
						$(e).removeClass('invalid');
					},
				//errorLabelContainer: '#errors',
				//wrapper: 'span',
				rules: {
						firstname: {
							required: true,
							labeldefault: true
						},
						lastname: {
							required: true,
							labeldefault: true
						},
						emailaddress: {
							required: true,
							labeldefault: true,
							email: true
						},
						zip: {
							required: true,
							labeldefault: true,
							rangelength: [5,10]
						}
					},
				messages: {
						firstname: 'Please enter your first name.',
						lastname: 'Please enter your last name.',
						emailaddress: {
							required: 'Please enter an email address.',
							labeldefault: 'Please enter your email address.',
							email: 'Your email address does not appear to be valid.'
						},
						zip: 'Please enter your zip code.'
				},
				submitHandler: function(form) {
						var subOpt = {
							target: 'div#message',
							success: joinusResponse
						}
						$(form).ajaxSubmit(subOpt);
						return false;
					}
			}
			
			$('form#emsub').validate(validateOpts);
		//});
	}
	
	//set behavior for main Get Involved form
	$('form#getinvolved').each(function() {
								  //custom validator for form fields
			jQuery.validator.addMethod("labeldefault", function(value, element) {
					return value != $(element).siblings('label').html();
				});
			
			//validation for Get Involved form
			var validateOpts = {
				highlight: function(e) {
						$(e).addClass('invalid');
					},
				unhighlight: function(e) {
						$(e).removeClass('invalid');
					},
				//errorLabelContainer: '#errors',
				//wrapper: 'span',
				rules: {
						firstname: {
							required: true,
							labeldefault: true
						},
						lastname: {
							required: true,
							labeldefault: true
						},
						emailaddress: {
							required: true,
							labeldefault: true,
							email: true
						},
						zip: {
							required: true,
							labeldefault: true,
							rangelength: [5,10]
						}
					},
				messages: {
						firstname: 'Please enter your first name.',
						lastname: 'Please enter your last name.',
						emailaddress: {
							required: 'Please enter an email address.',
							labeldefault: 'Please enter your email address.',
							email: 'Your email address does not appear to be valid.'
						},
						zip: 'Please enter your zip code.'
				},
				submitHandler: function(form) {
						var subOpt = {
							target: 'div#message',
							success: getinvolvedResponse
						}
						$(form).ajaxSubmit(subOpt);
						return false;
					}
			}
			
			$('form#getinvolved').validate(validateOpts);
		});
	
	//set behavior for Send to a Friend form
	if ($('form#sendtofriend').length) {
		
		var stafValidateOpts = {
			debug:true,
			highlight: function(e) {
					$(e).addClass('invalid');
				},
			unhighlight: function(e) {
					$(e).removeClass('invalid');
				},
			rules: {
				'sender-name':'required',
				'sender-email': {
					required:true,
					email:true
				},
				'emailaddress1':{
					email:true
					},
				'emailaddress2':{
					email:true
					},
				'emailaddress3':{
					email:true
					},
				'emailaddress4':{
					email:true
					},
				'emailaddress5':{
					email:true
					}
				},
			messages: {
				emailaddress1:{
						email: 'This email address does not appear to be valid.'
					},
				emailaddress2:{
						email: 'This email address does not appear to be valid.'
					},
				emailaddress3:{
						email: 'This email address does not appear to be valid.'
					},
				emailaddress4:{
						email: 'This email address does not appear to be valid.'
					},
				emailaddress5:{
						email: 'This email address does not appear to be valid.'
					}
			},
			submitHandler: function(form) {
					var subOpt = {
						target: 'div#message',
						success: senttoafriendResponse
					}
					$(form).ajaxSubmit(subOpt);
					return false;
				}
		}
		
		$('form#sendtofriend').validate(stafValidateOpts);
		
	}
	
	/*
	$('form#sendtofriend').each(function() {
								  //custom validator for form fields
			jQuery.validator.addMethod("labeldefault", function(value, element) {
					return value != $(element).siblings('label').html();
				});
			
			
			var errrules = {
							labeldefault: true,
							email: true
						};
			var errmsg = {
							labeldefault: 'Please enter your friend\'s email address.',
							email: 'This email address does not appear to be valid.'
						};
			
			//validation for send to a friend form
			var validateOpts = {
				highlight: function(e) {
						$(e).addClass('invalid');
					},
				unhighlight: function(e) {
						$(e).removeClass('invalid');
					},
				//errorLabelContainer: '#errors',
				//wrapper: 'span',
				rules: {
						emailaddress: {
								required: true,
								labeldefault: true,
								email: true
							},
						emailaddress2: errrules,
						emailaddress3: errrules,
						emailaddress4: errrules,
						emailaddress5: errrules
					},
				messages: {
						emailaddress:{
								required: 'Please enter your friend\'s email address.',
								labeldefault: 'Please enter your friend\'s email address.',
								email: 'This email address does not appear to be valid.'
							},
						emailaddress2: errmsg,
						emailaddress3: errmsg,
						emailaddress4: errmsg,
						emailaddress5: errmsg
				},
				submitHandler: function(form) {
						var subOpt = {
							target: 'div#message',
							success: senttoafriendResponse
						}
						$(form).ajaxSubmit(subOpt);
						return false;
					}
			}
			
			$('form#sendtofriend').validate(validateOpts);
		});
		*/
	
	//set behavior styling for JQuery enabled form
	$('form#emsub ul li input.inputtext').each(function() {
			//hide labels
			$(this).siblings('label').hide();
			//set field value las hidden label text (if empty)
			if($(this).val() == "") {
				$(this).val($(this).siblings('label').html());
			}
			//select value when field gains focus
			$(this).focus(function() {
					$(this).select();
				});
			//reset value when focus is lost
			$(this).blur(function() {
					if($(this).val() == '') {
						$(this).val($(this).siblings('label').html());
					}
				});
		});
});

//join us response function
function joinusResponse() {
	window.location = "/index.php/joinus/success/";
	/*
	$('form#emsub').fadeOut('fast',function() {
		$('div#message').fadeIn('fast');
	})
	*/
}

//get involved response function
function getinvolvedResponse() {
	window.location = "/index.php/getinvolved/success/";
	/*
	$('form#getinvolved').fadeOut('fast',function() {
		$('div#message').fadeIn('fast');
	})
	*/
}

//send to a friend response function
function senttoafriendResponse() {
	window.location = "/index.php/getinvolved/sendtoafriend_success/";
	/*
	$('form#sendtofriend').fadeOut('fast',function() {
		$('div#message').fadeIn('fast');
	})
	*/
}

//get cookie
function getCookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );


		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}