/*----------------------------------
Author: Francis Ifeanyi Okonkwo
URL:	http://ifeanyionline.com

DPO Website Function Library
------------------------------------*/

/*
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);


jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
	def: 'easeOutQuad',
	swing: function (x, t, b, c, d) {
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
	},
	easeInCubic: function (x, t, b, c, d) {
		return c*(t/=d)*t*t + b;
	},
	easeOutCubic: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t + 1) + b;
	}

});

//Initialize Featured tabs
function feature_tabs(){
	var wrapper = $('#feature-wrapper');
	$('#features #feature-tabs').tabs().tabs('rotate',5000).bind('tabsselect', function(event, ui){		
		wrapper.animate({marginLeft:'-'+(ui.index*520)+'px'},'medium','easeInCubic');
	});
	
	
}

function menu(){
	$('.menu ul a').attr("title", "");
	$('.menu ul li').hoverIntent({
		sensitivity:4,
		interval:150,
		over:function(){$(this).toggleClass('hover');},
		timeout:300,
		out:function(){$(this).toggleClass('hover');}
	});
}

//Initialize News & Events tabs
function news_events_tabs(){
	$('#news-events > ul').tabs();
}

//Set and reset search box values
function searchbox(){
	var s = $('#s');
  var prompt = 'Search...';
  
	if(s.val()==='') s.val(prompt);
  
	s.focus(function(){
    s.css({'color':'#000', 'font-style':'normal'})
    if(s.val()===prompt ) 
      s.val('');
    });
	s.blur(function(){
    s.css({'color':'#999', 'font-style':'italic'});
    if($.trim(s.val())==='') 
      s.val(prompt);
    });	
	$('#searchsubmit').click(function(){
    s.val($.trim(s.val()));
		if( s.val()==='' || s.val()===prompt ) {
			//s.val('').css({'color':'#000', 'font-style':'normal'})
			return false;
		}
		else $('#cse-search-box').submit();
	})
}

//Form Validation
function validateForm(){
	$('#submit').click(function(){
		var valid = true;
		var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
		var n = $('#name').val();
		var e = $('#email').val();
		var s = $('#subject').val();
		var m = $('#message').val();
		var falert = $('#form-alert');
		var msgobj = {'background':'#ffe599'};
		var errobj = {'background':'#ffcccc'};
		
		falert.text('').hide().removeClass('error alert success'); //init
		
		if( n=='' || (n.length < 2) ){
			falert.append('Enter a valid Name. <br />');
			valid=false;
		}
		if( !emailReg.test(e) || e==''){
			falert.append('\n Enter a valid Email <br />');
			valid=false;
		}
		
		if( s=='' || (s.length < 2) ){
			falert.append('\n A subject is required. <br />');
			valid=false;
		}
		
		if( m==''){
			falert.append('\n You cannot send a blank message. <br />');
			valid=false;
		}
		if( m!='' && m.length < 20 ){
			falert.append('\n Please enter a more descriptive message <br/>');
			valid=false;
		}
		
		if(valid){
			falert.addClass('alert').text('Sending...').show();
			$.ajax({
				url: 'http://www.egr.msu.edu/dpo/new/assets/php/email.php',
				type: 'POST',
				data: {name:n, email:e, subject:s, message:m},
				dataType: 'text',
				success: function(status){
							if(status==1){
								falert.addClass('success').text('Your message was sent successfully.');
								setTimeout( function(){ 
												falert.fadeOut('slow');
												$('#name, #email, #subject, #message').val('');
											}, 5000);
							}
							//if mail function fails
							else{
								falert.addClass('error').text('An error occured while sending your message, try again.').show();
								setTimeout( function(){falert.fadeOut('slow')}, 3000);
							}
						},
				error: function(xhr, textStatus, errorThrown){ 
					falert.text('Error sending request, try again').show();
					setTimeout( function(){falert.fadeOut('slow');}, 3000);
					}
			}); //end ajax
			return false;
		}//end if 
		else {
			falert.prepend('<h4>Error:</h4>').addClass('error').show();
			return false;
		}
	});//click
}

//Ready functions
$(function(){
	menu();
	searchbox();
	validateForm();
});
