function setClassName(elementId, className) {
   var element = document.getElementById(elementId);
   if (element != null) {
      element.className= className;
   }
}
function doSubmit(formid) {
   formid.submit();
}

//result.jsp
function _st(el) {
   if (el) {
      window.status = String(el.innerHTML); 
   }
}

function cls() {
   window.status = '';
}

function blur(id) {
   var el = gbid(id); 
   if (el && el.blur) el.blur(); 
}

function gbid(id) { 
   return document.getElementById(id); 
}

function getLim(id) {
   var lim = gbid('lim_'+id);
   return lim ? lim.innerHTML : '';  
}

function setel(id,vis) { 
   var el = gbid(id); 
   if (el) {
      el.style.display = vis ? 'inline' : 'none';
   }
}

function rand() {
   return Math.floor(Math.random()*2147483647); 
}
// define a global req object;
var req = null;
function createXMLHttpRequest(){
   
   if (window.XMLHttpRequest) {
      req = new XMLHttpRequest();    
      if (req.overrideMimeType)
	 req.overrideMimeType('text/xml');  
   } else if (window.ActiveXObject) {       
      req = new ActiveXObject("Microsoft.XMLHTTP");
      if (req.overrideMimeType)
	 req.overrideMimeType('text/xml'); 
   }
}
function showSaveLink(id,jobid,visible) { 
   
   var el = gbid('savejoblink_'+id);  
   if (!visible) {
      el.innerHTML = '<span id="savejob_'+id+'"  class="sl" onclick="saveJob('+id+',\''+jobid+'\');" title="Save this job to JobSearchAll" onmouseover="_st(this);" onmouseout="cls()">Save Job</span>';    
   } else {
      el.innerHTML = getSavedHtml(id,jobid,false);
   }
}

function getSavedHtml(id,jobid,hasmemo){  
   return '<span><font color="#00CC33"><b>saved</b></font> <a href="Jobs?stype=savedjobs&label=all&pageNum=1&sort=-1">view saved jobs</a> | </span>' +
   '<span id="removejob_'+id+'" class="sl" onclick="removeJob('+id+',\''+jobid+'\');" onmouseover="_st(this);" onmouseout="cls()">remove </span>';   
}

function showEditMemo(id, visible,jobid) {
   var el = gbid('editsaved_'+id);
   el.innerHTML = visible ? getMemoHtml(id,jobid) : '';
}

function getMemoHtml(id,jobid) {
   var defaultLabelMessage = "(Optional) Add a saved job label. Example: Phone Interviewed, Applied, etc.";
   var defaultMemoMessage = "(Optional) Add your memo / notes for this saved job.";
   
   var vmemo = defaultMemoMessage;
   var memo = gbid('hidevmo_'+id);
   if(memo){
      vmemo = memo.innerHTML;

      vmemo = vmemo.replace(/<PRE>/i, "");
      vmemo = vmemo.replace(/<\/PRE>/i, "");
      //alert(vmemo);
   }
   
   var vlabel = defaultLabelMessage;
   var label = gbid('vlb_'+id);
   if(label){
      vlabel = label.innerHTML;
   }
   
   var memoHtml = '<span id="memo'+id+'" style="display:inline">'+
   '<table class="panel" cellspacing="1" cellpadding="2" align="left" border="0">'+
   '<tbody>'+
   '<tr>'+
   '<td class="panelTitle">Add/edit memo/notes, label, and interest level</td>'+
   '</tr>'+
   '<tr>'+
   '<td class="panelContent"> '+
   '<form id="memoForm'+id+'" name="memoForm'+id+'" method="post" onSubmit="return false">'+
   '<input name="op" type="hidden" value="update">'+
   '<input name="job" type="hidden" value="'+jobid+'">'+
   '<table width="100%" border="0">'+
   '<tbody> '+
   '<tr><td>'+ 'Memo:'+'</td></tr>'+                        
   '<tr><td>'+
   '<textarea  id="memo_'+id+'"  name="memo" class="textareaPreNewLine" cols="60" rows="10"  onfocus="if (this.value==\''+defaultMemoMessage+'\') { this.value=\'\'; } this.style.color=\'black\';">'+vmemo+'</textarea>'+
   '</td></tr>'+ 
   '<tr><td>'+
   'Label: '+
   '<input id="label_'+id+'" type="text" name="label" value="'+vlabel+'" maxlength="240" size="45" onKeyPress="" onfocus="if (this.value==\''+defaultLabelMessage+'\') { this.value=\'\'; } this.style.color=\'black\';"/>'+
   '</td>'+
   '</tr>'+
   '<tr>'+
   '<td>'+'Interest Level(1-5):'+ 
   '<select name="ilvl" size="1">'+
   '<option value="1">1</option>'+
   '<option value="2">2</option>'+
   '<option value="3" selected>3</option>'+
   '<option value="4">4</option>'+
   '<option value="5">5</option>'+
   '</select>'+
   '<br>'+
   '<br>'+
   'Your memo is only visible to you.'+
   '<input type="button"  value="Save" onclick="getMemo('+id+',memoForm'+id+')">'+'&nbsp;'+
   '<input type="button" value="Cancel" onclick="cancelMemo(\'' + id + '\',\'' + jobid + '\');">'+
   '</td>'+
   '</tr>'+
   '</tbody>'+
   '</table>'+
   '</form>'+
   '</td>'+
   '</tr>'+
   '</tbody>'+
   '</table>'+
   '</span>';
   return memoHtml;
}

