/****
 *
 * jQuery.selectMacStyle
 * Copyright (c) 2007-2008 Louis-René Haché - lrhache (at) hotmail (dot) com
 * Dual licensed under MIT and GPL.
 * Date: 20/12/2009
 *
 * @projectDescription Change traditonnal select box to a custom one ( mac style )
 * [url]
 * Tested with jQuery 1.2.6. On FF 3, IE 6/7, Opera 9.63 and Safari 3. on Windows.
 *
 * @author Louis-René Haché
 * @version 1.0
 *
 ****
 */

(function($){var int=0;var cSIE=false;jQuery.each(jQuery.browser,function(i,val){if(i=="msie"&&val){cSIE=true;}});
																jQuery.fn.selectMacStyle=function(options,data)
{
	var opts=jQuery.extend({},jQuery.fn.selectMacStyle.defaults.public,options);
	var private=jQuery.extend({},jQuery.fn.selectMacStyle.defaults.private);this.each(function(){
	var $obj=jQuery(this);
	var $defaultvalue=(opts.language!="")?opts.defaultString[opts.language]:opts.defaultString["en"];

/* hack ie6 for drummondville marine */
if((cSIE && jQuery.browser.version <7) || (navigator.appVersion.indexOf("Mac")!=-1) ){
function onchange(){opts.onChange(this.value);};
	
	var $select = jQuery("<select></select>");
	jQuery("<option>"+$defaultvalue+"</option>").appendTo($select);
		$select.css({width:parseInt(opts.width)+"px"});
		$select.appendTo($obj);
	$obj.find("ul li").each(function(i,v){
							jQuery("<option value='"+$(v).attr("id")+"'>"+$(v).html()+"</option>").appendTo($select);		 
									 	});
		$obj.find("ul").remove();
		$select.change(onchange);
		$select.val(opts.selected);
	return;}
																																						
																																										var $objname="selectMacStyle_"+int;var $hoverout=function(){$clear();timeout=setTimeout(function(){$hoverdiv.css({backgroundPosition:"right 0px"});$obj2.hide();resetul();},300);};var $hoverdown=function(set){if($obj2.css("display")=="none"&&!set){$obj2.show();}$hoverdiv.css({backgroundPosition:"right -18px"});};var $clear=function(){clearTimeout(timeout);timeout=setTimeout(function(){},10000000);};var backgroundImage=opts.imagePath+((opts.allowTransparency)?private.backgoundImageTrans:private.backgoundImage);var defStyle={height:private.height,width:opts.width,position:"absolute",top:0,left:0,background:"url("+backgroundImage+") no-repeat",overflow:"hidden"};var $opvalue=jQuery("<div />");var $hoverdiv=jQuery("<div />");var $obj2=jQuery("<div />");$obj2.css({overflow:"hidden",position:"absolute",top:"18px",left:"2px",minWidth:parseInt(opts.width)-5+"px",border:opts.style.Border,zIndex:1000-int});
																																																																																																																																																																																																																																																																												
																																																																																																																																																																																																																																																																													 
																																																																																																																																																																																																																																																																												 var $inputname=(opts.elementName=="")?$objname:"input_"+opts.elementName;var $input=jQuery("<input type='hidden' value='"+opts.selected+"' id='"+$inputname+"' name='"+$inputname+"'/>");$input.prependTo($obj);var timeout=setTimeout(function(){$hoverdiv.css({backgroundPosition:"right 0px"});$obj2.hide();},50);var resetul=function(){};if(!data||data==""){var $ul=$obj.find("ul");$ul.wrap($obj2);$obj2=$ul.parent();}else{var $ul=jQuery("<ul />");$ul.appendTo($obj2);jQuery.each(data,function(id,value){jQuery("<li />").appendTo($ul).attr({id:id}).html(value);});$obj.append($obj2);}
$ul.css({position:"absolute",top:"0",left:"0px",minWidth:parseInt(opts.width)-5+"px",listStyle:"none",margin:0,padding:0,background:opts.style.BgColor}).mouseover(function(){$clear();$hoverdown();}).mouseout($hoverout);if(opts.showDefault&&$defaultvalue&&$defaultvalue!=""){jQuery("<li />").prependTo($ul).attr({id:""}).css({fontWeight:"bold"}).html($defaultvalue);}
$ul.find("li").css({padding:"3px",paddingTop:((cSIE)?"0px":"3px"),margin:0,cursor:"pointer",fontSize:"11px",whiteSpace:"nowrap",background:opts.style.BgColor,color:opts.style.FontColor}).mouseover(function(){$clear();$obj2.show();jQuery(this).css({background:opts.style.hoverBgColor,color:opts.style.hoverFontColor}).find("a").css({color:opts.style.hoverFontColor});$hoverdown();}).mouseout(function(){$hoverout();jQuery(this).css({background:opts.style.BgColor,color:opts.style.FontColor}).find("a").css({color:opts.style.FontColor});}).click(function(){$hoverout();$opvalue.html(jQuery(this).html());$input.attr({value:jQuery(this).attr("id")});opts.onChange(jQuery(this).attr("id"));});$ul.find("li a").css({fontSize:"11px",whiteSpace:"nowrap",color:opts.style.FontColor,textDecoration:"none"}).attr({href:"javascript:;",onclick:"return false"});var $ulheight=$ul.outerHeight();var $maxheight=parseInt(opts.maxHeight);var $offset=$maxheight-$ulheight;var $liheight=$ul.find("li:first").outerHeight()-10;var interval=setInterval(function(){},1000000);$obj2.css({height:$ulheight+1+"px"}).hide();var $scroll=function(e)
{};var $scrollUp=function()
{var $pos=$ul.position();if($pos.top<0){$ul.css({top:$pos.top+$liheight+"px"});$moveScrollArrow($pos.top,1);}};var $scrollDown=function()
{};var $moveScrollArrow=function(top,pos)
{var post=top*pos*(($maxheight-$scrollheight-$dbarrowheight)/$ulheight);$scrollTheScroll.css({top:post+"px"});};var $scrollcontent=function(top)
{$scrollTheScroll.css({top:top+"px"});$ul.css({top:(($maxheight-$ulheight)*(top/$maxY))+"px"});};if($ulheight>$maxheight)
{resetul=function(){$ul.css({top:0});$scrollTheScroll.css({top:0});};$obj2.css({height:opts.maxHeight,minWidth:parseInt(opts.width)+6+"px"});var $scrollContainer=jQuery("<div />");$scrollContainer.appendTo($obj2).css({width:"11px",height:opts.maxHeight,position:"absolute",top:0,right:0,background:"transparent url("+opts.imagePath+private.backgroundScroll+") repeat-y -55px top"});jQuery("<div />").appendTo($scrollContainer).css({width:"11px",height:"16px",position:"absolute",top:0,right:0,background:"transparent url("+opts.imagePath+private.backgroundScroll+") no-repeat left top"}).click($scrollUp).mousedown(function(){$interval=setInterval($scrollUp,200);}).mouseup(function(){clearInterval($interval);}).mouseover($clear).mouseout($hoverout);jQuery("<div />").appendTo($scrollContainer).css({width:"11px",height:"16px",position:"absolute",bottom:0,right:0,background:"transparent url("+opts.imagePath+private.backgroundScroll+") no-repeat -11px top"}).click($scrollDown).mousedown(function(){$interval=setInterval($scrollDown,200);}).mouseup(function(){clearInterval($interval);}).mouseover($clear).mouseout($hoverout);var $dbarrowheight=26;var $percent=($maxheight-$dbarrowheight)/$ulheight;$scrollheight=Math.floor($percent*($maxheight-$dbarrowheight));var $maxY=$maxheight-$scrollheight-$dbarrowheight;debug([$percent,$ulheight,$maxheight,$scrollheight]);var $scrollTheScroll=jQuery("<div />");$scrollTheScroll.appendTo($scrollContainer).draggable({start:$clear,axis:"y",containment:"parent",drag:function(e,ui)
{$scrollcontent(ui.position.top);},opacity:0.7}).css({height:$scrollheight+"px",width:"11px",position:"absolute",top:0,left:"0px",marginTop:"13px",marginBottom:"13px",background:"transparent url("+opts.imagePath+private.backgroundScroll+") repeat-y -44px top"}).mouseover($clear).mouseout($hoverout);jQuery("<div />").appendTo($scrollTheScroll).css({height:"16px",width:"11px",position:"absolute",top:0,left:0,background:"transparent url("+opts.imagePath+private.backgroundScroll+") no-repeat -22px top"}).mouseover($clear).mouseout($hoverout);jQuery("<div />").appendTo($scrollTheScroll).css({height:"16px",width:"11px",position:"absolute",bottom:0,left:0,background:"transparent url("+opts.imagePath+private.backgroundScroll+") no-repeat -33px top"}).mouseover($clear).mouseout($hoverout);}
$obj.css({width:opts.width,position:(($obj.css("position")!="static")?$obj.css("position"):"relative"),height:"18px",zIndex:1000-(int*2),fontFamily:opts.style.fontFamily});$hoverdiv.prependTo($obj).css(jQuery.extend({},defStyle,{backgroundPosition:"right 0px",cursor:"pointer"})).click(function(){if($obj2.css("display")=="none"){$hoverdown();}else{$hoverout();}}).mouseover(function(){$clear();$hoverdown(!opts.respondMouseOver);}).mouseout($hoverout);$opvalue.prependTo($obj).attr({id:"selectMacStyle_container_"+$objname}).css({position:"absolute",top:0,left:0,width:parseInt(opts.width)-18+"px",padding:"2px",paddingLeft:"5px",fontSize:"11px",color:"#000000",fontWeight:"bold",overflow:"hidden",whiteSpace:"nowrap"}).html(((opts.selected=="")?$defaultvalue:jQuery("li[id='"+opts.selected+"']").html()));jQuery("<div />").prependTo($obj).css(jQuery.extend({},defStyle,{backgroundPosition:"left -54px"}));jQuery("<div />").prependTo($obj).css(jQuery.extend({},defStyle,{backgroundPosition:"left -36px",backgroundRepeat:"repeat-x"}));++int;});};jQuery.fn.selectMacStyle.defaults={public:{elementName:"",language:"",width:"150px",allowTransparency:false,defaultString:{fr:"Choisir...",en:"Choose..."},showDefault:true,style:{hoverBgColor:"#3973d0",hoverFontColor:"#FFFFFF",BgColor:"#FFFFFF",FontColor:"#000000",Border:"1px solid #000000",fontFamily:"Arial, Helvetica, sans-serif"},onChange:function(value){},selected:"",respondMouseOver:true,imagePath:"images/",maxHeight:"285px"},private:{height:"18px",backgoundImage:"selectMacStyle.png",backgoundImageTrans:"selectMacStyle_trans.png",backgroundScroll:"selectMacStyle_scroll.png"}};
function debug($obj){if(window.console&&window.console.log)
window.console.log($obj);};})(jQuery);