﻿$(document).ready(function(){
$('#Loading').hide();
toggleTech();
headlinks();
buildResearcher();
getDepartments();
getFocusAreas();
$("form").submit(function () { return false; });

});



/**************START COOKIE FUNCTIONS *******************/

function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}


function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}
function searchfromcookiestripper(value)
{
$('#Loading').show();
holder=value.split("%");
categories=holder[1];
subcategories=holder[3];
keywords=holder[5];
t=holder[7];

        $.ajaxDotNet("search.asmx/SearchParams", {
		    verb: "POST",
		    data: {cats: categories,subs:subcategories,keys:keywords,type:t},
		    success: function(obj) 
		    {
              searchBinds(obj);
               $("#subh :checkbox").click(function(){updateResultsSub();}); 
		    }
		});
}





/************** END COOKIE FUNCTIONS *******************/


/************ START HEADLINKS AND TOGLE *****/


function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function headlinks()
{
    $("#tech").click(function(){toggleTech();});
    $("#rese").click(function(){toggleRese();});
    
    
    var url= gup('go');
    
        switch(url)
    {
    case "tech":
       toggleTech();
   if(getCookie("ti_te_search")!=null)
        {searchfromcookiestripper(getCookie("ti_te_search"));}
        else{reset();}
    break;    
    case "rese":
        toggleRese();
      if(getCookie("ti_te_search")!=null)
        {searchfromcookiestripper(getCookie("ti_te_search"));}
        else{reset();}
    break;
    default:
        toggleTech();
        if(getCookie("ti_te_search")!=null)
        {searchfromcookiestripper(getCookie("ti_te_search"));}
        else{reset();}
    break;
    }
}
function toggleTech()
{
    $("#tech").removeClass("selected");
    $("#rese").addClass("selected");
    $("#tech-place-holder").show();
    $("#rese-place-holder").hide();
}
function toggleRese()
{
    $("#rese").removeClass("selected");
    $("#tech").addClass("selected");
    $("#rese-place-holder").show();
    $("#tech-place-holder").hide();
}
/************ END HEADLINKS AND TOGLE *****/
/************************* START TECH INIT FUNCTIONS **************/




function buildResearcher(){
$.ajaxDotNet("search.asmx/GetResearcherHTML", {
		verb: "GET",
		success: function(obj) 
		{
			$("#rese-place-holder").append(obj);
			bindDropdowns();
		}
	});
}





function getCategories()
{ 
    $.ajaxDotNet("search.asmx/GetAllCategories", {
		verb: "GET",
		success: function(obj) 
		{
			var Category = JSON.parse(obj);
			CategoryCheckboxBuild(Category);
		}
	});
}


function getSubCategories()
{
    $.ajaxDotNet("search.asmx/GetAllSubCategories", {
		verb: "GET",
		success: function(obj) 
		{
			var SubCategory = JSON.parse(obj);
			SubCategoryCheckboxBuild(SubCategory);
		}
	});
}
function bindButtoms()
{
var x;
var btns = $(":image");
for(x=0;x<$(btns).length;x++)
{
    var btnname=$(btns[x]).attr("name");

    switch(btnname)
    {
    case "btn_cat":
        $(btns[x]).click(function(){SearchbyCat();});
    break;    
    case "btn_sub":
        $(btns[x]).click(function(){SearchbySubCat();});
    break;
    case "btn_key":
        $(btns[x]).click(function(){SearchbyKeyword();});
    break;  
    default:
        alert("no");
    break;
    }
}
}
/************************* START TECH INIT FUNCTIONS **************/

/************************* START RESE INIT FUNCTIONS **************/

function getDepartments()
{

   $.ajaxDotNet("search.asmx/GetDepartments", {
		verb: "GET",
		success: function(obj) 
		{
			var Departments = JSON.parse(obj);
			DepartmentDropdownBuild(Departments);
		}
	});
}
function getFocusAreas()
{
   $.ajaxDotNet("search.asmx/GetFocusAreas", {
		verb: "GET",
		success: function(obj) 
		{
			var FocusAreas = JSON.parse(obj);
			FocusAreaDropdownBuild(FocusAreas);
		}
	});

}