function editSavedJobMemo(id,visible,jobid){  
   
   var defaultLabelMessage = "(Optional) Add a saved job label. Example: Phone Interviewed, Applied, etc.";
   var defaultMemoMessage = "(Optional) Add your memo / notes for this saved job.";
   
   var lim = getLim(id);
   showEditMemo(id,visible,jobid);
   setel('lim_'+id,!visible);
   var anchor = gbid('editmemolink_'+id);  
   
   if (anchor) {
      if (anchor.blur) anchor.blur();
      if (!visible) {
	 var lb = gbid('lb_'+id);             
	 var ilvl = gbid('ilvl_'+id);            
	 var mo = gbid('mo_'+id);
	 var editmemo = gbid('editmemo_'+id);
	 if ((lb.innerHTML != '') || (ilvl.innerHTML != '') || (mo.innerHTML != '')) {
	    anchor.innerHTML = 'view/edit memo'; 
	 } else { 
	    anchor.innerHTML = 'add memo';
	 }
      } else {
	 anchor.innerHTML = 'cancel';
      }
      anchor.onclick = function() { editSavedJobMemo(id, !visible); };
      
   }
   if (visible) {
      //initialize input fields with hints
      var el = gbid('label_'+id);
      
      if (el.value == defaultLabelMessage) {      
	 el.style.color = 'gray';  
	 
      }
      el = gbid('memo_'+id);
      if (el.value == defaultMemoMessage) {
	 el.style.color = 'gray';  
	 
      }
   }
}

function cancelMemo(id,jobid) { 
   editSavedJobMemo(id, false,jobid);
}

function saveJob(id,jobID){   
   
   var url = site_top_dir_path + "MyJobs?op=save&job="+jobID+"&isrp="+rand();
   createXMLHttpRequest();
   req.open("GET", url, true);
   req.onreadystatechange = function getS() { 
   if(req.readyState == 4){
	 if(req.status == 200){        
	    var result = req.responseText;          
	    // servlet response sucess
	    if (result.indexOf("sucess") > 0) {            
	       blur('savejob_'+id);      
	       showSaveLink(id,jobID,true); 
	       var el = gbid('editmemo_'+id); 
	       el.innerHTML = '| <span id="editmemolink_' + id + '" class="sl"  onclick="editSavedJobMemo('+id+',true,\''+jobID+'\')" onmouseover="_st(this);" onmouseout="cls()">add memo</span>';
	    }
            else if (result.indexOf("errorReachMAX")) {
	       alert("Hoops! reached maximum. We would really appreciate it if you could try to remove some old ones from your saved job list!");
	    }
            else if (result.indexOf("error")) {
	       alert("Error while saving your job, please try again!");
	    }
	    else {
	       alert(result);
	    }
	 }
      }
   }
   req.send(null);    
}

