(function() {
var Event=YAHOO.util.Event,
Dom=YAHOO.util.Dom,
oACDS, oAutoComp,
show = {
'private': false,
'protected': false,
'deprecated': false
},
ITEM_TEMPLATE = '<em>{host}</em> <span>{name}</span>',
// ITEM_TEMPLATE = '<em>{host}</em> <span>{params}</span> <span>{name}</span>',
// ITEM_TEMPLATE = '<em>{host}</em> <span>{params}</span> <span>{name}</span><div>{description}</div>',
yuidoc = YAHOO.namespace('yuidoc'),
propdata,
initialized = false;
yuidoc.init = function(altdata) {
yuidoc.initUI(altdata);
};
yuidoc.initUI = function(altdata) {
if (initialized) {
return;
}
propdata = ALL_YUI_PROPS || altdata;
//Checkboxes are available..
var handleClick = function(e) {
var id, checked = false;
if (YAHOO.lang.isString(e)) {
id = e;
} else {
var tar = Event.getTarget(e);
id = tar.id;
}
var el = Dom.get(id);
checked = el.checked;
var className = id;
if (checked) {
show[id.replace('show_', '')] = true;
Dom.addClass(document.body, className);
YAHOO.util.Cookie.setSub('yuidoc', id, 'checked');
} else {
show[id.replace('show_', '')] = false;
Dom.removeClass(document.body, className);
YAHOO.util.Cookie.setSub('yuidoc', id, '');
}
};
var checkCookie = function(id) {
var value = YAHOO.util.Cookie.getSub('yuidoc', id),
el = Dom.get(id), checked = (value === 'checked');;
el.checked = checked;
return checked;
};
var els = ['show_deprecated', 'show_protected', 'show_private'],
reapplyHash = false;
for (var i = 0; i < els.length; i++) {
Event.on(els[i], 'click', handleClick);
reapplyHash = checkCookie(els[i]) || reapplyHash;
handleClick(els[i]);
}
// If we dynamically show private/protected/etc items during
// load, we need to reapply anchors so that the search feature
// works correctly for items that are initially hidden.
if (reapplyHash) {
var dl = document.location, hash = dl.hash;
if (hash) {
dl.hash = hash;
}
}
};
//Starting the AutoComplete code
var getResults = function(query) {
var results = [];
if (query && query.length > 0) {
var q = query.toLowerCase();
for (var i=0, len=propdata.length; i<len; ++i) {
var prop = propdata[i];
if (!show['protected'] && prop.access == "protected") {
// skip
} else if (!show['private'] && prop.access == "private") {
// skip
} else if (!show['deprecated'] && prop.deprecated) {
// skip
} else {
var s = (prop.host + "." + prop.name).toLowerCase();
if (s.indexOf(q) > -1 ) {
results.push([query, prop]);
}
}
}
}
return results;
};
// Define Custom Event handlers
var myOnDataReturn = function(sType, aArgs) {
var oAutoComp = aArgs[0];
var query = aArgs[1];
var aResults = aArgs[2];
if(aResults.length == 0) {
if (query.length > 0) {
oAutoComp.setBody("<div id=\"resultsdefault\">Not found</div>");
}
}
};
var myOnItemSelect = function(sType, aArgs) {
var ac = aArgs[0];
var item = aArgs[2];
location.href = item[1].url;
};
Event.onAvailable("searchresults", function() {
// Instantiate JS Function DataSource
oACDS = new YAHOO.widget.DS_JSFunction(getResults);
oACDS.maxCacheEntries = 30;
// Instantiate AutoComplete
oAutoComp = new YAHOO.widget.AutoComplete('searchinput','searchresults', oACDS);
//oAutoComp.alwaysShowContainer = true;
oAutoComp.queryDelay = 0.2;
oAutoComp.maxResultsDisplayed = 200;
oAutoComp.minQueryLength = 0;
oAutoComp.formatResult = function(oResultItem, query) {
// var sMarkup = "<em>" + oResultItem[1].host + '</em> <span>' + oResultItem[1].name + '</span>';
// return sMarkup;
// return "<em>" + oResultItem[1].host + '</em> <span>' + oResultItem[1].name + '</span>';
return YAHOO.lang.substitute(ITEM_TEMPLATE, oResultItem[1]);
};
// Subscribe to Custom Events
oAutoComp.dataReturnEvent.subscribe(myOnDataReturn);
oAutoComp.itemSelectEvent.subscribe(myOnItemSelect);
// Set initial content in the container
oAutoComp.sendQuery(Dom.get("searchinput").value);
});
var validateForm = function() {
return false;
};
YAHOO.util.Event.onAvailable('classTab', function() {
var tabs = new YAHOO.widget.TabView('classTab');
});
/*
YAHOO.util.Event.onAvailable('codeTree', function() {
var tree1 = new YAHOO.widget.TreeView('codeTree');
tree1.render();
});
*/
YAHOO.util.Event.onDOMReady(function() {
if (typeof ALL_YUI_PROPS != "undefined") {
YAHOO.yuidoc.initUI();
}
});
})();