function bindDropdowns()
{
$("#ListFocus").change(function(){getReseacherbyFocusArea();});
$("#ListDepartment").change(function(){getReseacherbyDepartment();});
$("#ListGroup").change(function(){getReseacherbyGroup();});
}
/************************* END RESE INIT FUNCTIONS **************/

/**************** START HTML BUILDERS ****************/

/**********START TECH SEARCH****/
function SubCategoryCheckboxBuild(SubCategory)
{
    $('#subs').empty();
    for(i=0;i<$(SubCategory).length;i++)
    {
        $('#subs').append("<p><input type='checkbox' name='subcat_' value=" + SubCategory[i].Id + ">" + SubCategory[i].Name + " (" + SubCategory[i].Total + ")</p>");
    }
    $("#subh :checkbox").click(function(){updateResultsSub();}); 
    $('#Loading').hide();
}

function CategoryCheckboxBuild(Category)
{
for(x=0;x<$(Category).length;x++)
{
 if(x%2==0){ $('#cats').append("<p class=\"lighter-check\"><input type='checkbox' name='cat_' value=" + Category[x].Id + ">" + Category[x].Name + " (" + Category[x].Total + ")</p>"); }
 else{{ $('#cats').append("<p class=\"darker-check\"><input type='checkbox' name='cat_' value=" + Category[x].Id + ">" + Category[x].Name + " (" + Category[x].Total + ")</p>"); }}


}
$(":checkbox").click(function(){getNewTotalsSearch();});
}
/**********END TECH SEARCH****/

/**********START TECH RESULTS****/
function SubCategoryResultsCheckboxBuild(SubCategory)
{
    $('#subh').empty();
    for(i=0;i<$(SubCategory).length;i++)
    {$('#subh').append("<div class=\"individual-results\"><span class=\"checkbox\"><input type=\"checkbox\" name=\"subcat_\" value=\"" + SubCategory[i].Id + "\" ></span><p>" + SubCategory[i].Name + "(" + SubCategory[i].Total + ")</p></div>");}
     $("#subh :checkbox").click(function(){updateResultsSub();}); 
}

/**********END TECH RESULTS****/

/**********START RESE SEARCH****/
function DepartmentDropdownBuild(Departments)
{

$("#ListDepartment").empty();
$("#ListDepartment").append("<option value=\"null\">Select One</option>");
for(i=0;i<$(Departments).length;i++)
$("#ListDepartment").append("<option value=\""+Departments[i].DepartmentId+"\">"+Departments[i].DepartmentName+"</option>");
}
function FocusAreaDropdownBuild(FocusAreas)
{
$("#ListFocus").empty();
$("#ListFocus").append("<option value=\"null\">Select One</option>");
for(i=0;i<$(FocusAreas).length;i++)
{$("#ListFocus").append("<option value=\""+ FocusAreas[i].FocusAreaId+"\">"+FocusAreas[i].FocusAreaName+"</option>");}
}

function ReseResultsBuilder(Results)
{
$("#rese-place-holder #results").empty();
$("#rese-place-holder #results").append('<p class="bigger">'+$(Results).length+' Reseachers were found.</p>');
$("#rese-place-holder #results").append('<div class="title"><div class="w">Researcher</div><div class="w1">Focus Area</div><div class="w2">Department</div><div class="clearfloats"/></div>');

for(i=0;i<$(Results).length;i++)
{
if(i%2==0){$("#rese-place-holder #results").append('<div class="cell"><div class="w"><a target="_blank" href="' + Results[i].ResearcherUrl + '">' + Results[i].Researcher + '</a></div><div class="w1"><h6>'+Results[i].FocusArea+'</h6></div><div class="w2"><a target="_blank" href="' + Results[i].DepartmentUrl + '">' + Results[i].Department + '</a></div></div>');}
else{$("#rese-place-holder #results").append('<div class="cell blue-bg"><div class="w"><a target="_blank" href="' + Results[i].ResearcherUrl + '">' + Results[i].Researcher + '</a></div><div class="w1"><h6>'+Results[i].FocusArea+'</h6></div><div class="w2"><a target="_blank" href="' + Results[i].DepartmentUrl + '">' + Results[i].Department + '</a></div></div>');}
}
$('#Loading').hide();
}
/**********END RESE SEARCH****/

