JobSearch = {};
JobSearch.locationPrompt = "<center> <div style=\"text-align:left;padding-left:10px;margin-top:10px;\"> <font face='Verdana' size=-1> <form name='locationPrompt'> Enter a Zip Code:<br> <input type='text' size='30' style='margin-top:5px;' name='location' value='' /><br> <p> </div> <input type='button' onclick='JobSearch.continueCatSearch()' value=' Continue ' /> </p> </form> </font> </center> ";
JobSearch.formName       = 'advJobsearchForm';
JobSearch.promptName     = 'locationPrompt';

/*
JobSearch.url  = "http://jobs.retirementjobs.com/careers/jobsearch/results?searchType=quick;categories=[category];";
JobSearch.url += "country=United+States;state=[state];city=[city];zip=[zip];radius=30;sortBy=relevance;pageSize=10;view=Expanded";
JobSearch.url  = "http://jobs.retirementjobs.com/careers/jobsearch/results?searchType=quick;view=1;kAndEntire=sales;country=United+States;";
JobSearch.url += "state=[state];city=[city];radius=30";
JobSearch.url = "http://jobs.retirementjobs.com/careers/jobsearch/results?searchType=quick;view=1;kAndEntire=sales;country=United+States;zip=[zip];radius=30";
*/

JobSearch.url  = "http://jobs.retirementjobs.com/careers/jobsearch/results?categories=[category]&";
JobSearch.url += "searchType=advanced&view=1&kAndEntire=[keywords]&kAndTitle=&country=United+States&city=[city]&state=[state]&zip=[zip]&radius=30";

JobSearch.states = new Array("AL","ALABAMA","AK","ALASKA","AS","AMERICAN SAMOA","AZ","ARIZONA","AR","ARKANSAS","CA","CALIFORNIA",
"CO","COLORADO","CT","CONNECTICUT","DE","DELAWARE","DC","DISTRICT OF COLUMBIA","FM","FEDERATED STATES OF MICRONESIA","FL","FLORIDA",
"GA","GEORGIA","GU","GUAM","HI","HAWAII","ID","IDAHO","IL","ILLINOIS","IN","INDIANA","IA","IOWA","KS","KANSAS","KY","KENTUCKY","LA",
"LOUISIANA","ME","MAINE","MH","MARSHALL ISLANDS","MD","MARYLAND","MA","MASSACHUSETTS","MI","MICHIGAN","MN","MINNESOTA","MS",
"MISSISSIPPI","MO","MISSOURI","MT","MONTANA","NE","NEBRASKA","NV","NEVADA","NH","NEW HAMPSHIRE","NJ","NEW JERSEY","NM","NEW MEXICO",
"NY","NEW YORK","NC","NORTH CAROLINA","ND","NORTH DAKOTA","MP","NORTHERN MARIANA ISLANDS","OH","OHIO","OK","OKLAHOMA","OR","OREGON",
"PW","PALAU","PA","PENNSYLVANIA","PR","PUERTO RICO","RI","RHODE ISLAND","SC","SOUTH CAROLINA","SD","SOUTH DAKOTA","TN","TENNESSEE",
"TX","TEXAS","UT","UTAH","VT","VERMONT","VI","VIRGIN ISLANDS OF THE U.S.","VA","VIRGINIA","WA","WASHINGTON","WV","WEST VIRGINIA","WI",
"WISCONSIN","WY","WYOMING");

JobSearch.getSearchURL = function() {
   var city     = document.forms[JobSearch.formName].city.value;
   var state    = document.forms[JobSearch.formName].state.value;
   var zip      = document.forms[JobSearch.formName].zip.value;
   var category = document.forms[JobSearch.formName].categories.value;
   var keywords = document.forms[JobSearch.formName].kAndEntire.value;
   var url      = JobSearch.url;
   url = url.replace(/\[city\]/, escape(city));
   url = url.replace(/\[state\]/, escape(state));
   url = url.replace(/\[zip\]/, escape(zip));
   url = url.replace(/\[category\]/, escape(category));
   url = url.replace(/\[keywords\]/, escape(keywords));

   return url;
}

JobSearch.keyPressed = function(e) {
   var keynum = window.event ? e.keyCode : e.which;
   if(keynum != 13) { return true; }
   JobSearch.procForm();
}

JobSearch.catFocus = function() {
   DialogBox.close();
   document.forms[JobSearch.promptName].location.focus();
}

JobSearch.resetForm = function() {
   document.forms[JobSearch.formName].categories.value = '';
   document.forms[JobSearch.formName].city.value       = '';
   document.forms[JobSearch.formName].state.value      = '';
   document.forms[JobSearch.formName].zip.value        = '';
   document.forms[JobSearch.formName].location.value   = '';
   document.forms[JobSearch.formName].kAndEntire.value = '';
}