function removeJob(id,jobid){

   if(id == '0')
   {    
   var ilvl = ilvl_0;
   var mo = mo_0;
   var lb = lb_0;
   }
   else
   {
   var lb = $('lb_'+id);
   var ilvl = $('ilvl_'+id);
   var mo = $('mo_'+id);
  }
  
   var lbIsEmpty = isStringEmpty(lb.innerHTML);
   var ilvlIsEmpty = isStringEmpty(ilvl.innerHTML);
   var moIsEmpty = isStringEmpty(mo.innerHTML);
   if (!lbIsEmpty || !ilvlIsEmpty || !moIsEmpty) {
      var result = window.confirm("This job has saved memo -- do you still want to remove it?'");
      if (result == false) {
	 return;
      }
   }
   
   var url = site_top_dir_path + "MyJobs?op=remove&job="+jobid+"&isrp="+rand();
   createXMLHttpRequest();
   req.open("GET",url,true);
   req.onreadystatechange = function removeM(){
      if(req.readyState == 4){
	 if(req.status == 200){
	    var lb = gbid('lb_'+id);             
	    var ilvl = gbid('ilvl_'+id);            
	    var mo = gbid('mo_'+id);
	    var editmemo = gbid('editmemo_'+id);
	    var editsaved = gbid('editsaved_'+id);
	    
	    if((lb.innerHTML != '') || (ilvl.innerHTML != '') || (mo.innerHTML != '')){
	       //if (!confirm('This job has saved memo -- do you still want to remove it?')) return;                 
	       if(lb)
		  lb.innerHTML = '';
	       
	       if(ilvl)
		  ilvl.innerHTML = '';
	       
	       if(mo)
		  mo.innerHTML = '';
	    }
	    if(editmemo)
	       editmemo.innerHTML = ''; 
	    showSaveLink(id,jobid,false);
	    
	    if(editsaved.innerHTML !=''){
	       editSavedJobMemo(id,false,jobid);
	    }                           
	 }
      }
   }
   req.send(null);
}

function getMemo(id,formObj){

   if(formObj.memo.value.length > 800)
   {
        alert("Error, Memo field should be less than 800 characters.");
        return;
   }
   else if(formObj.label.value.length > 80)
   {
        alert("Error, Label field should be less than 80 characters.");
        return;
   }

   var url = site_top_dir_path + "MyJobs?isrp="+rand();
   createXMLHttpRequest();
   req.open("POST", url, true);
   req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   req.onreadystatechange = function getM(){
      if (req.readyState == 4) {          
	 if (req.status == 200) {   
	    if(formObj.label.value != ""){               
	       var lb = gbid('lb_'+id);                   
	       lb.innerHTML = '<br/>'+'<b>'+'Label'+'</b>:'+'&nbsp;'+'<a href="Jobs?stype=savedjobs&label='+formObj.label.value+'&pageNum=1&sort=-1">'+'<span id="vlb_'+id+'">'+formObj.label.value+'</span>'+'</a>'+'&nbsp;';  
	    } 
	    if(formObj.ilvl.value != ""){
	       var ilvl = gbid('ilvl_'+id);
	       ilvl.innerHTML = '<b>'+'Interest Level'+'</b>:'+'&nbsp;'+'<font color="#0066FF">'+formObj.ilvl.value+'</font>'+'&nbsp;';
	    }
	    if(formObj.memo.value != ""){
	       var mo = gbid('mo_'+id);
	       mo.innerHTML = '<b>'+'Memo'+'</b>:'+'&nbsp;'+'<span id="vmo_'+id+'">'+formObj.memo.value+'</span>'+'&nbsp;'  + '<span id="hidevmo_'+id+'" style="visibility:hidden; display:none;" ><pre>'+formObj.memo.value+'</pre></span>';
	    }                       
	    editSavedJobMemo(id, false);                                        
	 }                                            
      }
   }
   req.send("op="+formObj.op.value+"&job="+formObj.job.value+"&memo="+formObj.memo.value+"&label="+formObj.label.value+"&ilvl="+formObj.ilvl.value);   
}