/**************** END HTML BUILDERS ****************/

/***** Functions **/
function catmanip()
{
$('#Loading').show();
getNewTotalsResults();
updateResultsCat();
}
function catmanipResults()
{
$('#Loading').show();
getNewTotalsResults();
updateResultsCat();
}



/***** Functions **/

/****************** START TECH NEW MANIP ****************************/
function getNewTotalsSearch()
{
$('#Loading').show();
    var pop="";
    var test=$("input:checked");
    for(i=0;i<$("input:checked").length;i++)
    {
        if($(test[i]).attr("name")=="cat_")
        {pop=pop+test[i].value+"|";}
    }

    
    
    
        $.ajaxDotNet("search.asmx/GetAllSubsCategoriesBasedOnCats", {
		    verb: "POST",
		    data: {categorylist: pop},
		    success: function(obj) 
		    {
                var SubCategory = JSON.parse(obj);
			    SubCategoryCheckboxBuild(SubCategory);
			    
		    }
		});

}
function getNewTotalsResults()
{
$('#Loading').show();
    var pop="";
    var test=$("input:checked");
    for(i=0;i<$("input:checked").length;i++)
    {
        if($(test[i]).attr("name")=="cat_")
        {pop=pop+test[i].value+"|";}
    }

$.ajaxDotNet("search.asmx/GetAllSubsCategoriesBasedOnCats", {
		    verb: "POST",
		    data: {categorylist: pop},
		    success: function(obj) 
		    {
                var SubCategory = JSON.parse(obj);
			    SubCategoryResultsCheckboxBuild(SubCategory);
			    
		    }
		});
}
/****************** END TECH NEW MANIP ****************************/
/****************** START RESE NEW MANIP ****************************/
 function getAllResearchers(){
   $.ajaxDotNet("search.asmx/GetAllResearchers", {
		verb: "GET",
		success: function(obj) 
		{
			var Reseachers = JSON.parse(obj);
			ReseResultsBuilder(Reseachers);
			
		}
	});
	}
	function getReseacherbyDepartment()
	{
	$('#Loading').show();
	    $.ajaxDotNet("search.asmx/GetResearchersbyDepartment", {
		    verb: "POST",
		    data: {id:$("#ListDepartment").val() },
		    success: function(obj) 
		    {
        	
			var Reseachers = JSON.parse(obj);
			ReseResultsBuilder(Reseachers); 
			$("#ListFocus").val("Select One");
            $("#ListGroup").val("Select One");
			
		    }
		});
	}
	function getReseacherbyFocusArea()
	{
	$('#Loading').show();
	    $.ajaxDotNet("search.asmx/GetResearchersbyFocus", {
		    verb: "POST",
		    data: {id:$("#ListFocus").val()},
		    success: function(obj) 
		    {
            
			var Reseachers = JSON.parse(obj);
			ReseResultsBuilder(Reseachers);  		
            $("#ListDepartment").val("Select One");
            $("#ListGroup").val("Select One");
            
		    }
		});
	}
	function getReseacherbyGroup()
	{
	$('#Loading').show();
	
	    $.ajaxDotNet("search.asmx/GetResearchersbyGroup", {
		    verb: "POST",
		    data: {i:$("#ListGroup").val()},
		    success: function(obj) 
		    {
       	    var Reseachers = JSON.parse(obj);
			ReseResultsBuilder(Reseachers); 
			$("#ListFocus").val("Select One");
            $("#ListDepartment").val("Select One");
            
		    }
		});
		
		
	}

