$(document).ready(function(){
	/*$("#navItems li").hover(
		function(){ $("ul", this).fadeIn("fast"); }, 
		function() { } 
	);
	if (document.all) {
		$("#navItems li").hoverClass ("sfhover");
	}*/
	//if (window.attachEvent) ieHover();
	$("ul.dropdown li").css('z-index','50');
	$("ul.dropdown li").hover(function(){
    	
		$(this).addClass("hover");
        $('ul:first',this).css('visibility', 'visible');
    
    }, function(){
    
        $(this).removeClass("hover");
        $('ul:first',this).css('visibility', 'hidden');
    
    });
	
	//2nd level last item should go to left instead of to right
	/*$('ul.dropdown').find('li:last').hover(function(){
    	
		$(this).addClass("hover");
        $('ul:first',this).css('visibility', 'visible').addClass("hoverLeft");
    
    }, function(){
    
        $(this).removeClass("hover");
        $('ul:first',this).css('visibility', 'hidden');
    
    });*/
	
	$("ul.dropdown li ul li:has(ul)").find("a:first").append(" &raquo; ");
	
	$('#slideshow').cycle({ 
		fx:      'scrollRight', 
		height: 'auto',
		//fx: 'custom',
		cleartype: 1,
		cssBefore: {  
			left: 115,  
			top:  115,  
			width: 0,  
			height: 0,  
			opacity: 1, 
			zIndex: -1 
		}, 
		animOut: {  
			opacity: 0  
		}, 
		animIn: {  
			left: 0,  
			top: 0,  
			width: 0,  
			height: 0  
		}, 
		cssAfter: {  
			zIndex: 0 
		}, 
		delay: -3000 
	});
	
});

$.fn.hoverClass = function(c) {
	return this.each(function(){
		$(this).hover( 
			function() { $(this).addClass(c);  },
			function() { $(this).removeClass(c); }
		);
	});
};	

/* cycle lite
$.fn.cycle.defaults = { 
    timeout:       4000,  // milliseconds between slide transitions (0 to disable auto advance) 
    speed:         1000,  // speed of the transition (any valid fx speed value) 
    next:          null,  // id of element to use as click trigger for next slide 
    prev:          null,  // id of element to use as click trigger for previous slide 
    before:        null,  // transition callback (scope set to element to be shown) 
    after:         null,  // transition callback (scope set to element that was shown) 
    height:       'auto', // container height 
    sync:          1,     // true if in/out transitions should occur simultaneously 
    fit:           0,     // force slides to fit container 
    pause:         0,     // true to enable "pause on hover" 
    delay:         0,     // additional delay (in ms) for first transition (hint: can be negative) 
    slideExpr:     null,  // expression for selecting slides (if something other than all children is required) 
}; 
*/