//savedjob.jsp

function removeSavedPageJob(id,jobid,queryString){
   //alert("removeSavedPageJob");
   var labelSpan = $("lb_" + id);
   if (!isStringEmpty(labelSpan.innerHTML)) {
      var result = window.confirm("This job has saved memo -- do you still want to remove it?");
      if (result == false) {
	 return;
      }
   }
   // remove a job
   var url = site_top_dir_path + "MyJobs";
   var pars = "op=remove&job="+jobid+"&isrp="+rand();
   
   var req = new Ajax.Request(
      url,
      { method: "get", parameters: pars, onComplete: removeComplete, onFailure: requestFailure }
   );
}

function removeComplete(xmlHttp) {
   var result = xmlHttp.responseText;
   if (result.indexOf("sucess") > 0) {
      document.location.reload();
   }
   else {
      alert("Error occured while processing your request!");
   }
}

function requestFailure(xmlHttp) {
   alert("Request failed, please try again!");
}
// check a string is empty, a ~ z, A~Z, 1~9
function isStringEmpty(str) {
   for (var i = 0; i < str.length; i++) {
      var c = str.charAt(i);
      var isa2z = (c > 'a' && c < 'z');
      var isA2Z = (c > 'A' && c < 'Z');
      var isNum = (c > '0' && c < '9');
      if (isa2z || isA2Z || isNum) {
	 return false;
      }
   }
   return true;
}

function editSavedPageJobMemo(id,visible,jobid,queryString){  
   
   var defaultLabelMessage = "(Optional) Add a saved job label. Example: Phone Interviewed, Applied, etc.";
   var defaultMemoMessage = "(Optional) Add your memo / notes for this saved job.";
   
   var lim = getLim(id);
   showSavedPageEditMemo(id,visible,jobid,queryString);
   setel('lim_'+id,!visible);
   var anchor = gbid('editmemolink_'+id);  
   
   if (anchor) {
      if (anchor.blur) anchor.blur();
      if (!visible) {
	 var lb = gbid('lb_'+id);             
	 var ilvl = gbid('ilvl_'+id);            
	 var mo = gbid('mo_'+id);
	 var editmemo = gbid('editmemo_'+id);
	 if ((lb.innerHTML != '') && (ilvl.innerHTML != '') && (mo.innerHTML != '')) {
	    anchor.innerHTML = 'edit memo'; 
	 } else { 
	    anchor.innerHTML = 'add memo';
	 }
      } else {
	 anchor.innerHTML = 'cancel';
      }
      anchor.onclick = function() { editSavedJobMemo(id, !visible); };
      
   }
   if (visible) {
      //initialize input fields with hints
      var el = gbid('label_'+id);
      
      if (el.value == defaultLabelMessage) {      
	 el.style.color = 'gray';  
	 
      }
      el = gbid('memo_'+id);
      if (el.value == defaultMemoMessage) {
	 el.style.color = 'gray';  
	 
      }
   }
}

function showSavedPageEditMemo(id, visible,jobid,queryString) { 
   var el = gbid('editsaved_'+id);
   el.innerHTML = visible ? getSavedPageMemoHtml(id,jobid,queryString) : ''; 
}

