function populateOptions(dropdown, parent) {
    var field = dropdown.options[dropdown.selectedIndex].value;
    var selects = parent.getElementsByTagName('select');
    
    if (field == '') { selects[2].disabled = true; selects[3].disabled = true; }
    else { selects[2].disabled = false; selects[3].disabled = false; }
  
    if (field == 'agegroup') { selects[3].className = 'hidden'; selects[2].className = ''; } 
    if (field == 'documenttype') { selects[2].className = 'hidden'; selects[3].className = ''; }   
}

function validateAdvSearch(form, searchPage){
    var url_params = [];
    var lf_fields = ['lf1', 'lf2', 'lf3', 'lf4', 'lf5'];
    var sc_fields = ['sc1', 'sc2', 'sc3', 'sc4', 'sc5'];
    var radio_fields = ['date_range_rb', 'date_options_rb'];
    var section_fields = ['all_sections', 'publications', 'books', 'children_books', 'journal_articles', 'journals', 'newsletters', 'brochures', 'videos', 
	'psyc_topics', 'help_center', 'news_and_events', 'pr_news', 'events_news', 'data_news', 'education', 'membership', 'apa_govern', 'apa_style'];

    checkInputFields(lf_fields);
    checkContentWhere(sc_fields);
    checkSelectedSections(section_fields);

    if (url_params.length == 0) {
        alert('Please choose a search term or select section(s) of the site.');
	return false;
    }
  
    if (document.getElementById(radio_fields[1]).checked) {
        var select = document.getElementById('date_range_sel');
	var endDate = new Date(); var startDate = new Date();
        startDate.setMonth(endDate.getMonth() - select.options[select.selectedIndex].value);
        setDateRange(startDate, endDate);
    }

    //setUrl() returns true if both calendar dates are valid.
    if (document.getElementById(radio_fields[0]).checked && setUrl(document.getElementById('adv_srch'), 'advanced_search')) { 
	setDateRange(new Date(document.getElementById('fromd').value), new Date(document.getElementById('tod').value));
    }
  
    if (url_params.length > 0) {window.location.href = 'http://' + window.location.host + '/search' + '?' + url_params.join('&') + '&adv_search=true';}    
    return false;

    function checkContentWhere(fieldIds) {
        var contentwhere = [];
        for (var i=0; i<fieldIds.length; i++) {
	    var selects_div = document.getElementById(fieldIds[i]);
	    if (selects_div.className == 'show_cont') {
		var selects = selects_div.getElementsByTagName('select');
		if (selects[2].className == '' && selects[2].disabled == false) {
		    var ag_value = selects[2].options[selects[2].selectedIndex].value;
		    if (ag_value != '') { contentwhere.push(selects[2].name + '^' + selects[1].options[selects[1].selectedIndex].value   + '^' + ag_value); }
		}
		if (selects[3].className == '' && selects[3].disabled == false) {
		    var dt_value = selects[3].options[selects[3].selectedIndex].value;
  		    if (dt_value != '') { contentwhere.push(selects[3].name +  '^' + selects[1].options[selects[1].selectedIndex].value   + '^' + dt_value); }
		}
			  
	    }
	}
	if (contentwhere.length > 0) { url_params.push('contentwhere=' + escape(contentwhere.join('||'))); }
    }
  
    function setDateRange(startDate, endDate) { url_params.push('asdatepublished=' + startDate.date_display() + ';' + endDate.date_display()); }

    function checkSelectedSections(field_ids) {
        var temp = [];
	var newsltr = false;
        if (document.getElementById(field_ids[0]).checked) { return; }
	if (document.getElementById('newsletters').checked) { newsltr = true; }

	for (var i=0; i<field_ids.length; i++) {
	    var section = document.getElementById(field_ids[i]);
	    if (section.checked && (field_ids[i] != 'newsletters')) { temp.push(section.value); }
	}
      
	if (newsltr) { url_params.push('doctypesection=Magazine Article||Newsletter Article'); }
	if (temp.length > 0) { url_params.push('urls=' + temp.join('||')); }
    }    
  
    function checkInputFields (fieldIds) {
        var values = [];
        for (var i=0; i<fieldIds.length; i++) { //check input text field values
	    var fld = document.getElementById(fieldIds[i]);
	
	    if (fld.className.indexOf('hidden') > 0) { break; } // check if field is hidden
	    var txt_value = fld.getElementsByTagName('input')[0].value;
      
	    if (txt_value != '') { //skip field if blank
		var s = fld.getElementsByTagName('select');
		if (s[1].options[s[1].selectedIndex].value != '') { values.push(txt_value + '^' + s[0].options[s[0].selectedIndex].value + '^' + s[1].options[s[1].selectedIndex].value); }		
	    }
	}
	if (values.length > 0) { url_params.push('lookfor=' + values.join('||')); }
    }    
}

function addRow(link_row_id, field) {
    var row_number = link_row_id.charAt(link_row_id.length-1);
    if (row_number < 5) {
	document.getElementById('add_' + field + row_number).className = 'hidden';
	var div = document.getElementById(field + ++row_number);
	div.className = div.className.split(' ')[0];          
    }
}

function clearField(el) { if (el.value == "mm/dd/yyyy") { el.value=""; } }

function expandResult(lnk) {
    document.getElementById(lnk.name).style.display="none";
    document.getElementById('hide' + lnk.name).style.display="inline";
}

function collapseResult(lnk) {
    document.getElementById('hide' + lnk.name).style.display="none";
    document.getElementById(lnk.name).style.display="inline";
}

function sortResults(params) { window.location.href='/'+params; }

function sortBy(params, elem) { window.location.href = window.location.pathname + params + '&sort=' + elem[elem.selectedIndex].value; }

function collapseFacetResult(lnk) {
    document.getElementById('hide' + lnk.name).style.display="inline";
    document.getElementById(lnk.name).className="hidden";
}

function checkLocation(frm) {
    var opt = document.getElementById('pagedd');
    frm.action = opt.value;	
}

function checkLimitedLocation() {
    var opt = document.getElementById('pagedd');
    document.location.href = opt.value + document.getElementById('sstr2').value;
    return false;
}

var monthsInYear =  ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
Date.prototype.date_display = function () { return [[monthsInYear [this.getMonth()], this.getDate()].join(' '),this.getFullYear()].join(', '); };