//horan
JobSearch.continueCatSearch = function() {
 
   var zip = document.forms['locationPrompt'].location.value;

   if(!zip) {
      DialogBox.close();
      var url = JobSearch.getSearchURL();
      url = url.replace(/radius=30/, 'radius=');
      JobSearch.resetForm();
      document.location.href = url;
      return false;
   }

   if(!zip.match(/^[0-9][0-9][0-9][0-9][0-9]$/)) {
      alertBox("Please enter a five digit Zip Code", 'JobSearch.catFocus()', "Malformed Zip Code");
      return false;
   }

   DialogBox.close();
   document.forms[JobSearch.formName].zip.value = zip;
   var url = JobSearch.getSearchURL();
   JobSearch.resetForm();
   document.location.href = url;

   return false;

}

JobSearch.closePrompt = function() {
   DialogBox.close();
   document.forms[JobSearch.formName].categories.value = '';
   document.forms[JobSearch.formName].location.focus();
}

JobSearch.catSearch = function(element, category) {
 
   document.forms[JobSearch.formName].categories.value = category;

   element.blur();

   var zip = document.forms[JobSearch.formName].location.value;

   if(zip.match(/^[0-9][0-9][0-9][0-9][0-9]$/)) {
      document.forms[JobSearch.formName].zip.value = zip;
      var url = JobSearch.getSearchURL();
      JobSearch.resetForm();
      document.location.href = url; 
      return false;
   }

   dialogBox(300, 150, 'Optional', JobSearch.locationPrompt, 'JobSearch.closePrompt()');

   setTimeout('document.locationPrompt.location.focus()', 1000);

   return false;
}

JobSearch.isValidState = function(state) {
   state = state.toUpperCase();
   for(var i=0; i<JobSearch.states.length; i++) {
      if(state == JobSearch.states[i]) { return true; }
   }
   return false;
}

JobSearch.trim = function(str) {
   str = str.replace(/^\s+/, '');
   str = str.replace(/\s+$/, '');
   return str;
}

JobSearch.focus = function(which) {
   DialogBox.close();
   document.forms[JobSearch.currentForm][which].focus();
}

JobSearch.checkLocation = function(which) {
   var location = document.forms[which].location.value; 
   location = location.replace(/\)/g, '');
   location = JobSearch.trim(location.replace(/\(/g, ''));
   var returned = {};
   returned.message = "Please enter city and state <br /> separated by a comma.";
   returned.title   = "City and State";

   if(!location) {
      returned.message = "Please enter a search location" + '<br />' + "(City, State) OR (ZIP Code).";
      returned.title   = "Missing Location";
      return returned;
   }
   if(!location.charAt(0).match(/[0-9]/)) {
      if(!location.match(/,/)) {
         return returned;
      }
      if(location.match(/,$/)) {
         return returned;
      }
      location = location.split(/,/);
      if(location.length != 2) {
         return returned;
      }
      var city  = JobSearch.trim(location[0]);
      var state = JobSearch.trim(location[1]);

      if(!city || !state) {
         return returned;
      }

      if(!JobSearch.isValidState(state)) {
         returned.message = state + " is not a valid state.";
         returned.title   = "Invalid State";
         return returned;
      }

      document.forms[JobSearch.formName].city.value  = city;
      document.forms[JobSearch.formName].state.value = state;
      return null; // Okay to go!	
   } else {
      if(location.charAt(0).match(/[0-9]/) && !location.match(/^[0-9][0-9][0-9][0-9][0-9]$/)) {
         returned.message = location + " is not a 5 digit ZIP Code.";
         returned.title   = "Malformed Zip Code";
         return returned;
      } else {
         document.forms[JobSearch.formName].zip.value = location;
         return null; // Okay to go!
      }
   }
}

JobSearch.formFocus = function() {
   DialogBox.close();
   document.forms[JobSearch.formName].location.focus();
}


JobSearch.ageFriendly = function() {

   JobSearch.reallySubmit();
   
   /*
   if(DialogBox.stack.count()) {
      DialogBox.close();
   }

   var html = "";
   html += "<center>";
   html += "<p>Age-Friendly Stuff</p>";
   html += "<input type='button' onclick='JobSearch.reallySubmit()' value=' Continue ' />";

   dialogBox(300, 200, 'Age-Friendly Stuff', html, 'JobSearch.reallySubmit()');
   */
}

JobSearch.reallySubmit = function() {
   while(DialogBox.stack.count()) {
      DialogBox.close();
   }
   var url = JobSearch.getSearchURL();
   JobSearch.resetForm();
   waitBox();
   document.location.href = url;

}

JobSearch.submit = function() {
   JobSearch.ageFriendly();
}

JobSearch.procForm = function(button) {


   document.forms[JobSearch.formName].categories.value = '';

   var zip = document.forms[JobSearch.formName].location.value;

   if(zip && !zip.match(/^[0-9][0-9][0-9][0-9][0-9]$/)) {
      alertBox("Please enter your five digit Zip Code", 'JobSearch.formFocus()', "Malformed Zip Code");
      return false;
   }

   if(zip) {
      document.forms[JobSearch.formName].zip.value = zip;
   }

   var url = JobSearch.getSearchURL();

   if(!zip) {
      url = url.replace(/radius=30/, 'radius=');
   }

   JobSearch.resetForm();

   
   document.location.href = url;

   return false;
}