function getSavedPageMemoHtml(id,jobid,queryString) {
   
   var defaultLabelMessage = "(Optional) Add a saved job label. Example: Phone Interviewed, Applied, etc.";
   var defaultMemoMessage = "(Optional) Add your memo / notes for this saved job.";
   
   var vmemo = defaultMemoMessage;
   var memo = gbid('hidevmo_'+id);
   if(memo){
      vmemo = memo.innerHTML;

      vmemo = vmemo.replace(/<PRE>/i, "");
      vmemo = vmemo.replace(/<\/PRE>/i, "");
      //alert(vmemo);
   }
   
   var vlabel = defaultLabelMessage
   var label = gbid('vlb_'+id);
   if(label){
      vlabel = label.innerHTML;
   }
   
   var html = 
   '<span id="memo'+id+'" style="display:inline">'+
      '<table class="panel" cellspacing="1" cellpadding="2" width="60%" align="left" border="0">'+
         '<tr>'+
	    '<td class="panelTitle">Add/edit memo/notes, label, and interest level</td>'+
	 '</tr>'+
	 '<tr>'+
	    '<td class="panelContent"> '+
	       '<form id="memoForm'+id+'" name="memoForm'+id+'" onsubmit="return false;">'+
		  '<input name="op" type="hidden" value="update">'+
		  '<input name="job" type="hidden" value="'+jobid+'">'+  
		  '<table width="100%">'+
		  '<tbody> '+                                 
		  '<tr><td>'+ 'Memo:'+'</td></tr>'+                        
		  '<tr><td>'+
		  '<textarea  id="memo_'+id+'"  name="memo" cols="60" rows="10"  onfocus="if (this.value==\''+defaultMemoMessage+'\') { this.value=\'\'; } this.style.color=\'black\';">'+vmemo+'</textarea>'+
		  '</td>'+
		  '</tr>'+
		  '<tr>'+
		  '<td>'+'Label:'+
		  '<input id="label_'+id+'" type="text" name="label" value="'+vlabel+'" maxlength="240" size="45" onfocus="if (this.value==\''+defaultLabelMessage+'\') { this.value=\'\'; } this.style.color=\'black\';"/>'+
		  '</td>'+
		  '</tr>'+
		  '<tr>'+
		  '<td>'+'Interest Level(1-5):'+ 
		  '<select name="ilvl" size="1">'+
		  '<option value="1">1</option>'+
		  '<option value="2">2</option>'+
		  '<option value="3" selected>3</option>'+
		  '<option value="4">4</option>'+
		  '<option value="5">5</option>'+
		  '</select>'+
		  '<br>'+
		  '<br>'+
		  'Your memo is only visible to you.'+
		  '<input type="button"  value="Save" onclick="getSavedPageMemo('+id+',memoForm'+id+',\''+queryString+'\')">'+'&nbsp;'+
		  '<input type="button" value="Cancel" onclick="cancelMemo(\'' + id + '\',\'' + jobid + '\');">'+
		  '</td>'+
		  '</tr>'+
		  '</tbody>'+
		  '</table>'+
	       '</form>'+
	    '</td>'+                           
	 '</tr>'+
      '</table>'+
   '</span>';
   return html;
}

function getSavedPageMemo(id,formObj,queryString){
   var url = site_top_dir_path + "MyJobs?isrp="+rand();
   createXMLHttpRequest();
   req.open("POST", url, true);
   req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   req.onreadystatechange = function getM(){
      if (req.readyState == 4) {          
	 if (req.status == 200) {   
	    if(formObj.label.value != ""){               
	       var lb = gbid('lb_'+id);                   
	       lb.innerHTML = '<b>'+'Label'+'</b>:'+'&nbsp;'+'<a href="Jobs?stype=savedjobs&label='+formObj.label.value+'&pageNum=1&sort=-1">'+'<span id="vlb_'+id+'">'+formObj.label.value+'</span>'+'</a>'+'&nbsp;';  
	    } 
	    if(formObj.ilvl.value != ""){
	       var ilvl = gbid('ilvl_'+id);
	       ilvl.innerHTML = '<b>'+'Interest Level'+'</b>:'+'&nbsp;'+'<font color="#0066FF">'+formObj.ilvl.value+'</font>'+'&nbsp;';
	    }
	    if(formObj.memo.value != ""){
	       var mo = gbid('mo_'+id);
	       mo.innerHTML = '<b>'+'Memo'+'</b>:'+'&nbsp;'+'<span id="vmo_'+id+'">'+formObj.memo.value+'</span>'+'&nbsp;' + '<span id="hidevmo_'+id+'" style="visibility:hidden; display:none;" ><pre>'+formObj.memo.value+'</pre></span>';
	    }                       
	    editSavedJobMemo(id, false);    
	    
	    var url = "Jobs?"+queryString+"&isrp="+rand();
	    
	    req.open("GET",url,true);
	    req.onreadystatechange = function getLabelArray(){               
	       if(req.readyState == 4){                  
		  if(req.status == 200){
		     showMyLabels(req);
		  }
	       }
	    }
	    req.send(null);                                    
	 }                                            
      }
   }
   req.send("op="+formObj.op.value+"&job="+formObj.job.value+"&memo="+formObj.memo.value+"&label="+formObj.label.value+"&ilvl="+formObj.ilvl.value);   
}

