// This is the job results object that holds all the logic for controls that are only ever on this page.
CB.JobResults = function(){    
    return{
        excrit:'',
        initializeSearchBox:function(){
            // SearchBox controls
            CB.SuggestionTextbox.setupTextbox(CB.e(this.searchBoxPrefix + '_sbkw'),this.rawwordsSuggestionText,CB.e('sbsbmt'));
            CB.SuggestionTextbox.setupTextbox(CB.e(this.searchBoxPrefix + '_s_freeloc'),this.locationSuggestionText,CB.e('sbsbmt'));
        },
        appendExCrit:function(link){
			if(link.href.indexOf('&excrit=') == -1){
				link.href += '&excrit=' + this.excrit;
			}
        }
    };
}();

CB.JobResults.BOFDisclaimer = function(){
    //Currently only show in US.  Initialize is called by joblist.ascx
    var _bofPopup;
    var _bShownTally = false;
    
    return {
    
        Initialize: function(){
            var jobList = $get('JL_D');
            //Make sure we have a Job List
            if(jobList){
                var links = $get('JL_D').getElementsByTagName('a');
			    //"More >>" Links
			    for(var i = 0; i < links.length; i++){
			        if(links[i].id.indexOf('ShowBOFLink') > -1){
                        $addHandler(links[i], 'click', CB.JobResults.BOFDisclaimer.Show);
                    }
	            }
	        
	        
	            //Job Title Links
	            for(var i = 0; i < links.length; i++){
			        if(links[i].className.indexOf('boftitle') > -1){
                        $addHandler(links[i], 'click', CB.JobResults.BOFDisclaimer.TallyTitleClicks);
                    }
	            }
	        
                _bofPopup = CB.object(CB.AJAX.Popup);
                _bofPopup.initialize(document.getElementById('BOFPopup'), {isModal:false});
           
                $addHandler($get('BOFPopupClose'), 'click', CB.JobResults.BOFDisclaimer.Hide);     
            
                //Link to Turn Filter On/Off
                if( (!(typeof(bShowBOFDisclaimerFilter)=='undefined')) && (bShowBOFDisclaimerFilter)){
                    $addHandler($get('JL_lBOFDisclaimerFilterLink'), 'click', function(){CB.JobResults.BOFDisclaimer.ToggleBOFFilter(true);});                         
                    $addHandler($get('JL_lBOFDisclaimerFilterBackOnLink'), 'click', function(){CB.JobResults.BOFDisclaimer.ToggleBOFFilter(false);});                         
                }
            
            }

        },
        
        Show:  function(evt){
            if (typeof(_bofPopup) == 'undefined'){CB.JobResults.BOFDisclaimer.Initialize();}          
            _bofPopup.show(evt.target);
            CB.Tally('/JobSeeker/Jobs/JobResults.aspx','JavaScript','BOFDisclaimerShown');
            if(!(_bShownTally)){
                CB.Tally('/JobSeeker/Jobs/JobResults.aspx','JavaScript','BOF1stDisclaimerShown');
            }
            
            //Unique Tallies for N Group - Temporary
            if( (!(typeof(bShowBOFDisclaimerFilter)=='undefined')) && (bShowBOFDisclaimerFilter)){
                CB.Tally('/JobSeeker/Jobs/JobResults.aspx','JavaScript','BOFDisclaimerShown-M');
            } 
            
            _bShownTally = true;
        },
        
        Hide: function(){
            if (typeof(_bofPopup) == 'undefined'){CB.JobResults.BOFDisclaimer.Initialize();}
            _bofPopup.hide();
        },
        
        TallyTitleClicks: function(){
            CB.Tally('/JobSeeker/Jobs/JobResults.aspx','JavaScript','BOFToJobDetailsClick');
        },
        
        ToggleBOFFilter: function(bFilterOnStatusToSet){
	        //Let's Tally this
            if(bFilterOnStatusToSet){
                CB.Tally('/JobSeeker/Jobs/JobResults.aspx','JavaScript','BOFFilterTurnedOn-Disclaimer');
	        }
	        else{
                CB.Tally('/JobSeeker/Jobs/JobResults.aspx','JavaScript','BOFFilterTurnedOFF-Disclaimer');	        
	        }        
	        
	        // send off the AJAX call   
		    var data = 'FilterOn=' + bFilterOnStatusToSet;
            var core = new CB2.Framework.CBAtlasCore();
		    if (location.search.indexOf('vptest=true') > -1){data += '&boftest=true&vptest=true';};
            var request = core.CreateAJAXRequest('JobSeeker/AJAX/BOFFilter.aspx', data, CB.JobResults.BOFDisclaimer.HandleBOFFilterResponse, null);
            core.InvokeAJAXRequest(request);
        },
 
        HandleBOFFilterResponse: function(requestBack, eventArgs){
            var success = false;
            if(requestBack.get_responseAvailable() && "200" == requestBack.get_statusCode()){
	            var requestResponse = requestBack.get_responseData();
	            if (requestResponse == "FILTER ON"){
	                success = true;
       	            $get('FilterOffDiv').style.display = 'none';
	                $get('FilterBackOnDiv').style.display = 'block';
	            }
	            else if(requestResponse == "FILTER OFF"){
	                success = true;
       	            $get('FilterBackOnDiv').style.display = 'none';
   	                $get('FilterOffDiv').style.display = 'inline';
	            }	            
	        }
        }        
    }
}();


