';
return sDiv;
};
var createTitleDiv = function () {
var titleid = getPostID("postTitleID");
var arrowid = getPostID("postArrowID");
var titletextid = getPostID("postTitleTextID");
var inputhidden = getPostID("postInputhidden");
var sText = "";
var arrow = "";
if(document.getElementById(elementid).options.length>0) {
sText = $("#"+elementid+" option:selected").text();
arrow = $("#"+elementid+" option:selected").attr("title");
};
//console.debug("sObj "+sObj.length);
arrow = (arrow.length==0 || arrow==undefined || options.showIcon==false || options.useSprite!=false) ? "" : '

';
var sDiv = '
';
sDiv += ''+arrow + ''+sText+'
';
return sDiv;
};
var applyEventsOnA = function() {
var childid = getPostID("postChildID");
$("#"+childid+ " a.enabled").unbind("click"); //remove old one
$("#"+childid+ " a.enabled").bind("click", function(event) {
event.preventDefault();
manageSelection(this);
if(!ddList) {
$("#"+childid).unbind("mouseover");
setInsideWindow(false);
var sText = (options.showIcon==false) ? $(this).text() : $(this).html();
//alert("sText "+sText);
setTitleText(sText);
//$this.data("dd").close();
$this.close();
};
setValue();
//actionSettings.oldIndex = a_array[$($this).attr("id")].index;
});
};
var createDropDown = function () {
var changeInsertionPoint = false;
var id = getPostID("postID");
var titleid = getPostID("postTitleID");
var titletextid = getPostID("postTitleTextID");
var childid = getPostID("postChildID");
var arrowid = getPostID("postArrowID");
var iWidth = $("#"+elementid).width();
iWidth = iWidth+2;//it always give -2 width; i dont know why
var sStyle = options.style;
if($("#"+id).length>0) {
$("#"+id).remove();
changeInsertionPoint = true;
};
var sDiv = '
';
//create title bar
sDiv += createTitleDiv();
//create child
sDiv += createChildDiv();
sDiv += createATags();
sDiv += "
";
sDiv += "
";
if(changeInsertionPoint==true) {
var sid =getPostID("postElementHolder");
$("#"+sid).after(sDiv);
} else {
$("#"+elementid).after(sDiv);
};
if(ddList) {
var titleid = getPostID("postTitleID");
$("#"+titleid).hide();
};
$("#"+id).css("width", iWidth+"px");
$("#"+childid).css("width", (iWidth-2)+"px");
if(allOptions.length>options.visibleRows) {
var margin = parseInt($("#"+childid+" a:first").css("padding-bottom")) + parseInt($("#"+childid+" a:first").css("padding-top"));
var iHeight = ((options.rowHeight)*options.visibleRows) - margin;
$("#"+childid).css("height", iHeight+"px");
} else if(ddList) {
var iHeight = $("#"+elementid).height();
$("#"+childid).css("height", iHeight+"px");
};
//set out of vision
if(changeInsertionPoint==false) {
setOutOfVision();
addRefreshMethods(elementid);
};
if($("#"+elementid).attr("disabled")==true) {
$("#"+id).css("opacity", styles.disabled);
};
applyEvents();
//add events
//arrow hightlight
$("#"+titleid).bind("mouseover", function(event) {
hightlightArrow(1);
});
$("#"+titleid).bind("mouseout", function(event) {
hightlightArrow(0);
});
//open close events
applyEventsOnA();
$("#"+childid+ " a.disabled").css("opacity", styles.disabled);
//alert("ddList "+ddList)
if(ddList) {
$("#"+childid).bind("mouseover", function(event) {if(!actionSettings.keyboardAction) {
actionSettings.keyboardAction = true;
$(document).bind("keydown", function(event) {
var keyCode = event.keyCode;
actionSettings.currentKey = keyCode;
if(keyCode==39 || keyCode==40) {
//move to next
event.preventDefault(); event.stopPropagation();
next();
setValue();
};
if(keyCode==37 || keyCode==38) {
event.preventDefault(); event.stopPropagation();
//move to previous
previous();
setValue();
};
});
}});
};
$("#"+childid).bind("mouseout", function(event) {setInsideWindow(false);$(document).unbind("keydown");actionSettings.keyboardAction = false;actionSettings.currentKey=null;});
$("#"+titleid).bind("click", function(event) {
setInsideWindow(false);
if($("#"+childid+":visible").length==1) {
$("#"+childid).unbind("mouseover");
} else {
$("#"+childid).bind("mouseover", function(event) {setInsideWindow(true);});
//alert("open "+elementid + $this);
//$this.data("dd").openMe();
$this.open();
};
});
$("#"+titleid).bind("mouseout", function(evt) {
setInsideWindow(false);
});
if(options.showIcon && options.useSprite!=false) {
setTitleImageSprite();
};
};
var getByIndex = function (index) {
for(var i in a_array) {
if(a_array[i].index==index) {
return a_array[i];
};
};
return -1;
};
var manageSelection = function (obj) {
var childid = getPostID("postChildID");
if($("#"+childid+ " a.selected").length==1) { //check if there is any selected
oldSelectedValue = $("#"+childid+ " a.selected").text(); //i should have value here. but sometime value is missing
//alert("oldSelectedValue "+oldSelectedValue);
};
if(!ddList) {
$("#"+childid+ " a.selected").removeClass("selected");
};
var selectedA = $("#"+childid + " a.selected").attr("id");
if(selectedA!=undefined) {
var oldIndex = (actionSettings.oldIndex==undefined || actionSettings.oldIndex==null) ? a_array[selectedA].index : actionSettings.oldIndex;
};
if(obj && !ddList) {
$(obj).addClass("selected");
};
if(ddList) {
var keyCode = actionSettings.currentKey;
if($("#"+elementid).attr("multiple")==true) {
if(keyCode == 17) {
//control
actionSettings.oldIndex = a_array[$(obj).attr("id")].index;
$(obj).toggleClass("selected");
//multiple
} else if(keyCode==16) {
$("#"+childid+ " a.selected").removeClass("selected");
$(obj).addClass("selected");
//shift
var currentSelected = $(obj).attr("id");
var currentIndex = a_array[currentSelected].index;
for(var i=Math.min(oldIndex, currentIndex);i<=Math.max(oldIndex, currentIndex);i++) {
$("#"+getByIndex(i).id).addClass("selected");
};
} else {
$("#"+childid+ " a.selected").removeClass("selected");
$(obj).addClass("selected");
actionSettings.oldIndex = a_array[$(obj).attr("id")].index;
};
} else {
$("#"+childid+ " a.selected").removeClass("selected");
$(obj).addClass("selected");
actionSettings.oldIndex = a_array[$(obj).attr("id")].index;
};
//isSingle
};
};
var addRefreshMethods = function (id) {
//deprecated
var objid = id;
document.getElementById(objid).refresh = function(e) {
$("#"+objid).msDropDown(options);
};
};
var setInsideWindow = function (val) {
actionSettings.insideWindow = val;
};
var getInsideWindow = function () {
return actionSettings.insideWindow;
};
var applyEvents = function () {
var mainid = getPostID("postID");
var actions_array = attributes.actions.split(",");
for(var iCount=0;iCount