/*
 * 
 *
 * Copyright (c) 2008 References2.com
 *
 *
 */

var R2=(function(){var api_source_nodes=new Object();function set_search_source_ids(){var source_ids=new Array;$("#multiSelect-source_ids-content ul input:checked").each(function(i){source_ids.push($(this).val())});$.cookie("search_source_ids",source_ids.join("|"),{path:"/",expires:3800})}function ciCompare(s1,s2){var i1=s1.toLowerCase();var i2=s2.toLowerCase();if(i1<i2){return -1}else{if(i1>i2){return 1}else{return 0}}}function save_api_trees(cookieId){var data=[];for(var sid in api_source_nodes){var branches=$("#"+sid+" li").filter(":has(>ul:visible)");branches.each(function(i,e){data.push($(e).attr("id"))})}$.cookie(cookieId,data.join("|"),{path:"/",expires:3800})}function setup_search_filter(){$("#source_ids").multiSelect({no_selection:"Filter not set",selected_text:" source(s) selected"});$("#multiSelect-source_ids-content").click(function(){set_search_source_ids();$("#searchquery").flushCache()})}function update_active_sources(){var curr_page=config.page;var page_size=config.size;var totalRows=config.totalRows;$(".pagesize").val(totalRows).trigger("change");var active_sources=[];$("#tbl_all_sources :checked").each(function(){active_sources.push($(this).val())});config.page=curr_page;$(".pagesize").val(page_size).trigger("change");active_sources.sort(ciCompare);var active_source_ids=[];var open_source=null;if($('#tabs6 a[class="open"]')){open_source=$('#tabs6 a[class="open"]').attr("title")}$("#tabs6 ul").empty();$("#multiSelect-source_ids").remove();var search_filter=$('<select class="sources" id="source_ids" multiple="multiple" name="source[ids][]"/>').prependTo($("div.search fieldset"));for(i=0;i<active_sources.length;++i){ids=active_sources[i].split("|");active_source_ids.push(ids[1]);var s=$('<li><a href="#"  title="'+ids[0]+'"><span onclick="javascript:R2.open_source('+ids[2]+", '"+ids[0]+"', "+ids[1]+', this); return false;">'+ids[0]+"</span></a></li>").appendTo($("#tabs6 ul"));if(open_source==ids[0]){s.children("a").addClass("open").children("span").addClass("open")}$('<option value="'+ids[1]+'">'+ids[0]+"</option>").appendTo(search_filter)}$.cookie("search_source_ids",null,{path:"/"});setup_search_filter();$.cookie("active_source_ids",active_source_ids.join("|"),{path:"/",expires:3800})}function on_search_api(word){var w=$("#searchwindow");if(w.length==0){w=$('<div id="searchwindow"/>').css({padding:0,margin:0}).dialog({title:"Choose a topic",modal:true,height:500,width:480,draggable:true,resizable:false,close:function(){$("#searchresults").remove();$(this).remove()}});w.append($('<form><div class="sq2"><input id="qq" type="text" /><input id="searchbutton2" src="/images/search_0.gif"  type="image"></div><div id="tt"/></form>').submit(function(){on_search_api($("#qq").val());return false}).css({padding:0,margin:1,display:"inline"})).append($('<div id="tc"/>'));$("#qq").val(word);$("#searchbutton2").mouseover(function(){$(this).attr("src","/images/search.gif")});$("#searchbutton2").mouseout(function(){$(this).attr("src","/images/search_0.gif")})}else{$("#tc").empty();$("#tt").empty()}word=$.trim(word);if(word.length==0){return }$.getJSON("/api/search?q="+word,function(data){$("#tc").append($('<table id="searchresults"><thead><tr><th width="260">Title</th><th width="130">Location</th><tr></thead></table>').css({margin:0}));var tbody=$("<tbody/>").appendTo($("#searchresults"));var found=0;$.each(data,function(i,d){var tr=$("<tr><td >"+d.display_name+"</td><td>"+d.source_name+"</td></tr>").appendTo(tbody);found++;tr.click(function(){$("#searchresults").remove();$("#searchwindow").dialog("close");R2.show_ifc();frames.ifc.location.href=unescape(d.url)})});if(found<=100){$("#tt").html("Found "+found+" matches")}else{$("#tt").html("Too many matches")}$("#searchresults").flexigrid({height:380,resizable:false})})}function check_active_sources(){$(".pagesize").val(config.totalRows).trigger("change");$("#tbl_all_sources").trigger("update");$("#tbl_all_sources :checkbox").removeAttr("checked");var active_source_ids=[];if($.cookie("active_source_ids")){active_source_ids=$.cookie("active_source_ids").split("|")}for(i=0;i<active_source_ids.length;++i){$("#active_source_"+active_source_ids[i]).attr("checked","1")}}function setup_table_sorter(){$.tablesorter.addWidget({id:"iecheckboxes",format:function(table){if($.browser.msie){if(!this.init){$(":checkbox",table).change(function(){this.checkedState=this.checked});this.init=true}$(":checkbox",table).each(function(){$(this).attr("checked",this.checkedState)})}}});$.tablesorter.addParser({id:"active",is:function(s){return false},format:function(s){var reg=/id="?([^" ]+)"?/;var ids=reg.exec(s);if($("#"+ids[1]).attr("checked")){return 1}else{return 0}},type:"numeric"});$("#tbl_all_sources").tablesorter({widgets:["iecheckboxes"],widthFixed:true,headers:{0:{sorter:"active"},3:{sorter:false}}}).tablesorterPager({size:$("#tbl_all_sources :checkbox").length,container:$("#source_pager"),positionFixed:false});var page_size=config.size;check_active_sources();$("#tbl_all_sources :checkbox").click(function(){var curr_page=config.page;var totalRows=config.totalRows;$(".pagesize").val(totalRows).trigger("change");$("#tbl_all_sources").trigger("update");var n=$("#tbl_all_sources :checked").length;if(n>7){$("#asn").text("Cannot select more than 7 APIs").css({color:"#ff0000"});$(":button:contains('Ok')").attr("disabled","disabled")}else{if(n<1){$("#asn").text("Must select at least 1 API").css({color:"#ff0000"});$(":button:contains('Ok')").attr("disabled","disabled")}else{$("#asn").html("Selected "+n+" (min:1; max:7)").css({color:"black"});$(":button:contains('Ok')").removeAttr("disabled")}}config.page=curr_page;$(".pagesize").val(page_size).trigger("change");return true});$(".pagesize").val(page_size).trigger("change")}return{show_ifc:function(e){$("#bc").css("display","none");$("#ifc").css("display","block");return true},setup_layout:function(){$(window).bind("resize",function(){if($.browser.msie){$(".resizableArea").height($(window).height()-$("#header").height())}$("#searchquery").setOptions({scrollHeight:$("#contents").height()});$(".resizableArea").trigger("resize")}).trigger("resize");$("#api_tree").treeview({collapsed:true,url:"/api/expand",control:"#api_tree_control",persist:"cookie"});$(window).unload(function(){save_api_trees("api_tree_expanded")});$("form[name='search']").submit(function(){on_search_api($("#searchquery").val());return false});setup_search_filter();$("#searchbutton").mouseover(function(){$(this).attr("src","/images/search.gif")});$("#searchbutton").mouseout(function(){$(this).attr("src","/images/search_0.gif")});$("#searchquery").autocomplete("/api/search",{width:349,max:100,delay:200,scrollHeight:$("#contents").height(),cacheLength:0,parse:function(data){return $.map(eval(data),function(row){return{data:row,value:row.display_name}})},formatItem:function(row){return row.display_name+" ("+row.source_name+")"}}).result(function(event,item){R2.show_ifc();frames.ifc.location.href=unescape(item.url)});setup_table_sorter();$("#div_all_sources").hide()},open_source:function(id,title,source_id,current){$("#tree_hint").css("display","none");$("#api_tree_control a").css("display","inline");var old_branches=$("#api_tree li[id]:first");$('div#sources *[class="open"]').removeClass("open");if(current!=null){$(current).addClass("open");$(current).parent("a").addClass("open")}if($(old_branches).length){api_source_nodes[old_branches.attr("id")]=old_branches;old_branches.attr("style","display:none").appendTo("body")}if(api_source_nodes[id+""]==null){var branches=$('<li class="hasChildren expandable lastExpandable" id="'+id+'"><div class="hitarea hasChildren-hitarea expandable-hitarea lastExpandable-hitarea"></div><span class="">'+title+'</span><ul style="display: none;"><li class="last" id="placeholder"><span>placeholder</span></li></ul></li>');api_source_nodes[id+""]=branches;branches.appendTo($("#api_tree"));$("#api_tree").treeview({add:branches});$("#"+id+" span:first").trigger("click")}else{api_source_nodes[id+""].removeAttr("style").appendTo($("#api_tree"))}$.cookie("browse_source_id",source_id,{path:"/"})},select_sources:function(){var page_size=config.size;var curr_page=config.page;check_active_sources();$("#asn").html("Selected "+$("#tbl_all_sources :checked").length+" (min:1; max:7)");config.page=curr_page;$(".pagesize").val(page_size).trigger("change");var w=$("#select_sources_window");if(w.length==0){w=$('<div id="select_sources_window"/>').css({padding:0,margin:0}).dialog({buttons:{Ok:function(){update_active_sources();$(this).dialog("close")},Cancel:function(){$(this).dialog("close")}},title:"Select Active APIs",modal:true,height:500,width:560,draggable:true,resizable:false}).append($("#source_pager")).append($("#div_all_sources").show())}else{w.dialog("open")}}}})();