(function($) {	
	$.fn.ddmenu = function(settings) {
		settings = jQuery.extend({
					height: 80,
					lineheight:17
				}, settings);
		
    return this.each(function(i){
			var source = this;
			var selected = $( this ).find("option[selected]");
			var options = $("option", source);
			$(this).hide();
			var width = $(this).width() + 10;
			var newName = this.id+'_new';
			$(this).after('<dl id="'+newName+'" class="dropdown '+newName+'" style=" width:' + width + 'px;" ></dl>')
			$("#" + newName).append('<dt><a  href="#" style="display:block; overflow:hidden; height:'+settings.lineheight+'px; width:'+width+';">' + selected.text() + 
				'<span class="value" >' + selected.val() + 
				'</span></a></dt>')
			$("#" + newName).append('<dd><div class="rudra"><div class="menu_scroller" id="menu_scroller_'+i+'" style="height: '+settings.height+'px;"><ul></ul></div></div></dd>')
			var str='';

			options.each(function(){
				str+='<li <subCat db_id="" ><a title = "'+$(this).text()+'" href="#" <subCat db_id=""  style="display:block; overflow:hidden; height:'+settings.lineheight+'px;  width:'+width+';">' + 
						$(this).text() + '<span class="value" >' + 
						$(this).val() + '</span></a></li>';
			});
			
		
		
			$("#"+newName+" dd").css("z-index","2");
			
			//$("#"+newName+" dd div ").css("display","none");

			$("#"+newName+" dd .rudra ul").css("width",(width-2 )+"px");
			$("#"+newName+" dd .rudra ul").append(str);
			
			$("#"+newName+" dt a").click(function() {
				$(".dropdown dd .rudra").hide();
				$("#"+newName+" dd .rudra ").show();
				
			});
			
			$("#"+newName+" dd .rudra ul li a").click(function() {
				var text = $(this).html();
				$("#"+newName+" dd .rudra").toggle();
				$("#"+newName+" dt a").html(text);
				
				$("#" + source.id + " option[value=" +  $("#"+newName+" dt a span").text() + "]").attr("selected",true);
				
				//return ("#"+newName+" dt a span").text();
				$(source).change();
			});
			
	   		$(document).bind('click', function(e) {
                var $clicked = $(e.target);
                if (!$clicked.parents().hasClass("#"+newName))
                    $("#"+newName+" dd .rudra").hide();
            });
				$('#menu_scroller_'+i).jScrollPane({scrollbarWidth: 6, scrollbarMargin:0});
				$("#"+newName+" dd .rudra").hide();
				
		
	 
    });};
	
	$.fn.prettyCheckboxes = function(settings) {
		settings = jQuery.extend({
					checkboxWidth: 13,
					checkboxHeight: 13,
					className : 'prettyCheckbox',
					theme : 'dark',
					display: 'list'
				}, settings);

		$(this).each(function(){
			// Find the label
			$label = $('label[for="'+$(this).attr('id')+'"]');

			// Add the checkbox holder to the label
			$label.prepend("<span class='holderWrap'><span class='holder'></span></span>");

			// If the checkbox is checked, display it as checked
			if($(this).is(':checked')) { $label.addClass('checked'); };

			// Assign the class on the label
			$label.addClass(settings.className).addClass($(this).attr('type')+ '_' +settings.theme).addClass(settings.display);

			// Assign the dimensions to the checkbox display
			$label.find('span.holderWrap').width(settings.checkboxWidth).height(settings.checkboxHeight);
			$label.find('span.holder').width(settings.checkboxWidth);

			// Hide the checkbox
			$(this).addClass('hiddenCheckbox');

			// Associate the click event
			$label.bind('click',function(){
				$('input#' + $(this).attr('for')).triggerHandler('click');
				
				if($('input#' + $(this).attr('for')).is(':checkbox')){
					$(this).toggleClass('checked');
					$('input#' + $(this).attr('for')).checked = true;
					
					$(this).find('span.holder').css('top',0);
				}else{
					$toCheck = $('input#' + $(this).attr('for'));

					// Uncheck all radio
					$('input[name="'+$toCheck.attr('name')+'"]').each(function(){
						$('label[for="' + $(this).attr('id')+'"]').removeClass('checked');	
					});

					$(this).addClass('checked');
					$toCheck.checked = true;
				};
			});
			
			$('input#' + $label.attr('for')).bind('keypress',function(e){
				if(e.keyCode == 32){
					if($.browser.msie){
						$('label[for="'+$(this).attr('id')+'"]').toggleClass("checked");
					}else{
						$(this).trigger('click');
					}
					return false;
				};
			});
		});
	};
	
	$.fn.customUpload = function(settings) {
		settings = jQuery.extend({
					title: 'Browse',
					width: 120,
					height: 15,
					className : ''
				}, settings);

		$(this).each(function(){
			var uploadbox = this;
			
			var ctrlID 		= $(uploadbox).attr('id');
			var IDname      = "t_"+ctrlID;
			var ctrlTop		= $(uploadbox).offset().top;		//to get the top position...
			var ctrlLeft	= $(uploadbox).offset().left;		//to get the top position
			
			var topPadding = '';
			var botPadding = '';
			
			$(uploadbox).wrap("<div class='"+settings.className+"' style='width:"+settings.width+"px; height:"+settings.height+"px; overflow:hidden; background-color:transparent;'></div>");
			
			topPadding = $(uploadbox).parent().css('padding-top');
			leftPadding = $(uploadbox).parent().css('padding-left');			
			color = $(uploadbox).parent().css('color');
			$(uploadbox).parent().css({'padding-top':'0px'});
			$(uploadbox).parent().css({'padding-left':'0px'});
			
			
			$(uploadbox).css('opacity',0.0)
				
			$(uploadbox).parent().append("<div id='"+IDname+"' style='z-index:-1;  margin-top:-25px; width:"+settings.width+"px; height:"+settings.height+"px; overflow:hidden; padding-top:"+topPadding+"; padding-left:"+leftPadding+"; color:"+color+" ' >"+settings.title+"</div>");
			$(uploadbox).bind("change", hide_browse_change_func);		//end of bind...
						  
			});
	};
	
})(jQuery);

var hide_browse_change_func = function() {

	var ctrlID 		= $(this).attr('id');
	var ctrlValue 	= $(this).val();
	var IDname = "t_"+ctrlID;
	$("#"+IDname).html(ctrlValue);

	};
	
checkAllCustomCheckbox = function(caller, container){
	
	if($(caller).is(':checked')){
		// Find the label corresponding to each checkbox and click it
		$(container).find('input[type=checkbox]:not(:checked)').each(function(){
			$('label[for="'+$(this).attr('id')+'"]').trigger('click');
			if($.browser.msie){
				$(this).attr('checked','checked');
			}else{
				$(this).trigger('click');
			};
		});
	}else{
		$(container).find('input[type=checkbox]:checked').each(function(){
			$('label[for="'+$(this).attr('id')+'"]').trigger('click');
			if($.browser.msie){
				$(this).attr('checked','');
			}else{
				$(this).trigger('click');
			};
		});
	};
};