// The SaveJob object holds everything that is important to the SaveJob.ascx control.
CB.AJAX.SaveJob = function () {
    var sj_pending = {jobDID:'',title:'',company:'',notes:'',savedJobDID:''};	
    
        // save the job , this will be called when the saveJob box is opened
    function saveJob(options) {
        var data = 'LoadNoteOnly=True' + '&' +
                   'JobDID=' + options.jobDID + '&' +
		           'JobTitle=' + encodeURIComponent(options.title + ' @ ' + options.company);
    			   
        sj_pending.jobDID = options.jobDID;
        sj_pending.title = options.title;
        sj_pending.company = options.company;
        sj_pending.savedJobDID = '';
        sj_pending.notes = '';

        CB.AJAX.submitCallback(data, 'SaveThisJob.aspx', handleSaveJobBoxResponse, true);
    }
    
    // this will be called when the saved note submit button is clicked
    function saveNote() {
        var data = 'LoadNoteOnly=False' + '&' +
       'JobDID=' + sj_pending.jobDID + '&' +
       'JobTitle=' + encodeURIComponent(sj_pending.title + ' @ ' + sj_pending.company) + '&' +
       'JobNotes=' + encodeURIComponent(CB.e(CB.AJAX.SaveJob.prefix + 'Notes').value);
       
       sj_pending.notes = CB.e(CB.AJAX.SaveJob.prefix + 'Notes').value;
               
        //If we have a SavedJobDID pass that along so that we protect from double saving
        if(sj_pending.savedJobDID !== null && sj_pending.savedJobDID !== '')
        {
            data += '&SavedJobDID=' + sj_pending.savedJobDID;
        } 
        CB.AJAX.submitCallback(data, 'SaveThisJob.aspx', handleSaveNoteBoxResponse,true);
    }
    
    // handles call back from the save job response
    function handleSaveJobBoxResponse(success, responseText) {
        // responseText must conatins the communication result in front of the message
        // eg.  responseText = SUCCESS;This is a test message
        var separator = (responseText.indexOf(';')<0)? 0:responseText.indexOf(';');
        var result = responseText.substr(0,separator);
        var results = result.split('&'); // if it is a success we should have a SavedJobDID appended to "SUCCESS"
        result = results[0];
        sj_pending.savedJobDID = results[1];  // storing savedJobDID so that when we save a note we can pass it along
        
        var notes = responseText.substring(separator+1);
        if (notes !== null && notes !== '') {
            // we must have saved this job before, so prefill the notes field
            sj_pending.notes = notes;
        }

        if(success && result=="SUCCESS") {
            if (CB.AJAX.SaveJob.onSaveJobSuccess){
                CB.AJAX.SaveJob.onSaveJobSuccess();
            }

            CB.AJAX.SaveJob.formAP.show(null, sj_pending);        
        }    
        else {
            // something went wrong with the AJAX callback, show the error message
            CB.AJAX.SaveJob.errorAP.show();
        }
    }

    function handleSaveNoteBoxResponse(success, responseText) {
        // responseText must conatins the communication result in front of the message
        // eg.  responseText = SUCCESS;This is a test message
        var separator = (responseText.indexOf(';')<0)? 0:responseText.indexOf(';');
        var result = responseText.substr(0,separator);
        var results = result.split('&'); // if it is a success we should have a SavedJobDID appended to "SUCCESS"
        result = results[0];
        sj_pending.savedJobDID = results[1];   // storing savedJobDID so that when we save a note we can pass it along
      
        if(success && result=="SUCCESS") {
            if (CB.AJAX.SaveJob.onSaveNoteSuccess){
                CB.AJAX.SaveJob.onSaveNoteSuccess();
            }
            CB.AJAX.SaveJob.noteSavedAP.show();
        }    
        else {
            // something went wrong with the AJAX callback, show the error message
            CB.AJAX.SaveJob.errorAP.show();
        }
    }
    
    function handleUserRejectedLoginResponse(success, responseText) {
        var div,divKnown,hyperlink,welcome;
        if (success && responseText == 'Success') {
            div = CB.e('_ctl0_pnlSign');
            if(div !== null){
                divKnown = CB.e('_ctl0_lblWelcome');	                
                if(divKnown !== null){
                    hyperlink = CB.e('_ctl0_cblSignInKnown');
                    welcome = CB.e('_ctl0_lblWelcome');
                    welcome.innerHTML = "";
                    hyperlink.innerHTML = "Already Registered?  Sign In &gt;&gt;";                
                }	                               
            }
        }
	}
	
	function onLoginSuccess() {
	    CB.e('SJSignInAlertDiv').style.display = 'inline';
	    CB.AJAX.SaveJob.savingAP.show();
    }
	 
	function onLoginClose() {
        CB.AJAX.SaveJob.savingAP.show();
        CB.AJAX.SaveJob.userRejectedLogin('button');
    }
    
	return {
	    prefix: '',
	    notes: function() {
	        return sj_pending.notes;
	    },
        savingOnShow: function (options) {
            if (options) {
                if(options.mode && options.mode == 'note') {
                    saveNote();
                }
                else {
                    // set the values in the elms
	                CB.e('SaveJobTitleCompany').innerHTML = options.title + " @ " + options.company;
	                CB.e(CB.AJAX.SaveJob.prefix + 'Notes').value = '';
	                saveJob(options);
	            }
	        }
	        else {
	            // we are coming from the login control, so we must be saving a job.  grab everything from the pending object
                // set the values in the elms
                CB.e('SaveJobTitleCompany').innerHTML = sj_pending.title + " @ " + sj_pending.company;
                CB.e(CB.AJAX.SaveJob.prefix + 'Notes').value = '';
                saveJob(sj_pending);
	        }
        },
        
        formOnShow: function(options) {
            if (options) {
                if (!options.usePendingValues) {
                    sj_pending.jobDID = options.jobDID;
                    sj_pending.title = options.title;
                    sj_pending.company = options.company;
                    sj_pending.savedJobDID = options.savedJobDID;
                    sj_pending.notes = options.notes;
                }
                
                CB.e('SaveJobTitleCompany').innerHTML = sj_pending.title + " @ " + sj_pending.company;
                if (sj_pending.notes != "") { CB.e(CB.AJAX.SaveJob.prefix + 'Notes').value = sj_pending.notes; }
	            
	            if(options.mode && options.mode == 'addEditNote') {
	                // hide the successfully saved message
	                CB.e(CB.AJAX.SaveJob.prefix + 'SaveJobBoxIntro').style.display = 'none';
	            }
            }
        },

        formOnHide: function () {
            if (CB.AJAX.SaveJob.onClose) {
                CB.AJAX.SaveJob.onClose();
            }
            CB.e(CB.AJAX.SaveJob.prefix + 'SaveJobBoxIntro').display = '';
        },
        
        saveThisJobOnClick: function (anchor, options) {
            if (CB.e(CB.AJAX.SaveJob.prefix + 'hdnShowLogin').value == 'true' && !CB.AJAX.Login.isLoggedIn()) {
                sj_pending.jobDID = options.jobDID;
                sj_pending.title = options.title;
                sj_pending.company = options.company;
                sj_pending.savedJobDID = '';
                sj_pending.notes = '';
                
                CB.AJAX.Login.loginAP.show(anchor, {introHTML:CB.e('loginHTML').innerHTML,
                    onLoginSuccessHandler:onLoginSuccess,
                    onCloseHandler:onLoginClose,
                    siteDownHTML:CB.e('siteDownHTML').innerHTML});
            }
            else {
                CB.AJAX.SaveJob.savingAP.show(anchor, options);
            }
        },
        userRejectedLogin: function(source) {
	        CB.e(CB.AJAX.SaveJob.prefix + 'hdnShowLogin').value = 'false';
	        var data = 'UserRejectedLogin=True&Source=' + source;
	        CB.AJAX.submitCallback(data, 'ForgetMe.aspx', handleUserRejectedLoginResponse,true);
	    },
	    saveNoteOnClick: function(){
	        // check if there is any note to save
            if (CB.e(CB.AJAX.SaveJob.prefix + 'Notes').value === "") {
                CB.AJAX.SaveJob.formAP.hide();
            }
            else{
                CB.AJAX.SaveJob.savingAP.show(null, {mode:'note'});
            }
	    },
	    decodeHTML:function(str){
	        return str.replace("&amp;", "&");
        },
        initializePopups:function() {
            CB.AJAX.SaveJob.savingAP = CB.object(CB.AJAX.Popup);
            CB.AJAX.SaveJob.savingAP.initialize(CB.e('sj_saving'));
            CB.AJAX.SaveJob.savingAP.onShow = CB.AJAX.SaveJob.savingOnShow;
            
            CB.AJAX.SaveJob.formAP = CB.object(CB.AJAX.Popup);
            CB.AJAX.SaveJob.formAP.initialize(CB.e('sj_form'));
            CB.AJAX.SaveJob.formAP.onShow = CB.AJAX.SaveJob.formOnShow;
            CB.AJAX.SaveJob.formAP.onHide = CB.AJAX.SaveJob.formOnHide;
            
            CB.AJAX.SaveJob.noteSavedAP = CB.object(CB.AJAX.Popup);
            CB.AJAX.SaveJob.noteSavedAP.initialize(CB.e('sj_noteSaved'));
            CB.AJAX.SaveJob.noteSavedAP.onHide = CB.AJAX.SaveJob.formOnHide;
            
            CB.AJAX.SaveJob.errorAP = CB.object(CB.AJAX.Popup);
            CB.AJAX.SaveJob.errorAP.initialize(CB.e('sj_error'));
        }
    };
} ();