/****************** START RESE NEW MANIP ****************************/

/************* START UPDATE TECH RESULTS FUNCTION *************/

function updateResultsSub()
{
$('#Loading').show();
var ExDate=new Date();
var categories="";
var subcategories="";
var tc=$("#cath :checked");  
var ts=$("#subh :checked");

if($(ts).length==0){updateResultsCat();}
else{
 for(i=0;i<$("#cath :checked").length;i++)
    {
        if($(tc[i]).attr("name")=="cat_")
        {categories=categories+tc[i].value+"|";}
    }
     for(i=0;i<$("#subh :checked").length;i++)
    {
        if($(ts[i]).attr("name")=="subcat_")
        {subcategories=subcategories+ts[i].value+"|";}
    }
    
    ExDate.toUTCString(ExDate.setDate(ExDate.getDate()+1));
    deleteCookie("ti_te_search");
        setCookie("ti_te_search","cats%"+categories+"%subs%"+subcategories+"%keys%%type%s",ExDate);
    $.ajaxDotNet("search.asmx/ModifyResults", {
		    verb: "POST",
		    data: {cats: categories,subs:subcategories,keys:'',type:'s'},
		    success: function(obj) 
		    {
                searchBindsResults(obj);
               // 
		    }
		});
		}
}


function updateResultsCat()
{
$('#Loading').show();
var ExDate=new Date();
   var categories="";
   var tc=$("#cath :checked");  
    for(i=0;i<$("#cath :checked").length;i++)
    {
        if($(tc[i]).attr("name")=="cat_")
        {categories=categories+tc[i].value+"|";}
    }
        ExDate.toUTCString(ExDate.setDate(ExDate.getDate()+1));
        deleteCookie("ti_te_search");
      setCookie("ti_te_search","cats%"+categories+"%subs%%keys%%type%c",ExDate);
      $('#Loading').show();
       $.ajaxDotNet("search.asmx/ModifyResults", {
		    verb: "POST",
		    data: {cats: categories,subs:'',keys:'',type:'c'},
		    success: function(obj) 
		    {
		    
                searchBindsResults(obj);
               // 
            }
		});
		

}
function updateResultsKey()
{
$('#Loading').show();
var ExDate=new Date();
    var categories="";
    var subcategories="";
    var keywords=$("input:text").val();
    var tc=$("#cath :checked");
    var ts=$("#subh :checked");  
     for(i=0;i<$("#cath :checked").length;i++)
    {
        if($(tc[i]).attr("name")=="cat_")
        {categories=categories+tc[i].value+"|";}
    }
     for(i=0;i<$("#subh :checked").length;i++)
    {
        if($(ts[i]).attr("name")=="subcat_")
        {subcategories=subcategories+ts[i].value+"|";}
    }
    
       ExDate.toUTCString(ExDate.setDate(ExDate.getDate()+1));
       deleteCookie("ti_te_search");
        setCookie("ti_te_search","cats%"+categories+"%subs%"+subcategories+"%keys%"+keywords+"%type%k",ExDate);
    
            $.ajaxDotNet("search.asmx/ModifyResults", {
		    verb: "POST",
		    data: {cats: categories,subs:subcategories,keys:keywords,type:'k'},
		    success: function(obj) 
		    {
		    $('#Loading').show();
                searchBindsResults(obj);
               // 
		    }
		});
}




/************* END UPDATE TECH RESULTS FUNCTION *************/

/******************* Start TECH Search Functions (Default View) *************************/

function SearchbyCat(){
$('#Loading').show();
    var ExDate=new Date();
    var categories="";
    var test=$("input:checked");
    for(i=0;i<$("input:checked").length;i++)
    {
        if($(test[i]).attr("name")=="cat_")
        {categories=categories+test[i].value+"|";}
    }
      
      ExDate.toUTCString(ExDate.setDate(ExDate.getDate()+1));
      setCookie("ti_te_search","cats%"+categories+"%subs%%keys%%type%c",ExDate);

        $.ajaxDotNet("search.asmx/SearchParams", {
		    verb: "POST",
		    data: {cats: categories,subs:'',keys:'',type:'c'},
		    success: function(obj) 
		    {
                searchBinds(obj);
              $("#subh :checkbox").click(function(){updateResultsSub();});
		    }
		});
}