function getMyLabels() {
   var url = document.location.href + "&isrp="+rand();
   var req = new Ajax.Request(
      url,
      { method: "get", onComplete: showMyLabels, onFailure: requestFailure }
   );
}

function showMyLabels(xmlHttp) {
   var labelArray = xmlHttp.responseText.parseJSON();
   var html = "";
   for (var i = 0; i < labelArray.length; i++) {
      var label =labelArray[i];
      var j = label.length;
      while(label.charAt(j) != '('){
	 j--;
      }
      var labelhref = label.substring(0,j);
      if (i == 0) {
	 labelhref = "all";
      }
      html += '<a href="Jobs?stype=savedjobs&label='+labelhref+'&pageNum=1&sort=-1">'+label+'</a>';
      if (i < labelArray.length) {
	 html += '<br/>'
      }
      html += "\r\n";
   }
   var labelContainer = $("lbcforEach");
   labelContainer.innerHTML = html; //+ labelContainer.innerHTML;
}

function showMoreOption(id,numOfDupJobs,jobId,jobOrg,jobSiteName,company,title,city,state,countryCode){
   
    var spanObj = gbid('moreop_'+id);
    var spanObjShowTable = gbid('moreopdetail_'+id);
    var companyEncode = UrlEncode(company);
    var titleEncode = UrlEncode(title);
    var cityEncode = UrlEncode(city);
    var stateEncode = UrlEncode(state);
    var countryCodeEncode = UrlEncode(countryCode);
    var jobIdEncode = UrlEncode(jobId);
    var jobOrgEncode = UrlEncode(jobOrg);
    var jobSiteNameEncode = UrlEncode(jobSiteName);
    var csc = UrlEncode(cityEncode+','+stateEncode+','+countryCodeEncode);
    var jobFullUrlEncode = UrlEncode('http://www.jobsearchall.com' + site_top_dir_path + 'Jobs?stype=job&job=' + jobId);

    var html1=  '<table class="panel" cellspacing="1" cellpadding="2" width="97%" align="left" border="0">'+
                  '<tr>'+
	               '<td class="panelTitle">More options about this job</td>'+
	          '</tr>'+
	          '<tr>'+
	             '<td class="panelContent"> ';
    var  html2 =  'View' + '&nbsp' + '<a href="a href="Jobs?stype=dup&job='+jobIdEncode+'&kt='+titleEncode+'&jobOrg='+jobOrgEncode+'&kcomp='+companyEncode+'&city='+cityEncode+'&state='+stateEncode+'&jobSiteName='+jobSiteNameEncode+'>'+ 'duplicated jobs' + '</a>' + '<br/>';
    var   html3=  'View all jobs from:' + '&nbsp' + '<a href="Jobs?stype=advanced&kcomp='+companyEncode+'">' + company  + '.' + '</a>' + '<br/>' +
                        'View' + '&nbsp' + '<a href="Jobs?stype=advanced&kt='+titleEncode+'&city='+cityEncode+'&state='+stateEncode+'&ctry='+countryCodeEncode+'">' + 'similar jobs at '+
                              city + ', ' + state + ', ' + countryCode + '</a>' + '<br/>' +
                        'View' + '&nbsp' + '<a href="Jobs?stype=advanced&kt='+titleEncode+'"&ctry='+countryCodeEncode+'">' + 'similar jobs in ' +
                              countryCode + '</a>' + '<br/>' +
                         'View' + '&nbsp' + '<a href="Go?op=redir&url=http://maps.google.com/maps?q=' + csc + '">' +'map for location: ' + city + ', ' + state + ', ' + countryCode + '</a>' + '<br/>' +
                         '<a href="' + site_top_dir_path +  'emailto.jsp?title=Email Job&fromEmail=&fromName=&toEmail=&subject=Job Found at JobSearchAll.com: ' + titleEncode +  '&message=' +  jobFullUrlEncode  +  '&emailType=emailJob">' + 'Email this job' + '</a>' + '<br/>' +

                     '</td>'+                           
	           '</tr>'+
                  '</table>';
    
    var opHtml =  '<span id="moreopshow_id" title="More options about this job" onclick="cancelMoreOption(\''+id+'\',\''+company+'\',\''+title+'\',\''+city+'\',\''+state+'\',\''+countryCode+'\');" class="sl" style="clear:both;">Hide more options</span> ';
    
    spanObj.innerHTML = opHtml;
    if(numOfDupJobs == 1){
       spanObjShowTable.innerHTML = html1 + html2 + html3;
    }else{
       spanObjShowTable.innerHTML = html1 + html3;
    }
    
}