// The SaveSearch object holds everything that is important to the SaveSearch.ascx control    
CB.AJAX.SaveSearch = function () {
    var ddlsToHide;
    // handles the return signal from the AJAX page
	function handleSaveJobSearchResponse(success, responseText)	{
	    var savedSearchData,savedSearchArray,didSplit,DID,searchNameSplit,SearchName,EmailFrequency,onclickString,cnt;
		if(success)	{
		    if(responseText == "SUCCESS") {  // SavedJobSearch was able to be saved
                CB.AJAX.SaveSearch.confirmSaveAC.show();	        
		    }
		    else {  // Limit exceeded 5 SavedJobSearch
		        // Show control prompting to delete  
		        savedSearchData = responseText.substring(4, responseText.length);   // Removes beginning 'DID='
		        savedSearchArray = (savedSearchData).split("|DID="); // Splits saved searches while removing 'DID='
		        
		        for(cnt=0; cnt < savedSearchArray.length; cnt++){
		            didSplit = savedSearchArray[cnt].split(";SearchName="); // Split seperates DID from the rest
		            DID = didSplit[0];
		            searchNameSplit = didSplit[1].split(";EmailFrequency="); // Spit seperates SearchName from the rest
		            SearchName = searchNameSplit[0];
		            EmailFrequency = searchNameSplit[1].substr(0, 1) + searchNameSplit[1].substr(1).toLowerCase();
		            
		            if (SearchName.length > 20){
		                SearchName = SearchName.substr(0, 17) + '...';
		            }
		            
		            // Load each individual SavedJobSearch for deletion
		            CB.e('delete' + cnt + 'Name').innerHTML = SearchName.replace('&', '&amp;');
		            CB.e('delete' + cnt + 'Frequency').innerHTML = EmailFrequency;
		            onclickString = "CB.AJAX.SaveSearch.savingAC.show(null, {searchName:'" + CB.e(CB.AJAX.SaveSearch.prefix + 'SSName').value + "',criteria:'" + CB.e(CB.AJAX.SaveSearch.prefix + 'hdn_strCrit').value + "',frequency:'" + CB.e('SSFrequency').value + "',did:'" + DID + "',mode:'delete'})";
		            CB.e('delete' + cnt + 'Link').parentNode.innerHTML = '<a href="#" id="delete' + cnt + 'Link" onclick="' + onclickString + '">' + CB.e('delete' + cnt + 'Link').innerHTML + '</a>';
		        }
                CB.AJAX.SaveSearch.deleteSearchAC.show();
		    }		    
		}
		else{
		    CB.AJAX.SaveSearch.siteDownSavingAC.show();
		}
	}

	function handleSaveJobSearchDeleteResponse(success, responseText){
	    if(success){
	        if(responseText == "SUCCESS"){
	            CB.AJAX.SaveSearch.confirmSaveAC.show();
	        }
	    }
	    else{
	        CB.AJAX.SaveSearch.siteDownSavingAC.show();
	    }
	}
	
	function onLoginSuccess(){
	    CB.e('SSSignInAlertDiv').style.display = '';
	    CB.AJAX.SaveSearch.saveSearchAC.show();
	}
	
    //window.onDomReady(initializePopups);

    return {
        saveSearchOnShow: function(options) {
            CB.e('SSFrequency').value = 'DAILY';  
            CB.e('SSFrequency').style.display = ''; // crazy display logic required for IE6
            
            if (CB.Window.ie6){
                var i=0;
                for (i; i < ddlsToHide.length; i++){
                    ddlsToHide[i].style.visibility = 'hidden';
                }
            }
        },
        saveSearchOnHide: function() {
            CB.e('SSFrequency').style.display = 'none'; // crazy display logic required for IE6
            CB.e('SSSignInAlertDiv').style.display = 'none';
        },
        saveSearchOnSubmit: function (strCrit) {
            var SSName = CB.e(CB.AJAX.SaveSearch.prefix + 'SSName');
            if (SSName.value.length > 0) {	
    	        SSName.value = SSName.value.replace(/"/g, '');
            	SSName.value = SSName.value.replace(/'/g, "");
    	        CB.AJAX.SaveSearch.savingAC.show(null, {searchName:SSName.value, criteria:strCrit, frequency:CB.e('SSFrequency').value, mode:'saveNew'});
            } 
	        else {
            	alert(CB.AJAX.SaveSearch.alertNameSearch);
            }
        },
        savingOnShow: function(options) {
            var data;
        	if (options.mode == 'delete') {  
                data = "SearchName=" + encodeURIComponent(options.searchName);
                data += "&StrCritV2=" + options.criteria;
                data += "&EmailFrequency=" + options.frequency;
                data += "&DID=" + options.did;
                CB.AJAX.submitCallback(data, "SaveSearch.aspx", handleSaveJobSearchDeleteResponse,true);
            }
            else {
                data = "SearchName=" + encodeURIComponent(options.searchName);
		        data += "&StrCritV2=" + options.criteria;
		        data += "&EmailFrequency=" + options.frequency;
		        CB.AJAX.submitCallback(data, "SaveSearch.aspx", handleSaveJobSearchResponse,true);
		    }
        },
        deleteOnShow: function(options) {
            CB.e('tab_deleteSearch').style.display = '';  // crazy display logic required for IE6
        },
        deleteOnHide: function(options) {
            CB.e('tab_deleteSearch').style.display = 'none'; // crazy display logic required for IE6
        },
        confirmSaveOnHide: function() {
            CB.AJAX.SaveSearch.onClose();
        },
        onClose: function() {
            if (CB.Window.ie6){
                var i=0;
                for (i; i < ddlsToHide.length; i++){
                    ddlsToHide[i].style.visibility = 'visible';
                }
            }
        },
        saveThisSearchOnClick: function(anchor, options) {
            if (CB.AJAX.Login.isLoggedIn()) {
                CB.AJAX.SaveSearch.saveSearchAC.show(anchor, options);
            }
            else {
                options.onLoginSuccessHandler = onLoginSuccess;
                CB.AJAX.Login.loginAP.show(anchor, options);
            }
        },
        initializePopups:function () {
	        CB.AJAX.SaveSearch.saveSearchAC = CB.object(CB.AJAX.Popup);
            CB.AJAX.SaveSearch.saveSearchAC.initialize(CB.e('saveSearch'));
            CB.AJAX.SaveSearch.saveSearchAC.onShow = CB.AJAX.SaveSearch.saveSearchOnShow;
            CB.AJAX.SaveSearch.saveSearchAC.onHide = CB.AJAX.SaveSearch.saveSearchOnHide;
            
            CB.AJAX.SaveSearch.deleteSearchAC = CB.object(CB.AJAX.Popup);
            CB.AJAX.SaveSearch.deleteSearchAC.initialize(CB.e('deleteSearch'));
            CB.AJAX.SaveSearch.deleteSearchAC.onShow = CB.AJAX.SaveSearch.deleteOnShow;
            CB.AJAX.SaveSearch.deleteSearchAC.onHide = CB.AJAX.SaveSearch.deleteOnHide;
            
            CB.AJAX.SaveSearch.confirmSaveAC = CB.object(CB.AJAX.Popup);
            CB.AJAX.SaveSearch.confirmSaveAC.initialize(CB.e('confirmSave'));
            CB.AJAX.SaveSearch.confirmSaveAC.onHide = CB.AJAX.SaveSearch.confirmSaveOnHide;
            
            CB.AJAX.SaveSearch.savingAC = CB.object(CB.AJAX.Popup);
            CB.AJAX.SaveSearch.savingAC.initialize(CB.e('ss_saving'));
            CB.AJAX.SaveSearch.savingAC.onShow = CB.AJAX.SaveSearch.savingOnShow;
            
            CB.AJAX.SaveSearch.siteDownSavingAC = CB.object(CB.AJAX.Popup);
            CB.AJAX.SaveSearch.siteDownSavingAC.initialize(CB.e('siteDownSaving'));
            
            // initialize textbox that we want to submit form on enter
            CB.Textbox.setupTextbox(CB.e(CB.AJAX.SaveSearch.prefix + 'SSName'), function(){CB.e(CB.AJAX.SaveSearch.prefix + 'btn_saveSS').click();});
            ddlsToHide = document.getElementsByTagName('select');
	    }
    };
} ();

// The AnonymousSaveSearch object holds everything that is important to the AnonymousSaveSearch.ascx control    
CB.AJAX.AnonymousSaveSearch = function () {
    // handles the return signal from the AJAX page
	function handleSaveJobSearchResponse(success, responseText)	{
	    var savedSearchData,savedSearchArray,didSplit,DID,searchNameSplit,SearchName,EmailFrequency,onclickString,cnt;
		if(success)	{
		    if(responseText == "SUCCESS") {  // SavedJobSearch was able to be saved
                	CB.AJAX.AnonymousSaveSearch.confirmSaveAC.show();	        
		    }
		    else {
		    	CB.AJAX.AnonymousSaveSearch.siteDownSavingAC.show();
  		    }
		}
	}

	function handleSaveJobSearchDeleteResponse(success, responseText){
	    if(success){
	        if(responseText == "SUCCESS"){
	            CB.AJAX.AnonymousSaveSearch.confirmSaveAC.show();
	        }
	    }
	    else{
	        CB.AJAX.AnonymousSaveSearch.siteDownSavingAC.show();
	    }
	}

    return {
        saveSearchOnShow: function(options) {
        },
        saveSearchOnHide: function() {
        },
        saveSearchOnSubmit: function (strCrit) {
            var SSName = CB.e(CB.AJAX.AnonymousSaveSearch.prefix + 'SSName');
            var SSEmail = CB.e(CB.AJAX.AnonymousSaveSearch.prefix + 'SSEmail');
            var SSRealName = CB.e(CB.AJAX.AnonymousSaveSearch.prefix + 'SSRealName');
            var SSCobrandCode = CB.e(CB.AJAX.AnonymousSaveSearch.prefix + 'SSCobrandCode');
            var SSSearchPublicJobs = CB.e(CB.AJAX.AnonymousSaveSearch.prefix + 'SSSearchPublicJobs');
            var SSSearchPrivateJobs = CB.e(CB.AJAX.AnonymousSaveSearch.prefix + 'SSSearchPrivateJobs');
            var SSSearchInternalJobs = CB.e(CB.AJAX.AnonymousSaveSearch.prefix + 'SSSearchInternalJobs');
            if (SSName.value.length > 0) {	
    	        SSName.value = SSName.value.replace(/"/g, '');
            	SSName.value = SSName.value.replace(/'/g, "");		
            	if (SSEmail.value.length > 0) {
            		var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
            		var regex = new RegExp(emailReg);
            		if (regex.test(SSEmail.value)) {
	            	    if (SSRealName.value.length > 0) {
  	        	      	CB.AJAX.AnonymousSaveSearch.savingAC.show(null, {searchName:SSName.value, criteria:strCrit, email:SSEmail.value, realName:SSRealName.value, cobrandCode:SSCobrandCode.value, searchPublicJobs:SSSearchPublicJobs.value, searchPrivateJobs:SSSearchPrivateJobs.value, searchInternalJobs:SSSearchInternalJobs.value, mode:'saveNew'});   
        	    	    }
            		    else {
            	        	alert(CB.AJAX.AnonymousSaveSearch.alertRealNameSearch);
	            	    }
			}
			else {
				alert(CB.AJAX.AnonymousSaveSearch.alertEmailInvalidSearch);
			}
            	}
                else {
		        alert(CB.AJAX.AnonymousSaveSearch.alertEmailSearch);
                }                
            } 
	        else {
            	alert(CB.AJAX.AnonymousSaveSearch.alertNameSearch);
            }
        },
        savingOnShow: function(options) {
            var data;
            data = "SearchName=" + encodeURIComponent(options.searchName);
		        data += "&StrCrit=" + options.criteria;
		        data += "&Email=" + encodeURIComponent(options.email);
		        data += "&RealName=" + encodeURIComponent(options.realName);
		        data += "&cobrandCode=" + encodeURIComponent(options.cobrandCode);
		        data += "&searchPublicJobs=" + encodeURIComponent(options.searchPublicJobs);
		        data += "&searchPrivateJobs=" + encodeURIComponent(options.searchPrivateJobs);
		        data += "&searchInternalJobs=" + encodeURIComponent(options.searchInternalJobs);
		        CB.AJAX.submitCallback(data, "AnonymousSaveSearch.aspx", handleSaveJobSearchResponse,true);
        },
        confirmSaveOnHide: function() {
            CB.AJAX.AnonymousSaveSearch.onClose();
        },
        onClose: function() {
        },
        saveThisSearchOnClick: function(anchor, options) {
                CB.AJAX.AnonymousSaveSearch.saveSearchAC.show(anchor, options);
        },
        saveThisAnonymousSearchOnClick: function(anchor, options) {
                CB.AJAX.AnonymousSaveSearch.saveSearchAC.show(anchor, options);
        },
        initializePopups:function () {
	    CB.AJAX.AnonymousSaveSearch.saveSearchAC = CB.object(CB.AJAX.Popup);
            CB.AJAX.AnonymousSaveSearch.saveSearchAC.initialize(CB.e('saveSearch'));
            CB.AJAX.AnonymousSaveSearch.saveSearchAC.onShow = CB.AJAX.AnonymousSaveSearch.saveSearchOnShow;
            CB.AJAX.AnonymousSaveSearch.saveSearchAC.onHide = CB.AJAX.AnonymousSaveSearch.saveSearchOnHide;           
            
            CB.AJAX.AnonymousSaveSearch.confirmSaveAC = CB.object(CB.AJAX.Popup);
            CB.AJAX.AnonymousSaveSearch.confirmSaveAC.initialize(CB.e('confirmSave'));
            CB.AJAX.AnonymousSaveSearch.confirmSaveAC.onHide = CB.AJAX.AnonymousSaveSearch.confirmSaveOnHide;
            
            CB.AJAX.AnonymousSaveSearch.savingAC = CB.object(CB.AJAX.Popup);
            CB.AJAX.AnonymousSaveSearch.savingAC.initialize(CB.e('ss_saving'));
            CB.AJAX.AnonymousSaveSearch.savingAC.onShow = CB.AJAX.AnonymousSaveSearch.savingOnShow;
            
            CB.AJAX.AnonymousSaveSearch.siteDownSavingAC = CB.object(CB.AJAX.Popup);
            CB.AJAX.AnonymousSaveSearch.siteDownSavingAC.initialize(CB.e('siteDownSaving'));
            
            CB.Textbox.setupTextbox(CB.e(CB.AJAX.AnonymousSaveSearch.prefix + 'SSName'), function(){CB.e(CB.AJAX.AnonymousSaveSearch.prefix + 'btn_saveSS').click();});
	    }
    };
} ();


// The EmailJob object holds everything that is important to the EmailJob.ascx control
CB.AJAX.EmailJob = function () {
    var ej_pending = {jobDID: ''};
    
    	// handles the return signal from the AJAX page
	function handleEmailJobBoxResponse(success, responseText){
		if(success){
			switch(responseText){
				case 'SUCCESS':
	                CB.AJAX.EmailJob.resultAC.show(null, {mode:'success'});
		            break;
					
				case 'INVALID':
	                CB.AJAX.EmailJob.emailJobFormAC.show(null, {mode:'invalidEmail'});
					break;
					
				case 'FAILURE':
	                CB.AJAX.EmailJob.resultAC.show(null, {mode:'error'});
			}
		}
		else{
			CB.AJAX.EmailJob.resultAC.show(null, {mode:'error'});
		}
	}
    
    //window.onDomReady(initializePopups);
    
    return {
        emailJobFormOnShow: function (options) {
            if(options && options.mode == 'invalidEmail') {
                CB.e('bademail').style.display = 'inline';
                CB.e('prompt').style.display = 'none';
            }
            else {
                CB.e('prompt').style.display = 'inline';
                CB.e('bademail').style.display = 'none';
            }
            ej_pending.jobDID = options.jobDID;
        },
        sendingOnShow: function(options){
            var xavierToAddress = CB.e(emailJobBoxPrefix + 'tbXavierToAddress') ? CB.e(emailJobBoxPrefix + 'tbXavierToAddress').value : '';
            var normalToAddress = CB.e(emailJobBoxPrefix + 'ToAddress') ? CB.e(emailJobBoxPrefix + 'ToAddress').value : '';
            var toAddress = '';
            if (xavierToAddress != '') { toAddress = xavierToAddress; }
            else if (normalToAddress != '') { toAddress = normalToAddress; }
        
    		var data = 'JobDID=' + ej_pending.jobDID + '&' +
		   'FromAddress=' + CB.e(emailJobBoxPrefix + 'FromAddress').value + '&' +
		   'ToAddress=' + toAddress + '&' +
		   'FromName=' + CB.e(emailJobBoxPrefix + 'FromName').value + '&' +
		   'MessageBody=' + CB.e(emailJobBoxPrefix + 'MessageBody').value;
				   
		    CB.AJAX.submitCallback(data, 'EmailThisJob.aspx', handleEmailJobBoxResponse, true);
        },
        resultOnShow: function(options) {
            if (options && options.mode == 'success'){
                CB.e('sendSuccess').style.display = 'inline';
                CB.e('sendError').style.display = 'none';
            }
            else {
                CB.e('sendSuccess').style.display = 'none';
                CB.e('sendError').style.display = 'inline';
            }
        },
        initializePopups:function () {
            CB.AJAX.EmailJob.emailJobFormAC = CB.object(CB.AJAX.Popup);
            CB.AJAX.EmailJob.emailJobFormAC.initialize(CB.e('emailJobForm'));
            CB.AJAX.EmailJob.emailJobFormAC.onShow = CB.AJAX.EmailJob.emailJobFormOnShow;

            CB.AJAX.EmailJob.sendingAC = CB.object(CB.AJAX.Popup);
            CB.AJAX.EmailJob.sendingAC.initialize(CB.e('sending'));
            CB.AJAX.EmailJob.sendingAC.onShow = CB.AJAX.EmailJob.sendingOnShow;

            CB.AJAX.EmailJob.resultAC = CB.object(CB.AJAX.Popup);
            CB.AJAX.EmailJob.resultAC.initialize(CB.e('result'));
            CB.AJAX.EmailJob.resultAC.onShow = CB.AJAX.EmailJob.resultOnShow;
	    }
    };
}();

// Job Sort Box
CB.AJAX.JobSortBox = function () {                    	
    //window.onDomReady(initializePopups);	
	return {
	   formOnHide: function () {
            if (CB.AJAX.JobSortBox.onClose) {
                CB.AJAX.JobSortBox.onClose();
            }
            CB.AJAX.JobSortBox.ClearValues(); 
        },
        
        JobSortBoxOnClick: function (anchor) {                        
            CB.AJAX.JobSortBox.formAP.show(anchor);            
        },
              
        SetScSd:function (scVal,sdVal) {
           CB.e(jSort_FormID).sc.value = scVal;
           CB.e(jSort_FormID).sd.value = sdVal;
        },

        ShowLocBox:function (anchor) {
            CB.e('jSort_boxMessage').innerHTML = jSort_locMsg;
            if (CB.e(jSort_KeywordBox)) {
                CB.e(jSort_KeywordBox).style.display='none';
                CB.e(jSort_freeLocBox).style.display='inline';
            }
            CB.e(jSort_FormID).IPath.value = jSort_locIpathBase;
            CB.AJAX.JobSortBox.SetScSd(jSort_SClocVal,jSort_SDlocVal);
            CB.AJAX.JobSortBox.JobSortBoxOnClick(anchor);
        },

        ShowKeyBox:function (anchor) {
            CB.e('jSort_boxMessage').innerHTML = jSort_keyMsg;
            if (CB.e(jSort_freeLocBox)) {
                CB.e(jSort_KeywordBox).style.display='inline';
                CB.e(jSort_freeLocBox).style.display='none';
            }
            CB.e(jSort_FormID).IPath.value = jSort_keyIpathBase;
            CB.AJAX.JobSortBox.SetScSd(jSort_SCkeyVal,jSort_SDkeyVal);
            CB.AJAX.JobSortBox.JobSortBoxOnClick(anchor);
        },

        ClearValues:function () {
            if (CB.e(jSort_freeLocBox)){
                CB.e(jSort_freeLocBox).value = '';}
            if (CB.e(jSort_KeywordBox)){
                CB.e(jSort_KeywordBox).value = '';}
        },        

        initializePopups:function () {          
            CB.AJAX.JobSortBox.formAP = CB.object(CB.AJAX.Popup);
            CB.AJAX.JobSortBox.formAP.initialize(CB.e('SearchResult_form'));
            CB.AJAX.JobSortBox.formAP.onHide = CB.AJAX.JobSortBox.formOnHide;
        }
    };
} ();

function FilterRadius(){
var radius;
var qString = ''	;
radius = document.getElementById('distance_selector');
var query = window.location.search.substring(1); 
  var vars = query.split("&"); 
  for (var i=0;i<vars.length;i++) { 
    var pair = vars[i].split("="); 
    if (pair[0] != 'Radius'){
	qString = qString + pair[0] + '=' + pair[1] + '&'; 
	}
}     
window.location = '?' + qString + 'Radius=' + radius.options[radius.selectedIndex].value
}

function FilterPostedWithin(){
var within;
var qString = ''	;
within = document.getElementById('PostedWithin');
var query = window.location.search.substring(1); 
  var vars = query.split("&"); 
  for (var i=0;i<vars.length;i++) { 
    var pair = vars[i].split("="); 
    if (pair[0] != 'PostedWithin'){
	qString = qString + pair[0] + '=' + pair[1] + '&'; 
	}
}     
window.location = '?' + qString + 'PostedWithin=' + within.options[within.selectedIndex].value
}
function showalertform(q,x)
{
  var jaf = document.getElementById(x + 'jobalertform');
  jaf.style.display = (jaf.style.display != 'none' ? 'none' : '' );
  //var jal = document.getElementById(x + 'jobalertlabel');
  //jal.blur();
return false;

}

function blurme(el){
	
if(el&&el.blur){
		
el.blur();

	}

return false;
}


function ToggleDiv(divName,otherDiv)
{
//alert(divName);
//alert(otherDiv);
  var jaf = document.getElementById(divName);
  jaf.style.display = (jaf.style.display != 'none' ? 'none' : '' );
  
  
  //var other = document.getElementById(otherDiv);
  //alert(other.style.display);
  // if(other.style.display != 'none'){	
//	other.style.display = 'none';
  //  }

  
  return false;
}