function SearchbySubCat(){
$('#Loading').show();
    var ExDate=new Date();
    var categories="";
    var subcategories="";
    var test=$("input:checked");
    for(i=0;i<$("input:checked").length;i++)
    {
        if($(test[i]).attr("name")=="cat_")
        {categories=categories+test[i].value+"|";}
    }
    for(j=0;j<$("input:checked").length;j++)
    {
        if($(test[j]).attr("name")=="subcat_")
        {subcategories=subcategories+test[j].value+"|";}
    }
        ExDate.toUTCString(ExDate.setDate(ExDate.getDate()+1));
        setCookie("ti_te_search","cats%"+categories+"%subs%"+subcategories+"%keys%%type%s",ExDate);
        $.ajaxDotNet("search.asmx/SearchParams", {
		    verb: "POST",
		    data: {cats: categories,subs:subcategories,keys:'',type:'s'},
		    success: function(obj) 
		    {  
               searchBinds(obj);
               $("#subh :checkbox").click(function(){updateResultsSub();});
		    }
		});
}

function SearchbyKeyword(){
$('#Loading').show();
    var ExDate=new Date();
    var categories="";
    var subcategories="";
    var keywords=$("input:text").val();
    var test=$("input:checked");
    for(i=0;i<$("input:checked").length;i++)
    {
        if($(test[i]).attr("name")=="cat_")
        {categories=categories+test[i].value+"|";}
    }
    for(j=0;j<$("input:checked").length;j++)
    {
        if($(test[j]).attr("name")=="subcat_")
        {subcategories=subcategories+test[j].value+"|";}
    }
        ExDate.toUTCString(ExDate.setDate(ExDate.getDate()+1));
        setCookie("ti_te_search","cats%"+categories+"%subs%"+subcategories+"%keys%"+keywords+"%type%k",ExDate);
        $.ajaxDotNet("search.asmx/SearchParams", {
		    verb: "POST",
		    data: {cats: categories,subs:subcategories,keys:keywords,type:'k'},
		    success: function(obj) 
		    {
              searchBinds(obj);
              $("#subh :checkbox").click(function(){updateResultsSub();}); 
		    }
		});

}

/******************* End TECH Search Functions (Default View)*************************/


function searchBinds(obj)
{

                $('#tech-place-holder').empty();
                $('#tech-place-holder').append(obj);
                $('#tech-place-holder').addClass("search-tech-results");
                bindButton();
                $("#cath :checkbox").click(function(){catmanip();});
 
                $("#left-search-results :image").click(function(){updateResultsKey();}); 
                $('#Loading').hide();
}
function searchBindsResults(obj)
{
$("#cath :checkbox").unbind('click');

                $("#left-search-results :image").unbind('click'); 
                $('#tech-place-holder #results').empty();
               $('#tech-place-holder #results').append(obj);
                $("#cath :checkbox").click(function(){catmanip();});

                $("#left-search-results :image").click(function(){ updateResultsKey();});
                $('#Loading').hide();
}


function bindButton()
{
    var btns = $(":image");
    for(i=0;i<$(":image").length;i++){
        if($(btns[i]).attr("name")=="btn_reset")
        {$(btns[i]).click(function(){reset();});}
    }
}


function reset(){
$('#Loading').show();
deleteCookie("ti_te_search");
    $.ajaxDotNet("search.asmx/SearchState", {
		verb: "GET",
		success: function(obj) 
		{
			$('#tech-place-holder').empty();
            $('#tech-place-holder').append(obj);
            $('#tech-place-holder').removeClass("empty-content");
            getCategories();
            getSubCategories();
            bindButtoms();
           
		}
	});
	 $('#Loading').hide();
}