function cancelMoreOption(id,company,title,city,state,countryCode){

    var spanObj = gbid('moreop_'+id);
    var spanObjShowTable =  gbid('moreopdetail_'+id);
    var html = '<span id="moreopshow_id" title="More options about this job" onclick="showMoreOption(\''+id+'\',\''+company+'\',\''+title+'\',\''+city+'\',\''+state+'\',\''+countryCode+'\');" class="sl" style="clear:both;">'+    
      'More Options' + '</span>';
    spanObj.innerHTML = html;
    spanObjShowTable.innerHTML = '';

}

function UrlEncode(str){ 
  var encodedInputString=escape(str);
  encodedInputString=encodedInputString.replace("+", "%2B");
  encodedInputString=encodedInputString.replace("/", "%2F"); 
  return encodedInputString; 
} 

function delRecentSearchCookie() { 
     
    var leftRecentSearch = gbid('recentSearch');
    //var clearSearches = gbid('clearSearches');
    deleteCookie('recentSearchCookie'); 
    //leftRecentSearch.innerHTML = '<tr><td>No any recent search.</td></tr>';
    leftRecentSearch.innerHTML = '<table><tbody><tr><td>No recent searches yet.</td></tr><tr><td><span class="more">&raquo; clear searches</span></td></tr></tbody></table>';
    //window.location.reload(true); 
    //clearSearches.innerHTML = '<span class="more">'+ '&raquo; clear searches' + '</span>';

}

function delRecentSearchCookies() {
   
   var clearSearches = gbid('clearSearches');
   deleteCookie('recentSearchCookie');
   clearSearches.innerHTML = '<span class="more">'+ '&raquo; clear searches' + '</span>';
   window.location.reload(true);
}

function delVisitedJobsCookies() {
   
   deleteCookie('visitedJobsCookie');
   window.location.reload(true);
}

function deleteCookie (name) { //删除名称为name的Cookie
    
    var exp = new Date();
    
    exp.setTime (exp.getTime() - 1);
    
    var cval = getCookie (name);
    
    document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
    
}

function getCookie (name) { //取得名称为name的cookie值
    
    var arg = name + "=";
    
    var alen = arg.length;
    
    var clen = document.cookie.length;
    
    var i = 0;
    
    while (i < clen) {
    
    var j = i + alen;
    
    if (document.cookie.substring(i, j) == arg)
    
    return getCookieVal (j);
    
    i = document.cookie.indexOf(" ", i) + 1;
    
    if (i == 0) break;
    
    }
    
    return null;
    
}

function getCookieVal (offset) { //取得项名称为offset的cookie值
    
    var endstr = document.cookie.indexOf (";", offset);
    
    if (endstr == -1)
    
    endstr = document.cookie.length;
    
    return unescape(document.cookie.substring(offset, endstr));
    
 }




