mycci = {
  common : {
    init     : function(){
    	$("#header form input, #newsletter input").placeholder();
    	//quick links
    	$("#quickLinks").css({'display':'block','top':'-100px'});
    	$("#btnQuickLinks").show().toggle(function(){
    		$("#quickLinks").animate({'top':'0px'});
    		$("#btnQuickLinks").css({'background-position':'0px -54px'});
    	},
    	function(){
    		$("#quickLinks").animate({'top':'-100px'});
    		$("#btnQuickLinks").css({'background-position':'0px 0px'})    		
    	});
    	
    	//menu fixes
    	$("ul#mainNav li").hover(function(){
    		$(this).children("ul.unli").show();
    	},
    	function(){
    		$(this).children("ul.unli").hide();
    	});
    	
    	$("ul#mainNav li ul.unli li:first-child a").css({'padding-top':'0px'});
    	
    	$("ul#mainNav>li>ul.unli").each(function(i){			
    		if(i == 0)
    			$(this).css({'left':"-62px"});
    		else if(i == 1)
    			$(this).css({'left':"-37px"});
    		else if(i == 5)
    			$(this).css({'left':"-24px"});
    		else if(i == 6)
    			$(this).css({'left':"-73px"});
    			
    		var children = $(this).children("li").length;
    		
    		$(this).children("li:nth-child("+(children-1)+")").children("a").css({'border-bottom':'0px','padding-bottom':'0px'});
    	});
    }
  },
  index : {
  	init     : function(){
  		//slider
  		$("#slider").append('<ul id="sliderControls"><li></li><li></li><li></li><li></li><li></li></ul>')
  		$("ul#sliderControls li:first-child").addClass("selected");
  		var c = 1;
  		var t = setInterval(function(){
  			$("ul#sliderControls li").removeClass("selected");
  			$("ul#sliderControls li:eq("+c+")").addClass("selected");
  			offset = c * -642;
   			$("#tray").animate({'left':offset},800);
  			c++;
  			if(c == 5)
  				c = 0; 				
  		},5000);
  		$("ul#sliderControls li").click(function(){
  			clearInterval (t);
  			$("ul#sliderControls li").removeClass("selected");
  			$(this).addClass("selected");
  			var index = $("ul#sliderControls li").index($(this));
  			var offset = index * -642;
  			$("#tray").animate({'left':offset},800);
  		});
  		
  		//slider fixes, for the lovely IE
  		$(".pane").children("p").addClass('imgFrame');
  		$(".pane").children("a").addClass('imgFrame');
  		$(".pane").children("img").addClass('imgFrame');
  		$("a.imgFrame").append('<div class="sliderMask"></div>');
  		
  		//newsletter form
  		$("#newsletter").validate({
  			errorPlacement: function(error, element) {
  				error.appendTo( "#newsletter" );
  			},
  			rules: {
  				nlName: {
  					required:true
  				},
  				nlEmail: {
  					required: true,
  					email: true
  				}
  			},
  			messages: {
  				nlName: "Please enter your name",
  				nlEmail: "Please enter a valid email address"
  			},
  			submitHandler: function(form)
  			{
  				var name = $("#nlName").val();
  				var email = $("#nlEmail").val();		
  					
  				$("#btnSubmitNewsletter").css('background-position','-73px -16px;');
  					
  				$.ajax({
  					type: "POST",
  					url: "inc/newsletter_subscribe.php",
  					data: "nlName="+$("#nlName").val()+"&nlEmail="+$("#nlEmail").val(),
  					success: function(msg){
  						$("#newsletter").html(msg);
  					}
  				});
  				return false;
  			}
  		});
  	}
  },
  'members-directory' : {
  	init     : function(){
//  		$("h1").after('<div id="map"></div>');
//  		
//  		var latlng = new google.maps.LatLng(53.70727505824131, -1.69464111328125);
//  		var myOptions = {draggable:false, scrollwheel:false, zoom: 8,center: latlng,mapTypeId: google.maps.MapTypeId.ROADMAP};
//  		var map = new google.maps.Map(document.getElementById("map"),myOptions);
		if($("#directoryListing #geo").length != 0)
		{
			//scripting for listing page
			if($("div#latitude").html() != 0 && $("div#longitude").html() != 0)
			{
				var latlng = new google.maps.LatLng($("div#latitude").html(), $("div#longitude").html());
				var myOptions = {draggable:false, scrollwheel:false, zoom: 15,center: latlng,mapTypeId: google.maps.MapTypeId.ROADMAP,mapTypeControl:false};
				var map = new google.maps.Map(document.getElementById("map"),myOptions);
				var marker = new google.maps.Marker({
				    map: map, 
				    position: latlng,
				    draggable: false
				});
				
				google.maps.event.addListener(marker, 'click', function() {
					window.open('http://maps.google.co.uk/maps?&hl=en&geocode=&q='+$("div#latitude").html()+',+'+$("div#longitude").html()+'&z=15');
				});
				
			}
		}
		else
		{
			//alert("Main Page");
		}
  	}
  },
  'edit-directory-listing' : {
  	init     : function(){
  		//Style Fixes
  		$("#editDirectoryListing .cms_browse").attr("size", 25);
  		//$("#editDirectoryListing .geo").hide();
  		
  		
  		//map
  		var markers = new Array();
  		var geocoder = new google.maps.Geocoder();
  		var myOptions = {draggable:false, scrollwheel:false, zoom: 17,center: latlng,mapTypeId: google.maps.MapTypeId.ROADMAP};
  		var map = new google.maps.Map(document.getElementById("map"),myOptions);
  		
  		var addy = $(".address1 input").val()+" "+$(".address2 input").val()+" "+$(".address3 input").val()+" "+$(".city input").val()+" "+$(".county input").val()+" "+$(".postcode input").val();
  		
  		if($(".latitude input").val() != '' && $(".longitude input").val() != '')
  		{
  			var latlng = new google.maps.LatLng($(".latitude input").val(), $(".longitude input").val());
  			
  			clearMarkers(); 		
  			map.setCenter(latlng);
		    var marker = new google.maps.Marker({
		        map: map, 
		        position: latlng,
		        draggable: true
		    });    
			google.maps.event.addListener(marker, 'dragend', function(event) {
				$(".latitude input").val(event.latLng.lat());
				$(".longitude input").val(event.latLng.lng());
			});
  			markers.push(marker);
  		}
  		else
  		{
  			geocode(addy);
  		}
  		
  		function geocode(address)
  		{
  			clearMarkers(); 		
	  		geocoder.geocode( { 'address': addy}, function(results, status) {
	  		  if (status == google.maps.GeocoderStatus.OK) {
	  		    map.setCenter(results[0].geometry.location);
	  		    var marker = new google.maps.Marker({
	  		        map: map, 
	  		        position: results[0].geometry.location,
	  		        draggable: true
	  		    });
	  		    
	  		    google.maps.event.addListener(marker, 'dragend', function(event) {
					
	  		    	$(".latitude input").val(event.latLng.lat());
	  		    	$(".longitude input").val(event.latLng.lng());
	  		    });
	  		    
	  		    
	  		    markers.push(marker);
	  		    
	  		    $(".latitude input").val(results[0].geometry.location.lat());
	  		    $(".longitude input").val(results[0].geometry.location.lng());
	  		  } else {
	  		    alert("Geocode was not successful for the following reason: " + status);
	  		  }
	  		});
	  	}
	  	
	  	function clearMarkers(){
	  	  		for(var i=0; i<markers.length; i++){
	  	  			markers[i].setMap(null);
	  	  			markers[i] = null;
	  	  		}
	  	  		markers.length = 0;
	  	  	}
	  	
  		
  		$("#btnGetGeo").click(function(){
  			addy = $(".address1 input").val()+" "+$(".address2 input").val()+" "+$(".address3 input").val()+" "+$(".city input").val()+" "+$(".county input").val()+" "+$(".postcode input").val();
  			geocode(addy);
  			return false;
  		});  		
  	}
  }
}

UTIL = {

	fire : function(func,funcname, args){
		var namespace = mycci;  // indicate your obj literal namespace here
		funcname = (funcname === undefined) ? 'init' : funcname;
		if (func !== '' && namespace[func] && typeof namespace[func][funcname] == 'function'){
			namespace[func][funcname](args);
		} 

	}, 

	loadEvents : function(){
		var bodyId = document.body.id;
		// hit up common first.
		UTIL.fire('common');
		// do all the classes too.
		$.each(document.body.className.split(/\s+/),function(i,classnm){
			UTIL.fire(classnm);
			UTIL.fire(classnm,bodyId);
		});
	}
}; 

$(document).ready(UTIL.loadEvents);

