var request = createRequestObject();

function createRequestObject()
{
    var request   = new Object();
    var nameVal   = "";
    var inString  = location.search;
    var separator = ",";

    if (inString.charAt(0) == "?")
    {
        inString = inString.substring(1, inString.length);
        keypairs = inString.split("&");

        for (var i=0; i < keypairs.length; i++)
        {
            nameVal = keypairs[i].split("=");

            if (request[nameVal[0]])
            {
                  request[nameVal[0]] += separator + nameVal[1];
            }
            else
            {
                  request[nameVal[0]] = nameVal[1];
            }
        }
    }
    return request;
}



function updateClass() {
	var mainCat = document.forms.searchbox.elements.origCat.value;
	var mainClass = "ANY";
	if (request["classId"]) {
		mainClass = request["classId"];
	}
	else {
		if (mainCat == "DEATHS") {
			mainClass = "008";
		}
	}	
		if (mainCat != "ANY") {
			
			if (document.forms.searchbox.className.type != 'hidden') {
				document.forms.searchbox.className.options.length = 0;
				for (j in classList[mainCat]) {
					label = classLabel[mainCat][j];
					document.forms.searchbox.className.options[j] = new Option(classLabel[mainCat][j].substr(0,22),classList[mainCat][j]);
					if (mainClass.indexOf(classList[mainCat][j]) != -1) {
						document.forms.searchbox.className.selectedIndex = j;
					}
				}
			}
		}
		updateAttributes();
	}
	
	
	
	function doAction() {

		var searchbox = document.forms.searchbox;
		var mainCategory = document.forms.searchbox.origCat.value;
		var mainClass = "";
		var keywords = "";
		var cAtts = "";
		var clAtts = "";
		
		
		
		// if (SPECIAL CASES) { 
            var type = document.forms.searchbox.type.value;
			var catCount = classAtts.length;
			var classCount = classAtts.length;
			var hClassCount = hiddenClassAtts.length;
			var hCatCount = hiddenCatAtts.length;
			var totalAttCount = catCount + classCount + hClassCount + hCatCount;

			if (mainCategory == "REAL+ESTATE" && (totalAttCount > 0) && searchbox.keywords.value == "") {
				mainClass = document.forms.searchbox.elements.className.value;	
				for (j in classAtts) {
					clAtts += "&ATTRIB" + classAtts[j] + "=" + searchbox.elements["attri_" + classAtts[j]].value;
				}
				for (j in categoryAtts) {
					clAtts += "&ATTRIB" + categoryAtts[j] + "=" + searchbox.elements["attri_" + categoryAtts[j]].value;
				}
				for (j in hiddenCatAtts) {
									clAtts += "&ATTRIB" + hiddenCatAtts[j] + "=Any";
				}
				for (j in hiddenClassAtts) {
									clAtts += "&ATTRIB" + hiddenClassAtts[j] + "=Any";
				}
				var today="";
				if (searchbox.todayCheckbox.checked) {
				    today = "&today=true";
				}
				var catUrl = "/OLCSApp/do/srch_result?listCategory=REAL+ESTATE&listClass=" + mainClass + "&className=&subClassName=null&listSubClass=null&pages=10&beginRow=1&endRow=20&listIndex=1&prevListBegin=0&prevListEnd=0&nextListBegin=11&nextListEnd=20&prevListPressed=N&nextListPressed=N&lastListPressed=N&openHomes=N&photosOnly=N&browseButton=&submitButton=Y&categoryName=REAL+ESTATE&Refresh=No&detail=true&classId=" + mainClass + clAtts + today;
				window.location= catUrl;
				return false;
			}
			
            if (type == "attribute") {

			if (searchbox.keywords.value != "") {
				keywords = "&keyword=" + searchbox.keywords.value;
			}
			for (j in classAtts) {
				clAtts += "&attri_" + classAtts[j] + "=" + searchbox.elements["attri_" + classAtts[j]].value;
			}
			for (j in categoryAtts) {
				clAtts += "&attri_" + categoryAtts[j] + "=" + searchbox.elements["attri_" + categoryAtts[j]].value;
			}
			var today = "";
			if (searchbox.todayCheckbox.checked) {
				today = "&today=true";
			}

			mainClass = document.forms.searchbox.elements.className.value;	
			var catUrl = "/OLCSApp/do/attribute_search_side?categoryName=" + mainCategory + "&classId=" + mainClass + clAtts + "&detail=true&sort=none&pages=10" + keywords + today;
			window.location = catUrl;
            } else if (type == "keyword") {
				if (searchbox.mainkeywords.value != "") {
					var catUrl = "/OLCSApp/do/keyword_search?categoryName=any&Refresh=No&keyword=" + searchbox.mainkeywords.value; 
         			window.location = catUrl; 
                }
            } else if (type == "auto") {
				return true;
			} 
               
		return false;
	}

	
	
	
