/****************************************/
/* jQuery Custom Select Plugin			*/
/* 										*/
/* Author: 	David Dexter				*/
/* Version: 0.01						*/
/* Date: 	12/28/2006					*/
/* Email: 	blemming [at] gmail.com	 	*/
/* 										*/
/****************************************/

jQuery.fn.customSelect = function(){
	CS = jQuery('#'+jQuery(this).id());
	init();
}

CS = 			new Object();
CS_bodyClick 	= Array();
CS_option 		= '';

function init(obj) {
    var val = '';
	var sel = 	'';
	// CREATE THE HTML FOR THE NEW "SELECT BOX" 
		var tmp = 	'	<table border=0 cellpadding="0" cellspacing="0">'+
					'		<tr>'+
					'			<td>'+
					'				<div class="CS_select" id="CS_'+CS.id()+'">'+
					'					<a id="curr_'+CS.id()+'" class="CS_current" onClick="CS_toggle(this.parentNode);event.cancelBubble=true;">'+
					'					<table cellpadding=2 cellspacing=0><tr><td height="33" width="3"></td><td width="37"><img src="images/icon0.png" /></td><td>Select Format</td></tr></table></a>'+
					'					<div class="CS_hidden">';
	// LOOP THROUGH ALL OF THE NESTED DIV TAGS TO 
	// CREATE THE FAUX OPTION TAGS
		var i = 0;
		jQuery('#' + CS.id() + ' div').each(function() {
		    // STORE THE FIRST VALUE TO PUT IN THE 
		    // HIDDEN TEXT FIELD FOR THE CUSTOM SELECT BOX
		    if (i == 0) {
		        
		        val = jQuery(this).attr('val');
		        i++;
		    }

		    // SET AN ATTRIBUT OF "SEL" = TRUE IN ORDER 
		    // TO DEFAULT TO A GIVEN OPTION
		    if (jQuery(this).attr('sel') == 'true') {
		        sel = jQuery(this).html();
		        sel_val = jQuery(this).attr('val');
		    }
		    // CREATE OPTIONS
		    tmp += '<a vl="' + jQuery(this).attr('val') + '" href="#" class="choice_' + CS.id() + '">' + jQuery(this).html() + '</a>';
		});
	    
		tmp +=		'					</div>'+
					'					<input type="hidden" value="'+val+'" name="'+CS.id()+'" id="val_'+CS.id()+'">'+
					'				</div></td>'+
					'		</tr>'+
					'	</table>';
	// REPLACE THE EXISTING DIVS WITH THE NEW 
	// CUSTOM SELECT BOX
		CS.html(tmp);

	// IF THERE IS A DEFAULT OPTION SELECT IT NOW
		if(sel != ''){
			jQuery('#curr_'+CS.id()).html(sel);
			jQuery('#val_'+CS.id()).val(sel_val);
		}
	
	// CREATE THE ON CLICK EVENTS FOR THE CUSTOM OPTION TAGS
		CS_select(CS.id());
	
	// CREATE THE EVENT THAT CLOSES ANY OPEN BOXES WHEN THE BODY IS CLICKED
		CS_bodyOnclick(CS_close); 
}

// TOGGLE THE SELECT BOX OPEN OR CLOSED
	function CS_toggle(obj){
		if(CS_option != ''){
			jQuery('#'+CS_option).next().addClass('CS_hidden');
			CS_option = '';
		}
		var h = jQuery('#'+obj.id).find('div');
		choices = h.attr("class");
		if (choices == 'CS_hidden'){
			CS_option = obj.id;
			CS_close(); 
			h.addClass('CS_options');
		}else{
			h.removeClass('CS_options');
			CS_option = '';
		}
	}

// CREATE THE ON CLICK FOR THE OPTIONS 
	function CS_select(obj){
		jQuery('.choice_'+obj).click(function(){
								jQuery('#val_'+obj).val(jQuery(this).attr("vl"));
								jQuery('#curr_'+obj).html(jQuery(this).html());
								//alert('id = ' + hiddenControl + ' value=' + jQuery(this).attr("vl"));
								//document.getElementById(hiddenControl).value = jQuery(this).attr("vl");
								$("#<%= formatSelectBtn.ClientID %>").val = jQuery(this).attr("vl");
								
								theForm.submit();
							});
	}

// CLOSE ALL OPEN CUSTOM SELECT BOXES
	function CS_close(){
		jQuery('div').removeClass('CS_options');
	}
	function CS_bodyOnclick(fnc){
		document.onclick = CS_bodyOnClick;
		CS_bodyClick[CS_bodyClick.length] = fnc;
	}
	function CS_bodyOnClick(){
		for (var i=0;i<CS_bodyClick.length;i++){
			CS_bodyClick[i]();
		}
	}

