 var searchState = new Array();

jQuery(document).ready(function(){

        //Delay
        jQuery.fn.delay = function(options) {

            var timer;
            function count(scope){
                if (timer != null) {
                    clearTimeout(timer);
                }
                var newFn = function() {
                    options.fn.apply(scope);
                };
                timer = setTimeout(newFn, options.delay);
            }
       
            return this.each(function() {
                var obj = jQuery(this);
                obj.bind(options.event, function () {
                     count(this);  
                });
            });
        };
        
        
    //Samples http://itgroup.com.ph/alphanumeric/      
    //jQuery('#txtSearchAll').alphanumeric({allow:"., -&#+"});
        
    
    //Search is made 
    jQuery("#btnQuickSearch").click(function () {
        
        DisableButton();
        InitSearch();
        SearchProfiles('cv', jQuery("#txtSearchAll").val());
        
        
        
    });
    
     jQuery("#txtSearchAll").keyup(function(e) {
	    //alert(e.keyCode);
	    if(e.keyCode == 13) {
		    if(!searchState[0][1])
		        jQuery("#btnQuickSearch").trigger("click");
		}
	});
    
    //Search is made, by keyup 
    jQuery("#txtSearchAll").delay({
        delay: 1000,
        event: 'keyup',
        fn: function(){
            if(!searchState[0][1])
                return;
            
            InitSearch();
            SearchProfiles('cv', jQuery("#txtSearchAll").val());
        }
            
    });
            
    
   
    //Auto search
    jQuery("#lblAutoSearch").click(function () {
        
        if(jQuery(this).hasClass("AutoSearchON"))
        {
            jQuery(this).removeClass("AutoSearchON");
            jQuery("#lblAutoSearch").html(jQuery("#lblAutoSearchOFF").html());
            jQuery(this).addClass("AutoSearchOFF");
            searchState[0][1] = false;
            EnableButton();
        } 
        else 
        {
            jQuery(this).removeClass("AutoSearchOFF");
            jQuery("#lblAutoSearch").html(jQuery("#lblAutoSearchON").html());
            jQuery(this).addClass("AutoSearchON");
            searchState[0][1] = true;
            DisableButton();
        }
        
      
    
    });
    
    jQuery("#lblAutoSearch").hover(function() {
      
        
        jQuery(this).css("color","#00a4d3");
    
        }, function() {
    
        jQuery(this).css("color","#ffffff");
    
    });

    InitPage();
       
});

    
    function InitPage()
    {

        searchState.push(["SearchAuto", true]);

        //Get text
        jQuery("#lblAutoSearch").html(jQuery("#lblAutoSearchON").html());
        
        //Disable Search button
        DisableButton(); 
        
        //Set positions(like StartPage) 
        SetChoosenPositions();
        
        HasReturnedFromSearchResult();
        
    }
    
    function HasReturnedFromSearchResult()
    {
        var activeTab = getCookieValue('activeTab');
        var criteria = getCookieValue('criteria');
        
        if(activeTab==null)
            return;
        
        activeTab = parseInt(activeTab);
        
        if(criteria==null)
            return;
        
        switch(activeTab)
        {
            case 0: //Search 
                //Enable search
                jQuery("#lblAutoSearch").trigger('click');

                //Set criteria
                jQuery("#txtSearchAll").val(criteria);
                
                //Trigger search
                jQuery("#btnQuickSearch").trigger('click');
                break;
                
//            case 1: //Category
//                //Selected 
//                jQuery(".categories ." + criteria).css("color","#00a4d3");
//                
//                jQuery(".categories ." + criteria).trigger('click');
//                
////                //Trigger search
////                jQuery("#SearchResultHeader").html(jQuery("#uxSearchResultHeader").html());
////                GetProfilesByCategory(criteria);
//                break;
            
        }
        
     }
    
    function DisableButton()
    {
        jQuery("#btnQuickSearch").attr("disabled", true);
        jQuery("#btnQuickSearch").removeClass("BlueButton");
        jQuery("#btnQuickSearch").addClass("disabledBlueButton");
    }
    
     function EnableButton()
    {
        jQuery("#btnQuickSearch").attr("disabled", false);
        jQuery("#btnQuickSearch").removeClass("disabledBlueButton");
        jQuery("#btnQuickSearch").addClass("BlueButton");
    }


    function ProcessingSearch(on)
    {
        var culture = jQuery.trim(jQuery("#uxCultureInfo").html());
        if(on)
        {
                
                if(culture =='da-dk')
                    jQuery.blockUI({ message: '<p><img src="/inc/graphics/loader.gif" /> Processing...</p>' }); 
              
               
        } else
        {
                jQuery.unblockUI();

        }
            
    }    



     //Before search
    function InitSearch()
    {
        jQuery("#Searchresult").html("");
        //Do a better... 
        ProcessingSearch(true);
        jQuery("#divResult").hide();
        
       
         //Disable Search
         DisableButton();
    
    }
    
    //After search
    function EndSearch()
    {
        ProcessingSearch(false);
        jQuery("#divResult").show();
        
        //Check
        if(searchState[0][1])
        {
            //Enable Search
            DisableButton();
        } 
        else 
        {
            EnableButton();
        }
    }
    
    //If search went wrong
    function CleanSearch()
    {
       ProcessingSearch(false);
        jQuery("#divResult").hide();
        
        //Check
        if(searchState[0][1])
        {
            //Enable Search
            DisableButton();
        } 
        else 
        {
            EnableButton();
        }
        

    }
    
    function deleteCookie(name) { // deletes cookie
        jQuery.cookie(name, null);
    }


    function setCookieValue(key, value){
        //Cookie dies after 5 minutes
        jQuery.cookie(key, value, { expires: jQuery.datemaker('+5m') });
    }
    
    function getCookieValue(key){
        return jQuery.cookie(key);
    }
    
    function SetChoosenPositions()
    {
        //Set header       
        jQuery("#SearchResultHeader").html(jQuery("#uxChoosenListCandidatesHeading").html());
        jQuery("#Searchresult").html("");
        jQuery("#divResult").hide();
        
        
        
        var theArray = [];
  
        theArray = jQuery(".hiddenSelectedValues").html().split(";;;;");
        
        
        if(theArray.length==0)
        {   
            return;
        } 
        
        var myDataArray = [];
        jQuery.each(theArray, function(key, val) {
            var value = val;
            var arrayInAnArray = value.split(";;");
            myDataArray.push(arrayInAnArray);
         });
         
            var url = location.pathname;
            var language = url.substring(1,3)
            
             var candidate = "candidate";
            if (language == "da")
                candidate = "kandidat";
            
            
         
          for(var i = 0; i < myDataArray.length-1; i++ ){ 
            
            jQuery("#Searchresult").append("<tr class='class='LB1_white'><td><a class='search_result' onclick='javascript: setCookieValue(&quot;activeTab&quot;,0); setCookieValue(&quot;type&quot;,&quot;cv&quot;);setCookieValue(&quot;profile&quot;,&quot;" +  myDataArray[i][0] + "&quot;);' href='/" + language + "/" +  candidate + "/" + myDataArray[i][2] + "/cv/" + myDataArray[i][0] + "'>" + myDataArray[i][1] + "</a>");
            
          } 
          
            jQuery("#lblNoOfsearchResults").html( myDataArray.length-1)
            jQuery("#divResult").show();
            jQuery("#myTable").tablesorter({widthFixed: false, widgets: ['zebra']}); 
            
            //Check browser
             if(jQuery.browser.msie)
             {
                jQuery('#myTable').trigger("update");     
             }
    }
    
    
    function GetProfile(id, count, totalCount, searchString)
    {
        
        
        Complaceo.Web.Services.SearchProfiles.GetHTMLForSearchById(id, "cv", searchString, function(result) {
        
            
            try {

                if(result==null)
                {
                    jQuery("#Searchresult").append("Error: Profile is missing, id:" + id);
                }
                
                jQuery("#Searchresult").append("<tr class='class='LB1_white'><td>" + result + "</td></tr>");
                
                //EndSearch
                if(count == totalCount)
                {
                    jQuery("#myTable").tablesorter({widthFixed: false, widgets: ['zebra']});
                    //Check browser
                    
                    if(jQuery.browser.msie)
                    {
                        jQuery('#myTable').trigger("update");     
                    }
                    EndSearch();
                }

            } catch (e) {

                //Hmmm what to do...
                
            }
        
            
        });
    }
    
    
    function SearchProfiles(type, searchString)
    {
        
        if(searchString == '')
        {
            CleanSearch();
            return;
        }
        
        //Set header
        jQuery("#SearchResultHeader").html(jQuery("#uxDefaultSearchResultHeader").html());

        Complaceo.Web.Services.SearchProfiles.SearchFreeText_IdOnly(type, searchString, function(result) {
            
            try {
            
                if(result.length == 0)
                {
                    CleanSearch();
                    return;
                }
                
                var maxHits = jQuery("#uxMaxHits").html();
                
                if(result.length > maxHits)
                {
                    CleanSearch();
                    
                    alert(stringFormat(jQuery("#uxToManyHits").html(),result.length));
                    //The search contains {0} hits. In order to see the result, please login or create a company.
                    return;
                }
                
                
                jQuery("#lblNoOfsearchResults").html(result.length)
                jQuery("#divResult").show();
                
                    
                
                for(var i = 0; i < result.length; i++ )
		        {
		            var method = 'GetProfile("' + result[i] + '",' + i + ',' + (result.length-1) + ',"' + searchString + '");';
		            setTimeout(method, 500 ); 
		            //GetProfile(result[i], i , result.length-1, searchString);
		        }
		        
		    } catch (e) {

                CleanSearch();
                alert(stringFormat(jQuery("#uxJscriptError").html(),  e.name, e.message ));
                //An exception occurred in the script. Error name: {0}. Error message: {1}
            }
                
            
            
        });
    }


    //String Format function    
    function stringFormat(str)
    {

      for(i = 1; i < arguments.length; i++)

      {

        str = str.replace("{" + (i - 1) + "}", arguments[i]);

      }

      return str;

    }
    