function updateCat() {
    var curCat = "";
	var classId = "";
	if (request["categoryName"]) {
		curCat = request["categoryName"];
	} else if (request["listCategory"]) {
		curCat = request["listCategory"];
    }
	if (curCat == "TADA") {
		curCat = 'AUTOMOTIVE';
	}
	document.forms.searchbox.origCat.value = curCat;

/*    box = document.forms.searchbox.category;
	for (var i=0;i<box.options.length;i++) {
		if (curCat.indexOf(box.options[i].value) != -1) {
		//	box.selectedIndex = i;
		}
    }		
*/
	updateClass();
	
}	

function updateAttributes() {
//		box = document.forms.searchbox.category;
	 	var test = new String;
//		test = box.options[box.selectedIndex].value;
		test = document.forms.searchbox.origCat.value;
		var className = document.forms.searchbox.className;
		var selectedClass = "ANY";
		if (className.type != 'hidden') {
	        if (className.selectedIndex != -1) {
    	          selectedClass = className.options[className.selectedIndex].value;
        	} 		
		}
	    var curCat = "ANY";
		if (request["categoryName"]) {
			curCat = request["categoryName"];
		} else if (request["listCategory"]) {
			curCat = request["listCategory"];
	    }
		var mainClass = "ANY";
		if (request["classId"]) {
			mainClass = request["classId"];
		}

		setAttributeValues(classAtts);
		setAttributeValues(categoryAtts);

}

function setAttributeValues (attributes) {
		var fields = document.forms.searchbox;
		for (j in attributes) {
			var attLabel = "attri_" + attributes[j];
			if (request[attLabel]) {
				var curAttribute = request[attLabel];
				var attType = fields.elements[attLabel].type;
				if (attType =="select-one") {				
					for (var i=0;i<fields.elements[attLabel].options.length;i++) {
						if (curAttribute.indexOf(fields.elements[attLabel].options[i].value) != -1) {
							fields.elements[attLabel].selectedIndex = i;
						}
					}
				} else if (attType == "text")  {
					fields.elements[attLabel].value = curAttribute;
				}
		
			}
		}
}

function jumpCategory() {
	var newCat = document.forms.searchbox.category.options[document.forms.searchbox.category.selectedIndex].value;
	if (newCat == 'TADA' || newCat == 'AUTOMOTIVE') {
		var catUrl = "/OLCSApp/do/am_browse_category_srch?&listCategory=AUTOMOTIVE";
		window.location = catUrl;
	}
	else if (newCat != 'ANY') {
		var catUrl2 = "/OLCSApp/do/browse_category_srch?Refresh=Yes&listCategory=" + newCat;
		window.location = catUrl2;
	}
	
}

function jumpClass() {
	var newCat = document.forms.searchbox.origCat.value;
	var newClass = document.forms.searchbox.className.options[document.forms.searchbox.className.selectedIndex].value;

	if (request["categoryName"]) {
		curCat = request["categoryName"];
	} else if (request["listCategory"]) {
		curCat = request["listCategory"];
    }
	if (curCat == "TADA") {
		curCat = 'AUTOMOTIVE';
	}

	if (curCat == 'AUTOMOTIVE') {
			var catUrl2 = "/OLCSApp/do/am_browse_category_srch?jumpClass=1&listCategory=" + newCat + '&classId=' + newClass ;
			window.location = catUrl2;
			return false;
	}
	if (newClass != 'ANY') {
		var catUrl2 = "/OLCSApp/do/browse_category_srch?Refresh=Yes&listCategory=" + newCat + '&classId=' + newClass ;
		window.location = catUrl2;
		return false;
	}

}

function setSearch(type) {
   document.forms.searchbox.type.value = type;
}

function setTodayBox() {
	var mainCat = document.forms.searchbox.elements.origCat.value;
	if (request["today"] == "true") {
		document.forms.searchbox.todayCheckbox.checked=true;
	}

/*	if (mainCat == "DEATHS") {
		document.forms.searchbox.todayCheckbox.checked = true;
	}
*/
}
