var ie, op, ge;

if(navigator.userAgent.indexOf("MSIE") >= 0){ie=true;}else{ie=false};
if(navigator.userAgent.indexOf("Opera") >= 0) op=true;
if(navigator.userAgent.indexOf("Gecko") >= 0) ge=true;

var var_AllTags;
var Temp;
var c=0;

function HideSelectDiv(event, id)
{
	if (ie)	{target = window.event.toElement;}
	else{  if (event.relatedTarget != null) target = (event.relatedTarget.tagName ? event.relatedTarget : event.relatedTarget.parentNode);}
	if(!myfind("wrapper"+id, target)) {if($("#selectholder"+id).css("display")=="block") $("#selectholder"+id).css("display","none");}
}
function GetAll(obj)
{
	if (typeof(obj.childNodes) == "undefined") return false;
	if (typeof(obj.childNodes.length) == "undefined") return false;
	Temp[Temp.length] = 0;
	for (Temp[Temp.length-1]=0;Temp[Temp.length-1]<obj.childNodes.length;Temp[Temp.length-1]++) 
	{
		if (typeof(obj.childNodes[Temp[Temp.length-1]]) != "undefined") 
		{
			var_AllTags[c] = obj.childNodes[Temp[Temp.length-1]];
			c++; 
			GetAll(obj.childNodes[Temp[Temp.length-1]]);
		}
	}
	Temp.length--;
}

function myfind(id, target) 
{
	if(document.getElementById(id)==target) return true;
  	var_AllTags = Array();
  	Temp = Array();
  	c = 0;
  	GetAll(document.getElementById(id));
  	for (i=0;i<var_AllTags.length;i++) 
	{
		if (var_AllTags[i]==target) return true;
	}
	return false;
}

$.fn.customSelect = function(myuid,carr) {
 return this.each(function() {

if(!carr)
{
	cselectdiv="selectdiv";
	cselectholder="selectholder";
	cselectitem="selectitem";
}
else
{
	cselectdiv=carr[0];
	cselectholder=carr[1];
	cselectitem=carr[2];	
}

var sel_value="";
var sel_html="";
var obj = $(this);

var uid = myuid;

sel_value=this.options[this.selectedIndex].value;
sel_html=this.options[this.selectedIndex].text;

obj.after("<div id=\"selectoptions"+uid+"\"> </div>");
obj.find('option').each(function(i){ 
     $("#selectoptions"+uid).append("<div title=\"" + $(this).attr("value") + "\" class=\"" + cselectitem +"\"><span>" + $(this).html() + "</span></div>");
});
obj.before("<div id=\"wrapper"+uid+"\"><input type=\"hidden\" value =\"" + sel_value + "\" name=\"" + this.name + "\" id=\""+this.name+"\"/><div id=\"selectdiv"+uid+"\" class=\"" + cselectdiv + "\">" + sel_html + "</div><div id=\"selectholder"+uid+"\" class=\"" + cselectholder + "\"> </div></div>").remove();
$("#selectholder"+uid).append( $("#selectoptions"+uid)[0] );
$("#selectdiv"+uid).click(function(){$("#selectholder"+uid).slideToggle("fast");});
$("#wrapper"+uid).mouseout(function(event){HideSelectDiv(event,uid);});
$("." + cselectitem).mouseover(function(){$(this).addClass("hoverclass");});
$("." + cselectitem).mouseout(function(){$(this).removeClass("hoverclass");});
$("#selectoptions"+uid+" ." + cselectitem).click(function(){
	//alert(obj.attr("onchange"));
	//var test = obj.attr("onchange");
	//test.apply(obj.get());
	if(obj.attr("onchange")) obj.attr("onchange").apply(this);
	if(obj.attr("onchange")) eval(obj.attr("onchange"));
	$("#selectoptions"+uid+" .selectedclass").removeClass("selectedclass");
	$(this).addClass("selectedclass");
	$("#"+obj.attr("name")).val(this.title);
	$("#selectdiv"+uid).html($(this).html());
	$("#selectholder"+uid).slideToggle("fast");
	}); 
    });  

  // do the rest of the plugin, using url and settings
}
