Widget:CetsiSearchHelper/cetsihelper.js
/*plan,assess, and imp switches*/ var planChecked=false; var assessChecked=false; var impChecked=false;
/*attach checkboxes with attributes*/ $('.action-togglebox').each(function(index){
/*get label text*/ label = $(this).children("span:first").html(); label = label.replace(/ /g,'_'); /*get arrow child to use to insert checkbox before */ arrow = $(this).children("div:first");
/*generate a checkbox based on the label text*/ chkBox = "<input id='"+label+"' type='checkbox' style='float:left;position:relative;'/>";
/*insert the checkbox into the parent container*/ $(chkBox).insertBefore(arrow).bind('click',specialAsk); });
/*add display div*/
rightSideDiv = $(".right:last");
newInfoDiv=document.createElement('ul');
//txtNode = document.createTextNode('Test:');
//newInfoDiv.appendChild(txtNode);
newInfoDiv.setAttribute('id', 'rCetsiMeta');
newInfoDiv.setAttribute('class', 'right');
$(newInfoDiv).insertAfter(rightSideDiv);
$("#rCetsiMeta").css({'font-weight':'bolder','width':'32%','height':'491px','clear':'right','padding':'10px','list-style':'none','overflow-y':'scroll','border':'3px solid #96CBB7'});
$instructions= function(){
$('};
$instructions();
/*******************/ function specialAsk(e){ var sector=""; if (typeof e=="string"){
sector=e; }else sector= e.currentTarget.id;
/*unfix the id format*/ sector=sector.replace(/_/g, " "); $("#rCetsiMeta").children().remove();
/*check if more than one checkbox is checked*/ var params = $("input:checked"); if(params.length <1) {e.stopPropagation();$("#rCetsiMeta").append($instructions);return"";} var ajWaitWidth="110"; var ajWaitHeight="110"; var ajWaitMarginLeft= ($('#rCetsiMeta').width()/2) - (.2 * ajWaitWidth); var ajWaitMarginTop= ($('#rCetsiMeta').height()/2) - (.2 * ajWaitHeight); /*if passes checks, display wait image*/
$("#rCetsiMeta").empty().html("var sectors=new Array(); var imps=new Array(); var sTokens=""; var ipTokens=""; var lBrk="["; var rBrk="]"; var like="-7E"; var under="-20a"; var glue="AND"; var s ="Sector::"; var ip="Implementation_Phase::"; var like ="%7E" var eq="%3D"; var useOR=false; var format="json"; var limit="500"; var itemsArr= new Array(); var impMatch=false; //var logOr="||"; var logOr=""; if(params.length >1) useOR=true;
if(useOR){
$.each(params, function(index, el) { impMatch=checkId(el.id); if(impMatch){ /*build Implementation Phases*/ imps.push(getImpStr(el.id)); /*array to string with glue*/ //ipTokens=imps.join(glue); }else{ /*build sectors*/ sectors.push(el.id.replace(/_/g, " ")+logOr); //sTokens=sectors.join(glue); } impMatch=false; }); /*wrap imps after all checked have been looped through and extrated*/ ipTokens=wrapImps(imps); sTokens=wrapSectors(sectors); }else{ impMatch=checkId(params[0].id); if(impMatch){ imps.push(getImpStr(params[0].id)); ipTokens=wrapImps(imps); }else{ sectors.push((params[0].id.replace(/_/g, " "))+logOr); sTokens=wrapSectors(sectors); } impMatch=false; }
var orStr=""; if(sTokens.length>0 && ipTokens.length>0) orStr=" AND "; /*ask it*/ var serv= document.domain.replace(/.openei.org/g, "");/* global regex rep*/ $.ajax({
type: 'POST', url: 'http://'+serv+'.openei.org/wiki/Special:Ask', dataType: 'json', data:{title:'Special:Ask',p:{format:'json',limit:500},q:'" '+sTokens+orStr+ipTokens+'"'}, success: function(msg){ /*clear loader*/ clearContainer("#rCetsiMeta"); msg=msg.items; $.each(msg, function(key, val) { /*if(key=="items") itemsArr.push(val);*/ itemsArr.push(val.uri); addCetsiMeta(key,val.uri); }); }
});
/*populate the new right side cetsi meta area*/
/*this is needed so checkboxes check and other parent click events don't happen*/ e.stopPropagation(); }/*f*/
function wrapSectors(sectors){ var retStr=""; var wrapLeft=""; var wrapRight=""; if(sectors.length <1) return ""; /*retStr+=wrapLeft;when using ORs*/ $.each(sectors, function(key,val){ retStr+=wrapLeft+val+wrapRight; }); /*retStr = retStr.substring(0, retStr.length-2); when using ORs*/ /*retStr+=wrapRight;used when using ORs*/ return retStr; }/*f*/
function wrapImps(imps){
var retStr=""; var wrapLeft=""; if(imps.length <1) return ""; retStr+=wrapLeft; $.each(imps, function(key,val){ retStr+=val; }); retStr = retStr.substring(0, retStr.length-2); retStr+=wrapRight; return retStr; }/*f*/
function checkId(id){
var match=false; switch(id){ case"Plan": planChecked=true; match=true; break; case"Assess": assessChecked=true; match=true; break; case"Implement": impChecked=true; match=true; break; } return match; }/*f*/
function getImpStr(id){
var impStr=""; switch(id){ case"Plan": impStr+="Create a Vision||"; impStr+="Bring the Right People Together||"; break; case"Assess": impStr+="Determine Baseline||"; impStr+="Evaluate Options||"; impStr+="Develop Goals||"; impStr+="Prepare a Plan||"; impStr+="Get Feedback||"; break; case"Implement": impStr+="Develop Finance and Implement Projects||"; impStr+="Create Early Successes||"; impStr+="Evaluate Effectiveness and Revise as Needed||"; break; } return impStr; }
function clearContainer(locator){
/*clear cetsimeta div*/ $("#rCetsiMeta").children().remove(); }/*f*/
function addCetsiMeta(key,label){
labelTitle= label.replace(/http:\/\/?.{2,3}.openei.org\/w\/index.php\?title=/g,);$("#rCetsiMeta").append("
");
}/*f*/