var $j = jQuery.noConflict();


$j(document).ready(function() {
	
	// Accordion
	$j("dl.accordion dd").addClass("hide");
	//$j("dl.accordion dd:not(:first)").slideUp('slow');

	$j('dl.accordion > dt').click(function() {
		$j(this).removeClass('active');
		$j('dl.accordion > dd').fadeOut(300).removeClass('active');
		$j(this).next('dd').fadeIn(500);
		
		/*
		$j(this).next('dd').fadeIn(500, function() {
				$j(this).siblings("dd:visible").fadeOut(300).removeClass('active');	
		});

		$j(this).toggleClass("active");
		$j(this).next('dd').toggleClass("active");
		$j(this).siblings("dt").removeClass("active");
		*/
	});


	// form input / textarea focus/blur behaviour
	$j('input').focus(function() {
		$j(this).addClass('active');
	}).blur(function() {
		$j(this).removeClass('active');
	});
	
	$j('textarea').focus(function() {
		$j(this).addClass('active');
	}).blur(function() {
		$j(this).removeClass('active');
	});	


});




/*  -----------------------------------------------------------------------
    Validation ------------------------------------------------------------ */

    function checkEmail(to_check) {
	    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,5})+$/.test(to_check)){
	        return true;
		}
    };

    function checkPhone(to_check) {
	    return to_check.match(/^((1)?(\s)?(\+)?(\s)?(\()?\d{3}(\))?\s?-?\d{3}\s?-?\d{4}((\s)+(ext|x|extension|#)?(\s)?(\d)+)?)?$/i);
    };
	

/*  -----------------------------------------------------------------------
    Submit Form ----------------------------------------------------------- */
    
    function checkFields(objForm){
        var error = 0;
        $j(".mandatory", objForm).each( function(){
            if(!$j(this).val()){	error++; $j("label[@for=" + this.id + "]").addClass("error"); }
            else{ $j("label[@for=" + this.id + "]").removeClass("error"); }	
		});
		$j(".mandatory.v_email", objForm).each( function(){
            if(!checkEmail($j(this).val())){	error++; $j("label[@for=" + this.id + "]").addClass("error"); }
            else{ $j("label[@for=" + this.id + "]").removeClass("error"); }	
		});

		$j(".mandatory.v_phone", objForm).each( function(){
            if(!$j(this).val() || !checkPhone($j(this).val())){	error++; $j("label[@for=" + this.id + "]").addClass("error"); }
            else{ $j("label[@for=" + this.id + "]").removeClass("error"); }	
		});
		
		$j(".v_optionalPhone", objForm).each( function(){
            if(!checkPhone($j(this).val())){	error++; $j("label[@for=" + this.id + "]").addClass("error"); }
            else{ $j("label[@for=" + this.id + "]").removeClass("error"); }	
		});

		if (error == 0)
		    return true;
		else
		    return false;
    };
	
	
    function submitForm(objForm){
        if(checkFields(objForm))
		   $j(objForm).submit(); 
		
		return false;
	};
	
/*  -----------------------------------------------------------------------
    Twitterm -------------------------------------------------------------- */
	
(function($) {

	$.fn.getTwitter = function(options) {
		var o = $.extend({}, $.fn.getTwitter.defaults, options);
	
		// hide container element
		$(this).hide();
	
		// add heading to container element
		if (o.showHeading) {
			$(this).append('<h2>'+o.headingText+'</h2>');
		}

		// add twitter list to container element
		$(this).append('<ul id="twitter_update_list"><li></li></ul>');

		// hide twitter list
		$("ul#twitter_update_list").hide();

		// add preLoader to container element
		var pl = $('<p id="'+o.preloaderId+'">'+o.loaderText+'</p>');
		$(this).append(pl);

		// add Twitter profile link to container element
		if (o.showProfileLink) {
			$(this).append('<a id="profileLink" href="http://twitter.com/'+o.userName+'">http://twitter.com/'+o.userName+'</a>');
		}

		// show container element
		$(this).show();
	
		$.getScript("http://twitter.com/javascripts/blogger.js");
		$.getScript("http://twitter.com/statuses/user_timeline/"+o.userName+".json?callback=twitterCallback2&count="+o.numTweets, function() {
			// remove preLoader from container element
			$(pl).remove();

			// show twitter list
			if (o.slideIn) {
				$("ul#twitter_update_list").slideDown(1000);
			}
			else {
				$("ul#twitter_update_list").show();
			}

			// give first list item a special class
			$("ul#twitter_update_list li:first").addClass("firstTweet");

			// give last list item a special class
			$("ul#twitter_update_list li:last").addClass("lastTweet");
		});
	};

	// plugin defaults
	$.fn.getTwitter.defaults = {
		userName: null,
		numTweets: 5,
		preloaderId: "preloader",
		loaderText: "Loading tweets...",
		slideIn: false,
		showHeading: true,
		headingText: "Latest Tweets",
		showProfileLink: true
	};
})(jQuery);	
    

/*	jquery fader plugin 
	jonathan derouchie 2009
	----------------------------------------	*/
	
	(function($){
		$j.fn.fader = function(options){
	
			return this.each(function() {
				var $this = $(this), 
				defaults = {
					fade_in: 0, 
					fade_out: 0, 
					fade_time: 2500
				},
				settings = $.extend({}, defaults, options);
				
				setInterval(function() {
					if(($this).children(':visible').is(':last-child')) {
						$this.children(':visible').fadeOut(settings.fade_out,function() {
							$this.children(':first').fadeIn(settings.fade_in);});
					} else {
						$this.children(':visible').fadeOut(settings.fade_out,function() { 
							$(this).next().fadeIn(settings.fade_in); });
					}
				}, settings.fade_time);
			});
		};
	})(jQuery);
