﻿/*
Watermarks

This does the watermarking for input boxes, use the watermark class on
labels, watermarkJS is added so you can position the label over the input
*/

$(function(){

	$('label.watermark').addClass("watermarkJS");
	$('label.watermark').each(function(index,label){
	    eleInput = $('#'+$(label).attr("for"))[0];
	    
	    if(eleInput.value != "")
	    {
	        $(label).hide();
	    }
	    
	    $(eleInput).blur(function(){
	        eleInput = $('#'+$(label).attr("for"))[0];
	        if(eleInput.value == "")
	        {
	            $(label).show();
	        }
	    });
	    $(eleInput).focus(function(){
	        eleInput = $('#'+$(label).attr("for"))[0];
	        $(label).hide();
	    });
	    
	});
	
	
	
	if($('#sectionId_99').length > 0)
	{
		// add letter as class because IE dies trying to run a contains selector query each time
		$('#sectionId_99 .contact')
		.sortElements (function(a,b){
			nameA = $('.name',a).text().replace(/\s$/,'');
			nameA = nameA.substring(nameA.lastIndexOf(' ')+1);
			nameB = $('.name',b).text().replace(/\s$/,'');
			nameB = nameB.substring(nameB.lastIndexOf(' ')+1);
			if(nameA==nameB)
				return 0;
			else if(nameA<nameB)
				return -1;
			else
				return 1;
		})
		.each(function(i,el){
			name = $('.name',this).text().replace(/\s$/,'');
			letter = name.substr(name.lastIndexOf(' ')+1,1);
			$(el).addClass("startsWith"+letter)
		});
		
		nav = '<div class="alphanav">';
		for(c=65;c<91;c++)
		{
			letter = String.fromCharCode(c);
			nav +='<a href="#letter'+letter+'">'+letter+'</a>';
		}
		nav +='</div>';
		for(c=65;c<91;c++)
		{
			letter = String.fromCharCode(c);
			
			div = $('<div class="letterPage" id="letter'+letter+'">'+nav.replace('">'+letter,'" class="current">'+letter)+'</div>');
			div
				.append($('#sectionId_99 .startsWith'+letter))
				.append('<div class="clear"></div>')
			
			$('#sectionId_99 .moduleInnerContent').append(div);
			
		}
		
		$('.letterPage').each(function(i,el){
			if($('.contact',el).length==0)
			{
				$('.alphanav a[href=#'+$(el).attr('id')+']').addClass("empty");
			}
		});
		
		$('.letterPage').hide();
		$('#letterA').show();
		$('.alphanav a').click(function(){
			$('.letterPage').hide();
			href = $(this).attr("href");
			href = href.substring(href.indexOf('#'));
			$(href).show();
			return false;
		});
	}
		
	
	
	$('.IntroImages ul').cycle({ 
		fx:     'fade', 
		speed:   1000, 
		pause:   6000 
	});	

	$('ul.caseImages').cycle({ 
		fx:     'fade', 
		speed:   1000, 
		pause:   6000 
	});	

	$('.HomeLinks ul').hide();
	/*
	$('.HomeLinks h3').click(function(){
		$('.HomeLinks ul').slideToggle();
		});
	*/

	$('.HomeLinks').hover(
	 function(){
		 $('.HomeLinks ul').slideDown();
		 }
		 ,
	 function(){
		 $('.HomeLinks ul').slideUp();
		 }
	);
	
	$('.Mob').each(function(i,ele){
		if($(ele).text()=="M: ")
			$(ele).hide();
	});
	
});




jQuery.fn.sortElements = (function(){
 
    var sort = [].sort;
 
    return function(comparator, getSortable) {
 
        getSortable = getSortable || function(){return this;};
 
        var placements = this.map(function(){
 
            var sortElement = getSortable.call(this),
                parentNode = sortElement.parentNode,
 
                // Since the element itself will change position, we have
                // to have some way of storing its original position in
                // the DOM. The easiest way is to have a 'flag' node:
                nextSibling = parentNode.insertBefore(
                    document.createTextNode(''),
                    sortElement.nextSibling
                );
 
            return function() {
 
                if (parentNode === this) {
                    throw new Error(
                        "You can't sort elements if any one is a descendant of another."
                    );
                }
 
                // Insert before flag:
                parentNode.insertBefore(this, nextSibling);
                // Remove flag:
                parentNode.removeChild(nextSibling);
 
            };
 
        });
 
        return sort.call(this, comparator).each(function(i){
            placements[i].call(getSortable.call(this));
        });
 
    };
 
})();






