//==========================================================================================
// standardpacifichomes.com - GlobalJavascript.js
//==========================================================================================
/* In this file:
	[JavaScript and jQuery Plugins] - all plugins written in javascript or jQuery
	[Javascript Functions] - all none jQuery functions
	[jQuery functions on load] - all modules / controls of the site
*/

var $j = jQuery.noConflict();		
var userAgent = navigator.userAgent.toLowerCase();
var platform = "";

//==========================================================================================
// BEGIN: javascript functions

	// Begin "Browser detection"
	function browserDetection() {
		 if ( navigator.platform != null ) {
			  if ( navigator.platform.indexOf( "Win32" ) != -1 ) {
					platform = "Windows";
			  } else if ( navigator.platform.indexOf( "Win64" ) != -1 ) {
					platform = "Windows";
			  } else if ( navigator.platform.indexOf( "Win" ) != -1 ) {
					platform = "Windows";
			  } else if ( navigator.platform.indexOf( "Linux" ) != -1 ) {
					platform = "Linux";
			  } else if ( navigator.platform.indexOf( "Mac" ) != -1 && navigator.platform.indexOf( "Intel" ) != -1 ) {
					platform = "Mac";
			  } else if ( navigator.platform.indexOf( "Mac" ) != -1 && navigator.platform.indexOf( "PPC" ) != -1 ) {
					platform = "Mac";
			  } else if ( navigator.platform.indexOf( "Mac" ) != -1 ) {
					platform = "Mac" ;
			  } else
					platform = navigator.platform;
		 }
		if ( platform == "Mac" ) {
			$j('body').addClass('Mac');
		}
		jQuery.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase()); 
		if(jQuery.browser.msie) { // Is this a version of IE?
			jQuery("body").addClass("IE");        
			jQuery("body").addClass("IE" + jQuery.browser.version.substring(0,1));
		}
		if(jQuery.browser.chrome) { // Is this a version of Chrome?
			jQuery("body").addClass("Chrome");
			userAgent = userAgent.substring(userAgent.indexOf("chrome/") +7);
			userAgent = userAgent.substring(0,1);
			jQuery("body").addClass("Chrome" + userAgent);  
			jQuery.browser.safari = false; // If it is chrome then jQuery thinks it's safari so we have to tell it it isn't
		}
		if(jQuery.browser.safari) { // Is this a version of Safari?
			jQuery("body").addClass("Safari");        
			userAgent = userAgent.substring(userAgent.indexOf("version/") +8);
			userAgent = userAgent.substring(0,1);
			jQuery("body").addClass("Safari" + userAgent);
		}
		if(jQuery.browser.mozilla) { // Is this a version of Mozilla?
			if(navigator.userAgent.toLowerCase().indexOf("firefox") != -1) { //Is it Firefox?
				jQuery("body").addClass('Firefox');
				userAgent = userAgent.substring(userAgent.indexOf("firefox/") +8);
				userAgent = userAgent.substring(0,1);
				jQuery("body").addClass("Firefox" + userAgent);
			} else { // If not then it must be another Mozilla
				jQuery("body").addClass("Mozilla");
			}
		}
	}
	// End "Browser detection"

	// -------------------------------------------------------------------------
	// Begin "get and parse querystring parameters"
	function getUrlVars() {
		 var map = {};
		 var pattern = "[?&amp;]+([^=&amp;]+)=([^&amp;]*)";
		 pattern = pattern.replace(/amp;/gi,"");
		 var regex = new RegExp(pattern, "gi");
		 var parts = window.location.href.replace(regex, function(m,key,value) {
			  map[key] = value;
		 });
		 return map;
	}
	// End "get and parse querystring parameters"
	
	// Begin "Initializing URL overlay loading"
	function iniURLModal() {
		var map = getUrlVars();
		var slideNum = 0;
		var raw = "";
		var show = "";
		var showNum = 0;
		
		if(map['show']) { raw = map['show']; }
		
		if(raw.indexOf("-") != -1) {
			show = raw.substring(0, raw.indexOf("-"));
			showNum = parseInt(raw.substring(raw.indexOf("-")+1));
		} else {
			show = raw;
			showNum = 1;
		}
		switch (raw) {
			case "getupdates":
				activateURLModal('#get_updates .toggleOverlay');
				break;
			case "signin":
				activateURLModal('#SignInLi .toggleOverlay');
				break;
			case "findnewhome":
				activateURLModal('.find-your-new-home .toggleOverlay');
				break;
			case "forgotpassword":
				activateURLModal('.forgotpassword.toggleOverlay');
				break;
			default:
				// do nothing abnormal
				break;
		}
	}
	function activateURLModal(selector) {
		$j(selector).click();
	}
	// End "Initializing URL overlay loading"

	// BEGIN: "Get Updates" checkbox function
	function selectAllInit(selectAllClass) {
		var eventBinding = 'change';
		var wrappingContainer = $j('.market-area');
		var thisSelectAll = "";
		
		$j('input[type=checkbox]').each(function() {
			if ($j(this).is(':checked')) {
				
				var _this = $j(this);
				_this.parents('.market-area').addClass('active');
				
				thisSelectAll = _this.parents('.market-area').find('.selected_market_area').children('input');
				wrappingContainer = _this.parents('.market-area');
				
				$j('.active').find('ul').show();
				if ($j( '.checkbox input', wrappingContainer).length == $j( '.checkbox input:checked', wrappingContainer).length) {
					$j(thisSelectAll, wrappingContainer).attr('checked','checked');
				} 
				if ( ($j( '.checkbox input', wrappingContainer).length) > ($j( '.checkbox input:checked', wrappingContainer).length)) {
					$j(thisSelectAll, wrappingContainer).removeAttr('checked');
				}
			}
		});
		
		$j(selectAllClass).live(eventBinding, function() {
			thisSelectAll = $j(this).children("input");
			wrappingContainer = thisSelectAll.parents(".market-area");
				
			$j('.checkbox input', wrappingContainer).each(function(i,e) {
				if(thisSelectAll.is(':checked') ) {
					$j(this).attr(	'checked', 'checked');
				} else {
					$j(this).removeAttr(	'checked' );
				}
			});
		});
		
		$j('.checkbox input').live( eventBinding, function() {
			var thisCb = $j(this);
			wrappingContainer = thisCb.parents(".market-area");
			
			if ($j( '.checkbox input', wrappingContainer).length == $j( '.checkbox input:checked', wrappingContainer).length) {
				$j(thisSelectAll, wrappingContainer).attr('checked','checked');
			} 
			if ( ($j( '.checkbox input', wrappingContainer).length) > ($j( '.checkbox input:checked', wrappingContainer).length)) {
				$j(thisSelectAll, wrappingContainer).removeAttr('checked');
			}
		});
		
		$j('.sbOptions').attr('style','display: none;');
		
	}
	// END: "Get Updates" checkbox function
	
	// Begin: SlideToggle Overlay Functionality
	// Add "toggleOverlay" to the item triggering the opening of the overlay and 
	// use the "rel" attribute to pass the ID of the div you would like to toggle
	// Example: <a rel="#overlay-signin" class="toggleOverlay" href="">Sign In</a>
	function hideOverlays(target){
		/* Unbind all clicks */
		$j(document).unbind('click');
		$j('.toggleOverlay').unbind('hover');
		/* close all overlays & remove active classes */
		if($j('.dropdown').hasClass('active')){
			$j('.dropdown.active').slideUp('slow', function() {
				$j('.dropdown.active').removeClass('active');
				$j('.activeToggle').removeClass('activeToggle');
				if ($j('#get_updates')) {
					$j('#get_updates').removeClass('active');
				}
			});
		}
	}
	function toggleOverlays(target) {
		/* returns the "rel" attribute from the <a> tag clicked */
		if (target != "") {
			overlay_item = target;
			overlay_item_rel = overlay_item.attr('rel');
		} else { 
			return false;
		};
		
		//runs function for Get Updates Overlay checkboxes
	   selectAllInit(".selected_market_area");
		
		
		hideOverlays();
		/* uses the ID passed in the "rel" attibute to open the overlay */
		$j(overlay_item_rel).slideDown('slow', function () {
			$j(overlay_item).parents('li').addClass('active');
			$j(overlay_item_rel).addClass('active');
			$j(overlay_item).addClass('activeToggle');
			$j(overlay_item_rel).live('mouseleave',function() {
				$j(document).click(function(e){
					hideOverlays();
				});
			});
			$j(overlay_item_rel).live('mouseenter',function() {
				$j(document).unbind('click');
			});
			overlay_item.hover(function(){
				$j(document).unbind('click');
				
			},function(){
				$j(document).click(function(e){
					hideOverlays();
				});
			})
		});
	}
	// End: SlideToggle Overlay Functionality

	// Begin: Login Functionality
	function performLogin(options) {
	    if (typeof options === 'undefined' || !('username' in options) || !('password' in options))
	        return false;

	    var loginForm = $j('#loginform');
	    var loginFormUsernameField = loginForm.find('#loginUserName');
	    var loginFormPasswordField = loginForm.find('#loginPassword');
	    var loginFormRememberMeField = loginForm.find('#rememberMe');
	    var loginFormLoginOverlayField = loginForm.find('#loginOverlay');
	    var loginFormLoginReferrerField = loginForm.find('#loginReferrer');

	    loginFormUsernameField.val(options['username']);
	    loginFormPasswordField.val(options['password']);

	    if ('rememberMe' in options && options['rememberMe'])
	        loginFormRememberMeField.attr('checked', 'checked');
	    else
	        loginFormRememberMeField.removeAttr('checked');

	    if ('loginOverlay' in options && options['loginOverlay'])
	        loginFormLoginOverlayField.attr('checked', 'checked');
	    else
	        loginFormLoginOverlayField.removeAttr('checked');

	    loginFormLoginReferrerField.val(window.location);
	    loginForm.attr('action', 'https://' + window.location.hostname + '/_Handlers/Login.ashx');
	    loginForm.submit();

	    return false;
	}
	// End: Login Functionality
	
	// Begin: Open Modal
	function openModal(target, tab, onCloseCallback) {
		//console.log(target);
		//console.log('running function');
		var modalId = "";
		/* returns the "rel" attribute from the <a> tag clicked */
		/* ENG: to open function independently run openModal(" insert overlay id "); */
		if (target != "") {
			 if ($j(target).attr('rel')) {
				  modalId = $j(target).attr('rel');
			 } else {
				  modalId = $j(target);
			 }
			 
			 // If the target does not exist, do not attempt to show the modal
			 if ($j(modalId).length < 1) {
				  return false;
			 }
		} else {
			 return false;
		}
		/* uses the ID passed in the "rel" attibute to open the modal window */
		$j(modalId).modal({
		    appendTo: 'form.mainform',
		    overlayId: "sph-overlay",
		    containerId: "sph-overlay-container",
		    opacity: 60,
		    overlayClose: true,
		    closeHTML: "<img src='/_Images/Global/btn-close.png' alt='Close Window' />",
		    closeClass: "btn-close",
		    onOpen: function(dialog) {
		        dialog.overlay.fadeIn('slow', function() {
		            dialog.container.slideDown('slow', function() {
		                dialog.data.fadeIn('slow');
		            });
		        });
		    },
		    onShow: function(dialog) {
		        //$j('.simplemodal-data').append('<div class="clear"></div>');
		        // Functionality for Media Gallery Overlay
		        if (modalId == '#media_gallery_overlay') {
		            //console.log('class exists');
		            $j('#media_gallery_overlay').tabs();
		            createPhotoGallery();
		            if (typeof (createFloorPlan) == 'function') {
		                createFloorPlan();
		            } else {
		                // This gallery has no floor plan
		            }
		            $j('#tabs-videos .stage').tabs();
		            $j('#video-thumbs').removeClass('ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all').find('li').removeClass('ui-corner-top ui-state-default');
		            /*createVideoGallery();*/
		            $j('.media-window-nav').removeClass('ui-tabs-nav').removeClass('ui-helper-reset').removeClass('ui-helper-clearfix').removeClass('ui-widget-header').removeClass('ui-corner-all');
		            $j('.media-window-nav li').removeClass('ui-corner-top').removeClass('ui-state-default');

		            $j('.media-window-nav li a').each(function() {
		                var href = $j(this).attr('href');
		                if (href == tab) {
		                    $j(this).click();
		                }
		            });
		        }

		        // Scroll to top of window after overlay is on
		        $j('html, body').animate({ scrollTop: 0 }, 2000);


		        // Load the Recaptcha widget
		        var recaptchaHolder = $j('#recaptcha_widget', dialog.data);
		        if (recaptchaHolder.length > 0 && typeof RecaptchaPublicKey !== 'undefined') {
		            Recaptcha.destroy();
		            Recaptcha.create(RecaptchaPublicKey, recaptchaHolder[0], { theme: 'custom', custom_theme_widget: 'recaptcha_widget' });
		        }

		    },
		    onClose: function(dialog) {
		        if (typeof (onCloseCallback) == 'function') {
		            onCloseCallback();
		        } else {
		            //continue function	
		        }
		        dialog.data.fadeOut('slow', function() {
		            dialog.container.slideUp('slow', function() {
		                dialog.overlay.fadeOut('slow', function() {
		                    $j.modal.close(); // must call this!
		                });
		            });
		        });
		    }
		});
	}
	// End: Open Modal
	
	// Begin: Add/Remove Friends from Share By Email Overlay
	function addFriend() {
	    var friends = $j('.friend');
	    var friendCount = friends.length;
		var friendBox = "<div class='group friend'><div class='positioned'><label for='friend-name'>YOUR friend's name*</label><input class='sharebyemail-friend-name' name='share-by-email-friend-name' id='share-by-email-friend-name' type='text'></div><div class='positioned'><label for='friend-email'>YOUR friend's EMAIL*</label><input class='sharebyemail-friend-email' name='share-by-email-friend-email' id='share-by-email-friend-email' type='text'></div><a class='btn-remove' href='#'>Remove</a></div>";
	    
		if (friendCount < 5) {
			// Insert new friendBox after the main friendBox div
		    var latestFriend = $j(friendBox).fadeIn().insertAfter(friends.last());
		    var friendId = friendCount + 1;
			
			// Append the friendID to the id of the friend div for ENG use
		    latestFriend.find('label').eq(0).attr('for', 'share-by-email-friend-name' + friendId);
		    latestFriend.find('input').eq(0).attr('name', 'share-by-email-friend-name' + friendId);
		    latestFriend.find('input').eq(0).attr('id', 'share-by-email-friend-name' + friendId);
		    latestFriend.find('label').eq(1).attr('for', 'share-by-email-friend-email' + friendId);
		    latestFriend.find('input').eq(1).attr('name', 'share-by-email-friend-email' + friendId);
		    latestFriend.find('input').eq(1).attr('id', 'share-by-email-friend-email' + friendId);
		}
	}

	function checkFriends() {
	    // Renumber the remaining friends
	    var friends = $j('.friend');
	    for (var id = 0; id < friends.length; id++) {
	        var friend = friends.eq(id);
	        friend.find('label').eq(0).attr('for', 'share-by-email-friend-name' + (id + 1));
	        friend.find('input').eq(0).attr('name', 'share-by-email-friend-name' + (id + 1));
	        friend.find('input').eq(0).attr('id', 'share-by-email-friend-name' + (id + 1));
	        friend.find('label').eq(1).attr('for', 'share-by-email-friend-email' + (id + 1));
	        friend.find('input').eq(1).attr('name', 'share-by-email-friend-email' + (id + 1));
	        friend.find('input').eq(1).attr('id', 'share-by-email-friend-email' + (id + 1));
	    }
	    
	    // Hide the add friend control if we've added the maximum number of friends
		if (friends.length == 5) {
			$j(".friend-control").hide();
		} else {
			$j(".friend-control").show();
		}
	}
	// End: Add/Remove Friends from Share By Email Overlay
	

