// initialize rounded boxes and text replacement
$(document).ready(function(){
	roundedBoxes();
	checkboxReplacement();
	modalLayout();
	// devBar();

	// .log debug utility
	jQuery.fn.log = function (msg) {
		console.log("%s: %o", msg, this);
		return this;
	  };

});

Cufon.replace('.cufon');
var ord = Math.random()*10000000000000000;


function getCurrentPage() {
	var parts = document.location.pathname.split('/');
	var page = parts[parts.length-1] || 'index.html';
	return page;
}

function roundedBoxes() {
	$('.rounded').wrapInner('<div class="r-content"></div>').append('<div class="r-b"><div></div></div>');
	$('.r-content').prepend('<div class="r-t"></div>')
};

function modalLayout() {
	$('.modal').wrapInner('<div class="m-content"></div>').append('<div class="m-b"><div></div></div>');
	$('.m-content').prepend('<div class="m-t"></div>')
};

function devBar() {
	$('body').append('<ul id="devnav"><li><a href="/index.html">Landing</a></li><li><a href="/signup.html">Registration</a></li><li><a href="/select-categories.html">Categories</a></li><li><a href="/select-locations.html">Locations</a></li><li><a href="/select-alerts.html">Alerts</a></li><li><a href="/my-insider.html">My Insider</a></li><li><a href="/edit-profile.html">Edit Profile</a></li><li><a href="/unsubscribe.html">Unsubscribe</a></li></ul>');
};

function checkboxReplacement() {
	 $('input[type=checkbox]').checkbox({
		cls:'checkbox',
		empty: '/images/global/empty.gif'});
};

function selectboxReplacement() {
//	$("select.select").styleSelect();
}

function centerMultilineCategories() {
	$('ul.tabs li a span').each(function(){
		var adjust_height = parseInt($(this).height());
		if (adjust_height > 25){
			$(this).css("margin-top","-15px");
		}
	});
}
// jQuery checkbox replacement | http://code.google.com/p/jquery-checkbox/
(function($){var i=function(e){if(!e)var e=window.event;e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation()};$.fn.checkbox=function(f){try{document.execCommand('BackgroundImageCache',false,true)}catch(e){}var g={cls:'jquery-checkbox',empty:'empty.png'};g=$.extend(g,f||{});var h=function(a){var b=a.checked;var c=a.disabled;var d=$(a);if(a.stateInterval)clearInterval(a.stateInterval);a.stateInterval=setInterval(function(){if(a.disabled!=c)d.trigger((c=!!a.disabled)?'disable':'enable');if(a.checked!=b)d.trigger((b=!!a.checked)?'check':'uncheck')},10);return d};return this.each(function(){var a=this;var b=h(a);if(a.wrapper)a.wrapper.remove();a.wrapper=$('<span class="'+g.cls+'"><span class="mark"><img src="'+g.empty+'" /></span></span>');a.wrapperInner=a.wrapper.children('span:eq(0)');a.wrapper.hover(function(e){a.wrapperInner.addClass(g.cls+'-hover');i(e)},function(e){a.wrapperInner.removeClass(g.cls+'-hover');i(e)});b.css({position:'absolute',zIndex:-1,visibility:'hidden'}).after(a.wrapper);var c=false;if(b.attr('id')){c=$('label[for='+b.attr('id')+']');if(!c.length)c=false}if(!c){c=b.closest?b.closest('label'):b.parents('label:eq(0)');if(!c.length)c=false}if(c){c.hover(function(e){a.wrapper.trigger('mouseover',[e])},function(e){a.wrapper.trigger('mouseout',[e])});c.click(function(e){b.trigger('click',[e]);i(e);return false})}a.wrapper.click(function(e){b.trigger('click',[e]);i(e);return false});b.click(function(e){i(e)});b.bind('disable',function(){a.wrapperInner.addClass(g.cls+'-disabled')}).bind('enable',function(){a.wrapperInner.removeClass(g.cls+'-disabled')});b.bind('check',function(){a.wrapper.addClass(g.cls+'-checked')}).bind('uncheck',function(){a.wrapper.removeClass(g.cls+'-checked')});$('img',a.wrapper).bind('dragstart',function(){return false}).bind('mousedown',function(){return false});if(window.getSelection)a.wrapper.css('MozUserSelect','none');if(a.checked)a.wrapper.addClass(g.cls+'-checked');if(a.disabled)a.wrapperInner.addClass(g.cls+'-disabled')})}})(jQuery);

function getSWF(movieName) {
	if (navigator.appName.indexOf("Microsoft") != -1) {
		return window[movieName];
	} else {
		return document[movieName];
	}
}

// global setting for jQuery cloneEach plugin
// removes the CSS class 'template' from elements created with cloneEach()
$.cloneEach.settings.removeClass = 'template';

