$j(document).ready(function() {
	$j('.validatePhoneNumber').keydown(function(e) {
		k = e.keyCode;
		if ((k < 48 || k > 57) && k != 9 && k != 8 && k != 37 && k != 39 && k != 36 && k != 35 && k != 46 && k != 32 && !isDash(k) && !isNumPadNumericKey(k)) {
			e.preventDefault();
		}
	});

	$j('.validateNumber').keydown(function(e) {
		k = e.keyCode;
		if ((k < 48 || k > 57) && k != 9 && k != 8 && k != 37 && k != 39 && k != 36 && k != 35 && k != 46 && !isNumPadNumericKey(k)) {
			e.preventDefault();
		}
	});
	$j('input[name=exchangeOption]:radio').each(function(){
		if (this.checked) {
			this.click();
		}
	});
	
	$j("#registerAgreementDialog").dialog({
		height:600,
		width:800,
		modal: true,
		autoOpen: false
	});
	//fix for IE6 - after closing the dialog the screen is still disabled
	if ($j.browser.msie && $j.browser.version.substr(0,1) < 7) {
		$j( "#registerAgreementDialog" ).dialog( "option", "modal", false );
	}
	
	enableRegistration();
});

function isNumPadNumericKey(keyCode) {
	return (k >= 96 && k <= 105);
}

function isDash(keyCode) {
	return (k == 109 || k == 189); // "minus" on the numpad (109) or dash (189). 
}

function checkAllInGroup(group) {
	var allBox = $j('#'+group+'All');
	if (allBox.is(':checked')) {
		$j('#'+group+' input[type=checkbox]:checked').attr('checked', false);
	} else {
		allBox.attr('checked', true);
	}
}

function inspectCheckboxGroup(group) {
	var count = $j('#'+group+' input[type=checkbox]').length;
	var checkboxes = $j('#'+group+' input[type=checkbox]:checked');
	$j('#'+group+'All').attr('checked', (checkboxes.length == 0 || checkboxes.length == count));
	if (checkboxes.length == count) {
		checkboxes.attr('checked', false);
	}
}

function checkPropType() {
	inspectCheckboxGroup('propertyTypes');
	var checked = $j('#propertyTypes input[type=checkbox]:checked');
	var room = false;
	var apartment = false;
	for (var i=0; i < checked.length; i++) {
		var value = checked[i].value;
		if (value == 'ROOM' || value == 'PARKING_LOT' || value == 'LOT') {
			room = true;
		}
		if (value == 'APARTMENT' || value == 'HOUSE' || value == 'CABIN' || value == 'COMMERCIAL_LEASE') {
			apartment = true;
		}
	}
	if (room == true && apartment == false) {
		$j("#minRooms").attr("disabled", true);
		$j("#maxRooms").attr("disabled", true);
	} else if (apartment == true) {
		$j("#minRooms").attr("disabled", false);
		$j("#maxRooms").attr("disabled", false);
	}
}

function checkAllPropType() {
	checkAllInGroup('propertyTypes');
	$j("#minRooms").attr("disabled", false);
	$j("#maxRooms").attr("disabled", false);
}

function addParamToURL(param) {
	var paramName;
	if (arguments.length == 1) {
		paramName = param.split('=')[0];
	} else {
		paramName = arguments[0];
		param = arguments[0] + '=' + arguments[1];
	}
	
	var url = window.location.href;
	var regexp = new RegExp(paramName + '=[^&]*');
	if (url.match(regexp)) {
		url = url.replace(regexp, param);
		
	} else {
		url = url + (url.match(/\?/) ? '&' : '?') + param;
	}
	
	window.location = url;
}

function changeSort(newSort) {
	addParamToURL('sort', newSort);
}

function enableRegistration() {
	var checked_status = $j("#acceptTerms").attr("checked");
	var button = $j("#registerButton");
    if (checked_status) {
    	button.removeAttr("disabled");
    	button.css("cursor", "pointer");
    	button.hover(
        		  function () {
        			  button.addClass("nextHover");
        		  },
        		  function () {
        			  button.removeClass("nextHover");
        		  }
        		);
    }
    else {
    	button.attr("disabled", "disabled");
    	button.css("cursor", "auto");
    	button.unbind('mouseenter mouseleave');
    }

}

function openAgreementLink() {
	$j.get('/component/registerAgreementDialog.do', function(data) {
		$j('#registerAgreementDialog').html(data);
	});
	$j("#registerAgreementDialog").dialog('open');
	return false;
}