/* cycle not light
// override these globally if you like (they are all optional) 
$.fn.cycle.defaults = { 
    fx:              'fade', // name of transition effect (or comma separated names, ex: fade,scrollUp,shuffle) 
    timeout:       4000,  // milliseconds between slide transitions (0 to disable auto advance) 
    timeoutFn:     null,  // callback for determining per-slide timeout value:  function(currSlideElement, nextSlideElement, options, forwardFlag) 
    continuous:       0,      // true to start next transition immediately after current one completes 
    speed:           1000,  // speed of the transition (any valid fx speed value) 
    speedIn:       null,  // speed of the 'in' transition 
    speedOut:       null,  // speed of the 'out' transition 
    next:           null,  // selector for element to use as click trigger for next slide 
    prev:           null,  // selector for element to use as click trigger for previous slide 
    prevNextClick: null,  // callback fn for prev/next clicks:    function(isNext, zeroBasedSlideIndex, slideElement) 
    pager:           null,  // selector for element to use as pager container 
    pagerClick:       null,  // callback fn for pager clicks:    function(zeroBasedSlideIndex, slideElement) 
    pagerEvent:      'click', // name of event which drives the pager navigation 
    pagerAnchorBuilder: null, // callback fn for building anchor links:  function(index, DOMelement) 
    before:           null,  // transition callback (scope set to element to be shown):     function(currSlideElement, nextSlideElement, options, forwardFlag) 
    after:           null,  // transition callback (scope set to element that was shown):  function(currSlideElement, nextSlideElement, options, forwardFlag) 
    end:           null,  // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options) 
    easing:           null,  // easing method for both in and out transitions 
    easeIn:           null,  // easing for "in" transition 
    easeOut:       null,  // easing for "out" transition 
    shuffle:       null,  // coords for shuffle animation, ex: { top:15, left: 200 } 
    animIn:           null,  // properties that define how the slide animates in 
    animOut:       null,  // properties that define how the slide animates out 
    cssBefore:       null,  // properties that define the initial state of the slide before transitioning in 
    cssAfter:       null,  // properties that defined the state of the slide after transitioning out 
    fxFn:           null,  // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag) 
    height:          'auto', // container height 
    startingSlide: 0,      // zero-based index of the first slide to be displayed 
    sync:           1,      // true if in/out transitions should occur simultaneously 
    random:           0,      // true for random, false for sequence (not applicable to shuffle fx) 
    fit:           0,      // force slides to fit container 
    containerResize: 1,      // resize container to fit largest slide 
    pause:           0,      // true to enable "pause on hover" 
    pauseOnPagerHover: 0, // true to pause when hovering over pager link 
    autostop:       0,      // true to end slideshow after X transitions (where X == slide count) 
    autostopCount: 0,      // number of transitions (optionally used with autostop to define X) 
    delay:           0,      // additional delay (in ms) for first transition (hint: can be negative) 
    slideExpr:       null,  // expression for selecting slides (if something other than all children is required) 
    cleartype:       !$.support.opacity,  // true if clearType corrections should be applied (for IE) 
    nowrap:           0,      // true to prevent slideshow from wrapping 
    fastOnEvent:   0,      // force fast transitions when triggered manually (via pager or prev/next); value == time in ms 
    randomizeEffects: 1,  // valid when multiple effects are used; true to make the effect sequence random 
    rev:           0,     // causes animations to transition in reverse 
    manualTrump:   true,  // causes manual transition to stop an active transition instead of being ignored 
    requeueOnImageNotLoaded: true, // requeue the slideshow if any image slides are not yet loaded 
    requeueTimeout: 250   // ms delay for requeue 
};
*/


/*$(function() {
    $('#slideshow').cycle({ 
        fx:     'scrollRight', 
        timeout: 8000, 
        delay:  -2000,
        pause:  1,
		cleartype: $.support.opacity,
		height: 'auto'
    });
});*/




function ieHover() {
	var ieReplace = document.getElementById("navigation").getElementsByTagName("li");
		for (var i=0; i<ieReplace.length; i++) {
			ieReplace[i].onmouseover=function() {
			this.className+=" ieHover";
			}
		ieReplace[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp("ieHover\\b"), "");
		}
	}
}

function trim(str) {
    return str.replace(/^\s+|\s+$/g, "");
}
 
function validateForm(form) {
    var f = form;
    if (trim(f.firstname.value) == "" || trim(f.firstname.value) == "First Name"){
        alert("Please enter your First Name.");
        f.firstname.focus();
        return false;
    }
    if (f.lastname.value == "" || trim(f.lastname.value) == "Last Name") {
        alert("Please enter your Last Name.");
        f.lastname.focus();
        return false;
    }
    if (f.email.value == "" || trim(f.email.value) == "Email") {
        alert("Please enter your Email Address.");
        f.email.focus();
        return false;
    }
    if (f.email.value != ""){
      var email = f.email.value;
	  var regtest = new RegExp('.+@.+\\.[a-z]+');
	  if(!regtest.exec(email)) { //if pattern does not match
		  alert("Please enter a valid Email Address.");
		  f.email.focus();
		  return false;
	  }
    }
	return true;
}