// jQuery selectbox replacement | http://plugins.jquery.com/project/sexycombo
// minified version resulted in errors, so using unminified version for now
(function($){

	$.fn.styleSelect = function(options){
		
		var tabindex = 1;
		
		var opts = $.extend({}, $.fn.styleSelect.defaults , options);
		
		//set tabindex		
		$('input,select,textarea,button').each(function() {
			
			var input = $(this);
				
			if (!input.attr('tabindex')){
				
				input.attr('tabindex', tabindex);
				tabindex++;
				
			} 
		});
		
		return this.each(function(){
	
			mainSelect = $(this);
			var mainId = mainSelect.attr('name');
			
			var styledTabIndex = mainSelect.attr('tabindex');
			
			var date = new Date;
			var selectId = 'selectbox_'+mainId+date.getTime();
			
			//Hidde select box
			mainSelect.hide();
	
			//Main container 
			var mainContainer = $('<div tabindex="'+styledTabIndex+'"></div>').css({position : 'relative'})
					.addClass(opts.styleClass)
					.attr('id', selectId)
					.insertBefore(mainSelect);
			
			//Options container
			var subContainer = $('<ul></ul>').css({'position' : 'absolute', 'z-index' : '100', 'top' : opts.optionsTop, 'left' : opts.optionsLeft})
					.appendTo($(mainContainer))
					.hide();
				
			//Generate options list
			var optionsList = "";
			
			mainSelect.find('option').each(function(){
			
				optionsList += '<li id="'+$(this).val()+'"';
				if($(this).attr('class')) optionsList += ' class="'+$(this).attr('class')+'" ';
				optionsList += '>';
				optionsList += '<span style="display: block;"';
				if ($(this).attr('selected')) optionsList += ' class="selected" ';
				optionsList += '>';
				optionsList += $(this).text();
				optionsList += '</span>';
				optionsList += '</li>';
				
			});

				subContainer.append(optionsList);
				
				checkSelected(opts.styleClass,opts.optionsWidth);
				
			//Show otions
			$('#'+selectId).click(function(){
				$(this).find('ul').slideToggle(opts.speed);
			});
			
			//On click
			$('#'+selectId+' li').click(function(){
				
				doSelection($(this));

			});
			
			//Keyboard support
			$('#'+selectId).keydown(function(event){
				
				var active = $(this).find('.selected').parent();
				
				if (event.keyCode == 40 || event.keyCode == 39 ){ doSelection(active.next()); }
				if (event.keyCode == 37 || event.keyCode == 38 ){ doSelection(active.prev()); }
				
				if (event.keyCode == 13 || event.keyCode == 0){ $(this).find('ul').slideToggle(opts.speed); }
				if (event.keyCode == 9){ $(this).find('ul').hide(opts.speed); }
				
			});
			
			//Do selection
			var doSelection = function(item){
				
				item.siblings().find("span").removeClass('selected');
				item.find("span").addClass('selected');
		
				var selectedItem = item.attr('id');

				var realSelector = $('select[name="'+mainId+'"]');
				realSelector.siblings().selected = false;
				realSelector.find('option[value="'+selectedItem+'"]').attr('selected','selected');
				realSelector.trigger(opts.selectTrigger);
		
				checkSelected(opts.styleClass,opts.optionsWidth);
			
			}
			
			$('#'+selectId).click(function(e) {
				e.stopPropagation();
			});
			
			$(document).click(function() {
				$('#'+selectId+' ul').hide();
			});
			
			});	
		}
		
		//Selected items check
		function checkSelected(mainClass,mainWidth){
				
				$('.'+mainClass).each(function(){
				
					var elementList = $(this).find('ul');
					
					$(this).find('span').each(function(){
					
						var spanClass = $(this).attr("class");
						if (spanClass == "passiveSelect" || spanClass == "activeSelect") $(this).remove();
					
					});
					
					var selectedName = $(this).find('.selected');
					
					$('<span></span>').text(selectedName.text())
							.attr('id', selectedName.parent().attr('id'))
							.addClass('passiveSelect')
							.appendTo($(this));
					
					if (mainWidth === 0){
						$(this).css({'width' :  elementList.width()});
					}
					
				});
				
				$('.'+mainClass+' span').each(function(){
					if ($(this).attr('id')){
						$(this).removeClass();
						$(this).addClass('activeSelect');
					}
				});
		}	
	
		$.fn.styleSelect.defaults = {
		
			optionsTop: '26px',
			optionsLeft: '0px',
			optionsWidth: 0,
			styleClass: 'selectMenu',
			speed: 0,
			selectTrigger: 'change'
			
		};
	
})(jQuery);

