var roomSpaceOptions = $H();
   function saveManuals() {
		var options = {
			asynchronous: true,
			method: 'POST',
			postBody: Form.serialize($('saveManualsForm')),
			onSuccess:  function(response) {
				$('findManualsLanding').innerHTML = response.responseText;
			}
		};
		new Ajax.Request("/mmh/home-profile/AsynchManualsSave.action", options);
		return false;
   }

   function displayManual(url) {
   		var options = {
			asynchronous: false,
  			method : 'GET',
  			onSuccess : function(response) {
     			window.open(url);
  			}
		};

		documentId = url.substring(url.indexOf(".pdf") - 8, url.indexOf(".pdf"));
		new Ajax.Request("/mmh/products/ProductManual.action?documentId=" + documentId, options);

		return false;
   }

   function trackManual(documentURL, documentType, productType, brandName, modelNumber, brandNameSearch, modelNumberSearch) {
  		var options = {
			asynchronous: true,
 			method : 'GET'
		};

   var url = "/mmh/owner_manuals/track_manual?" + Hash.toQueryString({
				'document_url': documentURL,
				'document_type': documentType,
				'product_type' : productType,
				'brand_name': brandName,
				'model_number': modelNumber,
				'brand_name_search': brandNameSearch,
				'model_number_search': modelNumberSearch});
		new Ajax.Request(url, options);

		return false;
  }

   var Manuals = {
	rules : {
		'#assignRoomSaveLink' : function(element) {
			element.onclick = function() {
				submitRoomForm();
			}
	     }
	  }
   };

//	Event.onReady(function() {
//	   alert("I'm about to apply behaviours");
//	   if($('assignRoomSaveLink') == null) {
//	   	alert('this sucks');
//	   } else {
//	   	alert('YAY');
//	   }
//
//	   alert("they are applied");
//	});

    var idx = -1;
    function setSelectedIndex(idxSelection) {
    	idx = idxSelection;
    }

function checkForDuplicateRoom() {
	var locationName = $('roomURI')[$('roomURI').selectedIndex].text;
    var someNodeList = $('roomURI').getElementsByTagName('option');
    var textToCheck;
    var duplicateNameExists = false;

    if (locationName == 'Add new room') {
        textToCheck = $('newRoomName').value;
    }
    else if (locationName == 'Add new space') {
         textToCheck = $('newSpaceName').value;
    }

    var nodes = $A(someNodeList);
    nodes.each(function(node){
        if (node.innerHTML == textToCheck) {
            duplicateNameExists = true;
            return;
        }

    });
    return duplicateNameExists;

}
    function submitRoomForm() {
		if(checkForDuplicateRoom()) {
			$('duplicateNameError').show();
			return;
		}
	    var formData = collectFormData($('saveItemToRoomForm')) + '&' + collectFormData($('addRoomModalForm' + idx));

		if($('roomURI').selectedIndex != '0') {
		    var options = {
		    	asynchronous: false,
		        method : 'post',
		        postBody : formData ,
		        onSuccess : function () {
	   			   Control.Modal.close();
	   			   $('content' + idx).className = 'clearfix';
		        }
		    };
		    new Ajax.Updater('content' + idx, $('saveItemToRoomForm').action, options);
		}

	    return false;
	}

function hideErrorMessage() {
	if ($('duplicateNameError')) {
		$('duplicateNameError').hide();
	}
}
function evaluateDropdownStatus() {
	hideErrorMessage();
  	var selected = $('roomURI').value;
  	var selectedIndex = $('roomURI').selectedIndex;
	var assignNewRoomObj =  $('assignNewRoomDiv');
	var assignNewSpaceObj =  $('assignNewSpaceDiv');
	var assignTypeObj =  $('newRoomType');
	var assignSpaceObj =  $('newSpaceType');
	var saveBtnObj =  $('assignRoomSaveBtn');

	if (selected == 'addNewSpace') {
		assignNewSpaceObj.style.display = 'block';
		assignNewRoomObj.style.display = 'none';
		assignSpaceObj.disabled = false;
		assignSpaceObj.focus();
		saveBtnObj.className = 'btn17Disabled';
	}else if(selected == 'addNewRoom') {
		assignNewRoomObj.style.display = 'block';
		assignNewSpaceObj.style.display = 'none';
		assignTypeObj.disabled = false;
		assignTypeObj.focus();
		saveBtnObj.className = 'btn17Disabled';
	} else {
 		assignNewRoomObj.style.display = 'none';
		assignNewSpaceObj.style.display = 'none';
		if (selectedIndex != '0') {
			saveBtnObj.className = 'btn17';
		} else {
			saveBtnObj.className = 'btn17Disabled';
		}
	}
}

/*
*Had to write a similar method for add room
*/
function evaluateSelectRoomType(selectBox, inputBox) {
	hideErrorMessage();
	var selectObj = $(selectBox);
	var nameObj = $('roomURI');
	var inputObj = $(inputBox);

	if (selectObj.selectedIndex == 0) {
		inputObj.disabled = true;
	} else {
		inputObj.disabled = false;
		inputObj.focus();
	}

	//Special case handling for "other room" type selection from add room screen
	if (selectObj.options[selectObj.selectedIndex].text == '- Select -') {
		inputObj.value = "";
	} else if (selectObj.options[selectObj.selectedIndex].text == 'Other Room') {
		inputObj.value = "Please name room";
	} else if (selectObj.options[selectObj.selectedIndex].text == 'Other Space') {
		inputObj.value = "Please name space";
	} else {
		inputObj.value = generateDefaultSpaceName(nameObj, selectObj);
	}

	if(selectBox == 'newRoomType') {
		//alert('room');
		evaluateInputHrefButton1('newRoomName', 'assignRoomSaveBtn', '17','assignRoomSaveLink',submitRoomForm);
	} else {
		//alert('space');
		evaluateInputHrefButton1('newSpaceName', 'assignRoomSaveBtn', '17','assignRoomSaveLink',submitRoomForm);
	}
	setSelectionRange(inputObj, 0, inputObj.value.length);
}

function generateDefaultSpaceName(nameObj,selectObj) {

	if (roomSpaceOptions.keys().length == 0) {
		options = $A(nameObj.options);
		options.each(function(r) {
			roomSpaceOptions[trimws(r.text)]=true;
		});
	}

	// generate the default
	var t = selectObj.options[selectObj.selectedIndex].text;

	if (!roomSpaceOptions[t])
		return t;
	for (var i = 2; ; ++i) {
		if (!roomSpaceOptions[t+' '+i])
			return t+' '+i;
	}
}


/**
* This function is modified to take href button so that it is not clickable.
* hrefFunction passed will be called when it is clickable.
*/
function evaluateInputHrefButton1(inputBox, btn, size, hrefElementName, hrefFunction) {
	var inputObj = $(inputBox);
	var enabledState = 'btn' + size;
	var disabledState = 'btn' + size + 'Disabled';
	//alert('inputObj.value = ' + inputObj.value);
	if (inputObj.value.length > 0) {
		//alert('enabling');
		$(btn).className = enabledState;
		$(hrefElementName).onclick = function() {hrefFunction(); return false;};
	} else {
		//alert('disabling');
		$(btn).className = disabledState;
		$(hrefElementName).onclick = null;
	}
}

function validateManualsInput() {
	return ($('items-Brandproperty').present() && $('items-Modelnumberproperty').present());

}