// END: javascript functions
//==========================================================================================
// BEGIN: jQuery functions on load
	$j(document).ready(function() {
	    //$j replaces the normal $ in jQuery forthis document

	    // --------------------------------------------------------------------------------------
	    // BEGIN: Global Functionality

	    // "Find Your New Home" button in header - changed font color on hover
	    $j('.header .find-your-new-home-button p').bind("mouseenter", function() {
	        $j(this).css('color', "#ABC2E2");
	    }).bind("mouseleave", function() {
	        $j(this).css('color', "#FFFFFF");
	    });

	    // Begin: Browser Detect Function
	    browserDetection();
	    //console.log(platform);

	    // Begin: clear_value 
	    $j(".clear_value").each(function() {
	        if ($j(this).val() != $j(this).attr("title")) {
	            $j(this).removeClass("clear_value_off");
	        }
	    });
	    // Clears default input text value when it's on focus. Default text value should be set in the "title" attribute
	    $j(".clear_value").focus(function() {
	        if ($j(this).val() == $j(this).attr("title")) {
	            $j(this).val("");
	            $j(this).removeClass("clear_value_off");
	        }
	    }).blur(function() {
	        if ($j(this).val() == "") {
	            $j(this).val($j(this).attr("title"));
	            $j(this).addClass("clear_value_off");
	        }
	    });
	    // End: clear_value

	    //Created an array to hold onto the desired info.
	    var windowSizeArray = ["width=900,height=600", "width=300,height=400,scrollbars=yes"];

	    //Links that has the ".newWindow" class will call this script.
	    $j('.newWindow').click(function(event) {

	        /*Prevents the browser from executing the default action and
	        allows us to use the "window.open" within our script.*/
	        event.preventDefault();

	        // Gets the URL from the clicked link.
	        var url = $j(this).attr("href");

	        /*Gets the name from the clicked link. Currently I commented out the
	        jquery script and just put "popUp" for a default name because I didn't
	        include the name in the links.*/
	        var windowName = "popUp"; //$(this).attr("name");

	        /*Places the string from the array into the windowSize variable.
	        The array slot is determined by the "rel" number on the link.*/
	        var windowSize = windowSizeArray[$j(this).attr("rel")];

	        //This method opens a new browser window.
	        window.open(url, windowName, windowSize);

	    });

	    //Begin: Auto-tab Plugin
	    //ENG: Add the class "autotab" to any inputs you want to automatically tab once they reach their max length
	    $j('input.autotab').autotab_magic();
	    //End: Auto-tab Plugin

	    // Begin: SPH Custom Select Box Plugin -> Replaces "Sexy Combo Box"
	    // Add the class "custom-select-box" to the <select> item you want to use it with
	    $j(".custom-select-box").selectbox({
	        onOpen: function(inst) {
	            //console.log("open", inst);
	        },
	        onClose: function(inst) {
	            //console.log("close", inst);
	        },
	        effect: "slide"
	    });
	    // End: SPH Custom Select Box Plugin

	    //Begin Captcha Reload

	    $j(".captcha-reload").click(function(e) {
	        e.preventDefault();
	        var img = $j(this).parents().find(".captcha-box img");
	        var response = $j(this).parents().find(".captcha-response input");


	        //use the date as the captcha counter
	        var captchacounter = new Date();

	        var hostname = window.location.hostname;

	        img.attr('src', "http://" + hostname + "/api/CaptchaService.svc/captcha.jpg?" + captchacounter.getTime()).show();
	        response.val('');

	    });

	    //End Captcha Reload

	    // Begin: ".select-arrow" function to flip arrow upon open/close on Get Updates tab
	    $j(".select-arrow").click(function(e) {
	        e.preventDefault();
	        var container = $j(this).parents(".market-area");
	        var _this = $j(this);
	        var arrowPosition = $j(this).css("backgroundPosition");
	        var arrowPositionY = $j(this).css("backgroundPositionY");
	        var arrowPositionX = $j(this).css("backgroundPositionX");
	        _this.next("ul").slideToggle();

	        if (arrowPosition == "50% 0%") {
	            $j(this).css({ backgroundPosition: '50% 100%' });
	        };

	        if (arrowPosition == "50% 100%") {
	            $j(this).css({ backgroundPosition: '50% 0%' });
	        };

	        /* IE Fix for backgroundPosition */
	        if ((arrowPositionY == "bottom") && (arrowPositionX == "center")) {
	            $j(this).css({ backgroundPositionY: 'top' });
	        }

	        if ((arrowPositionY == "top") && (arrowPositionX == "center")) {
	            $j(this).css({ backgroundPositionY: 'bottom' });
	        }
	    });
	    // End: ".select-arrow" function to flip arrow upon open/close on Get Updates tab

	    // Begin: openModal 
	    // Example: <a rel="#share_by_email_overlay" class="openModal" href="#"></a>
	    $j('.openModal').click(function(e) {
	        e.preventDefault();
	        openModal($j(this), $j(this).attr('href'));
	    });

	    $j('.overlay .cancel-btn, .overlay .close-btn').click(function(e) {
	        e.preventDefault();
	        $j.modal.close();
	    });

	    // Masterplan Community Overlays
	    $j('.overlay .see-larger-map').live('click', function(e) {
	        e.preventDefault();
	        $j.modal.close();
	        setTimeout("openModal('#masterplan_community_overlay_large')", 2000);
	    });

	    $j('.overlay .back-to-master-plan').live('click', function(e) {
	        e.preventDefault();
	        $j.modal.close();
	        setTimeout("openModal('#masterplan_community_overlay')", 2000);
	    });
	    $j('#register_login_overlay .forgot-password a').live('click', function(e) {
	        e.preventDefault();
	        $j.modal.close();
	        $j('.forgotpassword.toggleOverlay').click();
	        $j('html, body').animate({ scrollTop: 0 }, 2000);
	    });
	    
	    //forgot password link click
	    $j("#staticSignin a").eq(0).click(function(e) {
	        e.preventDefault();
	        $j('.forgotpassword.toggleOverlay').click();
	        $j('html, body').animate({ scrollTop: 0 }, 1000);
	    });

	    // End: openModal 

	    // Begin: Overlay - Share By Email
	    $j(".add-another-friend").click(function(e) {
	        e.preventDefault();
	        addFriend();
	        checkFriends();
	    });

	    $j(".friend .btn-remove").live('click', function(e) {
	        e.preventDefault();
	        $j(this).parent().slideUp(400, function() {
	            $j(this).closest('.friend').remove();
	            checkFriends();
	        });
	    });
	    // End: Overlay - Share By Email

	    // END: Generic Functionality
	    // -------------------------------------------------------------------------------------


	    // --------------------------------------------------------------------------------------
	    // BEGIN: Global Callouts & Modal Windows

	    // Begin: My Notebook Callout
	    $j('.scroll-pane').jScrollPane({ showArrows: true });
	    // End: My Notebook Callout

	    // Horizonal scroll bar - Used on Filmstrip Homes
	    $j('.scroll-pane-split').jScrollPane(
			{
			    showArrows: true,
			    horizontalArrowPositions: 'split'
			}
		);


	    $j('.toggleOverlay').click(function(e) {
	        e.preventDefault();
	        if ($j(this).hasClass('activeToggle')) {
	            hideOverlays();
	        } else {
	            toggleOverlays($j(this));
	        }
	    });

	    $j('.dropdown .close-btn, .dropdown .cancel-btn').click(function(e) {
	        e.preventDefault();
	        hideOverlays();
	    });

	    $j('.overlay-login .hdr').click(function() {
	        hideOverlays();
	    });

	    // End: SlideToggle Overlay Functionality

	    // Begin: Header Login Overlay Functionality
	    $j('#overlay-signin .sign-in-btn').click(function(e) {
	        e.preventDefault();

	        // Get fields
	        var signInOverlay = $j('#overlay-signin');
	        var signInOverlayUsernameField = signInOverlay.find('.loginglobalemail');
	        var signInOverlayPasswordField = signInOverlay.find('.loginglobalpass');
	        var signInOverlayRememberMeField = signInOverlay.find('.loginglobalremember');

	        // Validate fields
	        var isValidated = true;
	        var fieldRequiredMessage = $j('<span class="error">This field is required.</span>');
	        var emailInvalidMessage = $j('<span class="error">Please enter a valid email address.</span>');
	        var passwordTooShortMessage = $j('<span class="error">Please enter at least 6 characters.</span>');
	        var emailRegex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
	        signInOverlay.find('.error').remove();

	        var username = signInOverlayUsernameField.val();
	        if ($j.trim(username) === "") {
	            signInOverlayUsernameField.after(fieldRequiredMessage.clone());
	            isValidated = false;
	        }
	        else if (!emailRegex.test(username)) {
	            signInOverlayUsernameField.after(emailInvalidMessage.clone());
	            isValidated = false;
	        }

	        var password = signInOverlayPasswordField.val();
	        if ($j.trim(password) === "") {
	            signInOverlayPasswordField.after(fieldRequiredMessage.clone());
	            isValidated = false;
	        }
	        else if ($j.trim(password).length < 6) {
	            signInOverlayPasswordField.after(passwordTooShortMessage.clone());
	            isValidated = false;
	        }

	        // Perform login
	        if (isValidated) {
	            var rememberMe = signInOverlayRememberMeField.is(':checked');

	            var options = {
	                username: username,
	                password: password,
	                rememberMe: rememberMe,
	                loginOverlay: true
	            };

	            performLogin(options);
	        }
	    });
	    // End: Header Login Overlay Functionality


	    // Begin: Register/Login Overlay Functionality
	    $j('#register_login_overlay .sign-in-btn').click(function(e) {
	        e.preventDefault();

	        // Get fields
	        var overlay = $j('#register_login_overlay');
	        var overlayUsernameField = overlay.find('.loginglobalemail');
	        var overlayPasswordField = overlay.find('.loginglobalpass');
	        var overlayRememberMeField = overlay.find('.loginglobalremember');

	        // Validate fields
	        var isValidated = true;
	        var fieldRequiredMessage = $j('<span class="error">This field is required.</span>');
	        var emailInvalidMessage = $j('<span class="error">Please enter a valid email address.</span>');
	        var passwordTooShortMessage = $j('<span class="error">Please enter at least 6 characters.</span>');
	        var emailRegex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
	        overlay.find('.error').remove();

	        var username = overlayUsernameField.val();
	        if ($j.trim(username) === "") {
	            overlayUsernameField.after(fieldRequiredMessage.clone());
	            isValidated = false;
	        }
	        else if (!emailRegex.test(username)) {
	            overlayUsernameField.after(emailInvalidMessage.clone());
	            isValidated = false;
	        }

	        var password = overlayPasswordField.val();
	        if ($j.trim(password) === "") {
	            overlayPasswordField.after(fieldRequiredMessage.clone());
	            isValidated = false;
	        }
	        else if ($j.trim(password).length < 6) {
	            overlayPasswordField.after(passwordTooShortMessage.clone());
	            isValidated = false;
	        }

	        // Perform login
	        if (isValidated) {
	            var rememberMe = overlayRememberMeField.is(':checked');

	            var options = {
	                username: username,
	                password: password,
	                rememberMe: rememberMe,
	                loginOverlay: true
	            };

	            performLogin(options);
	        }
	    });
	    // End: Register/Login Overlay Functionality

	    // Begin: Header Search Box Functionality
	    $j('#site-search .btn-submit').click(function(event) {
	        event.preventDefault();

	        var searchField = $j('#site-search input[type="text"]');
	        var isDefaultText = searchField.val() == searchField.attr('title');
	        var isEmpty = $j.trim(searchField.val()) == '';
	        if (!isDefaultText && !isEmpty) {
	            window.location = '/search.aspx?cx=000368022326440315083%3Acy8x0cu7jou&cof=FORID%3A11%3BNB%3A1&ie=UTF-8&q=' + encodeURIComponent($j.trim(searchField.val()));
	        }
	    });
	    // End: Header Search Box Functionality

	    // Begin: Check url for show modal on page load
	    // NOTE: Always keep this at the bottom of HeaderFooter.js!
	    iniURLModal();
	    // End: Check url for show modal on page load

	    // END: Global Callouts & Modal Windows
	    // -------------------------------------------------------------------------------------




	});
